:root{
  --navy:#0E3370;
  --navy-2:#0E3370;
  --lime:#E3FC52;
  --lime-dark:#E3FC52;
  --ink:#1a1f2b;
  --grey:#5c6472;
  --line:#e4e7ec;
  --paper:#ffffff;
  --paper-2:#f6f7f5;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink);
  background:var(--paper);
  line-height:1.6;
  font-size:16px;
}
img{display:block;width:100%;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px;}
.ph{position:relative;overflow:hidden;background:var(--navy);
  background-image:repeating-linear-gradient(45deg, rgba(180,211,53,0.14) 0 26px, rgba(180,211,53,0.05) 26px 52px);}
.ph::after{content:attr(data-label);position:absolute;bottom:10px;right:14px;font-size:11px;letter-spacing:.04em;
  color:rgba(255,255,255,.75);background:rgba(0,0,0,.35);padding:3px 8px;border-radius:3px;}
.photo-fill{overflow:hidden;background:var(--navy);}
.photo-fill img{width:100%;height:100%;object-fit:cover;display:block;}
.recent-work-widget{width:100%;max-width:760px;aspect-ratio:4/3;border-radius:8px;}
.recent-work-widget img{object-fit:contain;}

/* header */
header{border-bottom:1px solid rgba(14,51,112,.12);position:sticky;top:0;background:var(--lime);z-index:50;}
.headbar{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;max-width:1180px;margin:0 auto;}
.logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:19px;letter-spacing:.01em;color:var(--navy);}
.logo-img{height:38px;width:auto;display:block;}
header .logo-img{height:58px;}
footer .logo-img{height:64px;}
footer .logo{margin-bottom:16px;}
nav.mainnav{display:flex;align-items:center;gap:28px;}
nav.mainnav a{font-size:14.5px;font-weight:600;color:var(--navy-2);}
nav.mainnav a:hover{color:var(--navy);}
nav.mainnav .nav-mobile-cta{display:none;}
.head-cta{display:flex;align-items:center;gap:12px;}
.navtoggle{display:none;background:none;border:none;font-size:22px;color:var(--navy);cursor:pointer;padding:4px;}
.btn{display:inline-block;font-weight:700;font-size:14.5px;padding:12px 22px;border-radius:4px;letter-spacing:.02em;
  white-space:nowrap;border:1.5px solid transparent;cursor:pointer;}
