/*!
Theme Name: GG Starter 26
Theme URI: http://underscores.me/
Author: Irshad Shaikh
Author URI: https://growwgenie.com/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: gg_starter_26
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready
*/

/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Custom Properties
# Base overrides
# Layout
	- Header
	- Footer
# WordPress core classes
	- Accessibility
	- Alignments
	- Media / Captions / Galleries
	- Navigation
	- Posts and pages
	- Widgets
	- Plugins (Jetpack)
--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Custom Properties
# Prefixed --gg- to avoid clashing with Bootstrap's --bs-* vars.
# Only define what Bootstrap doesn't already provide.
--------------------------------------------------------------*/
:root {

	/* Brand colors — Daily Foodzz */
	--gg-accent: #0D762C;
	/* brand green — CTA buttons (Enquire / Request a Quote) */
	--gg-accent-dark: #0B5E23;
	/* button hover/active + gradient end */
	--gg-accent-text: #ffffff;
	/* contrast color on accent bg — override if accent is light */
	--gg-accent-rgb: 13, 118, 44;
	/* RGB of --gg-accent — update alongside --gg-accent */

	--gg-green-bright: #169435;
	/* bright green — hero accent word, badge bg */
	--gg-green-dark: #093A1C;
	/* forest green — dark bands, footer CTA band, header nav */
	--gg-green-deep: #082816;
	/* deepest green — main footer + copyright bg */

	--gg-green-muted: #78bc8e;

	--gg-gold: #ffd01d;
	/* highlight marker, star icons */
	--gg-coral: #E2281E;
	/* eyebrow labels, "foodzz" in logo */
	--gg-coral-text: #D1261F;
	/* accessible coral for text on light backgrounds */

	/* Site colors */
	--gg-text: #1a1a1a;
	--gg-text-muted: #627065;
	/* muted gray-green — nav links, secondary text */
	--gg-bg: #ffffff;
	--gg-bg-alt: #F6F5F2;
	--gg-border: #e0e0e0;
	--gg-tint: #F4F8F3;
	/* muted green-tinted fill — tiles, chips, icon wells */
	--gg-hairline: #DFE7DE;
	/* green-tinted hairline border */

	/* Fonts — Bootstrap sets body font via --bs-body-font-family */
	--gg-font-body: 'Inter', sans-serif;
	--gg-font-heading: 'Inter', sans-serif;

	/* Font-size tokens */
	--gg-fs-09: 0.93rem;
	--gg-fs-08: 0.85rem;
	--gg-fs-07: 0.73rem;
	--gg-fs-06: 0.65rem;

	/* Logo */
	--gg-logo-height: 130px;
	--gg-logo-height-mob: 80px;

	/* Nav */
	--gg-dropdown-min-width: 14rem;

	/* Ink — heading color (dark green) */
	--gg-ink: #15201a;
	--gg-ink-hover: #333;

	/* Radii */
	--gg-radius-sm: 8px;
	--gg-radius-md: 12px;
	--gg-radius-lg: 16px;
	--gg-radius-xl: 20px;
	--gg-radius-pill: 50rem;

	/* Shadows — soft, green-tinted */
	--gg-shadow-card: 0 4px 16px rgba(18, 40, 26, 0.08);
	--gg-shadow-elevated: 0 12px 32px rgba(18, 40, 26, 0.1);
}

/*--------------------------------------------------------------
# Theme button — .btn-gg / .btn-outline-gg
# Custom button classes tied to --gg-accent.
# Use these instead of btn-primary to keep Bootstrap's color
# system separate from the site accent color.
--------------------------------------------------------------*/
.btn-gg {
	font-family: var(--gg-font-heading);
	--bs-btn-border-radius: 50rem;
	--bs-btn-padding-x: 1.25rem;
	--bs-btn-font-size: 1.15rem;
	--bs-btn-color: var(--gg-accent-text);
	--bs-btn-bg: var(--gg-accent);
	--bs-btn-border-color: var(--gg-accent);
	--bs-btn-hover-color: var(--gg-accent-text);
	--bs-btn-hover-bg: var(--gg-accent-dark);
	--bs-btn-hover-border-color: var(--gg-accent-dark);
	--bs-btn-active-color: var(--gg-accent-text);
	--bs-btn-active-bg: var(--gg-accent-dark);
	--bs-btn-active-border-color: var(--gg-accent-dark);
	--bs-btn-disabled-color: var(--gg-accent-text);
	--bs-btn-disabled-bg: var(--gg-accent);
	--bs-btn-disabled-border-color: var(--gg-accent);
	--bs-btn-focus-shadow-rgb: var(--gg-accent-rgb);
	--bs-btn-padding-y: .5rem;
}

a.btn-gg:link,
a.btn-gg:visited,
a.btn-gg:hover,
a.btn-gg:focus,
a.btn-gg:focus-visible,
a.btn-gg:active {
	color: var(--gg-accent-text);
	text-decoration: none;
}

.btn-outline-gg {
	font-family: var(--gg-font-heading);
	--bs-btn-border-radius: 50rem;
	--bs-btn-padding-x: 1.25rem;
	--bs-btn-font-size: 1.15rem;
	--bs-btn-bg: transparent;
	--bs-btn-color: var(--gg-accent);
	--bs-btn-border-color: var(--gg-accent);
	--bs-btn-hover-color: var(--gg-accent-text);
	--bs-btn-hover-bg: var(--gg-accent);
	--bs-btn-hover-border-color: var(--gg-accent);
	--bs-btn-active-color: var(--gg-accent-text);
	--bs-btn-active-bg: var(--gg-accent);
	--bs-btn-active-border-color: var(--gg-accent);
	--bs-btn-disabled-color: var(--gg-accent);
	--bs-btn-disabled-border-color: var(--gg-accent);
	--bs-btn-focus-shadow-rgb: var(--gg-accent-rgb);
	--bs-btn-padding-y: .5rem;
}

a.btn-outline-gg:link,
a.btn-outline-gg:visited {
	background-color: transparent;
	border-color: var(--gg-accent);
	color: var(--gg-accent);
	text-decoration: none;
}

a.btn-outline-gg:hover,
a.btn-outline-gg:focus-visible,
a.btn-outline-gg:active {
	background-color: var(--gg-accent);
	border-color: var(--gg-accent);
	color: var(--gg-accent-text);
	text-decoration: none;
}

/* White button — for use on dark/green backgrounds. */
.gg-btn-white {
	font-family: var(--gg-font-heading);
	--bs-btn-border-radius: 50rem;
	--bs-btn-padding-x: 1.25rem;
	--bs-btn-font-size: 1.15rem;
	--bs-btn-color: var(--gg-green-dark);
	--bs-btn-bg: #fff;
	--bs-btn-border-color: #fff;
	--bs-btn-hover-color: var(--gg-accent);
	--bs-btn-hover-bg: var(--gg-bg-alt);
	--bs-btn-hover-border-color: var(--gg-bg-alt);
	--bs-btn-active-color: var(--gg-accent);
	--bs-btn-active-bg: var(--gg-bg-alt);
	--bs-btn-active-border-color: var(--gg-bg-alt);
	--bs-btn-disabled-color: var(--gg-accent);
	--bs-btn-disabled-bg: #fff;
	--bs-btn-disabled-border-color: #fff;
	--bs-btn-padding-y: .5rem;
}

a.gg-btn-white:link,
a.gg-btn-white:visited,
a.gg-btn-white:hover,
a.gg-btn-white:focus,
a.gg-btn-white:focus-visible,
a.gg-btn-white:active {
	color: var(--gg-accent);
	text-decoration: none;
}

/* Size modifiers — the gg buttons hardcode default sizing, which beats
   Bootstrap's .btn-lg/.btn-sm; these higher-specificity rules restore them.
   (Border-radius intentionally left as the base pill.) */
.btn-gg.btn-lg,
.btn-outline-gg.btn-lg,
.gg-btn-white.btn-lg {
	--bs-btn-padding-x: 1.75rem;
	--bs-btn-padding-y: 0.65rem;
	--bs-btn-font-size: 1.2rem;
}

.btn-gg.btn-sm,
.btn-outline-gg.btn-sm,
.gg-btn-white.btn-sm {
	--bs-btn-padding-x: 0.9rem;
	--bs-btn-padding-y: 0.35rem;
	--bs-btn-font-size: var(--gg-fs-09);
}

/* Square icon-button utility — btn-gg gives a text-button pill; this squares it
   up and makes the icon inherit the button text color. Used by the core Search
   block's "button with icon" variant (render_block filter) and the header search toggle. */
.gg-search-icon-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	--bs-btn-padding-x: 0.6rem;
	--bs-btn-padding-y: 0.6rem;
}

.gg-search-icon-btn .search-icon {
	inline-size: 1.25rem;
	block-size: 1.25rem;
	fill: currentColor;
}

/*--------------------------------------------------------------
# Base overrides
# Bootstrap reboot is already loaded — only override what differs.
--------------------------------------------------------------*/
body {
	background-color: var(--gg-bg);
	color: var(--gg-text);
	font-family: var(--gg-font-body);
	font-size: 1.0625rem;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	clear: both;
	font-family: var(--gg-font-heading);
	color: var(--gg-ink);
	font-weight: bold;
}

h1,
.gg-h1 {
	font-size: clamp(2rem, 3vw + 1rem, 3rem);
}

h2 {
	font-size: clamp(1.38rem, 1.148rem + 1.136vw, 2.00rem);
}

h3 {
	font-size: 1.5rem;
}

h4 {
	font-size: 1.25rem;
}

h5 {
	font-size: 1.125rem;
}

h6 {
	font-size: 1rem;
}

a {
	color: var(--gg-accent-dark);
	text-decoration: none;
}


:where(a:not(.wp-block-button__link):not(.btn)):hover,
:where(a:not(.wp-block-button__link):not(.btn)):focus {
	color: var(--gg-green-dark);
	text-decoration: underline;
}

pre {
	background: var(--gg-bg-alt);
	border: 1px solid var(--gg-border);
}

blockquote {
	border-inline-start: 4px solid var(--gg-green-muted);
	color: var(--bs-secondary-color);
	padding-inline-start: 1em;
}

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

embed,
iframe,
object {
	max-width: 100%;
}

/* Common */

.section-tag {
	font-size: var(--gg-fs-09);
	font-weight: bold;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--gg-coral-text);
}

