:root {
  --forest: #163d2a;
  --forest-deep: #0d2b1d;
  --moss: #6f8b55;
  --lime: #d9f087;
  --lime-soft: #ecf7c7;
  --sand: #f4f1e9;
  --cream: #fbfaf7;
  --ink: #173124;
  --muted: #64746a;
  --line: rgba(23, 49, 36, .13);
  --white: #ffffff;
  --display: "Playfair Display", Georgia, serif;
  --sans: "DM Sans", Arial, sans-serif;
  --radius-xl: 32px;
  --radius-lg: 22px;
  --radius-md: 16px;
  --shadow: 0 28px 60px rgba(13, 43, 29, .12);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 92px; }
body { margin: 0; background: var(--cream); color: var(--ink); font-family: var(--sans); -webkit-font-smoothing: antialiased; }
body.modal-open { overflow: hidden; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }
.container { width: min(1100px, calc(100% - 56px)); margin: 0 auto; }
.page-noise { position: fixed; inset: 0; pointer-events: none; z-index: 10; opacity: .18; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.13'/%3E%3C/svg%3E"); mix-blend-mode: multiply; }
.scroll-progress { --progress: 0deg; position: fixed; z-index: 80; right: max(22px, calc((100vw - 1100px) / 2 - 76px)); top: 50%; display: grid; place-items: center; width: 50px; height: 50px; border: 0; border-radius: 50%; color: var(--forest); background: transparent; opacity: 0; pointer-events: none; transform: translateY(-50%) scale(.94); transition: opacity .25s ease, transform .25s ease; }
.scroll-progress.is-visible { opacity: 1; pointer-events: auto; transform: translateY(-50%) scale(1); }
.scroll-progress-ring { position: absolute; inset: 0; border-radius: 50%; background: conic-gradient(var(--lime) var(--progress), rgba(255,255,255,.38) 0); box-shadow: 0 14px 28px rgba(13,43,29,.18); }
.scroll-progress-ring::after { content: ""; position: absolute; inset: 4px; border-radius: 50%; background: rgba(255,255,255,.94); }
.scroll-progress-arrow { position: relative; z-index: 1; font-size: 19px; font-weight: 900; line-height: 1; transform: translateY(-1px); transition: transform .22s ease; }
.scroll-progress:hover .scroll-progress-arrow { transform: translateY(-4px); }

/* Header */
.site-header { position: fixed; z-index: 90; width: 100%; top: 0; left: 0; color: #fff; background: rgba(13, 43, 29, .94); border-bottom: 1px solid rgba(255,255,255,.10); box-shadow: 0 10px 30px rgba(7,31,18,.14); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
.nav-wrap { min-height: 92px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.brand { display: inline-flex; align-items: center; gap: 9px; font-size: 23px; line-height: 1; font-weight: 700; letter-spacing: -.8px; }
.brand-mark { width: 30px; height: 30px; color: var(--lime); flex: none; }
.main-nav { display: flex; gap: 29px; margin-left: auto; margin-right: 18px; }
.main-nav a { font-size: 14px; font-weight: 500; opacity: .83; transition: opacity .2s ease; }
.main-nav a:hover { opacity: 1; }
.nav-cta { display: inline-grid; grid-template-columns: auto auto; grid-template-rows: auto auto; column-gap: 10px; row-gap: 1px; align-items: center; border: 1px solid rgba(255,255,255,.42); color: #fff; background: rgba(255,255,255,.06); padding: 9px 15px 9px 18px; border-radius: 100px; font-size: 13px; font-weight: 700; transition: transform .2s ease, background .2s ease; }
.nav-cta:hover { transform: translateY(-2px); background: rgba(255,255,255,.16); }
.nav-cta small { grid-column: 1; display: block; max-width: 118px; overflow: hidden; color: rgba(255,255,255,.68); font-size: 9px; font-weight: 700; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
.nav-cta svg { grid-column: 2; grid-row: 1 / span 2; width: 18px; height: 18px; }
.nav-call { display: inline-flex; align-items: center; min-height: 42px; padding: 0 16px; border-radius: 100px; color: var(--forest); background: var(--lime); font-size: 13px; font-weight: 800; box-shadow: 0 10px 20px rgba(7,31,18,.14); transition: transform .2s ease, background .2s ease; }
.nav-call:hover { transform: translateY(-2px); background: #e5f8a2; }
.nav-toggle { display: none; }

/* Hero */
.hero { position: relative; overflow: hidden; padding: 116px 0 28px; min-height: 620px; color: #fff; background: linear-gradient(135deg, #17432f 0%, #16412c 53%, #0f3422 100%); }
.hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.06), transparent 48%), radial-gradient(circle at 88% 10%, rgba(211,242,129,.09), transparent 26%); }
.hero::after { content: ""; position: absolute; right: -150px; bottom: -310px; width: 730px; height: 730px; border-radius: 50%; border: 1px solid rgba(230, 255, 161, .12); box-shadow: 0 0 0 55px rgba(230,255,161,.035), 0 0 0 115px rgba(230,255,161,.025); }
.hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.02fr .98fr; align-items: center; gap: 30px; }
.hero-copy { padding-bottom: 8px; }
.eyebrow { display: flex; align-items: center; gap: 8px; margin: 0 0 18px; font-size: 11px; font-weight: 700; letter-spacing: 1.25px; text-transform: uppercase; color: rgba(255,255,255,.74); }
.eyebrow.dark { color: var(--moss); }
.eyebrow-dot { width: 7px; height: 7px; display: inline-block; border-radius: 50%; background: var(--lime); box-shadow: 0 0 0 5px rgba(217,240,135,.13); animation: soft-pulse 2.8s ease-in-out infinite; }
.eyebrow.dark .eyebrow-dot { background: var(--forest); box-shadow: 0 0 0 5px rgba(22,61,42,.08); }
.discount-pill { display: inline-flex; align-items: center; gap: 9px; margin: 0 0 16px; padding: 8px 13px 8px 8px; border: 1px solid rgba(217,240,135,.5); border-radius: 999px; color: #fff; background: rgba(217,240,135,.12); box-shadow: 0 14px 30px rgba(0,0,0,.11); font-size: 12px; font-weight: 800; letter-spacing: .2px; }
.discount-pill strong { display: grid; place-items: center; width: 38px; height: 30px; border-radius: 999px; color: var(--forest); background: var(--lime); font-size: 15px; }
.discount-pill span { color: rgba(255,255,255,.84); }
h1, h2, h3, p { margin-top: 0; }
h1 { max-width: 600px; margin-bottom: 18px; font-family: var(--display); font-size: clamp(3.15rem, 4.6vw, 4.65rem); line-height: .99; letter-spacing: -3px; font-weight: 600; }
h1 em, h2 em { color: var(--lime); font-weight: 600; }
.hero-text { max-width: 520px; margin-bottom: 24px; font-size: 16px; line-height: 1.6; color: rgba(255,255,255,.75); }
.hero-actions { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 15px; border: 0; padding: 15px 21px; border-radius: 100px; font-size: 14px; font-weight: 700; transition: transform .22s ease, box-shadow .22s ease, background .22s ease; }
.button span { font-size: 20px; line-height: .6; transition: transform .2s ease; }
.button:hover { transform: translateY(-3px); }
.button:hover span { transform: translateX(3px); }
.button-primary { background: var(--lime); color: #143422; box-shadow: 0 12px 25px rgba(9,26,17,.15); }
.button-primary:hover { background: #e5f8a2; box-shadow: 0 16px 32px rgba(9,26,17,.22); }
.button-ghost { border: 1px solid rgba(255,255,255,.34); color: #fff; background: rgba(255,255,255,.08); }
.button-ghost:hover { background: rgba(255,255,255,.15); }
.button-outline { margin: 0 14px 18px 0; border: 1px solid rgba(22,61,42,.18); color: var(--forest); background: #fff; box-shadow: 0 10px 20px rgba(22,61,42,.07); }
.button-outline:hover { background: var(--lime-soft); }
.text-link { border: 0; padding: 3px 0; background: transparent; color: #fff; display: inline-flex; align-items: center; gap: 9px; font-size: 14px; font-weight: 700; border-bottom: 1px solid rgba(255,255,255,.36); }
.text-link span { font-size: 18px; line-height: 1; transition: transform .2s ease; }
.text-link:hover span { transform: translateY(2px); }
.hero-proof { display: flex; align-items: center; gap: 14px; margin-top: 28px; }
.avatars { display: flex; padding-left: 7px; }
.avatars span { width: 31px; height: 31px; display: grid; place-items: center; margin-left: -7px; border: 2px solid #17432f; border-radius: 50%; background: #d1deb3; color: #2a4d36; font-size: 10px; font-weight: 800; }
.avatars span:nth-child(2) { background: #d6bc9a; color: #6d4630; }.avatars span:nth-child(3) { background: #a9c6c8; color: #244952; }.avatars span:nth-child(4) { background: var(--lime); }
.hero-proof p { margin: 0; font-size: 12px; line-height: 1.45; color: rgba(255,255,255,.7); }
.hero-proof strong { color: #fff; font-size: 13px; }.hero-proof span { color: rgba(255,255,255,.55); }

/* Hero illustrative garden */
.hero-visual { position: relative; height: 390px; min-width: 0; }
.visual-shadow { position: absolute; bottom: 0; left: 50%; width: 72%; height: 42px; transform: translateX(-50%); border-radius: 50%; background: rgba(1,17,9,.28); filter: blur(15px); }
.garden-card { position: absolute; overflow: hidden; border-radius: 30px; }
.card-back { right: 10px; top: 13px; width: 72%; height: 79%; transform: rotate(8deg); background: #b4d6a0; opacity: .95; }
.back-leaf { position: absolute; width: 180px; height: 140px; border-radius: 100% 0 100% 0; border: 32px solid rgba(55,104,65,.24); transform: rotate(35deg); }.leaf-a { top: -26px; left: 36px; }.leaf-b { bottom: -40px; right: -8px; transform: rotate(225deg); }
.card-main { bottom: 18px; left: 18px; width: 83%; height: 78%; background: linear-gradient(180deg, #d9edce 0 53%, #6ba261 53% 100%); box-shadow: 0 26px 45px rgba(5,28,15,.26); }
.sun { position: absolute; top: 45px; right: 54px; width: 75px; height: 75px; border-radius: 50%; background: #ffdb82; box-shadow: 0 0 0 18px rgba(255,231,161,.24); }
.cloud { position: absolute; height: 15px; border-radius: 50px; background: rgba(255,255,255,.8); }.cloud::before,.cloud::after { content:""; position:absolute; bottom:0; border-radius:50%; background:inherit; }.cloud::before{width:21px;height:21px;left:8px}.cloud::after{width:27px;height:27px;right:8px}.cloud-one{top:75px;left:53px;width:58px}.cloud-two{top:139px;left:119px;width:43px;opacity:.75;transform:scale(.7)}
.hill { position: absolute; border-radius: 50% 50% 0 0; }.hill-back { height: 180px; width: 125%; left: -8%; bottom: 29%; background: #8ebd77; }.hill-front { height: 170px; width: 128%; right: -31%; bottom: -11%; background: #4e8b54; transform: rotate(-9deg); }
.tree { position: absolute; z-index: 2; bottom: 32%; }.tree .trunk { position: absolute; width: 12px; height: 73px; left: 33px; top: 42px; border-radius: 9px; background: #796046; }.tree .crown { position: absolute; width: 80px; height: 83px; border-radius: 47% 52% 42% 56%; background: #2d7445; box-shadow: 20px 20px 0 -10px #397f4a; }.tree-one{left:54px;transform:scale(.76)}.tree-two{right:66px;bottom:31%;transform:scale(.95)}
.path { position: absolute; z-index: 3; bottom: -15px; left: 45%; width: 92px; height: 285px; transform: translateX(-50%) perspective(160px) rotateX(8deg); border-radius: 80% 80% 0 0; background: #e7d9bb; }
.plant { position: absolute; z-index: 4; bottom: 30px; width: 60px; height: 100px; }.plant i { position: absolute; bottom: 0; width: 27px; height: 68px; background: #d4eb88; border-radius: 100% 0 100% 0; transform-origin: bottom right; }.plant i:nth-child(1){left:5px;transform:rotate(-37deg)}.plant i:nth-child(2){left:21px;height:72px;transform:rotate(4deg)}.plant i:nth-child(3){left:38px;transform:rotate(41deg)}.plant-a{left:19px}.plant-b{right:28px;transform:scale(.78)}
.garden-label { display: none; }.label-icon{color:var(--lime);font-size:17px}
.float-card { position: absolute; z-index: 9; display: flex; align-items: center; gap: 10px; padding: 12px 15px; border: 1px solid rgba(255,255,255,.72); border-radius: 14px; color: var(--ink); background: rgba(255,255,255,.93); box-shadow: 0 16px 28px rgba(5,27,16,.15); backdrop-filter: blur(7px); text-align:left; transition: transform .2s ease, box-shadow .2s ease; }.float-card:hover{transform:translateY(-3px);box-shadow:0 20px 34px rgba(5,27,16,.2)}.float-card:disabled{cursor:not-allowed;opacity:.78;transform:none}.float-card small{display:block;margin-bottom:2px;color:#718078;font-size:9px;font-weight:600}.float-card strong{font-size:12px;white-space:nowrap}.appointment-card{top:45px;left:-24px}.quote-card{bottom:3px;right:-5px}.float-icon,.quote-check{display:grid;place-items:center;flex:none;width:26px;height:26px;border-radius:8px;background:var(--lime-soft);color:var(--forest);font-weight:800}.calendar-icon{font-size:20px;line-height:1}.quote-check{background:#dff2d4}.pulse-dot{flex:none;width:7px;height:7px;margin-left:5px;border-radius:50%;background:#52a965;box-shadow:0 0 0 4px rgba(82,169,101,.17)}
.trust-row { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3, 1fr); max-width: 820px; margin-top: 10px; padding: 15px 21px; border: 1px solid rgba(255,255,255,.14); border-radius: 16px; background: rgba(7,31,18,.15); backdrop-filter: blur(4px); }.trust-row>div{display:flex;align-items:center;gap:11px;padding:0 17px;border-right:1px solid rgba(255,255,255,.13)}.trust-row>div:last-child{border-right:0}.trust-icon{width:25px;height:25px;display:grid;place-items:center;border-radius:7px;background:rgba(217,240,135,.12);color:var(--lime);font-size:14px;animation: soft-pulse 3.4s ease-in-out infinite}.trust-row>div:nth-child(2) .trust-icon{animation-delay:.55s}.trust-row>div:nth-child(3) .trust-icon{animation-delay:1.1s}.trust-row p{margin:0;color:rgba(255,255,255,.62);font-size:11px;line-height:1.35}.trust-row strong{color:#fff;font-size:12px}

/* General sections */
.section-pad { padding: 104px 0; }
.intro-section { background: var(--cream); }
.section-heading { margin-bottom: 47px; }.split-heading { display: grid; grid-template-columns: 1.05fr .75fr; gap: 70px; align-items: end; }
h2 { margin-bottom: 0; color: var(--forest); font-family: var(--display); font-size: clamp(2.7rem, 4.35vw, 4.4rem); line-height: 1.04; letter-spacing: -2.4px; font-weight: 600; }.split-heading h2 em,.about-copy h2 em,.booking-copy h2 em,.modal h2 em{color:#6d9259}.heading-side{padding-bottom:7px}.heading-side p{max-width:380px;margin-bottom:19px;color:var(--muted);font-size:15px;line-height:1.65}.dark-link{color:var(--forest);border-bottom-color:rgba(22,61,42,.32)}.dark-link span{font-size:17px}.dark-link:hover span{transform:translateX(3px)}
.service-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }.service-card{position:relative;overflow:hidden;border:1px solid rgba(26,63,44,.09);border-radius:18px;background:#fff;box-shadow:0 14px 30px rgba(13,43,29,.04);transition:transform .42s cubic-bezier(.2,.72,.2,1),box-shadow .42s ease,border-color .42s ease}.service-card::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(135deg,rgba(217,240,135,.18),transparent 42%);opacity:0;transition:opacity .42s ease}.service-card:hover{transform:translateY(-7px);border-color:rgba(26,63,44,.16);box-shadow:0 28px 56px rgba(13,43,29,.13)}.service-card:hover::after{opacity:1}.service-art{height:185px;position:relative;overflow:hidden;transition:transform .55s cubic-bezier(.2,.72,.2,1),filter .42s ease}.service-card:hover .service-art{transform:scale(1.025);filter:saturate(1.05)}.service-featured .service-art{height:185px}.service-card-content{position:relative;z-index:1;padding:20px 20px 22px}.service-number{display:inline-flex;margin-bottom:10px;color:#799463;font-size:10px;font-weight:700;letter-spacing:1px}.service-price{display:inline-flex;margin:0 0 13px 7px;padding:5px 8px;border-radius:999px;color:#315c3d;background:#edf6e8;font-size:10px;font-weight:800;white-space:nowrap}.service-card h3{min-height:54px;margin-bottom:10px;color:var(--forest);font-family:var(--display);font-size:21px;line-height:1.08;letter-spacing:-.5px}.service-card p{min-height:116px;margin-bottom:18px;color:var(--muted);font-size:12px;line-height:1.58}.service-link{border:0;padding:0;background:transparent;color:var(--forest);font-size:12px;font-weight:800}.service-link span{display:inline-block;margin-left:4px;font-size:16px;transition:transform .24s ease}.service-link:hover span{transform:translate(3px,-3px)}
.art-lawn{background:linear-gradient(180deg,#dcefc9 0 45%,#8fc273 45% 100%)}.lawn-sun{position:absolute;width:57px;height:57px;border-radius:50%;top:31px;right:43px;background:#ffdc84}.lawn-wave{position:absolute;left:-5%;width:110%;border-radius:50%;}.wave-one{height:95px;bottom:72px;background:#b7d991;transform:rotate(4deg)}.wave-two{height:120px;bottom:-42px;background:#5fa459;transform:rotate(-3deg)}.mower{position:absolute;z-index:2;bottom:44px;left:44%;width:82px;height:43px;border-radius:28px 28px 15px 15px;background:#ecf5d6;box-shadow:inset -14px -5px #bad46e}.mower::before,.mower::after{content:"";position:absolute;bottom:-8px;width:17px;height:17px;border-radius:50%;background:#274b35}.mower::before{left:9px}.mower::after{right:9px}.mower span{position:absolute;width:7px;height:58px;right:13px;top:-46px;background:#3c5d3c;transform:rotate(-20deg);border-radius:5px}.mower i{position:absolute;right:-11px;top:-50px;width:28px;height:8px;border-radius:8px;background:#3c5d3c;transform:rotate(-20deg)}.mower b{position:absolute;left:18px;top:13px;width:18px;height:9px;border-radius:9px;background:#739c60}.grass{position:absolute;z-index:4;bottom:15px;width:22px;height:66px;border-left:4px solid #d5ea8b;border-radius:80%}.grass::after{content:"";position:absolute;bottom:7px;left:4px;width:22px;height:45px;border-right:4px solid #d5ea8b;border-radius:80%}.grass-one{left:23px}.grass-two{right:34px;transform:scale(.7)}
.art-hedge{background:linear-gradient(180deg,#c4e0d8 0 48%,#ddebc9 48% 100%)}.hedge-sky{position:absolute;inset:0 0 47% 0;background:linear-gradient(90deg,transparent 62%,rgba(255,255,255,.5) 62% 68%,transparent 68%)}.hedge-row{position:absolute;bottom:0;left:-4%;display:flex;gap:-6px;width:112%;height:61%;align-items:end}.hedge-row i{display:block;width:34%;height:87%;margin-left:-12px;background:#518d52;border-radius:50% 50% 12px 12px;box-shadow:inset -10px -8px rgba(31,96,47,.17)}.hedge-row i:nth-child(2){height:100%;background:#5a9758}.hedge-row i:nth-child(3){height:78%;background:#4b864e}.hedge-row i:nth-child(4){height:94%;background:#5b9858}.shears{position:absolute;z-index:3;right:52px;top:49px;width:63px;height:70px;transform:rotate(-24deg)}.shears b{position:absolute;width:7px;height:75px;background:#2f4a38;border-radius:10px;transform-origin:bottom}.shears b:first-child{left:24px;transform:rotate(-33deg)}.shears b:nth-child(2){left:29px;transform:rotate(33deg)}.shears span{position:absolute;bottom:3px;left:18px;width:25px;height:25px;border:5px solid #d8ee9c;border-radius:50%}
.art-design{background:linear-gradient(180deg,#d7e9dc 0 46%,#c7dbac 46% 100%)}.design-sky{position:absolute;top:31px;left:38px;width:63px;height:34px;border-radius:24px;background:rgba(255,255,255,.75)}.design-yard{position:absolute;bottom:0;left:0;width:100%;height:56%;background:#90b979;clip-path:polygon(0 24%,100% 0,100% 100%,0 100%)}.design-deck{position:absolute;bottom:-19px;left:10%;width:93%;height:69%;background:#c99d70;transform:skewY(-8deg);border-top:8px solid #d6b281}.design-pot{position:absolute;z-index:3;bottom:38px;width:28px;height:33px;border-radius:4px 4px 9px 9px;background:#e6d6b0}.design-pot::before{content:"";position:absolute;bottom:22px;left:-9px;width:44px;height:52px;border-radius:60% 60% 20% 20%;background:#548c55}.pot-one{left:59px}.pot-two{right:47px;transform:scale(.72)}.design-chair{position:absolute;z-index:5;right:39px;bottom:34px;width:54px;height:54px;border:6px solid #426a48;border-bottom:0;border-radius:22px 22px 0 0;transform:skewY(-8deg)}
.art-season{background:linear-gradient(180deg,#dbe9ef 0 50%,#f6f7f3 50% 100%)}.season-sky{position:absolute;inset:0 0 48% 0;background:linear-gradient(135deg,#bfd7df,#e9f2ed)}.season-roof{position:absolute;left:19%;bottom:35%;width:66%;height:86px;background:#45694d;clip-path:polygon(50% 0,100% 62%,88% 62%,88% 100%,12% 100%,12% 62%,0 62%)}.season-snow{position:absolute;left:8%;bottom:17%;width:84%;height:92px;border-radius:50% 50% 12px 12px;background:#fff;box-shadow:0 -8px 0 rgba(255,255,255,.8)}.season-bin{position:absolute;right:43px;bottom:31px;width:44px;height:54px;border-radius:8px 8px 12px 12px;background:#6f8b55;box-shadow:inset -8px -4px rgba(22,61,42,.18)}.season-bin::before{content:"";position:absolute;left:-7px;top:-9px;width:58px;height:11px;border-radius:9px;background:#4d6f44}

/* RUT/ROT */
.deduction-section{background:var(--cream);padding-top:0}.deduction-grid{display:grid;grid-template-columns:1fr .9fr;gap:64px;align-items:center;padding:60px 70px;border-radius:var(--radius-xl);background:var(--lime-soft);box-shadow:0 18px 40px rgba(22,61,42,.08)}.deduction-card{padding:28px;border:1px solid rgba(22,61,42,.12);border-radius:18px;background:rgba(255,255,255,.72)}.deduction-card p{margin-bottom:19px;color:var(--muted);font-size:15px;line-height:1.65}.deduction-points{display:flex;flex-wrap:wrap;gap:9px}.deduction-points span{padding:8px 10px;border-radius:9px;color:#315c3d;background:#fff;font-size:12px;font-weight:800}

/* Process */
.process-section { color: #fff; background: var(--forest-deep); }.process-wrap{display:grid;grid-template-columns:.88fr 1.12fr;gap:98px;align-items:center}.process-intro h2{margin:0 0 20px;color:#fff}.process-intro h2 em{color:var(--lime)}.process-intro>p:not(.eyebrow){max-width:420px;margin-bottom:28px;color:rgba(255,255,255,.67);font-size:15px;line-height:1.68}.button-light{color:#fff;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22)}.button-light:hover{background:rgba(255,255,255,.17)}.process-list{margin:0;padding:0;list-style:none;border-top:1px solid rgba(255,255,255,.18)}.process-list li{display:grid;grid-template-columns:65px 1fr 30px;gap:17px;align-items:center;padding:25px 3px;border-bottom:1px solid rgba(255,255,255,.18)}.step-number{display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(217,240,135,.45);border-radius:50%;color:var(--lime);font-size:12px;font-weight:700}.process-list h3{margin-bottom:5px;font-size:18px;color:#fff}.process-list p{margin:0;color:rgba(255,255,255,.58);font-size:13px;line-height:1.5}.step-arrow{color:var(--lime);font-size:23px}

/* Booking */
.booking-section{background:var(--sand)}.booking-shell{display:grid;grid-template-columns:.86fr 1.14fr;gap:80px;align-items:center;padding:68px 72px;border-radius:var(--radius-xl);background:#fff;box-shadow:0 20px 45px rgba(49,53,32,.06)}.booking-copy h2{margin-bottom:20px}.booking-copy>p:not(.eyebrow){max-width:400px;margin-bottom:25px;color:var(--muted);font-size:15px;line-height:1.7}.booking-benefits{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:29px}.booking-benefits span{padding:7px 9px;border-radius:8px;background:#f0f7e7;color:#467146;font-size:11px;font-weight:700}.booking-widget{padding:24px;border:1px solid var(--line);border-radius:20px;background:#fcfcfa}.booking-widget-top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:19px;border-bottom:1px solid var(--line)}.booking-widget-top p{margin:0 0 3px;color:var(--forest);font-weight:700;font-size:14px}.booking-widget-top small{color:var(--muted);font-size:11px}.booking-live{display:flex;align-items:center;gap:5px;color:#4d8652;font-size:10px;font-weight:700}.booking-live i{width:6px;height:6px;border-radius:50%;background:#52a965;box-shadow:0 0 0 4px rgba(82,169,101,.12)}.date-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(56px,1fr));gap:8px;padding:21px 0 18px}.date-option{display:flex;min-width:0;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;border:1px solid transparent;border-radius:11px;background:#f4f6f1;color:var(--forest);transition:.18s}.date-option:hover{border-color:#abc892}.date-option.active{color:#fff;background:var(--forest);box-shadow:0 7px 15px rgba(22,61,42,.17)}.date-option span{font-size:9px;font-weight:700;text-transform:uppercase}.date-option strong{font-size:17px}.slot-header{display:flex;justify-content:space-between;align-items:center;padding:0 0 12px}.slot-header p{margin:0;color:var(--forest);font-size:12px;font-weight:700}.slot-header span{color:var(--muted);font-size:10px}.time-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(72px,1fr));gap:8px;min-height:41px;margin-bottom:18px}.time-slot{padding:10px 4px;border:1px solid var(--line);border-radius:9px;color:var(--forest);background:#fff;font-size:11px;font-weight:700;transition:.18s}.time-slot:hover,.time-slot.active{border-color:var(--forest);color:#fff;background:var(--forest)}.slot-empty{grid-column:1/-1;margin:0;padding:10px 0;color:var(--muted);font-size:11px}.widget-booking-button{width:100%;padding:13px;font-size:13px}.widget-booking-button:disabled{cursor:not-allowed;opacity:.45;transform:none}
.week-controls{display:grid;grid-template-columns:36px 1fr 36px;align-items:center;gap:10px;padding:16px 0 0}.week-controls strong{text-align:center;color:var(--forest);font-size:13px}.week-button{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--forest);font-size:22px;font-weight:800;transition:.18s}.week-button:hover{border-color:var(--forest);background:var(--forest);color:#fff}.week-button:disabled{cursor:not-allowed;opacity:.36;background:#f4f6f1;color:var(--muted);border-color:transparent}.date-option:disabled{cursor:not-allowed;opacity:.38}.date-option:disabled:hover{border-color:transparent}.booking-request-form{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fff}.booking-request-form label{display:block}.booking-request-form .full{grid-column:1/-1}.booking-request-form label>span{display:block;margin-bottom:7px;color:var(--forest);font-size:11px;font-weight:700}.booking-request-form label small{color:var(--muted);font-weight:500}.booking-request-form .button{grid-column:1/-1;margin-top:2px}.custom-booking-widget .success-message{margin-top:16px}

/* About + quote */
.about-section{background:#fff}.about-grid{display:grid;grid-template-columns:1fr .92fr;gap:100px;align-items:center}.about-visual{position:relative}.about-photo{position:relative;overflow:hidden;height:475px;border-radius:30px;background:linear-gradient(180deg,#cfe9dc 0 52%,#83b168 52% 100%)}.about-sun{position:absolute;top:73px;left:77px;width:82px;height:82px;border-radius:50%;background:#ffd380}.about-horizon{position:absolute;bottom:33%;left:-5%;width:110%;height:130px;border-radius:50% 50% 0 0;background:#b2d08d;transform:rotate(-4deg)}.about-bush{position:absolute;bottom:-15px;border-radius:50% 50% 0 0;background:#4d8951}.bush-one{left:-19px;width:53%;height:40%}.bush-two{right:-15px;width:59%;height:46%;background:#3f7c49}.about-person{position:absolute;z-index:3;bottom:79px;left:47%;width:70px;height:160px}.about-person i{position:absolute;top:0;left:24px;width:30px;height:30px;border-radius:50%;background:#c98961}.about-person b{position:absolute;top:28px;left:7px;width:61px;height:84px;border-radius:34px 34px 8px 8px;background:#f3e6bd}.about-person span{position:absolute;bottom:0;left:16px;width:44px;height:62px;border-radius:10px 10px 0 0;background:#465f45}.about-plant{position:absolute;z-index:5;bottom:25px;width:56px;height:100px}.about-plant::before,.about-plant::after{content:"";position:absolute;bottom:0;width:25px;height:87px;border-radius:100% 0 100% 0;background:#d5eb93}.about-plant::before{left:11px;transform:rotate(-28deg)}.about-plant::after{right:1px;transform:rotate(44deg)}.plant-one{left:30px}.plant-two{right:45px;transform:scale(.8)}.experience-tag{position:absolute;right:18px;bottom:24px;display:flex;align-items:center;gap:10px;padding:15px 17px;border:1px solid rgba(255,255,255,.77);border-radius:14px;color:#fff;background:var(--forest);box-shadow:0 16px 26px rgba(13,43,29,.2)}.experience-tag strong{font-family:var(--display);font-size:30px;line-height:1}.experience-tag span{font-size:11px;line-height:1.23}.about-copy p:not(.eyebrow){max-width:470px;margin:0 0 17px;color:var(--muted);font-size:15px;line-height:1.7}.about-copy h2{margin-bottom:25px}.about-copy .text-link{margin-top:9px}
.quote-section{padding:0 0 112px;background:#fff}.quote-banner{display:grid;grid-template-columns:1fr .73fr;gap:80px;align-items:center;overflow:hidden;padding:62px 70px;border-radius:28px;background:var(--forest);color:#fff;position:relative}.quote-banner::after{content:"";position:absolute;z-index:0;right:-95px;top:-145px;width:350px;height:350px;border:1px solid rgba(217,240,135,.15);border-radius:50%;box-shadow:0 0 0 40px rgba(217,240,135,.04),0 0 0 80px rgba(217,240,135,.025);pointer-events:none}.quote-banner>*{position:relative;z-index:1}.quote-banner h2{color:#fff;font-size:clamp(2.55rem,4vw,4rem)}.quote-banner h2 em{color:var(--lime)}.quote-banner-right{position:relative;z-index:1}.quote-banner-right p{max-width:370px;margin-bottom:24px;color:rgba(255,255,255,.7);font-size:15px;line-height:1.66}.button-lime{background:var(--lime);color:var(--forest)}

/* Footer */
.site-footer{color:#fff;background:#0d2b1d}.footer-top{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:end;gap:20px;padding:57px 0 50px}.footer-brand{font-size:29px}.footer-contact{justify-self:center;display:grid;gap:7px;margin:0;color:rgba(255,255,255,.66);font-size:13px;line-height:1.45}.footer-contact p{margin:0;color:#fff;font-weight:800}.footer-contact a{width:max-content;border-bottom:1px solid rgba(255,255,255,.28)}.footer-contact span{color:rgba(255,255,255,.48)}.footer-email{justify-self:end;border-bottom:1px solid rgba(255,255,255,.4);font-size:15px;font-weight:700}.footer-email span{margin-left:7px}.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:21px 0;border-top:1px solid rgba(255,255,255,.13);color:rgba(255,255,255,.45);font-size:11px}.footer-bottom p{margin:0}.footer-bottom div{display:flex;gap:20px}.footer-bottom a:hover{color:#fff}

/* Modals + forms */
.modal-backdrop{visibility:hidden;opacity:0;position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:22px;background:rgba(7,28,18,.62);backdrop-filter:blur(7px);transition:opacity .22s ease,visibility .22s ease}.modal-backdrop.open{visibility:visible;opacity:1}.modal{position:relative;overflow:auto;width:min(660px,100%);max-height:min(88vh,835px);padding:43px 45px 36px;border-radius:24px;background:#fff;box-shadow:0 30px 70px rgba(0,0,0,.22);transform:translateY(16px) scale(.98);transition:transform .22s ease}.modal-backdrop.open .modal{transform:translateY(0) scale(1)}.modal-close{position:absolute;right:18px;top:18px;display:grid;place-items:center;width:33px;height:33px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--forest);font-size:24px;line-height:1;transition:.18s}.modal-close:hover{background:var(--forest);color:#fff}.modal-head h2{margin-bottom:13px;font-size:clamp(2.3rem,4vw,3.2rem)}.modal-head>p:not(.eyebrow){margin-bottom:25px;color:var(--muted);font-size:14px;line-height:1.6}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid label{display:block}.form-grid .full{grid-column:1/-1}.form-grid label>span{display:block;margin-bottom:7px;color:var(--forest);font-size:11px;font-weight:700}.form-grid label small{color:var(--muted);font-weight:500}input,select,textarea{width:100%;padding:12px 13px;border:1px solid #dce1d9;border-radius:9px;outline:none;color:var(--forest);background:#fbfcfa;font-size:13px;transition:border-color .16s,box-shadow .16s}input::placeholder,textarea::placeholder{color:#a8b0a9}input:focus,select:focus,textarea:focus{border-color:#759a62;box-shadow:0 0 0 4px rgba(117,154,98,.12);background:#fff}textarea{resize:vertical;min-height:91px}.form-grid .button{margin-top:5px}.form-note{margin:12px 0 0;color:#839086;font-size:10px;line-height:1.5}.price-estimate{padding:13px 14px;border-radius:11px;background:#edf6e8}.price-estimate span,.price-estimate small{display:block;color:#63805b;font-size:10px}.price-estimate strong{display:block;margin:3px 0;color:var(--forest);font-size:18px}.success-message{display:flex;align-items:flex-start;gap:13px;margin-top:20px;padding:15px;border-radius:12px;background:#edf8e9;color:var(--forest)}.success-message>span{display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:50%;background:#75a95d;color:#fff;font-weight:800}.success-message strong{display:block;margin-bottom:4px;font-size:13px}.success-message p{margin:0;color:#5e7660;font-size:12px;line-height:1.5}

/* Motion */
.reveal { opacity: 1; transform: translateY(0); transition: opacity .7s ease, transform .7s ease; }.reveal:not(.visible) { opacity: 1; transform: translateY(0); }.reveal.visible { opacity: 1; transform: translateY(0); }.delay-1 { transition-delay: .12s; }.delay-2 { transition-delay: .22s; }

@keyframes soft-pulse {
  0%, 100% { box-shadow: 0 0 0 5px rgba(217,240,135,.13), 0 0 0 0 rgba(217,240,135,0); }
  50% { box-shadow: 0 0 0 5px rgba(217,240,135,.13), 0 0 0 9px rgba(217,240,135,.09); }
}

@media (prefers-reduced-motion: reduce) {
  .reveal,
  .reveal:not(.visible) {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .eyebrow-dot,
  .trust-icon {
    animation: none;
  }
}

@media (max-width: 980px) {
  html { scroll-padding-top: 76px; }
  .container { width: min(100% - 36px, 720px); }
  .nav-wrap { min-height: 76px; }.main-nav{display:none}.nav-toggle{display:grid;gap:5px;width:38px;height:38px;place-content:center;margin-left:auto;border:1px solid rgba(255,255,255,.32);border-radius:50%;background:transparent}.nav-toggle span{display:block;width:15px;height:1px;background:#fff}.nav-toggle.active span:first-child{transform:translateY(3px) rotate(45deg)}.nav-toggle.active span:last-child{transform:translateY(-3px) rotate(-45deg)}.main-nav.open{position:absolute;top:69px;right:18px;display:flex;flex-direction:column;gap:17px;min-width:192px;padding:20px;border:1px solid rgba(255,255,255,.15);border-radius:13px;background:#133b28;box-shadow:0 18px 35px rgba(0,0,0,.24)}.nav-call{display:none}.nav-cta{padding:10px 13px;font-size:12px}.hero{min-height:0;padding:116px 0 36px}.hero-grid{grid-template-columns:1fr;gap:7px}.hero-copy{padding-bottom:0}.hero-visual{width:min(100%,570px);height:390px;margin:18px auto 0}.trust-row{max-width:none;margin-top:22px}.split-heading,.process-wrap,.booking-shell,.about-grid,.quote-banner,.deduction-grid{grid-template-columns:1fr;gap:38px}.heading-side{padding:0}.service-grid{grid-template-columns:1fr 1fr}.service-featured{grid-column:auto}.service-card h3{min-height:0}.service-card p{min-height:0}.process-wrap{gap:42px}.booking-shell{padding:46px}.deduction-grid{padding:46px}.about-grid{gap:50px}.about-visual{width:min(100% - 28px,500px);margin:0 auto}.about-copy{max-width:560px}.quote-banner{gap:27px;padding:53px}.quote-banner-right p{margin-bottom:19px}.footer-top{grid-template-columns:1fr 1fr}.footer-email{justify-self:start}.footer-contact{justify-self:start}.footer-top .footer-email{grid-column:1/-1}.modal{padding:38px 28px 29px}
}

@media (max-width: 620px) {
  .container { width: calc(100% - 32px); }.scroll-progress{right:10px;top:auto;bottom:14px;width:42px;height:42px;transform:scale(.94)}.scroll-progress.is-visible{transform:scale(1)}.scroll-progress-ring{box-shadow:0 10px 20px rgba(13,43,29,.16)}.scroll-progress-arrow{font-size:17px}.nav-wrap{gap:12px}.brand{font-size:21px}.brand-mark{width:27px;height:27px}.nav-cta{font-size:0;width:38px;height:38px;padding:0;display:grid;place-items:center}.nav-cta svg{width:19px}.hero{padding-top:98px}.hero-copy{padding-top:5px}h1{font-size:3.05rem;letter-spacing:-2.3px}.hero-text{font-size:15px;margin-bottom:24px}.hero-actions{align-items:flex-start;gap:15px;flex-direction:column}.button{font-size:13px;padding:14px 18px}.button-outline{margin:0 0 18px}.hero-proof{margin-top:28px}.hero-visual{height:320px;margin-top:10px}.card-main{left:8px;bottom:14px;width:83%;height:76%;border-radius:23px}.card-back{right:0;top:16px;width:72%;height:74%;border-radius:23px}.appointment-card{left:-4px;top:25px}.quote-card{right:-1px;bottom:0}.float-card{padding:10px 11px}.trust-row{grid-template-columns:1fr;padding:5px 0}.trust-row>div{padding:12px 15px;border:0;border-bottom:1px solid rgba(255,255,255,.13)}.trust-row>div:last-child{border:0}.section-pad{padding:72px 0}.split-heading{gap:22px;margin-bottom:31px}h2{font-size:2.85rem;letter-spacing:-1.8px}.service-grid{grid-template-columns:1fr;gap:14px}.service-featured{grid-column:auto}.service-art,.service-featured .service-art{height:205px}.service-card-content{padding:20px}.service-card h3{font-size:22px}.service-card p{min-height:0}.deduction-grid{padding:34px 22px;border-radius:22px}.deduction-card{padding:22px}.process-list li{grid-template-columns:45px 1fr 16px;gap:12px;padding:20px 1px}.step-number{width:34px;height:34px;font-size:10px}.process-list h3{font-size:16px}.process-list p{font-size:12px}.booking-shell{padding:28px 18px;border-radius:20px}.date-picker{gap:5px}.date-option{padding:8px 2px}.date-option strong{font-size:15px}.time-slots{grid-template-columns:repeat(2,1fr)}.about-photo{height:390px}.experience-tag{right:-16px;bottom:21px;padding:11px 12px}.experience-tag strong{font-size:25px}.quote-section{padding-bottom:78px}.quote-banner{padding:38px 24px;border-radius:22px}.footer-top{grid-template-columns:1fr;padding:41px 0 32px}.footer-contact{max-width:270px}.footer-top .footer-email{grid-column:auto}.footer-bottom{align-items:flex-start;flex-direction:column;gap:14px}.footer-bottom div{gap:15px;flex-wrap:wrap}.modal-backdrop{align-items:end;padding:0}.modal{width:100%;max-height:91vh;border-radius:22px 22px 0 0;padding:33px 20px 24px}.form-grid{grid-template-columns:1fr;gap:12px}.form-grid .full{grid-column:auto}.modal-head h2{font-size:2.5rem}.modal-close{right:16px;top:14px}.modal-head>p:not(.eyebrow){max-width:90%;font-size:13px}.page-noise{opacity:.1}
  .booking-request-form{grid-template-columns:1fr}.booking-request-form .full{grid-column:auto}.week-controls{grid-template-columns:34px 1fr 34px}.week-button{width:34px;height:34px}
}

/* Live booking states */
.booking-status{min-height:16px;margin:-8px 0 14px;color:var(--muted);font-size:10px;line-height:1.4}.booking-status.success{color:#4d8652}.booking-status.warning{color:#8c6d23}.booking-status.error{color:#a33c35}.time-slots.is-loading{opacity:.48;pointer-events:none}.field-hint{display:block;margin-top:6px;color:var(--muted);font-size:10px;line-height:1.35}.form-error{margin:0;padding:11px 12px;border-radius:9px;background:#fff1ef;color:#a33c35;font-size:12px;line-height:1.45}.website-field{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}.button.is-loading{cursor:wait;opacity:.78}.booking-widget-top small{line-height:1.4}
.time-slot:disabled,.time-slot.is-unavailable{cursor:not-allowed;color:#9aa59d;background:#eef1ec;border-color:#e1e5df;opacity:.78;transform:none}.time-slot:disabled:hover,.time-slot.is-unavailable:hover{color:#9aa59d;background:#eef1ec;border-color:#e1e5df}.time-slot small{display:block;margin-top:2px;color:#9aa59d;font-size:9px;font-weight:800;line-height:1}
.cal-booking-widget{padding:18px}.cal-embed-frame-wrap{overflow:hidden;margin-top:16px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.65)}.cal-embed-frame-wrap iframe{display:block;width:100%;height:min(720px,82vh);min-height:610px;border:0;background:#fff}.cal-open-link{width:100%;margin-top:14px}.cal-booking-widget .booking-status{margin:13px 0 0;text-align:center}


.service-photo {
  position: relative;
  overflow: hidden;
  padding: 0;
  min-height: 230px;
  background: #eef5e9;
  border-radius: 28px 28px 0 0;
}

.service-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(10, 35, 20, 0.02), rgba(10, 35, 20, 0.18)),
    linear-gradient(135deg, rgba(213, 255, 91, 0.18), transparent 45%);
  pointer-events: none;
}

.service-photo img {
  width: 100%;
  height: 100%;
  min-height: 230px;
  display: block;
  object-fit: cover;
  object-position: center;
  border-radius: inherit;
  transform: scale(1.01);
  transition: transform 0.55s ease, filter 0.55s ease;
}

.service-card:hover .service-photo img {
  transform: scale(1.06);
  filter: saturate(1.05) contrast(1.03);
}

.service-featured .service-photo {
  min-height: 280px;
}

.service-featured .service-photo img {
  min-height: 280px;
}

@media (max-width: 760px) {
  .service-photo {
    min-height: 210px;
    border-radius: 24px 24px 0 0;
  }

  .service-photo img {
    min-height: 210px;
  }

  .service-featured .service-photo,
  .service-featured .service-photo img {
    min-height: 230px;
  }
}

/* Extra justering för bred gräsklippningsbild */
.grass-photo {
  height: 300px;
  min-height: 300px;
}

.grass-photo .service-img-grass {
  height: 300px;
  min-height: 300px;
  object-fit: cover;
  object-position: 30% center;
}

@media (max-width: 980px) {
  .grass-photo,
  .grass-photo .service-img-grass {
    height: 250px;
    min-height: 250px;
  }

  .grass-photo .service-img-grass {
    object-position: 16% center;
  }
}

@media (max-width: 620px) {
  .grass-photo,
  .grass-photo .service-img-grass {
    height: 225px;
    min-height: 225px;
  }

  .grass-photo .service-img-grass {
    object-position: 14% center;
  }
}

.service-featured .service-photo {
  min-height: 232px;
}

.service-featured .service-img-grass {
  min-height: 232px;
}

/* Gör alla tjänstebilder lite mer utzoomade från start */
.service-photo {
  background: #eef5e9;
}

.service-photo img {
  object-fit: cover;
  object-position: center;
  transform: scale(0.92);
}

/* Lite snygg hover, men fortfarande inte för inzoomat */
.service-card:hover .service-photo img {
  transform: scale(0.97);
}

/* === Zolero clean fixes: logo, hero photos, service photos, quote success === */
[hidden] {
  display: none !important;
}

.brand-logo-link {
  display: inline-flex;
  align-items: center;
  min-width: 0;
}

.brand-logo {
  display: block;
  width: auto;
  height: 54px;
  max-width: 168px;
  object-fit: contain;
  filter: drop-shadow(0 8px 14px rgba(0, 0, 0, .16));
}

.site-header .brand-logo {
  height: 50px;
}

.footer-logo {
  height: 70px;
  max-width: 210px;
}

.hero {
  background:
    radial-gradient(circle at 86% 24%, rgba(217, 240, 135, .10), transparent 31%),
    radial-gradient(circle at 72% 82%, rgba(255, 255, 255, .045), transparent 34%),
    linear-gradient(135deg, #17432f 0%, #16412c 53%, #0f3422 100%);
}

.hero-visual {
  position: relative;
  height: 430px;
  min-width: 0;
}

.hero-photo-card {
  position: absolute;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .24);
  border-radius: 30px;
  background: rgba(255, 255, 255, .10);
  box-shadow: 0 28px 55px rgba(5, 27, 16, .24);
}

.hero-photo-card::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(0,0,0,.03), rgba(0,0,0,.20));
}

.hero-photo-card img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero-photo-main {
  left: 32px;
  bottom: 26px;
  z-index: 2;
  width: 76%;
  height: 74%;
}

.hero-photo-main img {
  object-position: 32% center;
}

.hero-photo-back {
  top: 36px;
  right: 2px;
  z-index: 1;
  width: 66%;
  height: 66%;
  opacity: .72;
  transform: rotate(7deg);
}

.hero-photo-back img {
  object-position: 43% center;
}

.hero-badges {
  display: flex;
  align-items: center;
  gap: 9px;
  flex-wrap: wrap;
  margin-top: 28px;
}

.hero-badges span {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 8px 12px;
  border: 1px solid rgba(217, 240, 135, .30);
  border-radius: 999px;
  color: rgba(255,255,255,.86);
  background: rgba(255,255,255,.075);
  font-size: 12px;
  font-weight: 800;
  box-shadow: 0 10px 22px rgba(0,0,0,.08);
}

/* Tjänstekort: fyll bildytan utan gröna marginaler */
.service-photo {
  height: 205px;
  min-height: 205px;
  padding: 0;
  overflow: hidden;
  background: #eef5e9;
  border-radius: 18px 18px 0 0;
}

.service-photo img,
.service-featured .service-photo img,
.grass-photo .service-img-grass {
  width: 100%;
  height: 100%;
  min-height: 0;
  display: block;
  object-fit: cover;
  border-radius: 0;
  transform: scale(1);
  transition: transform .55s ease, filter .55s ease;
}

.service-card:hover .service-photo img,
.service-card:hover .grass-photo .service-img-grass {
  transform: scale(1.04);
  filter: saturate(1.04) contrast(1.03);
}

.grass-photo .service-img-grass {
  object-position: 30% center;
}

.service-photo img[src*="hackklippning"] {
  object-position: 42% center;
}

.service-photo img[src*="hangrannor"] {
  object-position: 45% center;
}

.service-photo img[src*="snoskottning"] {
  object-position: 38% center;
}

.service-featured .service-photo,
.grass-photo {
  height: 205px;
  min-height: 205px;
}

#quote-success,
#booking-success,
#booking-request-success {
  margin-top: 18px;
}

#quote-success[hidden],
#booking-success[hidden],
#booking-request-success[hidden] {
  display: none !important;
}

@media (max-width: 980px) {
  .brand-logo { height: 46px; max-width: 150px; }
  .footer-logo { height: 62px; }
  .hero-visual { width: min(100%, 570px); height: 390px; margin: 18px auto 0; }
  .hero-photo-main { left: 18px; width: 78%; height: 73%; }
  .hero-photo-back { right: 8px; width: 66%; height: 64%; }
}

@media (max-width: 620px) {
  .site-header .brand-logo { height: 42px; max-width: 136px; }
  .footer-logo { height: 58px; }
  .hero-visual { height: 330px; }
  .hero-photo-main { left: 6px; bottom: 18px; width: 86%; height: 70%; border-radius: 23px; }
  .hero-photo-back { top: 20px; right: 0; width: 72%; height: 62%; border-radius: 23px; }
  .hero-badges { margin-top: 24px; gap: 7px; }
  .hero-badges span { font-size: 11px; min-height: 31px; padding: 7px 10px; }
  .service-photo,
  .service-featured .service-photo,
  .grass-photo { height: 215px; min-height: 215px; border-radius: 18px 18px 0 0; }
}

.brand img,
.footer-brand img {
  height: 64px !important;
  width: auto !important;
}

/* Adressrad i tackrutan efter bokning */
.zolero-booking-complete-details span {
  display: inline-block;
  margin-top: 4px;
  color: #5b6f62;
  font-size: 0.92em;
  font-weight: 600;
}


/* Interaktiv karta i sektionen "Lokal service" */
.about-map-card {
  position: relative;
  overflow: hidden;
  height: 475px;
  border-radius: 30px;
  background: #dfe7dd;
  border: 1px solid rgba(22, 61, 42, .12);
  box-shadow: 0 24px 55px rgba(13, 43, 29, .12);
}

.about-map-card iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  filter: saturate(.92) contrast(.98);
}

.about-map-card::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(13, 43, 29, .02), rgba(13, 43, 29, .16));
}

.map-location-card {
  position: absolute;
  left: 22px;
  right: 22px;
  bottom: 22px;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 16px 17px;
  border-radius: 18px;
  color: var(--forest);
  background: rgba(255, 255, 255, .92);
  border: 1px solid rgba(255, 255, 255, .74);
  box-shadow: 0 18px 36px rgba(13, 43, 29, .16);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.map-pin {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  flex: none;
  border-radius: 14px;
  color: var(--forest);
  background: var(--lime-soft);
}

.map-pin svg {
  width: 22px;
  height: 22px;
}

.map-location-card small,
.map-location-card span {
  display: block;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.35;
}

.map-location-card strong {
  display: block;
  margin: 2px 0;
  font-size: 14px;
  line-height: 1.2;
}

@media (max-width: 760px) {
  .about-map-card {
    height: 340px;
    border-radius: 22px;
  }

  .map-location-card {
    left: 14px;
    right: 14px;
    bottom: 14px;
    padding: 13px 14px;
    border-radius: 15px;
  }

  .map-pin {
    width: 36px;
    height: 36px;
    border-radius: 12px;
  }
}

/* === Mobile polish fix: header, hero stacking and quote modal === */
.quote-label-short { display: none; }

@media (max-width: 620px) {
  html {
    scroll-padding-top: 78px;
  }

  .site-header {
    background: rgba(13, 43, 29, .97);
  }

  .nav-wrap {
    min-height: 76px;
    gap: 12px;
  }

  .site-header .brand-logo {
    height: 42px;
    max-width: 136px;
  }

  /* Keep the mobile header clean: logo left, menu button right. */
  .site-header .nav-call,
  .site-header .nav-cta {
    display: none !important;
  }

  .nav-toggle {
    display: grid !important;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    margin-left: auto;
    place-content: center;
    gap: 6px;
    border: 1px solid rgba(255, 255, 255, .38);
    border-radius: 999px;
    background: rgba(255, 255, 255, .06);
  }

  .nav-toggle span {
    width: 17px;
    height: 1.5px;
    border-radius: 999px;
    background: #fff;
    transition: transform .18s ease, opacity .18s ease;
  }

  .nav-toggle.active span:first-child {
    transform: translateY(3.75px) rotate(45deg);
  }

  .nav-toggle.active span:last-child {
    transform: translateY(-3.75px) rotate(-45deg);
  }

  .main-nav.open {
    position: fixed;
    top: 84px;
    left: 16px;
    right: 16px;
    z-index: 99;
    display: grid;
    min-width: 0;
    gap: 8px;
    padding: 12px;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 20px;
    background: rgba(13, 43, 29, .98);
    box-shadow: 0 22px 42px rgba(0, 0, 0, .28);
  }

  .main-nav.open a {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: 0 14px;
    border-radius: 14px;
    background: rgba(255,255,255,.06);
    color: #fff;
    font-size: 14px;
    font-weight: 800;
    opacity: 1;
  }

  .hero {
    padding-top: 102px;
  }

  .hero-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: stretch;
    gap: 10px;
    max-width: 100%;
  }

  .hero-actions .button {
    width: 100%;
    min-height: 46px;
    padding: 12px 13px;
    gap: 8px;
    white-space: nowrap;
  }

  .hero-actions .button span {
    line-height: 1;
  }

  .hero-actions .text-link {
    grid-column: 1 / -1;
    width: max-content;
    margin-top: 4px;
  }

  .hero-quote-button {
    font-size: 0;
  }

  .hero-quote-button .quote-label-full {
    display: none;
  }

  .hero-quote-button .quote-label-short {
    display: inline;
    font-size: 13px;
    line-height: 1;
  }

  .hero-quote-button .button-arrow {
    display: inline;
    font-size: 18px;
  }

  .hero-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
  }

  .hero-badges span {
    max-width: 100%;
    min-height: 30px;
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
  }

  .modal-backdrop {
    align-items: end;
    padding: 0;
  }

  .modal {
    width: 100%;
    max-height: 86dvh;
    overflow: auto;
    border-radius: 22px 22px 0 0;
    padding: 48px 20px 24px;
  }

  .modal-close {
    position: absolute;
    top: 12px;
    right: 16px;
    z-index: 3;
    width: 38px;
    height: 38px;
  }

  .modal-head h2 {
    font-size: 2.2rem;
    line-height: 1.02;
  }

  .form-grid,
  .booking-request-form {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .form-grid .full,
  .booking-request-form .full {
    grid-column: auto;
  }
}

@media (max-width: 380px) {
  .container {
    width: calc(100% - 26px);
  }

  .hero-actions {
    gap: 8px;
  }

  .hero-actions .button {
    min-height: 44px;
    padding: 11px 10px;
    font-size: 12px;
  }

  .hero-quote-button .quote-label-short {
    font-size: 12px;
  }

  .hero-quote-button .button-arrow {
    font-size: 17px;
  }

  .hero-badges span {
    font-size: 10px;
  }
}

/* === Final fix: desktop offer button normal size, mobile stays short === */
.hero-quote-button {
  font-size: 14px;
}

.hero-quote-button .quote-label-full {
  display: inline;
  font-size: inherit;
  line-height: inherit;
}

.hero-quote-button .quote-label-short {
  display: none;
}

.hero-quote-button .button-arrow {
  font-size: 20px;
  line-height: .6;
}

@media (max-width: 620px) {
  .hero-quote-button {
    font-size: 0;
  }

  .hero-quote-button .quote-label-full {
    display: none;
  }

  .hero-quote-button .quote-label-short {
    display: inline;
    font-size: 13px;
    line-height: 1;
  }

  .hero-quote-button .button-arrow {
    display: inline;
    font-size: 18px;
    line-height: 1;
  }
}

@media (max-width: 380px) {
  .hero-quote-button .quote-label-short {
    font-size: 12px;
  }

  .hero-quote-button .button-arrow {
    font-size: 17px;
  }
}