.btn-primary{background:var(--lime);color:var(--navy);}
.btn-primary:hover{background:var(--lime-dark);}
header nav.mainnav a.btn-primary,
header .head-cta a.btn-primary{background:var(--navy);color:#fff;}
header nav.mainnav a.btn-primary:hover,
header .head-cta a.btn-primary:hover{background:var(--navy-2);color:#fff;}
.btn-ghost{border-color:var(--navy);color:var(--navy);}
.btn-ghost-light{border-color:#fff;color:#fff;}
.btn-sm{padding:9px 16px;font-size:13.5px;}

/* breadcrumbs */
.breadcrumbs{padding:16px 0;font-size:13px;color:rgba(255,255,255,.6);}
.breadcrumbs a{color:rgba(255,255,255,.92);font-weight:600;}
.breadcrumbs a:hover{color:var(--lime);}
.breadcrumbs span{margin:0 6px;}

/* hero (home) */
.hero{
  background:
    linear-gradient(rgba(14,51,112,.44), rgba(14,51,112,.44)),
    url("/assets/hero-bg.jpg") center/cover no-repeat;
  color:#fff;
}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;padding:76px 24px 84px;max-width:1180px;margin:0 auto;}
.eyebrow{color:var(--lime);font-weight:700;font-size:13px;letter-spacing:.09em;text-transform:uppercase;margin-bottom:16px;}
.hero h1{font-size:44px;line-height:1.12;font-weight:800;letter-spacing:-.01em;margin-bottom:20px;text-shadow:0 2px 14px rgba(0,0,0,.55);}
.hero p{font-size:17.5px;color:#eef1f7;max-width:490px;margin-bottom:30px;text-shadow:0 1px 10px rgba(0,0,0,.5);}
.hero .eyebrow{text-shadow:0 1px 8px rgba(0,0,0,.5);}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;}
.hero-photo{border-radius:6px;aspect-ratio:4/3.1;}
.hero-photo-logo{background:var(--navy);display:flex;align-items:center;justify-content:center;padding:12%;}
.hero-photo-logo img{width:100%;height:auto;display:block;}
.trust-strip{background:var(--navy-2);border-top:1px solid rgba(255,255,255,.08);}
.trust-strip .wrap{display:flex;gap:40px;flex-wrap:wrap;padding:18px 24px;font-size:13.5px;color:#c6cee2;font-weight:600;align-items:center;}
.trust-strip div{display:flex;align-items:center;}
.trust-strip .ts-icon{display:inline-flex;color:var(--lime);margin-right:9px;flex:none;filter:drop-shadow(0 0 5px rgba(227,252,82,.85)) drop-shadow(0 0 10px rgba(227,252,82,.45));}
.trust-strip .ts-icon svg{width:19px;height:19px;}
.trust-strip .ts-star{color:var(--lime);filter:drop-shadow(0 0 6px rgba(227,252,82,1)) drop-shadow(0 0 14px rgba(227,252,82,.7));animation:tsStarGlow 2.2s ease-in-out infinite;}
.trust-strip .ts-star svg{width:21px;height:21px;}
.trust-strip .ts-star svg path{fill:var(--lime);}
@keyframes tsStarGlow{
  0%,100%{filter:drop-shadow(0 0 6px rgba(227,252,82,1)) drop-shadow(0 0 14px rgba(227,252,82,.7));}
  50%{filter:drop-shadow(0 0 10px rgba(227,252,82,1)) drop-shadow(0 0 20px rgba(227,252,82,.9));}
}
@media (prefers-reduced-motion: reduce){
  .trust-strip .ts-star{animation:none;}
}

/* inner page hero */
.page-hero{background:var(--navy);color:#fff;padding:54px 0 60px;}
.page-hero-photo{
  background:
    linear-gradient(rgba(14,51,112,.55), rgba(14,51,112,.55)),
    url("/assets/page-hero-canberra.jpg") center/cover no-repeat;
}
.page-hero-about{
  background:
    linear-gradient(rgba(14,51,112,.55), rgba(14,51,112,.55)),
    url("/assets/page-hero-about-canberra.jpg") center 80%/cover no-repeat;
}
.page-hero-mower-a{
  background:
    linear-gradient(rgba(14,51,112,.30), rgba(14,51,112,.30)),
    url("/assets/photos/mower-zeroturn.jpg") center 30%/cover no-repeat;
}
.page-hero-mower-b{
  background:
    linear-gradient(rgba(14,51,112,.40), rgba(14,51,112,.40)),
    url("/assets/photos/mower-push.jpg") center/cover no-repeat;
}
.page-hero-realestate{
  background:
    linear-gradient(rgba(14,51,112,.45), rgba(14,51,112,.45)),
    url("/assets/photos/for-sale-sign.jpg") center/cover no-repeat;
}
.page-hero-strata{
  background:
    linear-gradient(rgba(14,51,112,.45), rgba(14,51,112,.45)),
    url("/assets/photos/strata-building.jpg") center/cover no-repeat;
}
.page-hero .eyebrow{margin-bottom:14px;}
.page-hero h1{font-size:34px;font-weight:800;letter-spacing:-.01em;margin-bottom:16px;max-width:760px;text-shadow:0 2px 12px rgba(0,0,0,.5);}
.page-hero p{font-size:16.5px;color:#eef1f7;max-width:640px;margin-bottom:26px;text-shadow:0 1px 8px rgba(0,0,0,.45);}

section{padding:72px 0;}
.section-head{max-width:660px;margin-bottom:36px;}
.kicker{color:var(--navy);font-weight:800;font-size:12.5px;letter-spacing:.09em;text-transform:uppercase;margin-bottom:12px;}
h2{font-size:28px;font-weight:800;letter-spacing:-.01em;color:var(--navy);margin-bottom:14px;}
h3{font-size:18px;font-weight:800;color:var(--navy);margin-bottom:8px;}
.lede{color:var(--grey);font-size:16.5px;}
.prose p{color:var(--ink);font-size:16px;margin-bottom:16px;max-width:760px;}
.prose h2{margin-top:36px;}
.prose h3{margin-top:8px;}
.prose ul{list-style:disc;padding-left:22px;margin:0 0 16px;max-width:760px;}
.prose ul li{color:var(--ink);font-size:16px;margin-bottom:8px;line-height:1.5;}
.prose .legal-meta{color:var(--grey);font-size:14px;margin-bottom:28px;}
.prose-photo{max-width:760px;margin:28px 0;border-radius:8px;overflow:hidden;}
.prose-photo img{width:100%;display:block;}
.prose-photo-caption{font-size:13px;color:var(--grey);margin-top:8px;}

.checklist{list-style:none;margin:18px 0 8px;}
.checklist li{display:flex;gap:10px;font-size:14.5px;color:var(--ink);margin-bottom:10px;font-weight:600;}
.checklist li::before{content:"";width:8px;height:8px;background:var(--lime);border-radius:50%;margin-top:6px;flex:none;}

/* service cards / hub grids */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.svc-card{border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--paper);transition:box-shadow .15s;}
.svc-card:hover{box-shadow:0 8px 24px rgba(14,51,112,.08);}
.svc-photo{aspect-ratio:16/10;}
.svc-body{padding:22px 22px 24px;}

/* client logo strip */
.client-logos{display:flex;gap:24px;flex-wrap:wrap;align-items:stretch;}
.client-logo-card{flex:1 1 220px;max-width:280px;display:flex;align-items:center;justify-content:center;padding:28px;border:1px solid var(--line);border-radius:6px;background:var(--paper);}
.client-logo-card img{max-width:100%;max-height:64px;width:auto;height:auto;object-fit:contain;}
@media(max-width:640px){
  .client-logo-card{flex:1 1 45%;padding:20px;}
  .client-logo-card img{max-height:48px;}
}
.svc-body p{color:var(--grey);font-size:14.5px;margin-bottom:16px;}

.svc-carousel-viewport{overflow:hidden;padding:8px 0 4px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 40px,#000 calc(100% - 40px),transparent);mask-image:linear-gradient(90deg,transparent,#000 40px,#000 calc(100% - 40px),transparent);}
.svc-carousel-track{display:flex;gap:24px;width:max-content;padding:0 24px;animation:svcScroll 46s linear infinite;}
.svc-carousel-track:hover{animation-play-state:paused;}
.svc-carousel-card{flex:0 0 300px;width:300px;}
@keyframes svcScroll{
  0%{transform:translateX(0);}
  100%{transform:translateX(-50%);}
}
@media (prefers-reduced-motion: reduce){
  .svc-carousel-track{animation:none;}
}
@media (max-width:900px){
  .svc-carousel-card{flex:0 0 240px;width:240px;}
}
.svc-link{font-weight:700;font-size:14px;color:var(--navy);border-bottom:2px solid var(--lime);padding-bottom:2px;}

.split{background:var(--paper-2);}
.split-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;}
.split-photo{aspect-ratio:1060/514;border-radius:6px;}
.split-copy p{color:var(--grey);font-size:16px;margin-bottom:14px;}

.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;}
.why-icon{width:48px;height:48px;border-radius:50%;background:var(--lime);display:flex;align-items:center;justify-content:center;margin-bottom:14px;color:var(--navy);}
.why-icon svg{width:24px;height:24px;}
.why-card p{font-size:14px;color:var(--grey);}

.commercial{background:var(--navy);color:#fff;}
.commercial .kicker{color:var(--lime);}
.commercial h2{color:#fff;}
.commercial .lede{color:#c6cee2;max-width:560px;}
.comm-tags{display:flex;flex-wrap:wrap;gap:10px;margin:26px 0 30px;}
.comm-tags span{border:1px solid rgba(255,255,255,.25);color:#dde3f0;font-size:13px;font-weight:600;padding:7px 14px;border-radius:20px;}

.gallery-carousel{position:relative;width:100%;aspect-ratio:4/3;border-radius:8px;overflow:hidden;background:var(--navy);}
.gc-img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;animation:gcFade 24s infinite;}
@keyframes gcFade{
  0%{opacity:0;}
  3%{opacity:1;}
  14%{opacity:1;}
  17%{opacity:0;}
  100%{opacity:0;}
}
@media (prefers-reduced-motion: reduce){
  .gc-img{animation:none;opacity:0;}
  .gc-img:first-child{opacity:1;}
}

/* Small per-card photo carousels (2-3 images of the same subject) used on
   the homepage services carousel — same fade technique as the work gallery
   above, scaled down and running inside a card's photo slot. */
.mini-carousel{position:relative;}
.mc-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;}
.mc-2 .mc-img{animation:mcFade2 6s infinite;}
.mc-3 .mc-img{animation:mcFade3 9s infinite;}
@keyframes mcFade2{
  0%{opacity:0;} 4%{opacity:1;} 46%{opacity:1;} 50%{opacity:0;} 100%{opacity:0;}
}
@keyframes mcFade3{
  0%{opacity:0;} 3%{opacity:1;} 30%{opacity:1;} 33.3%{opacity:0;} 100%{opacity:0;}
}
.mc-4 .mc-img{animation:mcFade4 12s infinite;}
@keyframes mcFade4{
  0%{opacity:0;} 2.25%{opacity:1;} 22.5%{opacity:1;} 25%{opacity:0;} 100%{opacity:0;}
}
@media (prefers-reduced-motion: reduce){
  .mc-img{animation:none;opacity:0;}
  .mc-img:first-child{opacity:1;}
}

.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.review-card{border:1px solid var(--line);border-radius:6px;padding:22px;background:var(--paper);}
.stars{color:var(--lime-dark);font-size:14px;margin-bottom:10px;letter-spacing:2px;}
.review-card p{font-size:14px;color:var(--ink);margin-bottom:14px;font-style:italic;}
.review-name{font-size:13px;font-weight:700;color:var(--navy);}
.review-note{font-size:12px;color:var(--grey);margin-top:2px;}
.review-disclaimer{font-size:13px;color:#a9432c;margin-bottom:20px;}

.areas-list{display:flex;flex-wrap:wrap;gap:10px;}
.areas-list span{background:var(--paper-2);border:1px solid var(--line);font-size:13.5px;font-weight:600;color:var(--navy-2);padding:9px 16px;border-radius:20px;}

/* FAQ */
.faq details{border-bottom:1px solid var(--line);padding:16px 0;}
.faq summary{font-weight:700;font-size:15.5px;color:var(--navy);cursor:pointer;list-style:none;position:relative;padding-right:28px;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";position:absolute;right:0;top:0;font-size:18px;color:var(--navy);font-weight:800;}
.faq details[open] summary::after{content:"\2212";}
.faq p{margin-top:10px;color:var(--grey);font-size:14.5px;max-width:720px;}

/* related links */
.related-links{display:flex;flex-wrap:wrap;gap:12px;}
.related-links a{border:1px solid var(--line);border-radius:20px;padding:9px 16px;font-size:13.5px;font-weight:600;color:var(--navy-2);}
.related-links a:hover{border-color:var(--navy);}

/* generic cta banner */
.cta-banner{background:var(--lime);text-align:center;padding:64px 24px;}
.cta-banner h2{color:var(--navy);}
.cta-banner p{color:var(--navy-2);font-size:16.5px;margin-bottom:26px;}

/* quote page */
.quote-embed{max-width:720px;margin:0 auto;background:var(--paper-2);border:1px solid var(--line);border-radius:8px;padding:32px;min-height:280px;}

footer{background:var(--navy-2);color:#c6cee2;padding:56px 0 26px;font-size:14px;}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:36px;padding-bottom:36px;border-bottom:1px solid rgba(255,255,255,.1);}
.foot-grid h4{color:#fff;font-size:13.5px;font-weight:800;letter-spacing:.03em;margin-bottom:14px;text-transform:uppercase;}
.foot-grid li{margin-bottom:9px;}
.foot-grid a:hover{color:var(--lime);}
.foot-bottom{display:flex;justify-content:space-between;padding-top:22px;font-size:12.5px;color:#8b96b3;flex-wrap:wrap;gap:10px;}
.acknowledgment{background:linear-gradient(rgba(10,12,10,.72),rgba(10,12,10,.72)),url("/assets/acknowledgment-banner.jpg") center/cover repeat-x;padding:22px 24px;}
.acknowledgment p{max-width:820px;margin:0 auto;text-align:center;color:#e8e8e0;font-size:12.5px;line-height:1.6;}
.ack-flags{display:flex;justify-content:center;align-items:center;gap:14px;margin-bottom:14px;flex-wrap:wrap;}
.ack-flags img{width:52px;height:auto;border-radius:3px;box-shadow:0 0 0 1px rgba(255,255,255,.25);}

@media (max-width: 900px){
  .navtoggle{display:block;}
  nav.mainnav{position:fixed;top:65px;left:0;right:0;bottom:0;background:var(--paper);flex-direction:column;
    align-items:flex-start;padding:24px;gap:0;transform:translateX(100%);transition:transform .2s;overflow-y:auto;}
  nav.mainnav.open{transform:translateX(0);}
  nav.mainnav a{width:100%;padding:14px 0;border-bottom:1px solid var(--line);font-size:16px;}
  nav.mainnav .nav-mobile-cta{display:block;width:100%;text-align:center;margin-top:14px;}
  nav.mainnav .nav-mobile-cta:first-of-type{margin-top:20px;}
  .head-cta{display:none;}
  .hero-grid{grid-template-columns:1fr;padding:52px 24px 60px;}
  .hero h1{font-size:32px;}
  .page-hero h1{font-size:27px;}
  .svc-grid{grid-template-columns:1fr 1fr;}
  .why-grid{grid-template-columns:1fr 1fr;}
  .split-grid{grid-template-columns:1fr;gap:32px;}
  .review-grid{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:560px){
  .svc-grid{grid-template-columns:1fr;}
  .why-grid{grid-template-columns:1fr;}
}