.gg-has-dot::before {
	content: "";
	display: inline-block;
	width: 0.7em;
	aspect-ratio: 1;
	margin-inline-end: 0.4em;
	border-radius: 50%;
	background-color: var(--gg-coral);
}

.section-heading {
	font-size: clamp(1.75rem, 3vw + 1rem, 2.5rem);
}

.gg-headline {
	font-size: clamp(2.375rem, 5vw + 1rem, 4rem);
	line-height: 1.05;
	letter-spacing: -0.02em;
}

.section-sub-heading {
	color: var(--gg-text-muted);
}

.gg-text-sm {
	font-size: var(--gg-fs-09);
}

.gg-text-md {
	font-size: 1.25rem;
}

/* Feature card — shared base for the icon/title/text cards (Built For Export,
   Why Daily Foodzz, Capabilities items, Russia Why-meet-us / Why-Daily-Foodzz).
   Section hook classes stay in the markup; they sit later in the file, so any
   per-section override wins over this base. */
.feature-card {
	block-size: 100%;
	padding: clamp(1rem, 0.7rem + 1vw, 1.5rem);
	background-color: var(--gg-bg);
	border-radius: var(--gg-radius-md);
	box-shadow: var(--gg-shadow-card);
}

.feature-card-icon {
	display: block;
	margin-block-end: 0.7rem;
}

/* Fallback size cap — section svg rules (later in file, same specificity) override. */
.feature-card-icon svg {
	max-inline-size: 5rem;
	block-size: auto;
}

.feature-card-title {
	margin-block: 0 0.5rem;
	font-family: var(--gg-font-heading);
	font-size: 1.25rem;
	font-weight: bold;
	line-height: 1.2;
	color: var(--gg-ink);
}

.feature-card-text {
	margin: 0;
	font-size: var(--gg-fs-09);
	color: var(--gg-text-muted);
}

/* No trailing margin when the last element is a title/icon (e.g. cards with no text). */
.feature-card> :last-child {
	margin-block-end: 0;
}

/* Item card — shared base for the vertical image card (img → title → text → link):
   Home "Our Range" categories + the product card. Styled by class (never by
   position) so a section can drop/reorder/swap parts freely; the card is a flex
   column and the link pins to the bottom, so alignment holds across a grid
   regardless of the middle content. Section hook classes carry any overrides. */
.gg-item-card {
	display: flex;
	flex-direction: column;
	block-size: 100%;
	background-color: var(--gg-bg);
	border-radius: var(--gg-radius-lg);
	box-shadow: var(--gg-shadow-card);
	overflow: hidden;
}

.gg-item-card-img {
	display: block;
}

.gg-item-card-img img {
	display: block;
	inline-size: 100%;
	object-fit: cover;
}

/* Opt-in modifier: inset the image and round it (image floats inside the card). */
.gg-item-card-img--inset {
	padding: 0.8rem 0.8rem 0;
}

.gg-item-card-img--inset img {
	border-radius: var(--gg-radius-md);
}

.gg-item-card-body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	align-items: flex-start;
	padding: 1.25rem;
}

.gg-item-card-title {
	margin-block: 0 0.35rem;
	font-family: var(--gg-font-heading);
	font-size: 1.25rem;
	font-weight: bold;
	line-height: 1.2;
	color: var(--gg-ink);
}

.gg-item-card-text {
	margin-block: 0 1rem;
	font-size: var(--gg-fs-09);
	color: var(--gg-text-muted);
}

.gg-item-card-link {
	margin-block-start: auto;
	font-family: var(--gg-font-heading);
	font-weight: bold;
	color: var(--gg-accent);
}

.gg-item-card-link::after {
	content: "\2192";
	margin-inline-start: 0.35em;
}

/* Drop trailing margin if the last body element isn't the link (e.g. no-link card). */
.gg-item-card-body> :last-child {
	margin-block-end: 0;
}

.gg-chip {
	font-size: var(--gg-fs-08);
	font-weight: 500;
	line-height: 1.3;
	letter-spacing: 0.02em;
}

/* Breadcrumb
--------------------------------------------- */
.gg-breadcrumb {
	padding-block-start: 0rem;
	--bs-breadcrumb-font-size: clamp(1rem, 0.9489rem + 0.2273vw, 1.125rem);
}

.gg-breadcrumb .breadcrumb {
	margin-block-end: 1rem;
	flex-wrap: nowrap;
}

/* Keep the trail on one line: earlier crumbs stay full-size, only the
   current (last) crumb shrinks and ellipsizes, down to a one-word floor. */
.gg-breadcrumb .breadcrumb-item:not(.active) {
	flex-shrink: 0;
	white-space: nowrap;
}

.gg-breadcrumb .breadcrumb-item.active {
	flex-shrink: 1;
	min-inline-size: 6ch;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/*--------------------------------------------------------------
# Layout
--------------------------------------------------------------*/

/* Header
--------------------------------------------- */
.site-header {
	position: relative;
	z-index: var(--bs-zindex-sticky);
	font-family: var(--gg-font-heading);
}


.site-header .navbar-brand,
.site-header .site-title a {
	color: var(--gg-text);
	text-decoration: none;
}

.site-header .navbar-brand:hover,
.site-header .site-title a:hover,
.site-header .nav-link:hover,
.site-header .nav-link:focus,
.site-header .nav-item.active>.nav-link {
	color: var(--gg-accent);
}

.site-header .custom-logo-link img {
	max-height: var(--gg-logo-height);
	width: auto;
}

.site-header .nav-link {
	color: var(--gg-text-muted);
	font-size: 1.0625rem;
}

.site-header .navbar-toggler {
	border-color: var(--gg-border);
	/* Override Bootstrap's toggler icon — color is baked into the SVG stroke
	   (a var() can't be injected here). Stroke set to --gg-green-dark #093A1C. */
	--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23093A1C' stroke-linecap='round' stroke-miterlimit='10' stroke-width='3' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

.site-header .dropdown-menu {
	--bs-dropdown-min-width: var(--gg-dropdown-min-width);
	border-color: var(--gg-border);
}

.site-header .dropdown-item {
	white-space: normal;
	word-break: break-word;
}

.site-header a.dropdown-item:hover,
.site-header a.dropdown-item:focus,
.site-header .dropdown-menu li.active>a.dropdown-item {
	color: var(--gg-accent);
	background-color: var(--gg-bg-alt);
}

/* Desktop — nested submenu opens to the right */
.site-header .dropdown-submenu {
	position: relative;
}

.site-header .dropdown-submenu>.dropdown-menu {
	inset-block-start: 0;
	inset-inline-start: 100%;
	margin-block-start: -2px;
}

/* Mobile offcanvas — dropdowns expand inline, not as floating overlays */
.offcanvas .dropdown-menu {
	position: static;
	box-shadow: none;
	border: none;
	border-radius: 0;
	padding-inline-start: 1rem;
}

/* Admin bar — offset offcanvas and any fixed elements when WP admin bar is visible */
.admin-bar .offcanvas {
	top: var(--wp-admin--admin-bar--height, 32px);
}

/* Header search */
.navbar>.container-xl {
	position: relative;
}

.gg-header-search {
	display: flex;
	align-items: center;
	justify-content: flex-end;
}

.navbar.gg-search-open .gg-header-search {
	position: absolute;
	inset: 0;
	z-index: 2;
	background-color: var(--gg-bg-alt);
	border-radius: var(--gg-radius-md);
}

.gg-header-search-form {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	inline-size: 0;
	overflow: hidden;
	opacity: 0;
}

.navbar.gg-search-open .gg-header-search-form {
	inline-size: 28rem;
	padding: var(--bs-focus-ring-width, 0.25rem);
	opacity: 1;
	margin-inline-end: 0.5rem;
}

.navbar.gg-search-open .gg-header-search-toggle {
	display: none;
}

.gg-header-search-input {
	inline-size: 100%;
}

.navbar.gg-search-open .offcanvas,
.navbar.gg-search-open .navbar-toggler {
	pointer-events: none;
}

@media (min-width: 768px) {
	.navbar.gg-search-open .site-branding {
		position: relative;
		z-index: 3;
	}
}

/* ── Mobile ── */
@media (max-width: 767px) {
	.site-header .custom-logo-link img {
		max-height: var(--gg-logo-height-mob);
	}
}

.site-header .navbar>.container-xl {
	justify-content: flex-start;
}

.site-header .offcanvas,
.site-header .navbar-toggler {
	order: 1;
}

.site-header .navbar-toggler {
	margin-inline-start: auto;
}

.gg-header-search {
	order: 2;
	margin-inline-start: 1rem;
}

/* Footer
--------------------------------------------- */
.site-footer {
	color: rgba(255, 255, 255, 0.60);
}

.footer-partnership {
	background-color: var(--gg-green-dark);
	padding-block: 4rem 3rem;
}

.footer-partnership-title {
	font-size: 2.5rem;
}

.footer-partnership-btn {
	font-family: var(--gg-font-heading);
	--bs-btn-padding-x: 3rem;
	--bs-btn-border-width: 2px;
	--bs-btn-font-weight: 500;
}

.footer-main {
	background-color: var(--gg-green-deep);
	padding-block: 3rem 5rem;
	word-wrap: break-word;
}

.footer-logo {
	position: relative;
	height: 120px;
	width: auto;
	margin-block-start: -4.5rem;
	margin-block-end: 1rem;
}

.footer-title {
	color: #fff;
	font-size: 1.2rem;
	font-family: var(--gg-font-heading);
	margin-block-end: 0.25rem;
}

.footer-tagline {
	color: rgba(255, 255, 255, 0.60);
	margin-block-end: 0;
}

.footer-heading {
	color: var(--gg-green-muted);
	font-size: 1.1rem;
	letter-spacing: 2px;
	margin-block-end: 1rem;
	text-transform: uppercase;
}

.footer-list {
	list-style: none;
	padding: 0;
	margin: 0;
	font-size: var(--gg-fs-09);
}

.footer-list li {
	margin-block-end: 0.4em;
}

.site-footer a:not(.btn) {
	color: rgba(255, 255, 255, 0.66);
	text-decoration: none;
}

.site-footer a:not(.btn):hover,
.site-footer a:not(.btn):focus {
	color: #fff;
	text-decoration: none;
}

.footer-bottom {
	background-color: var(--gg-green-deep);
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	padding-block: 1.25rem;
}

.footer-bottom .small {
	color: rgba(255, 255, 255, 0.5);
}

.footer-social {
	display: flex;
	gap: 0.5rem;
}

.footer-social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	inline-size: 2.25rem;
	block-size: 2.25rem;
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: 50%;
	color: rgba(255, 255, 255, 0.7);
	transition: color 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
}

.site-footer a.footer-social-link:hover,
.site-footer a.footer-social-link:focus-visible {
	border-color: var(--gg-green-muted);
	background-color: var(--gg-green-muted);
	color: var(--gg-green-deep);
}

.footer-social-link svg {
	inline-size: 1rem;
	block-size: 1rem;
}

/*--------------------------------------------------------------
# WordPress core classes
--------------------------------------------------------------*/

/* Accessibility
--------------------------------------------- */
.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;
}

