/*
Theme Name: Greensward
Theme URI: https://example.com/greensward
Author: Your Name
Author URI: https://example.com
Description: A simple, fresh lawn-green theme made for WooCommerce shops. Grass-blade edges on the hero, page banners and footer, a leaf-shaped sale badge, rounded pill buttons and a clean product grid. Includes a customizable homepage hero, top bar message, AJAX cart count and footer widget areas.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: greensward
Tags: e-commerce, green, custom-logo, custom-menu, featured-images, footer-widgets, threaded-comments, translation-ready, wide-blocks
*/

/* ------------------------------------------------------------
   1. Tokens
------------------------------------------------------------ */
:root {
	--turf: #1e4a2a;      /* deep green: headings, footer */
	--meadow: #3b8a3e;    /* main green: buttons, links */
	--blade: #8dc641;     /* fresh green: highlights, sale badge */
	--dew: #f5f9ef;       /* page background */
	--mist: #e3eed4;      /* soft fills */
	--line: #cfe0bc;      /* borders */
	--ink: #1a2b1d;       /* body text */
	--muted: #56685a;     /* secondary text */
	--hay: #d9a441;       /* stars, focus ring */
	--danger: #b3261e;

	--font-display: "Young Serif", Georgia, "Times New Roman", serif;
	--font-body: "Nunito Sans", "Segoe UI", system-ui, -apple-system, sans-serif;

	--radius: 14px;
	--container: 1200px;

	--grass: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 40' preserveAspectRatio='none'%3E%3Cpath d='M-240.0 40Q-237.9 25.0 -230.8 12.8Q-231.6 26.4 -233.4 40ZM0.0 40Q2.1 25.0 9.2 12.8Q8.4 26.4 6.6 40ZM240.0 40Q242.1 25.0 249.2 12.8Q248.4 26.4 246.6 40ZM-235.7 40Q-237.3 24.7 -236.8 12.3Q-230.3 26.1 -229.0 40ZM4.3 40Q2.7 24.7 3.2 12.3Q9.7 26.1 11.0 40ZM244.3 40Q242.7 24.7 243.2 12.3Q249.7 26.1 251.0 40ZM-231.4 40Q-233.3 22.5 -233.4 8.1Q-225.9 24.1 -224.1 40ZM8.6 40Q6.7 22.5 6.6 8.1Q14.1 24.1 15.9 40ZM248.6 40Q246.7 22.5 246.6 8.1Q254.1 24.1 255.9 40ZM-227.5 40Q-226.5 22.3 -222.1 7.8Q-221.3 23.9 -222.1 40ZM12.5 40Q13.5 22.3 17.9 7.8Q18.7 23.9 17.9 40ZM252.5 40Q253.5 22.3 257.9 7.8Q258.7 23.9 257.9 40ZM-224.2 40Q-223.4 20.6 -217.8 4.7Q-215.1 22.4 -215.7 40ZM15.8 40Q16.6 20.6 22.2 4.7Q24.9 22.4 24.3 40ZM255.8 40Q256.6 20.6 262.2 4.7Q264.9 22.4 264.3 40ZM-219.5 40Q-219.4 31.0 -216.4 23.7Q-213.9 31.8 -214.0 40ZM20.5 40Q20.6 31.0 23.6 23.7Q26.1 31.8 26.0 40ZM260.5 40Q260.6 31.0 263.6 23.7Q266.1 31.8 266.0 40ZM-216.2 40Q-218.5 28.5 -220.0 19.2Q-212.5 29.6 -210.5 40ZM23.8 40Q21.5 28.5 20.0 19.2Q27.5 29.6 29.5 40ZM263.8 40Q261.5 28.5 260.0 19.2Q267.5 29.6 269.5 40ZM-211.9 40Q-211.8 21.9 -208.4 7.2Q-205.3 23.6 -205.4 40ZM28.1 40Q28.2 21.9 31.6 7.2Q34.7 23.6 34.6 40ZM268.1 40Q268.2 21.9 271.6 7.2Q274.7 23.6 274.6 40ZM-207.3 40Q-207.5 23.9 -204.5 10.8Q-200.7 25.4 -200.5 40ZM32.7 40Q32.5 23.9 35.5 10.8Q39.3 25.4 39.5 40ZM272.7 40Q272.5 23.9 275.5 10.8Q279.3 25.4 279.5 40ZM-203.4 40Q-201.8 20.2 -194.4 4.1Q-193.5 22.0 -194.9 40ZM36.6 40Q38.2 20.2 45.6 4.1Q46.5 22.0 45.1 40ZM276.6 40Q278.2 20.2 285.6 4.1Q286.5 22.0 285.1 40ZM-198.6 40Q-199.6 28.7 -198.5 19.4Q-193.4 29.7 -192.5 40ZM41.4 40Q40.4 28.7 41.5 19.4Q46.6 29.7 47.5 40ZM281.4 40Q280.4 28.7 281.5 19.4Q286.6 29.7 287.5 40ZM-195.2 40Q-193.5 26.8 -186.5 16.0Q-186.1 28.0 -187.6 40ZM44.8 40Q46.5 26.8 53.5 16.0Q53.9 28.0 52.4 40ZM284.8 40Q286.5 26.8 293.5 16.0Q293.9 28.0 292.4 40ZM-191.1 40Q-193.6 21.9 -194.0 7.1Q-184.9 23.5 -182.8 40ZM48.9 40Q46.4 21.9 46.0 7.1Q55.1 23.5 57.2 40ZM288.9 40Q286.4 21.9 286.0 7.1Q295.1 23.5 297.2 40ZM-187.5 40Q-185.1 26.0 -176.6 14.6Q-177.3 27.3 -179.3 40ZM52.5 40Q54.9 26.0 63.4 14.6Q62.7 27.3 60.7 40ZM292.5 40Q294.9 26.0 303.4 14.6Q302.7 27.3 300.7 40ZM-183.4 40Q-182.0 24.3 -176.8 11.4Q-176.9 25.7 -178.1 40ZM56.6 40Q58.0 24.3 63.2 11.4Q63.1 25.7 61.9 40ZM296.6 40Q298.0 24.3 303.2 11.4Q303.1 25.7 301.9 40ZM-179.5 40Q-177.3 27.5 -170.4 17.3Q-172.3 28.7 -174.2 40ZM60.5 40Q62.7 27.5 69.6 17.3Q67.7 28.7 65.8 40ZM300.5 40Q302.7 27.5 309.6 17.3Q307.7 28.7 305.8 40ZM-174.6 40Q-176.5 28.5 -177.5 19.1Q-170.8 29.5 -169.2 40ZM65.4 40Q63.5 28.5 62.5 19.1Q69.2 29.5 70.8 40ZM305.4 40Q303.5 28.5 302.5 19.1Q309.2 29.5 310.8 40ZM-171.2 40Q-171.0 29.2 -166.5 20.4Q-163.2 30.2 -163.5 40ZM68.8 40Q69.0 29.2 73.5 20.4Q76.8 30.2 76.5 40ZM308.8 40Q309.0 29.2 313.5 20.4Q316.8 30.2 316.5 40ZM-167.0 40Q-168.8 23.1 -169.4 9.4Q-162.9 24.7 -161.4 40ZM73.0 40Q71.2 23.1 70.6 9.4Q77.1 24.7 78.6 40ZM313.0 40Q311.2 23.1 310.6 9.4Q317.1 24.7 318.6 40ZM-162.3 40Q-163.7 26.6 -163.7 15.6Q-158.1 27.8 -156.9 40ZM77.7 40Q76.3 26.6 76.3 15.6Q81.9 27.8 83.1 40ZM317.7 40Q316.3 26.6 316.3 15.6Q321.9 27.8 323.1 40ZM-158.5 40Q-159.5 22.4 -157.1 7.9Q-150.9 24.0 -150.1 40ZM81.5 40Q80.5 22.4 82.9 7.9Q89.1 24.0 89.9 40ZM321.5 40Q320.5 22.4 322.9 7.9Q329.1 24.0 329.9 40ZM-153.3 40Q-151.5 26.9 -145.5 16.1Q-146.1 28.1 -147.5 40ZM86.7 40Q88.5 26.9 94.5 16.1Q93.9 28.1 92.5 40ZM326.7 40Q328.5 26.9 334.5 16.1Q333.9 28.1 332.5 40ZM-148.6 40Q-150.0 20.3 -149.9 4.2Q-144.5 22.1 -143.3 40ZM91.4 40Q90.0 20.3 90.1 4.2Q95.5 22.1 96.7 40ZM331.4 40Q330.0 20.3 330.1 4.2Q335.5 22.1 336.7 40ZM-144.8 40Q-145.8 27.6 -143.8 17.4Q-138.0 28.7 -137.1 40ZM95.2 40Q94.2 27.6 96.2 17.4Q102.0 28.7 102.9 40ZM335.2 40Q334.2 27.6 336.2 17.4Q342.0 28.7 342.9 40ZM-141.4 40Q-142.7 24.8 -142.4 12.3Q-137.2 26.2 -136.1 40ZM98.6 40Q97.3 24.8 97.6 12.3Q102.8 26.2 103.9 40ZM338.6 40Q337.3 24.8 337.6 12.3Q342.8 26.2 343.9 40ZM-136.9 40Q-134.6 26.2 -127.3 14.9Q-128.6 27.5 -130.6 40ZM103.1 40Q105.4 26.2 112.7 14.9Q111.4 27.5 109.4 40ZM343.1 40Q345.4 26.2 352.7 14.9Q351.4 27.5 349.4 40ZM-132.5 40Q-134.1 21.7 -133.5 6.7Q-126.9 23.3 -125.5 40ZM107.5 40Q105.9 21.7 106.5 6.7Q113.1 23.3 114.5 40ZM347.5 40Q345.9 21.7 346.5 6.7Q353.1 23.3 354.5 40ZM-129.0 40Q-130.2 22.2 -128.4 7.6Q-121.9 23.8 -120.8 40ZM111.0 40Q109.8 22.2 111.6 7.6Q118.1 23.8 119.2 40ZM351.0 40Q349.8 22.2 351.6 7.6Q358.1 23.8 359.2 40ZM-125.4 40Q-126.8 20.9 -125.8 5.2Q-119.0 22.6 -117.8 40ZM114.6 40Q113.2 20.9 114.2 5.2Q121.0 22.6 122.2 40ZM354.6 40Q353.2 20.9 354.2 5.2Q361.0 22.6 362.2 40ZM-120.0 40Q-120.4 24.6 -117.0 11.9Q-112.2 26.0 -111.9 40ZM120.0 40Q119.6 24.6 123.0 11.9Q127.8 26.0 128.1 40ZM360.0 40Q359.6 24.6 363.0 11.9Q367.8 26.0 368.1 40ZM-116.5 40Q-117.8 20.6 -117.6 4.7Q-112.5 22.4 -111.4 40ZM123.5 40Q122.2 20.6 122.4 4.7Q127.5 22.4 128.6 40ZM363.5 40Q362.2 20.6 362.4 4.7Q367.5 22.4 368.6 40ZM-111.7 40Q-111.2 22.1 -107.4 7.5Q-105.4 23.8 -105.8 40ZM128.3 40Q128.8 22.1 132.6 7.5Q134.6 23.8 134.2 40ZM368.3 40Q368.8 22.1 372.6 7.5Q374.6 23.8 374.2 40ZM-107.8 40Q-110.0 23.3 -111.1 9.6Q-104.0 24.8 -102.2 40ZM132.2 40Q130.0 23.3 128.9 9.6Q136.0 24.8 137.8 40ZM372.2 40Q370.0 23.3 368.9 9.6Q376.0 24.8 377.8 40ZM-104.1 40Q-103.6 21.8 -99.0 7.0Q-96.7 23.5 -97.2 40ZM135.9 40Q136.4 21.8 141.0 7.0Q143.3 23.5 142.8 40ZM375.9 40Q376.4 21.8 381.0 7.0Q383.3 23.5 382.8 40ZM-100.3 40Q-102.6 29.0 -102.9 19.9Q-94.1 30.0 -92.1 40ZM139.7 40Q137.4 29.0 137.1 19.9Q145.9 30.0 147.9 40ZM379.7 40Q377.4 29.0 377.1 19.9Q385.9 30.0 387.9 40ZM-96.4 40Q-98.0 30.5 -97.7 22.8Q-91.2 31.4 -89.9 40ZM143.6 40Q142.0 30.5 142.3 22.8Q148.8 31.4 150.1 40ZM383.6 40Q382.0 30.5 382.3 22.8Q388.8 31.4 390.1 40ZM-92.4 40Q-93.1 29.8 -90.8 21.4Q-86.0 30.7 -85.4 40ZM147.6 40Q146.9 29.8 149.2 21.4Q154.0 30.7 154.6 40ZM387.6 40Q386.9 29.8 389.2 21.4Q394.0 30.7 394.6 40ZM-87.2 40Q-86.2 24.0 -80.3 10.9Q-77.9 25.4 -78.7 40ZM152.8 40Q153.8 24.0 159.7 10.9Q162.1 25.4 161.3 40ZM392.8 40Q393.8 24.0 399.7 10.9Q402.1 25.4 401.3 40ZM-82.6 40Q-85.0 30.8 -86.6 23.3Q-79.1 31.6 -77.1 40ZM157.4 40Q155.0 30.8 153.4 23.3Q160.9 31.6 162.9 40ZM397.4 40Q395.0 30.8 393.4 23.3Q400.9 31.6 402.9 40ZM-77.3 40Q-79.7 20.6 -80.3 4.7Q-71.9 22.4 -69.9 40ZM162.7 40Q160.3 20.6 159.7 4.7Q168.1 22.4 170.1 40ZM402.7 40Q400.3 20.6 399.7 4.7Q408.1 22.4 410.1 40ZM-72.7 40Q-73.5 23.2 -71.8 9.4Q-66.7 24.7 -66.0 40ZM167.3 40Q166.5 23.2 168.2 9.4Q173.3 24.7 174.0 40ZM407.3 40Q406.5 23.2 408.2 9.4Q413.3 24.7 414.0 40ZM-67.2 40Q-66.0 25.2 -61.2 13.1Q-60.9 26.5 -61.9 40ZM172.8 40Q174.0 25.2 178.8 13.1Q179.1 26.5 178.1 40ZM412.8 40Q414.0 25.2 418.8 13.1Q419.1 26.5 418.1 40ZM-61.9 40Q-60.4 23.5 -54.0 9.9Q-53.1 25.0 -54.3 40ZM178.1 40Q179.6 23.5 186.0 9.9Q186.9 25.0 185.7 40ZM418.1 40Q419.6 23.5 426.0 9.9Q426.9 25.0 425.7 40ZM-56.6 40Q-54.6 23.7 -47.8 10.3Q-48.7 25.1 -50.3 40ZM183.4 40Q185.4 23.7 192.2 10.3Q191.3 25.1 189.7 40ZM423.4 40Q425.4 23.7 432.2 10.3Q431.3 25.1 429.7 40ZM-51.4 40Q-49.6 22.5 -43.1 8.2Q-43.4 24.1 -44.9 40ZM188.6 40Q190.4 22.5 196.9 8.2Q196.6 24.1 195.1 40ZM428.6 40Q430.4 22.5 436.9 8.2Q436.6 24.1 435.1 40ZM-46.9 40Q-46.5 27.0 -42.1 16.4Q-39.3 28.2 -39.7 40ZM193.1 40Q193.5 27.0 197.9 16.4Q200.7 28.2 200.3 40ZM433.1 40Q433.5 27.0 437.9 16.4Q440.7 28.2 440.3 40ZM-42.3 40Q-39.8 24.2 -32.7 11.2Q-34.9 25.6 -37.0 40ZM197.7 40Q200.2 24.2 207.3 11.2Q205.1 25.6 203.0 40ZM437.7 40Q440.2 24.2 447.3 11.2Q445.1 25.6 443.0 40ZM-37.0 40Q-35.9 26.9 -30.0 16.2Q-28.5 28.1 -29.5 40ZM203.0 40Q204.1 26.9 210.0 16.2Q211.5 28.1 210.5 40ZM443.0 40Q444.1 26.9 450.0 16.2Q451.5 28.1 450.5 40ZM-32.5 40Q-34.5 22.0 -35.1 7.2Q-27.7 23.6 -26.0 40ZM207.5 40Q205.5 22.0 204.9 7.2Q212.3 23.6 214.0 40ZM447.5 40Q445.5 22.0 444.9 7.2Q452.3 23.6 454.0 40ZM-27.6 40Q-27.7 24.6 -25.3 12.0Q-22.5 26.0 -22.5 40ZM212.4 40Q212.3 24.6 214.7 12.0Q217.5 26.0 217.5 40ZM452.4 40Q452.3 24.6 454.7 12.0Q457.5 26.0 457.5 40ZM-23.8 40Q-23.3 25.7 -18.5 14.1Q-15.9 27.0 -16.4 40ZM216.2 40Q216.7 25.7 221.5 14.1Q224.1 27.0 223.6 40ZM456.2 40Q456.7 25.7 461.5 14.1Q464.1 27.0 463.6 40ZM-18.5 40Q-19.5 31.1 -18.4 23.8Q-13.5 31.9 -12.6 40ZM221.5 40Q220.5 31.1 221.6 23.8Q226.5 31.9 227.4 40ZM461.5 40Q460.5 31.1 461.6 23.8Q466.5 31.9 467.4 40ZM-13.8 40Q-11.8 29.3 -5.2 20.6Q-6.4 30.3 -8.1 40ZM226.2 40Q228.2 29.3 234.8 20.6Q233.6 30.3 231.9 40ZM466.2 40Q468.2 29.3 474.8 20.6Q473.6 30.3 471.9 40ZM-9.0 40Q-9.9 21.4 -8.2 6.2Q-3.2 23.1 -2.5 40ZM231.0 40Q230.1 21.4 231.8 6.2Q236.8 23.1 237.5 40ZM471.0 40Q470.1 21.4 471.8 6.2Q476.8 23.1 477.5 40ZM-4.3 40Q-2.8 26.5 2.8 15.4Q2.7 27.7 1.4 40ZM235.7 40Q237.2 26.5 242.8 15.4Q242.7 27.7 241.4 40ZM475.7 40Q477.2 26.5 482.8 15.4Q482.7 27.7 481.4 40Z'/%3E%3Crect y='36' width='240' height='4'/%3E%3C/svg%3E");
}

