const LAWN_GARDEN_L3_PAGES = {
  "repair": {
    "active": "Repair",
    "count": 24,
    "title": "Lawn and Garden Repair Guides - Sprinklers, Fences, Gates, Edging and Drainage",
    "desc": "24 lawn and garden repair guides for sprinklers, drip lines, fences, gates, edging, drainage, dead patches, compacted soil, hose bibs, and garden structures.",
    "headline": "Repair what weather keeps testing.",
    "deck": "Lawn and garden repair is weather work: broken sprinkler heads, leaking drip lines, leaning fences, stuck gates, shifted edging, dead patches, compacted soil, washed-out paths, and drainage that shows up after rain.",
    "rule": "Water tells first",
    "topLabel": "Top 5 Lawn and Garden Repair Searches",
    "photoLabel": "Photo Spread / Outdoor Repair Notes",
    "essayTitle": "The yard tells you where it is failing.",
    "essay": [
      "Outdoor repair starts by reading the evidence. The brown patch, the leaning post, the washed mulch, the puddle beside the path, the gate that drags after rain: every failure points to water, soil, load, or movement.",
      "A lawn and garden repair that ignores cause is temporary. Replace a sprinkler head without checking pressure and the new head fails like the old one. Reset edging without compacting the base and frost moves it again.",
      "Repair outside should make the next storm less interesting. That is the whole standard."
    ],
    "top": [
      [
        "01",
        "how to repair a sprinkler head",
        "135,000",
        "Beginner",
        "30 min",
        "$8-$35",
        "https://images.unsplash.com/photo-1501004318641-b39e6451bec6?w=1500&q=84",
        "The most common irrigation failure. Match spray pattern, clear the riser, flush the line, and set height so the mower does not remove it again.",
        "Read the sprinkler head guide",
        "/en/repair/lawn-garden/how-to-repair-a-sprinkler-head/"
      ],
      [
        "02",
        "how to fix a leaning fence post",
        "110,000",
        "Intermediate",
        "1 day",
        "$25-$120",
        "https://images.unsplash.com/photo-1558904541-efa843a96f01?w=1500&q=84",
        "Fence posts fail because soil moves and water sits. The repair is excavation, plumb, gravel, concrete, and drainage thinking.",
        "Read the fence post guide",
        "/en/repair/lawn-garden/how-to-fix-a-leaning-fence-post/"
      ],
      [
        "03",
        "how to repair a garden hose bib leak",
        "74,000",
        "Intermediate",
        "1 hr",
        "$5-$80",
        "https://images.unsplash.com/photo-1416879595882-3373a0480b5b?w=1500&q=84",
        "Outdoor spigots leak from packing nuts, washers, vacuum breakers, or cracked freeze-damaged bodies. Diagnose before replacing.",
        "Read the hose bib guide",
        "/en/repair/lawn-garden/how-to-repair-a-garden-hose-bib-leak/"
      ],
      [
        "04",
        "how to fix bare spots in lawn",
        "60,500",
        "Beginner",
        "2 weeks",
        "$20-$90",
        "https://images.unsplash.com/photo-1523348837708-15d4a09cfac2?w=1500&q=84",
        "Bare patches are soil compaction, shade, traffic, grubs, dog urine, or irrigation mismatch. Seed only after the cause is named.",
        "Read the bare spot guide",
        "/en/repair/lawn-garden/how-to-fix-bare-spots-in-lawn/"
      ],
      [
        "05",
        "how to repair garden edging",
        "49,500",
        "Beginner",
        "2 hrs",
        "$15-$120",
        "https://images.unsplash.com/photo-1466692476868-aef1dfb1e735?w=1500&q=84",
        "Edging drifts when the base is soft or the stakes are wrong. Pull, reset, compact, pin, and check the line from both directions.",
        "Read the edging repair guide",
        "/en/repair/lawn-garden/how-to-repair-garden-edging/"
      ]
    ],
    "tools": [
      "Hand trowel",
      "Mattock",
      "Hose washer kit",
      "Irrigation cutter",
      "Post level",
      "Tamper",
      "Soil probe",
      "Landscape stakes"
    ],
    "matrix": [
      "Sprinkler head",
      "Leaning post",
      "Hose bib leak",
      "Bare lawn patch",
      "Garden edging",
      "Gate hinge",
      "Drip line leak",
      "Washed path",
      "Compacted soil",
      "Mulch blowout"
    ],
    "mistakes": [
      "Replacing parts before finding the water pattern",
      "Resetting posts without drainage",
      "Seeding compacted soil",
      "Using indoor fasteners outside",
      "Ignoring mower clearance",
      "Repairing edging without compacting the trench"
    ]
  },
  "install": {
    "active": "Install",
    "count": 27,
    "title": "Lawn and Garden Install Guides - Irrigation, Edging, Lighting, Sod and Raised Beds",
    "desc": "27 lawn and garden install guides for drip irrigation, sprinkler zones, landscape edging, garden lighting, sod, mulch, hose reels, rain barrels, and planting supports.",
    "headline": "Install the systems that make the yard easier to keep alive.",
    "deck": "Lawn and garden install is about systems: drip irrigation, sprinkler zones, edging, lighting, sod, mulch, hose reels, rain barrels, trellis anchors, and the small pieces that turn outside work into a routine.",
    "rule": "Water before plants",
    "topLabel": "Top 5 Lawn and Garden Install Searches",
    "photoLabel": "Photo Spread / Outdoor Install Notes",
    "essayTitle": "Installation is how the garden stops depending on memory.",
    "essay": [
      "The best lawn and garden installs reduce daily friction. Drip irrigation waters when you forget, edging holds the line after rain, lighting extends use, and mulch keeps soil from drying into a crust.",
      "Install work outside has to respect sequence. Water first, grade second, edges third, plants and finish last. Put them out of order and you undo your own work with a shovel.",
      "A good install makes the garden more forgiving without making it automatic in a bad way."
    ],
    "top": [
      [
        "01",
        "how to install drip irrigation",
        "165,000",
        "Intermediate",
        "1 day",
        "$60-$250",
        "https://images.unsplash.com/photo-1466692476868-aef1dfb1e735?w=1500&q=84",
        "Drip irrigation is the install that changes everything. Timer, filter, pressure regulator, mainline, emitters, and a layout that matches roots.",
        "Read the drip irrigation guide",
        "/en/install/lawn-garden/how-to-install-drip-irrigation/"
      ],
      [
        "02",
        "how to install landscape edging",
        "135,000",
        "Beginner",
        "2-4 hrs",
        "$40-$180",
        "https://images.unsplash.com/photo-1558904541-efa843a96f01?w=1500&q=84",
        "Edging is only as good as the trench. Layout, depth, compaction, stakes, and curves decide whether it still looks straight next season.",
        "Read the edging guide",
        "/en/install/lawn-garden/how-to-install-landscape-edging/"
      ],
      [
        "03",
        "how to install sod",
        "110,000",
        "Intermediate",
        "1 weekend",
        "$600-$2,000",
        "https://images.unsplash.com/photo-1501004318641-b39e6451bec6?w=1500&q=84",
        "Sod is instant lawn and very little forgiveness. Soil prep, grade, seams, water schedule, and first mow decide whether it roots.",
        "Read the sod guide",
        "/en/install/lawn-garden/how-to-install-sod/"
      ],
      [
        "04",
        "how to install low voltage landscape lighting",
        "90,500",
        "Beginner",
        "1 day",
        "$200-$800",
        "https://images.unsplash.com/photo-1598902108854-10e335adac99?w=1500&q=84",
        "Outdoor lighting needs restraint. Transformer, cable gauge, fixture spacing, beam angle, and dark areas matter more than brightness.",
        "Read the lighting guide",
        "/en/install/lawn-garden/how-to-install-low-voltage-landscape-lighting/"
      ],
      [
        "05",
        "how to install a rain barrel",
        "60,500",
        "Beginner",
        "1 hr",
        "$80-$250",
        "https://images.unsplash.com/photo-1416879595882-3373a0480b5b?w=1500&q=84",
        "A rain barrel is simple if overflow, mosquito control, base height, and downspout routing are handled before the first storm.",
        "Read the rain barrel guide",
        "/en/install/lawn-garden/how-to-install-a-rain-barrel/"
      ]
    ],
    "tools": [
      "Trenching spade",
      "Tubing cutter",
      "Pressure regulator",
      "Line level",
      "Landscape staples",
      "Rubber mallet",
      "Wire stripper",
      "Hose timer"
    ],
    "matrix": [
      "Drip irrigation",
      "Landscape edging",
      "Sod",
      "Low-voltage lights",
      "Rain barrel",
      "Mulch bed",
      "Hose reel",
      "Sprinkler zone",
      "Tree ring",
      "Plant supports"
    ],
    "mistakes": [
      "Installing irrigation after planting densely",
      "Skipping pressure regulation",
      "Laying sod on unprepared soil",
      "Overlighting every path",
      "Ignoring overflow on rain barrels",
      "Installing edging above grade"
    ]
  },
  "build": {
    "active": "Build",
    "count": 32,
    "title": "Lawn and Garden Build Guides - Raised Beds, Trellises, Pergolas, Borders and Paths",
    "desc": "32 lawn and garden build guides for raised beds, trellises, pergolas, stone borders, garden paths, potting benches, compost systems, cold frames, and outdoor structures.",
    "headline": "Build with wood, dirt, and weather in the room.",
    "deck": "Lawn and garden building is outdoor structure: raised beds, trellises, pergolas, stone borders, pathways, potting benches, compost systems, cold frames, and the pieces that get better as plants grow around them.",
    "rule": "Weather is material",
    "topLabel": "Top 5 Lawn and Garden Build Searches",
    "photoLabel": "Photo Spread / Garden Build Notes",
    "essayTitle": "Outdoor builds have to age well.",
    "essay": [
      "The lawn and garden is the highest-payoff space for build work because the projects change how the property behaves. A raised bed creates growing space. A path keeps shoes dry. A trellis turns a blank wall into shade and fruit.",
      "Outdoor building is different because weather is the fourth material. Cedar, pressure-treated lumber, stone base, frost depth, drainage, soil movement, and fasteners matter before the first board is cut.",
      "The strongest garden builds look simple because the hard thinking is below grade."
    ],
    "top": [
      [
        "01",
        "how to build a raised garden bed",
        "201,000",
        "Beginner",
        "4 hrs",
        "$140-$280",
        "https://images.unsplash.com/photo-1466692476868-aef1dfb1e735?w=1500&q=84",
        "The single highest-payoff garden project. Cedar or composite, square corners, level base, soil depth, and enough drainage to keep roots alive.",
        "Read the raised bed guide",
        "/en/build/lawn-garden/how-to-build-raised-garden-bed/"
      ],
      [
        "02",
        "how to build a wooden trellis",
        "110,000",
        "Intermediate",
        "6-8 hrs",
        "$80-$180",
        "https://images.unsplash.com/photo-1416879595882-3373a0480b5b?w=1500&q=84",
        "A trellis is a structure before it is a plant support. Wind, vine weight, anchoring, and rot resistance decide whether it survives.",
        "Read the trellis guide",
        "/en/build/lawn-garden/how-to-build-a-wooden-trellis/"
      ],
      [
        "03",
        "how to build a garden pathway",
        "90,500",
        "Intermediate",
        "1 weekend",
        "$80-$350",
        "https://images.unsplash.com/photo-1558904541-efa843a96f01?w=1500&q=84",
        "Pathways fail from the base up. Excavation, compaction, fabric, aggregate, and edge restraint make the surface stay put.",
        "Read the pathway guide",
        "/en/build/lawn-garden/how-to-build-a-garden-pathway/"
      ],
      [
        "04",
        "how to build a pergola",
        "74,000",
        "Advanced",
        "2 weekends",
        "$700-$2,500",
        "https://images.unsplash.com/photo-1598902108854-10e335adac99?w=1500&q=84",
        "A pergola is posts, beams, shade, wind, and snow load. The pretty part works only after the structure is right.",
        "Read the pergola guide",
        "/en/build/lawn-garden/how-to-build-a-pergola/"
      ],
      [
        "05",
        "how to build a stone garden border",
        "60,500",
        "Intermediate",
        "1-2 days",
        "$200-$600",
        "https://images.unsplash.com/photo-1523348837708-15d4a09cfac2?w=1500&q=84",
        "Stone borders need base prep and patience. The first course decides whether the whole line looks intentional.",
        "Read the stone border guide",
        "/en/build/lawn-garden/how-to-build-a-stone-garden-border/"
      ]
    ],
    "tools": [
      "Spade",
      "Mattock",
      "Circular saw",
      "Post level",
      "Mason line",
      "Tamper",
      "Wheelbarrow",
      "Mixing tub"
    ],
    "matrix": [
      "Raised bed",
      "Wood trellis",
      "Garden path",
      "Pergola",
      "Stone border",
      "Potting bench",
      "Compost bins",
      "Cold frame",
      "Planter cart",
      "Garden steps"
    ],
    "mistakes": [
      "Building on uncompacted soil",
      "Using untreated wood in ground contact",
      "Ignoring frost depth",
      "Skipping drainage behind stone",
      "Buying fasteners that rust",
      "Making paths too narrow for a wheelbarrow"
    ]
  },
  "clean": {
    "active": "Clean",
    "count": 16,
    "title": "Lawn and Garden Cleaning Guides - Leaves, Beds, Tools, Pavers and Seasonal Cleanup",
    "desc": "16 lawn and garden cleaning guides for leaves, garden beds, pavers, patios, tools, pots, mulch, algae, hose reels, and seasonal yard cleanup.",
    "headline": "Clean the yard before it becomes work twice.",
    "deck": "Lawn and garden cleaning is seasonal reset: leaves, dead stems, algae, pavers, pots, tools, hose reels, mulch drift, patio grit, and the bed cleanup that keeps pests and disease from overwintering.",
    "rule": "Remove before rinse",
    "topLabel": "Top 5 Lawn and Garden Clean Searches",
    "photoLabel": "Photo Spread / Outdoor Clean Notes",
    "essayTitle": "Outside cleaning is timing.",
    "essay": [
      "The yard gets dirty in seasons, not moments. Leaves mat, stems rot, algae blooms, mulch migrates, tools rust, pots crust with mineral salts, and beds collect disease pressure if the cleanup waits too long.",
      "Cleaning outside is not about perfection. It is about removing the material that creates pests, slick surfaces, clogged drains, and spring work that should have been done in fall.",
      "A clean yard is easier to maintain because the next task starts on visible ground."
    ],
    "top": [
      [
        "01",
        "how to clean garden beds in spring",
        "90,500",
        "Beginner",
        "2-4 hrs",
        "$0-$40",
        "https://images.unsplash.com/photo-1466692476868-aef1dfb1e735?w=1500&q=84",
        "Spring cleanup is selective. Remove winter damage, leave what protects beneficial insects until temperatures stabilize, then edge and mulch.",
        "Read the spring bed guide",
        "/en/clean/lawn-garden/how-to-clean-garden-beds-in-spring/"
      ],
      [
        "02",
        "how to clean pavers without pressure washing",
        "74,000",
        "Beginner",
        "2 hrs",
        "$15-$50",
        "https://images.unsplash.com/photo-1558904541-efa843a96f01?w=1500&q=84",
        "Pavers need debris removal, joint protection, cleaner choice, and restraint. Too much pressure removes the base between stones.",
        "Read the paver guide",
        "/en/clean/lawn-garden/how-to-clean-pavers-without-pressure-washing/"
      ],
      [
        "03",
        "how to clean garden tools",
        "60,500",
        "Beginner",
        "1 hr",
        "$10-$35",
        "https://images.unsplash.com/photo-1416879595882-3373a0480b5b?w=1500&q=84",
        "Clean tools cut better and move less disease. Scrape, wash, dry, sharpen, oil, and store where handles do not soak.",
        "Read the tool cleaning guide",
        "/en/clean/lawn-garden/how-to-clean-garden-tools/"
      ],
      [
        "04",
        "how to clean algae from patio stones",
        "49,500",
        "Beginner",
        "1-2 hrs",
        "$12-$45",
        "https://images.unsplash.com/photo-1598902108854-10e335adac99?w=1500&q=84",
        "Algae is a slip problem before it is a looks problem. Cleaner, dwell time, brush, and drainage fix it better than blasting.",
        "Read the algae guide",
        "/en/clean/lawn-garden/how-to-clean-algae-from-patio-stones/"
      ],
      [
        "05",
        "how to clean out leaf piles from beds",
        "40,500",
        "Beginner",
        "1 hr",
        "$0-$20",
        "https://images.unsplash.com/photo-1501004318641-b39e6451bec6?w=1500&q=84",
        "Leaves can be mulch or mat. The difference is thickness, wetness, and whether crowns and stems are smothered.",
        "Read the leaf cleanup guide",
        "/en/clean/lawn-garden/how-to-clean-out-leaf-piles-from-beds/"
      ]
    ],
    "tools": [
      "Leaf rake",
      "Garden fork",
      "Bypass pruners",
      "Stiff brush",
      "Bucket",
      "Tool oil",
      "Squeegee",
      "Compost bags"
    ],
    "matrix": [
      "Spring beds",
      "Pavers",
      "Garden tools",
      "Patio algae",
      "Leaf piles",
      "Pots",
      "Hose reel",
      "Mulch drift",
      "Compost area",
      "Drain grates"
    ],
    "mistakes": [
      "Cleaning beds too early in spring",
      "Pressure washing paver joints empty",
      "Putting tools away wet",
      "Bagging useful leaf mulch",
      "Using bleach near plants",
      "Leaving wet debris against wood"
    ]
  },
  "organize": {
    "active": "Organize",
    "count": 18,
    "title": "Lawn and Garden Organization Guides - Tools, Seeds, Pots, Hoses and Outdoor Zones",
    "desc": "18 lawn and garden organization guides for tools, seeds, pots, hoses, fertilizer, outdoor zones, shed storage, labels, plant supports, and seasonal systems.",
    "headline": "Organize the yard so the season does not run you.",
    "deck": "Lawn and garden organization is seasonal systems: tool storage, seed packets, pots, hoses, fertilizer, plant supports, labels, shed zones, compost access, and a place for the things that migrate outside every year.",
    "rule": "By season",
    "topLabel": "Top 5 Lawn and Garden Organization Searches",
    "photoLabel": "Photo Spread / Garden Organization Notes",
    "essayTitle": "The garden needs a back-of-house.",
    "essay": [
      "A good garden has backstage systems. Seeds are findable, tools are dry, hoses do not kink into knots, pots are sorted by size, and fertilizer is stored where weather cannot turn it into a brick.",
      "Outdoor organization changes by season, so the categories have to be broad enough to survive spring urgency and fall fatigue. Too clever is just clutter with labels.",
      "The best system lets you start work in two minutes because the first tool is where your hand expects it."
    ],
    "top": [
      [
        "01",
        "how to organize garden tools",
        "90,500",
        "Beginner",
        "2 hrs",
        "$30-$160",
        "https://images.unsplash.com/photo-1416879595882-3373a0480b5b?w=1500&q=84",
        "Garden tools need dry vertical storage, not a pile. Long handles, hand tools, blades, gloves, twine, and pruners each need a home.",
        "Read the tool organization guide",
        "/en/organize/lawn-garden/how-to-organize-garden-tools/"
      ],
      [
        "02",
        "how to organize seed packets",
        "74,000",
        "Beginner",
        "1 hr",
        "$10-$40",
        "https://images.unsplash.com/photo-1466692476868-aef1dfb1e735?w=1500&q=84",
        "Seeds need date, crop, season, and viability. A shoebox works if the categories are honest and the packets stay dry.",
        "Read the seed guide",
        "/en/organize/lawn-garden/how-to-organize-seed-packets/"
      ],
      [
        "03",
        "how to organize plant pots",
        "60,500",
        "Beginner",
        "1 hr",
        "$0-$50",
        "https://images.unsplash.com/photo-1598902108854-10e335adac99?w=1500&q=84",
        "Pots multiply quietly. Sort by size, material, drainage, and use. Recycle the cracked ones before they become a second garden.",
        "Read the pot guide",
        "/en/organize/lawn-garden/how-to-organize-plant-pots/"
      ],
      [
        "04",
        "how to organize garden hoses",
        "49,500",
        "Beginner",
        "30 min",
        "$20-$120",
        "https://images.unsplash.com/photo-1501004318641-b39e6451bec6?w=1500&q=84",
        "A hose needs a reel, a path, and a winter plan. Kinks are usually storage problems, not hose problems.",
        "Read the hose guide",
        "/en/organize/lawn-garden/how-to-organize-garden-hoses/"
      ],
      [
        "05",
        "how to organize a garden shed",
        "40,500",
        "Intermediate",
        "1 day",
        "$80-$350",
        "https://images.unsplash.com/photo-1558904541-efa843a96f01?w=1500&q=84",
        "The shed is the yard's utility closet. Wall storage, seasonal zones, chemical safety, and clear floor space decide whether it works.",
        "Read the shed guide",
        "/en/organize/lawn-garden/how-to-organize-a-garden-shed/"
      ]
    ],
    "tools": [
      "Wall hooks",
      "Seed box",
      "Weather labels",
      "Bin clips",
      "Hose reel",
      "Shelf brackets",
      "Peg rail",
      "Clear bins"
    ],
    "matrix": [
      "Garden tools",
      "Seed packets",
      "Plant pots",
      "Hoses",
      "Garden shed",
      "Fertilizer",
      "Plant supports",
      "Gloves",
      "Sprayers",
      "Compost access"
    ],
    "mistakes": [
      "Organizing by product instead of season",
      "Storing seeds in humidity",
      "Keeping cracked pots forever",
      "Leaving blades where children can grab them",
      "Letting hoses cross walk paths",
      "Putting fertilizer where it gets damp"
    ]
  },
  "decorate": {
    "active": "Decorate",
    "count": 11,
    "title": "Lawn and Garden Decorating Guides - Borders, Planters, Lighting, Paths and Outdoor Color",
    "desc": "11 lawn and garden decorating guides for borders, planters, outdoor color, path lighting, container groupings, trellises, mulch color, focal points, and seasonal curb appeal.",
    "headline": "Decorate with plants doing half the work.",
    "deck": "Lawn and garden decorating is living composition: borders, planters, path lighting, trellises, mulch color, seasonal containers, focal points, and the way the yard looks from the door before you step into it.",
    "rule": "Structure first",
    "topLabel": "Top 5 Lawn and Garden Decorate Searches",
    "photoLabel": "Photo Spread / Outdoor Styling Notes",
    "essayTitle": "Outdoor decorating needs bones.",
    "essay": [
      "The best outdoor decorating starts with structure, not accessories. A clean border, a path line, one strong container group, a trellis, and the right mulch color do more than a cart full of ornaments.",
      "Plants change size, color, and texture across the season, so the decorative plan has to leave room for growth. The yard should look intentional in April and still have somewhere to go in August.",
      "Garden decorating works when the hard pieces are quiet enough to let the living pieces become the show."
    ],
    "top": [
      [
        "01",
        "how to decorate a front garden bed",
        "90,500",
        "Beginner",
        "1 weekend",
        "$120-$600",
        "https://images.unsplash.com/photo-1466692476868-aef1dfb1e735?w=1500&q=84",
        "A front bed needs height, rhythm, edge, mulch, and enough restraint that the house still reads first.",
        "Read the front bed guide",
        "/en/decorate/lawn-garden/how-to-decorate-a-front-garden-bed/"
      ],
      [
        "02",
        "how to arrange outdoor planters",
        "74,000",
        "Beginner",
        "1 hr",
        "$80-$500",
        "https://images.unsplash.com/photo-1598902108854-10e335adac99?w=1500&q=84",
        "Planters work in groups by height, material, and season. Odd numbers help; scale matters more.",
        "Read the planter guide",
        "/en/decorate/lawn-garden/how-to-arrange-outdoor-planters/"
      ],
      [
        "03",
        "how to choose mulch color",
        "60,500",
        "Beginner",
        "30 min",
        "$40-$250",
        "https://images.unsplash.com/photo-1523348837708-15d4a09cfac2?w=1500&q=84",
        "Mulch color changes the whole garden. Pick for house color, plant contrast, and how faded it looks in month three.",
        "Read the mulch color guide",
        "/en/decorate/lawn-garden/how-to-choose-mulch-color/"
      ],
      [
        "04",
        "how to decorate a garden path",
        "49,500",
        "Beginner",
        "1 day",
        "$80-$450",
        "https://images.unsplash.com/photo-1558904541-efa843a96f01?w=1500&q=84",
        "A path becomes decorative when edge, lighting, planting pockets, and surface texture work together.",
        "Read the path decor guide",
        "/en/decorate/lawn-garden/how-to-decorate-a-garden-path/"
      ],
      [
        "05",
        "how to use garden lighting for curb appeal",
        "40,500",
        "Beginner",
        "2 hrs",
        "$120-$600",
        "https://images.unsplash.com/photo-1501004318641-b39e6451bec6?w=1500&q=84",
        "Good garden lighting is edited. Graze texture, mark turns, leave dark pockets, and avoid the runway look.",
        "Read the garden lighting guide",
        "/en/decorate/lawn-garden/how-to-use-garden-lighting-for-curb-appeal/"
      ]
    ],
    "tools": [
      "Plant tags",
      "Color wheel",
      "Path lights",
      "Mulch rake",
      "Container risers",
      "Pruners",
      "Measuring tape",
      "Soil knife"
    ],
    "matrix": [
      "Front bed",
      "Planters",
      "Mulch color",
      "Garden path",
      "Lighting",
      "Trellis focal point",
      "Seasonal pots",
      "Border rhythm",
      "Porch edge",
      "Specimen plant"
    ],
    "mistakes": [
      "Decorating before defining the bed edge",
      "Buying tiny planters for a large facade",
      "Using too many mulch colors",
      "Lighting every plant equally",
      "Ignoring mature plant size",
      "Adding objects where structure is missing"
    ]
  }
};
const LAWN_GARDEN_L3_ORDER = ["repair","install","build","clean","organize","decorate"];
const LAWN_GARDEN_L3_COUNTS = {"repair":24,"install":27,"build":32,"clean":16,"organize":18,"decorate":11};
const lglBg = (url) => ({ backgroundImage: 'url("' + url + '")' });