.screen-reader-text:focus {
	background-color: var(--gg-bg-alt);
	border-radius: var(--bs-border-radius-sm);
	box-shadow: var(--bs-box-shadow);
	clip: auto !important;
	clip-path: none;
	color: #21759b;
	display: block;
	font-size: var(--gg-fs-08);
	font-weight: bold;
	height: auto;
	inset-inline-start: 5px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 500;
}

#primary[tabindex="-1"]:focus {
	outline: 0;
}

/* Alignments
--------------------------------------------- */
.alignleft {
	/*rtl:ignore*/
	float: left;
	/*rtl:ignore*/
	margin-right: 1.5rem;
	margin-bottom: 1.5rem;
}

.alignright {
	/*rtl:ignore*/
	float: right;
	/*rtl:ignore*/
	margin-left: 1.5rem;
	margin-bottom: 1.5rem;
}

.aligncenter {
	clear: both;
	display: block;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 1.5rem;
}

/* Media / Captions / Galleries
--------------------------------------------- */
.custom-logo-link {
	display: inline-block;
}

.wp-caption {
	margin-bottom: 1.5rem;
	max-width: 100%;
}

.wp-caption img[class*="wp-image-"] {
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.wp-caption .wp-caption-text,
.wp-caption-text {
	margin: 0.8em 0;
	text-align: center;
}

.gallery {
	display: grid;
	gap: 1.5rem;
	margin-bottom: 1.5rem;
}

.gallery-item {
	display: inline-block;
	text-align: center;
	width: 100%;
}

.gallery-columns-2 {
	grid-template-columns: repeat(2, 1fr);
}

.gallery-columns-3 {
	grid-template-columns: repeat(3, 1fr);
}

.gallery-columns-4 {
	grid-template-columns: repeat(4, 1fr);
}

.gallery-columns-5 {
	grid-template-columns: repeat(5, 1fr);
}

.gallery-columns-6 {
	grid-template-columns: repeat(6, 1fr);
}

.gallery-columns-7 {
	grid-template-columns: repeat(7, 1fr);
}

.gallery-columns-8 {
	grid-template-columns: repeat(8, 1fr);
}

.gallery-columns-9 {
	grid-template-columns: repeat(9, 1fr);
}

.gallery-caption {
	display: block;
}

/* Entry footer — categories, tags
--------------------------------------------- */
.entry-footer .cat-links,
.entry-footer .tags-links {
	display: inline-block;
	margin-inline-end: 1rem;
}

/* Single post content
--------------------------------------------- */
.entry-content h2,
.entry-content h3,
.entry-content h4 {
	margin-block-start: 2rem;
	margin-block-end: 0.75rem;
}

.entry-content ul,
.entry-content ol {
	padding-inline-start: 1.5rem;
	margin-bottom: 1.25rem;
}

.entry-content li {
	margin-block-end: 0.35rem;
}

.entry-content a {
	text-decoration: underline;
}

.entry-content img {
	margin-block: 1rem;
}

.entry-content .m-0 img {
	margin-block: 0;
}

/* Pagination — the_posts_pagination()
--------------------------------------------- */
.pagination {
	display: flex;
	gap: 0.25rem;
	flex-wrap: wrap;
	list-style: none;
	padding: 0;
	margin: 0;
}

.page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2rem;
	height: 2rem;
	padding: 0 0.5rem;
	border: 1px solid var(--gg-border);
	border-radius: var(--bs-border-radius);
	color: var(--gg-text);
	text-decoration: none;
	font-size: var(--gg-fs-08);
}

a.page-numbers:hover {
	background-color: var(--gg-bg-alt);
	border-color: var(--gg-accent);
	color: var(--gg-accent);
	text-decoration: none;
}

.page-numbers.current {
	background-color: var(--gg-accent);
	border-color: var(--gg-accent);
	color: var(--gg-accent-text);
}

.page-numbers.dots {
	border-color: transparent;
}

/* Navigation
--------------------------------------------- */
.site-main .comment-navigation,
.site-main .posts-navigation,
.site-main .post-navigation {
	margin: 0 0 1.5rem;
}

.comment-navigation .nav-links,
.posts-navigation .nav-links,
.post-navigation .nav-links {
	display: flex;
}

.comment-navigation .nav-previous,
.posts-navigation .nav-previous,
.post-navigation .nav-previous {
	flex: 1 0 50%;
}

.comment-navigation .nav-next,
.posts-navigation .nav-next,
.post-navigation .nav-next {
	text-align: end;
	flex: 1 0 50%;
}

/* Blog listing — post cards (home, archive, search)
--------------------------------------------- */
/* Blog post card — .gg-item-card base + these editorial overrides only. */
.gg-post-card {
	border: 1px solid var(--gg-border);
}

.gg-post-card-media {
	overflow: hidden;
	aspect-ratio: 16 / 10;
	background: var(--gg-bg-alt);
}

.gg-post-card-media img {
	block-size: 100%;
}

.gg-post-card-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.4rem;
	margin-block-end: 0.5rem;
	font-size: var(--gg-fs-08);
	color: var(--gg-text-muted);
}

.gg-post-card-cat a {
	color: var(--gg-accent);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	text-decoration: none;
}

.gg-post-card-cat a:hover {
	text-decoration: underline;
}

.gg-post-card-sep {
	color: var(--gg-border);
}

.gg-post-card-title {
	margin-block-end: 0.5rem;
	line-height: 1.3;
}

.gg-post-card-title a {
	color: var(--gg-ink);
	text-decoration: none;
}

.gg-post-card-title a:hover {
	color: var(--gg-accent);
}

.gg-post-card-more {
	font-weight: 600;
	text-decoration: none;
}

.gg-post-card-more:hover {
	text-decoration: underline;
}

/* Posts and pages
--------------------------------------------- */
.sticky {
	display: block;
}

.post,
.page {
	margin: 0;
}

.updated:not(.published) {
	display: none;
}

.page-content,
.entry-content,
.entry-summary {
	margin: 1.5rem 0 0;
}

.page-links {
	clear: both;
	margin: 0 0 1.5rem;
}

.comment-content a {
	word-wrap: break-word;
}

.bypostauthor {
	display: block;
}

/* Widgets
--------------------------------------------- */
.widget {
	margin: 0 0 1.5rem;
}

.widget select {
	max-width: 100%;
}

.gg-sidebar h2 {
	font-size: clamp(1.25rem, calc(1.023rem + 1.136vw), 1.88rem);
}

/* Comments
--------------------------------------------- */
.comment-list .comment,
.comment-list .pingback {
	padding: 1.25rem 0;
	border-top: 1px solid var(--gg-border);
}

.comment-list .children {
	list-style: none;
	padding-inline-start: 2rem;
}

.comment-author {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin-block-end: 0.4rem;
}

.comment-author img {
	border-radius: 50%;
	width: 36px;
	height: 36px;
}

.comment-author .fn {
	font-weight: 500;
}

.comment-meta {
	font-size: var(--gg-fs-08);
	color: var(--bs-secondary-color);
	margin-block-end: 0.5rem;
}

.comment-meta a {
	color: var(--bs-secondary-color);
}

.reply a {
	font-size: var(--gg-fs-08);
}

.gg-comment-form .comment-notes {
	font-size: var(--gg-fs-08);
	color: var(--bs-secondary-color);
	margin-block-end: 1rem;
}

.gg-comment-form .form-submit {
	margin-block-start: 0.5rem;
}

/* Plugins — Jetpack infinite scroll
--------------------------------------------- */
.infinite-scroll .posts-navigation,
.infinite-scroll.neverending .site-footer {
	display: none;
}

.infinity-end.neverending .site-footer {
	display: block;
}


/* Plugins — Gravity Forms
--------------------------------------------- */
.gform_required_legend {
	display: none;
}

.gg-form {
	color: #000;
}

.gg-form .gform_description:empty {
	margin: 0;
}

.gg-form .gform-theme.gform-theme--framework.gform_wrapper {
	/* Layout — GF default row gap is 40px; tighten it. */
	--gf-form-gap-y: 1rem;

	/* Inputs / textarea / select — map GF controls to the design system.
	   Radius-sm (8px) keeps inputs and textarea consistent (textarea caps at 8px). */
	--gf-ctrl-bg-color: var(--gg-bg);
	--gf-ctrl-color: var(--gg-ink-hover);
	--gf-ctrl-border-color: var(--gg-border);
	--gf-ctrl-border-color-focus: var(--gg-accent);
	--gf-ctrl-radius: var(--gg-radius-sm);
	--gf-ctrl-outline-color-focus: rgba(var(--gg-accent-rgb), 0.65);
	/* Textarea initial height (flat token; default 130px). Still user-resizable. */
	--gf-ctrl-textarea-height: 4rem;

	/* Button — primary submit → brand green, pill like .btn-gg.
	   (GF primary border is transparent and has no separate active state —
	   hover covers the pressed state, focus border derives from hover bg.) */
	--gf-ctrl-btn-bg-color-primary: var(--gg-accent);
	--gf-ctrl-btn-bg-color-hover-primary: var(--gg-accent-dark);
	--gf-ctrl-btn-border-color-primary: var(--gg-accent);
	--gf-ctrl-btn-border-color-hover-primary: var(--gg-accent-dark);
	--gf-ctrl-btn-radius: var(--gg-radius-pill);
	/* Sizing parity with .btn-gg. Override the -md SCALE variants for
	   font-size / padding-x / size: GF re-resolves the base tokens from their
	   -md variants at a specificity above this wrapper, so base-token overrides
	   are ignored — only the -md ones take. (padding-y is a flat token.) */
	--gf-ctrl-btn-font-size-md: 1.15rem;
	--gf-ctrl-btn-padding-x-md: 1.25rem;
	--gf-ctrl-btn-padding-y: 0.5rem;
	--gf-ctrl-btn-size-md: 2.85rem;

	--gf-label-space-primary: 4px;

	--gf-ctrl-label-font-size-primary: var(--gg-fs-07);
}