/* ------------------------------------------------------------
   2. Base
------------------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	background: var(--dew);
	color: var(--ink);
	font-family: var(--font-body);
	font-size: 1.0625rem;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}

img, video { max-width: 100%; height: auto; }

a {
	color: var(--meadow);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
}
a:hover { color: var(--turf); }

:focus-visible {
	outline: 3px solid var(--hay);
	outline-offset: 2px;
	border-radius: 4px;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-display);
	font-weight: 400;
	line-height: 1.15;
	color: var(--turf);
	margin: 0 0 0.5em;
}
h1 { font-size: clamp(2rem, 4vw, 3rem); }
h2 { font-size: clamp(1.6rem, 3vw, 2.2rem); }
h3 { font-size: 1.4rem; }
h4 { font-size: 1.2rem; }
h5, h6 { font-size: 1.05rem; }

p, ul, ol, dl, blockquote, figure, table { margin: 0 0 1.2em; }

blockquote {
	margin-left: 0;
	padding: 0.25em 0 0.25em 1.25em;
	border-left: 4px solid var(--blade);
	font-family: var(--font-display);
	font-size: 1.2rem;
	color: var(--turf);
}

hr { border: 0; border-top: 1px solid var(--line); margin: 2rem 0; }

.container {
	width: min(100% - 2.5rem, var(--container));
	margin-inline: auto;
}

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}
.skip-link:focus {
	clip: auto;
	clip-path: none;
	width: auto;
	height: auto;
	top: 0.75rem;
	left: 0.75rem;
	z-index: 1000;
	padding: 0.75em 1.25em;
	background: #fff;
	color: var(--turf);
	font-weight: 700;
	border-radius: 999px;
}

/* WordPress alignment helpers */
.alignleft { float: left; margin: 0.3em 1.5em 1em 0; }
.alignright { float: right; margin: 0.3em 0 1em 1.5em; }
.aligncenter { display: block; margin-inline: auto; }
.wp-caption-text, figcaption { font-size: 0.9rem; color: var(--muted); }

