/* GreenAir theme: components on top of theme.json. Mobile first. */

:root {
	--ga-ink: var(--wp--preset--color--ink);
	--ga-forest: var(--wp--preset--color--forest);
	--ga-green: var(--wp--preset--color--green);
	--ga-green-dark: var(--wp--preset--color--green-dark);
	--ga-lime: var(--wp--preset--color--lime);
	--ga-sand: var(--wp--preset--color--sand);
	--ga-mist: var(--wp--preset--color--mist);
	--ga-line: var(--wp--preset--color--line);
	--ga-muted: var(--wp--preset--color--muted);
	--ga-radius: 16px;
	--ga-shadow: var(--wp--preset--shadow--card);
	/* icons (stroke icons as CSS masks, so content stays editable) */
	--ga-i-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
	--ga-i-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3Cpolyline points='12 5 19 12 12 19'/%3E%3C/svg%3E");
	--ga-i-phone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.5 2.1L8.1 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E");
	--ga-i-mail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpolyline points='22,6 12,13 2,6'/%3E%3C/svg%3E");
	--ga-i-quote: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3Crect x='8' y='2' width='8' height='4' rx='1'/%3E%3Cpath d='M9 12h6M9 16h4'/%3E%3C/svg%3E");
	--ga-i-wa: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z'/%3E%3C/svg%3E");
	--ga-i-pin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
	--ga-i-clock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpolyline points='12 6 12 12 16 14'/%3E%3C/svg%3E");
	--ga-i-shield: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3Cpolyline points='9 12 11 14 15 10'/%3E%3C/svg%3E");
	--ga-i-globe: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='2' y1='12' x2='22' y2='12'/%3E%3Cpath d='M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z'/%3E%3C/svg%3E");
	--ga-i-truck: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='1' y='4' width='15' height='12'/%3E%3Cpolygon points='16 8 20 8 23 11 23 16 16 16 16 8'/%3E%3Ccircle cx='5.5' cy='18.5' r='2.5'/%3E%3Ccircle cx='18.5' cy='18.5' r='2.5'/%3E%3C/svg%3E");
	--ga-i-layout: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Cline x1='3' y1='9' x2='21' y2='9'/%3E%3Cline x1='9' y1='21' x2='9' y2='9'/%3E%3C/svg%3E");
	--ga-i-camera: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z'/%3E%3Ccircle cx='12' cy='13' r='4'/%3E%3C/svg%3E");
	--ga-i-school: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z'/%3E%3Cpath d='M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z'/%3E%3C/svg%3E");
	--ga-i-tree: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22v-5'/%3E%3Cpath d='M12 2 5 12h4l-3 5h12l-3-5h4z'/%3E%3C/svg%3E");
	--ga-i-building: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='2' width='16' height='20' rx='1'/%3E%3Cpath d='M9 22v-4h6v4M8 6h.01M12 6h.01M16 6h.01M8 10h.01M12 10h.01M16 10h.01M8 14h.01M12 14h.01M16 14h.01'/%3E%3C/svg%3E");
	--ga-i-sun: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4'/%3E%3C/svg%3E");
	--ga-i-home: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z'/%3E%3Cpolyline points='9 22 9 12 15 12 15 22'/%3E%3C/svg%3E");
	--ga-i-tool: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.8-3.8a6 6 0 0 1-7.9 7.9l-6.9 6.9a2.1 2.1 0 0 1-3-3l6.9-6.9a6 6 0 0 1 7.9-7.9z'/%3E%3C/svg%3E");
	--ga-i-file: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3Cline x1='16' y1='13' x2='8' y2='13'/%3E%3Cline x1='16' y1='17' x2='8' y2='17'/%3E%3C/svg%3E");
}