/* Secondary buttons (Previous, Save & Continue) — lighter weight than primary.
   font-weight is a shared token (no -secondary variant), so scope it by class.
   Specificity here (0,6,0) beats GF's button font-weight rule (≤0,5,1). */
.gg-form .gform-theme.gform-theme--framework.gform_wrapper .gform-theme-button--secondary.button {
	font-weight: 400;
}

.gg-form .gform-theme--framework ::placeholder {
	color: var(--gg-text-muted);
}

.gg-form select:has(option.gf_placeholder:checked) {
	color: var(--gg-text-muted);
}

.gg-form option.gf_placeholder {
	color: var(--gg-text-muted);
}

/* No-labels modifier — hide field labels (relying on placeholders / select's first
   option) for every field EXCEPT checkbox & radio, which keep their labels.
   Labels stay in the DOM (visually-hidden) for screen readers. */
.gg-form.gg-no-labels .gfield:not(.gfield--type-checkbox):not(.gfield--type-radio)>.gfield_label {
	position: absolute;
	inline-size: 1px;
	block-size: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.gg-form .gform-theme--foundation .gfield textarea.small {
	min-block-size: var(--gf-ctrl-textarea-height);
}

/* Homepage start */
.home-banner {
	background: var(--gg-bg-alt);
	padding: 0 0 3rem;
}

.home-banner::before {
	content: '';
	position: absolute;
	inset-block-start: -100%;
	inline-size: 100%;
	block-size: 100%;
	background: var(--gg-bg-alt);
	z-index: -1;
}

.home-banner-before-h1 {
	font-size: var(--gg-fs-09);
	font-weight: bold;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--gg-accent);
}

.home-banner h1 {
	margin-block: clamp(1.25rem, calc(1.136rem + 0.568vw), 1.563rem) clamp(1.25rem, calc(1.023rem + 1.136vw), 1.875rem);
	margin-inline: 0;
}

.home-banner h1 span {
	display: inline-block;
	position: relative;
	z-index: 0;
	color: var(--gg-green-bright);
}

.home-banner h1 span::before {
	content: '';
	display: block;
	position: absolute;
	inset-block-end: -2px;
	width: 98%;
	height: 43%;
	background: var(--gg-gold);
	border-radius: 2rem;
	z-index: -1;
	transform: rotate(1deg);
}

#home-banner-cta-3 {
	display: none;
}

.home-banner-infos .gg-chip {
	color: var(--gg-text-muted);
	text-wrap: balance;
}

.home-banner-infos>div {
	flex: 0 1 25%;
	padding-inline: clamp(0.625rem, calc(0.489rem + 0.682vw), 1rem);
}

.home-banner-infos>div:not(:first-child) {
	position: relative;
}

.home-banner-infos>div:not(:first-child)::before {
	content: '';
	position: absolute;
	inset-block: 0;
	inset-inline-start: 0;
	inline-size: 1px;
	background-color: var(--gg-text-muted);
}

.home-banner-media {
	display: grid;
	grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
	grid-template-rows: minmax(0, 1fr) minmax(0, 1fr) auto;
	gap: 0.75rem;
	min-width: 0;
}