/* ------------------------------------------------------------
   3. The grass motif
------------------------------------------------------------ */
.grass-edge {
	display: block;
	height: 28px;
	background: var(--meadow);
	-webkit-mask: var(--grass) left bottom / 240px 100% repeat-x;
	mask: var(--grass) left bottom / 240px 100% repeat-x;
}

/* ------------------------------------------------------------
   4. Top bar + header
------------------------------------------------------------ */
.topbar {
	background: var(--turf);
	color: #dcebcb;
	font-size: 0.9rem;
	text-align: center;
	padding: 0.5rem 0;
}
.topbar p { margin: 0; }
.topbar a { color: #fff; }

.site-header {
	background: #fff;
	border-bottom: 1px solid var(--line);
	position: relative;
	z-index: 20;
}

.header-inner {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 1rem 1.5rem;
	min-height: 84px;
	padding-block: 0.75rem;
}

.site-branding { margin-right: auto; }
.site-title {
	font-family: var(--font-display);
	font-size: 1.75rem;
	line-height: 1;
	margin: 0;
}
.site-title a { color: var(--turf); text-decoration: none; }
.site-description { margin: 0.3rem 0 0; font-size: 0.85rem; color: var(--muted); }
.custom-logo { display: block; max-height: 64px; width: auto; }

.main-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem;
}
.main-navigation li { position: relative; }
.main-navigation a {
	display: block;
	padding: 0.55em 0.95em;
	border-radius: 999px;
	color: var(--ink);
	font-weight: 700;
	text-decoration: none;
}
.main-navigation a:hover,
.main-navigation .current-menu-item > a,
.main-navigation .current_page_item > a,
.main-navigation .current-menu-ancestor > a {
	background: var(--mist);
	color: var(--turf);
}
.main-navigation ul ul {
	position: absolute;
	top: 100%;
	left: 0;
	display: none;
	flex-direction: column;
	min-width: 210px;
	padding: 0.4rem;
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 12px;
	z-index: 50;
}
.main-navigation ul ul a { border-radius: 8px; }
.main-navigation li:hover > ul,
.main-navigation li:focus-within > ul { display: flex; }