const LawnGardenL3Hero = ({ page }) => (
  <section className="lgl-hero">
    <div className="img" style={lglBg(page.top[0][6].replace('w=1500', 'w=2400'))} />
    <div className="lgl-mast">
      <span className="crumb"><a href="/">Home</a> / <a href="/en/lawn-garden/">Lawn/Garden</a> / {page.active}</span>
      <span className="ctr">The Lawn/Garden {page.active} Edition</span>
      <span className="right">No. 09 / Spring 2026</span>
    </div>
    <div className="lgl-cover">
      <div>
        <div className="eyebrow">{page.active} / Lawn and Garden / Field Guide</div>
        <h1>{page.headline}</h1>
      </div>
      <div>
        <p className="deck">{page.deck}</p>
        <div className="meta">
          <div><span className="k">Section</span><span className="v">Lawn/Garden / {page.active}</span></div>
          <div><span className="k">Guides</span><span className="v">{page.count} total</span></div>
          <div><span className="k">First rule</span><span className="v">{page.rule}</span></div>
          <div><span className="k">Updated</span><span className="v">May 2026</span></div>
        </div>
      </div>
    </div>
  </section>
);

const LawnGardenL3Top5 = ({ page }) => (
  <section className="lgl-top5">
    <div className="lgl-wrap">
      <div className="section-folio"><span>The Charts / {page.topLabel}</span><span className="pg">PG. 02</span></div>
      <div className="lgl-head">
        <div>
          <h2>The five projects that decide the yard.</h2>
          <p className="deck">Outside, the order is soil, water, structure, plants, finish. These are the searches with the most intent in this lane.</p>
        </div>
        <div className="legend">
          <span><i style={{ background: 'var(--lglcopper)' }} /> Difficulty</span>
          <span><i style={{ background: 'var(--lglblue)' }} /> Time</span>
          <span><i style={{ background: 'var(--lglmoss)' }} /> Materials</span>
        </div>
      </div>
      <div className="lgl-top-list">
        {page.top.map((t) => (
          <article className="lgl-top-row" key={t[0]}>
            <div className="rank">No. {t[0]}</div>
            <a className="lgl-top-photo" href={t[9]} style={lglBg(t[6])} aria-label={t[1]}></a>
            <div className="query">
              <h3>{t[1]}</h3>
              <p>{t[7]}</p>
              <a href={t[9]} className="read">{t[8]}</a>
            </div>
            <div className="stats">
              <div className="stat"><span className="k">Monthly searches</span><span className="v">{t[2]}</span></div>
              <div className="stat"><span className="k">Difficulty</span><span className="v">{t[3]}</span></div>
              <div className="stat"><span className="k">Time</span><span className="v">{t[4]}</span></div>
              <div className="stat"><span className="k">Materials</span><span className="v">{t[5]}</span></div>
            </div>
          </article>
        ))}
      </div>
    </div>
  </section>
);