.home-banner-video {
	position: relative;
	grid-column: 1;
	grid-row: 1 / 3;
	padding: 1.5rem 1.5rem 0.5rem;
	border-radius: var(--gg-radius-lg);
	background: linear-gradient(to bottom, #fef8e9, #858971);
	color: #fff;
	box-shadow: var(--gg-shadow-elevated);
	overflow: hidden;
}

.home-banner-video-image {
	position: relative;
	overflow: hidden;
	border-radius: var(--gg-radius-md);
	aspect-ratio: 3 / 3.5;
}

.home-banner-video-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.home-banner-video-tag {
	padding: 0.25rem 0.5rem;
	border: 1px solid var(--gg-ink);
	border-radius: var(--gg-radius-pill);
	background-color: #fff;
	color: var(--gg-ink);
	font-size: var(--gg-fs-08);
	font-weight: 500;
	line-height: 1.3;
}

.home-banner-video-image .home-banner-video-tag {
	position: absolute;
	inset-block-start: 0.75rem;
	inset-inline-start: 0.75rem;
	z-index: 1;
}

.home-banner-video-tag::before {
	content: '';
	display: inline-block;
	inline-size: 0.4rem;
	block-size: 0.4rem;
	margin-inline-end: 0.35rem;
	border-radius: 50%;
	background-color: var(--gg-coral);
}

.home-banner-video-play {
	position: absolute;
	display: grid;
	place-items: center;
	inset-block-start: 50%;
	inset-inline-start: 50%;
	inline-size: 4rem;
	block-size: 4rem;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
	transform: translate(-50%, -50%);
}

.home-banner-video-play svg {
	display: block;
	inline-size: 100%;
	block-size: 100%;
}

.home-banner-video-modal-media-holder {
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

.home-banner-video-modal-media-holder video,
.home-banner-video-modal-media-holder iframe {
	display: block;
	max-inline-size: 100%;
	block-size: auto;
}

.home-banner-video-title {
	color: inherit;
}

.home-banner-video-cta {
	align-self: flex-start;
	padding: 0.375rem 0.75rem;
	border-radius: var(--gg-radius-pill);
	background-color: #fff;
	color: var(--gg-ink);
	font-size: var(--gg-fs-09);
	font-weight: bold;
	text-decoration: none;
}

.home-banner-video-cta::before {
	content: '';
	display: inline-block;
	inline-size: 0;
	block-size: 0;
	margin-inline-end: 0.35rem;
	border-block: 0.3rem solid transparent;
	border-inline-start: 0.45rem solid var(--gg-accent);
	vertical-align: -0.05em;
}

.home-banner-video-cta::after {
	content: '\2192';
	margin-inline-start: 0.35rem;
	color: var(--gg-accent);
	font-size: var(--gg-fs-09);
}

.home-banner-badge,
.home-banner-stat {
	grid-column: 2;
	min-width: 0;
}

.home-banner-badge,
.home-banner-stat,
.home-banner-private-info,
.home-banner-private-certs {
	box-shadow: var(--gg-shadow-card);
}

.home-banner-badge {
	grid-row: 1;
	display: grid;
	grid-template-rows: auto 1fr;
	border-radius: var(--gg-radius-lg);
	overflow: hidden;
}

.home-banner-badge-item-top {
	background-color: var(--gg-green-bright);
}

.home-banner-badge-ticker {
	position: relative;
	min-width: 0;
	background-color: var(--gg-accent);
	overflow: hidden;
}

.home-banner-badge-ticker .carousel-inner {
	height: 100%;
}

.home-banner-badge-item-bottom {
	flex-direction: column;
	justify-content: center;
	width: 100%;
	height: 100%;
	min-width: 0;
	padding: 0.5rem 1rem 1rem;
	color: #fff;
}

.home-banner-badge-item-bottom.carousel-item {
	display: none;
}

.home-banner-badge-item-bottom.carousel-item.active,
.home-banner-badge-item-bottom.carousel-item-next,
.home-banner-badge-item-bottom.carousel-item-prev {
	display: flex;
}

.home-banner-badge-check {
	display: grid;
	place-items: center;
	inline-size: 2rem;
	block-size: 2rem;
	border-radius: 50%;
	background-color: #fff;
}

.home-banner-badge-check::before {
	content: '';
	inline-size: 1rem;
	block-size: 0.6rem;
	border-inline-start: 0.3rem solid var(--gg-green-bright);
	border-block-end: 0.3rem solid var(--gg-green-bright);
	transform: rotate(-45deg) translate(0.03rem, -0.03rem);
}

.home-banner-badge-item-title {
	font-size: 1.5rem;
	font-weight: bold;
	line-height: 1.1;
}

.home-banner-badge-item-text {
	font-weight: 400;
	line-height: 1.3;
	opacity: 0.85;
}

.home-banner-stat {
	grid-row: 2;
	padding: 1rem 1.5rem;
	border-radius: var(--gg-radius-lg);
	background-color: #fff;
	color: var(--gg-ink);
}

.home-banner-stat-num {
	color: var(--gg-green-bright);
	font-weight: bold;
	font-size: clamp(1.563rem, calc(1rem + 2.841vw), 3.125rem);
	line-height: 1;
}

.home-banner-stat-title {
	font-weight: bold;
	line-height: 1.3;
}

.home-banner-stat-text {
	min-width: 0;
}

.home-banner-stat-text::after {
	content: '';
	display: block;
	flex-basis: 100%;
	inline-size: 100%;
	block-size: clamp(0.3rem, 0.8vw, 0.5rem);
	margin-block-start: .5rem;
	--gg-stat-dot-size: clamp(0.12rem, 0.3vw, 0.18rem);
	background-image:
		radial-gradient(circle at 2% 50%, var(--gg-gold) 0 var(--gg-stat-dot-size), transparent calc(var(--gg-stat-dot-size) + 0.01rem)),
		radial-gradient(circle at 15.7143% 50%, var(--gg-accent) 0 var(--gg-stat-dot-size), transparent calc(var(--gg-stat-dot-size) + 0.01rem)),
		radial-gradient(circle at 29.4286% 50%, var(--gg-gold) 0 var(--gg-stat-dot-size), transparent calc(var(--gg-stat-dot-size) + 0.01rem)),
		radial-gradient(circle at 43.1429% 50%, var(--gg-accent) 0 var(--gg-stat-dot-size), transparent calc(var(--gg-stat-dot-size) + 0.01rem)),
		radial-gradient(circle at 56.8571% 50%, var(--gg-gold) 0 var(--gg-stat-dot-size), transparent calc(var(--gg-stat-dot-size) + 0.01rem)),
		radial-gradient(circle at 70.5714% 50%, var(--gg-accent) 0 var(--gg-stat-dot-size), transparent calc(var(--gg-stat-dot-size) + 0.01rem)),
		radial-gradient(circle at 84.2857% 50%, var(--gg-gold) 0 var(--gg-stat-dot-size), transparent calc(var(--gg-stat-dot-size) + 0.01rem)),
		radial-gradient(circle at 98% 50%, var(--gg-accent) 0 var(--gg-stat-dot-size), transparent calc(var(--gg-stat-dot-size) + 0.01rem));
	background-repeat: no-repeat;
}

.home-banner-stat-text-item {
	color: var(--gg-text-muted);
}

.home-banner-stat-text-item.carousel-item {
	display: none;
}

.home-banner-stat-text-item.carousel-item.active {
	display: block;
}

.home-banner-stat-text-item.carousel-item-next,
.home-banner-stat-text-item.carousel-item-prev {
	display: block;
}

.home-banner-stat-text .carousel-inner {
	block-size: auto;
	min-block-size: 2.6em;
}

.home-banner-private {
	display: grid;
	grid-column: 1 / -1;
	grid-row: 3;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.75rem;
	min-width: 0;
}

.home-banner-private-info,
.home-banner-private-certs {
	min-width: 0;
	border-radius: var(--gg-radius-lg);
	background-color: #fff;
	color: var(--gg-ink);
}

.home-banner-private-info {
	align-items: flex-start;
}

.home-banner-private-icon {
	display: block;
	inline-size: 2rem;
	block-size: auto;
	margin-block-start: 0.15rem;
	flex: 0 0 auto;
	color: var(--gg-accent);
}

.home-banner-private-title {
	font-weight: bold;
	line-height: 1.2;
}

.home-banner-private-text {
	margin-block-start: 0.25rem;
	color: var(--gg-text-muted);
	font-size: var(--gg-fs-09);
}

.home-banner-private-certs-title {
	margin-block-end: 0.75rem;
	color: var(--gg-text-muted);
	font-size: var(--gg-fs-08);
	font-weight: bold;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.home-banner-private-certs-items span {
	padding: 0.375rem 0.625rem;
	border: 1px solid var(--gg-border);
	border-radius: var(--gg-radius-pill);
	background-color: var(--gg-tint);
	font-size: var(--gg-fs-08);
	font-weight: 500;
}

.home-certs-items {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 0.75rem;
}

.home-certs-item {
	min-width: 0;
	border-radius: var(--gg-radius-md);
	background-color: var(--gg-tint);
	border: 1px solid var(--gg-hairline);
}

.home-certs-item-head {
	gap: 0.4rem;
	color: var(--gg-text-muted);
	font-size: var(--gg-fs-06);
	font-weight: 500;
	line-height: 1.2;
}

.home-certs-item-head-check {
	flex: 0 0 auto;
	inline-size: 1.35rem;
	block-size: 1.35rem;
	border-radius: 50%;
	background-color: var(--gg-green-bright);
	color: #fff;
}

.home-certs-item-head-check svg {
	inline-size: 0.8rem;
	block-size: 0.8rem;
}

.home-certs-item-title {
	font-size: 1rem;
	line-height: 1.1;
}

.home-categories {
	background: var(--gg-bg-alt);
}

/* Two ways to work */
.home-work-item-private,
.home-work-item-brand {
	block-size: 100%;
	padding: clamp(1.000rem, calc(0.536rem + 1.818vw), 2.000rem);
	border-radius: var(--gg-radius-lg);
}

.home-work-item-private {
	background-color: var(--gg-green-dark);
	color: #fff;
}

.home-work-item-private-main {
	flex: 1 1 auto;
	min-inline-size: 0;
}

.home-work-item-label {
	font-size: var(--gg-fs-09);
	font-weight: bold;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	margin-block-end: 0.75rem;
}

.home-work-item-private .home-work-item-label {
	color: var(--gg-green-muted);
}

.home-work-item-private .home-work-item-title {
	color: #fff;
}

.home-work-item-private a {
	color: #fff;
}

.home-work-item-private ul {
	list-style: none;
	display: flex;
	flex-direction: column;
	padding: 0;
	margin-block: 1.25rem;
	gap: 0.6rem;
}

.home-work-item-private li {
	display: flex;
	align-items: center;
	color: var(--gg-green-muted);
	position: relative;
	padding-inline-start: 1.7rem;
}

.home-work-item-private li::before {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	inset-block-start: 0.1rem;
	inline-size: 1.1rem;
	block-size: 1.1rem;
	background-color: var(--gg-green-muted);
	z-index: 1;
	-webkit-mask: url("assets/icons/check.svg") no-repeat center / contain;
	mask: url("assets/icons/check.svg") no-repeat center / contain;
}

.home-work-item-private li::after {
	content: "";
	position: absolute;
	inset-inline-start: -0.1rem;
	inset-block-start: 0;
	inline-size: 1.3rem;
	block-size: 1.3rem;
	border-radius: 50%;
	border: 0.1rem solid var(--gg-green-muted);
}

.home-work-item-logo {
	flex: 0 0 auto;
	align-self: center;
	gap: 0.8rem;
}

.home-work-item-logo img {
	display: block;
	max-width: 150px;
}

.home-work-item-logo span {
	position: relative;
	display: inline-block;
	padding-block: 0.4rem;
	padding-inline: 0.25rem;
	border-block-start: 1px solid #fff;
}

.home-work-item-logo span::after {
	content: "";
	position: absolute;
	inset-block-end: 0;
	inset-inline-start: 50%;
	transform: translateX(-50%);
	inline-size: calc(100% + 1.5rem);
	block-size: 1px;
	background-color: #fff;
}

.home-work-item-private .btn {
	align-self: center;
	font-weight: 600;
}

.home-work-item-brand {
	background-color: #fff;
	box-shadow: var(--gg-shadow-card);
	border: 1px solid var(--gg-hairline);
}

.home-work-item-brand .home-work-item-label {
	color: var(--gg-coral);
}

.home-work-item-brand-media .home-work-item-text {
	flex: 35;
	color: var(--gg-text-muted);
}

.home-work-item-brand-media .home-work-item-img {
	flex: 70;
}

.home-work-item-img img {
	display: block;
	border-radius: var(--gg-radius-md);
}

.home-capabilities {
	background-color: var(--gg-bg-alt);
}

.home-capabilities-img {
	height: 100%;
	overflow: hidden;
	border-radius: var(--gg-radius-lg);
	box-shadow: var(--gg-shadow-card);
}

.home-capabilities-img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.home-capabilities-items {
	--bs-gutter-y: 0.75rem;
}

.home-capabilities-item {
	min-height: 8rem;
}

.home-capabilities-item svg {
	max-inline-size: 3rem;
	block-size: auto;
	color: var(--gg-green-bright);
}

.home-capabilities-item-title {
	color: var(--gg-green-bright);
}

.home-export {
	background-color: var(--gg-green-dark);
	color: #fff;
}

.home-export .section-tag {
	color: var(--gg-green-muted);
}

.home-export .section-tag.gg-has-dot::before {
	background-color: var(--gg-green-bright);
}

.home-export .section-heading {
	color: #fff;
}

.home-export .section-sub-heading {
	color: rgba(255, 255, 255, 0.7);
}

.home-export-item {
	min-height: 8rem;
	padding: 1rem;
	color: var(--gg-ink);
}

.home-export-item svg {
	max-inline-size: 3rem;
	block-size: auto;
	color: var(--gg-green-bright);
}

.home-private {
	padding-block: 3rem 0;
}

.home-private-items {
	gap: 0.75rem;
	list-style: none;
}

.home-private-item {
	gap: 0.75rem;
	padding: 0.5rem 1rem;
	border-radius: var(--gg-radius-md);
	background-color: #fff;
	box-shadow: var(--gg-shadow-card);
}

.home-private-item svg {
	max-inline-size: 3rem;
	block-size: auto;
	flex: 0 0 auto;
	color: var(--gg-green-bright);
}

.home-private-item-text {
	font-weight: 500;
}

.home-private-img {
	overflow: hidden;
	border-radius: var(--gg-radius-lg);
	box-shadow: var(--gg-shadow-card);
	background-color: var(--gg-tint);
}

.home-private-img img {
	display: block;
	width: 100%;
}

.home-private-img-text {
	color: var(--gg-text-muted);
}

.home-private-steps-title {
	font-weight: bold;
	text-align: start;
}

.home-private-steps ul {
	--gg-private-step-size: 3rem;
	--gg-private-step-gap: 1rem;
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: var(--gg-private-step-gap);
	list-style: none;
	counter-reset: private-step;
}

.home-private-steps li {
	position: relative;
	counter-increment: private-step;
	color: var(--gg-ink);
	font-weight: 500;
}

.home-private-steps li::before {
	content: counter(private-step);
	display: grid;
	place-items: center;
	inline-size: var(--gg-private-step-size);
	block-size: var(--gg-private-step-size);
	margin: 0 auto 0.5rem;
	border-radius: 50%;
	background-color: var(--gg-green-bright);
	color: #fff;
	font-weight: bold;
}

.home-private-steps li:not(:last-child)::after {
	content: '';
	position: absolute;
	inset-block-start: calc(var(--gg-private-step-size) / 2);
	inset-inline-start: calc(50% + (var(--gg-private-step-size) / 2));
	inline-size: calc(100% - var(--gg-private-step-size) + var(--gg-private-step-gap));
	border-block-start: 0.125rem solid #a7dcb8;
}

.home-private-cta-holder {
	position: relative;
	padding: 2rem 0;
}

.home-private-cta-holder::after {
	content: '';
	inline-size: 100vw;
	block-size: 50%;
	background-color: var(--gg-bg-alt);
	display: block;
	position: absolute;
	z-index: -1;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
}

.home-categories-detailed {
	background-color: var(--gg-bg-alt);
}

.home-categories-detailed-item {
	height: 100%;
	padding: 0.75rem;
	border-radius: var(--gg-radius-lg);
	background-color: #fff;
	box-shadow: var(--gg-shadow-card);
	overflow: hidden;
}

.home-categories-detailed-item-img {
	align-self: stretch;
	flex: 0 0 35%;
	min-width: 0;
}

.home-categories-detailed-item-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: var(--gg-radius-md);
}

.home-categories-detailed-item-body {
	flex: 1 1 auto;
	min-width: 0;
	min-block-size: 10rem;
	padding: 0.25rem 0;
}

.home-categories-detailed-item-body ul {
	gap: 0.25rem;
	margin: 0.75rem 0 0;
	list-style: none;
}

.home-categories-detailed-item-body li {
	color: var(--gg-text-muted);
}

.home-categories-detailed-item-body li::before {
	content: '';
	display: inline-block;
	inline-size: 0.35rem;
	block-size: 0.35rem;
	margin-inline-end: 0.35rem;
	border-radius: 50%;
	background-color: var(--gg-green-bright);
	vertical-align: 0.08em;
}

.home-categories-detailed-item-download {
	align-self: flex-end;
	margin-block-start: auto;
	color: var(--gg-accent);
	font-size: var(--gg-fs-08);
	font-weight: bold;
}

.home-categories-detailed-item-download::after {
	content: '\2192';
	margin-inline-start: 0.35rem;
}

.home-why-item {
	background-color: var(--gg-tint);
}

.home-why-item svg {
	max-inline-size: 4rem;
	block-size: auto;
	color: var(--gg-green-bright);
}

.home-own-brand-text {
	max-inline-size: 32rem;
	color: var(--gg-text-muted);
}

.home-own-brand-link {
	color: var(--gg-accent);
	font-family: var(--gg-font-heading);
	font-weight: bold;
}

.home-own-brand-link::after {
	content: '\2192';
	margin-inline-start: 0.35rem;
}

.home-own-brand-img {
	position: relative;
	z-index: 2;
	max-inline-size: 36rem;
	margin-inline-start: auto;
	margin-block-end: -6rem;
}

.home-start {
	background-color: var(--gg-bg-alt);
}

.home-start-paths {
	--bs-gutter-y: 0.75rem;
	/* height: 100%; */
}

.home-start-path {
	gap: 0.75rem;
	width: 100%;
	height: 100%;
	border: 0;
	border-radius: var(--gg-radius-md);
	background-color: #fff;
	box-shadow: var(--gg-shadow-card);
	color: var(--gg-ink);
	text-align: start;
}

.home-start-path:hover,
.home-start-path:focus-visible {
	color: var(--gg-accent);
}

.home-start-path svg {
	max-inline-size: 3rem;
	block-size: auto;
	flex: 0 0 auto;
	color: var(--gg-green-bright);
}

.home-start-path-label {
	font-family: var(--gg-font-heading);
	font-weight: bold;
}

.home-start-forms {
	height: 100%;
	border-radius: var(--gg-radius-lg);
	background-color: #fff;
	box-shadow: var(--gg-shadow-card);
}

.home-start-form {
	color: var(--gg-text-muted);
}

@media (max-width: 767px) {
	.home-certs-items {
		display: flex;
		min-inline-size: 0;
		overflow-x: auto;
		padding-block-end: 0.5rem;
		scroll-snap-type: x proximity;
		scrollbar-width: none;
		-ms-overflow-style: none;
	}

	.home-certs-items::-webkit-scrollbar {
		display: none;
	}

	.home-certs-item {
		flex: 0 0 min(60vw, 12rem);
		scroll-snap-align: start;
	}

	.home-banner-media {
		display: contents;
	}

	.home-banner>.container-xl>.row {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.5rem;
		margin-inline: 0;
	}

	.home-banner>.container-xl>.row>.col-md-6,
	.home-banner>.container-xl>.row>.col-md-7 {
		display: contents;
	}

	.home-banner-before-h1,
	.home-banner h1,
	.home-banner-after-h1,
	.home-banner-infos {
		grid-column: 1 / -1;
	}

	.home-banner-before-h1 {
		grid-row: 2;
	}

	.home-banner h1 {
		grid-row: 3;
	}

	.home-banner-after-h1 {
		grid-row: 4;
	}

	.home-banner-ctas {
		grid-column: 1 / -1;
		grid-row: 5;
	}

	.home-banner-infos {
		grid-row: 6;
	}

	.home-banner-video {
		grid-column: 1 / -1;
		grid-row: 1;
	}

	.home-banner-badge {
		grid-column: 1;
		grid-row: 7;
	}

	.home-banner-stat {
		grid-column: 2;
		grid-row: 7;
	}

	.home-banner-private {
		display: grid;
		grid-column: 1 / -1;
		grid-row: 8;
	}

	.home-banner-private-info {
		flex-direction: column;
	}

	.home-banner-private-certs-items span {
		padding: 0.2rem .4rem;
		font-size: var(--gg-fs-06);
	}

	.home-banner-ctas {
		position: fixed;
		width: 100%;
		background: #f4f8f3;
		bottom: 0;
		left: 0;
		z-index: 999;
		margin: 0 !important;
		padding: 1rem;
		box-shadow: var(--gg-shadow-card);
		justify-content: center;
	}

	#home-banner-cta-1 {
		--bs-btn-padding-x: 1.4rem;
		--bs-btn-font-size: 1.1rem;
	}

	#home-banner-cta-2 {
		display: none;
	}

	#home-banner-cta-3 {
		display: inline-block;
	}

	#home-banner-cta-3 svg {
		max-width: 3rem;
		height: auto;
		width: 100%;
	}

	.home-banner-infos>div {
		flex: 1 1 0;
	}

	.page-template-homepage .site-footer {
		padding-block: 0 4rem;
	}

	.home-private-steps ul {
		grid-template-columns: 1fr;
		gap: var(--gg-private-step-gap);
	}

	.home-private-steps li {
		display: flex;
		align-items: center;
		gap: 0.75rem;
		min-block-size: var(--gg-private-step-size);
		text-align: start;
	}

	.home-private-steps li::before {
		flex: 0 0 var(--gg-private-step-size);
		margin: 0;
	}

	.home-private-steps li:not(:last-child)::after {
		inset-block-start: var(--gg-private-step-size);
		inset-inline-start: calc(var(--gg-private-step-size) / 2);
		inline-size: 0.125rem;
		block-size: calc(100% + var(--gg-private-step-gap) - var(--gg-private-step-size));
		border-block-start: 0;
		background-color: #a7dcb8
	}

	.home-work-item-private-top,
	.home-work-item-brand-media {
		flex-direction: column;
	}

	.home-work-item-brand-media .home-work-item-text,
	.home-work-item-brand-media .home-work-item-img {
		flex: none;
	}

	.home-categories-detailed-item {
		flex-wrap: wrap;
		padding: 0;
	}

	.home-categories-detailed-item-img {
		flex: 1 1 100%;
	}

	.home-categories-detailed-item-img img {
		border-radius: 0;
	}

	.home-categories-detailed-item-body {
		padding: .25rem 1.25rem 1.25rem;
	}

	.home-own-brand-img {
		margin-block-end: 0;
	}
}