.header-actions { display: flex; align-items: center; gap: 0.5rem; }

.header-icon {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--mist);
	color: var(--turf);
	text-decoration: none;
	transition: background-color 0.15s;
}
.header-icon:hover { background: var(--line); color: var(--turf); }
.header-icon svg { width: 22px; height: 22px; }

.cart-count {
	position: absolute;
	top: -4px;
	right: -6px;
	min-width: 21px;
	height: 21px;
	padding: 0 5px;
	border-radius: 999px;
	border: 2px solid #fff;
	background: var(--meadow);
	color: #fff;
	font-size: 0.7rem;
	font-weight: 800;
	line-height: 17px;
	text-align: center;
}
.cart-count.is-empty { display: none; }

.site-header .menu-toggle { display: none; }

@media (max-width: 900px) {
	.site-branding { order: 1; }
	.header-actions { order: 2; }
	.site-header .menu-toggle {
		order: 3;
		display: inline-flex;
		align-items: center;
		gap: 0.5em;
		padding: 0.6em 1em;
		background: var(--mist);
		color: var(--turf);
		border: 0;
		border-radius: 999px;
		font: inherit;
		font-weight: 700;
		cursor: pointer;
	}
	.menu-toggle svg { width: 20px; height: 20px; }
	.main-navigation { order: 4; flex-basis: 100%; display: none; padding-bottom: 0.5rem; }
	.header-inner { min-height: 72px; }
	.main-navigation.toggled { display: block; }
	.main-navigation ul { flex-direction: column; }
	.main-navigation ul ul {
		position: static;
		display: flex;
		border: 0;
		padding: 0 0 0 1rem;
		background: transparent;
	}
}