const LawnGardenL3PhotoSpread = ({ page }) => (
  <section className="lgl-photo-spread">
    <div className="lgl-wrap">
      <div className="section-folio"><span>{page.photoLabel}</span><span className="pg">PG. 07</span></div>
      <div className="lgl-photo-grid">
        {page.top.slice(0, 4).map((item, i) => (
          <article className={'lgl-photo-card c' + (i + 1)} key={item[0]}>
            <a className="photo" href={item[9]} style={lglBg(item[6].replace('w=1500', 'w=1900'))} aria-label={item[1]}></a>
            <div className="copy">
              <span>{item[1]}</span>
              <h3>{item[8]}</h3>
              <p>{item[7]}</p>
            </div>
          </article>
        ))}
      </div>
    </div>
  </section>
);

const LawnGardenL3Essay = ({ page }) => (
  <section className="lgl-essay">
    <div className="lgl-essay-wrap">
      <div className="section-folio"><span>Editor's Note / Lawn and Garden, {page.active}</span><span className="pg">PG. 08</span></div>
      <div className="lgl-essay-grid">
        <aside className="lgl-essay-side">
          <h2>{page.essayTitle}</h2>
          <div className="by">By the Editors / 5 min read</div>
          <div className="stat-list">
            <div className="row"><span>Guides</span><strong>{page.count}</strong></div>
            <div className="row"><span>Most searched</span><strong>{page.top[0][1].replace('how to ', '')}</strong></div>
            <div className="row"><span>First rule</span><strong>{page.rule}</strong></div>
            <div className="row"><span>Room</span><strong>Outside</strong></div>
          </div>
        </aside>
        <div className="lgl-essay-body">
          <p className="dropcap">{page.essay[0]}</p>
          <p>{page.essay[1]}</p>
          <div className="pull">A yard has to survive weather after the page is done looking good.</div>
          <p>{page.essay[2]}</p>
        </div>
      </div>
    </div>
  </section>
);

