:root {
	--bg-green: #2f5d3a;
	--leaf: #76a545;
	--leaf-dark: #315e39;
	--cream: #f6f3e9;
	--ink: #253229;
	--muted: #728077;
	--line: #e3e7df;
	--white: #fff;
	--radius: 4px;
}

a,
a:visited {
	color: var(--leaf-dark);
}

a:hover,
a:focus,
a:active {
	color: var(--leaf);
}

body.woocommerce,
body.woocommerce-page {
	color: var(--ink);
	font-family: "DM Sans", sans-serif;
}

.bobgrass-header { position: relative; z-index: 20; background: var(--white); }
.bobgrass-header__inner { display: flex; align-items: center; gap: 35px; max-width: 1200px; min-height: 82px; margin: auto; padding: 0 24px; }
.bobgrass-logo { display: inline-flex; align-items: center; gap: 9px; color: var(--leaf-dark); font-family: "Playfair Display", serif; font-size: 25px; font-weight: 700; }
.bobgrass-logo > span { color: var(--leaf); }
.bobgrass-logo .custom-logo { width: auto; max-height: 52px; }
.bobgrass-menu-toggle { display: none; }
.bobgrass-nav { margin-left: auto; }
.bobgrass-nav ul { display: flex; gap: 28px; margin: 0; padding: 0; list-style: none; }
.bobgrass-nav a, .bobgrass-cart-link { color: var(--ink); font-size: 13px; font-weight: 700; }
.bobgrass-cart-link { display: inline-flex; align-items: center; gap: 8px; padding: 12px 18px; border: 1px solid var(--leaf-dark); }
.bobgrass-cart-link__icon { display: block; flex: 0 0 auto; }
.bobgrass-footer { display: flex; justify-content: space-between; gap: 30px; padding: 60px max(24px, calc((100vw - 1152px) / 2)); background: #203e29; color: #dce6dc; }
.bobgrass-footer strong { color: white; font-family: "Playfair Display", serif; font-size: 24px; }
.bobgrass-footer p { margin: 8px 0 0; }

.bobgrass-home { background: var(--white); }
.bobgrass-home-hero { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(380px, .92fr); min-height: 680px; background: var(--cream); }
.bobgrass-home-hero__content { align-self: center; max-width: 680px; padding: 90px 7vw; }
.bobgrass-eyebrow { margin: 0 0 15px; color: var(--leaf); font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.bobgrass-home h1 { max-width: 650px; margin: 0 0 25px; color: var(--ink); font-family: "Playfair Display", serif; font-size: clamp(50px, 6.2vw, 84px); line-height: 1.03; }
.bobgrass-home-hero__content > p:not(.bobgrass-eyebrow) { max-width: 540px; color: var(--muted); font-size: 17px; line-height: 1.8; }
.bobgrass-home-actions { display: flex; align-items: center; gap: 27px; margin-top: 36px; }
.bobgrass-button { display: inline-block; padding: 17px 26px; border-radius: var(--radius); background: var(--leaf-dark); color: white; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.bobgrass-button:hover { background: var(--leaf); color: white; }
.bobgrass-text-link { color: var(--leaf-dark); font-size: 13px; font-weight: 700; }
.bobgrass-home-hero__art { display: grid; place-items: center; overflow: hidden; background: linear-gradient(145deg, #4f7947, #294f35); }
.bobgrass-home-hero__art span { color: rgba(255,255,255,.82); font-size: clamp(180px, 28vw, 420px); line-height: 1; transform: rotate(-12deg); text-shadow: 30px 35px 0 rgba(0,0,0,.08); }
.bobgrass-home-intro { max-width: 760px; margin: auto; padding: 105px 24px; text-align: center; }
.bobgrass-home-intro h2, .bobgrass-section-heading h2 { margin: 0 0 20px; font-family: "Playfair Display", serif; font-size: clamp(35px, 4vw, 52px); }
.bobgrass-home-intro > p:last-child { color: var(--muted); font-size: 16px; line-height: 1.8; }
.bobgrass-home-products { max-width: 1200px; margin: auto; padding: 15px 24px 110px; }
.bobgrass-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 42px; }
.bobgrass-section-heading h2 { margin: 0; }
.bobgrass-home-categories { padding: 95px max(24px, calc((100vw - 1152px) / 2)); background: var(--cream); }

.bobgrass-page-hero { padding: 78px 24px; background: var(--cream); text-align: center; }
.bobgrass-page-hero h1 { max-width: 900px; margin: 0 auto; font-family: "Playfair Display", serif; font-size: clamp(42px, 6vw, 68px); line-height: 1.1; }
.bobgrass-page__content { max-width: 900px; margin: 0 auto; padding: 75px 24px 100px; color: #465249; font-size: 16px; line-height: 1.85; }
.elementor-page .bobgrass-page__content, .bobgrass-elementor-page { max-width: none; padding: 0; }
.bobgrass-single__image { max-width: 1100px; margin: 70px auto 0; padding: 0 24px; }
.bobgrass-single__image img { width: 100%; }
.bobgrass-woocommerce-template {
	box-sizing: border-box;
	width: 100%;
	max-width: 1200px;
	min-height: 500px;
	margin-right: auto;
	margin-left: auto;
	padding: 88px 24px 105px;
}

/* WooCommerce and some Elementor widgets still apply floats to this wrapper. */
.bobgrass-product-template::after,
.bobgrass-category-template::after {
	display: table;
	clear: both;
	content: "";
}

.woocommerce h1,
.woocommerce h2,
.woocommerce h3,
.bobgrass-shop-hero h1 {
	font-family: "Playfair Display", Georgia, serif;
}

.bobgrass-shop-hero {
	position: relative;
	overflow: hidden;
	min-height: 215px;
	padding: 84px 24px 70px;
	background:
		linear-gradient(90deg, rgba(31, 70, 43, .96), rgba(48, 94, 57, .78)),
		radial-gradient(circle at 80% 20%, #71974d 0, transparent 42%);
	color: var(--white);
	text-align: center;
}

.bobgrass-shop-hero::before,
.bobgrass-shop-hero::after {
	position: absolute;
	content: "";
	width: 280px;
	height: 280px;
	border: 1px solid rgba(255,255,255,.12);
	border-radius: 55% 45% 65% 35%;
	transform: rotate(28deg);
}

.bobgrass-shop-hero::before { left: -90px; top: -110px; }
.bobgrass-shop-hero::after { right: -100px; bottom: -155px; }
.bobgrass-shop-hero__leaf { margin-bottom: 8px; color: #b7d27e; font-size: 22px; }
.bobgrass-shop-hero > p { margin: 0 0 10px; color: #dce9d6; font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.bobgrass-shop-hero h1 { margin: 0; color: inherit; font-size: clamp(42px, 6vw, 68px); line-height: 1.08; }
.bobgrass-shop-hero .woocommerce-breadcrumb { margin: 22px 0 0; color: #d8e4d6; font-size: 13px; }
.bobgrass-shop-hero .woocommerce-breadcrumb a { color: var(--white); }
.bobgrass-shop-hero .woocommerce-breadcrumb span { padding: 0 9px; opacity: .55; }

.woocommerce .site-main,
.woocommerce-page .site-main,
.woocommerce-cart .site-main,
.woocommerce-checkout .site-main,
.woocommerce-account .site-main {
	max-width: 1200px;
	margin: 0 auto;
	padding: 88px 24px 105px;
}

.woocommerce .woocommerce-result-count { margin: 14px 0 35px; color: var(--muted); }
.woocommerce .woocommerce-ordering { margin-bottom: 34px; }
.woocommerce .woocommerce-ordering select {
	min-width: 215px;
	padding: 13px 42px 13px 17px;
	border: 1px solid var(--line);
	border-radius: 0;
	background-color: var(--white);
	color: var(--ink);
}

.woocommerce ul.products { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 44px 28px; margin: 0; }
.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product { float: none !important; width: auto !important; margin: 0 !important; text-align: center; }
.woocommerce ul.products li.product a img {
	width: 100%;
	margin: 0 0 23px;
	aspect-ratio: 1 / 1.08;
	object-fit: cover;
	background: var(--cream);
	transition: transform .45s ease, filter .45s ease;
}
.woocommerce ul.products li.product:hover a img { transform: translateY(-5px); filter: saturate(1.05); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { padding: 6px 0 4px; color: var(--ink); font-size: 21px; line-height: 1.25; }
.bobgrass-card-category { display: block; color: var(--leaf); font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.woocommerce ul.products li.product .price { display: block; margin: 3px 0 17px; color: var(--leaf-dark); font-size: 15px; font-weight: 700; }
.woocommerce ul.products li.product .button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	padding: 14px 24px;
	border-radius: var(--radius);
	background: var(--leaf-dark);
	color: var(--white);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	transition: background .25s ease, transform .25s ease;
}
.woocommerce ul.products li.product .button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover { background: var(--leaf); color: var(--white); transform: translateY(-2px); }
.woocommerce span.onsale { top: 14px; left: 14px; min-width: 0; min-height: 0; padding: 7px 11px; border-radius: 0; background: #d7a642; font-size: 11px; line-height: 1; text-transform: uppercase; }
.woocommerce nav.woocommerce-pagination { margin-top: 62px; }
.woocommerce nav.woocommerce-pagination ul { border: 0; }
.woocommerce nav.woocommerce-pagination ul li { margin: 0 4px; border: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span { width: 42px; height: 42px; padding: 12px 6px; background: var(--cream); color: var(--ink); }
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover { background: var(--leaf-dark); color: white; }

.single-product div.product { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(320px, .92fr); gap: 70px; }
.single-product div.product .woocommerce-product-gallery,
.single-product div.product .summary { float: none; width: auto; }
.single-product div.product .summary { margin-top: 24px; }
.single-product div.product .product_title { margin-bottom: 14px; font-size: clamp(36px, 4vw, 52px); }
.single-product div.product p.price { color: var(--leaf-dark); font-size: 24px; font-weight: 700; }
.single-product div.product .woocommerce-product-details__short-description { margin: 25px 0; color: var(--muted); line-height: 1.8; }
.woocommerce .quantity .qty { min-height: 48px; border: 1px solid var(--line); }
.woocommerce div.product .woocommerce-tabs { grid-column: 1 / -1; padding-top: 50px; }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; border-bottom: 1px solid var(--line); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { margin: 0 26px 0 0; padding: 0; border: 0; background: transparent; }
.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 a { padding: 14px 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { border-bottom: 2px solid var(--leaf); color: var(--leaf-dark); }

.woocommerce table.shop_table { border-color: var(--line); border-radius: 0; }
.woocommerce table.shop_table th { padding: 18px 14px; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
.woocommerce table.shop_table td { padding: 18px 14px; }
.woocommerce-cart .cart-collaterals .cart_totals { padding: 30px; background: var(--cream); }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.select2-container--default .select2-selection--single { min-height: 48px; padding: 11px 14px; border: 1px solid var(--line); border-radius: 0; }
.woocommerce-checkout #order_review { padding: 30px; background: var(--cream); }
.woocommerce-info,
.woocommerce-message { border-top-color: var(--leaf); background: var(--cream); }
.woocommerce-info::before,
.woocommerce-message::before { color: var(--leaf); }

.bobgrass-benefits { background: var(--bg-green); color: var(--white); }
.bobgrass-benefits__inner { display: grid; grid-template-columns: repeat(3, 1fr); max-width: 1200px; margin: auto; padding: 38px 24px; }
.bobgrass-benefit { display: flex; align-items: center; justify-content: center; gap: 16px; padding: 4px 28px; border-right: 1px solid rgba(255,255,255,.15); }
.bobgrass-benefit:last-child { border-right: 0; }
.bobgrass-benefit > span { color: #b5d078; font-size: 32px; }
.bobgrass-benefit strong,
.bobgrass-benefit small { display: block; }
.bobgrass-benefit strong { font-family: "Playfair Display", serif; font-size: 18px; }
.bobgrass-benefit small { margin-top: 3px; color: #cbdacb; font-size: 12px; }

@media (max-width: 767px) {
	.bobgrass-header__inner { position: relative; gap: 14px; min-height: 68px; }
	.bobgrass-menu-toggle { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin-left: auto; padding: 0; border: 0; background: transparent; color: var(--ink); cursor: pointer; }
	.bobgrass-menu-toggle__icon { display: grid; gap: 5px; width: 23px; }
	.bobgrass-menu-toggle__icon span { display: block; height: 2px; background: currentColor; transition: transform .2s ease, opacity .2s ease; }
	.bobgrass-menu-toggle[aria-expanded="true"] .bobgrass-menu-toggle__icon span:first-child { transform: translateY(7px) rotate(45deg); }
	.bobgrass-menu-toggle[aria-expanded="true"] .bobgrass-menu-toggle__icon span:nth-child(2) { opacity: 0; }
	.bobgrass-menu-toggle[aria-expanded="true"] .bobgrass-menu-toggle__icon span:last-child { transform: translateY(-7px) rotate(-45deg); }
	.bobgrass-nav { position: absolute; top: 100%; right: 0; left: 0; display: none; margin: 0; padding: 12px 24px 22px; border-top: 1px solid var(--line); background: var(--white); box-shadow: 0 12px 24px rgba(37, 50, 41, .12); }
	.bobgrass-nav.is-open { display: block; }
	.bobgrass-nav ul { align-items: stretch; flex-direction: column; gap: 0; }
	.bobgrass-nav a { display: block; padding: 13px 0; border-bottom: 1px solid var(--line); }
	.bobgrass-cart-link { flex: 0 0 auto; padding: 10px 12px; }
	.bobgrass-cart-link span { display: none; }
	.bobgrass-footer { display: block; }
	.bobgrass-home-hero { grid-template-columns: 1fr; min-height: 0; }
	.bobgrass-home-hero__content { padding: 75px 24px; }
	.bobgrass-home-hero__art { min-height: 380px; }
	.bobgrass-home-actions { align-items: flex-start; flex-direction: column; }
	.bobgrass-section-heading { align-items: flex-start; flex-direction: column; }
	.bobgrass-shop-hero { min-height: 145px; padding: 60px 20px 52px; }
	.woocommerce .site-main,
	.woocommerce-page .site-main { padding: 58px 18px 75px; }
	.woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 34px 14px; }
	.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 17px; }
	.woocommerce ul.products li.product .button { padding: 11px 14px; font-size: 10px; }
	.single-product div.product { grid-template-columns: 1fr; gap: 25px; }
	.bobgrass-benefits__inner { grid-template-columns: 1fr; gap: 22px; }
	.bobgrass-benefit { justify-content: flex-start; border-right: 0; }
}