@media (max-width: 600px) {
	.site-description { display: none; }
	.site-title { font-size: 1.5rem; }
	.site-header .menu-toggle { width: 44px; height: 44px; padding: 0; justify-content: center; }
	.menu-toggle-label {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip-path: inset(50%);
	}
	.woocommerce ul.products li.product .button { padding: 0.7em 1.1em; font-size: 0.9rem; }
}

/* ------------------------------------------------------------
   5. Homepage hero
------------------------------------------------------------ */
.hero {
	position: relative;
	overflow: hidden;
	background: linear-gradient(180deg, #e4f1d3 0%, var(--dew) 80%);
	padding: clamp(3rem, 8vw, 6.5rem) 0 clamp(6rem, 11vw, 9rem);
}
.hero-inner { position: relative; z-index: 1; display: grid; gap: 2.5rem; align-items: center; }
.hero--has-image .hero-inner { grid-template-columns: 1.1fr 0.9fr; }

.hero h1 {
	font-size: clamp(2.5rem, 5.6vw, 4.5rem);
	line-height: 1.04;
	letter-spacing: -0.01em;
	max-width: 14ch;
	margin-bottom: 0.4em;
}
.hero-text { font-size: 1.2rem; max-width: 44ch; color: var(--muted); margin-bottom: 1.8em; }
.hero .button { font-size: 1.05rem; padding: 0.95em 1.8em; }

.hero-image img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	/* an arched greenhouse window */
	border-radius: 50% 50% var(--radius) var(--radius) / 34% 34% var(--radius) var(--radius);
}