const LawnGardenL3Tools = ({ page }) => (
  <section className="lgl-tools">
    <div className="lgl-wrap">
      <div className="section-folio"><span>The Kit / What earns shed space</span><span className="pg">PG. 10</span></div>
      <div className="lgl-tools-head">
        <h2>Eight tools that make lawn and garden {page.active.toLowerCase()} work less like guessing.</h2>
        <p>Outside work fails when water, soil, sun, frost, or storage gets treated as a small detail.</p>
      </div>
      <div className="lgl-tools-grid">
        {page.tools.map((tool, i) => (
          <div className="lgl-tool" key={tool}>
            <span>{String(i + 1).padStart(2, '0')}</span>
            <h3>{tool}</h3>
            <p>Useful because outdoor work depends on grade, moisture, seasons, and materials that can take weather.</p>
          </div>
        ))}
      </div>
    </div>
  </section>
);

const LawnGardenL3Matrix = ({ page }) => (
  <section className="lgl-matrix">
    <div className="lgl-wrap">
      <div className="section-folio"><span>The Menu / Ranked by payoff</span><span className="pg">PG. 12</span></div>
      <div className="lgl-matrix-head">
        <h2>Ten lawn and garden {page.active.toLowerCase()} projects, ranked.</h2>
        <p>The first jobs protect water and access. The later jobs add structure, rhythm, and polish.</p>
      </div>
      <div className="lgl-matrix-table">
        <div className="lgl-matrix-row head"><span>Project</span><span>Risk</span><span>Time</span><span>Payoff</span><span></span></div>
        {page.matrix.map((project, i) => (
          <div className="lgl-matrix-row" key={project}>
            <span className="proj"><b>{String(i + 1).padStart(2, '0')}</b>{project}</span>
            <span>{i < 3 ? 'High' : i < 7 ? 'Medium' : 'Low'}</span>
            <span>{i < 3 ? 'Today' : i < 7 ? 'Weekend' : 'Later'}</span>
            <span className="dots"><i></i><i></i><i></i><i className={i > 4 ? '' : 'off'}></i><i className={i > 7 ? '' : 'off'}></i></span>
            <span><a href={'/en/lawn-garden/' + page.active.toLowerCase() + '/'}>Open</a></span>
          </div>
        ))}
      </div>
    </div>
  </section>
);