/* Homepage end */


/* Russian market LP Start */

.page-template-template-russian-market .navbar>.container-xl {
	flex-wrap: nowrap;
}

.page-template-template-russian-market .custom-logo-link {
	pointer-events: none;
}

.page-template-template-russian-market #primary-menu {
	display: none;
}

.page-template-template-russian-market .gg-header-cta {
	margin-left: auto !important;
}

.page-template-template-russian-market .site-header .navbar-toggler {
	display: none;
}

.russia-market-lp-header-text {
	color: var(--gg-green-bright);
}

.russia-market-banner {
	background: var(--gg-tint);
	padding: 1rem 0 3rem;
}

.russia-market-banner::before {
	content: '';
	position: absolute;
	inset-block-start: -100%;
	width: 100%;
	height: 100%;
	background: var(--gg-tint);
	z-index: -1;
}

.russia-market-banner-kicker {
	color: var(--gg-accent-dark);
	font-weight: 500;
}

.russia-market-banner-flag {
	border-radius: 0.125rem;
	box-shadow: 0 1px 3px rgba(18, 40, 26, 0.18);
}

.russia-market-banner-label {
	color: var(--gg-accent-dark);
	font-weight: 500;
}

.russia-market-banner h1 {
	margin-block: 0.75rem 1rem;
	margin-inline: 0;
}

.russia-market-banner h1 span {
	display: inline-block;
	position: relative;
	z-index: 0;
	color: var(--gg-green-bright);
}

.russia-market-banner-card {
	max-inline-size: 28rem;
	margin-inline-start: auto;
	padding: 1.5rem;
	border-radius: var(--gg-radius-lg);
	background-color: var(--gg-green-dark);
	box-shadow: var(--gg-shadow-elevated);
	color: #fff;
}

.russia-market-banner-card-label {
	margin-block-end: 0.7rem;
	color: var(--gg-green-muted);
	font-size: var(--gg-fs-07);
	font-weight: bold;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.russia-market-banner-card-title {
	margin-block: 0 0.25rem;
	color: #fff;
	font-weight: 500;
}

.russia-market-banner-card-text {
	margin-block-end: 1.25rem;
	color: var(--gg-green-muted);
}

.russia-market-banner-card a {
	color: #fff;
}

.russia-market-banner-card ul {
	margin-block: 0 2.5rem;
	padding-inline-start: 2rem;
	font-weight: 300;
}

.russia-market-banner-card li {
	padding-inline-start: 0.25rem;
	margin-block: .5rem;
}

.russia-market-banner-card li::marker {
	color: var(--gg-green-bright);
}

.russia-market-banner-card .btn {
	inline-size: 90%;
	font-weight: 500;
}

.russia-market-announcement {
	padding-block: 2rem 5rem;
	background-color: var(--gg-bg-alt);
}

.russia-market-announcement-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	padding: 1.25rem;
	border-inline-start: 0.5625rem solid var(--gg-gold);
	border-radius: var(--gg-radius-md);
	background-color: var(--gg-bg);
	box-shadow: var(--gg-shadow-card);
}

.russia-market-announcement-content {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
}