.hero-grass {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 96px;
	pointer-events: none;
}
.hero-grass .grass {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	display: block;
	transform-origin: bottom center;
}
.grass--back {
	height: 96px;
	background: var(--blade);
	-webkit-mask: var(--grass) 61px bottom / 330px 100% repeat-x;
	mask: var(--grass) 61px bottom / 330px 100% repeat-x;
}
.grass--front {
	height: 60px;
	background: var(--meadow);
	-webkit-mask: var(--grass) left bottom / 260px 100% repeat-x;
	mask: var(--grass) left bottom / 260px 100% repeat-x;
}

@media (prefers-reduced-motion: no-preference) {
	.hero-grass .grass { animation: greensward-grow 1s cubic-bezier(0.2, 0.7, 0.2, 1) both; }
	.hero-grass .grass--front { animation-delay: 0.12s; }
	@keyframes greensward-grow {
		from { transform: scaleY(0.15); }
		to { transform: scaleY(1); }
	}
}

@media (max-width: 800px) {
	.hero--has-image .hero-inner { grid-template-columns: 1fr; }
	.hero-image { max-width: 420px; }
}

/* ------------------------------------------------------------
   6. Page banners (pages, archives, shop)
------------------------------------------------------------ */
.page-banner {
	position: relative;
	background: var(--mist);
	padding: 2.75rem 0 3.6rem;
	margin-bottom: 2.5rem;
}
.page-banner::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 24px;
	background: var(--meadow);
	-webkit-mask: var(--grass) left bottom / 200px 100% repeat-x;
	mask: var(--grass) left bottom / 200px 100% repeat-x;
}
.page-banner h1 { margin: 0; }
.page-banner .archive-description { color: var(--muted); max-width: 60ch; margin-top: 0.6rem; }
.page-banner .archive-description p:last-child { margin-bottom: 0; }

/* ------------------------------------------------------------
   7. Layout + content
------------------------------------------------------------ */
.site-main { padding-bottom: 3rem; }
.single-product-wrap { padding-top: 2rem; }
.single .site-main { padding-top: 3rem; }
.error404 .site-main .container { padding-bottom: 1rem; }

.entry-content > * { max-width: 100%; }
.single .entry-content,
.page:not(.woocommerce-page) .entry-content,
.single .entry-header { max-width: 72ch; }

.entry-content .alignwide { max-width: calc(var(--container) - 2rem); }
.entry-meta { color: var(--muted); font-size: 0.9rem; margin-bottom: 1.5rem; }
.post-thumbnail img { display: block; border-radius: var(--radius); margin-bottom: 2rem; }

.post-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 2.5rem 2rem;
}
.entry-card .card-thumb img {
	display: block;
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	border-radius: var(--radius);
	margin-bottom: 1rem;
}
.entry-card .entry-title { font-size: 1.4rem; margin-bottom: 0.3em; }
.entry-card .entry-title a { color: var(--turf); text-decoration: none; }
.entry-card .entry-title a:hover { color: var(--meadow); }
.entry-card .entry-meta { margin-bottom: 0.6rem; }
.entry-card .entry-summary p { margin-bottom: 0.6em; color: var(--muted); }