/* generic icon helper: <span class="ga-ic ga-ic--phone"> or ::before on components */
.ga-ic::before, .ga-ico::before {
	content: ""; display: inline-block; width: 1.1em; height: 1.1em; vertical-align: -0.18em; margin-right: .45em;
	background: currentColor; -webkit-mask: var(--ga-icon) center / contain no-repeat; mask: var(--ga-icon) center / contain no-repeat;
}
.ga-ic--check { --ga-icon: var(--ga-i-check); } .ga-ic--arrow { --ga-icon: var(--ga-i-arrow); }
.ga-ic--phone { --ga-icon: var(--ga-i-phone); } .ga-ic--mail { --ga-icon: var(--ga-i-mail); }
.ga-ic--quote { --ga-icon: var(--ga-i-quote); } .ga-ic--wa { --ga-icon: var(--ga-i-wa); }
.ga-ic--pin { --ga-icon: var(--ga-i-pin); } .ga-ic--clock { --ga-icon: var(--ga-i-clock); }
.ga-ic--shield { --ga-icon: var(--ga-i-shield); } .ga-ic--globe { --ga-icon: var(--ga-i-globe); }
.ga-ic--truck { --ga-icon: var(--ga-i-truck); } .ga-ic--layout { --ga-icon: var(--ga-i-layout); }
.ga-ic--camera { --ga-icon: var(--ga-i-camera); } .ga-ic--school { --ga-icon: var(--ga-i-school); }
.ga-ic--tree { --ga-icon: var(--ga-i-tree); } .ga-ic--building { --ga-icon: var(--ga-i-building); }
.ga-ic--sun { --ga-icon: var(--ga-i-sun); } .ga-ic--home { --ga-icon: var(--ga-i-home); }
.ga-ic--tool { --ga-icon: var(--ga-i-tool); } .ga-ic--file { --ga-icon: var(--ga-i-file); }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
[id] { scroll-margin-top: 100px; } /* anchors land below the sticky header */
body { overflow-x: hidden; }
img { height: auto; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
/* full-width coloured sections touch each other (no white blockGap strip between them) */
.wp-block-post-content > .alignfull, .wp-block-post-content > .alignfull + * { margin-block: 0; }
a:where(:not(.wp-element-button)) { text-underline-offset: 3px; text-decoration-thickness: 1px; }
.screen-reader-text:focus { background: #fff; padding: 8px 12px; z-index: 100; }

/* ---------- block style variations ---------- */
.wp-block-button.is-style-outline-dark .wp-block-button__link { background: #fff; color: var(--ga-ink); border: 2px solid var(--ga-line); padding-block: calc(.8rem - 2px); }
.wp-block-button.is-style-outline-dark .wp-block-button__link:hover { border-color: var(--ga-green); color: var(--ga-green); }
.wp-block-button.is-style-lime .wp-block-button__link { background: var(--ga-lime); color: var(--ga-forest); }
.wp-block-button.is-style-lime .wp-block-button__link:hover { background: #b6e05a; }
.wp-block-button.is-style-ghost-light .wp-block-button__link { background: transparent; color: #fff; border: 2px solid rgba(255,255,255,.35); padding-block: calc(.8rem - 2px); }
.wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; gap: .55em; min-height: 50px; transition: transform .15s ease, background .15s ease; }
.wp-block-button__link:hover { transform: translateY(-1px); }
.wp-block-button.ga-arrow .wp-block-button__link::after { content: ""; width: 1.05em; height: 1.05em; background: currentColor; -webkit-mask: var(--ga-i-arrow) center / contain no-repeat; mask: var(--ga-i-arrow) center / contain no-repeat; }
.wp-block-button:not([class*="is-style-"]) .wp-block-button__link { box-shadow: 0 6px 16px rgba(31,115,34,.28); }

p.is-style-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: .82rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ga-green); margin-bottom: .2rem; }
p.is-style-eyebrow::before { content: ""; width: 22px; height: 3px; border-radius: 3px; background: var(--wp--preset--gradient--brand); }
.has-forest-background-color p.is-style-eyebrow, .ga-dark p.is-style-eyebrow { color: var(--ga-lime); }

/* block, not flex: a flex paragraph turns the text around a link into separate columns */
p.is-style-note { position: relative; display: block; padding: 12px 14px 12px calc(14px + 1.15em + 10px); border-radius: 12px; background: var(--ga-mist); font-size: .95rem; }
p.is-style-note::before { content: ""; position: absolute; left: 14px; top: 12px; width: 1.15em; height: 1.15em; margin-top: .2em; background: var(--ga-green); -webkit-mask: var(--ga-icon, var(--ga-i-shield)) center / contain no-repeat; mask: var(--ga-icon, var(--ga-i-shield)) center / contain no-repeat; }
.ga-dark p.is-style-note { background: rgba(163,209,71,.12); }
.ga-dark p.is-style-note::before { background: var(--ga-lime); }

ul.is-style-ticks { list-style: none; padding-left: 0; display: grid; gap: 10px; }
ul.is-style-ticks li { position: relative; padding-left: 30px; font-weight: 500; }
ul.is-style-ticks li::before { content: ""; position: absolute; left: 0; top: .3em; width: 1.1em; height: 1.1em; background: var(--ga-green); -webkit-mask: var(--ga-i-check) center / contain no-repeat; mask: var(--ga-i-check) center / contain no-repeat; }
.ga-dark ul.is-style-ticks li::before { background: var(--ga-lime); }

.wp-block-group.is-style-card { background: #fff; border: 1px solid var(--ga-line); border-radius: var(--ga-radius); padding: 20px; }

/* ---------- top bar + header ---------- */
.ga-topbar { display: none; background: var(--ga-forest); color: #d6e8da; font-size: .85rem; }
.ga-topbar p { margin: 0; }
.ga-topbar a { color: inherit; text-decoration: none; }
.ga-topbar p { white-space: nowrap; }
/* top bar: social icons */
:root {
	--ga-i-fb: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M14 8h3V4h-3c-2.8 0-4.5 1.7-4.5 4.6V11H7v4h2.5v9h4v-9H17l.5-4h-4V9c0-.6.4-1 1-1z'/%3E%3C/svg%3E");
	--ga-i-ig: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='3' y='3' width='18' height='18' rx='5'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Ccircle cx='17.5' cy='6.5' r='.6' fill='black'/%3E%3C/svg%3E");
	--ga-i-pinterest: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12.3 2C6.8 2 4 5.9 4 9.2c0 2 .8 3.8 2.4 4.4.3.1.5 0 .6-.3l.2-1c.1-.3 0-.4-.2-.7-.5-.6-.8-1.3-.8-2.4 0-3.1 2.3-5.9 6-5.9 3.3 0 5.1 2 5.1 4.7 0 3.5-1.6 6.5-3.9 6.5-1.3 0-2.2-1-1.9-2.3.4-1.5 1.1-3.2 1.1-4.3 0-1-.5-1.8-1.6-1.8-1.3 0-2.3 1.3-2.3 3.1 0 1.1.4 1.9.4 1.9l-1.5 6.4c-.4 1.9-.1 4.2 0 4.4 0 .1.2.2.3.1.1-.2 1.6-2 2.1-3.8l.8-3.2c.4.8 1.6 1.4 2.8 1.4 3.7 0 6.2-3.4 6.2-7.9C19.7 5.2 16.9 2 12.3 2z'/%3E%3C/svg%3E");
}
.ga-tb-social { display: flex; gap: 4px; margin: 0; }
.ga-tb-social a { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; font-size: 0; transition: background .15s; }
.ga-tb-social a::before { content: ""; width: 15px; height: 15px; background: #d6e8da; -webkit-mask: var(--ga-icon) center / contain no-repeat; mask: var(--ga-icon) center / contain no-repeat; }
.ga-tb-social a:hover { background: rgba(255,255,255,.14); }
.ga-tb-social a:hover::before { background: #fff; }
.ga-ic--fb { --ga-icon: var(--ga-i-fb); } .ga-ic--ig { --ga-icon: var(--ga-i-ig); } .ga-ic--pinterest { --ga-icon: var(--ga-i-pinterest); }
/* top bar: country flags (link to the country pages) */
.ga-tb-flags { display: flex; align-items: center; gap: 6px; margin: 0; }
.ga-tb-flags, .ga-tb-flags a, .ga-tb-flags img, .ga-tb-social, .ga-tb-social a { flex: none; }
.ga-tb-flags a { display: block; line-height: 0; border-radius: 50%; transition: transform .15s; }
.ga-tb-flags a:hover { transform: scale(1.15); }
.ga-tb-flags img { width: 22px; height: 22px; object-fit: cover; border-radius: 50%; box-shadow: 0 0 0 1.5px rgba(255,255,255,.55); }
@media (max-width: 1499px) { .ga-tb-hours { display: none; } } /* hours stay in the footer */
@media (max-width: 1179px) { .ga-topbar .ga-ic--pin { display: none; } }
/* The whole header template part sticks; the top bar scrolls away (negative top = its height). */
.wp-site-blocks > header.wp-block-template-part { position: sticky; top: calc(var(--ga-topbar-h, 0px) * -1); z-index: 40; }
.admin-bar .wp-site-blocks > header.wp-block-template-part { top: calc(32px - var(--ga-topbar-h, 0px)); }
.ga-header { background: rgba(255,255,255,.96); backdrop-filter: blur(8px); border-bottom: 1px solid var(--ga-line); transition: background .25s ease, border-color .25s ease; }

/* ---------- photo hero (home, country pages: body.ga-photo-hero, inc/hero.php): header floats over the photos, turns solid after scrolling ---------- */
.ga-photo-hero .wp-site-blocks > header.wp-block-template-part { position: fixed; top: 0; left: 0; right: 0; }
.admin-bar.ga-photo-hero .wp-site-blocks > header.wp-block-template-part { top: 32px; }
.ga-photo-hero:not(.ga-scrolled) .ga-header { background: transparent; border-bottom-color: transparent; backdrop-filter: none; }
.ga-photo-hero:not(.ga-scrolled) .ga-topbar { background: rgba(6, 24, 14, .35); }
.ga-photo-hero.ga-scrolled .ga-topbar { display: none; }
.ga-photo-hero:not(.ga-scrolled) .ga-header .wp-block-site-logo img { filter: drop-shadow(0 1px 1px rgba(255,255,255,.55)) drop-shadow(0 2px 10px rgba(0,0,0,.45)); }
.ga-photo-hero:not(.ga-scrolled) .ga-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation-item__content { color: #fff; text-shadow: 0 1px 8px rgba(0,0,0,.35); }
.ga-photo-hero:not(.ga-scrolled) .ga-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation-item__content:hover { background: rgba(255,255,255,.14); color: #fff; }
.ga-photo-hero:not(.ga-scrolled) .ga-header .wp-block-navigation__responsive-container-open { color: #fff; background: rgba(6,24,14,.35); }
.ga-photo-hero:not(.ga-scrolled) .ga-header .ga-header-cta .wp-block-button__link { background: var(--ga-lime); color: var(--ga-forest); box-shadow: none; }

/* ---------- photo hero: full-screen slider (pure CSS: 6 slides x 6 s = 36 s, plain crossfade) ---------- */
.ga-hs { position: relative; min-height: calc(100svh - 76px); display: flex; align-items: flex-end; overflow: hidden; background: var(--ga-forest); color: #fff; margin-top: 0 !important; margin-bottom: 0 !important; }
@media (max-width: 959px) { .ga-hs-slide figcaption { display: none; } }
.ga-hs-slides { position: absolute; inset: 0; margin: 0 !important; }
/* each slide's delay and focus points come from patterns/hero-slider.php (inline animation-delay, --ga-pos-m, --ga-pos) */
.ga-hs-slide { position: absolute !important; inset: 0; margin: 0 !important; opacity: 0; animation: ga-hs-fade 36s linear infinite; }
.ga-hs-slide img { width: 100%; height: 100%; object-fit: cover; object-position: var(--ga-pos-m, 50% 50%); border-radius: 0 !important; }
@media (min-width: 960px) { .ga-hs-slide img { object-position: var(--ga-pos, 50% 50%); } }
.ga-hs-slide picture { display: contents; }
.ga-hs-slide figcaption { margin: 0; }
.ga-hs-slides::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(6,24,14,.55) 0%, rgba(6,24,14,.05) 30%, rgba(6,24,14,.25) 55%, rgba(6,24,14,.85) 100%); pointer-events: none; }
.ga-hs-slide figcaption { position: absolute; right: 16px; bottom: 14px; margin: 0; padding: 6px 12px; border-radius: 999px; background: rgba(6,24,14,.55); color: #fff; font-size: .78rem; font-weight: 500; backdrop-filter: blur(4px); z-index: 2; max-width: calc(100% - 32px); }
@keyframes ga-hs-fade { 0% { opacity: 0; } 3.333% { opacity: 1; } 16.667% { opacity: 1; } 20% { opacity: 0; } 100% { opacity: 0; } } /* 1.2 s in, 6 s shown, 1.2 s out, of 36 s */
.ga-hs-content { position: relative; z-index: 3; width: 100%; padding-block: 140px 64px !important; margin: 0 !important; }
.ga-hs-content h1 { color: #fff; max-width: 14ch; font-size: clamp(2.2rem, 7vw, 4.4rem); letter-spacing: -.025em; text-shadow: 0 2px 24px rgba(0,0,0,.35); margin-block: .2em .3em; }
.ga-hs--country .ga-hs-content h1 { max-width: 15.5ch; } /* country pages: "Outdoor Gym &" / "Playground Equipment" / "for <country>", three lines like the home heading */
/*
 * The hero heading in the style of the section titles ("Choose your category": .ga-kicker, .ga-fancy-title, .ga-hl),
 * left-aligned and turned for the dark photo: the label and the marked word in lime, the marker in green.
 */
.ga-hs-content .ga-kicker { justify-content: flex-start; margin: 0 0 6px !important; color: var(--ga-lime); }
@media (max-width: 599px) { /* phones: one line, the line before it only */
	.ga-hs-content .ga-kicker { gap: 10px; letter-spacing: .07em; }
	.ga-hs-content .ga-kicker::before { width: 24px; }
	.ga-hs-content .ga-kicker::after { display: none; }
}
@media (max-width: 389px) { .ga-hs-content .ga-kicker { font-size: .7rem; letter-spacing: .05em; } }
/* the brand bar under the whole last word ("Equipment"), as wide as the word on every screen */
.ga-hs-content h1 { padding-bottom: 20px; }
.ga-hs-content h1 .ga-hs-bar { position: relative; display: inline-block; }
.ga-hs-content h1 .ga-hs-bar::after { content: ""; position: absolute; left: .04em; right: .04em; bottom: -15px; height: 5px; border-radius: 5px; background: var(--wp--preset--gradient--brand); transform: scaleX(var(--ga-grow, 1)); transform-origin: left center; } /* grows with the stats count-up (theme.js) */
/*
 * "Fitness" and "Playground" are hidden on load (html.ga-anim: the animation will run; their space is kept) and pop
 * in as the stats start (.is-pop, theme.js): from small, up past their size and a small bounce back; "Fitness" first.
 */
html.ga-anim .ga-hs-content h1 .ga-hl:not(.is-pop) { opacity: 0; }
html.ga-anim .ga-hs-content h1 .ga-hs-bar::after { transform: scaleX(var(--ga-grow, 0)); } /* empty until the stats start */
.ga-hs-content h1 .ga-hl.is-pop { animation: ga-word-pop .7s ease-out both; transform-origin: center bottom; }
.ga-hs-content h1 .ga-hl.is-pop ~ .ga-hl.is-pop { animation-delay: .22s; } /* "Fitness" first, then "Playground" */
@keyframes ga-word-pop {
	0% { opacity: 0; transform: translateY(.3em) scale(.4); }
	45% { opacity: 1; transform: translateY(-.12em) scale(1.12); }
	70% { transform: translateY(.02em) scale(.97); }
	100% { opacity: 1; transform: none; }
}
.ga-hs-content h1 .ga-hl { display: inline-block; color: #fff; background: linear-gradient(transparent 62%, rgba(31,115,34,.8) 62%, rgba(31,115,34,.8) 92%, transparent 92%); } /* white words on the green marker */
.ga-hs-lead { font-size: clamp(1.05rem, 2.2vw, 1.3rem); max-width: 40ch; color: #eef6ef; text-shadow: 0 1px 12px rgba(0,0,0,.4); }
.ga-hs-buttons { margin-block: 26px 22px !important; }
.ga-hs-ticks { display: none !important; }
.ga-hs-ticks li { color: #fff; }
.ga-hs-ticks li::before { background: var(--ga-lime) !important; }
/* second hero button: all products (a range slider at the top; add products to the quote list, send them together) */
.wp-block-button.ga-hs-range .wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; gap: .55em; background: rgba(255,255,255,.12); backdrop-filter: blur(4px); }
.wp-block-button.ga-hs-range .wp-block-button__link::before { content: ""; flex: none; width: 1.1em; height: 1.1em; background: currentColor; -webkit-mask: var(--ga-i-box) center / contain no-repeat; mask: var(--ga-i-box) center / contain no-repeat; }
.wp-block-button.ga-hs-range .wp-block-button__link:hover { background: rgba(255,255,255,.22); border-color: #fff; color: #fff; }
.ga-hs-progress { position: absolute; z-index: 3; left: 16px; bottom: 26px; display: flex; gap: 6px; width: min(40%, 240px); }
.ga-hs-slide figcaption { max-width: 55%; }
.ga-hs-progress span { position: relative; flex: 1; height: 3px; border-radius: 3px; background: rgba(255,255,255,.3); overflow: hidden; }
.ga-hs-progress span::after { content: ""; position: absolute; inset: 0; background: #fff; transform: scaleX(0); transform-origin: left; animation: ga-hs-bar 36s linear infinite; animation-delay: var(--ga-d, 0s); }
@keyframes ga-hs-bar { 0%, 3.333% { transform: scaleX(0); } 20% { transform: scaleX(1); } 20.01%, 100% { transform: scaleX(0); } }
.ga-hs-down { display: none; }
@media (prefers-reduced-motion: reduce) {
	.ga-hs-slide, .ga-hs-progress span::after { animation: none !important; }
	.ga-hs-slide-1 { opacity: 1; }
	.ga-hs-progress { display: none; }
}

/* ---------- WhatsApp (style of autoflowr.co.il): floating button + green-outline buttons ---------- */
.ga-wa-float { position: fixed; right: 20px; bottom: 20px; z-index: 60; width: 56px; height: 56px; border-radius: 50%; background: #25D366; color: #fff; display: grid; place-items: center; text-decoration: none; box-shadow: 0 8px 24px rgba(37,211,102,.45), 0 2px 8px rgba(0,0,0,.25); transition: transform .25s, box-shadow .25s, opacity .35s ease, scale .35s ease, visibility .35s; animation: ga-wa-bob 2.5s ease-in-out infinite; }
/* hidden while the home photo hero is on screen (JS adds ga-has-hero / ga-past-hero) */
.ga-has-hero:not(.ga-past-hero) .ga-wa-float { opacity: 0; scale: .6; visibility: hidden; pointer-events: none; }
.ga-wa-float::before { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 2px solid #25D366; animation: ga-wa-ping 2s ease-out infinite; pointer-events: none; }
.ga-wa-float::after { content: ""; position: absolute; top: -3px; right: -3px; width: 14px; height: 14px; border-radius: 50%; background: var(--ga-lime); border: 2.5px solid #fff; animation: ga-wa-dot 1.6s ease-in-out infinite; }
.ga-wa-float svg { width: 28px; height: 28px; position: relative; z-index: 2; }
.ga-wa-float:hover { transform: scale(1.08); box-shadow: 0 12px 32px rgba(37,211,102,.6), 0 4px 12px rgba(0,0,0,.3); color: #fff; }
.ga-wa-tip { position: absolute; right: 100%; margin-right: 14px; top: 50%; transform: translateY(-50%) translateX(8px); background: #fff; border: 1px solid var(--ga-line); color: var(--ga-ink); padding: 8px 14px; border-radius: 999px; font-size: 13px; font-weight: 600; white-space: nowrap; opacity: 0; pointer-events: none; transition: all .25s; box-shadow: 0 4px 12px rgba(0,0,0,.15); }
.ga-wa-float:hover .ga-wa-tip, .ga-wa-float:focus-visible .ga-wa-tip { opacity: 1; transform: translateY(-50%) translateX(0); }
@keyframes ga-wa-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes ga-wa-ping { 0% { transform: scale(.95); opacity: .7; } 100% { transform: scale(1.5); opacity: 0; } }
@keyframes ga-wa-dot { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.15); } }
@media (max-width: 959px) {
	.ga-wa-float { bottom: calc(16px + env(safe-area-inset-bottom)); right: 16px; width: 52px; height: 52px; }
	.ga-wa-float svg { width: 26px; height: 26px; }
	.ga-wa-tip { display: none; }
}
@media (prefers-reduced-motion: reduce) { .ga-wa-float, .ga-wa-float::before, .ga-wa-float::after { animation: none; } }
body:has(.wpb-gqf-popup.open, .wpb-gqb-popup-open, .wp-block-navigation__responsive-container.is-menu-open) .ga-wa-float { opacity: 0; pointer-events: none; }

/* every button that opens WhatsApp: green outline, WhatsApp logo in green */
.wp-block-button__link[href*="wa.me/"] { border: 2px solid #25D366 !important; box-shadow: 0 0 14px rgba(37,211,102,.22) !important; display: inline-flex; align-items: center; gap: .55em; }
.wp-block-button__link[href*="wa.me/"]::before { content: "" !important; width: 1.2em !important; height: 1.2em !important; flex: none; background: #25D366 !important; -webkit-mask: var(--ga-i-wa) center / contain no-repeat !important; mask: var(--ga-i-wa) center / contain no-repeat !important; }
.wp-block-button__link[href*="wa.me/"]:hover { box-shadow: 0 0 20px rgba(37,211,102,.4) !important; }
.wp-block-button:not(.is-style-ghost-light) > .wp-block-button__link[href*="wa.me/"] { background: #fff !important; color: var(--ga-ink) !important; }
.wp-block-button.is-style-ghost-light > .wp-block-button__link[href*="wa.me/"] { background: rgba(6,24,14,.35) !important; color: #fff !important; }

/* WPForms in brand colours (modern markup uses CSS variables, classic markup the button class) */
.wpforms-container { --wpforms-button-background-color: #1f7322; --wpforms-button-background-color-alt: #195e1c; --wpforms-button-text-color: #fff; --wpforms-button-border-radius: 999px; --wpforms-field-border-radius: 12px; --wpforms-label-color: #12261a; }
.wpforms-container button.wpforms-submit, .wpforms-container .wpforms-submit { background: var(--ga-green) !important; border-color: var(--ga-green) !important; color: #fff !important; border-radius: 999px !important; font-weight: 700 !important; box-shadow: 0 6px 16px rgba(31,115,34,.28) !important; }
.wpforms-container .wpforms-submit:hover { background: var(--ga-green-dark) !important; }

/* ---------- quote panel: form (two-column fields) + dark contact panel ---------- */
.ga-quote { background: radial-gradient(900px 420px at 0% 0%, rgba(163,209,71,.16), transparent 60%), var(--ga-mist); }
.ga-quote-head { margin-bottom: 26px !important; }
.ga-quote-head h2 { margin: .15em 0 .3em; }
.ga-qp { display: grid !important; grid-template-columns: 1fr; background: #fff; border: 1px solid var(--ga-line); border-radius: 24px; overflow: hidden; box-shadow: 0 2px 6px rgba(18,38,26,.05), 0 24px 60px rgba(18,38,26,.12); }
.ga-qp > * { margin: 0 !important; }
.ga-qp-form { padding: 26px 20px 24px; }
.ga-qp-form > * { margin-block: 0 !important; }
.ga-qp-title { font-size: clamp(1.4rem, 2.6vw, 1.8rem); margin: 6px 0 4px !important; }
.ga-qp-sub { color: var(--ga-muted); font-size: .92rem; margin-bottom: 14px !important; }
.ga-qp-privacy { color: var(--ga-muted); font-size: .8rem; margin-top: 10px !important; }
/* WPForms (modern markup) inside the panel */
.ga-qp .wpforms-container { margin: 0 !important; }
.ga-qp .wpforms-field-container { display: grid; grid-template-columns: 1fr; column-gap: 18px; }
.ga-qp .wpforms-field { padding: 7px 0 !important; margin: 0 !important; }
.ga-qp .wpforms-field-label { font-size: .86rem !important; font-weight: 700 !important; color: var(--ga-ink) !important; margin-bottom: 6px !important; }
.ga-qp .wpforms-required-label { color: #c2410c !important; }
.ga-qp .wpforms-field input[type=text], .ga-qp .wpforms-field input[type=email], .ga-qp .wpforms-field select, .ga-qp .wpforms-field textarea {
	width: 100% !important; max-width: none !important; min-height: 50px; padding: 12px 14px !important; border: 1.5px solid var(--ga-line) !important; border-radius: 12px !important;
	background: #f8faf8 !important; color: var(--ga-ink) !important; font: 500 .97rem/1.4 var(--wp--preset--font-family--dm-sans) !important; box-shadow: none !important; transition: border-color .15s, background .15s, box-shadow .15s;
}
.ga-qp .wpforms-field textarea { min-height: 84px !important; height: 84px; resize: vertical; } /* optional, short; grows if the quote list fills it */
.ga-qp .wpforms-field input::placeholder, .ga-qp .wpforms-field textarea::placeholder { color: #8a988e; }
.ga-qp .wpforms-field input:focus, .ga-qp .wpforms-field select:focus, .ga-qp .wpforms-field textarea:focus { outline: none; border-color: var(--ga-green) !important; background: #fff !important; box-shadow: 0 0 0 4px rgba(31,115,34,.12) !important; }
.ga-qp .wpforms-field select { -webkit-appearance: none; appearance: none; padding-right: 40px !important; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f7322' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important; background-repeat: no-repeat !important; background-position: right 14px center !important; background-size: 16px !important; }
.ga-qp .wpforms-field.wpforms-has-error input, .ga-qp .wpforms-field.wpforms-has-error select { border-color: #c2410c !important; }
.ga-qp .wpforms-submit-container { padding-top: 12px !important; margin: 0 !important; }
.ga-qp .wpforms-submit { width: 100%; min-height: 54px !important; padding: 0 30px !important; border-radius: 999px !important; font-size: 1.02rem !important; }
/* dark contact side panel */
.ga-qp-side { position: relative; overflow: hidden; padding: 28px 22px 26px; background: linear-gradient(160deg, #0f3a22 0%, #164a2c 60%, #1d6b3c 100%); color: #e3efe5; }
.ga-qp-side::after { content: ""; position: absolute; right: -90px; top: -90px; width: 260px; height: 260px; border-radius: 50%; background: radial-gradient(circle, rgba(163,209,71,.3), transparent 70%); pointer-events: none; }
.ga-qp-side > * { position: relative; z-index: 1; margin-block: 0 !important; }
.ga-qp-side h3 { color: #fff; font-size: 1.35rem; }
.ga-qp-side-lead { color: #c9e0cd; font-size: .95rem; margin: 6px 0 18px !important; }
.ga-qp-wa a { display: grid; grid-template-columns: 48px 1fr; grid-template-rows: auto auto; column-gap: 14px; align-items: center; padding: 14px 16px; border-radius: 16px; background: #25D366; color: #06240f; text-decoration: none; box-shadow: 0 10px 26px rgba(37,211,102,.35); transition: transform .15s, box-shadow .15s; }
.ga-qp-wa a:hover { transform: translateY(-2px); box-shadow: 0 14px 32px rgba(37,211,102,.45); color: #06240f; }
.ga-qp-wa a::before { content: ""; grid-row: 1 / 3; width: 48px; height: 48px; border-radius: 14px; background: rgba(255,255,255,.28) center / 26px no-repeat; -webkit-mask: none; position: relative; }
.ga-qp-wa a::after { content: ""; position: absolute; left: 27px; top: 50%; width: 26px; height: 26px; margin-top: -13px; background: #fff; -webkit-mask: var(--ga-i-wa) center / contain no-repeat; mask: var(--ga-i-wa) center / contain no-repeat; }
.ga-qp-wa a { position: relative; }
.ga-qp-wa strong { font-size: 1.05rem; line-height: 1.2; color: #fff; text-shadow: 0 1px 2px rgba(6,36,15,.25); } /* white, like the logo */
.ga-qp-wa span { font-size: .82rem; opacity: .85; }
.ga-qp-rows { list-style: none; padding: 0; margin: 20px 0 0 !important; }
.ga-qp-rows li { position: relative; display: flex; flex-direction: column; gap: 2px; padding: 13px 0 13px 52px; border-top: 1px solid rgba(255,255,255,.12); font-size: .95rem; color: #fff; }
.ga-qp-rows li::before { content: ""; position: absolute; left: 0; top: 13px; width: 38px; height: 38px; border-radius: 12px; background: rgba(255,255,255,.1); }
.ga-qp-rows li::after { content: ""; position: absolute; left: 10px; top: 23px; width: 18px; height: 18px; background: var(--ga-lime); -webkit-mask: var(--ga-icon) center / contain no-repeat; mask: var(--ga-icon) center / contain no-repeat; }
.ga-qp-rows a { color: #fff; text-decoration: none; font-weight: 600; }
.ga-qp-rows a:hover { color: var(--ga-lime); }
.ga-qp-k { font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #9fc2a6; }
@media (min-width: 640px) {
	.ga-qp .wpforms-field-container { grid-template-columns: 1fr 1fr; }
	.ga-qp .wpforms-field:not(.ga-col-half) { grid-column: 1 / -1; }
	.ga-qp .wpforms-submit { width: auto; }
}
@media (min-width: 960px) {
	.ga-qp { grid-template-columns: 1.6fr 1fr; }
	.ga-qp-form { padding: 40px 44px 36px; }
	.ga-qp-side { padding: 40px 34px 34px; }
}

/* quote section with form */
.ga-quote { background: var(--ga-mist); }
.ga-quote .ga-form-card { background: #fff; border: 1px solid var(--ga-line); border-radius: 20px; padding: 26px; box-shadow: var(--ga-shadow); }
.ga-header .wp-block-site-logo { flex: none; }
.ga-header .wp-block-site-logo img { height: 38px; width: auto; }
/* core switches the menu to a hamburger only below 600px; keep it until the full menu and the CTA fit (1160px) */
@media (min-width: 600px) and (max-width: 1159px) {
	.ga-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.ga-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}
.ga-header .wp-block-navigation .wp-block-navigation-item__content { padding: 10px 11px; border-radius: 8px; white-space: nowrap; }
.ga-header .wp-block-navigation .wp-block-navigation-item__content:hover { background: var(--ga-mist); color: var(--ga-green); }
/* the section being viewed: green, with a short line under it */
.ga-header .wp-block-navigation .is-current > .wp-block-navigation-item__content { position: relative; color: var(--ga-green); }
.ga-header .wp-block-navigation .is-current > .wp-block-navigation-item__content::after { content: ""; position: absolute; left: 11px; right: 11px; bottom: 2px; height: 2.5px; border-radius: 2px; background: linear-gradient(90deg, var(--ga-green), var(--ga-lime)); }
.ga-header .wp-block-navigation__responsive-container.is-menu-open .is-current > .wp-block-navigation-item__content::after { left: 0; right: auto; width: 2.2em; bottom: 4px; }
/*
 * Desktop menu: touching an item (pointer or keyboard focus) draws the same line as the section
 * being viewed, from left to right, instead of a background.
 */
.ga-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container > li > .wp-block-navigation-item__content { position: relative; }
.ga-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container > li > .wp-block-navigation-item__content::after {
	content: ""; position: absolute; left: 11px; right: 11px; bottom: 2px; height: 2.5px; border-radius: 2px; background: linear-gradient(90deg, var(--ga-green), var(--ga-lime));
	transform: scaleX(0); transform-origin: left center; transition: transform .22s ease;
}
.ga-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container > li:is(:hover, :focus-within) > .wp-block-navigation-item__content { background: none; color: var(--ga-green); }
.ga-photo-hero:not(.ga-scrolled) .ga-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container > li:is(:hover, :focus-within) > .wp-block-navigation-item__content { background: none; color: var(--ga-lime); } /* lime: the brand's green that reads on the photo */
.ga-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container > li:is(:hover, :focus-within, .is-current) > .wp-block-navigation-item__content::after { transform: scaleX(1); }
@media (prefers-reduced-motion: reduce) { .ga-header .wp-block-navigation__container > li > .wp-block-navigation-item__content::after { transition: none; } }
.ga-header .ga-header-cta { display: none; }
.ga-header .ga-header-cta .wp-block-button__link { white-space: nowrap; }
.ga-header .wp-block-navigation__container { flex-wrap: nowrap; }
.ga-icon-link { position: relative; display: inline-grid !important; place-items: center; width: 44px; height: 44px; border-radius: 12px; color: var(--ga-ink); text-decoration: none; font-size: 0; }
.ga-icon-link:hover { background: var(--ga-mist); }
.ga-icon-link::before { content: ""; width: 22px; height: 22px; background: currentColor; -webkit-mask: var(--ga-icon) center / contain no-repeat; mask: var(--ga-icon) center / contain no-repeat; }
.ga-icon-link .ga-count { position: absolute; top: 3px; right: 2px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: var(--ga-green); color: #fff; font-size: .7rem; font-weight: 700; display: grid; place-items: center; }
.ga-icon-link .ga-count:empty, .ga-icon-link .ga-count[data-count="0"] { display: none; }
/* ---------- phone and tablet menu: the menu button and the full-screen menu ---------- */
.wp-block-navigation__responsive-container-open { width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; background: var(--ga-mist); color: var(--ga-forest); transition: background .15s, color .15s; }
.wp-block-navigation__responsive-container-open:hover { background: var(--ga-green); color: #fff; }
.wp-block-navigation__responsive-container-open svg { width: 26px; height: 26px; flex: none; }
/* core shows the button as flex on phones, which ignores place-items: centre the icon both ways */
.ga-header .wp-block-navigation__responsive-container-open { justify-content: center; align-items: center; padding: 0; }
.ga-photo-hero:not(.ga-scrolled) .ga-header .wp-block-navigation__responsive-container-open { background: rgba(255,255,255,.16); color: #fff; box-shadow: inset 0 0 0 1px rgba(255,255,255,.35); backdrop-filter: blur(6px); }
.wp-block-navigation__responsive-container-open:focus:not(:focus-visible),
.wp-block-navigation__responsive-container-close:focus:not(:focus-visible),
.is-menu-open .wp-block-navigation-item__content:focus:not(:focus-visible) { outline: none; }
.wp-block-navigation__responsive-container-open:focus-visible, .wp-block-navigation__responsive-container-close:focus-visible { outline: 3px solid var(--ga-lime); outline-offset: 2px; }
/* the header's blur would make it the frame of the fixed menu: drop it while the menu is open */
.ga-header:has(.is-menu-open) { backdrop-filter: none !important; }
.ga-nav-head, .ga-nav-extra { display: none; }
.wp-block-navigation__responsive-container.is-menu-open { padding: 0 !important; background: #fff !important; color: var(--ga-ink) !important; animation: ga-menu-in .22s ease; }
@keyframes ga-menu-in { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
.is-menu-open .wp-block-navigation__responsive-close, .is-menu-open .wp-block-navigation__responsive-dialog { min-height: 100%; }
.is-menu-open .wp-block-navigation__responsive-dialog { display: flex; flex-direction: column; }
.is-menu-open .ga-nav-head { box-sizing: border-box; display: flex; align-items: center; min-height: 70px; padding: 12px 76px 12px 20px; border-bottom: 1px solid var(--ga-line); }
.is-menu-open .ga-nav-head a { display: block; line-height: 0; }
.is-menu-open .ga-nav-head img { height: 38px; width: auto; }
.is-menu-open .wp-block-navigation__responsive-container-close { top: 12px !important; right: 16px !important; width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; background: var(--ga-mist); color: var(--ga-forest); }
.is-menu-open .wp-block-navigation__responsive-container-close svg { width: 26px; height: 26px; }
/* links: English reads left to right, so the menu is left-aligned, one full-width row per link */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { flex: 1; padding: 6px 0 0 !important; align-items: stretch !important; gap: 0; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: stretch !important; gap: 0 !important; width: 100%; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { width: 100%; align-items: stretch !important; }
.ga-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { box-sizing: border-box; display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 16px 20px; border-radius: 0; border-bottom: 1px solid var(--ga-line); font-size: 1.2rem; font-weight: 600; text-align: left; color: var(--ga-ink); }
.ga-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content::after { content: ""; position: static; flex: none; width: 18px; height: 18px; background: var(--ga-muted); -webkit-mask: var(--ga-i-arrow) center / contain no-repeat; mask: var(--ga-i-arrow) center / contain no-repeat; }
.ga-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover { background: var(--ga-mist); color: var(--ga-green); }
.ga-header .wp-block-navigation__responsive-container.is-menu-open .is-current > .wp-block-navigation-item__content { background: var(--ga-mist); color: var(--ga-green); box-shadow: inset 4px 0 0 var(--ga-green); }
.ga-header .wp-block-navigation__responsive-container.is-menu-open .is-current > .wp-block-navigation-item__content::after { background: var(--ga-green); width: 18px; height: 18px; }
/* quick contact actions under the links */
.is-menu-open .ga-nav-extra { display: block; margin-top: auto; padding: 22px 20px calc(22px + env(safe-area-inset-bottom)); background: var(--ga-sand); }
.ga-nav-extra p { margin: 0; }
.ga-nav-actions { display: grid; gap: 10px; }
.ga-nav-actions a { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; border-radius: 14px; font-weight: 700; font-size: 1.02rem; text-decoration: none; }
.ga-nav-actions a::before { content: ""; width: 1.2em; height: 1.2em; background: currentColor; -webkit-mask: var(--ga-icon) center / contain no-repeat; mask: var(--ga-icon) center / contain no-repeat; }
.ga-nav-quote { --ga-icon: var(--ga-i-quote); background: var(--ga-green); color: #fff; box-shadow: 0 8px 20px rgba(31,115,34,.25); }
.ga-nav-quote:hover { background: var(--ga-green-dark); color: #fff; }
.ga-nav-wa { --ga-icon: var(--ga-i-wa); background: #fff; color: var(--ga-ink); border: 2px solid #25D366; }
.ga-nav-wa::before { background: #25D366 !important; }
.ga-nav-contact { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 14px !important; }
.ga-nav-contact a { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border-radius: 12px; background: #fff; border: 1px solid var(--ga-line); color: var(--ga-ink); font-size: .86rem; font-weight: 600; text-decoration: none; overflow-wrap: anywhere; }
.ga-nav-contact span { font-size: .7rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--ga-green); }
.ga-nav-note { margin-top: 12px !important; font-size: .8rem; color: var(--ga-muted); line-height: 1.5; }
@media (prefers-reduced-motion: reduce) { .wp-block-navigation__responsive-container.is-menu-open { animation: none; } }

/* ---------- quote list (inc/quote-list.php): header button, side panel, "added" message ---------- */
:root { --ga-i-x: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E"); }
.ga-ql-open { position: relative; flex: none; width: 46px; height: 46px; padding: 0; border: 0; border-radius: 14px; display: grid; place-items: center; background: var(--ga-mist); color: var(--ga-forest); cursor: pointer; transition: background .15s, color .15s; }
.ga-ql-open[hidden] { display: none; }
.ga-ql-open::before { content: ""; width: 22px; height: 22px; background: currentColor; -webkit-mask: var(--ga-i-quote) center / contain no-repeat; mask: var(--ga-i-quote) center / contain no-repeat; }
.ga-ql-open:hover { background: var(--ga-green); color: #fff; }
.ga-ql-open:focus-visible { outline: 3px solid var(--ga-lime); outline-offset: 2px; }
.ga-ql-count { position: absolute; top: -6px; right: -6px; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px; display: grid; place-items: center; background: #e8590c; color: #fff; font-size: .74rem; font-weight: 800; box-shadow: 0 0 0 2px #fff; }
.ga-photo-hero:not(.ga-scrolled) .ga-header .ga-ql-open { background: rgba(255,255,255,.16); color: #fff; box-shadow: inset 0 0 0 1px rgba(255,255,255,.35); backdrop-filter: blur(6px); }
@media (max-width: 1159px) { .ga-ql-open { order: -1; } } /* phones and tablets: left of the menu button */
html.ga-ql-lock { overflow: hidden; }
html.ga-ql-lock .ga-wa-float { display: none !important; }
.ga-ql { position: fixed; inset: 0; z-index: 400; }
.ga-ql[hidden] { display: none; }
.ga-ql-backdrop { position: absolute; inset: 0; background: rgba(6,24,14,.5); animation: ga-ql-fade .2s ease; }
@keyframes ga-ql-fade { from { opacity: 0; } }
.ga-ql-panel { position: absolute; top: 0; right: 0; bottom: 0; width: min(440px, 100%); display: flex; flex-direction: column; background: #fff; box-shadow: -12px 0 40px rgba(6,24,14,.25); animation: ga-ql-in .28s cubic-bezier(.25,.8,.25,1); }
@keyframes ga-ql-in { from { transform: translateX(40px); opacity: 0; } }
.ga-ql-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 16px 14px 22px; border-bottom: 1px solid var(--ga-line); }
.ga-ql-head h2 { margin: 0; font-size: 1.3rem; }
.ga-ql-x { flex: none; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 12px; display: grid; place-items: center; background: var(--ga-mist); color: var(--ga-forest); cursor: pointer; }
.ga-ql-x::before { content: ""; width: 20px; height: 20px; background: currentColor; -webkit-mask: var(--ga-i-x) center / contain no-repeat; mask: var(--ga-i-x) center / contain no-repeat; }
.ga-ql-intro { margin: 0; padding: 14px 22px 4px; color: var(--ga-muted); font-size: .9rem; line-height: 1.5; }
.ga-ql-items { flex: 1; overflow-y: auto; margin: 0; padding: 8px 22px; list-style: none; }
.ga-ql-item { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; grid-template-rows: auto auto; column-gap: 14px; row-gap: 8px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--ga-line); }
.ga-ql-item img, .ga-ql-noimg { grid-row: 1 / 3; width: 64px; height: 64px; border-radius: 12px; object-fit: contain; background: var(--ga-mist); border: 1px solid var(--ga-line); }
.ga-ql-name { grid-column: 2 / 4; color: var(--ga-ink); font-weight: 700; font-size: .95rem; line-height: 1.3; text-decoration: none; }
.ga-ql-name:hover { color: var(--ga-green); }
.ga-ql-qty { grid-column: 2; justify-self: start; display: inline-flex; align-items: center; border: 1px solid var(--ga-line); border-radius: 999px; overflow: hidden; }
.ga-ql-qty button { width: 34px; height: 32px; padding: 0; border: 0; background: #fff; color: var(--ga-ink); font-size: 1.05rem; font-weight: 700; cursor: pointer; }
.ga-ql-qty button:hover { background: var(--ga-mist); color: var(--ga-green); }
.ga-ql-qty span { min-width: 28px; text-align: center; font-weight: 700; font-size: .92rem; }
.ga-ql-remove { grid-column: 3; justify-self: end; width: 34px; height: 34px; padding: 0; border: 0; border-radius: 10px; display: grid; place-items: center; background: none; color: var(--ga-muted); cursor: pointer; }
.ga-ql-remove::before { content: ""; width: 16px; height: 16px; background: currentColor; -webkit-mask: var(--ga-i-x) center / contain no-repeat; mask: var(--ga-i-x) center / contain no-repeat; }
.ga-ql-remove:hover { background: #fdecea; color: #c2410c; }
.ga-ql-empty { display: none; padding: 26px 22px; text-align: center; color: var(--ga-muted); }
.ga-ql-empty p { margin: 0 0 8px; }
.ga-ql-browse { display: inline-flex; margin-top: 8px; padding: 10px 18px; border-radius: 999px; background: var(--ga-mist); color: var(--ga-green); font-weight: 700; text-decoration: none; }
.ga-ql.is-empty .ga-ql-items, .ga-ql.is-empty .ga-ql-foot { display: none; }
.ga-ql.is-empty .ga-ql-empty { display: block; flex: 1; }
.ga-ql-foot { display: grid; gap: 10px; padding: 16px 22px calc(16px + env(safe-area-inset-bottom)); background: var(--ga-sand); border-top: 1px solid var(--ga-line); }
.ga-ql-foot a { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 50px; border-radius: 14px; font-weight: 700; text-decoration: none; }
.ga-ql-foot a::before { content: ""; width: 1.2em; height: 1.2em; background: currentColor; -webkit-mask: var(--ga-icon) center / contain no-repeat; mask: var(--ga-icon) center / contain no-repeat; }
.ga-ql-wa { --ga-icon: var(--ga-i-wa); background: #25D366; color: #fff; box-shadow: 0 8px 20px rgba(37,211,102,.3); }
.ga-ql-wa:hover { background: #1faa59; color: #fff; }
.ga-ql-form { --ga-icon: var(--ga-i-quote); background: #fff; color: var(--ga-green); border: 2px solid var(--ga-green); }
.ga-ql-form:hover { background: var(--ga-green); color: #fff; }
.ga-ql-clear { justify-self: center; padding: 4px 8px; border: 0; background: none; color: var(--ga-muted); font: 600 .84rem inherit; font-family: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.ga-ql-clear:hover { color: #c2410c; }
.ga-ql-toast { position: fixed; left: 50%; bottom: calc(80px + env(safe-area-inset-bottom)); /* above the WhatsApp button */ z-index: 300; transform: translateX(-50%); width: max-content; max-width: calc(100% - 32px); display: flex; align-items: center; gap: 14px; padding: 10px 10px 10px 18px; border-radius: 14px; background: var(--ga-forest); color: #fff; font-size: .9rem; box-shadow: 0 12px 30px rgba(6,24,14,.35); animation: ga-ql-fade .2s ease; }
.ga-ql-toast[hidden] { display: none; }
.ga-ql-toast-open { flex: none; padding: 8px 14px; border: 0; border-radius: 10px; background: var(--ga-lime); color: var(--ga-forest); font-weight: 700; font-family: inherit; cursor: pointer; }
@media (min-width: 960px) { .ga-ql-toast { bottom: 28px; } }
@media (prefers-reduced-motion: reduce) { .ga-ql-backdrop, .ga-ql-panel, .ga-ql-toast { animation: none; } }

/* ---------- sections ---------- */
.ga-section { padding-block: 56px; }
.ga-dark { background: var(--ga-forest); color: #e3efe5; }
.ga-dark :where(h1, h2, h3, h4) { color: #fff; }
.ga-dark .ga-lead, .ga-dark .has-muted-color { color: #b9d3be !important; }
.ga-lead { font-size: 1.15rem; color: var(--ga-muted); max-width: 46ch; }
.ga-section-head { gap: 16px; margin-bottom: 28px !important; }
/* home ranges: one centred heading into the category panels, the all-products link under them */
/* section headings that stand out (home ranges, reviews): a small label with lines either side, the key word in green over a soft lime highlight, a short brand bar under */
.ga-kicker { display: flex; align-items: center; justify-content: center; gap: 12px; margin: 0 auto 8px !important; color: var(--ga-green); font-size: .78rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.ga-kicker::before, .ga-kicker::after { content: ""; width: 34px; height: 2px; border-radius: 2px; background: var(--wp--preset--gradient--brand); }
.ga-kicker::before { transform: scaleX(-1); }
.ga-fancy-title { margin: 0 auto 34px !important; font-size: clamp(2rem, 4.4vw, 3rem); letter-spacing: -.025em; }
.ga-fancy-title::after { content: ""; display: block; width: 72px; height: 5px; margin: 16px auto 0; border-radius: 5px; background: var(--wp--preset--gradient--brand); }
.ga-hl { padding: 0 .08em; background: linear-gradient(transparent 62%, rgba(163,209,71,.45) 62%, rgba(163,209,71,.45) 92%, transparent 92%); color: var(--ga-green); }
.ga-range-all { margin-top: 26px !important; }
.ga-link-arrow a { font-weight: 700; text-decoration: none; display: inline-flex; gap: 6px; align-items: center; }
.ga-link-arrow a::after { content: ""; width: 1em; height: 1em; background: currentColor; -webkit-mask: var(--ga-i-arrow) center / contain no-repeat; mask: var(--ga-i-arrow) center / contain no-repeat; transition: transform .15s; }
.ga-link-arrow a:hover::after { transform: translateX(3px); }

/* hero */
.ga-hero { padding-block: 28px 48px; background: radial-gradient(1200px 500px at 85% -10%, rgba(163,209,71,.22), transparent 60%), var(--wp--preset--gradient--mist-fade); overflow: hidden; }
.ga-hero h1 { max-width: 15ch; }
.ga-hero-media { position: relative; }
.ga-hero-media .wp-block-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 22px; box-shadow: var(--ga-shadow); }
.ga-hero-card { position: absolute; left: 14px; right: 14px; bottom: -18px; display: flex; gap: 12px; align-items: center; background: #fff; border-radius: 14px; box-shadow: var(--ga-shadow); padding: 12px 14px; font-size: .9rem; margin: 0 !important; }
.ga-hero-card::before { content: ""; flex: none; width: 40px; height: 40px; border-radius: 12px; background: var(--ga-mist) var(--ga-i-camera) center / 20px no-repeat; }
.ga-hero-card strong { display: block; }

/* chips */
.ga-chips { display: flex; flex-wrap: nowrap; gap: 10px; overflow-x: auto; scrollbar-width: none; padding-block: 16px; border-block: 1px solid var(--ga-line); }
.ga-chips p { margin: 0; flex: none; }
.ga-chip, .ga-chips p:not(.ga-chips-label) { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; padding: 9px 14px; border-radius: 999px; background: var(--ga-sand); font-weight: 500; font-size: .92rem; }
.ga-chips p:not(.ga-chips-label)::before { content: ""; width: 1.05em; height: 1.05em; background: var(--ga-green); -webkit-mask: var(--ga-icon, var(--ga-i-check)) center / contain no-repeat; mask: var(--ga-icon, var(--ga-i-check)) center / contain no-repeat; }
.ga-chips-label { font-weight: 700; color: var(--ga-muted); font-size: .85rem; text-transform: uppercase; letter-spacing: .06em; align-self: center; white-space: nowrap; }
.ga-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.ga-pills p { margin: 0; }
.ga-pills a { display: inline-flex; padding: 9px 14px; border-radius: 999px; background: var(--ga-sand); color: var(--ga-ink); font-weight: 500; font-size: .92rem; text-decoration: none; border: 1px solid transparent; }
.ga-pills a:hover { border-color: var(--ga-green); color: var(--ga-green); }
.ga-dark .ga-pills a { background: rgba(255,255,255,.08); color: #fff; }
.ga-dark .ga-pills a:hover { border-color: var(--ga-lime); color: var(--ga-lime); }

/* category / card grid */
.ga-cards { display: grid !important; grid-template-columns: repeat(2, 1fr); gap: 12px !important; }
.ga-card { position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--ga-line); border-radius: var(--ga-radius); overflow: hidden; transition: box-shadow .2s, transform .2s; margin: 0 !important; }
.ga-card:hover { box-shadow: var(--ga-shadow); transform: translateY(-2px); }
.ga-card > * { margin-block: 0 !important; } /* no flow-layout gap between the image and the card body */
.ga-card .wp-block-image { position: relative; margin: 0; aspect-ratio: 4 / 3; background: #fff; overflow: hidden; }
.ga-card .wp-block-image img { position: absolute; inset: 10px; width: calc(100% - 20px); height: calc(100% - 20px); object-fit: contain; border-radius: 0; }
.ga-card.ga-card--photo .wp-block-image img { inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ga-card .ga-card-body { padding: 12px 14px 14px; border-top: 1px solid var(--ga-line); }
.ga-card h3 { font-size: 1rem; margin: 0 0 2px; }
.ga-card h3 a { color: var(--ga-ink); text-decoration: none; }
.ga-card h3 a::after { content: ""; position: absolute; inset: 0; } /* whole card clickable */
.ga-card .ga-meta { font-size: .85rem; color: var(--ga-muted); margin: 0; }

/* ---------- category panels (home): expanding photo panels, two rows of four ---------- */
:root {
	--ga-i-dumbbell: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.5 6.5v11M17.5 6.5v11M3 9v6M21 9v6M6.5 12h11'/%3E%3C/svg%3E");
	--ga-i-paw: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='5.5' cy='10' r='1.8'/%3E%3Ccircle cx='9.5' cy='5.5' r='1.8'/%3E%3Ccircle cx='14.5' cy='5.5' r='1.8'/%3E%3Ccircle cx='18.5' cy='10' r='1.8'/%3E%3Cpath d='M12 11c-2.8 0-5 3.2-5 5.6 0 1.6 1.2 2.4 2.6 2.4 1 0 1.6-.5 2.4-.5s1.4.5 2.4.5c1.4 0 2.6-.8 2.6-2.4 0-2.4-2.2-5.6-5-5.6z'/%3E%3C/svg%3E");
}
.ga-ic--dumbbell { --ga-icon: var(--ga-i-dumbbell); }
.ga-ic--paw { --ga-icon: var(--ga-i-paw); }
.ga-badges { position: absolute; top: 14px; left: 14px; right: 14px; margin: 0 !important; display: flex; flex-wrap: wrap; gap: 6px; z-index: 2; pointer-events: none; }
.ga-badge { display: inline-flex; align-items: center; padding: 6px 11px; border-radius: 999px; font-size: .68rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; line-height: 1; }
.ga-badge--light { background: rgba(255,255,255,.88); color: var(--ga-forest); backdrop-filter: blur(6px); box-shadow: 0 1px 4px rgba(0,0,0,.12); }
.ga-badge--dark { background: var(--ga-forest); color: #e8f5e9; }
/* phones and tablets: all eight in one swipeable row */
/* phones and tablets: all eight in one list of photo strips; the chosen one (is-open-m) opens with its text */
.ga-panels { display: flex; flex-direction: column; gap: 10px; }
.ga-panels-row { display: contents; }
.ga-panel { --open: 0; position: relative; isolation: isolate; flex: none; border-radius: 16px; overflow: hidden; background: var(--ga-forest); color: #fff; text-decoration: none; box-shadow: 0 6px 18px rgba(18,38,26,.14); }
@media (max-width: 959px) { /* heights only here: on desktop the panels stretch to the row */
	.ga-panel { height: 78px; transition: height .45s cubic-bezier(.25,.8,.25,1); }
	.ga-panel.is-open-m { --open: 1; height: 310px; }
}
.ga-panel-img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: var(--ga-pos-m, 50% 50%); border-radius: 0; transition: transform .8s ease; }
@media (min-width: 960px) { /* desktop focus; a zoom from the bottom lifts the product above the panel text */
	.ga-panel-img { object-position: var(--ga-pos, 50% 50%); transform-origin: var(--ga-origin, 50% 50%); transform: scale(var(--ga-zoom, 1)); }
	.ga-panel:hover .ga-panel-img { transform: scale(calc(var(--ga-zoom, 1) * 1.05)); }
}
.ga-panel::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(to top, rgba(5,16,10,.9) 0%, rgba(5,16,10,.62) 34%, rgba(5,16,10,.1) 66%, rgba(5,16,10,0) 100%); }
.ga-panel-body { position: absolute; left: 0; right: 0; bottom: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 22px 20px; }
.ga-panel-eyebrow { font-size: .7rem; font-weight: 800; letter-spacing: .09em; line-height: 1.35; text-transform: uppercase; color: var(--ga-a2); }
.ga-panel-title { margin: 0; color: #fff; font-size: calc(1.12rem + .5rem * var(--open)); line-height: 1.15; transition: font-size .45s ease; }
.ga-panel-text { color: rgba(255,255,255,.86); font-size: .9rem; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ga-panel-cta { display: inline-flex; align-items: center; gap: 7px; margin-top: 4px; padding: 9px 15px; border-radius: 999px; background: var(--ga-a); color: var(--ga-a-ink); font-size: .84rem; font-weight: 700; white-space: nowrap; }
.ga-panel-cta::after { content: ""; width: 14px; height: 14px; background: currentColor; -webkit-mask: var(--ga-i-arrow) center / contain no-repeat; mask: var(--ga-i-arrow) center / contain no-repeat; transition: transform .2s; }
.ga-panel:hover .ga-panel-img { transform: scale(1.05); }
.ga-panel:hover .ga-panel-cta::after { transform: translateX(3px); }
.ga-panel:focus-visible { outline: 3px solid var(--ga-lime); outline-offset: 3px; }
@media (max-width: 959px) {
	/* a closed strip: the name over a darker photo, a "+" in the range colour on the right */
	.ga-panel:not(.is-open-m) .ga-panel-eyebrow, .ga-panel:not(.is-open-m) .ga-panel-text, .ga-panel:not(.is-open-m) .ga-panel-cta { display: none; }
	.ga-panel:not(.is-open-m) .ga-panel-body { top: 0; justify-content: center; padding: 0 64px 0 18px; }
	.ga-panel:not(.is-open-m)::after { background: linear-gradient(90deg, rgba(5,16,10,.84) 0%, rgba(5,16,10,.55) 55%, rgba(5,16,10,.35) 100%); }
	.ga-panel:not(.is-open-m)::before { content: ""; position: absolute; z-index: 1; right: 16px; top: 50%; width: 34px; height: 34px; margin-top: -17px; border-radius: 50%; background: linear-gradient(#fff, #fff) center / 13px 2px no-repeat, linear-gradient(#fff, #fff) center / 2px 13px no-repeat, var(--ga-a); box-shadow: 0 2px 8px rgba(0,0,0,.25); }
	.ga-panel-title { font-size: calc(1.05rem + .45rem * var(--open)); }
	.ga-panel:hover .ga-panel-img { transform: none; }
}
@media (min-width: 640px) and (max-width: 959px) { .ga-panel { height: 86px; } .ga-panel.is-open-m { height: 380px; } }
/* desktop: two rows of four; one panel per row is open, the one under the pointer or keyboard focus widens */
@media (min-width: 960px) {
	.ga-panels { display: grid; gap: 14px; overflow: visible; padding: 0; margin-bottom: 0 !important; }
	.ga-panels-row { display: flex; gap: 14px; height: clamp(380px, 32vw, 460px); }
	.ga-panel { --open: 0; flex: 1 1 0; height: auto; min-width: 0; transition: flex-grow .6s cubic-bezier(.25,.8,.25,1); }
	.ga-panel.is-open, .ga-panels-row .ga-panel:hover, .ga-panels-row .ga-panel:focus-visible { --open: 1; flex-grow: 3.2; }
	.ga-panels-row:has(.ga-panel:hover) .ga-panel:not(:hover),
	.ga-panels-row:has(.ga-panel:focus-visible) .ga-panel:not(:focus-visible) { --open: 0; flex-grow: 1; }
}
/* narrower desktops: a closed panel shows only its eyebrow and title */
@media (min-width: 960px) and (max-width: 1199px) {
	.ga-panel .ga-panel-text, .ga-panel .ga-panel-cta { display: none; }
	.ga-panel.is-open .ga-panel-text, .ga-panels-row .ga-panel:hover .ga-panel-text, .ga-panel:focus-visible .ga-panel-text { display: -webkit-box; }
	.ga-panel.is-open .ga-panel-cta, .ga-panels-row .ga-panel:hover .ga-panel-cta, .ga-panel:focus-visible .ga-panel-cta { display: inline-flex; }
	.ga-panels-row:has(.ga-panel:hover) .ga-panel:not(:hover) .ga-panel-text,
	.ga-panels-row:has(.ga-panel:hover) .ga-panel:not(:hover) .ga-panel-cta { display: none; }
}
@media (prefers-reduced-motion: reduce) { .ga-panel, .ga-panel-img, .ga-panel-title { transition: none; } }

/* wide feature card (inclusive fitness) */
:root { --ga-i-access: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='4' r='2'/%3E%3Cpath d='M12 7v6h5l3 5'/%3E%3Cpath d='M9 10a6 6 0 1 0 7.4 8.2'/%3E%3C/svg%3E"); }
.ga-ic--access { --ga-icon: var(--ga-i-access); }
.ga-feature-card { display: grid !important; grid-template-columns: 1fr; margin-top: 22px !important; background: #fff; border: 1px solid var(--ga-line); border-radius: 18px; overflow: hidden; box-shadow: 0 1px 2px rgba(18,38,26,.05), 0 10px 30px rgba(18,38,26,.07); }
.ga-feature-card > * { margin: 0 !important; }
.ga-feature-media { position: relative; min-height: 240px; }
.ga-feature-media .wp-block-image { position: absolute; inset: 0; margin: 0 !important; }
.ga-feature-media img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
.ga-feature-body { padding: 24px 22px 26px; display: flex; flex-direction: column; justify-content: center; }
.ga-feature-body > * { margin-block: 0 0 12px !important; }
.ga-feature-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: .74rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ga-green); }
.ga-feature-eyebrow::before { content: ""; width: 18px; height: 18px; background: var(--ga-green); -webkit-mask: var(--ga-icon) center / contain no-repeat; mask: var(--ga-icon) center / contain no-repeat; }
.ga-feature-body h3 { font-size: clamp(1.35rem, 2.6vw, 1.75rem); }
.ga-feature-text { color: var(--ga-muted); font-size: .97rem; line-height: 1.65; max-width: 62ch; }
.ga-feature-chips { display: flex; flex-wrap: wrap; gap: 8px 22px; font-size: .88rem; font-weight: 600; margin-top: 4px !important; }
.ga-feature-chips span { display: inline-flex; align-items: center; gap: 7px; }
.ga-feature-chips span::before { content: ""; width: 18px; height: 18px; border-radius: 50%; background: var(--ga-mist) var(--ga-i-check) center / 11px no-repeat; box-shadow: inset 0 0 0 1.5px var(--ga-green); }
.ga-feature-actions { margin-top: 8px !important; }
.ga-feature-guide { font-size: .88rem; margin: 4px 0 0 !important; }
@media (min-width: 960px) {
	.ga-feature-card { grid-template-columns: 5fr 7fr; margin-top: 26px !important; }
	.ga-feature-media { min-height: 300px; }
	.ga-feature-body { padding: 34px 40px; }
}

/* six category cards (home): photo, title, text, Read More, green base line; whole card clickable */
.ga-cat-cards { display: grid !important; grid-template-columns: 1fr; gap: 20px !important; }
.ga-cat-card { position: relative; display: flex; flex-direction: column; margin: 0 !important; background: #fff; border-radius: var(--ga-radius); overflow: hidden; box-shadow: 0 1px 2px rgba(18,38,26,.06), 0 6px 18px rgba(18,38,26,.06); border-bottom: 3px solid var(--ga-green); transition: transform .2s ease, box-shadow .2s ease; }
.ga-cat-card:hover { transform: translateY(-3px); box-shadow: var(--ga-shadow); }
.ga-cat-card > * { margin-block: 0 !important; }
.ga-cat-card .wp-block-image { margin: 0; aspect-ratio: 3 / 2; overflow: hidden; }
.ga-cat-card .wp-block-image img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; transition: transform .4s ease; }
.ga-cat-card:hover .wp-block-image img { transform: scale(1.04); }
.ga-cat-card-body { display: flex; flex-direction: column; flex: 1; padding: 22px 22px 24px; text-align: center; }
.ga-cat-card-body > * { margin-block: 0 0 12px !important; }
.ga-cat-card h3 { font-size: 1.35rem; }
.ga-cat-card h3 a { color: var(--ga-ink); text-decoration: none; }
.ga-cat-card h3 a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.ga-cat-card-body p { color: var(--ga-muted); font-size: .95rem; line-height: 1.65; }
.ga-cat-card .ga-read-more { margin: auto 0 0 !important; padding-top: 6px; color: var(--ga-ink); font-weight: 700; font-size: .95rem; display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.ga-cat-card .ga-read-more::before { content: ""; width: 1em; height: 1em; background: var(--ga-green); -webkit-mask: var(--ga-i-arrow) center / contain no-repeat; mask: var(--ga-i-arrow) center / contain no-repeat; transition: transform .15s; }
.ga-cat-card:hover .ga-read-more { color: var(--ga-green); }
.ga-cat-card:hover .ga-read-more::before { transform: translateX(3px); }
@media (min-width: 640px) { .ga-cat-cards { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 960px) { .ga-cat-cards { grid-template-columns: repeat(3, 1fr); gap: 26px !important; } }

/* feature split image */
.ga-feature-img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 20px; }

/* steps */
.ga-steps { counter-reset: ga-step; display: grid !important; gap: 14px !important; }
.ga-steps > .wp-block-group { position: relative; background: #fff; border: 1px solid var(--ga-line); border-radius: var(--ga-radius); padding: 20px 20px 20px 72px; margin: 0 !important; }
.ga-steps > .wp-block-group::before { counter-increment: ga-step; content: counter(ga-step); position: absolute; left: 20px; top: 20px; width: 36px; height: 36px; border-radius: 12px; background: var(--ga-green); color: #fff; display: grid; place-items: center; font-weight: 700; }
.ga-steps h3 { margin: 0 0 4px; font-size: 1.08rem; }
.ga-steps p { margin: 0; color: var(--ga-muted); font-size: .97rem; }

/* ---------- How it works (home): step switcher, steps on the left and the chosen step with its photo on the right ---------- */
.ga-hiw { display: grid; gap: 10px; }
.ga-hiw-tab { display: flex; align-items: flex-start; gap: 14px; width: 100%; padding: 16px 18px; border: 1px solid var(--ga-line); border-radius: 16px; background: #fff; color: var(--ga-ink); font: inherit; text-align: left; cursor: pointer; transition: background .2s, border-color .2s, box-shadow .2s; }
.ga-hiw-tab:hover { border-color: #bcd9c0; }
.ga-hiw-tab:focus-visible { outline: 3px solid var(--ga-green); outline-offset: 2px; }
.ga-hiw-tab.is-active { background: #e6f3e8; border-color: #bcd9c0; box-shadow: 0 6px 18px rgba(18,38,26,.07); }
.ga-hiw-num { flex: none; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: #eef0ec; color: var(--ga-ink); font-weight: 700; transition: background .2s, color .2s; }
.ga-hiw-tab.is-active .ga-hiw-num { background: var(--ga-green); color: #fff; }
.ga-hiw-tab-text { display: flex; flex-direction: column; gap: 3px; padding-top: 5px; }
.ga-hiw-tab-text strong { font-size: 1.02rem; line-height: 1.3; }
.ga-hiw-tab.is-active .ga-hiw-tab-text strong { color: var(--ga-green); }
.ga-hiw-tab-text span { color: var(--ga-muted); font-size: .88rem; line-height: 1.45; }
.ga-hiw-panel { padding: 22px 20px 20px; border-radius: 18px; background: #fff; border: 1px solid var(--ga-line); box-shadow: 0 1px 2px rgba(18,38,26,.05), 0 10px 26px rgba(18,38,26,.07); animation: ga-hiw-in .35s ease; }
.ga-hiw-panel[hidden] { display: none; }
@keyframes ga-hiw-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.ga-hiw-panel > * { margin: 0; }
.ga-hiw-meta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 14px; }
.ga-hiw-stage { padding: 5px 11px; border-radius: 999px; background: #dcf2de; color: var(--ga-green-dark); font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.ga-hiw-label { color: var(--ga-muted); font-size: .82rem; font-weight: 600; }
.ga-hiw-title { margin-top: 14px !important; font-size: clamp(1.3rem, 2.4vw, 1.7rem); line-height: 1.2; }
.ga-hiw-text { margin-top: 8px !important; color: var(--ga-muted); font-size: .98rem; line-height: 1.6; max-width: 60ch; }
.ga-hiw-links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px !important; }
.ga-hiw-link { display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 0 16px; border-radius: 999px; background: var(--ga-green); color: #fff; font-size: .88rem; font-weight: 700; text-decoration: none; }
.ga-hiw-link:hover { background: var(--ga-green-dark); color: #fff; }
.ga-hiw-link--wa { background: #fff; color: var(--ga-ink); border: 2px solid #25D366; }
.ga-hiw-link--wa::before { content: ""; width: 1.15em; height: 1.15em; background: #25D366; -webkit-mask: var(--ga-i-wa) center / contain no-repeat; mask: var(--ga-i-wa) center / contain no-repeat; }
.ga-hiw-link--wa:hover { background: #f1fbf4; color: var(--ga-ink); }
.ga-hiw-photo { position: relative; margin: 18px 0 0 !important; border-radius: 14px; overflow: hidden; aspect-ratio: 16 / 9; background: var(--ga-mist); }
.ga-hiw-photo img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
.ga-hiw-photo figcaption { position: absolute; left: 12px; bottom: 12px; max-width: calc(100% - 24px); margin: 0; padding: 6px 12px; border-radius: 8px; background: rgba(8,22,14,.72); backdrop-filter: blur(4px); color: #fff; font-size: .8rem; font-weight: 600; }
.ga-hiw-tip { display: none; }
/* desktop: steps in the left column, the chosen step fills the right column */
@media (min-width: 960px) {
	.ga-hiw { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); grid-auto-rows: auto; column-gap: 26px; row-gap: 12px; align-items: start; }
	.ga-hiw-tab { grid-column: 1; padding: 18px 20px; }
	.ga-hiw-panel { grid-column: 2; grid-row: 1 / span 5; padding: 26px 26px 24px; }
	.ga-hiw-tip { grid-column: 1; display: flex; align-items: center; gap: 8px; margin: 2px 0 0; padding: 12px 16px; border-radius: 12px; background: rgba(255,255,255,.6); color: var(--ga-muted); font-size: .84rem; }
	.ga-hiw-tip::before { content: ""; flex: none; width: 16px; height: 16px; background: var(--ga-green); -webkit-mask: var(--ga-i-arrow) center / contain no-repeat; mask: var(--ga-i-arrow) center / contain no-repeat; transform: rotate(180deg); }
}
@media (prefers-reduced-motion: reduce) { .ga-hiw-panel { animation: none; } }

/* installations gallery */
.ga-gallery.wp-block-gallery { display: grid !important; grid-auto-flow: column; grid-auto-columns: 78%; gap: 12px !important; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 6px; }
.ga-gallery.wp-block-gallery .wp-block-image { width: auto !important; margin: 0 !important; scroll-snap-align: start; border-radius: var(--ga-radius); overflow: hidden; position: relative; }
.ga-gallery.wp-block-gallery .wp-block-image img { width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 0; }
.ga-gallery.wp-block-gallery .wp-block-image figcaption { position: absolute; inset: auto 0 0 0; margin: 0; padding: 30px 14px 12px; color: #fff; font-size: .88rem; font-weight: 500; text-align: left; background: linear-gradient(transparent, rgba(10,30,18,.82)); }

/* ---------- home: Recent installations, full-bleed photo + endless carousel ---------- */
/*
 * Cut-out spring riders on the seams above and below "Recent installations" (patterns/installations-carousel.php):
 * one object or a small group of three at each side, partly over the white and partly over the photo. A thin white
 * glow keeps their dark parts (spring bases) from disappearing into the dark photo. --ga-sh: the main object height.
 */
.ga-seam { --ga-sh: 96px; position: relative; z-index: 5; width: 100%; max-width: none !important; height: 0; margin: 0 !important; pointer-events: none; }
.ga-seam-side { position: absolute; top: 0; display: flex; align-items: flex-end; gap: 2px; transform: translateY(-40%); }
.ga-seam--bottom .ga-seam-side { transform: translateY(-34%); }
.ga-seam-left { left: 4px; }
.ga-seam-right { right: 4px; }
.ga-seam-obj { display: block; width: auto; height: var(--ga-sh); filter: drop-shadow(0 0 1.5px rgba(255,255,255,.95)) drop-shadow(0 0 10px rgba(255,255,255,.35)) drop-shadow(0 12px 16px rgba(6,24,14,.35)); animation: ga-seam-float 6s ease-in-out infinite; animation-delay: calc(var(--ga-k, 0) * -1.7s); }
.ga-seam-right .ga-seam-obj { animation-delay: calc(-3s - var(--ga-k, 0) * 1.7s); }
/* a group of three small ones: different sizes, the middle one a little lower */
.ga-seam-group .ga-seam-obj { height: calc(var(--ga-sh) * .6); }
.ga-seam-group .ga-seam-obj:nth-child(2) { height: calc(var(--ga-sh) * .5); margin-bottom: calc(var(--ga-sh) * -.08); }
.ga-seam-group .ga-seam-obj:nth-child(3) { height: calc(var(--ga-sh) * .56); }
@keyframes ga-seam-float { 0%, 100% { translate: 0 0; } 50% { translate: 0 -6px; } }
@media (min-width: 640px) {
	.ga-seam { --ga-sh: 150px; }
	.ga-seam--top .ga-seam-side { transform: translateY(-36%); }
	.ga-seam-left { left: 1.5%; } .ga-seam-right { right: 1.5%; }
	.ga-seam--top + .ga-inst { padding-top: 110px; }
	.ga-seam-group { gap: 6px; }
}
@media (min-width: 960px) { .ga-seam { --ga-sh: 210px; } .ga-seam--top + .ga-inst { padding-top: 150px; } }
@media (min-width: 1500px) { .ga-seam { --ga-sh: 230px; } .ga-seam-left { left: calc((100% - 1240px) / 2 - 200px); } .ga-seam-right { right: calc((100% - 1240px) / 2 - 200px); } .ga-seam-group.ga-seam-right { right: calc((100% - 1240px) / 2 - 300px); } }
@media (prefers-reduced-motion: reduce) { .ga-seam-obj { animation: none; } }
.ga-inst { position: relative; overflow: hidden; background: var(--ga-forest); color: #fff; padding-block: 64px 56px; margin-top: 0 !important; margin-bottom: 0 !important; }
.ga-inst > * { margin-block: 0 !important; }
.ga-inst-bg { position: absolute !important; inset: 0; z-index: 0; margin: 0 !important; }
.ga-inst-bg img { width: 100%; height: 100%; object-fit: cover; border-radius: 0 !important; }
.ga-inst::before { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(180deg, rgba(6,24,14,.78) 0%, rgba(6,24,14,.6) 45%, rgba(6,24,14,.85) 100%); }
.ga-inst-head, .ga-marquee { position: relative; z-index: 2; }
.ga-inst-head h2 { color: #fff; margin-block: .15em .3em; text-shadow: 0 2px 18px rgba(0,0,0,.35); }
.ga-inst-head .is-style-eyebrow { color: var(--ga-lime); }
.ga-inst-lead { color: #e3efe5; margin: 0; max-width: 46ch; }
.ga-inst-head .ga-gallery-more { margin: 0 !important; display: flex; flex-wrap: wrap; gap: 10px; }
/* the quote button beside "View all photos" (lime, like the hero's main button) */
.ga-inst-quote { display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 22px; border-radius: 999px; background: var(--ga-lime); color: var(--ga-forest); font: 700 1rem var(--wp--preset--font-family--dm-sans); text-decoration: none; transition: background .15s; }
.ga-inst-quote::before { content: ""; width: 1.1em; height: 1.1em; background: currentColor; -webkit-mask: var(--ga-i-quote) center / contain no-repeat; mask: var(--ga-i-quote) center / contain no-repeat; }
.ga-inst-quote:hover { background: #b6e05a; color: var(--ga-forest); }
.ga-inst-quote:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.ga-inst-head .ga-lb-open { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.45); color: #fff; backdrop-filter: blur(4px); }
.ga-inst-head .ga-lb-open:hover { background: rgba(255,255,255,.22); border-color: #fff; color: #fff; }
.ga-marquee { margin-top: 30px !important; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; overscroll-behavior-x: contain; scroll-behavior: auto; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 5%, #000 95%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 5%, #000 95%, transparent 100%); }
.ga-marquee::-webkit-scrollbar { display: none; }
.ga-marquee-track { display: flex !important; gap: 16px; width: max-content; padding-bottom: 14px; }
.ga-marquee-track > * { margin: 0 !important; }
.ga-mq-item { position: relative; flex: none; width: 260px; height: 195px; border-radius: 16px; overflow: hidden; cursor: zoom-in; box-shadow: 0 10px 30px rgba(0,0,0,.35); background: #0d2a19; }
.ga-mq-item img { width: 100% !important; height: 100% !important; object-fit: cover; border-radius: 0 !important; transition: transform .45s ease; }
.ga-mq-item:hover img { transform: scale(1.05); }
.ga-mq-item figcaption { position: absolute; inset: auto 0 0 0; margin: 0 !important; padding: 28px 12px 10px; color: #fff; font-size: .8rem; font-weight: 500; text-align: left; background: linear-gradient(transparent, rgba(6,24,14,.85)); }
.ga-mq-item:focus-visible { outline: 3px solid var(--ga-lime); outline-offset: 3px; }
@media (min-width: 960px) {
	.ga-inst { padding-block: 96px 84px; }
	.ga-marquee { margin-top: 40px !important; }
	.ga-marquee-track { gap: 22px; }
	.ga-mq-item { width: 400px; height: 300px; border-radius: 18px; }
	.ga-mq-item figcaption { font-size: .88rem; padding: 34px 16px 14px; }
}
@media (prefers-reduced-motion: reduce) {
}

/* ---------- hero stats bar: icon + big number + label, four items with dividers ---------- */
:root { --ga-i-box: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z'/%3E%3Cpolyline points='3.27 6.96 12 12.01 20.73 6.96'/%3E%3Cline x1='12' y1='22.08' x2='12' y2='12'/%3E%3C/svg%3E"); }
.ga-ic--box { --ga-icon: var(--ga-i-box); }
/* dark translucent bar over the hero photo */
.ga-stats { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 1fr; /* every box the same size */ margin-top: 44px; background: rgba(6,24,14,.55); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid rgba(255,255,255,.14); border-radius: 18px; overflow: hidden; }
.ga-stat { position: relative; z-index: 1; display: flex; align-items: center; gap: 12px; padding: 14px 14px; color: #fff; text-decoration: none; min-width: 0; }
.ga-stat:nth-child(2n) { border-left: 1px solid rgba(255,255,255,.12); }
.ga-stat:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.12); }
a.ga-stat:hover { background: rgba(255,255,255,.06); color: #fff; }
.ga-stat-ic { flex: none; width: 30px; height: 30px; background: var(--ga-lime); -webkit-mask: var(--ga-icon) center / contain no-repeat; mask: var(--ga-icon) center / contain no-repeat; }
.ga-stat-ic--g { -webkit-mask: none; mask: none; background: #fff; border-radius: 50%; display: grid; place-items: center; }
/*
 * "Since 2011": a clock (a ring and two hands instead of the clock icon). theme.js turns its hands in the same frames
 * as the numbers count up (--ga-clock on the bar: 0 wound back, 1 at rest), so they stop together; then it flashes
 * with them (.is-done).
 */
.ga-stat-ic.ga-ic--clock { position: relative; -webkit-mask: none; mask: none; background: none; box-sizing: border-box; color: var(--ga-lime); border: 2.5px solid currentColor; border-radius: 50%; scale: .86; }
.ga-stat-ic.ga-ic--clock::before, .ga-stat-ic.ga-ic--clock::after {
	content: ""; position: absolute; left: calc(50% - 1.25px); bottom: 50%; width: 2.5px; border-radius: 2px; background: currentColor;
	transform-origin: 50% 100%; transform: rotate(calc(var(--ga-hand, 0deg) - var(--ga-turns) * (1 - var(--ga-clock, 1)))); /* forwards, as the years count up */
}
.ga-stat-ic.ga-ic--clock::before { height: 36%; --ga-turns: 720deg; } /* minute hand: at 12, twice round while counting */
.ga-stat-ic.ga-ic--clock::after { height: 24%; --ga-hand: 120deg; --ga-turns: 360deg; } /* hour hand: at 4, once round */
.ga-stat.is-done .ga-stat-ic.ga-ic--clock { animation: ga-clock-flash .7s ease-out 1; } /* with its own number */
/* laptops and desktops: each stat pops as its turn comes (theme.js runs them one after the other, left to right) */
@media (min-width: 960px) {
	.ga-stat.is-pop > * { animation: ga-stat-pop .55s ease-out 1; }
}
@keyframes ga-stat-pop {
	0% { transform: none; }
	35% { transform: translateY(-5px) scale(1.07); }
	65% { transform: translateY(1px) scale(.98); }
	100% { transform: none; }
}
@keyframes ga-clock-flash {
	0%, 15% { color: #fff; filter: drop-shadow(0 0 4px #fff) drop-shadow(0 0 10px var(--ga-lime)) drop-shadow(0 0 22px var(--ga-lime)); transform: scale(1.14); }
	100% { color: var(--ga-lime); filter: none; transform: scale(1); }
}
.ga-stat-num { display: block; font-size: 1.3rem; font-weight: 700; line-height: 1.1; letter-spacing: -.01em; }
.ga-stat-star { color: #fbbc05; font-size: .95em; }
.ga-count { display: inline-block; font-variant-numeric: tabular-nums; } /* fixed width while it counts up */
/* when the count reaches its number: one flash of light, like a torch, then it fades back */
.ga-count.is-done { animation: ga-count-flash .7s ease-out 1; transform-origin: left center; }
@keyframes ga-count-flash {
	0%, 15% { color: #fff; text-shadow: 0 0 8px #fff, 0 0 20px var(--ga-lime), 0 0 40px var(--ga-lime), 0 0 70px rgba(163,209,71,.8); transform: scale(1.14); }
	100% { color: inherit; text-shadow: none; transform: scale(1); }
}
.ga-stat-label { display: block; font-size: .78rem; color: #c9d8cc; line-height: 1.3; margin-top: 2px; text-wrap: balance; } /* even lines, no word left alone */
/* under the installations stat: the neighbouring countries supplied (supply only), full names on hover */
.ga-stat-sub { display: block; margin-top: 4px; font-size: .72rem; line-height: 1.35; color: #9fb7a5; }
.ga-stat-sub abbr { color: #fff; font-weight: 700; text-decoration: none; cursor: help; }
@media (max-width: 599px) {
	/* phones: the two hero buttons stacked, full width and the same height */
	.ga-hs-buttons { margin-block: 20px 16px !important; flex-direction: column; align-items: stretch !important; gap: 10px !important; }
	.ga-hs-buttons .wp-block-button { width: 100%; }
	.ga-hs-buttons .wp-block-button__link { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 52px; box-sizing: border-box; }
	.ga-hs-content { padding-top: 118px !important; }
	.ga-stat { padding: 12px; gap: 10px; }
	.ga-stat-ic { width: 26px; height: 26px; }
	.ga-stat-num { font-size: clamp(1.05rem, 4.9vw, 1.3rem); white-space: nowrap; } /* "Since 2011" and "Nationwide" on one line */
	/* phones (two per row): the countries under "Supply to", on one line or two even lines (stats.php keeps each code with its dot) */
	.ga-stat-codes { display: block; font-size: .66rem; word-spacing: -.08em; text-wrap: balance; }
}
@media (max-width: 399px) { .ga-stat { padding: 12px 10px; gap: 8px; } }
/*
 * Phones and tablets: the stats bar sits on the hero's bottom edge (like eyaz.co.il), about half over the photo and
 * half over the section below, opaque so it reads on white. theme.js sets --ga-stats-h (the bar's height), which
 * gives the next section room for the lower half.
 */
@media (max-width: 959px) {
	/* as tall as its content (not the full screen), so no empty band of photo opens above the eyebrow */
	.ga-hs { overflow: visible; min-height: 0; }
	.ga-hs-content { padding-top: 118px !important; }
	.ga-hs-slides { overflow: hidden; }
	.ga-hs-content { padding-bottom: 0 !important; }
	/* 56 px under the buttons once moved down; the bar's dark colour made opaque (half of it is over white) */
	.ga-stats { transform: translateY(50%); margin-top: calc(56px - var(--ga-stats-h, 166px) / 2); margin-bottom: 0; background: #14231a; box-shadow: 0 18px 36px rgba(6,24,14,.28); }
	.ga-hs-progress { display: none; } /* phones and tablets: no slide progress bars */
	.ga-hs + .ga-section { padding-top: calc(56px + var(--ga-stats-h, 166px) / 2); }
}
@media (min-width: 960px) {
	/* columns as wide as their text needs (the installations stat has the most), clear of the buttons (the margins collapse: this is the gap) */
	.ga-stats { grid-template-columns: repeat(4, auto); max-width: 1040px; margin-top: 72px; }
	.ga-stat-sub { white-space: nowrap; }
	.ga-stat { padding: 18px 22px; gap: 14px; }
	.ga-stat + .ga-stat { border-left: 1px solid rgba(255,255,255,.12); }
	.ga-stat:nth-child(n+3) { border-top: 0; }
	.ga-stat-ic { width: 34px; height: 34px; }
	.ga-stat-num { font-size: 1.55rem; }
	.ga-stat-label { font-size: .82rem; }
}

/* ---------- Google reviews: stars, hero badge, summary card and carousel ---------- */
.ga-stars { display: inline-block; font-size: 1em; line-height: 1; letter-spacing: 1px; background: linear-gradient(90deg, #fbbc05 calc(var(--ga-r, 5) / 5 * 100%), rgba(160,170,160,.45) 0); -webkit-background-clip: text; background-clip: text; color: transparent; }
.ga-g { flex: none; display: block; }
.ga-rating-badge { margin: 0 0 18px !important; }
.ga-rating-badge a { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px 6px 6px; border-radius: 999px; background: rgba(6,24,14,.5); backdrop-filter: blur(6px); color: #fff; text-decoration: none; font-size: .9rem; border: 1px solid rgba(255,255,255,.18); transition: background .15s; }
.ga-rating-badge a:hover { background: rgba(6,24,14,.7); color: #fff; }
.ga-rating-badge .ga-g-wrap { width: 26px; height: 26px; border-radius: 50%; background: #fff; display: grid; place-items: center; }
.ga-rating-badge strong { font-size: 1rem; }
.ga-rating-badge .ga-stars { font-size: .95rem; }
.ga-rating-count { opacity: .9; }
.ga-reviews { background: radial-gradient(800px 380px at 100% 0%, rgba(60,182,211,.08), transparent 60%), #fff; }
/* reviews wall: centred heading, rating badge with a shine sweep, two rows moving in opposite directions */
.ga-rv-title { text-align: center; }
.ga-rv, .ga-rv * { box-sizing: border-box; }
.ga-rv { display: flex; flex-direction: column; align-items: center; }
.ga-rv-badge { position: relative; overflow: hidden; display: inline-flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px 14px; padding: 12px 22px; border-radius: 16px; background: #fff; border: 1px solid var(--ga-line); box-shadow: 0 1px 2px rgba(18,38,26,.05), 0 12px 30px rgba(18,38,26,.08); }
.ga-rv-badge::after { content: ""; position: absolute; top: 0; left: -60%; width: 45%; height: 100%; background: linear-gradient(100deg, transparent, rgba(255,255,255,.85) 50%, transparent); transform: skewX(-18deg); pointer-events: none; animation: ga-rv-shine 4.5s ease-in-out infinite; }
@keyframes ga-rv-shine { 0%, 65% { left: -60%; } 80%, 100% { left: 140%; } }
.ga-rv-score { display: inline-flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.ga-rv-num { font-size: 1.9rem; font-weight: 800; line-height: 1; color: var(--ga-ink); }
.ga-rv-badge .ga-stars { font-size: 1rem; }
.ga-rv-based { font-size: .9rem; color: var(--ga-muted); }
/* the wall runs edge to edge and fades out at both sides */
.ga-reviews { overflow: hidden; }
.ga-rv-wall { width: 100vw; margin: 40px 0 0; display: flex; flex-direction: column; gap: 0; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.ga-rv-row { position: relative; display: flex; overflow-x: auto; overflow-y: hidden; padding: 2px 0 16px; scrollbar-width: none; overscroll-behavior-x: contain; scroll-behavior: auto; }
.ga-rv-row::-webkit-scrollbar { display: none; }
.ga-rv-set { flex: none; display: flex; align-items: stretch; gap: 18px; padding-right: 18px; }
.ga-rv-card { flex: 0 0 330px; width: 330px; display: flex; flex-direction: column; gap: 10px; padding: 18px 18px 16px; border-radius: 16px; background: #fff; border: 1px solid var(--ga-line); box-shadow: 0 1px 2px rgba(18,38,26,.04), 0 8px 22px rgba(18,38,26,.06); }
.ga-rv-head { display: flex; align-items: center; gap: 10px; }
.ga-rv-avatar { width: 40px; height: 40px; border-radius: 50%; flex: none; display: grid; place-items: center; color: #fff; font-weight: 800; font-size: 1rem; }
.ga-rv-name { margin-right: auto; min-width: 0; font-size: .92rem; color: var(--ga-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ga-rv-card .ga-stars { font-size: .95rem; }
.ga-rv-text { margin: 0; padding: 0; border: 0; font-size: .9rem; line-height: 1.6; color: #3f4a44; }
.ga-rv-text p { margin: 0; display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden; }
.ga-rv-card.has-photo .ga-rv-text p { -webkit-line-clamp: 3; }
/* moving strips (reviews wall, installation photos): theme.js wraps them and adds the side arrows */
.ga-ticker { position: relative; z-index: 2; }
.ga-rv-row > *, .ga-marquee > * { transform: translateX(calc(var(--ga-frac, 0) * -1px)); } /* sub-pixel part of the position */
.ga-rv > .ga-ticker { width: 100vw; margin-top: 40px; }
.ga-ticker > .ga-rv-wall { width: 100%; margin-top: 0; }
.ga-inst > .ga-ticker { margin-top: 30px !important; }
.ga-ticker > .ga-marquee { margin-top: 0 !important; }
.ga-ticker-btn { position: absolute; top: 50%; z-index: 3; width: 48px; height: 48px; margin-top: -32px; padding: 0; border: 0; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,.94); color: var(--ga-ink); box-shadow: 0 6px 20px rgba(6,24,14,.25); cursor: pointer; transition: transform .15s, color .15s; }
.ga-ticker-btn::before { content: ""; width: 18px; height: 18px; background: currentColor; -webkit-mask: var(--ga-i-arrow) center / contain no-repeat; mask: var(--ga-i-arrow) center / contain no-repeat; }
.ga-ticker-prev { left: 20px; }
.ga-ticker-prev::before { transform: rotate(180deg); }
.ga-ticker-next { right: 20px; }
.ga-ticker-btn:hover { color: var(--ga-green); transform: scale(1.07); }
.ga-ticker-btn:focus-visible { outline: 3px solid var(--ga-lime); outline-offset: 3px; }
@media (max-width: 639px) { .ga-ticker-btn { display: none; } .ga-rv > .ga-ticker { margin-top: 30px; } } /* phones swipe */
@media (min-width: 960px) { .ga-inst > .ga-ticker { margin-top: 40px !important; } }
/* the customer's own photo at the top of the card */
.ga-rv-photos { margin: -8px -8px 2px; }
.ga-rv-photo { position: relative; display: block; width: 100%; aspect-ratio: 16 / 10; padding: 0; border: 0; border-radius: 12px; overflow: hidden; background: var(--ga-mist); cursor: zoom-in; }
.ga-rv-photo img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.ga-rv-photo:hover img { transform: scale(1.04); }
.ga-rv-photo:focus-visible { outline: 3px solid var(--ga-green); outline-offset: 2px; }
.ga-rv-photo-count { position: absolute; right: 8px; bottom: 8px; display: inline-flex; align-items: center; gap: 5px; padding: 4px 9px; border-radius: 999px; background: rgba(8,22,14,.7); backdrop-filter: blur(4px); color: #fff; font-size: .74rem; font-weight: 700; }
.ga-rv-photo-count::before { content: ""; width: 13px; height: 13px; background: currentColor; -webkit-mask: var(--ga-i-camera) center / contain no-repeat; mask: var(--ga-i-camera) center / contain no-repeat; }
.ga-lb.is-single .ga-lb-prev, .ga-lb.is-single .ga-lb-next, .ga-lb.is-single .ga-lb-count { display: none; } /* a review with one photo */
.ga-rv-all { margin: 34px 0 0 !important; }
.ga-rv-all a { display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 24px; border-radius: 999px; border: 2px solid var(--ga-line); background: #fff; color: var(--ga-ink); font-weight: 700; font-size: .95rem; text-decoration: none; transition: border-color .15s, color .15s; }
.ga-rv-all a::after { content: ""; width: 14px; height: 14px; background: currentColor; -webkit-mask: var(--ga-i-arrow) center / contain no-repeat; mask: var(--ga-i-arrow) center / contain no-repeat; }
.ga-rv-all a:hover { border-color: var(--ga-green); color: var(--ga-green); }
@media (max-width: 639px) {
	.ga-rv-card { flex-basis: 280px; width: 280px; }
	.ga-rv-wall { margin-top: 30px; }
	.ga-rv-row { padding-bottom: 14px; }
	.ga-rv-set { gap: 14px; padding-right: 14px; }
}
@media (prefers-reduced-motion: reduce) {
	.ga-rv-badge::after { animation: none; display: none; }
}

/* gallery: clickable photos + lightbox */
.ga-gallery.wp-block-gallery .wp-block-image { cursor: zoom-in; }
.ga-gallery.wp-block-gallery .wp-block-image img { transition: transform .4s ease; }
.ga-gallery.wp-block-gallery .wp-block-image:hover img { transform: scale(1.04); }
.ga-gallery.wp-block-gallery .wp-block-image::after { content: ""; position: absolute; top: 12px; right: 12px; width: 36px; height: 36px; border-radius: 50%; background: rgba(6,24,14,.55) var(--ga-i-camera) center / 18px no-repeat; filter: invert(1); opacity: 0; transition: opacity .2s; }
.ga-gallery.wp-block-gallery .wp-block-image:hover::after, .ga-gallery.wp-block-gallery .wp-block-image:focus-visible::after { opacity: .9; }
.ga-gallery.wp-block-gallery .wp-block-image:focus-visible { outline: 3px solid var(--ga-lime); outline-offset: 2px; }
.ga-gallery-more { text-align: center; margin-top: 22px !important; }
.ga-lb-open { display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 22px; border-radius: 999px; border: 2px solid var(--ga-line); background: #fff; color: var(--ga-ink); font: 700 1rem var(--wp--preset--font-family--dm-sans); cursor: pointer; transition: border-color .15s, color .15s; }
.ga-lb-open::before { content: ""; width: 1.1em; height: 1.1em; background: currentColor; -webkit-mask: var(--ga-i-camera) center / contain no-repeat; mask: var(--ga-i-camera) center / contain no-repeat; }
.ga-lb-open:hover { border-color: var(--ga-green); color: var(--ga-green); }
.ga-lb { position: fixed; inset: 0; z-index: 300; display: none; align-items: center; justify-content: center; background: rgba(5,14,9,.95); padding: 56px 12px 24px; }
.ga-lb.is-open { display: flex; animation: ga-lb-in .2s ease; }
@keyframes ga-lb-in { from { opacity: 0; } to { opacity: 1; } }
.ga-lb-fig { margin: 0; width: 100%; max-width: 1400px; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.ga-lb-fig img { max-width: 100%; max-height: calc(100% - 48px); width: auto; height: auto; object-fit: contain; border-radius: 10px; box-shadow: 0 20px 60px rgba(0,0,0,.5); }
.ga-lb-fig figcaption { display: flex; justify-content: space-between; gap: 16px; width: 100%; max-width: 1000px; margin-top: 14px; color: #e3efe5; font-size: .95rem; }
.ga-lb-count { color: #9fb7a5; white-space: nowrap; }
.ga-lb button { position: absolute; display: grid; place-items: center; border: 0; border-radius: 50%; background: rgba(255,255,255,.12); color: #fff; cursor: pointer; transition: background .15s; }
.ga-lb button:hover { background: rgba(255,255,255,.25); }
.ga-lb button:focus-visible { outline: 3px solid var(--ga-lime); outline-offset: 2px; }
.ga-lb button::before { content: ""; width: 22px; height: 22px; background: currentColor; -webkit-mask: var(--ga-i-arrow) center / contain no-repeat; mask: var(--ga-i-arrow) center / contain no-repeat; }
.ga-lb-close { top: 12px; right: 12px; width: 46px; height: 46px; }
.ga-lb-close::before { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E") center / contain no-repeat !important; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E") center / contain no-repeat !important; }
.ga-lb-prev, .ga-lb-next { top: 50%; width: 48px; height: 48px; margin-top: -24px; z-index: 2; }
.ga-lb-prev { left: 10px; } .ga-lb-next { right: 10px; }
.ga-lb .ga-lb-prev, .ga-lb .ga-lb-next { background: rgba(0,0,0,.5); box-shadow: 0 2px 10px rgba(0,0,0,.35); } /* visible over light photos */
.ga-lb-prev::before { transform: rotate(180deg); }
html.ga-lb-lock { overflow: hidden; }
html.ga-lb-lock .ga-wa-float { display: none !important; }
@media (min-width: 960px) {
	.ga-lb { padding: 64px 90px 32px; }
	.ga-lb-prev, .ga-lb-next { width: 56px; height: 56px; margin-top: -28px; }
	.ga-lb-prev { left: 22px; } .ga-lb-next { right: 22px; }
}

/* slim country strip (inside How it works) */
.ga-country-strip { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin-top: 14px !important; font-size: .9rem; }
.ga-country-strip-label { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; color: var(--ga-muted); margin-right: 4px; }
.ga-country-strip-label::before { content: ""; width: 1.1em; height: 1.1em; background: var(--ga-green); -webkit-mask: var(--ga-i-truck) center / contain no-repeat; mask: var(--ga-i-truck) center / contain no-repeat; }
.ga-country-strip a, .ga-country-strip > span:not(.ga-country-strip-label) { padding: 6px 12px; border-radius: 999px; background: #fff; border: 1px solid var(--ga-line); color: var(--ga-ink); font-weight: 600; text-decoration: none; }
.ga-country-strip a:hover { border-color: var(--ga-green); color: var(--ga-green); }

/* countries */
.ga-countries { display: flex; flex-wrap: wrap; gap: 10px; }
.ga-countries p { margin: 0; }
.ga-countries a, .ga-countries span { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 999px; background: #fff; border: 1px solid var(--ga-line); font-weight: 700; text-decoration: none; color: var(--ga-ink); }
.ga-countries a:hover { border-color: var(--ga-green); color: var(--ga-green); }
.ga-countries a::before, .ga-countries span::before { content: ""; width: 1.05em; height: 1.05em; background: currentColor; -webkit-mask: var(--ga-i-globe) center / contain no-repeat; mask: var(--ga-i-globe) center / contain no-repeat; }

/* guides (query loop) */
.ga-guides .wp-block-post-template { display: grid !important; gap: 16px; }
.ga-guides .wp-block-post { position: relative; border: 1px solid var(--ga-line); border-radius: var(--ga-radius); overflow: hidden; background: #fff; transition: box-shadow .2s; margin: 0; }
.ga-guides .wp-block-post:hover { box-shadow: var(--ga-shadow); }
.ga-guides .wp-block-post-featured-image { margin: 0; aspect-ratio: 16 / 9; }
.ga-guides .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
.ga-guides .wp-block-post-title { font-size: 1.08rem; margin: 6px 18px 20px; }
.ga-guides .wp-block-post-title a { color: var(--ga-ink); text-decoration: none; }
.ga-guides .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; }
.ga-guides .wp-block-post-terms { margin: 16px 18px 0; font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.ga-guides .wp-block-post-terms a { text-decoration: none; color: var(--ga-green); position: relative; z-index: 1; }

/* CTA band */
.ga-cta-band { position: relative; overflow: hidden; border-radius: 24px; padding: 34px 24px !important; background: var(--wp--preset--gradient--forest); color: #fff; }
.ga-cta-band::after { content: ""; position: absolute; right: -80px; top: -80px; width: 260px; height: 260px; border-radius: 50%; background: radial-gradient(circle, rgba(163,209,71,.35), transparent 70%); pointer-events: none; }
.ga-cta-band h2 { color: #fff; margin: 0; }
.ga-cta-band p { margin: 0; color: #c9e0cd; }

/* footer */
.ga-footer { background: var(--ga-sand); font-size: .95rem; }
/* the footer's 56 px top margin separates it from plain text; after a full-width coloured section (the quote form on
   home, the guides under posts) it only left a white strip */
.wp-site-blocks > main:has(> .alignfull:is(.has-background, .ga-quote):last-child, > .wp-block-post-content:last-child > .alignfull:is(.has-background, .ga-quote):last-child) + footer .ga-footer { margin-top: 0 !important; }
.ga-footer h2, .ga-footer h4 { font-size: .85rem !important; text-transform: uppercase; letter-spacing: .08em; color: var(--ga-muted); margin-bottom: 12px; }
.ga-footer ul:not(.wp-block-social-links) { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.ga-footer .wp-block-social-links { gap: 8px; }
.ga-footer .wp-block-social-links .wp-social-link { width: 40px; height: 40px; display: grid; place-items: center; }
.ga-footer a { color: var(--ga-ink); text-decoration: none; }
.ga-footer a:hover { color: var(--ga-green); }
.ga-footer .ga-contact li { display: flex; align-items: center; gap: 10px; }
.ga-footer .ga-contact li::before { content: ""; width: 1.1em; height: 1.1em; background: var(--ga-green); -webkit-mask: var(--ga-icon) center / contain no-repeat; mask: var(--ga-icon) center / contain no-repeat; }
.ga-footer .ga-contact li:nth-child(1) { --ga-icon: var(--ga-i-phone); } .ga-footer .ga-contact li:nth-child(2) { --ga-icon: var(--ga-i-wa); }
.ga-footer .ga-contact li:nth-child(2)::before { background: #25D366; }
.ga-footer .ga-contact li:nth-child(3) { --ga-icon: var(--ga-i-mail); }
.ga-footer .ga-contact li:nth-child(4) { --ga-icon: var(--ga-i-clock); } .ga-footer .ga-contact li:nth-child(5) { --ga-icon: var(--ga-i-pin); }
.ga-footer-bottom { border-top: 1px solid var(--ga-line); padding-top: 20px; color: var(--ga-muted); font-size: .85rem; }
.ga-footer .wp-block-social-links .wp-social-link { background: #fff !important; color: var(--ga-ink) !important; border: 1px solid var(--ga-line); border-radius: 12px; }

/* ---------- page header (inner pages) ---------- */
.ga-page-head { padding-block: 18px 32px; background: var(--wp--preset--gradient--mist-fade); }
.ga-breadcrumbs, .woocommerce-breadcrumb, .wp-block-woocommerce-breadcrumbs { font-size: .88rem; color: var(--ga-muted); }
.ga-breadcrumbs a, .woocommerce-breadcrumb a, .wp-block-woocommerce-breadcrumbs a { color: var(--ga-muted); text-decoration: none; }

/* ---------- WooCommerce: catalogue ---------- */
.ga-facts { list-style: none; padding: 0; display: grid; gap: 10px; }
.ga-facts li { display: flex; gap: 10px; align-items: center; font-weight: 500; font-size: .95rem; }
.ga-facts li::before { content: ""; width: 1.1em; height: 1.1em; flex: none; background: var(--ga-green); -webkit-mask: var(--ga-icon, var(--ga-i-check)) center / contain no-repeat; mask: var(--ga-icon, var(--ga-i-check)) center / contain no-repeat; }
.ga-subcats { display: flex; flex-wrap: nowrap !important; gap: 8px; overflow-x: auto; scrollbar-width: none; padding-bottom: 18px; }
.ga-subcats a { white-space: nowrap; gap: 6px; }
.ga-pills a[aria-current] { background: var(--ga-green); color: #fff; }
.ga-pills a .ga-count-n { color: var(--ga-muted); font-size: .85em; }
.ga-pills a[aria-current] .ga-count-n { color: #cfe8d1; }
.ga-cat-photo { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 18px; }
.wc-block-product-template, .wp-block-woocommerce-product-template { gap: 12px !important; }
.wc-block-product, .wp-block-woocommerce-product-template > li { position: relative; display: flex !important; flex-direction: column; background: #fff; border: 1px solid var(--ga-line); border-radius: var(--ga-radius); overflow: hidden; transition: box-shadow .2s; }
.wc-block-product:hover { box-shadow: var(--ga-shadow); }
.wc-block-product .wc-block-components-product-image { margin: 0 !important; aspect-ratio: 1; display: grid; place-items: center; padding: 12px; background: #fff; }
.wc-block-product .wc-block-components-product-image img { width: 100% !important; height: 100% !important; object-fit: contain !important; }
.wc-block-product .wp-block-post-title { font-size: .98rem !important; margin: 12px 14px 0 !important; text-align: left !important; border-top: 1px solid var(--ga-line); padding-top: 12px; }
.wc-block-product .wp-block-post-title a { color: var(--ga-ink); text-decoration: none; }
.wc-block-product .ga-card-actions, .wc-block-product .wp-block-buttons { margin: auto 14px 14px !important; }
.wc-block-product .wp-block-post-terms { margin: 12px 14px 0; font-size: .74rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.wc-block-product .wp-block-post-terms a { color: var(--ga-green); text-decoration: none; }
.ga-quote-btn { display: inline-flex !important; align-items: center; justify-content: center; gap: 8px; min-height: 44px; width: 100%; border-radius: 10px !important; border: 1.5px solid var(--ga-green) !important; background: #fff !important; color: var(--ga-green) !important; font: 700 .92rem/1 var(--wp--preset--font-family--dm-sans) !important; cursor: pointer; padding: 0 14px !important; }
.ga-quote-btn:hover { background: var(--ga-green) !important; color: #fff !important; }
.wc-block-components-product-price, .price, .wc-block-components-product-add-to-cart-button, .add_to_cart_button { display: none !important; } /* quote-based: no prices, no cart buttons */
.wp-block-query-pagination, .wc-block-pagination { gap: 8px; margin-top: 28px; }
.wp-block-query-pagination-numbers .page-numbers { min-width: 44px; height: 44px; display: inline-grid; place-items: center; border-radius: 12px; border: 1px solid var(--ga-line); text-decoration: none; color: var(--ga-ink); font-weight: 700; }
.wp-block-query-pagination-numbers .page-numbers.current { background: var(--ga-green); border-color: var(--ga-green); color: #fff; }

/* ---------- WooCommerce: single product ---------- */
.ga-product-gallery .woocommerce-product-gallery { background: #fff; border: 1px solid var(--ga-line); border-radius: 20px; padding: 18px; }
.ga-product-gallery img { object-fit: contain; }
.ga-p-box { border: 1px solid var(--ga-line); border-radius: var(--ga-radius); padding: 18px; background: var(--ga-sand); }
.ga-p-box h3 { font-size: 1rem; margin-bottom: 10px; }
.ga-p-box ul { margin: 0; padding-left: 20px; color: var(--ga-muted); }
.ga-iso { display: flex; gap: 10px; align-items: center; font-size: .92rem; color: var(--ga-muted); }
.ga-iso::before { content: "ISO"; flex: none; width: 34px; height: 34px; border-radius: 50%; background: var(--ga-mist); color: var(--ga-green); display: grid; place-items: center; font-size: .62rem; font-weight: 700; }

/* ---------- posts ---------- */
.ga-article { font-size: 1.06rem; }
.ga-article .wp-block-post-content > * + * { margin-block-start: 1.1em; }
.ga-article .wp-block-post-content :where(h2) { margin-block-start: 1.8em; }
.ga-article .wp-block-table table { border-collapse: collapse; width: 100%; }
.ga-article .wp-block-table th, .ga-article .wp-block-table td { border: 1px solid var(--ga-line); padding: 10px 12px; text-align: left; }
.ga-article .wp-block-table thead { background: var(--ga-mist); }

/* ---------- tablet ---------- */
@media (min-width: 640px) {
	.ga-cards { grid-template-columns: repeat(3, 1fr); gap: 16px !important; }
	.ga-gallery.wp-block-gallery { grid-auto-columns: 46%; }
	.ga-guides .wp-block-post-template { grid-template-columns: repeat(2, 1fr); }
	.ga-steps { grid-template-columns: repeat(3, 1fr); }
	.ga-steps > .wp-block-group { padding: 72px 20px 22px; }
}

/* ---------- desktop ---------- */
@media (min-width: 1160px) {
	.ga-nav-mobile-only { display: none !important; }
}
@media (min-width: 960px) {
	:root { --ga-topbar-h: 38px; }
	.ga-hs { min-height: min(100vh, 920px); align-items: center; }
	.ga-hs-content { padding-block: 170px 110px !important; }
	.ga-hs-slides::after { background: linear-gradient(90deg, rgba(6,24,14,.78) 0%, rgba(6,24,14,.45) 38%, rgba(6,24,14,.05) 70%), linear-gradient(180deg, rgba(6,24,14,.5) 0%, transparent 25%, transparent 80%, rgba(6,24,14,.45) 100%); }
	.ga-hs-ticks { display: flex !important; flex-wrap: wrap; gap: 10px 26px !important; }
	.ga-hs-progress { left: max(16px, calc((100% - 1240px) / 2)); bottom: 34px; }
	/* same line as the progress bars (centre 35.5 px above the hero's edge; the slides run 23 px lower for the scroll cue) */
	.ga-hs-slide figcaption { right: max(96px, calc((100% - 1240px) / 2)); bottom: calc(23px + 35.5px - 16px); max-width: 40%; } /* clear of the WhatsApp button */
	/* scroll cue sits on the hero's bottom edge, centred: the hero photo runs 23 px further down in the shape of the
	   mouse (a clipped bump), so the half below the line is filled with the photo, not the white section */
	.ga-hs { overflow: visible; }
	.ga-hs-slides { bottom: -23px; z-index: 1; overflow: hidden; clip-path: polygon(0 0, 100% 0, 100% calc(100% - 23px), calc(50% + 15px) calc(100% - 23px), calc(50% + 15px) calc(100% - 15px), calc(50% + 14.5px) calc(100% - 11.1px), calc(50% + 13px) calc(100% - 7.5px), calc(50% + 10.6px) calc(100% - 4.4px), calc(50% + 7.5px) calc(100% - 2px), calc(50% + 3.9px) calc(100% - .5px), 50% 100%, calc(50% - 3.9px) calc(100% - .5px), calc(50% - 7.5px) calc(100% - 2px), calc(50% - 10.6px) calc(100% - 4.4px), calc(50% - 13px) calc(100% - 7.5px), calc(50% - 14.5px) calc(100% - 11.1px), calc(50% - 15px) calc(100% - 15px), calc(50% - 15px) calc(100% - 23px), 0 calc(100% - 23px)); }
	.ga-hs-down { display: block; box-sizing: border-box; position: absolute; z-index: 5; left: 50%; bottom: -23px; width: 30px; height: 46px; margin-left: -15px; border: 2px solid rgba(255,255,255,.7); border-radius: 16px; transition: transform .2s; }
	.ga-hs-down:hover { transform: translateY(2px); }
	.ga-hs-down:focus-visible { outline: 3px solid var(--ga-lime); outline-offset: 8px; }
	.ga-hs-down::after { content: ""; position: absolute; left: 50%; top: 8px; width: 4px; height: 8px; margin-left: -2px; border-radius: 2px; background: #fff; animation: ga-hs-scroll 1.8s ease-in-out infinite; }
	@keyframes ga-hs-scroll { 0% { transform: translateY(0); opacity: 1; } 70% { transform: translateY(14px); opacity: 0; } 100% { opacity: 0; } }
	.ga-topbar { display: block; }
	.ga-header .wp-block-site-logo img { height: 46px; }
	.ga-header .ga-header-cta { display: flex; }
	.ga-section { padding-block: 84px; }
	.ga-hero { padding-block: 56px 88px; }
	.ga-hero-card { left: -28px; right: auto; bottom: 28px; max-width: 300px; }
	.ga-cards { grid-template-columns: repeat(4, 1fr); gap: 20px !important; }
	.ga-gallery.wp-block-gallery { grid-auto-flow: row; grid-template-columns: repeat(4, 1fr); grid-auto-columns: auto; grid-auto-rows: 250px; overflow: visible; }
	.ga-gallery.wp-block-gallery .wp-block-image:nth-child(1) { grid-column: span 2; grid-row: span 2; }
	.ga-gallery.wp-block-gallery .wp-block-image img { aspect-ratio: auto; }
	.ga-gallery.wp-block-gallery .wp-block-image:nth-child(n+6) { display: none; }
	.ga-guides .wp-block-post-template { grid-template-columns: repeat(3, 1fr); gap: 22px; }
	.ga-cta-band { padding: 48px 52px !important; }
	.wc-block-product-template, .wp-block-woocommerce-product-template { gap: 20px !important; }
	.ga-sticky { position: sticky; top: 104px; align-self: start; }
}