const LawnGardenL3Mistakes = ({ page }) => (
  <section className="lgl-mistakes">
    <div className="lgl-wrap">
      <div className="section-folio"><span>Do Not Skip / Outdoor failure points</span><span className="pg">PG. 14</span></div>
      <div className="lgl-mistakes-head">
        <h2>The mistakes that make the yard worse later.</h2>
        <span>{page.mistakes.length}</span>
      </div>
      <div className="lgl-mistakes-grid">
        {page.mistakes.map((m, i) => (
          <article className="lgl-mistake" key={m}>
            <div className="n">{String(i + 1).padStart(2, '0')}</div>
            <h3>{m}</h3>
            <p>If water, soil, sun, or frost is ignored, the project becomes seasonal regret with better photos.</p>
          </article>
        ))}
      </div>
    </div>
  </section>
);

const LawnGardenL3Related = ({ page, lane }) => (
  <section className="lgl-related">
    <div className="lgl-related-wrap">
      <div className="lgl-related-col">
        <h3>Other things to do outside.</h3>
        <div className="lgl-related-list">
          {LAWN_GARDEN_L3_ORDER.map((key, i) => (
            <a href={'/en/lawn-garden/' + key + '/'} className={'row ' + (key === lane ? 'current' : '')} key={key}><span className="n">{String(i + 1).padStart(2, '0')}</span><span className="t">{key} lawn and garden</span><span className="ct">{LAWN_GARDEN_L3_COUNTS[key]} guides</span></a>
          ))}
        </div>
      </div>
      <div className="lgl-related-col">
        <h3>{page.active} in other rooms.</h3>
        <div className="lgl-related-list">
          {['kitchen', 'bathroom', 'bedroom', 'living-room', 'garage', 'basement'].map((room, i) => (
            <a href={'/en/' + lane + '/' + room + '/'} className="row" key={room}><span className="n">{String(i + 1).padStart(2, '0')}</span><span className="t">{room.replace('-', ' ')}</span><span className="ct">room lane</span></a>
          ))}
        </div>
      </div>
    </div>
  </section>
);

const LawnGardenL3Colophon = ({ page }) => (
  <section className="lgl-colophon">
    <span>HowTo: Home Edition / Lawn and Garden</span>
    <h2>{page.count} ways to {page.active.toLowerCase()} the part of the house that grows back.</h2>
    <p>Built as a static editorial L3 page with a full crawler body, visible photography, and a real outdoor menu.</p>
    <a href="/en/lawn-garden/" className="go">Back to Lawn/Garden</a>
  </section>
);

const LawnGardenL3 = ({ lane }) => {
  const page = LAWN_GARDEN_L3_PAGES[lane] || LAWN_GARDEN_L3_PAGES.build;
  return (
    <>
      <LawnGardenL3Hero page={page} />
      <LawnGardenL3Top5 page={page} />
      <LawnGardenL3PhotoSpread page={page} />
      <LawnGardenL3Essay page={page} />
      <LawnGardenL3Tools page={page} />
      <LawnGardenL3Matrix page={page} />
      <LawnGardenL3Mistakes page={page} />
      <LawnGardenL3Related page={page} lane={lane} />
      <LawnGardenL3Colophon page={page} />
    </>
  );
};

window.LawnGardenL3 = LawnGardenL3;