.navigation.pagination, .posts-navigation, .post-navigation { margin-top: 3rem; }
.nav-links { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.nav-links .page-numbers {
	display: inline-grid;
	place-items: center;
	min-width: 2.6em;
	height: 2.6em;
	padding: 0 0.8em;
	border-radius: 999px;
	background: #fff;
	border: 1px solid var(--line);
	color: var(--ink);
	text-decoration: none;
	font-weight: 700;
}
.nav-links .page-numbers.current { background: var(--meadow); border-color: var(--meadow); color: #fff; }
.post-navigation .nav-links { justify-content: space-between; }

/* Home: product section */
.home-section { padding-top: 3rem; }
.section-head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.5rem 1.5rem;
	margin-bottom: 1.5rem;
}
.section-head h2 { margin: 0; }
.section-head a { font-weight: 700; }

/* Comments */
.comments-area { margin-top: 3rem; max-width: 72ch; }
.comment-list { list-style: none; padding: 0; }
.comment-list .children { list-style: none; padding-left: 1.5rem; border-left: 2px solid var(--mist); }
.comment-body { padding: 1.25rem 0; border-bottom: 1px solid var(--line); }
.comment-meta { font-size: 0.9rem; color: var(--muted); }
.comment-author .avatar { border-radius: 50%; vertical-align: middle; margin-right: 0.5rem; }

/* 404 */
.not-found { text-align: left; max-width: 60ch; }

/* ------------------------------------------------------------
   8. Buttons + forms
------------------------------------------------------------ */
.button,
button,
input[type="submit"],
input[type="button"],
input[type="reset"],
.wp-block-button__link,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.wc-block-components-button:not(.is-link) {
	display: inline-block;
	background: var(--meadow);
	color: #fff;
	border: 0;
	border-radius: 999px;
	padding: 0.8em 1.5em;
	font-family: var(--font-body);
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.15s;
}
.button:hover,
button:hover,
input[type="submit"]:hover,
.wp-block-button__link:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.wc-block-components-button:not(.is-link):hover {
	background: var(--turf);
	color: #fff;
}

.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt {
	background: var(--turf);
	color: #fff;
}
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce #respond input#submit.alt:hover {
	background: var(--meadow);
	color: #fff;
}

.button--ghost {
	background: transparent;
	color: var(--turf);
	box-shadow: inset 0 0 0 2px var(--meadow);
}
.button--ghost:hover { background: var(--meadow); color: #fff; }

.woocommerce a.button.disabled,
.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled],
.woocommerce button.button.alt.disabled,
button:disabled {
	opacity: 0.5;
	cursor: not-allowed;
	background: var(--meadow);
	color: #fff;
}

.woocommerce a.added_to_cart { display: inline-block; margin: 0.6em 0 0 0.4em; font-weight: 700; }

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="date"],
textarea,
select,
.woocommerce form .form-row .input-text,
.woocommerce form .form-row select {
	font: inherit;
	color: var(--ink);
	background: #fff;
	border: 1.5px solid var(--line);
	border-radius: 10px;
	padding: 0.65em 0.85em;
	line-height: 1.4;
	transition: border-color 0.15s, box-shadow 0.15s;
}
textarea { width: 100%; }
input:focus,
textarea:focus,
select:focus {
	outline: none;
	border-color: var(--meadow);
	box-shadow: 0 0 0 3px rgba(141, 198, 65, 0.35);
}
label { font-weight: 700; }

.search-form { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.search-form label { flex: 1 1 220px; }
.search-form .search-field { width: 100%; }

/* ------------------------------------------------------------
   9. WooCommerce
------------------------------------------------------------ */
.woocommerce .woocommerce-breadcrumb {
	margin: 0 0 1.5rem;
	color: var(--muted);
	font-size: 0.9rem;
}
.woocommerce .woocommerce-breadcrumb a { color: var(--meadow); }

.woocommerce .woocommerce-result-count { color: var(--muted); font-size: 0.95rem; }
.woocommerce .woocommerce-ordering select { padding-right: 2em; }

/* Product grid */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 0.75rem 0.75rem 1.1rem;
	transition: border-color 0.15s;
}
.woocommerce ul.products li.product:hover { border-color: var(--meadow); }

.woocommerce ul.products li.product a img {
	border-radius: 10px;
	background: var(--mist);
	margin-bottom: 0.9em;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .woocommerce-loop-category__title {
	font-family: var(--font-body);
	font-size: 1rem;
	font-weight: 700;
	color: var(--ink);
	padding: 0.1em 0.25em 0.3em;
}
.woocommerce ul.products li.product .price {
	color: var(--turf);
	font-size: 1.05rem;
	font-weight: 800;
	padding: 0 0.25em;
}
.woocommerce ul.products li.product .star-rating { margin-left: 0.25em; }
.woocommerce ul.products li.product .button { margin: 0.8em 0.25em 0; }

.woocommerce .price del,
.woocommerce div.product p.price del { color: var(--muted); opacity: 0.8; font-weight: 400; }
.woocommerce .price ins,
.woocommerce div.product p.price ins { text-decoration: none; }

/* Leaf-shaped sale badge */
.woocommerce span.onsale {
	min-width: 3.4em;
	min-height: 3.4em;
	line-height: 3.4em;
	padding: 0;
	border-radius: 0 50%;
	background: var(--blade);
	color: var(--turf);
	font-size: 0.85em;
	font-weight: 800;
	z-index: 2;
}
.woocommerce ul.products li.product .onsale {
	top: 1.1em;
	left: 1.1em;
	right: auto;
	margin: 0;
}

.woocommerce .star-rating span::before,
.woocommerce .star-rating::before,
.woocommerce p.stars a,
.woocommerce p.stars a::before { color: var(--hay); }
.woocommerce .star-rating::before { opacity: 0.35; }

/* Single product */
.woocommerce div.product .product_title { font-size: clamp(1.9rem, 3.6vw, 2.7rem); }
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	color: var(--turf);
	font-size: 1.5rem;
	font-weight: 800;
}
.woocommerce div.product div.images img { border-radius: var(--radius); }
.woocommerce div.product div.images .flex-control-thumbs li img { border-radius: 8px; margin-top: 0.5rem; }
.woocommerce div.product form.cart { margin: 1.5em 0 2em; }
.woocommerce .quantity .qty { width: 4.6em; text-align: center; padding: 0.7em 0.4em; }
.woocommerce div.product .product_meta { font-size: 0.9rem; color: var(--muted); }