.russia-market-announcement-label {
	display: inline-flex;
	align-self: flex-start;
	align-items: center;
	margin-block-end: 0.25rem;
	padding: 0.2rem 0.5rem;
	border-radius: var(--gg-radius-pill);
	background-color: #FDF5D7;
	color: var(--gg-coral-text);
	font-size: var(--gg-fs-07);
	font-weight: bold;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.russia-market-announcement-title {
	margin-block: .35rem 0.7rem;
	font-size: clamp(1.5625rem, 1.535rem + 0.7955vw, 2.2rem);
}

.russia-market-announcement-info {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 1rem 3rem;
}

.russia-market-announcement-details {
	display: flex;
	flex: 0 1 auto;
	flex-direction: column;
	gap: 0.5rem;
	color: var(--gg-ink);
	font-size: clamp(1rem, 0.8977rem + 0.4545vw, 1.25rem);
	font-weight: 500;
}

.russia-market-announcement-details-meta {
	display: flex;
	gap: 1.5rem;
}

.russia-market-announcement-details-address {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 1rem;
	font-weight: 400;
}

.russia-market-announcement-info .btn {
	flex: 0 0 auto;
}

.russia-market-announcement-date {
	padding: 1.2rem;
	border-radius: var(--gg-radius-md);
	background-color: var(--gg-gold);
	color: var(--gg-ink);
	text-align: center;
}

.russia-market-announcement-date-range {
	font-size: clamp(1.875rem, 1.3636rem + 2.2727vw, 3.125rem);
	font-weight: bold;
	line-height: 1;
	white-space: nowrap;
	color: var(--gg-accent);
}

.russia-market-announcement-date-month {
	margin-block-start: 0.35rem;
	font-size: var(--gg-fs-08);
	font-weight: bold;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.russia-market-announcement-date-note {
	font-size: var(--gg-fs-07);
}

.russia-market-exhibitions {
	padding-block: 3rem;
	background-color: var(--gg-bg-alt);
}

.russia-market-exhibitions-slider .swiper-wrapper {
	align-items: stretch;
}

.russia-market-exhibitions-slider .swiper-slide {
	block-size: auto;
}

.russia-market-exhibitions-header {
	max-inline-size: 54rem;
	margin-inline: auto;
	margin-block-end: 2rem;
	text-align: center;
}

.russia-market-exhibitions-header .section-heading {
	margin-block-end: 0.75rem;
}

.russia-market-exhibitions-header .section-sub-heading {
	margin-block-end: 0;
}

.russia-market-exhibitions-slider {
	padding-block-end: 2.25rem;
}

.russia-market-exhibition-item {
	position: relative;
	block-size: 100%;
	padding: 0.5rem;
	border-radius: var(--gg-radius-lg);
	background-color: var(--gg-bg);
	box-shadow: var(--gg-shadow-card);
}

.russia-market-exhibition-item-image img {
	display: block;
	inline-size: 100%;
	border-radius: var(--gg-radius-md);
	object-fit: cover;
}

.russia-market-exhibition-item-body {
	padding: 1rem 0.75rem 3.5rem;
}

.russia-market-exhibition-item-title {
	margin-block: 0 0.5rem;
	font-size: 1.25rem;
	font-weight: bold;
	line-height: 1.2;
}

.russia-market-exhibition-item-location {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 1rem;
}

.russia-market-exhibition-item-location-icon {
	display: inline-flex;
	flex-shrink: 0;
	align-items: center;
}

.russia-market-exhibition-item-logo {
	position: absolute;
	inset-block-end: -1.5rem;
	inset-inline-start: 50%;
	transform: translateX(-50%);
}

.russia-market-exhibition-item-logo img {
	display: block;
	max-block-size: 4.5rem;
	object-fit: contain;
}

.russia-market-stats {
	padding-block: 2.5rem;
	background-color: var(--gg-bg);
}

.russia-market-stats-items>div:not(:nth-child(4n)) {
	border-inline-end: 1px solid var(--gg-hairline);
}

.russia-market-stat {
	padding-inline: 1rem;
	text-align: center;
}

.russia-market-stat-value {
	color: var(--gg-green-bright);
	font-size: clamp(1.375rem, 1.1705rem + 0.9091vw, 1.75rem);
	line-height: 1.2;
	font-weight: bold;
}

.russia-market-stat-text {
	font-size: clamp(1rem, 0.886rem + 0.568vw, 1.125rem);
	color: var(--gg-ink-hover);
}

.russia-market-built-for {
	padding-block: 3rem;
	background-color: var(--gg-bg-alt);
}

.russia-market-built-for-item-icon svg {
	display: block;
	max-inline-size: 3rem;
	block-size: auto;
}

.russia-market-range {
	background-color: var(--gg-bg);
}

/* Russia "Our range" — .gg-item-card base + these overrides (tighter radius,
   green-tinted shadow, inset-rounded image, and a horizontal title/badge body). */
.russia-market-range-item {
	border-radius: var(--gg-radius-md);
	box-shadow: 0 0 15px 8px #DFE4DEA6;
}

.russia-market-range-item-body {
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	padding-block: 1rem;
	padding-inline: 1.5rem;
}

.russia-market-range-item-title {
	margin: 0;
	font-weight: 600;
}

.russia-market-range-item-type {
	padding: 0.15rem 0.6rem;
	border: 1px solid var(--gg-border);
	border-radius: var(--gg-radius-pill);
	font-size: var(--gg-fs-08);
	white-space: nowrap;
}

.russia-market-why-us {
	background-color: var(--gg-bg-alt);
}

.russia-market-why-us-item-icon svg {
	display: block;
	max-inline-size: 4rem;
	block-size: auto;
}

.russia-market-contact {
	background-color: var(--gg-green-dark);
	color: #fff;
}

.russia-market-contact .section-tag {
	color: var(--gg-green-muted);
}

.russia-market-contact .section-tag.gg-has-dot::before {
	background-color: var(--gg-green-bright);
}

.russia-market-contact .section-heading {
	color: #fff;
}

.russia-market-contact .section-sub-heading,
.russia-market-contact a,
.russia-market-contact-direct-items {
	color: rgba(255, 255, 255, 0.7);
}

.russia-market-contact-direct {
	color: #fff;
}

.russia-market-contact-direct-title {
	color: #fff;
}

.russia-market-contact-form {
	height: 100%;
	border-radius: var(--gg-radius-lg);
	background-color: #fff;
	box-shadow: var(--gg-shadow-card);
}

.russia-market-faq {
	background-color: var(--gg-bg-alt);
}

.russia-market-faq-item {
	border-radius: var(--gg-radius-md);
	background-color: var(--gg-bg);
	box-shadow: var(--gg-shadow-card);
}

.russia-market-faq-item-icon {
	inline-size: 1.5rem;
	block-size: 1.5rem;
	border-radius: 50%;
	background-color: var(--gg-green-bright);
	color: #fff;
	font-size: var(--gg-fs-08);
	font-weight: bold;
}

.russia-market-faq-item-answer {
	margin-block-start: 0.25rem;
	color: var(--gg-text-muted);
}

.page-template-template-russian-market .footer-partnership,
.page-template-template-russian-market .gg-header-search,
.page-template-template-russian-market .footer-col-3 {
	display: none;
}

@media (max-width: 767.98px) {
	.russia-market-banner-card {
		max-inline-size: none;
		margin-inline: 0;
		margin-block: 2rem 0;
	}

	.russia-market-announcement-inner {
		align-items: stretch;
		flex-direction: column;
	}

	.russia-market-stats-items>div:not(:nth-child(4n)) {
		border-inline-end: 0;
	}

	.russia-market-stats-items>div:nth-child(odd) {
		border-inline-end: 1px solid var(--gg-hairline);
	}

}

/* Russian market LP end */


/* Contact page start */

.contact-map iframe {
	inline-size: 100%;
}

/* Contact page end */

/* Product single page start */

.product-single-banner {
	padding-block: 0 clamp(2rem, 1.2rem + 2vw, 4rem);
	background: var(--gg-bg-alt);
}

.product-single-banner::before {
	content: '';
	position: absolute;
	inset-block-start: -100%;
	inline-size: 100%;
	block-size: 100%;
	background: var(--gg-bg-alt);
	z-index: -1;
}

.product-single-banner-media {
	min-inline-size: 0;
}

.product-single-banner-image {
	block-size: clamp(18rem, 35vw, 28rem);
	overflow: hidden;
	border-radius: var(--gg-radius-lg);
	box-shadow: var(--gg-shadow-card);
}

.product-single-banner-image img {
	display: block;
	inline-size: 100%;
	block-size: 100%;
	object-fit: cover;
}

.product-single-banner-thumbnails {
	display: flex;
	flex-wrap: nowrap;
	gap: 0.75rem;
	overflow-x: auto;
	overflow-y: hidden;
	margin-block-start: 0.75rem;
	padding-block-end: 0.25rem;
	scrollbar-width: none;
}

.product-single-banner-thumbnails::-webkit-scrollbar {
	display: none;
}

.product-single-banner-thumbnail {
	padding: 0;
	display: block;
	flex: 0 0 auto;
	inline-size: clamp(4.5rem, 10vw, 9rem);
	border: 2px solid transparent;
	/* border-radius: var(--gg-radius-sm); */
	background: none;
	box-shadow: var(--gg-shadow-card);
	cursor: pointer;
}

.product-single-banner-thumbnail.is-active {
	border-color: var(--gg-accent);
}

.product-single-banner-thumbnail img {
	display: block;
	inline-size: 100%;
	block-size: 100%;
	object-fit: cover;
}

.product-single-banner-info {
	padding-inline: clamp(0rem, 0.5rem + 1vw, 1.5rem);
}

.product-single-banner-meta {
	font-size: var(--gg-fs-07);
	font-weight: bold;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--gg-accent-dark);
}

.product-single-banner-meta span {
	margin-inline: 0.25rem;
}

.product-single-banner-info h1 {
	margin-block: 0.8rem;
}

.product-single-banner-badges,
.product-single-banner-attribute-options {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
}

.product-single-banner-attribute-options label {
	display: inline-flex;
	cursor: pointer;
}

.product-single-banner-badges {
	margin-block-end: clamp(1rem, 0.7955rem + 0.9091vw, 1.5rem);
}

.product-single-banner-badges span,
.product-single-banner-attribute-options span {
	display: inline-flex;
	align-items: center;
	padding-block: 0.5rem;
	padding-inline: 0.8rem;
	border: 1px solid var(--gg-hairline);
	border-radius: var(--gg-radius-pill);
	background-color: var(--gg-tint);
	font-size: var(--gg-fs-08);
	line-height: 1.2;
	color: var(--gg-ink);
}

.product-single-banner-attribute-options label:has(input:checked) span {
	border-color: var(--gg-accent);
	background-color: var(--gg-accent);
	color: #fff;
}

.product-single-banner-badges span::before {
	content: "";
	inline-size: 0.35rem;
	block-size: 0.35rem;
	margin-inline-end: 0.4rem;
	border-radius: 50%;
	background-color: var(--gg-green-bright);
}

.product-single-banner-text {
	margin-block-end: clamp(1rem, 0.7955rem + 0.9091vw, 1.5rem);
	color: var(--gg-text-muted);
}

.product-single-banner-attribute {
	margin-block-end: 1.5rem;
}

.product-single-banner-attribute-label {
	margin-block-end: 0.4rem;
	font-size: var(--gg-fs-09);
	font-weight: bold;
	color: var(--gg-ink);
}

.product-single-banner-ctas {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.product-single-key-facts {
	padding-block: 3rem;
}

.product-single-key-fact {
	display: flex;
	align-items: center;
	gap: 1rem;
	block-size: 100%;
}

.product-single-key-fact-icon {
	flex: 0 0 auto;
}

.product-single-key-fact-icon svg {
	display: block;
	max-inline-size: 3rem;
	block-size: auto;
}

.product-single-key-fact-label {
	margin-block-end: 0.2rem;
	font-size: var(--gg-fs-07);
	line-height: 1.2;
}

.product-single-key-fact-text {
	font-size: var(--gg-fs-09);
	line-height: 1.35;
	font-weight: 500;
	color: var(--gg-ink);
}

.product-single-commercials {
	padding-block: 3rem;
	background-color: var(--gg-bg-alt);
}

.product-single-commercial-item-head {
	margin-block-end: 1.25rem;
}

.product-single-commercial-item-icon {
	margin-block-end: 0;
}

.product-single-commercial-item-icon svg {
	display: block;
	max-inline-size: 1.75rem;
	block-size: auto;
}

.product-single-commercial-item-title {
	margin: 0;
	font-size: 1rem;
}

.product-single-commercial-item-text {
	display: flex;
	flex-direction: column;
	gap: 0.8rem;
}

.product-single-commercial-detail-label {
	margin-block-end: 0.15rem;
	font-size: var(--gg-fs-08);
	font-weight: 500;
	line-height: 1.2;
	color: var(--gg-text-muted);
}

.product-single-commercial-detail-value {
	font-size: var(--gg-fs-09);
	font-weight: normal;
	line-height: 1.35;
	color: var(--gg-ink);
}

.product-single-specifications {
	padding-block: 3rem;
}

.product-single-specifications-items {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 1.5rem;
}

.product-single-specifications-items>.col {
	inline-size: auto;
	background-color: var(--gg-bg);
	background-clip: content-box;
	box-shadow: var(--gg-shadow-elevated);
}

.product-single-specifications-item {
	display: grid;
	grid-template-columns: 1fr 2fr;
	align-items: center;
	gap: 1rem;
	padding-block: 0.5rem;
	padding-inline: 1rem;
}

.product-single-specifications-items>.col .product-single-specifications-item:nth-child(even) {
	background-color: var(--gg-tint);
}

.product-single-specifications-item-title {
	font-size: var(--gg-fs-08);
	font-weight: 500;
	color: var(--gg-text-muted);
}

.product-single-specifications-item-text {
	font-size: var(--gg-fs-09);
	font-weight: normal;
	color: var(--gg-ink);
}

.product-single-packaging {
	padding-block: 3rem;
	background-color: var(--gg-bg-alt);
}

.product-single-packaging-table {
	inline-size: 100%;
	border-collapse: separate;
	border-spacing: 0;
	background-color: var(--gg-bg);
	box-shadow: var(--gg-shadow-card);
}

.product-single-packaging-table th,
.product-single-packaging-table td {
	padding-block: 0.5rem;
	padding-inline: 1rem;
	text-align: start;
	vertical-align: middle;
}

.product-single-packaging-table tr:nth-child(even) {
	background-color: var(--gg-tint);
}

.product-single-packaging-table th {
	font-size: var(--gg-fs-08);
	font-weight: 500;
	color: var(--gg-text-muted);
}

.product-single-packaging-table td {
	font-size: var(--gg-fs-09);
	color: var(--gg-ink);
}

.product-single-packaging-loading {
	padding: 1.25rem;
	border-radius: var(--gg-radius-md);
	background-color: var(--gg-green-dark);
	box-shadow: var(--gg-shadow-card);
	color: var(--gg-accent-text);
}

.product-single-packaging-loading-title {
	margin-block-end: 1rem;
	font-size: 1rem;
	font-weight: bold;
}

.product-single-packaging-loading-visual {
	--loading-box-size: clamp(1.7rem, 8.2vw, 3.5rem);
	--loading-box-gap: 0.35rem;
	position: relative;
	block-size: 4rem;
	margin-block-end: 1rem;
	padding: var(--loading-box-gap);
	border: 2px solid var(--gg-green-muted);
	border-radius: var(--gg-radius-sm);
}

.product-single-packaging-loading-visual::before {
	content: "";
	position: absolute;
	inset: var(--loading-box-gap);
	background-image: linear-gradient(to right,
			var(--gg-accent-dark) 0 var(--loading-box-size),
			transparent var(--loading-box-size) calc(var(--loading-box-size) + var(--loading-box-gap)));
	background-size: calc(var(--loading-box-size) + var(--loading-box-gap)) 100%;
	background-repeat: space;
}

.product-single-packaging-loading-details {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.product-single-packaging-loading-detail {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
}

.product-single-packaging-loading-detail-label {
	font-size: var(--gg-fs-08);
	color: var(--gg-green-muted);
}

.product-single-packaging-loading-detail-value {
	font-size: var(--gg-fs-09);
	font-weight: 500;
	color: var(--gg-accent-text);
}

.product-single-quality {
	padding-block: 3rem;
	background-color: var(--gg-green-dark);
	color: var(--gg-accent-text);
}

.product-single-quality .section-tag {
	color: var(--gg-green-muted);
}

.product-single-quality .section-tag.gg-has-dot::before {
	background-color: var(--gg-green-bright);
}

.product-single-quality .section-heading {
	color: var(--gg-accent-text);
}

.product-single-quality .section-sub-heading {
	color: rgba(255, 255, 255, 0.7);
}

.product-single-quality-checks {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.product-single-quality-check {
	display: grid;
	grid-template-columns: 1.5rem 1fr;
	column-gap: 0.75rem;
	align-items: center;
}

.product-single-quality-check-icon {
	grid-column: 1;
	grid-row: 1 / span 2;
}

.product-single-quality-check-icon svg {
	display: block;
	max-inline-size: 1.5rem;
	block-size: auto;
	color: var(--gg-green-muted);
}

.product-single-quality-check-title {
	font-size: var(--gg-fs-09);
	font-weight: 500;
	color: var(--gg-accent-text);
}

.product-single-quality-check-note {
	font-size: var(--gg-fs-08);
	color: rgba(255, 255, 255, 0.7);
}

.product-single-quality-certifications-title,
.product-single-quality-compliance-title {
	margin-block-end: 0.75rem;
	font-size: 1rem;
	font-weight: 500;
	color: var(--gg-accent-text);
}

.product-single-quality-certification {
	display: grid;
	grid-template-columns: 1rem 1fr;
	align-items: center;
	gap: 0.5rem;
	padding: 0.75rem;
	border-radius: var(--gg-radius-sm);
	background-color: rgb(15 74 38 / 90%);
}

.product-single-quality-certification-icon svg {
	display: block;
	inline-size: 0.65rem;
	block-size: auto;
	color: var(--gg-green-dark);
}

.product-single-quality-certification-icon {
	display: grid;
	place-items: center;
	inline-size: 1rem;
	block-size: 1rem;
	border-radius: 50%;
	background-color: var(--gg-green-muted);
}

.product-single-quality-certification-label {
	font-size: var(--gg-fs-08);
	color: var(--gg-accent-text);
}

.product-single-quality-compliance {
	margin-block-start: 1.5rem;
	font-size: var(--gg-fs-08);
	color: rgba(255, 255, 255, 0.7);
}

.product-single-quality-compliance-title {
	margin-block-end: 0.3rem;
}

.product-single-documentation {
	padding-block: 3rem;
	background-color: var(--gg-bg-alt);
}

.product-single-documentation-item {
	display: flex;
	align-items: center;
	gap: 1rem;
	block-size: 100%;
	padding: 1rem;
	border-radius: var(--gg-radius-sm);
	background-color: var(--gg-bg);
	box-shadow: var(--gg-shadow-card);
}

.product-single-documentation-item-icon {
	flex: 0 0 auto;
}

.product-single-documentation-item-icon svg {
	display: block;
	max-inline-size: 3rem;
	block-size: auto;
}

.product-single-documentation-item>div:not(.product-single-documentation-item-icon) {
	font-size: var(--gg-fs-09);
	font-weight: 500;
	line-height: 1.3;
	color: var(--gg-ink);
}

.product-single-handling {
	padding-block: 3rem;
}

.product-single-handling .section-sub-heading {
	color: var(--gg-ink);
}

.product-single-handling-times>div {
	padding-block: 0.4rem;
	padding-inline: 0.75rem;
	border: 1px solid var(--gg-hairline);
	border-radius: var(--gg-radius-pill);
	background-color: var(--gg-tint);
	font-size: var(--gg-fs-08);
	color: var(--gg-ink);
}

.product-single-handling-nutrition {
	margin-block-start: 1rem;
}

.product-single-handling-nutrition-label {
	margin-block-end: 0.25rem;
	font-size: var(--gg-fs-08);
	font-weight: 500;
	color: var(--gg-text-muted);
}

.product-single-handling-nutrition-value {
	font-size: var(--gg-fs-09);
	color: var(--gg-ink);
}

.product-single-why-source {
	padding-block: 3rem;
	background-color: var(--gg-bg-alt);
}

.product-single-why-source-item-featured {
	background-color: var(--gg-green-dark);
	color: var(--gg-accent-text);
}

.product-single-why-source-item-featured .product-single-why-source-item-title {
	color: var(--gg-accent-text);
}

.product-single-why-source-item-points {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.product-single-why-source-item-points>div {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.product-single-why-source-item-point-icon {
	display: grid;
	inline-size: 1rem;
	block-size: 1rem;
	flex: 0 0 auto;
	place-items: center;
	border-radius: 50%;
	background-color: var(--gg-green-muted);
}

.product-single-why-source-item-point-icon svg {
	display: block;
	inline-size: 0.65rem;
	block-size: auto;
	color: var(--gg-green-dark);
}

.product-single-why-source-item-featured .product-single-why-source-item-points {
	color: rgba(255, 255, 255, 0.75);
}

.product-single-cta-ribbon {
	padding-block: clamp(2.5rem, 5vw, 4rem);
	background-color: var(--gg-green-dark);
	color: var(--gg-accent-text);
}

.product-single-cta-ribbon-heading {
	margin-block: 0 1.25rem;
	font-size: 1.5rem;
	color: var(--gg-accent-text);
}

.product-single-related-products {
	padding-block: 3rem;
	background-color: var(--gg-bg-alt);
}

@media (max-width: 767.98px) {
	.product-single-banner-image {
		block-size: clamp(16rem, 75vw, 24rem);
	}

	.product-single-banner-info {
		padding-inline: 0;
	}

	.product-single-specifications-items {
		grid-template-columns: 1fr;
	}
}

/* Product single page end */