:root { --ink:#17342e; --forest:#1c4b3f; --lime:#c7e65a; --cream:#f8f4eb; --orange:#ed8d50; --muted:#658078; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:"DM Sans",sans-serif; }
.wrap { width:min(1120px, calc(100% - 48px)); margin:auto; }
.hero { min-height:650px; color:#fff; background:linear-gradient(90deg, rgba(12,49,39,.92) 0%, rgba(18,61,48,.79) 47%, rgba(12,47,37,.43) 100%), url("https://images.unsplash.com/photo-1594498653385-d5172c532c00?auto=format&fit=crop&fm=jpg&ixlib=rb-4.1.0&q=85&w=2400") center/cover; position:relative; overflow:hidden; isolation:isolate; }
.nav { height:104px; display:flex; justify-content:space-between; align-items:center; position:relative; z-index:4; }
.brand { display:flex; gap:10px; align-items:center; color:#fff; text-decoration:none; letter-spacing:1.4px; font-size:13px; font-weight:700; line-height:1.05; }
.brand small { font-size:8px; letter-spacing:1.9px; font-weight:500; }
.brand-mark { width:36px; height:36px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.65); border-radius:50%; font-family:Outfit,sans-serif; font-size:21px; }
.nav-call { color:#fff; text-decoration:none; border-bottom:1px solid var(--lime); padding-bottom:5px; font-size:14px; font-weight:600; }
.hero-content { padding:77px 0 165px; position:relative; z-index:3; }
.eyebrow { color:var(--lime); text-transform:uppercase; letter-spacing:2px; font-size:11px; font-weight:700; margin:0 0 17px; }
h1,h2,h3 { font-family:Outfit,sans-serif; margin:0; letter-spacing:-1.6px; }
h1 { max-width:700px; font-size:clamp(54px,7vw,90px); line-height:.94; }
h1 em { color:var(--lime); font-style:normal; }
.intro { max-width:440px; font-size:18px; line-height:1.55; color:#d6e2d9; margin:27px 0 29px; }
.actions { display:flex; flex-wrap:wrap; gap:12px; }
.button { padding:14px 20px; text-decoration:none; font-weight:700; border-radius:3px; transition:transform .2s; }
.button:hover { transform:translateY(-2px); }
.button-primary { color:var(--ink); background:var(--lime); }
.button-primary span { padding-left:12px; font-size:21px; vertical-align:-1px; }
.button-light { color:#fff; border:1px solid rgba(255,255,255,.55); }
.services { padding:110px 0 118px; }
.section-heading { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:40px; }
.section-heading .eyebrow { color:#6b8a7f; }
h2 { font-size:clamp(34px,4vw,50px); line-height:1.02; }
.cards { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.service-card { min-height:310px; padding:27px; background:#fff; border:1px solid #e5e5dc; display:flex; flex-direction:column; position:relative; }
.service-card.featured { background:var(--ink); color:#fff; border-color:var(--ink); }
.icon { width:43px; height:43px; display:grid; place-items:center; border-radius:50%; color:var(--forest); background:#dcebc9; font-size:26px; font-family:Georgia,serif; }
.featured .icon { color:var(--lime); background:rgba(199,230,90,.14); }
.number { position:absolute; right:25px; top:20px; color:#a5b7ad; font-size:12px; font-weight:700; }
.featured .number { color:#7d998e; }
h3 { margin-top:31px; font-size:26px; letter-spacing:-.6px; }
.service-card > p:not(.number) { color:var(--muted); line-height:1.52; margin:9px 0 20px; font-size:14px; }
.featured > p:not(.number) { color:#c1d1c8; }
.price { margin-top:auto; display:flex; align-items:baseline; gap:7px; }
.price strong { color:var(--orange); font-family:Outfit,sans-serif; font-size:26px; letter-spacing:-.7px; }
.featured .price strong { color:var(--lime); }
.price span { color:var(--muted); font-size:13px; }
.featured .price span { color:#bfd1c6; }
.seasonal { padding:0 0 112px; display:grid; grid-template-columns:.82fr 1.18fr; gap:66px; align-items:center; }
.seasonal .eyebrow { color:#6b8a7f; }
.seasonal-intro > p:last-child { color:var(--muted); font-size:15px; line-height:1.55; max-width:370px; margin:17px 0 0; }
.seasonal-jobs { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
.seasonal-jobs article { background:#dcebc9; padding:25px 22px; min-height:180px; }
.seasonal-jobs article:last-child { background:#d9e7eb; }
.season-icon { display:grid; place-items:center; width:38px; height:38px; margin-bottom:23px; border-radius:50%; color:#fff; background:#759950; font-size:27px; font-family:Georgia,serif; }
.season-icon.snow { background:#5d8790; font-size:20px; }
.seasonal-jobs h3 { font-size:21px; letter-spacing:-.4px; }
.seasonal-jobs p { color:#5e786c; font-size:13px; line-height:1.45; margin:6px 0 0; }
.seasonal-jobs .season-price { margin-top:13px; color:#365a4b; font-weight:600; }
.season-price strong { color:var(--orange); font-family:Outfit,sans-serif; font-size:22px; letter-spacing:-.4px; }
.season-action { display:inline-block; align-self:flex-start; margin-top:15px; color:var(--ink); text-decoration:none; font-size:12px; font-weight:700; border-bottom:1px solid currentColor; padding-bottom:3px; }
.season-action[aria-disabled="true"] { color:#77877e; border-color:transparent; cursor:not-allowed; }
.contact { background:#e9efe2; padding:68px 0; }
.contact-inner { display:flex; justify-content:space-between; gap:40px; align-items:center; }
.contact .eyebrow { color:#648174; }
.contact h2 { max-width:570px; }
.contact-links { display:flex; flex-direction:column; gap:12px; align-items:flex-start; }
.contact-links a { color:var(--ink); text-decoration:none; font-size:17px; font-weight:700; border-bottom:1px solid #a5b79d; padding-bottom:4px; }
.contact-links span { color:#617a70; font-size:11px; text-transform:uppercase; letter-spacing:1.3px; margin-right:8px; }
footer { padding:25px 0 33px; display:flex; justify-content:space-between; font-size:12px; color:#6e8179; }
footer a { color:var(--ink); text-decoration:none; }
@media (max-width:760px) { .wrap { width:min(100% - 36px, 1120px); } .nav { height:86px; } .nav-call { font-size:12px; } .hero { min-height:610px; background-position:58% center; } .hero-content { padding:67px 0 160px; } .section-heading,.contact-inner { display:block; } .section-heading { margin-bottom:27px; } .cards { grid-template-columns:1fr; } .service-card { min-height:265px; } .services { padding:76px 0; } .seasonal { display:block; padding:0 0 76px; } .seasonal-jobs { margin-top:28px; grid-template-columns:1fr; } .seasonal-jobs article { min-height:0; } .contact { padding:58px 0; } .contact-links { margin-top:30px; } footer { gap:15px; } }