.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	padding: 0;
	margin: 0 0 1.5em;
	border: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	margin: 0;
	padding: 0;
	background: transparent;
	border: 1.5px solid var(--line);
	border-radius: 999px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: 0.55em 1.25em; color: var(--ink); font-weight: 700; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: var(--meadow); border-color: var(--meadow); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: #fff; }
.woocommerce div.product .woocommerce-tabs .panel h2:first-of-type { font-size: 1.5rem; }
.related.products > h2, .upsells.products > h2, .cross-sells > h2 { margin-top: 1rem; }

/* Notices */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
p.no-comments {
	background: #fff;
	border-top: 3px solid var(--meadow);
	border-radius: 0 0 10px 10px;
	color: var(--ink);
}
.woocommerce-message::before,
.woocommerce-info::before { color: var(--meadow); }
.woocommerce-error { border-top-color: var(--danger); }
.woocommerce-error::before { color: var(--danger); }
.woocommerce-message .button,
.woocommerce-info .button { padding: 0.55em 1.1em; font-size: 0.9rem; }

/* Tables, cart, checkout, account */
.woocommerce table.shop_table {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	border-collapse: separate;
}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td { border-color: var(--line); }
.woocommerce-cart table.cart img { width: 72px; border-radius: 8px; }
.woocommerce a.remove { color: var(--danger) !important; }
.woocommerce a.remove:hover { background: var(--danger); color: #fff !important; }
.woocommerce .cart-collaterals .cart_totals h2,
.woocommerce-checkout h3 { font-size: 1.5rem; }
.woocommerce-checkout #payment {
	background: var(--mist);
	border-radius: var(--radius);
}
.woocommerce-checkout #payment div.payment_box { background: #fff; }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: #fff; }

.woocommerce-account .woocommerce-MyAccount-navigation ul {
	list-style: none;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}
.woocommerce-account .woocommerce-MyAccount-navigation a {
	display: block;
	padding: 0.6em 1em;
	border-radius: 10px;
	color: var(--ink);
	font-weight: 700;
	text-decoration: none;
}
.woocommerce-account .woocommerce-MyAccount-navigation a:hover { background: var(--mist); }
.woocommerce-account .woocommerce-MyAccount-navigation .is-active a { background: var(--meadow); color: #fff; }

/* Shop pagination */
.woocommerce nav.woocommerce-pagination ul { border: 0; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; margin: 0 0.2rem; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	min-width: 2.6em;
	padding: 0.65em 0.9em;
	border-radius: 999px;
	background: #fff;
	border: 1px solid var(--line);
	color: var(--ink);
	font-weight: 700;
}
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover {
	background: var(--meadow);
	border-color: var(--meadow);
	color: #fff;
}

/* Price filter widget */
.woocommerce .widget_price_filter .ui-slider .ui-slider-range,
.woocommerce .widget_price_filter .ui-slider .ui-slider-handle { background-color: var(--meadow); }
.woocommerce .widget_price_filter .price_slider_wrapper .ui-widget-content { background-color: var(--mist); }

/* Shop with sidebar */
.shop-layout.has-sidebar {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 270px;
	gap: 3rem;
}
.shop-sidebar .widget { margin-bottom: 2rem; }
.shop-sidebar .widget-title { font-size: 1.25rem; }
.shop-sidebar ul { list-style: none; padding: 0; }
.shop-sidebar li { padding: 0.3em 0; }

@media (max-width: 900px) {
	.shop-layout.has-sidebar { grid-template-columns: 1fr; }
}

/* ------------------------------------------------------------
   10. Footer
------------------------------------------------------------ */
.site-footer { margin-top: 3rem; color: #d7e6c8; }
.site-footer .grass-edge { background: var(--turf); height: 36px; }
.footer-body { background: var(--turf); padding: 2.5rem 0 1.75rem; }
.site-footer a { color: #fff; }
.site-footer a:hover { color: var(--blade); }
.site-footer .widget-title,
.site-footer h2,
.site-footer h3 { color: #fff; font-size: 1.25rem; }
.site-footer ul { list-style: none; padding: 0; }
.site-footer li { padding: 0.2em 0; }

.footer-widgets {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 2rem;
	padding-bottom: 2rem;
	margin-bottom: 1.5rem;
	border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}
.footer-bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	font-size: 0.9rem;
}
.footer-bottom p { margin: 0; }
.footer-menu { display: flex; flex-wrap: wrap; gap: 0.25rem 1.25rem; margin: 0; }
