
/* == accordion == */
.gf-accordion { display: block; border-top: 1.5px solid var(--gf-color-border, #e3e6dc); }
.gf-accordion__item { border-bottom: 1.5px solid var(--gf-color-border, #e3e6dc); }
.gf-accordion__trigger { display: flex; align-items: center; justify-content: space-between; gap: 1rem; width: 100%; appearance: none; -webkit-appearance: none; background: transparent; border: 0; padding: 1.1rem 0; font-family: var(--gf-font-display, sans-serif); font-size: var(--gf-size-lg, 1.125rem); font-weight: 600; color: var(--gf-color-ink, #15201a); text-align: left; cursor: pointer; }
.gf-accordion__trigger:focus-visible { outline: 2px solid var(--gf-color-accent, #5fae6e); outline-offset: 2px; border-radius: var(--gf-radius-sm, 10px); }
.gf-accordion__title { flex: 1 1 auto; }
.gf-accordion__icon { flex: none; display: inline-flex; color: var(--gf-color-brand-strong, #4f7a1f); transition: transform .2s ease; }
.gf-accordion__icon svg { width: 1.25rem; height: 1.25rem; }
.gf-accordion__trigger[aria-expanded="true"] .gf-accordion__icon { transform: rotate(180deg); }
.gf-accordion__panel { padding: 0 0 1.25rem; color: var(--gf-color-ink-2, #46514a); line-height: 1.7; }
.gf-accordion__panel[hidden] { display: none; }
.gf-accordion__panel > :first-child { margin-top: 0; }
.gf-accordion__panel > :last-child { margin-bottom: 0; }
@media (prefers-reduced-motion: reduce) { .gf-accordion__icon { transition: none; } }

/* == alert == */
.gf-alert { --gf-alert-accent: var(--gf-color-accent, #5fae6e); display: flex; gap: 0.85rem; padding: 1rem 1.15rem; border: 1px solid var(--gf-color-border, #e3e6dc); border-left: 4px solid var(--gf-alert-accent); border-radius: var(--gf-radius-md, 16px); background: var(--gf-color-surface, #ffffff); background: color-mix(in srgb, var(--gf-alert-accent) 8%, var(--gf-color-surface, #ffffff)); color: var(--gf-color-ink-2, #46514a); }
.gf-alert[data-variant="success"] { --gf-alert-accent: var(--gf-color-brand-strong, #4f7a1f); }
.gf-alert[data-variant="warning"] { --gf-alert-accent: #b26e0e; }
.gf-alert[data-variant="danger"] { --gf-alert-accent: #ce4040; }
.gf-alert__icon { flex: none; display: inline-flex; margin-top: 0.1rem; color: var(--gf-alert-accent); }
.gf-alert__icon svg { width: 1.25rem; height: 1.25rem; }
.gf-alert__body { flex: 1 1 auto; min-width: 0; }
.gf-alert__title { margin: 0 0 0.15rem; font-family: var(--gf-font-display, sans-serif); font-size: var(--gf-size-base, 1rem); font-weight: 700; color: var(--gf-color-ink, #15201a); }
.gf-alert__content { line-height: 1.6; }
.gf-alert__content > :first-child { margin-top: 0; }
.gf-alert__content > :last-child { margin-bottom: 0; }
.gf-alert__close { flex: none; appearance: none; -webkit-appearance: none; background: transparent; border: 0; padding: 0.15rem; margin: -0.15rem -0.15rem 0 0; color: var(--gf-color-muted, #71807a); cursor: pointer; border-radius: var(--gf-radius-sm, 10px); }
.gf-alert__close:hover { color: var(--gf-color-ink, #15201a); }
.gf-alert__close:focus-visible { outline: 2px solid var(--gf-alert-accent); outline-offset: 2px; }
.gf-alert__close svg { width: 1.1rem; height: 1.1rem; }

/* == audio == */
.gf-audio{ margin:0; display:flex; flex-direction:column; gap:0.5rem; padding:var(--gf-space-30,1rem); background:var(--gf-color-surface,#ffffff); border:1px solid var(--gf-color-border,#e3e6dc); border-radius:var(--gf-radius-md,16px); }
.gf-audio__title{ font-family:var(--gf-font-display,sans-serif); font-weight:600; font-size:var(--gf-size-base,1rem); color:var(--gf-color-ink,#15201a); }
.gf-audio__el{ width:100%; display:block; }
.gf-audio__placeholder{ color:var(--gf-color-muted,#71807a); font-family:var(--gf-font-body,sans-serif); }

/* == author-box == */
.gf-author-box{display:flex;gap:var(--gf-space-30,1rem);align-items:flex-start;padding:var(--gf-space-40,1.5rem);background:var(--gf-color-surface-2,#f1f3ec);border:1px solid var(--gf-color-border,#e3e6dc);border-radius:var(--gf-radius-lg,22px)}
.gf-author-box__avatar{flex:0 0 auto}
.gf-author-box__img{display:block;width:64px;height:64px;border-radius:var(--gf-radius-pill,999px);object-fit:cover}
.gf-author-box__body{min-width:0}
.gf-author-box__name{margin:0 0 0.25rem;font-family:var(--gf-font-display,"Space Grotesk",ui-sans-serif,system-ui,sans-serif);font-size:var(--gf-size-lg,1.125rem);font-weight:600;color:var(--gf-color-ink,#15201a)}
.gf-author-box__bio{margin:0 0 0.5rem;font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif);font-size:var(--gf-size-sm,0.875rem);line-height:1.6;color:var(--gf-color-ink-2,#46514a)}
.gf-author-box__link{display:inline-flex;align-items:center;gap:0.35em;font-size:var(--gf-size-sm,0.875rem);font-weight:600;color:var(--gf-color-brand-strong,#4f7a1f);text-decoration:none}
.gf-author-box__link:hover,.gf-author-box__link:focus-visible{text-decoration:underline}
.gf-author-box__arrow{display:inline-flex}
.gf-author-box__arrow svg{width:1em;height:1em}
.gf-author-box__placeholder{color:var(--gf-color-muted,#71807a);font-style:italic}
@media (max-width:640px){.gf-author-box{flex-direction:column}}

/* == back-to-top == */
.gf-back-to-top { position: fixed; z-index: 900; bottom: clamp(1rem, 4vw, 2rem); display: inline-flex; align-items: center; justify-content: center; width: 3rem; height: 3rem; border: 0; border-radius: var(--gf-radius-pill, 999px); background: var(--gf-color-brand, #9bd45f); color: var(--gf-color-brand-ink, #1e3209); cursor: pointer; box-shadow: 0 4px 16px rgba(21, 32, 26, 0.22); opacity: 0; visibility: hidden; transform: translateY(12px); transition: opacity .2s ease, transform .2s ease, visibility .2s ease, background-color .15s ease; }
.gf-back-to-top[data-position="right"] { right: clamp(1rem, 4vw, 2rem); }
.gf-back-to-top[data-position="left"] { left: clamp(1rem, 4vw, 2rem); }
.gf-back-to-top[data-visible="1"] { opacity: 1; visibility: visible; transform: none; }
.gf-back-to-top:hover { background: var(--gf-color-brand-strong, #4f7a1f); color: var(--gf-color-on-dark, #f7fffd); }
.gf-back-to-top:focus-visible { outline: 2px solid var(--gf-color-accent, #5fae6e); outline-offset: 2px; }
.gf-back-to-top__icon { display: inline-flex; }
.gf-back-to-top__icon svg { width: 1.4rem; height: 1.4rem; }
.gf-back-to-top[data-rotate="1"] .gf-back-to-top__icon svg { transform: rotate(-90deg); }
@media (prefers-reduced-motion: reduce) {
	.gf-back-to-top { transition: opacity .2s ease, visibility .2s ease; transform: none; }
	.gf-back-to-top[data-visible="1"] { transform: none; }
}

/* == before-after == */
.gf-before-after{ position:relative; overflow:hidden; width:100%; user-select:none; touch-action:none; border-radius:var(--gf-radius-md,16px); background:var(--gf-color-surface-2,#f1f3ec); }
.gf-before-after__img{ display:block; width:100%; height:auto; pointer-events:none; }
.gf-before-after__img--before{ position:relative; }
.gf-before-after__after{ position:absolute; inset:0; }
.gf-before-after__after .gf-before-after__img--after{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.gf-before-after[data-orientation="horizontal"] .gf-before-after__after .gf-before-after__img--after{ clip-path:inset(0 calc(100% - var(--gf-pos,50%)) 0 0); }
.gf-before-after[data-orientation="vertical"] .gf-before-after__after .gf-before-after__img--after{ clip-path:inset(0 0 calc(100% - var(--gf-pos,50%)) 0); }
.gf-before-after__range{ position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; pointer-events:none; }
.gf-before-after__handle{ position:absolute; z-index:2; background:var(--gf-color-surface,#ffffff); box-shadow:0 0 0 1px color-mix(in srgb, var(--gf-color-ink, #15201a) 15%, transparent); pointer-events:none; }
.gf-before-after[data-orientation="horizontal"] .gf-before-after__handle{ top:0; bottom:0; left:var(--gf-pos,50%); width:3px; transform:translateX(-50%); }
.gf-before-after[data-orientation="vertical"] .gf-before-after__handle{ left:0; right:0; top:var(--gf-pos,50%); height:3px; transform:translateY(-50%); }
.gf-before-after__grip{
	position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
	width:40px; height:40px; border-radius:var(--gf-radius-pill,999px);
	background:var(--gf-color-surface,#ffffff); border:2px solid var(--gf-color-brand,#9bd45f);
	box-shadow:0 4px 14px color-mix(in srgb, var(--gf-color-ink, #15201a) 28%, transparent);
}
.gf-before-after[data-orientation="horizontal"]{ cursor:ew-resize; }
.gf-before-after[data-orientation="vertical"]{ cursor:ns-resize; }
.gf-before-after:focus-within .gf-before-after__grip{ box-shadow:0 0 0 4px var(--gf-color-brand,#9bd45f); }
.gf-before-after__placeholder{ display:flex; align-items:center; justify-content:center; min-height:180px; color:var(--gf-color-muted,#71807a); font-family:var(--gf-font-body,sans-serif); }

/* == blockquote == */
.gf-blockquote { margin: 0; display: block; border-left: 3px solid var(--gf-color-brand, #9bd45f); padding-left: 1.25rem; }
.gf-blockquote[data-align="center"] { text-align: center; border-left: 0; padding-left: 0; }
.gf-blockquote[data-align="right"] { text-align: right; border-left: 0; padding-left: 0; }
.gf-blockquote__quote { margin: 0; font-family: var(--gf-font-display, sans-serif); font-weight: 500; line-height: 1.3; color: var(--gf-color-ink, #15201a); }
.gf-blockquote__quote p { margin: 0; }
.gf-blockquote[data-size="sm"] .gf-blockquote__quote { font-size: var(--gf-size-lg, 1.125rem); }
.gf-blockquote[data-size="md"] .gf-blockquote__quote { font-size: var(--gf-size-xl, 1.375rem); }
.gf-blockquote[data-size="lg"] .gf-blockquote__quote { font-size: var(--gf-size-2xl, 1.875rem); }
.gf-blockquote[data-mark="1"] .gf-blockquote__quote::before {
	content: "\201C"; display: block; font-family: var(--gf-font-display, serif);
	font-size: 3em; line-height: 0.7; color: var(--gf-color-brand, #9bd45f); opacity: 0.5;
}
.gf-blockquote__cite { display: block; margin-top: 1rem; font-size: var(--gf-size-sm, 0.875rem); font-style: normal; }
.gf-blockquote__name { font-weight: 600; font-style: normal; color: var(--gf-color-ink, #15201a); }
.gf-blockquote__role { color: var(--gf-color-muted, #71807a); }
.gf-blockquote__name + .gf-blockquote__role::before { content: "\00B7"; margin: 0 0.4em; color: var(--gf-color-border-strong, #cfd4c6); }
@media (max-width: 640px) {
	.gf-blockquote[data-size="lg"] .gf-blockquote__quote { font-size: var(--gf-size-xl, 1.375rem); }
}

/* == breadcrumbs == */
.gf-breadcrumbs { font-family: var(--gf-font-body, sans-serif); font-size: var(--gf-size-sm, .875rem); color: var(--gf-color-muted, #71807a); }
.gf-breadcrumbs__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.gf-breadcrumbs__item { display: inline-flex; align-items: center; gap: .5rem; }
.gf-breadcrumbs__item + .gf-breadcrumbs__item::before {
	content: "\203A"; color: var(--gf-color-border-strong, #cfd4c6); line-height: 1;
}
.gf-breadcrumbs[data-sep="slash"] .gf-breadcrumbs__item + .gf-breadcrumbs__item::before { content: "/"; }
.gf-breadcrumbs[data-sep="dot"] .gf-breadcrumbs__item + .gf-breadcrumbs__item::before { content: "\00B7"; }
.gf-breadcrumbs__link { color: var(--gf-color-ink-2, #46514a); text-decoration: none; }
.gf-breadcrumbs__link:hover,
.gf-breadcrumbs__link:focus-visible { color: var(--gf-color-brand-strong, #4f7a1f); text-decoration: underline; }
.gf-breadcrumbs__current { color: var(--gf-color-ink, #15201a); font-weight: 600; }

/* == code == */
.gf-code { position: relative; background: var(--gf-color-surface-2, #f1f3ec); border: 1px solid var(--gf-color-border, #e6e9df); border-radius: var(--gf-radius-md, 16px); overflow: hidden; }
.gf-code__bar { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; padding: 0.55rem 0.9rem; border-bottom: 1px solid var(--gf-color-border, #e6e9df); }
.gf-code__lang { font-family: var(--gf-font-mono, monospace); font-size: 0.6875rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gf-color-muted, #71807a); }
.gf-code__copy { font-family: var(--gf-font-body, sans-serif); font-size: 0.75rem; font-weight: 600; color: var(--gf-color-brand-strong, #4f7a1f); background: transparent; border: 1px solid var(--gf-color-border-strong, #cfd4c6); border-radius: var(--gf-radius-sm, 10px); padding: 0.3rem 0.7rem; cursor: pointer; transition: background-color 0.15s ease, border-color 0.15s ease; }
.gf-code__copy:hover { background: var(--gf-color-brand-soft, #eef7df); border-color: var(--gf-color-brand-strong, #4f7a1f); }
.gf-code__pre { margin: 0; padding: 1rem 1.1rem; overflow-x: auto; }
.gf-code__code { font-family: var(--gf-font-mono, monospace); font-size: 0.875rem; line-height: 1.6; color: var(--gf-color-ink, #15201a); white-space: pre; tab-size: 2; }
@media (prefers-reduced-motion: reduce) {
	.gf-code__copy { transition: none; }
}

/* == content-toggle == */
.gf-content-toggle { display: flex; flex-direction: column; align-items: center; gap: 1.5rem; }
.gf-content-toggle__switch { display: inline-flex; gap: 0.25rem; padding: 0.25rem; background: var(--gf-color-surface-2, #f1f3ec); border-radius: var(--gf-radius-pill, 999px); }
.gf-content-toggle__option { appearance: none; -webkit-appearance: none; border: 0; background: transparent; padding: 0.5rem 1.25rem; border-radius: var(--gf-radius-pill, 999px); font-family: var(--gf-font-body, sans-serif); font-weight: 600; font-size: var(--gf-size-sm, 0.875rem); color: var(--gf-color-ink-2, #46514a); cursor: pointer; transition: background-color .15s ease, color .15s ease; }
.gf-content-toggle__option[aria-pressed="true"] { background: var(--gf-color-brand, #9bd45f); color: var(--gf-color-brand-ink, #1e3209); }
.gf-content-toggle__option:focus-visible { outline: 2px solid var(--gf-color-accent, #5fae6e); outline-offset: 2px; }
.gf-content-toggle__panel { width: 100%; line-height: 1.7; color: var(--gf-color-ink-2, #46514a); }
.gf-content-toggle__panel[hidden] { display: none; }
.gf-content-toggle__panel > :first-child { margin-top: 0; }
.gf-content-toggle__panel > :last-child { margin-bottom: 0; }
@media (prefers-reduced-motion: reduce) { .gf-content-toggle__option { transition: none; } }

/* == countdown == */
.gf-countdown { display: flex; flex-wrap: wrap; align-items: stretch; gap: 0.75rem; }
.gf-countdown__unit { display: flex; flex-direction: column; align-items: center; gap: 0.35rem; min-width: 64px; padding: 0.85rem 0.75rem; background: var(--gf-color-surface-2, #f1f3ec); border-radius: var(--gf-radius-md, 16px); }
.gf-countdown__value { font-family: var(--gf-font-mono, monospace); font-size: var(--gf-size-3xl, 1.875rem); font-weight: 700; line-height: 1; color: var(--gf-color-ink, #15201a); font-variant-numeric: tabular-nums; }
.gf-countdown__label { font-size: var(--gf-size-sm, 0.875rem); color: var(--gf-color-muted, #71807a); text-transform: uppercase; letter-spacing: 0.06em; }
.gf-countdown__expired { flex: 1 1 100%; margin: 0; align-self: center; font-family: var(--gf-font-display, sans-serif); font-size: var(--gf-size-lg, 1.125rem); font-weight: 600; color: var(--gf-color-brand-strong, #4f7a1f); }
.gf-countdown__expired[hidden] { display: none; }
.gf-countdown[data-state="expired"] .gf-countdown__unit { opacity: 0.5; }
@media (max-width: 640px) { .gf-countdown__value { font-size: var(--gf-size-2xl, 1.5rem); } }

/* == counter == */
.gf-counter { display: flex; flex-direction: column; gap: 0.35rem; }
.gf-counter__value {
	font-family: var(--gf-font-display, sans-serif);
	font-size: var(--gf-size-5xl, clamp(2.4rem, 1.7rem + 3.2vw, 3.8rem));
	font-weight: 700;
	line-height: 1;
	color: var(--gf-color-brand-strong, #4f7a1f);
	font-variant-numeric: tabular-nums;
}
.gf-counter__label {
	font-size: var(--gf-size-base, 1rem);
	color: var(--gf-color-ink-2, #46514a);
}

/* == cta == */
.gf-cta {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	padding: clamp(2rem, 5vw, 4rem);
	border-radius: var(--gf-radius-lg, 22px);
}
.gf-cta[data-layout="inline"] {
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
}
.gf-cta__body { display: flex; flex-direction: column; gap: 0.6rem; }
.gf-cta__eyebrow {
	font-family: var(--gf-font-mono, monospace);
	font-size: 0.6875rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	opacity: 0.85;
}
.gf-cta__title {
	margin: 0;
	font-family: var(--gf-font-display, sans-serif);
	font-size: var(--gf-size-3xl, 2rem);
	line-height: 1.15;
}
.gf-cta__text { margin: 0; font-size: var(--gf-size-lg, 1.125rem); line-height: 1.6; opacity: 0.92; }
.gf-cta__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.gf-cta__btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.85rem 1.6rem;
	font-family: var(--gf-font-body, sans-serif);
	font-weight: 600;
	font-size: var(--gf-size-base, 1rem);
	line-height: 1;
	text-decoration: none;
	border-radius: var(--gf-radius-pill, 999px);
	border: 1.5px solid transparent;
	transition: transform .15s ease, background-color .15s ease, color .15s ease, border-color .15s ease;
}
.gf-cta__btn svg { width: 1.1em; height: 1.1em; }
.gf-cta__btn:hover { transform: translateY(-1px); }
.gf-cta__btn-icon { display: inline-flex; }

/* Brand band */
.gf-cta[data-bg="brand"] { background: var(--gf-color-brand, #9bd45f); color: var(--gf-color-brand-ink, #1e3209); }
.gf-cta[data-bg="brand"] .gf-cta__btn[data-variant="primary"] { background: var(--gf-color-brand-ink, #1e3209); color: var(--gf-color-on-dark, #f7fffd); }
.gf-cta[data-bg="brand"] .gf-cta__btn[data-variant="secondary"] { border-color: var(--gf-color-brand-ink, #1e3209); color: var(--gf-color-brand-ink, #1e3209); }

/* Deep band */
.gf-cta[data-bg="deep"] { background: var(--gf-color-ink, #15201a); color: var(--gf-color-on-dark, #f7fffd); }
.gf-cta[data-bg="deep"] .gf-cta__btn[data-variant="primary"] { background: var(--gf-color-brand, #9bd45f); color: var(--gf-color-brand-ink, #1e3209); }
.gf-cta[data-bg="deep"] .gf-cta__btn[data-variant="secondary"] { border-color: var(--gf-color-on-dark, #f7fffd); color: var(--gf-color-on-dark, #f7fffd); }

/* Surface band */
.gf-cta[data-bg="surface"] { background: var(--gf-color-surface-2, #f1f3ec); color: var(--gf-color-ink, #15201a); border: 1px solid var(--gf-color-border, #e3e6dc); }
.gf-cta[data-bg="surface"] .gf-cta__btn[data-variant="primary"] { background: var(--gf-color-brand, #9bd45f); color: var(--gf-color-brand-ink, #1e3209); }
.gf-cta[data-bg="surface"] .gf-cta__btn[data-variant="secondary"] { border-color: var(--gf-color-border-strong, #cfd4c6); color: var(--gf-color-ink, #15201a); }

.gf-cta__placeholder { color: var(--gf-color-muted, #71807a); font-size: var(--gf-size-sm, 0.875rem); }

@media (max-width: 640px) {
	.gf-cta[data-layout="inline"] { flex-direction: column; align-items: stretch; }
}
@media (prefers-reduced-motion: reduce) {
	.gf-cta__btn { transition: none; }
	.gf-cta__btn:hover { transform: none; }
}

/* == divider == */
.gf-divider { width: var(--gf-divider-width, 100%); border: 0; }
.gf-divider[data-align="center"] { margin-inline: auto; }
.gf-divider[data-align="left"] { margin-inline: 0 auto; }
.gf-divider[data-align="right"] { margin-inline: auto 0; }
.gf-divider:not([data-icon="1"]) { height: 0; border-top: var(--gf-divider-thickness, 2px) var(--gf-divider-style, solid) var(--gf-divider-color, var(--gf-color-border-strong, #cfd4c6)); }
.gf-divider[data-icon="1"] { display: flex; align-items: center; gap: 0.85rem; }
.gf-divider[data-icon="1"]::before, .gf-divider[data-icon="1"]::after { content: ""; flex: 1 1 auto; border-top: var(--gf-divider-thickness, 2px) var(--gf-divider-style, solid) var(--gf-divider-color, var(--gf-color-border-strong, #cfd4c6)); }
.gf-divider__icon { display: inline-flex; flex: 0 0 auto; color: var(--gf-divider-color, var(--gf-color-brand-strong, #4f7a1f)); }
.gf-divider__icon svg { display: block; width: 1.25rem; height: 1.25rem; }

/* == faq == */
.gf-faq { display: flex; flex-direction: column; gap: 0.5rem; }
.gf-faq .gf-accordion__item {
	border: 1px solid var(--gf-color-border, #e3e6dc);
	border-radius: var(--gf-radius-md, 16px);
	background: var(--gf-color-surface, #ffffff);
	overflow: hidden;
}
.gf-faq .gf-accordion__trigger {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	width: 100%;
	margin: 0;
	padding: 1.1rem 1.35rem;
	background: transparent;
	border: 0;
	cursor: pointer;
	text-align: left;
	font-family: var(--gf-font-display, sans-serif);
	font-size: var(--gf-size-lg, 1.125rem);
	font-weight: 600;
	color: var(--gf-color-ink, #15201a);
}
.gf-faq .gf-accordion__trigger:hover { color: var(--gf-color-brand-strong, #4f7a1f); }
.gf-faq .gf-accordion__trigger:focus-visible {
	outline: 2px solid var(--gf-color-brand, #9bd45f);
	outline-offset: -2px;
}
.gf-faq__marker { display: inline-flex; flex: 0 0 auto; color: var(--gf-color-brand-strong, #4f7a1f); transition: transform .2s ease; }
.gf-faq__marker svg { width: 1.25rem; height: 1.25rem; }
.gf-faq .gf-accordion__trigger[aria-expanded="true"] .gf-faq__marker { transform: rotate(180deg); }
.gf-faq .gf-accordion__panel { padding: 0 1.35rem 1.2rem; color: var(--gf-color-ink-2, #46514a); line-height: 1.65; }
.gf-faq .gf-accordion__panel[hidden] { display: none; }
.gf-faq .gf-accordion__answer > :first-child { margin-top: 0; }
.gf-faq .gf-accordion__answer > :last-child { margin-bottom: 0; }
.gf-faq .gf-accordion__answer a { color: var(--gf-color-accent, #5fae6e); }
.gf-faq__placeholder { color: var(--gf-color-muted, #71807a); font-size: var(--gf-size-sm, 0.875rem); }
@media (prefers-reduced-motion: reduce) {
	.gf-faq__marker { transition: none; }
}

/* == feature == */
.gf-feature {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	padding: clamp(1.5rem, 3vw, 2.25rem);
	background: var(--gf-color-surface, #ffffff);
	border: 1px solid var(--gf-color-border, #e3e6dc);
	border-radius: var(--gf-radius-lg, 22px);
	color: var(--gf-color-ink-2, #46514a);
}
.gf-feature[data-align="center"] { text-align: center; align-items: center; }
.gf-feature__media { display: inline-flex; }
.gf-feature__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	border-radius: var(--gf-radius-md, 16px);
	color: var(--gf-color-brand-strong, #4f7a1f);
}
.gf-feature__icon svg { width: 1.5rem; height: 1.5rem; }
.gf-feature__icon[data-style="outline"] { border: 1.5px solid var(--gf-color-border-strong, #cfd4c6); }
.gf-feature__icon[data-style="filled"] { background: var(--gf-color-brand, #9bd45f); color: var(--gf-color-brand-ink, #1e3209); }
.gf-feature__icon[data-style="soft"] { background: var(--gf-color-brand-soft, #eef7df); color: var(--gf-color-brand-strong, #4f7a1f); }
.gf-feature__img {
	display: block;
	width: 100%;
	max-width: 4rem;
	height: auto;
	border-radius: var(--gf-radius-md, 16px);
}
.gf-feature__title {
	margin: 0;
	font-family: var(--gf-font-display, sans-serif);
	font-size: var(--gf-size-xl, 1.25rem);
	line-height: 1.25;
	color: var(--gf-color-ink, #15201a);
}
.gf-feature__text { margin: 0; line-height: 1.65; }
.gf-feature__link {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	margin-top: 0.25rem;
	font-weight: 600;
	text-decoration: none;
	color: var(--gf-color-brand-strong, #4f7a1f);
}
.gf-feature__link svg { width: 1em; height: 1em; }
.gf-feature__link:hover { text-decoration: underline; }
.gf-feature__link-icon { display: inline-flex; transition: transform .15s ease; }
.gf-feature__link:hover .gf-feature__link-icon { transform: translateX(3px); }
.gf-feature__placeholder { color: var(--gf-color-muted, #71807a); font-size: var(--gf-size-sm, 0.875rem); }
@media (prefers-reduced-motion: reduce) {
	.gf-feature__link-icon { transition: none; }
}

/* == featured-image == */
.gf-featured-image{margin:0;display:block;overflow:hidden}
.gf-featured-image__link{display:block}
.gf-featured-image__img{display:block;width:100%;height:auto}
.gf-featured-image[data-ratio="1"] .gf-featured-image__img{aspect-ratio:var(--gf-ratio,16 / 9);height:100%;object-fit:cover}
.gf-featured-image[data-rounded="sm"],.gf-featured-image[data-rounded="sm"] .gf-featured-image__img{border-radius:var(--gf-radius-sm,10px)}
.gf-featured-image[data-rounded="md"],.gf-featured-image[data-rounded="md"] .gf-featured-image__img{border-radius:var(--gf-radius-md,16px)}
.gf-featured-image[data-rounded="lg"],.gf-featured-image[data-rounded="lg"] .gf-featured-image__img{border-radius:var(--gf-radius-lg,22px)}
.gf-featured-image[data-rounded="pill"],.gf-featured-image[data-rounded="pill"] .gf-featured-image__img{border-radius:var(--gf-radius-pill,999px)}
.gf-featured-image__placeholder{display:flex;align-items:center;justify-content:center;min-height:12rem;aspect-ratio:var(--gf-ratio,16 / 9);background:var(--gf-color-surface-2,#f1f3ec);border:1px dashed var(--gf-color-border-strong,#cfd4c6);color:var(--gf-color-muted,#71807a);font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif);font-size:var(--gf-size-sm,0.875rem)}

/* == flip-box == */
.gf-flip-box { display: block; min-height: 300px; }
.gf-flip-box__inner { position: relative; display: block; height: 100%; min-height: inherit; }
.gf-flip-box__face { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 0.75rem; min-height: 300px; padding: 2rem; border-radius: var(--gf-radius-lg, 22px); }
.gf-flip-box__front { background: var(--gf-color-surface-2, #f1f3ec); color: var(--gf-color-ink, #15201a); }
.gf-flip-box__back { background: var(--gf-color-brand-strong, #4f7a1f); color: var(--gf-color-on-dark, #f7fffd); }
.gf-flip-box__icon { display: inline-flex; color: var(--gf-color-brand-strong, #4f7a1f); }
.gf-flip-box__icon svg { width: 2.25rem; height: 2.25rem; }
.gf-flip-box__title { margin: 0; font-family: var(--gf-font-display, sans-serif); font-size: var(--gf-size-xl, 1.25rem); font-weight: 700; }
.gf-flip-box__text { margin: 0; line-height: 1.6; }
.gf-flip-box__link { margin-top: 0.5rem; }
.gf-flip-box__back .gf-flip-box__link a { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.6rem 1.2rem; border-radius: var(--gf-radius-pill, 999px); background: var(--gf-color-on-dark, #f7fffd); color: var(--gf-color-brand-strong, #4f7a1f); font-weight: 600; text-decoration: none; }
.gf-flip-box:focus-visible { outline: 2px solid var(--gf-color-accent, #5fae6e); outline-offset: 3px; border-radius: var(--gf-radius-lg, 22px); }
@media (prefers-reduced-motion: no-preference) {
	.gf-flip-box { perspective: 1400px; }
	.gf-flip-box__inner { transition: transform .6s ease; transform-style: preserve-3d; }
	.gf-flip-box__face { position: absolute; inset: 0; -webkit-backface-visibility: hidden; backface-visibility: hidden; }
	.gf-flip-box[data-dir="left"] .gf-flip-box__back, .gf-flip-box[data-dir="right"] .gf-flip-box__back { transform: rotateY(180deg); }
	.gf-flip-box[data-dir="up"] .gf-flip-box__back, .gf-flip-box[data-dir="down"] .gf-flip-box__back { transform: rotateX(180deg); }
	.gf-flip-box[data-dir="left"]:hover .gf-flip-box__inner, .gf-flip-box[data-dir="left"]:focus-within .gf-flip-box__inner { transform: rotateY(180deg); }
	.gf-flip-box[data-dir="right"]:hover .gf-flip-box__inner, .gf-flip-box[data-dir="right"]:focus-within .gf-flip-box__inner { transform: rotateY(-180deg); }
	.gf-flip-box[data-dir="up"]:hover .gf-flip-box__inner, .gf-flip-box[data-dir="up"]:focus-within .gf-flip-box__inner { transform: rotateX(-180deg); }
	.gf-flip-box[data-dir="down"]:hover .gf-flip-box__inner, .gf-flip-box[data-dir="down"]:focus-within .gf-flip-box__inner { transform: rotateX(180deg); }
}

/* == floating-contact == */
.gf-floating-contact {
	position: fixed;
	z-index: 950;
	bottom: clamp(1rem, 4vw, 1.75rem);
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 0.75rem;
}
.gf-floating-contact[data-position="bottom-right"] { right: clamp(1rem, 4vw, 1.75rem); align-items: flex-end; }
.gf-floating-contact[data-position="bottom-left"] { left: clamp(1rem, 4vw, 1.75rem); align-items: flex-start; }
.gf-floating-contact__menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	opacity: 0;
	visibility: hidden;
	transform: translateY(0.75rem);
	transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
}
.gf-floating-contact[data-open="1"] .gf-floating-contact__menu { opacity: 1; visibility: visible; transform: translateY(0); }
.gf-floating-contact__item { margin: 0; }
.gf-floating-contact__action {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	padding: 0.55rem 0.9rem 0.55rem 0.6rem;
	border-radius: var(--gf-radius-pill, 999px);
	background: var(--gf-color-surface, #ffffff);
	color: var(--gf-color-ink, #15201a);
	font-size: var(--gf-size-sm, 0.875rem);
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	border: 1px solid var(--gf-color-border, #e3e6dc);
	box-shadow: 0 8px 20px -10px rgba(21, 32, 26, 0.4);
	transition: transform 0.15s ease, border-color 0.15s ease;
}
.gf-floating-contact[data-position="bottom-left"] .gf-floating-contact__action { flex-direction: row-reverse; padding: 0.55rem 0.6rem 0.55rem 0.9rem; }
.gf-floating-contact__action:hover,
.gf-floating-contact__action:focus-visible { border-color: var(--gf-color-brand-strong, #4f7a1f); transform: translateX(-2px); }
.gf-floating-contact[data-position="bottom-left"] .gf-floating-contact__action:hover,
.gf-floating-contact[data-position="bottom-left"] .gf-floating-contact__action:focus-visible { transform: translateX(2px); }
.gf-floating-contact__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.9rem;
	height: 1.9rem;
	border-radius: var(--gf-radius-pill, 999px);
	background: var(--gf-color-brand-soft, #eef7df);
	color: var(--gf-color-brand-strong, #4f7a1f);
	flex: none;
}
.gf-floating-contact__icon svg { width: 1.05rem; height: 1.05rem; display: block; }
.gf-floating-contact__empty { color: var(--gf-color-muted, #71807a); font-size: var(--gf-size-sm, 0.875rem); }
.gf-floating-contact__toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3.5rem;
	height: 3.5rem;
	border: 0;
	border-radius: var(--gf-radius-pill, 999px);
	background: var(--gf-color-brand, #9bd45f);
	color: var(--gf-color-brand-ink, #1e3209);
	cursor: pointer;
	box-shadow: 0 10px 24px -8px rgba(21, 32, 26, 0.5);
	transition: transform 0.2s ease;
}
.gf-floating-contact__toggle-icon { display: inline-flex; transition: transform 0.2s ease; }
.gf-floating-contact__toggle-icon svg { width: 1.6rem; height: 1.6rem; display: block; }
.gf-floating-contact[data-open="1"] .gf-floating-contact__toggle-icon { transform: rotate(135deg); }
.gf-floating-contact__toggle:hover { transform: scale(1.05); }
@media (prefers-reduced-motion: reduce) {
	.gf-floating-contact__menu,
	.gf-floating-contact__action,
	.gf-floating-contact__toggle,
	.gf-floating-contact__toggle-icon { transition: none; }
}

/* == form == */
.gf-form { display: flex; flex-direction: column; gap: 1rem; }
.gf-form__field { display: flex; flex-direction: column; gap: 0.4rem; }
.gf-form__label {
	font-family: var(--gf-font-body, sans-serif);
	font-size: var(--gf-size-sm, 0.875rem);
	font-weight: 600;
	color: var(--gf-color-ink, #15201a);
}
.gf-form__req { color: var(--gf-color-brand-strong, #4f7a1f); }
.gf-form__input {
	width: 100%;
	font-family: var(--gf-font-body, sans-serif);
	font-size: var(--gf-size-base, 1rem);
	color: var(--gf-color-ink, #15201a);
	background: var(--gf-color-surface, #ffffff);
	border: 1.5px solid var(--gf-color-border-strong, #cfd4c6);
	border-radius: var(--gf-radius-md, 16px);
	padding: 0.7rem 0.9rem;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.gf-form__textarea { resize: vertical; min-height: 6rem; }
.gf-form__input::placeholder { color: var(--gf-color-muted, #71807a); }
.gf-form__input:focus {
	outline: none;
	border-color: var(--gf-color-brand, #9bd45f);
	box-shadow: 0 0 0 3px var(--gf-color-brand-soft, #eef7df);
}
.gf-form__submit {
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.8rem 1.6rem;
	font-family: var(--gf-font-body, sans-serif);
	font-weight: 600;
	font-size: var(--gf-size-base, 1rem);
	line-height: 1;
	cursor: pointer;
	color: var(--gf-color-brand-ink, #1e3209);
	background: var(--gf-color-brand, #9bd45f);
	border: 1.5px solid transparent;
	border-radius: var(--gf-radius-pill, 999px);
	transition: background-color .15s ease, color .15s ease;
}
.gf-form__submit:hover { background: var(--gf-color-brand-strong, #4f7a1f); color: var(--gf-color-on-dark, #f7fffd); }
.gf-form__status:empty { display: none; }
.gf-form__status { color: var(--gf-color-brand-strong, #4f7a1f); font-weight: 600; }
.gf-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.gf-form__placeholder { color: var(--gf-color-muted, #71807a); font-size: var(--gf-size-sm, 0.875rem); }
@media (prefers-reduced-motion: reduce) {
	.gf-form__input, .gf-form__submit { transition: none; }
}

/* == gallery == */
.gf-gallery{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(var(--gf-cols,3), minmax(0,1fr)); gap:var(--gf-gap,1rem); }
.gf-gallery__item{ margin:0; min-width:0; }
.gf-gallery__figure{ margin:0; overflow:hidden; background:var(--gf-color-surface-2,#f1f3ec); }
.gf-gallery[data-rounded="sm"] .gf-gallery__figure{ border-radius:var(--gf-radius-sm,10px); }
.gf-gallery[data-rounded="md"] .gf-gallery__figure{ border-radius:var(--gf-radius-md,16px); }
.gf-gallery[data-rounded="lg"] .gf-gallery__figure{ border-radius:var(--gf-radius-lg,22px); }
.gf-gallery__link{ display:block; }
.gf-gallery__img{ display:block; width:100%; height:auto; }
.gf-gallery[data-ratio="1"] .gf-gallery__figure{ aspect-ratio:var(--gf-ratio, 4 / 3); }
.gf-gallery[data-ratio="1"] .gf-gallery__img{ width:100%; height:100%; object-fit:cover; }
.gf-gallery[data-lightbox="1"] .gf-gallery__link{ cursor:zoom-in; }
.gf-gallery__link:focus-visible{ outline:2px solid var(--gf-color-brand,#9bd45f); outline-offset:3px; }
.gf-gallery__empty{ grid-column:1 / -1; padding:var(--gf-space-40,1.5rem); text-align:center; color:var(--gf-color-muted,#71807a); border:1px dashed var(--gf-color-border-strong,#cfd4c6); border-radius:var(--gf-radius-md,16px); }

/* Shared lightbox modal (created by the runtime, appended to <body>). */
.gf-lightbox{ position:fixed; inset:0; z-index:2147483000; display:flex; align-items:center; justify-content:center; padding:clamp(1rem,4vw,3rem); background:color-mix(in srgb, var(--gf-color-ink, #15201a) 88%, transparent); }
.gf-lightbox[hidden]{ display:none; }
.gf-lightbox__img{ max-width:100%; max-height:100%; width:auto; height:auto; border-radius:var(--gf-radius-md,16px); box-shadow:0 20px 60px color-mix(in srgb, var(--gf-color-ink, #15201a) 50%, transparent); }
.gf-lightbox__close{ position:absolute; top:1rem; right:1rem; width:44px; height:44px; display:inline-flex; align-items:center; justify-content:center; border:0; border-radius:var(--gf-radius-pill,999px); background:var(--gf-color-surface,#ffffff); color:var(--gf-color-ink,#15201a); font-size:1.6rem; line-height:1; cursor:pointer; }
.gf-lightbox__close:focus-visible{ outline:2px solid var(--gf-color-brand,#9bd45f); outline-offset:2px; }

@media (max-width:640px){ .gf-gallery{ grid-template-columns:repeat(auto-fit, minmax(140px, 1fr)); } }

/* == global-block == */
.gf-global-block { display: block; }
.gf-global-block__placeholder {
	display: block;
	padding: var(--gf-space-40, 1.5rem);
	text-align: center;
	color: var(--gf-color-muted, #71807a);
	font-size: var(--gf-size-sm, 0.875rem);
	background: var(--gf-color-brand-soft, #eef7df);
	border: 1px dashed var(--gf-color-brand, #9bd45f);
	border-radius: var(--gf-radius-md, 16px);
}

/* == google-maps == */
.gf-google-maps { width: 100%; }
.gf-google-maps__frame {
	display: block;
	width: 100%;
	height: var(--gf-map-height, 420px);
	border: 0;
	border-radius: var(--gf-radius-md, 16px);
	background: var(--gf-color-surface-2, #f1f3ec);
}
.gf-google-maps__placeholder {
	display: block;
	padding: var(--gf-space-50, 3rem) var(--gf-space-40, 1.5rem);
	text-align: center;
	color: var(--gf-color-muted, #71807a);
	background: var(--gf-color-surface-2, #f1f3ec);
	border: 1.5px dashed var(--gf-color-border-strong, #cfd4c6);
	border-radius: var(--gf-radius-md, 16px);
}
@media (max-width: 640px) {
	.gf-google-maps__frame { height: min(var(--gf-map-height, 420px), 320px); }
}

/* == html == */
.gf-html__placeholder {
	display: block;
	padding: var(--gf-space-40, 1.5rem);
	text-align: center;
	color: var(--gf-color-muted, #71807a);
	font-family: var(--gf-font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
	font-size: var(--gf-size-sm, 0.875rem);
	background: var(--gf-color-surface-2, #f1f3ec);
	border: 1px dashed var(--gf-color-border-strong, #cfd4c6);
	border-radius: var(--gf-radius-md, 16px);
}

/* == icon == */
.gf-icon{ display:inline-flex; align-items:center; justify-content:center; line-height:0; color:var(--gf-icon-color, var(--gf-color-brand, #9bd45f)); }
.gf-icon svg{ width:var(--gf-icon-size,48px); height:var(--gf-icon-size,48px); display:block; }
a.gf-icon{ text-decoration:none; transition:transform 0.2s ease, opacity 0.2s ease; }
a.gf-icon:hover{ opacity:0.85; }
a.gf-icon:focus-visible{ outline:2px solid var(--gf-color-brand,#9bd45f); outline-offset:3px; border-radius:var(--gf-radius-sm,10px); }
.gf-icon__placeholder{ font-size:var(--gf-size-sm,0.875rem); color:var(--gf-color-muted,#71807a); font-family:var(--gf-font-body,sans-serif); }
@media (prefers-reduced-motion: reduce){ a.gf-icon{ transition:none; } }

/* == icon-list == */
.gf-icon-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(var(--gf-cols, 1), minmax(0, 1fr)); gap: var(--gf-gap, 0.75rem); }
.gf-icon-list__item { display: flex; align-items: flex-start; gap: 0.6rem; color: var(--gf-color-ink-2, #46514a); line-height: 1.5; }
.gf-icon-list__icon { display: inline-flex; flex: 0 0 auto; color: var(--gf-color-brand-strong, #4f7a1f); margin-top: 0.1em; }
.gf-icon-list__icon svg { width: 1.15em; height: 1.15em; display: block; }
.gf-icon-list__text { flex: 1 1 auto; }
.gf-icon-list__link { color: inherit; text-decoration: none; border-bottom: 1px solid transparent; transition: border-color 0.15s ease; }
.gf-icon-list__link:hover { border-bottom-color: var(--gf-color-brand-strong, #4f7a1f); }
@media (max-width: 640px) {
	.gf-icon-list { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
	.gf-icon-list__link { transition: none; }
}

/* == image-carousel == */
.gf-image-carousel{ position:relative; }
.gf-image-carousel .gf-carousel__viewport{ overflow:hidden; }
.gf-image-carousel .gf-carousel__track{
	list-style:none; margin:0; padding:0; display:flex; gap:var(--gf-gap,1rem);
	overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth;
	-webkit-overflow-scrolling:touch; scrollbar-width:none;
}
.gf-image-carousel .gf-carousel__track::-webkit-scrollbar{ display:none; }
.gf-image-carousel .gf-carousel__track:focus-visible{ outline:2px solid var(--gf-color-brand,#9bd45f); outline-offset:2px; }
.gf-image-carousel .gf-carousel__slide{
	flex:0 0 calc((100% - (var(--gf-per,3) - 1) * var(--gf-gap,1rem)) / var(--gf-per,3));
	scroll-snap-align:start; margin:0; min-width:0;
}
.gf-image-carousel .gf-carousel__figure{ margin:0; overflow:hidden; border-radius:var(--gf-radius-md,16px); background:var(--gf-color-surface-2,#f1f3ec); }
.gf-image-carousel .gf-carousel__img{ display:block; width:100%; height:100%; object-fit:cover; aspect-ratio:var(--gf-ratio, 16 / 9); }
.gf-image-carousel .gf-carousel__empty{ flex:1 0 100%; padding:var(--gf-space-40,1.5rem); text-align:center; color:var(--gf-color-muted,#71807a); border:1px dashed var(--gf-color-border-strong,#cfd4c6); border-radius:var(--gf-radius-md,16px); }
.gf-image-carousel .gf-carousel__arrow{
	position:absolute; top:50%; transform:translateY(-50%); z-index:2;
	width:44px; height:44px; display:inline-flex; align-items:center; justify-content:center;
	border:1px solid var(--gf-color-border,#e3e6dc); border-radius:var(--gf-radius-pill,999px);
	background:var(--gf-color-surface,#ffffff); color:var(--gf-color-ink,#15201a); cursor:pointer;
	box-shadow:0 6px 18px color-mix(in srgb, var(--gf-color-ink, #15201a) 14%, transparent);
}
.gf-image-carousel .gf-carousel__arrow--prev{ left:0.5rem; }
.gf-image-carousel .gf-carousel__arrow--next{ right:0.5rem; }
.gf-image-carousel .gf-carousel__arrow:hover{ background:var(--gf-color-surface-2,#f1f3ec); }
.gf-image-carousel .gf-carousel__arrow:focus-visible{ outline:2px solid var(--gf-color-brand,#9bd45f); outline-offset:2px; }
.gf-image-carousel .gf-carousel__arrow svg{ width:20px; height:20px; }
.gf-image-carousel .gf-carousel__dots{ display:flex; gap:0.5rem; justify-content:center; margin-top:var(--gf-space-30,1rem); }
.gf-image-carousel .gf-carousel__dot{
	width:9px; height:9px; padding:0; border:0; border-radius:var(--gf-radius-pill,999px);
	background:var(--gf-color-border-strong,#cfd4c6); cursor:pointer; transition:transform 0.2s ease, background-color 0.2s ease;
}
.gf-image-carousel .gf-carousel__dot[aria-current="true"]{ background:var(--gf-color-brand,#9bd45f); transform:scale(1.35); }
.gf-image-carousel .gf-carousel__dot:focus-visible{ outline:2px solid var(--gf-color-brand,#9bd45f); outline-offset:2px; }
@media (max-width:1024px){ .gf-image-carousel .gf-carousel__slide{ flex-basis:calc((100% - var(--gf-gap,1rem)) / 2); } }
@media (max-width:640px){ .gf-image-carousel .gf-carousel__slide{ flex-basis:85%; } }
@media (prefers-reduced-motion: reduce){
	.gf-image-carousel .gf-carousel__track{ scroll-behavior:auto; }
	.gf-image-carousel .gf-carousel__dot{ transition:none; }
}

/* == image-hotspot == */
.gf-image-hotspot{ position:relative; display:inline-block; margin:0; max-width:100%; }
.gf-image-hotspot__img{ display:block; width:100%; height:auto; border-radius:var(--gf-radius-md,16px); }
.gf-image-hotspot__dot{
	position:absolute; transform:translate(-50%,-50%); width:30px; height:30px; padding:0; cursor:pointer;
	border:0; border-radius:var(--gf-radius-pill,999px); background:transparent; z-index:2;
}
.gf-image-hotspot__marker{
	display:block; width:20px; height:20px; margin:0 auto; border-radius:var(--gf-radius-pill,999px);
	background:var(--gf-color-brand,#9bd45f); border:3px solid var(--gf-color-surface,#ffffff);
	box-shadow:0 2px 8px color-mix(in srgb, var(--gf-color-ink, #15201a) 35%, transparent);
}
.gf-image-hotspot__dot::after{
	content:""; position:absolute; inset:-6px; border-radius:var(--gf-radius-pill,999px);
	border:2px solid var(--gf-color-brand,#9bd45f); opacity:0.55; animation:gf-hotspot-pulse 2.2s ease-out infinite;
}
.gf-image-hotspot__dot:hover .gf-image-hotspot__marker{ background:var(--gf-color-brand-strong,#4f7a1f); }
.gf-image-hotspot__dot:focus-visible{ outline:2px solid var(--gf-color-brand,#9bd45f); outline-offset:3px; }
.gf-image-hotspot__tip{
	position:absolute; z-index:3; max-width:240px; transform:translate(-50%,-115%);
	display:flex; flex-direction:column; gap:0.25rem; padding:0.6rem 0.8rem;
	background:var(--gf-color-ink,#15201a); color:var(--gf-color-on-dark,#f7fffd);
	border-radius:var(--gf-radius-sm,10px); box-shadow:0 12px 30px color-mix(in srgb, var(--gf-color-ink, #15201a) 30%, transparent);
	font-family:var(--gf-font-body,sans-serif); pointer-events:none;
}
.gf-image-hotspot__tip[hidden]{ display:none; }
.gf-image-hotspot__label{ font-family:var(--gf-font-display,sans-serif); font-size:var(--gf-size-sm,0.875rem); }
.gf-image-hotspot__text{ font-size:0.8125rem; line-height:1.4; color:var(--gf-color-border,#e3e6dc); }
.gf-image-hotspot__placeholder{ display:inline-flex; padding:var(--gf-space-50,3rem); color:var(--gf-color-muted,#71807a); border:1px dashed var(--gf-color-border-strong,#cfd4c6); border-radius:var(--gf-radius-md,16px); }
@keyframes gf-hotspot-pulse{ 0%{ transform:scale(0.8); opacity:0.6; } 70%{ transform:scale(1.5); opacity:0; } 100%{ opacity:0; } }
@media (prefers-reduced-motion: reduce){ .gf-image-hotspot__dot::after{ animation:none; } }

/* == lead == */
.gf-lead { margin: 0; max-width: 60ch; font-family: var(--gf-font-body, sans-serif); font-size: var(--gf-size-xl, 1.375rem); font-weight: 400; line-height: 1.55; color: var(--gf-color-ink-2, #46514a); }
.gf-lead[data-align="center"] { text-align: center; margin-inline: auto; }
.gf-lead[data-align="right"] { text-align: right; margin-inline: auto 0; }
.gf-lead a { color: var(--gf-color-accent, #5fae6e); }
@media (max-width: 640px) {
	.gf-lead { font-size: var(--gf-size-lg, 1.125rem); }
}

/* == login-register == */
.gf-login-register {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	max-width: 420px;
	padding: clamp(1.5rem, 3vw, 2.25rem);
	background: var(--gf-color-surface, #ffffff);
	border: 1px solid var(--gf-color-border, #e3e6dc);
	border-radius: var(--gf-radius-lg, 22px);
	color: var(--gf-color-ink-2, #46514a);
}
.gf-login-register p { margin: 0; }
.gf-login-register label {
	display: block;
	font-family: var(--gf-font-body, sans-serif);
	font-size: var(--gf-size-sm, 0.875rem);
	font-weight: 600;
	color: var(--gf-color-ink, #15201a);
	margin-bottom: 0.35rem;
}
.gf-login-register input[type="text"],
.gf-login-register input[type="password"],
.gf-login-register input[type="email"] {
	width: 100%;
	font-family: var(--gf-font-body, sans-serif);
	font-size: var(--gf-size-base, 1rem);
	color: var(--gf-color-ink, #15201a);
	background: var(--gf-color-surface, #ffffff);
	border: 1.5px solid var(--gf-color-border-strong, #cfd4c6);
	border-radius: var(--gf-radius-md, 16px);
	padding: 0.7rem 0.9rem;
	margin-bottom: 0.85rem;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.gf-login-register input:focus {
	outline: none;
	border-color: var(--gf-color-brand, #9bd45f);
	box-shadow: 0 0 0 3px var(--gf-color-brand-soft, #eef7df);
}
.gf-login-register input[type="submit"],
.gf-login-register__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.8rem 1.6rem;
	font-family: var(--gf-font-body, sans-serif);
	font-weight: 600;
	font-size: var(--gf-size-base, 1rem);
	line-height: 1;
	cursor: pointer;
	text-decoration: none;
	color: var(--gf-color-brand-ink, #1e3209);
	background: var(--gf-color-brand, #9bd45f);
	border: 1.5px solid transparent;
	border-radius: var(--gf-radius-pill, 999px);
	transition: background-color .15s ease, color .15s ease;
}
.gf-login-register input[type="submit"]:hover,
.gf-login-register__cta:hover { background: var(--gf-color-brand-strong, #4f7a1f); color: var(--gf-color-on-dark, #f7fffd); }
.gf-login-register .login-remember label { font-weight: 400; }
.gf-login-register__alt { font-size: var(--gf-size-sm, 0.875rem); color: var(--gf-color-muted, #71807a); }
.gf-login-register__alt a { color: var(--gf-color-brand-strong, #4f7a1f); font-weight: 600; }
.gf-login-register__notice { color: var(--gf-color-muted, #71807a); }
@media (prefers-reduced-motion: reduce) {
	.gf-login-register input, .gf-login-register__cta { transition: none; }
}

/* == logo-grid == */
.gf-logo-grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(var(--gf-cols, 4), minmax(0, 1fr));
	gap: var(--gf-space-40, 1.5rem);
	align-items: center;
}
.gf-logo-grid__item {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--gf-space-20, 0.5rem);
}
.gf-logo-grid__link { display: inline-flex; }
.gf-logo-grid__img {
	max-width: 100%;
	height: auto;
	max-height: 3.5rem;
	width: auto;
	object-fit: contain;
	transition: filter 0.2s ease, opacity 0.2s ease;
}
.gf-logo-grid[data-grayscale="1"] .gf-logo-grid__img { filter: grayscale(1); opacity: 0.7; }
.gf-logo-grid[data-grayscale="1"] .gf-logo-grid__item:hover .gf-logo-grid__img,
.gf-logo-grid[data-grayscale="1"] .gf-logo-grid__link:focus-visible .gf-logo-grid__img { filter: grayscale(0); opacity: 1; }
.gf-logo-grid__empty { color: var(--gf-color-muted, #71807a); grid-column: 1 / -1; text-align: center; }
@media (max-width: 1024px) {
	.gf-logo-grid { grid-template-columns: repeat(min(var(--gf-cols, 4), 4), minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.gf-logo-grid { grid-template-columns: repeat(min(var(--gf-cols, 4), 2), minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
	.gf-logo-grid__img { transition: none; }
}

/* == loop-carousel == */
.gf-loop-carousel { position: relative; }
.gf-loop-carousel__viewport {
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}
.gf-loop-carousel__viewport::-webkit-scrollbar { display: none; }
.gf-loop-carousel__viewport:focus-visible {
	outline: 2px solid var(--gf-color-brand-strong, #4f7a1f);
	outline-offset: 3px;
	border-radius: var(--gf-radius-sm, 10px);
}
.gf-loop-carousel__track {
	display: flex;
	gap: var(--gf-space-40, 1.5rem);
	margin: 0;
	padding: 0.25rem;
	list-style: none;
}
.gf-loop-carousel__slide {
	scroll-snap-align: start;
	flex: 0 0 clamp(260px, 33.333%, 440px);
	min-width: 0;
}
.gf-loop-carousel__card {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: clip;
	background: var(--gf-color-surface, #ffffff);
	border: 1px solid var(--gf-color-border, #e3e6dc);
	border-radius: var(--gf-radius-md, 16px);
}
.gf-loop-carousel__media {
	display: block;
	aspect-ratio: 16 / 9;
	overflow: clip;
	background: var(--gf-color-surface-2, #f1f3ec);
}
.gf-loop-carousel__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gf-loop-carousel__body {
	display: flex;
	flex-direction: column;
	gap: var(--gf-space-20, 0.5rem);
	padding: var(--gf-space-40, 1.5rem);
	flex: 1 1 auto;
}
.gf-loop-carousel__meta {
	margin: 0;
	font-size: var(--gf-size-sm, 0.875rem);
	color: var(--gf-color-muted, #71807a);
}
.gf-loop-carousel__title {
	margin: 0;
	font-family: var(--gf-font-display, ui-sans-serif, system-ui, sans-serif);
	font-size: var(--gf-size-lg, 1.125rem);
	line-height: 1.3;
}
.gf-loop-carousel__title a { color: var(--gf-color-ink, #15201a); text-decoration: none; }
.gf-loop-carousel__title a:hover { color: var(--gf-color-brand-strong, #4f7a1f); }
.gf-loop-carousel__excerpt {
	margin: 0;
	color: var(--gf-color-ink-2, #46514a);
	font-size: var(--gf-size-base, 1rem);
	line-height: 1.55;
}
.gf-loop-carousel__more {
	margin-top: auto;
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	align-self: flex-start;
	color: var(--gf-color-brand-strong, #4f7a1f);
	font-weight: 600;
	text-decoration: none;
}
.gf-loop-carousel__more-icon svg { width: 1.05em; height: 1.05em; }
.gf-loop-carousel__arrow {
	position: absolute;
	top: 38%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	cursor: pointer;
	color: var(--gf-color-ink, #15201a);
	background: var(--gf-color-surface, #ffffff);
	border: 1px solid var(--gf-color-border, #e3e6dc);
	border-radius: var(--gf-radius-pill, 999px);
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
	transition: background .18s ease, color .18s ease, opacity .18s ease;
}
.gf-loop-carousel__arrow[data-dir="prev"] { left: -0.5rem; }
.gf-loop-carousel__arrow[data-dir="next"] { right: -0.5rem; }
.gf-loop-carousel__arrow:hover {
	background: var(--gf-color-brand, #9bd45f);
	color: var(--gf-color-brand-ink, #1e3209);
	border-color: var(--gf-color-brand, #9bd45f);
}
.gf-loop-carousel__arrow:focus-visible {
	outline: 2px solid var(--gf-color-brand-strong, #4f7a1f);
	outline-offset: 2px;
}
.gf-loop-carousel__arrow[disabled] { opacity: 0.35; pointer-events: none; }
.gf-loop-carousel__arrow svg { width: 1.4em; height: 1.4em; }
.gf-loop-carousel__dots {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem;
	margin-top: var(--gf-space-40, 1.5rem);
}
.gf-loop-carousel__dot {
	width: 0.65rem;
	height: 0.65rem;
	padding: 0;
	cursor: pointer;
	border: 0;
	border-radius: var(--gf-radius-pill, 999px);
	background: var(--gf-color-border-strong, #cfd4c6);
	transition: background .18s ease, transform .18s ease;
}
.gf-loop-carousel__dot[aria-selected="true"] {
	background: var(--gf-color-brand-strong, #4f7a1f);
	transform: scale(1.3);
}
.gf-loop-carousel__dot:focus-visible {
	outline: 2px solid var(--gf-color-brand-strong, #4f7a1f);
	outline-offset: 2px;
}
.gf-loop-carousel__skeleton {
	display: block;
	border-radius: var(--gf-radius-sm, 10px);
	background: var(--gf-color-surface-2, #f1f3ec);
}
.gf-loop-carousel__skeleton.gf-loop-carousel__media { aspect-ratio: 16 / 9; border-radius: 0; }
.gf-loop-carousel__skeleton--title { width: 80%; height: 1.1rem; }
.gf-loop-carousel__skeleton--text { width: 100%; height: 0.8rem; }
@media (max-width: 640px) {
	.gf-loop-carousel__slide { flex-basis: 85%; }
	.gf-loop-carousel__arrow { display: none; }
}
@media (prefers-reduced-motion: reduce) {
	.gf-loop-carousel__viewport { scroll-behavior: auto; }
	.gf-loop-carousel__arrow,
	.gf-loop-carousel__dot { transition: none; }
}

/* == lottie == */
.gf-lottie{ width:100%; max-width:var(--gf-lottie-width,320px); margin-inline:auto; min-height:60px; }
.gf-lottie svg{ display:block; width:100%; height:auto; }
.gf-lottie__placeholder{ display:flex; align-items:center; justify-content:center; min-height:120px; color:var(--gf-color-muted,#71807a); border:1px dashed var(--gf-color-border-strong,#cfd4c6); border-radius:var(--gf-radius-md,16px); font-family:var(--gf-font-body,sans-serif); }

/* == media-carousel == */
.gf-media-carousel{ position:relative; }
.gf-media-carousel .gf-carousel__viewport{ overflow:hidden; }
.gf-media-carousel .gf-carousel__track{
	list-style:none; margin:0; padding:0; display:flex; gap:var(--gf-gap,1rem);
	overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth;
	-webkit-overflow-scrolling:touch; scrollbar-width:none;
}
.gf-media-carousel .gf-carousel__track::-webkit-scrollbar{ display:none; }
.gf-media-carousel .gf-carousel__track:focus-visible{ outline:2px solid var(--gf-color-brand,#9bd45f); outline-offset:2px; }
.gf-media-carousel .gf-carousel__slide{
	flex:0 0 calc((100% - (var(--gf-per,2) - 1) * var(--gf-gap,1rem)) / var(--gf-per,2));
	scroll-snap-align:start; margin:0; min-width:0;
}
.gf-media-carousel .gf-carousel__figure{ margin:0; overflow:hidden; border-radius:var(--gf-radius-md,16px); background:var(--gf-color-surface-2,#f1f3ec); }
.gf-media-carousel .gf-carousel__img,
.gf-media-carousel .gf-carousel__video{ display:block; width:100%; height:100%; object-fit:cover; aspect-ratio:var(--gf-ratio, 16 / 9); }
.gf-media-carousel .gf-carousel__empty{ flex:1 0 100%; padding:var(--gf-space-40,1.5rem); text-align:center; color:var(--gf-color-muted,#71807a); border:1px dashed var(--gf-color-border-strong,#cfd4c6); border-radius:var(--gf-radius-md,16px); }
.gf-media-carousel .gf-carousel__arrow{
	position:absolute; top:50%; transform:translateY(-50%); z-index:2;
	width:44px; height:44px; display:inline-flex; align-items:center; justify-content:center;
	border:1px solid var(--gf-color-border,#e3e6dc); border-radius:var(--gf-radius-pill,999px);
	background:var(--gf-color-surface,#ffffff); color:var(--gf-color-ink,#15201a); cursor:pointer;
	box-shadow:0 6px 18px color-mix(in srgb, var(--gf-color-ink, #15201a) 14%, transparent);
}
.gf-media-carousel .gf-carousel__arrow--prev{ left:0.5rem; }
.gf-media-carousel .gf-carousel__arrow--next{ right:0.5rem; }
.gf-media-carousel .gf-carousel__arrow:hover{ background:var(--gf-color-surface-2,#f1f3ec); }
.gf-media-carousel .gf-carousel__arrow:focus-visible{ outline:2px solid var(--gf-color-brand,#9bd45f); outline-offset:2px; }
.gf-media-carousel .gf-carousel__arrow svg{ width:20px; height:20px; }
.gf-media-carousel .gf-carousel__dots{ display:flex; gap:0.5rem; justify-content:center; margin-top:var(--gf-space-30,1rem); }
.gf-media-carousel .gf-carousel__dot{
	width:9px; height:9px; padding:0; border:0; border-radius:var(--gf-radius-pill,999px);
	background:var(--gf-color-border-strong,#cfd4c6); cursor:pointer; transition:transform 0.2s ease, background-color 0.2s ease;
}
.gf-media-carousel .gf-carousel__dot[aria-current="true"]{ background:var(--gf-color-brand,#9bd45f); transform:scale(1.35); }
.gf-media-carousel .gf-carousel__dot:focus-visible{ outline:2px solid var(--gf-color-brand,#9bd45f); outline-offset:2px; }
@media (max-width:640px){ .gf-media-carousel .gf-carousel__slide{ flex-basis:85%; } }
@media (prefers-reduced-motion: reduce){
	.gf-media-carousel .gf-carousel__track{ scroll-behavior:auto; }
	.gf-media-carousel .gf-carousel__dot{ transition:none; }
}

/* == mega-menu == */
.gf-mega-menu { position: relative; }
.gf-megamenu__list {
	list-style: none; margin: 0; padding: 0;
	display: flex; flex-wrap: wrap; align-items: center;
	gap: var(--gf-space-50, 1.5rem);
	font-family: var(--gf-font-body, sans-serif);
}
.gf-megamenu__list > li { position: relative; }
.gf-megamenu__list a {
	display: inline-flex; align-items: center; gap: .3rem; padding: .4rem 0;
	color: var(--gf-color-ink, #15201a); text-decoration: none; font-weight: 500;
}
.gf-megamenu__list a:hover,
.gf-megamenu__list a:focus-visible { color: var(--gf-color-brand-strong, #4f7a1f); }
.gf-megamenu__list .menu-item-has-children > a::after {
	content: ""; width: .5em; height: .5em; margin-left: .1em;
	border: 2px solid currentColor; border-top: 0; border-left: 0;
	transform: rotate(45deg) translateY(-2px); transition: transform .18s ease;
}
.gf-megamenu__list .menu-item-has-children.is-open > a::after { transform: rotate(225deg) translateY(0); }
.gf-megamenu__list .sub-menu {
	list-style: none; margin: 0; padding: var(--gf-space-40, 1rem);
	position: absolute; top: 100%; left: 0; z-index: 40; min-width: 220px;
	display: grid; gap: .15rem;
	background: var(--gf-color-surface, #ffffff);
	border: 1px solid var(--gf-color-border, #e3e7db);
	border-radius: var(--gf-radius-md, 16px);
	box-shadow: 0 22px 45px -30px var(--gf-color-ink, #15201a);
	visibility: hidden; opacity: 0; transform: translateY(6px);
	transition: opacity .16s ease, transform .16s ease, visibility .16s;
}
.gf-megamenu__list .sub-menu a { display: block; padding: .45rem .6rem; border-radius: var(--gf-radius-sm, 10px); color: var(--gf-color-ink-2, #46514a); }
.gf-megamenu__list .sub-menu a:hover,
.gf-megamenu__list .sub-menu a:focus-visible { background: var(--gf-color-brand-soft, #eef7df); color: var(--gf-color-brand-strong, #4f7a1f); }
.gf-mega-menu[data-trigger="hover"] .menu-item-has-children:hover > .sub-menu,
.gf-megamenu__list .menu-item-has-children:focus-within > .sub-menu,
.gf-megamenu__list .menu-item-has-children.is-open > .sub-menu { visibility: visible; opacity: 1; transform: none; }
/* Full-width mega panel: add a "mega" CSS class to the menu item. */
.gf-megamenu__list .menu-item-has-children.mega { position: static; }
.gf-megamenu__list .menu-item-has-children.mega > .sub-menu { left: 0; right: 0; width: 100%; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
@media (prefers-reduced-motion: reduce) {
	.gf-megamenu__list .sub-menu { transition: none; }
	.gf-megamenu__list .menu-item-has-children > a::after { transition: none; }
}
@media (max-width: 1024px) {
	.gf-megamenu__list .sub-menu { position: static; box-shadow: none; border: 0; padding: .25rem 0 .25rem 1rem; min-width: 0; }
}

/* == menu-anchor == */
.gf-menu-anchor { display: block; scroll-margin-top: var(--gf-anchor-offset, 6rem); }
.gf-menu-anchor__label { display: inline-block; font: 600 11px/1 var(--gf-font-mono, monospace); color: var(--gf-color-brand-strong, #4f7a1f); background: var(--gf-color-brand-soft, #eef7df); border: 1px dashed var(--gf-color-brand, #9bd45f); border-radius: var(--gf-radius-sm, 10px); padding: 3px 7px; }

/* == nav-menu == */
.gf-nav-menu { display: block; }
.gf-navmenu__list {
	list-style: none; margin: 0; padding: 0;
	display: flex; flex-wrap: wrap; align-items: center;
	gap: var(--gf-space-50, 1.5rem);
	font-family: var(--gf-font-body, sans-serif);
}
.gf-nav-menu[data-layout="vertical"] .gf-navmenu__list { flex-direction: column; align-items: stretch; gap: var(--gf-space-30, .75rem); }
.gf-nav-menu[data-align="center"] .gf-navmenu__list { justify-content: center; }
.gf-nav-menu[data-align="end"] .gf-navmenu__list { justify-content: flex-end; }
.gf-navmenu__list a {
	position: relative; display: inline-block; padding: .35rem 0;
	color: var(--gf-color-ink, #15201a); text-decoration: none; font-weight: 500;
}
.gf-navmenu__list a:hover,
.gf-navmenu__list a:focus-visible { color: var(--gf-color-brand-strong, #4f7a1f); }
.gf-navmenu__list a::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 2px;
	background: var(--gf-color-brand, #9bd45f);
	transform: scaleX(0); transform-origin: left; transition: transform .18s ease;
}
.gf-navmenu__list a:hover::after,
.gf-navmenu__list a:focus-visible::after,
.gf-navmenu__list a[aria-current]::after,
.gf-navmenu__list .current-menu-item > a::after { transform: scaleX(1); }
.gf-navmenu__list .current-menu-item > a,
.gf-navmenu__list a[aria-current] { color: var(--gf-color-brand-strong, #4f7a1f); }
.gf-navmenu__list[data-placeholder="1"] a { color: var(--gf-color-muted, #71807a); cursor: default; }
.gf-navmenu__list[data-placeholder="1"] a::after { display: none; }
.gf-nav-menu[data-layout="vertical"] .gf-navmenu__list a::after { display: none; }
.gf-navmenu__list .sub-menu { display: none; }
@media (prefers-reduced-motion: reduce) {
	.gf-navmenu__list a::after { transition: none; }
}
@media (max-width: 640px) {
	.gf-navmenu__list { gap: var(--gf-space-40, 1rem); }
}

/* == oembed == */
.gf-oembed { width: 100%; }
.gf-oembed[style*="--gf-oembed-max"] .gf-oembed__frame { max-width: var(--gf-oembed-max, 100%); margin-inline: auto; }
.gf-oembed__frame { position: relative; width: 100%; }
/* Normalise common provider iframes to a responsive 16:9 box. */
.gf-oembed__frame :where(iframe, video, embed, object) {
	display: block;
	width: 100%;
	max-width: 100%;
	aspect-ratio: 16 / 9;
	height: auto;
	border: 0;
	border-radius: var(--gf-radius-md, 16px);
}
/* Rich card embeds (tweets, IG) keep their intrinsic height. */
.gf-oembed__frame :where(blockquote, .twitter-tweet, .instagram-media) { margin-inline: auto; }
.gf-oembed__placeholder {
	display: block;
	padding: var(--gf-space-40, 1.5rem);
	text-align: center;
	color: var(--gf-color-muted, #71807a);
	background: var(--gf-color-surface-2, #f1f3ec);
	border: 1.5px dashed var(--gf-color-border-strong, #cfd4c6);
	border-radius: var(--gf-radius-md, 16px);
	word-break: break-all;
}
.gf-oembed__fallback { color: var(--gf-color-brand-strong, #4f7a1f); word-break: break-all; }

/* == off-canvas == */
.gf-off-canvas { display: inline-block; }
.gf-off-canvas__trigger { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.7rem 1.3rem; font-family: var(--gf-font-body, sans-serif); font-weight: 600; font-size: var(--gf-size-base, 1rem); color: var(--gf-color-ink, #15201a); background: var(--gf-color-surface, #ffffff); border: 1.5px solid var(--gf-color-border-strong, #cfd4c6); border-radius: var(--gf-radius-pill, 999px); cursor: pointer; }
.gf-off-canvas__trigger:hover { border-color: var(--gf-color-brand-strong, #4f7a1f); color: var(--gf-color-brand-strong, #4f7a1f); }
.gf-off-canvas__trigger:focus-visible { outline: 2px solid var(--gf-color-accent, #5fae6e); outline-offset: 2px; }
.gf-off-canvas__trigger-icon { display: inline-flex; }
.gf-off-canvas__trigger-icon svg { width: 1.15rem; height: 1.15rem; }
.gf-off-canvas__backdrop { position: fixed; inset: 0; z-index: 998; background: rgba(21, 32, 26, 0.5); opacity: 0; visibility: hidden; transition: opacity .3s ease, visibility .3s ease; }
.gf-off-canvas__panel { position: fixed; top: 0; bottom: 0; z-index: 999; width: min(400px, 86vw); max-width: 100%; display: flex; flex-direction: column; gap: 1rem; padding: 1.5rem; overflow-y: auto; background: var(--gf-color-surface, #ffffff); color: var(--gf-color-ink-2, #46514a); box-shadow: 0 0 40px rgba(21, 32, 26, 0.25); visibility: hidden; transition: transform .3s ease, visibility .3s ease; }
.gf-off-canvas[data-position="right"] .gf-off-canvas__panel { right: 0; transform: translateX(100%); }
.gf-off-canvas[data-position="left"] .gf-off-canvas__panel { left: 0; transform: translateX(-100%); }
.gf-off-canvas[data-open] .gf-off-canvas__panel { transform: none; visibility: visible; }
.gf-off-canvas[data-open] .gf-off-canvas__backdrop { opacity: 1; visibility: visible; }
.gf-off-canvas__close { align-self: flex-end; appearance: none; -webkit-appearance: none; background: transparent; border: 0; padding: 0.35rem; color: var(--gf-color-muted, #71807a); cursor: pointer; border-radius: var(--gf-radius-sm, 10px); }
.gf-off-canvas__close:hover { color: var(--gf-color-ink, #15201a); }
.gf-off-canvas__close:focus-visible { outline: 2px solid var(--gf-color-accent, #5fae6e); outline-offset: 2px; }
.gf-off-canvas__close svg { width: 1.4rem; height: 1.4rem; }
.gf-off-canvas__body { line-height: 1.7; }
.gf-off-canvas__body > :first-child { margin-top: 0; }
.gf-off-canvas__body > :last-child { margin-bottom: 0; }
@media (prefers-reduced-motion: reduce) { .gf-off-canvas__panel, .gf-off-canvas__backdrop { transition: none; } }

/* == page-title == */
.gf-page-title { display: block; }
.gf-pagetitle__title {
	margin: 0; font-family: var(--gf-font-display, sans-serif); line-height: 1.1;
	font-size: var(--gf-size-4xl, 2.5rem); letter-spacing: -0.02em;
	color: var(--gf-color-ink, #15201a);
}
.gf-page-title[data-align="center"] { text-align: center; }
.gf-page-title[data-align="right"] { text-align: right; }
@media (max-width: 640px) {
	.gf-pagetitle__title { font-size: var(--gf-size-3xl, 2rem); }
}

/* == payment-button == */
.gf-payment-button {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	padding: 0.9rem 1.7rem;
	font-family: var(--gf-font-body, sans-serif);
	font-weight: 600;
	line-height: 1.1;
	text-decoration: none;
	cursor: pointer;
	color: var(--gf-color-brand-ink, #1e3209);
	background: var(--gf-color-brand, #9bd45f);
	border: 1.5px solid transparent;
	border-radius: var(--gf-radius-pill, 999px);
	transition: background-color .15s ease, color .15s ease, transform .15s ease;
}
.gf-payment-button:hover { background: var(--gf-color-brand-strong, #4f7a1f); color: var(--gf-color-on-dark, #f7fffd); transform: translateY(-1px); }
.gf-payment-button:focus-visible { outline: 2px solid var(--gf-color-brand-strong, #4f7a1f); outline-offset: 3px; }
.gf-payment-button[disabled] { opacity: 0.6; cursor: not-allowed; }
.gf-payment-button__icon { display: inline-flex; }
.gf-payment-button__icon svg { width: 1.25rem; height: 1.25rem; }
.gf-payment-button__text { display: inline-flex; align-items: baseline; gap: 0.4rem; }
.gf-payment-button__amount { font-weight: 700; }
.gf-payment-button__desc { font-size: var(--gf-size-sm, 0.875rem); font-weight: 400; opacity: 0.85; }
.gf-payment-button__hint { font-size: var(--gf-size-sm, 0.875rem); font-weight: 400; opacity: 0.85; }
.gf-payment-button[data-provider="stripe"] { background: var(--gf-color-ink, #15201a); color: var(--gf-color-on-dark, #f7fffd); }
.gf-payment-button[data-provider="stripe"]:hover { background: var(--gf-color-ink-2, #46514a); }
@media (prefers-reduced-motion: reduce) {
	.gf-payment-button { transition: none; }
	.gf-payment-button:hover { transform: none; }
}

/* == portfolio == */
.gf-portfolio { display: flex; flex-direction: column; gap: 1.5rem; }
.gf-portfolio__filters { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.gf-portfolio__filter-btn {
	font-family: var(--gf-font-body, sans-serif);
	font-size: var(--gf-size-sm, 0.875rem);
	font-weight: 600;
	cursor: pointer;
	padding: 0.5rem 1rem;
	border-radius: var(--gf-radius-pill, 999px);
	border: 1.5px solid var(--gf-color-border-strong, #cfd4c6);
	background: transparent;
	color: var(--gf-color-ink-2, #46514a);
	transition: border-color .15s ease, color .15s ease, background-color .15s ease;
}
.gf-portfolio__filter-btn:hover { border-color: var(--gf-color-brand-strong, #4f7a1f); color: var(--gf-color-brand-strong, #4f7a1f); }
.gf-portfolio__filter-btn[aria-pressed="true"] {
	background: var(--gf-color-brand, #9bd45f);
	border-color: var(--gf-color-brand, #9bd45f);
	color: var(--gf-color-brand-ink, #1e3209);
}
.gf-portfolio__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(var(--gf-cols, 3), minmax(0, 1fr));
	gap: 1.25rem;
}
.gf-portfolio__item { margin: 0; }
.gf-portfolio__item[hidden] { display: none; }
.gf-portfolio__link { text-decoration: none; color: inherit; display: block; }
.gf-portfolio__figure {
	position: relative;
	margin: 0;
	background: var(--gf-color-surface, #ffffff);
	border: 1px solid var(--gf-color-border, #e3e6dc);
	border-radius: var(--gf-radius-lg, 22px);
	overflow: hidden;
	transition: transform .15s ease, box-shadow .15s ease;
}
.gf-portfolio__link:hover .gf-portfolio__figure,
.gf-portfolio__link:focus-visible .gf-portfolio__figure {
	transform: translateY(-3px);
	box-shadow: 0 18px 40px -28px var(--gf-color-ink, #15201a);
}
.gf-portfolio__img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.gf-portfolio__img--empty {
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--gf-color-surface-2, #f1f3ec);
	color: var(--gf-color-muted, #71807a);
}
.gf-portfolio__img--empty svg { width: 2rem; height: 2rem; }
.gf-portfolio__caption {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	padding: 1rem 1.15rem;
	position: relative;
}
.gf-portfolio__title {
	margin: 0;
	font-family: var(--gf-font-display, sans-serif);
	font-size: var(--gf-size-lg, 1.125rem);
	color: var(--gf-color-ink, #15201a);
}
.gf-portfolio__category {
	font-size: var(--gf-size-sm, 0.875rem);
	font-weight: 600;
	color: var(--gf-color-brand-strong, #4f7a1f);
}
.gf-portfolio__view {
	position: absolute;
	top: 1rem;
	right: 1.15rem;
	display: inline-flex;
	color: var(--gf-color-ink-2, #46514a);
}
.gf-portfolio__view svg { width: 1.25rem; height: 1.25rem; }
.gf-portfolio__placeholder { color: var(--gf-color-muted, #71807a); font-size: var(--gf-size-sm, 0.875rem); }
@media (max-width: 1024px) {
	.gf-portfolio__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.gf-portfolio__grid { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
	.gf-portfolio__filter-btn, .gf-portfolio__figure { transition: none; }
	.gf-portfolio__link:hover .gf-portfolio__figure { transform: none; }
}

/* == post-comments == */
.gf-post-comments{margin-block-start:var(--gf-space-40,1.5rem);font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif);color:var(--gf-color-ink-2,#46514a)}
.gf-post-comments[data-gf-placeholder]{padding:var(--gf-space-40,1.5rem);border:1px dashed var(--gf-color-border-strong,#cfd4c6);border-radius:var(--gf-radius-md,16px);color:var(--gf-color-muted,#71807a);text-align:center}

/* == post-content == */
.gf-post-content{font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif);font-size:var(--gf-size-base,1rem);line-height:1.7;color:var(--gf-color-ink-2,#46514a)}
.gf-post-content > *{margin-block:0 var(--gf-space-30,1rem)}
.gf-post-content > :first-child{margin-block-start:0}
.gf-post-content > :last-child{margin-block-end:0}
.gf-post-content h1,.gf-post-content h2,.gf-post-content h3,.gf-post-content h4{font-family:var(--gf-font-display,"Space Grotesk",ui-sans-serif,system-ui,sans-serif);color:var(--gf-color-ink,#15201a);line-height:1.2;margin-block:var(--gf-space-40,1.5rem) var(--gf-space-20,0.5rem)}
.gf-post-content a{color:var(--gf-color-brand-strong,#4f7a1f);text-decoration:underline;text-underline-offset:2px}
.gf-post-content img,.gf-post-content figure{max-width:100%;height:auto}
.gf-post-content img{border-radius:var(--gf-radius-md,16px)}
.gf-post-content blockquote{margin-inline:0;padding:var(--gf-space-20,0.5rem) var(--gf-space-30,1rem);border-inline-start:3px solid var(--gf-color-brand,#9bd45f);color:var(--gf-color-ink,#15201a);font-style:italic}
.gf-post-content ul,.gf-post-content ol{padding-inline-start:1.4em}
.gf-post-content code{font-family:var(--gf-font-mono,"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace);font-size:0.9em}
.gf-post-content[data-gf-placeholder]{padding:var(--gf-space-40,1.5rem);border:1px dashed var(--gf-color-border-strong,#cfd4c6);border-radius:var(--gf-radius-md,16px);color:var(--gf-color-muted,#71807a)}

/* == post-excerpt == */
.gf-post-excerpt{margin:0;max-width:70ch;font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif);font-size:var(--gf-size-lg,1.125rem);line-height:1.65;color:var(--gf-color-ink-2,#46514a)}
.gf-post-excerpt p{margin:0 0 var(--gf-space-20,0.5rem)}
.gf-post-excerpt p:last-child{margin-bottom:0}
.gf-post-excerpt[data-gf-placeholder]{color:var(--gf-color-muted,#71807a);font-style:italic}

/* == post-info == */
.gf-post-info{display:flex;flex-wrap:wrap;align-items:center;gap:var(--gf-space-20,0.5rem);margin:0;font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif);font-size:var(--gf-size-sm,0.875rem);line-height:1.4;color:var(--gf-color-muted,#71807a)}
.gf-post-info__item{display:inline-flex;align-items:center;gap:0.4em}
.gf-post-info__icon{display:inline-flex;color:var(--gf-color-brand-strong,#4f7a1f)}
.gf-post-info__icon svg{width:1em;height:1em}
.gf-post-info__link{color:inherit;text-decoration:none}
.gf-post-info__link:hover,.gf-post-info__link:focus-visible{color:var(--gf-color-brand-strong,#4f7a1f);text-decoration:underline}
.gf-post-info__sep{color:var(--gf-color-border-strong,#cfd4c6);user-select:none}
.gf-post-info[data-gf-placeholder]{color:var(--gf-color-muted,#71807a);font-style:italic}

/* == post-navigation == */
.gf-post-navigation{display:grid;grid-template-columns:1fr 1fr;gap:var(--gf-space-30,1rem);margin:0;font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif)}
.gf-post-navigation__link{display:inline-flex;align-items:center;gap:0.6em;padding:var(--gf-space-30,1rem);border:1px solid var(--gf-color-border,#e3e6dc);border-radius:var(--gf-radius-md,16px);background:var(--gf-color-surface,#ffffff);color:var(--gf-color-ink,#15201a);text-decoration:none;transition:border-color .15s ease,transform .15s ease}
.gf-post-navigation__link:hover,.gf-post-navigation__link:focus-visible{border-color:var(--gf-color-brand,#9bd45f);transform:translateY(-1px)}
.gf-post-navigation__prev{grid-column:1}
.gf-post-navigation__next{grid-column:2;justify-content:flex-end;text-align:right}
.gf-post-navigation__meta{display:flex;flex-direction:column;min-width:0}
.gf-post-navigation__label{font-size:var(--gf-size-sm,0.875rem);color:var(--gf-color-muted,#71807a)}
.gf-post-navigation__title{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gf-post-navigation__arrow{display:inline-flex;flex:0 0 auto;color:var(--gf-color-brand-strong,#4f7a1f)}
.gf-post-navigation__spacer{display:block}
@media (prefers-reduced-motion:reduce){.gf-post-navigation__link{transition:none}.gf-post-navigation__link:hover,.gf-post-navigation__link:focus-visible{transform:none}}
@media (max-width:640px){.gf-post-navigation{grid-template-columns:1fr}.gf-post-navigation__prev,.gf-post-navigation__next{grid-column:1;justify-content:flex-start;text-align:left}}

/* == post-title == */
.gf-post-title{margin:0;font-family:var(--gf-font-display,"Space Grotesk",ui-sans-serif,system-ui,sans-serif);font-size:var(--gf-size-3xl,clamp(1.875rem,1.5rem + 1.8vw,2.4rem));line-height:1.15;color:var(--gf-color-ink,#15201a);text-wrap:balance}
.gf-post-title__link{color:inherit;text-decoration:none}
.gf-post-title__link:hover,.gf-post-title__link:focus-visible{color:var(--gf-color-brand-strong,#4f7a1f);text-decoration:underline}
.gf-post-title[data-align="left"]{text-align:left}
.gf-post-title[data-align="center"]{text-align:center}
.gf-post-title[data-align="right"]{text-align:right}
.gf-post-title[data-gf-placeholder]{color:var(--gf-color-muted,#71807a)}

/* == posts == */
.gf-posts { display: block; }
.gf-posts__grid {
	display: grid;
	grid-template-columns: repeat( var(--gf-cols, 3), minmax(0, 1fr) );
	gap: var(--gf-space-40, 1.5rem);
}
.gf-posts__card {
	display: flex;
	flex-direction: column;
	overflow: clip;
	background: var(--gf-color-surface, #ffffff);
	border: 1px solid var(--gf-color-border, #e3e6dc);
	border-radius: var(--gf-radius-md, 16px);
}
.gf-posts__media {
	display: block;
	aspect-ratio: 16 / 9;
	overflow: clip;
	background: var(--gf-color-surface-2, #f1f3ec);
}
.gf-posts__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .4s ease;
}
.gf-posts__card:hover .gf-posts__img { transform: scale(1.04); }
.gf-posts__body {
	display: flex;
	flex-direction: column;
	gap: var(--gf-space-20, 0.5rem);
	padding: var(--gf-space-40, 1.5rem);
	flex: 1 1 auto;
}
.gf-posts__meta {
	margin: 0;
	font-size: var(--gf-size-sm, 0.875rem);
	color: var(--gf-color-muted, #71807a);
}
.gf-posts__title {
	margin: 0;
	font-family: var(--gf-font-display, ui-sans-serif, system-ui, sans-serif);
	font-size: var(--gf-size-xl, 1.25rem);
	line-height: 1.25;
}
.gf-posts__title a {
	color: var(--gf-color-ink, #15201a);
	text-decoration: none;
}
.gf-posts__title a:hover { color: var(--gf-color-brand-strong, #4f7a1f); }
.gf-posts__title a:focus-visible {
	outline: 2px solid var(--gf-color-brand-strong, #4f7a1f);
	outline-offset: 2px;
}
.gf-posts__excerpt {
	margin: 0;
	color: var(--gf-color-ink-2, #46514a);
	font-size: var(--gf-size-base, 1rem);
	line-height: 1.6;
}
.gf-posts__more {
	margin-top: auto;
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	align-self: flex-start;
	color: var(--gf-color-brand-strong, #4f7a1f);
	font-weight: 600;
	text-decoration: none;
	transition: gap .2s ease;
}
.gf-posts__more-icon { display: inline-flex; }
.gf-posts__more-icon svg { width: 1.05em; height: 1.05em; }
.gf-posts__more:hover { gap: 0.7em; }
.gf-posts__more:focus-visible {
	outline: 2px solid var(--gf-color-brand-strong, #4f7a1f);
	outline-offset: 2px;
}
.gf-posts__pagination {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--gf-space-20, 0.5rem);
	margin-top: var(--gf-space-50, 3rem);
}
.gf-posts__pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.5rem;
	height: 2.5rem;
	padding: 0 0.75rem;
	color: var(--gf-color-ink, #15201a);
	background: var(--gf-color-surface, #ffffff);
	border: 1px solid var(--gf-color-border, #e3e6dc);
	border-radius: var(--gf-radius-sm, 10px);
	text-decoration: none;
	font-size: var(--gf-size-sm, 0.875rem);
}
.gf-posts__pagination .page-numbers:hover { border-color: var(--gf-color-brand, #9bd45f); }
.gf-posts__pagination .page-numbers.current {
	background: var(--gf-color-brand, #9bd45f);
	border-color: var(--gf-color-brand, #9bd45f);
	color: var(--gf-color-brand-ink, #1e3209);
	font-weight: 600;
}
.gf-posts__pagination .page-numbers.dots { border-color: transparent; background: transparent; }
/* Empty-editor skeletons */
.gf-posts__skeleton {
	display: block;
	border-radius: var(--gf-radius-sm, 10px);
	background: var(--gf-color-surface-2, #f1f3ec);
}
.gf-posts__skeleton.gf-posts__media { aspect-ratio: 16 / 9; border-radius: 0; }
.gf-posts__skeleton--meta { width: 40%; height: 0.75rem; }
.gf-posts__skeleton--title { width: 85%; height: 1.25rem; }
.gf-posts__skeleton--text { width: 100%; height: 0.8rem; }
.gf-posts__skeleton--short { width: 60%; }
.gf-posts__card[data-placeholder] .gf-posts__skeleton { animation: gf-posts-pulse 1.4s ease-in-out infinite; }
@keyframes gf-posts-pulse {
	0%, 100% { opacity: 1; }
	50% { opacity: 0.55; }
}
@media (max-width: 1024px) {
	.gf-posts__grid { grid-template-columns: repeat( min( var(--gf-cols, 3), 2 ), minmax(0, 1fr) ); }
}
@media (max-width: 640px) {
	.gf-posts__grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
	.gf-posts__img,
	.gf-posts__more { transition: none; }
	.gf-posts__card:hover .gf-posts__img { transform: none; }
	.gf-posts__card[data-placeholder] .gf-posts__skeleton { animation: none; }
}

/* == price-list == */
.gf-price-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 1.1rem; }
.gf-price-list__item { margin: 0; }
.gf-price-list__head { display: flex; align-items: baseline; gap: 0.5rem; }
.gf-price-list__title { font-family: var(--gf-font-display, sans-serif); font-weight: 600; color: var(--gf-color-ink, #15201a); }
.gf-price-list__price { font-family: var(--gf-font-display, sans-serif); font-weight: 600; color: var(--gf-color-brand-strong, #4f7a1f); white-space: nowrap; }
.gf-price-list__leader { flex: 0 1 auto; min-width: 1.5rem; }
.gf-price-list[data-leader="1"] .gf-price-list__leader { flex: 1 1 auto; align-self: stretch; border-bottom: 1px dotted var(--gf-color-border-strong, #cfd4c6); transform: translateY(-0.28em); }
.gf-price-list:not([data-leader="1"]) .gf-price-list__title { flex: 1 1 auto; }
.gf-price-list__desc { margin: 0.25rem 0 0; font-size: var(--gf-size-sm, 0.875rem); color: var(--gf-color-muted, #71807a); line-height: 1.5; max-width: 46ch; }

/* == pricing-table == */
.gf-pricing-table {
	display: flex;
	flex-direction: column;
	gap: 1.1rem;
	padding: clamp(1.5rem, 3vw, 2.25rem);
	background: var(--gf-color-surface, #ffffff);
	border: 1px solid var(--gf-color-border, #e3e6dc);
	border-radius: var(--gf-radius-lg, 22px);
	color: var(--gf-color-ink-2, #46514a);
	transition: transform .15s ease, box-shadow .15s ease;
}
.gf-pricing-table[data-featured="1"] {
	border: 2px solid var(--gf-color-brand, #9bd45f);
	transform: scale(1.03);
	box-shadow: 0 18px 40px -24px var(--gf-color-brand-strong, #4f7a1f);
}
.gf-pricing-table__badge {
	align-self: flex-start;
	font: 600 0.6875rem/1 var(--gf-font-mono, monospace);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 0.35rem 0.6rem;
	border-radius: var(--gf-radius-pill, 999px);
	background: var(--gf-color-brand-soft, #eef7df);
	color: var(--gf-color-brand-strong, #4f7a1f);
}
.gf-pricing-table__name {
	margin: 0;
	font-family: var(--gf-font-display, sans-serif);
	font-size: var(--gf-size-xl, 1.25rem);
	color: var(--gf-color-ink, #15201a);
}
.gf-pricing-table__price {
	margin: 0;
	display: flex;
	align-items: baseline;
	gap: 0.15rem;
	color: var(--gf-color-ink, #15201a);
}
.gf-pricing-table__currency { font-size: var(--gf-size-lg, 1.125rem); font-weight: 600; }
.gf-pricing-table__amount { font-family: var(--gf-font-display, sans-serif); font-size: var(--gf-size-4xl, 2.5rem); font-weight: 700; line-height: 1; }
.gf-pricing-table__period { font-size: var(--gf-size-sm, 0.875rem); color: var(--gf-color-muted, #71807a); }
.gf-pricing-table__features { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.6rem; }
.gf-pricing-table__feature { display: flex; align-items: flex-start; gap: 0.5rem; line-height: 1.45; }
.gf-pricing-table__feature-icon { display: inline-flex; flex: 0 0 auto; margin-top: 0.1rem; }
.gf-pricing-table__feature-icon svg { width: 1.15rem; height: 1.15rem; }
.gf-pricing-table__feature[data-included="1"] .gf-pricing-table__feature-icon { color: var(--gf-color-brand-strong, #4f7a1f); }
.gf-pricing-table__feature[data-included="0"] { color: var(--gf-color-muted, #71807a); }
.gf-pricing-table__feature[data-included="0"] .gf-pricing-table__feature-icon { color: var(--gf-color-border-strong, #cfd4c6); }
.gf-pricing-table__btn {
	margin-top: auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.85rem 1.4rem;
	font-family: var(--gf-font-body, sans-serif);
	font-weight: 600;
	text-decoration: none;
	border-radius: var(--gf-radius-pill, 999px);
	background: var(--gf-color-ink, #15201a);
	color: var(--gf-color-on-dark, #f7fffd);
	border: 1.5px solid transparent;
	transition: background-color .15s ease, color .15s ease;
}
.gf-pricing-table[data-featured="1"] .gf-pricing-table__btn { background: var(--gf-color-brand, #9bd45f); color: var(--gf-color-brand-ink, #1e3209); }
.gf-pricing-table__btn:hover { background: var(--gf-color-brand-strong, #4f7a1f); color: var(--gf-color-on-dark, #f7fffd); }
.gf-pricing-table__placeholder { color: var(--gf-color-muted, #71807a); font-size: var(--gf-size-sm, 0.875rem); }
.gf-pricing-table .gf-visually-hidden {
	position: absolute;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0);
	white-space: nowrap; border: 0;
}
@media (prefers-reduced-motion: reduce) {
	.gf-pricing-table { transition: none; }
	.gf-pricing-table[data-featured="1"] { transform: none; }
}

/* == product-facets == */
.gf-facets { display: flex; flex-direction: column; gap: var(--gf-space-30, 1rem); }
.gf-facets__head { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.gf-facets__active { font-size: .8125rem; opacity: .7; }
.gf-facets__clear { font-size: .8125rem; text-decoration: underline; }
.gf-facets__group { border-block-end: 1px solid var(--gf-color-border, rgba(0,0,0,.12)); padding-block-end: var(--gf-space-30, 1rem); }
.gf-facets__group[open] .gf-facets__title::after { transform: rotate(225deg) translateY(-2px); }
.gf-facets__title {
	display: flex; align-items: center; justify-content: space-between;
	cursor: pointer; list-style: none; font-size: .75rem; letter-spacing: .08em;
	text-transform: uppercase; margin: 0 0 var(--gf-space-20, .5rem);
}
.gf-facets__title::-webkit-details-marker { display: none; }
.gf-facets__title::after {
	content: ""; width: .5rem; height: .5rem; margin-inline-start: .5rem;
	border-inline-end: 1.5px solid currentColor; border-block-end: 1.5px solid currentColor;
	transform: rotate(45deg) translateY(-2px); transition: transform .15s ease;
}
.gf-facets__opts { display: flex; flex-direction: column; gap: .125rem; }
.gf-facets__opt {
	display: flex; align-items: center; gap: .5rem; padding: .3rem .25rem;
	text-decoration: none; color: inherit; border-radius: var(--gf-radius-10, 3px);
	font-size: .875rem; line-height: 1.3;
}
.gf-facets__opt:hover { background: var(--gf-color-surface-2, rgba(0,0,0,.04)); }
.gf-facets__box {
	inline-size: .875rem; block-size: .875rem; flex: 0 0 auto;
	border: 1.5px solid var(--gf-color-border-strong, currentColor);
	border-radius: 2px; position: relative;
}
.gf-facets__opt.is-selected .gf-facets__box { background: currentColor; }
.gf-facets__opt.is-selected .gf-facets__box::after {
	content: ""; position: absolute; inset-block-start: 1px; inset-inline-start: 4px;
	inline-size: 3px; block-size: 7px; transform: rotate(45deg);
	border-inline-end: 2px solid var(--gf-color-canvas, #fff);
	border-block-end: 2px solid var(--gf-color-canvas, #fff);
}
.gf-facets__label { flex: 1 1 auto; }
.gf-facets__count { opacity: .55; font-variant-numeric: tabular-nums; font-size: .8125rem; }
/* Overflow options are hidden with CSS only, so the markup — and therefore the
   crawlable links — is always complete. */
.gf-facets__opt.is-overflow { display: none; }
.gf-facets__group.is-expanded .gf-facets__opt.is-overflow { display: flex; }
.gf-facets__more {
	align-self: flex-start; background: none; border: 0; padding: .3rem .25rem;
	font: inherit; font-size: .8125rem; text-decoration: underline; cursor: pointer; color: inherit;
}
.gf-facets__group.is-expanded .gf-facets__more { display: none; }
.gf-facets__notice { font-size: .875rem; opacity: .7; margin: 0; }
.gf-facets.is-busy { opacity: .55; pointer-events: none; }

/* == progress-bar == */
.gf-progress-bar {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--gf-space-40, 1.5rem);
}
.gf-progress-bar__row { display: flex; flex-direction: column; gap: 0.5rem; }
.gf-progress-bar__head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
	font-size: var(--gf-size-sm, 0.875rem);
}
.gf-progress-bar__label { font-weight: 600; color: var(--gf-color-ink, #15201a); }
.gf-progress-bar__percent { color: var(--gf-color-ink-2, #46514a); font-variant-numeric: tabular-nums; }
.gf-progress-bar__track {
	position: relative;
	width: 100%;
	height: 0.6rem;
	border-radius: var(--gf-radius-pill, 999px);
	background: var(--gf-color-surface-2, #f1f3ec);
	overflow: hidden;
}
.gf-progress-bar__fill {
	display: block;
	height: 100%;
	width: var(--gf-target, 0%);
	border-radius: inherit;
	background: linear-gradient(90deg, var(--gf-color-brand, #9bd45f), var(--gf-color-brand-strong, #4f7a1f));
	transition: width 1.1s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.gf-progress-bar__empty { color: var(--gf-color-muted, #71807a); font-size: var(--gf-size-sm, 0.875rem); }
@media (prefers-reduced-motion: reduce) {
	.gf-progress-bar__fill { transition: none; }
}

/* == progress-tracker == */
.gf-progress-tracker { display: flex; flex-wrap: nowrap; margin: 0; padding: 0; list-style: none; }
.gf-progress-tracker__step { position: relative; flex: 1 1 0; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 0.6rem; padding: 0 0.5rem; min-width: 0; }
.gf-progress-tracker__step::before { content: ""; position: absolute; top: 1rem; left: -50%; width: 100%; height: 3px; background: var(--gf-color-border, #e3e6dc); z-index: 0; }
.gf-progress-tracker__step:first-child::before { display: none; }
.gf-progress-tracker__step[data-state="done"]::before, .gf-progress-tracker__step[data-state="current"]::before { background: linear-gradient(90deg, var(--gf-color-brand, #9bd45f), var(--gf-color-brand-strong, #4f7a1f)); }
.gf-progress-tracker__marker { position: relative; z-index: 1; display: inline-flex; align-items: center; justify-content: center; width: 2.1rem; height: 2.1rem; border-radius: var(--gf-radius-pill, 999px); background: var(--gf-color-surface, #ffffff); border: 2px solid var(--gf-color-border-strong, #cfd4c6); color: var(--gf-color-muted, #71807a); font-family: var(--gf-font-body, sans-serif); font-weight: 700; font-size: var(--gf-size-sm, 0.875rem); }
.gf-progress-tracker__marker svg { width: 1.1rem; height: 1.1rem; }
.gf-progress-tracker__step[data-state="done"] .gf-progress-tracker__marker { background: linear-gradient(135deg, var(--gf-color-brand, #9bd45f), var(--gf-color-brand-strong, #4f7a1f)); border-color: transparent; color: var(--gf-color-on-dark, #f7fffd); }
.gf-progress-tracker__step[data-state="current"] .gf-progress-tracker__marker { border-color: var(--gf-color-brand-strong, #4f7a1f); color: var(--gf-color-brand-strong, #4f7a1f); box-shadow: 0 0 0 4px var(--gf-color-brand-soft, #eef7df); }
.gf-progress-tracker__label { font-size: var(--gf-size-sm, 0.875rem); color: var(--gf-color-ink-2, #46514a); }
.gf-progress-tracker__step[data-state="current"] .gf-progress-tracker__label { color: var(--gf-color-ink, #15201a); font-weight: 600; }
@media (max-width: 640px) {
	.gf-progress-tracker { flex-direction: column; }
	.gf-progress-tracker__step { flex-direction: row; text-align: left; gap: 0.85rem; padding: 0.5rem 0; }
	.gf-progress-tracker__step::before { top: -50%; left: 1rem; width: 3px; height: 100%; }
}

/* == promo-bar == */
.gf-promo-bar {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	width: 100%;
	padding: 0.65rem clamp(1rem, 4vw, 2rem);
	font-family: var(--gf-font-body, sans-serif);
	font-size: var(--gf-size-sm, 0.875rem);
	background: var(--gf-color-brand, #9bd45f);
	color: var(--gf-color-brand-ink, #1e3209);
}
.gf-promo-bar__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.35rem 1rem;
	flex: 1 1 auto;
	text-align: center;
}
.gf-promo-bar__text { margin: 0; }
.gf-promo-bar__text a { color: inherit; text-decoration: underline; }
.gf-promo-bar__link {
	display: inline-flex;
	align-items: center;
	padding: 0.3rem 0.85rem;
	border-radius: var(--gf-radius-pill, 999px);
	font-weight: 700;
	text-decoration: none;
	background: var(--gf-color-brand-ink, #1e3209);
	color: var(--gf-color-on-dark, #f7fffd);
	white-space: nowrap;
}
.gf-promo-bar__dismiss {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 1.75rem;
	height: 1.75rem;
	border: 0;
	border-radius: var(--gf-radius-pill, 999px);
	background: transparent;
	color: inherit;
	cursor: pointer;
	opacity: 0.75;
	transition: opacity 0.15s ease;
}
.gf-promo-bar__dismiss:hover,
.gf-promo-bar__dismiss:focus-visible { opacity: 1; }
.gf-promo-bar__dismiss svg { width: 1.05rem; height: 1.05rem; display: block; }
.gf-promo-bar[data-sticky="1"] { position: sticky; top: 0; z-index: 800; }
.gf-promo-bar[data-variant="dark"] { background: var(--gf-color-ink, #15201a); color: var(--gf-color-on-dark, #f7fffd); }
.gf-promo-bar[data-variant="dark"] .gf-promo-bar__link { background: var(--gf-color-brand, #9bd45f); color: var(--gf-color-brand-ink, #1e3209); }
.gf-promo-bar[data-variant="accent"] { background: var(--gf-color-accent, #5fae6e); color: var(--gf-color-on-dark, #f7fffd); }
.gf-promo-bar[data-variant="accent"] .gf-promo-bar__link { background: var(--gf-color-on-dark, #f7fffd); color: var(--gf-color-ink, #15201a); }
.gf-promo-bar[data-variant="soft"] { background: var(--gf-color-brand-soft, #eef7df); color: var(--gf-color-brand-strong, #4f7a1f); }
.gf-promo-bar[data-variant="soft"] .gf-promo-bar__link { background: var(--gf-color-brand-strong, #4f7a1f); color: var(--gf-color-on-dark, #f7fffd); }
@media (prefers-reduced-motion: reduce) {
	.gf-promo-bar__dismiss { transition: none; }
}

/* == quote-basket == */
.gf-quote { display: grid; gap: var(--gf-space-40, 1.5rem); }
.gf-quote__heading { margin: 0; }
.gf-quote__items { list-style: none; margin: 0; padding: 0; display: grid; gap: .25rem; }
.gf-quote__item {
	display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 1rem;
	padding: .75rem 0; border-block-end: 1px solid var(--gf-color-border, rgba(0,0,0,.12));
}
.gf-quote__item-title { font-weight: 500; }
.gf-quote__item-sku { display: block; font-size: .75rem; opacity: .6; font-variant-numeric: tabular-nums; }
.gf-quote__item-qty { inline-size: 3.5rem; text-align: center; font: inherit; padding: .25rem;
	border: 1px solid var(--gf-color-border, rgba(0,0,0,.2)); border-radius: var(--gf-radius-10, 3px);
	background: transparent; color: inherit; }
.gf-quote__item-rm { background: none; border: 0; font: inherit; cursor: pointer; opacity: .55; padding: .25rem; color: inherit; }
.gf-quote__item-rm:hover { opacity: 1; }
.gf-quote__form { display: grid; gap: var(--gf-space-30, 1rem); max-inline-size: 34rem; }
.gf-quote__field { display: grid; gap: .3rem; }
.gf-quote__label { font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; opacity: .7; }
.gf-quote__input {
	font: inherit; padding: .6rem .7rem; color: inherit; background: transparent;
	border: 1px solid var(--gf-color-border, rgba(0,0,0,.25)); border-radius: var(--gf-radius-10, 3px);
}
.gf-quote__prefers { border: 0; padding: 0; margin: 0; display: grid; gap: .35rem; }
.gf-quote__radio { display: inline-flex; align-items: center; gap: .4rem; margin-inline-end: 1rem; }
.gf-quote__hp { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip-path: inset(50%); }
.gf-quote__submit {
	justify-self: start; font: inherit; cursor: pointer; padding: .8rem 1.6rem;
	border: 0; border-radius: var(--gf-radius-10, 3px);
	background: var(--gf-color-brand, currentColor); color: var(--gf-color-on-dark, #fff);
	letter-spacing: .06em; text-transform: uppercase; font-size: .8125rem;
}
.gf-quote__submit[disabled] { opacity: .5; cursor: progress; }
.gf-quote__msg { margin: 0; font-size: .875rem; min-block-size: 1.2em; }
.gf-quote__msg.is-error { color: var(--gf-color-danger, #b3261e); }
/* Empty and filled are mutually exclusive; the server renders neither state as
   authoritative because the basket only exists in the browser. */
.gf-quote:not(.is-empty) .gf-quote__empty { display: none; }
.gf-quote.is-empty .gf-quote__form, .gf-quote.is-empty .gf-quote__items { display: none; }
.gf-quote.is-sent .gf-quote__form, .gf-quote.is-sent .gf-quote__items, .gf-quote.is-sent .gf-quote__empty { display: none; }

/* == quote-button == */
.gf-quote-btn { display: flex; align-items: stretch; gap: .5rem; }
.gf-quote-btn.is-full, .gf-quote-btn.is-full .gf-quote-btn__go { inline-size: 100%; }
.gf-quote-btn__qty {
	inline-size: 4rem; text-align: center; font: inherit;
	border: 1px solid var(--gf-color-border, rgba(0,0,0,.2));
	border-radius: var(--gf-radius-10, 3px); background: transparent; color: inherit;
}
.gf-quote-btn__go {
	font: inherit; cursor: pointer; padding: .75rem 1.25rem;
	border: 1px solid currentColor; border-radius: var(--gf-radius-10, 3px);
	background: transparent; color: inherit;
	letter-spacing: .04em; text-transform: uppercase; font-size: .8125rem;
	transition: background .15s ease, color .15s ease;
}
.gf-quote-btn__go:hover { background: currentColor; }
.gf-quote-btn__go:hover .gf-quote-btn__text { color: var(--gf-color-canvas, #fff); }
.gf-quote-btn.is-added .gf-quote-btn__go { background: var(--gf-color-brand, currentColor); border-color: transparent; }
.gf-quote-btn.is-added .gf-quote-btn__text { color: var(--gf-color-on-dark, #fff); }

/* == search == */
.gf-search { display: flex; align-items: center; gap: .5rem; font-family: var(--gf-font-body, sans-serif); }
.gf-search__field { display: flex; align-items: center; gap: .5rem; }
.gf-search__field[hidden] { display: none; }
.gf-search__label {
	position: absolute; width: 1px; height: 1px; overflow: hidden;
	clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; padding: 0; margin: -1px;
}
.gf-search__input {
	font-family: inherit; font-size: var(--gf-size-base, 1rem);
	color: var(--gf-color-ink, #15201a);
	background: var(--gf-color-surface, #ffffff);
	border: 1.5px solid var(--gf-color-border-strong, #cfd4c6);
	border-radius: var(--gf-radius-pill, 999px);
	padding: .6rem 1rem; min-width: 0;
}
.gf-search__input::placeholder { color: var(--gf-color-muted, #71807a); }
.gf-search__input:focus-visible {
	outline: 2px solid var(--gf-color-brand-strong, #4f7a1f); outline-offset: 1px;
	border-color: var(--gf-color-brand-strong, #4f7a1f);
}
.gf-search__submit,
.gf-search__toggle {
	display: inline-flex; align-items: center; justify-content: center; gap: .4rem;
	font-family: inherit; font-weight: 600; font-size: var(--gf-size-sm, .875rem);
	cursor: pointer; border: 0; border-radius: var(--gf-radius-pill, 999px);
	padding: .6rem 1.1rem;
	background: var(--gf-color-brand, #9bd45f); color: var(--gf-color-brand-ink, #1e3209);
	transition: background-color .15s ease, color .15s ease;
}
.gf-search__submit:hover,
.gf-search__toggle:hover { background: var(--gf-color-brand-strong, #4f7a1f); color: var(--gf-color-on-dark, #f7fffd); }
.gf-search__toggle { padding: .55rem; background: transparent; color: var(--gf-color-ink, #15201a); }
.gf-search__toggle:hover { background: var(--gf-color-surface-2, #f1f3ec); color: var(--gf-color-brand-strong, #4f7a1f); }
.gf-search__icon svg { width: 1.1em; height: 1.1em; display: block; }
.gf-search[data-style="icon-expand"] .gf-search__submit-text {
	position: absolute; width: 1px; height: 1px; overflow: hidden;
	clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; padding: 0; margin: -1px;
}
@media (prefers-reduced-motion: reduce) {
	.gf-search__submit, .gf-search__toggle { transition: none; }
}
@media (max-width: 640px) {
	.gf-search__input { width: 100%; }
}

/* == share-buttons == */
.gf-share-buttons { display: flex; flex-direction: column; gap: var(--gf-space-20, 0.5rem); }
.gf-share-buttons__heading {
	font-size: var(--gf-size-sm, 0.875rem);
	font-weight: 600;
	color: var(--gf-color-ink-2, #46514a);
}
.gf-share-buttons__row { display: flex; flex-wrap: wrap; gap: var(--gf-space-20, 0.5rem); }
.gf-share-buttons__btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.55rem 0.9rem;
	border-radius: var(--gf-radius-sm, 10px);
	font-size: var(--gf-size-sm, 0.875rem);
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	border: 1.5px solid transparent;
	background: var(--gf-color-surface-2, #f1f3ec);
	color: var(--gf-color-ink, #15201a);
	transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}
.gf-share-buttons__icon { display: inline-flex; }
.gf-share-buttons__icon svg { width: 1.05rem; height: 1.05rem; display: block; }
.gf-share-buttons__empty { color: var(--gf-color-muted, #71807a); font-size: var(--gf-size-sm, 0.875rem); }
.gf-share-buttons__btn:hover,
.gf-share-buttons__btn:focus-visible {
	background: var(--gf-color-brand, #9bd45f);
	color: var(--gf-color-brand-ink, #1e3209);
	transform: translateY(-2px);
}
.gf-share-buttons[data-style="outline"] .gf-share-buttons__btn {
	background: transparent;
	border-color: var(--gf-color-border-strong, #cfd4c6);
}
.gf-share-buttons[data-style="outline"] .gf-share-buttons__btn:hover,
.gf-share-buttons[data-style="outline"] .gf-share-buttons__btn:focus-visible {
	border-color: var(--gf-color-brand-strong, #4f7a1f);
	background: var(--gf-color-brand-soft, #eef7df);
	color: var(--gf-color-brand-strong, #4f7a1f);
}
.gf-share-buttons[data-style="text"] .gf-share-buttons__btn {
	background: transparent;
	padding-inline: 0.35rem;
	color: var(--gf-color-ink-2, #46514a);
}
.gf-share-buttons[data-style="text"] .gf-share-buttons__btn:hover,
.gf-share-buttons[data-style="text"] .gf-share-buttons__btn:focus-visible {
	background: transparent;
	color: var(--gf-color-brand-strong, #4f7a1f);
}
@media (prefers-reduced-motion: reduce) {
	.gf-share-buttons__btn { transition: none; }
	.gf-share-buttons__btn:hover,
	.gf-share-buttons__btn:focus-visible { transform: none; }
}

/* == shortcode == */
.gf-shortcode { display: block; }
.gf-shortcode__preview,
.gf-shortcode__placeholder {
	display: block;
	padding: var(--gf-space-30, 1rem) var(--gf-space-40, 1.5rem);
	color: var(--gf-color-ink-2, #46514a);
	font-family: var(--gf-font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
	font-size: var(--gf-size-sm, 0.875rem);
	white-space: pre-wrap;
	word-break: break-word;
	background: var(--gf-color-surface-2, #f1f3ec);
	border: 1px dashed var(--gf-color-border-strong, #cfd4c6);
	border-radius: var(--gf-radius-md, 16px);
}
.gf-shortcode__placeholder { color: var(--gf-color-muted, #71807a); text-align: center; }

/* == site-logo == */
.gf-site-logo { display: inline-flex; }
.gf-sitelogo__link { display: inline-flex; align-items: center; text-decoration: none; color: var(--gf-color-ink, #15201a); }
.gf-sitelogo__img { display: block; width: auto; height: auto; max-width: var(--gf-logo-max, 180px); }
.gf-sitelogo__text {
	font-family: var(--gf-font-display, sans-serif); font-weight: 700;
	font-size: var(--gf-size-xl, 1.5rem); letter-spacing: -0.01em;
	color: var(--gf-color-ink, #15201a);
}
.gf-sitelogo__link:hover .gf-sitelogo__text { color: var(--gf-color-brand-strong, #4f7a1f); }

/* == site-title == */
.gf-site-title { display: block; }
.gf-sitetitle__name {
	margin: 0; font-family: var(--gf-font-display, sans-serif); font-weight: 700;
	font-size: var(--gf-size-xl, 1.5rem); line-height: 1.15; letter-spacing: -0.01em;
	color: var(--gf-color-ink, #15201a);
}
.gf-sitetitle__name a { color: inherit; text-decoration: none; }
.gf-sitetitle__name a:hover,
.gf-sitetitle__name a:focus-visible { color: var(--gf-color-brand-strong, #4f7a1f); }
.gf-sitetitle__tagline {
	margin: .25rem 0 0; font-family: var(--gf-font-body, sans-serif);
	font-size: var(--gf-size-sm, .875rem); color: var(--gf-color-muted, #71807a);
}

/* == sitemap == */
.gf-sitemap { font-family: var(--gf-font-body, sans-serif); color: var(--gf-color-ink-2, #46514a); }
.gf-sitemap__group + .gf-sitemap__group { margin-top: var(--gf-space-50, 2rem); }
.gf-sitemap__heading {
	margin: 0 0 .75rem; font-family: var(--gf-font-display, sans-serif);
	font-size: var(--gf-size-lg, 1.25rem); color: var(--gf-color-ink, #15201a);
}
.gf-sitemap__list {
	list-style: none; margin: 0; padding: 0;
	columns: var(--gf-cols, 1); column-gap: var(--gf-space-50, 2rem);
}
.gf-sitemap__list li { break-inside: avoid; margin: 0 0 .4rem; }
.gf-sitemap__list a { color: var(--gf-color-ink-2, #46514a); text-decoration: none; }
.gf-sitemap__list a:hover,
.gf-sitemap__list a:focus-visible { color: var(--gf-color-brand-strong, #4f7a1f); text-decoration: underline; }
.gf-sitemap__list .children,
.gf-sitemap__list ul { list-style: none; margin: .35rem 0 .5rem 1rem; padding: 0; }
.gf-sitemap__empty {
	margin: 0; padding: 1.25rem; text-align: center;
	color: var(--gf-color-muted, #71807a);
	border: 1.5px dashed var(--gf-color-border-strong, #cfd4c6);
	border-radius: var(--gf-radius-md, 16px);
}
@media (max-width: 640px) {
	.gf-sitemap__list { columns: 1; }
}

/* == slides == */
.gf-slides { position: relative; }
.gf-slides__track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; -webkit-overflow-scrolling: touch; scrollbar-width: none; border-radius: var(--gf-radius-lg, 22px); }
.gf-slides__track::-webkit-scrollbar { display: none; }
.gf-slides__slide { position: relative; flex: 0 0 100%; min-width: 100%; scroll-snap-align: center; display: flex; align-items: center; min-height: 380px; padding: clamp(1.5rem, 5vw, 4rem); background-color: var(--gf-color-ink, #15201a); background-image: var(--gf-slide-bg, none); background-size: cover; background-position: center; color: var(--gf-color-on-dark, #f7fffd); }
.gf-slides__slide::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(21, 32, 26, 0.72), rgba(21, 32, 26, 0.22)); }
.gf-slides__content { position: relative; z-index: 1; max-width: 34rem; display: flex; flex-direction: column; gap: 1rem; }
.gf-slides__heading { margin: 0; font-family: var(--gf-font-display, sans-serif); font-size: var(--gf-size-4xl, 2.5rem); font-weight: 700; line-height: 1.1; }
.gf-slides__text { margin: 0; font-size: var(--gf-size-lg, 1.125rem); line-height: 1.6; opacity: 0.92; }
.gf-slides__cta { display: inline-flex; align-items: center; gap: 0.4rem; align-self: flex-start; margin-top: 0.5rem; padding: 0.8rem 1.6rem; border-radius: var(--gf-radius-pill, 999px); background: var(--gf-color-brand, #9bd45f); color: var(--gf-color-brand-ink, #1e3209); font-weight: 600; text-decoration: none; }
.gf-slides__cta-icon { display: inline-flex; }
.gf-slides__cta-icon svg { width: 1.1em; height: 1.1em; }
.gf-slides__arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; display: inline-flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; border: 0; border-radius: var(--gf-radius-pill, 999px); background: var(--gf-color-surface, #ffffff); color: var(--gf-color-ink, #15201a); cursor: pointer; box-shadow: 0 2px 10px rgba(21, 32, 26, 0.18); }
.gf-slides__arrow[data-dir="prev"] { left: 1rem; }
.gf-slides__arrow[data-dir="next"] { right: 1rem; }
.gf-slides__arrow svg { width: 1.25rem; height: 1.25rem; }
.gf-slides__arrow:focus-visible { outline: 2px solid var(--gf-color-accent, #5fae6e); outline-offset: 2px; }
.gf-slides__dots { position: absolute; left: 0; right: 0; bottom: 1rem; z-index: 2; display: flex; justify-content: center; gap: 0.5rem; }
.gf-slides__dot { width: 0.6rem; height: 0.6rem; padding: 0; border: 0; border-radius: 50%; background: rgba(247, 255, 253, 0.55); cursor: pointer; }
.gf-slides__dot[aria-current="true"] { background: var(--gf-color-brand, #9bd45f); }
.gf-slides__dot:focus-visible { outline: 2px solid var(--gf-color-on-dark, #f7fffd); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { .gf-slides__track { scroll-behavior: auto; } }
@media (max-width: 640px) { .gf-slides__heading { font-size: var(--gf-size-3xl, 1.875rem); } .gf-slides__arrow { display: none; } }

/* == social-icons == */
.gf-social-icons {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--gf-space-20, 0.5rem);
	list-style: none;
	margin: 0;
	padding: 0;
}
.gf-social-icons__item { display: inline-flex; margin: 0; }
.gf-social-icons__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--gf-color-ink, #15201a);
	background: var(--gf-color-surface-2, #f1f3ec);
	text-decoration: none;
	transition: background-color 0.18s ease, color 0.18s ease, transform 0.18s ease;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: var(--gf-radius-pill, 999px);
}
.gf-social-icons__glyph { display: inline-flex; }
.gf-social-icons__glyph svg { width: 1.15rem; height: 1.15rem; display: block; }
.gf-social-icons__text { font-size: var(--gf-size-sm, 0.875rem); font-weight: 600; padding: 0 0.75rem; }
.gf-social-icons__empty { color: var(--gf-color-muted, #71807a); font-size: var(--gf-size-sm, 0.875rem); }
.gf-social-icons__link:hover,
.gf-social-icons__link:focus-visible {
	background: var(--gf-color-brand, #9bd45f);
	color: var(--gf-color-brand-ink, #1e3209);
	transform: translateY(-2px);
}
.gf-social-icons[data-shape="square"] .gf-social-icons__link { border-radius: var(--gf-radius-sm, 10px); }
.gf-social-icons[data-shape="bare"] .gf-social-icons__link {
	background: transparent;
	width: auto;
	height: auto;
	color: var(--gf-color-ink-2, #46514a);
}
.gf-social-icons[data-shape="bare"] .gf-social-icons__link:hover,
.gf-social-icons[data-shape="bare"] .gf-social-icons__link:focus-visible {
	background: transparent;
	color: var(--gf-color-brand-strong, #4f7a1f);
}
.gf-social-icons[data-size="sm"] .gf-social-icons__link { width: 2rem; height: 2rem; }
.gf-social-icons[data-size="sm"] .gf-social-icons__glyph svg { width: 1rem; height: 1rem; }
.gf-social-icons[data-size="lg"] .gf-social-icons__link { width: 3rem; height: 3rem; }
.gf-social-icons[data-size="lg"] .gf-social-icons__glyph svg { width: 1.4rem; height: 1.4rem; }
.gf-social-icons[data-size="lg"] { gap: var(--gf-space-30, 1rem); }
@media (prefers-reduced-motion: reduce) {
	.gf-social-icons__link { transition: none; }
	.gf-social-icons__link:hover,
	.gf-social-icons__link:focus-visible { transform: none; }
}

/* == spacer == */
.gf-spacer { display: block; flex: 0 0 auto; width: 100%; height: var(--gf-h, 3rem); }
@media (max-width: 1024px) {
	.gf-spacer[data-t="1"] { height: var(--gf-h-t, var(--gf-h, 3rem)); }
}
@media (max-width: 640px) {
	.gf-spacer[data-m="1"] { height: var(--gf-h-m, var(--gf-h, 3rem)); }
}

/* == star-rating == */
.gf-star-rating { display: inline-flex; align-items: center; gap: 0.5rem; }
.gf-star-rating__stars {
	position: relative;
	display: inline-flex;
	line-height: 0;
}
.gf-star-rating__track,
.gf-star-rating__fill {
	display: inline-flex;
	white-space: nowrap;
}
.gf-star-rating__track { color: var(--gf-color-border-strong, #cfd4c6); }
.gf-star-rating__fill {
	position: absolute;
	inset: 0;
	width: var(--gf-rating, 0%);
	overflow: hidden;
	color: var(--gf-star-color, var(--gf-color-brand, #9bd45f));
}
.gf-star-rating__icon { width: 1.15rem; height: 1.15rem; display: block; flex: none; }
.gf-star-rating__number {
	font-size: var(--gf-size-sm, 0.875rem);
	font-weight: 700;
	color: var(--gf-color-ink-2, #46514a);
	font-variant-numeric: tabular-nums;
}

/* == stats == */
.gf-stats {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(var(--gf-cols, 3), minmax(0, 1fr));
	gap: var(--gf-space-40, 1.5rem);
}
.gf-stats__card {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	text-align: center;
	padding: var(--gf-space-30, 1rem);
}
.gf-stats .gf-counter__value {
	font-family: var(--gf-font-display, sans-serif);
	font-size: var(--gf-size-5xl, clamp(2.4rem, 1.7rem + 3.2vw, 3.8rem));
	font-weight: 700;
	line-height: 1;
	color: var(--gf-color-brand-strong, #4f7a1f);
	font-variant-numeric: tabular-nums;
}
.gf-stats__label { font-size: var(--gf-size-base, 1rem); color: var(--gf-color-ink-2, #46514a); }
.gf-stats__empty { color: var(--gf-color-muted, #71807a); }
@media (max-width: 1024px) {
	.gf-stats { grid-template-columns: repeat(min(var(--gf-cols, 3), 3), minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.gf-stats { grid-template-columns: repeat(min(var(--gf-cols, 3), 2), minmax(0, 1fr)); }
}

/* == subscribe == */
.gf-subscribe {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	padding: clamp(1.5rem, 3vw, 2.5rem);
	background: var(--gf-color-surface-2, #f1f3ec);
	border: 1px solid var(--gf-color-border, #e3e6dc);
	border-radius: var(--gf-radius-lg, 22px);
	color: var(--gf-color-ink-2, #46514a);
}
.gf-subscribe__heading {
	margin: 0;
	font-family: var(--gf-font-display, sans-serif);
	font-size: var(--gf-size-2xl, 1.5rem);
	color: var(--gf-color-ink, #15201a);
}
.gf-subscribe__text { margin: 0; line-height: 1.6; }
.gf-subscribe__form { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.gf-subscribe__input {
	flex: 1 1 16rem;
	min-width: 0;
	font-family: var(--gf-font-body, sans-serif);
	font-size: var(--gf-size-base, 1rem);
	color: var(--gf-color-ink, #15201a);
	background: var(--gf-color-surface, #ffffff);
	border: 1.5px solid var(--gf-color-border-strong, #cfd4c6);
	border-radius: var(--gf-radius-pill, 999px);
	padding: 0.75rem 1.1rem;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.gf-subscribe__input::placeholder { color: var(--gf-color-muted, #71807a); }
.gf-subscribe__input:focus {
	outline: none;
	border-color: var(--gf-color-brand, #9bd45f);
	box-shadow: 0 0 0 3px var(--gf-color-brand-soft, #eef7df);
}
.gf-subscribe__btn {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.75rem 1.5rem;
	font-family: var(--gf-font-body, sans-serif);
	font-weight: 600;
	font-size: var(--gf-size-base, 1rem);
	line-height: 1;
	cursor: pointer;
	color: var(--gf-color-brand-ink, #1e3209);
	background: var(--gf-color-brand, #9bd45f);
	border: 1.5px solid transparent;
	border-radius: var(--gf-radius-pill, 999px);
	transition: background-color .15s ease, color .15s ease;
}
.gf-subscribe__btn:hover { background: var(--gf-color-brand-strong, #4f7a1f); color: var(--gf-color-on-dark, #f7fffd); }
.gf-subscribe__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.gf-subscribe .gf-visually-hidden {
	position: absolute;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0);
	white-space: nowrap; border: 0;
}
@media (max-width: 640px) {
	.gf-subscribe__btn { flex: 1 1 100%; }
}
@media (prefers-reduced-motion: reduce) {
	.gf-subscribe__input, .gf-subscribe__btn { transition: none; }
}

/* == svg == */
.gf-svg{ display:inline-block; width:var(--gf-svg-width,120px); max-width:100%; line-height:0; color:var(--gf-color-ink,#15201a); }
.gf-svg svg{ display:block; width:100%; height:auto; }
.gf-svg__placeholder{ display:inline-flex; padding:var(--gf-space-30,1rem); color:var(--gf-color-muted,#71807a); border:1px dashed var(--gf-color-border-strong,#cfd4c6); border-radius:var(--gf-radius-md,16px); font-family:var(--gf-font-body,sans-serif); line-height:1.4; }

/* == tabs == */
.gf-tabs { display: block; }
.gf-tabs__list { display: flex; flex-wrap: wrap; gap: 0.25rem; margin: 0 0 1.25rem; padding: 0; border-bottom: 1.5px solid var(--gf-color-border, #e3e6dc); }
.gf-tabs[data-align="center"] .gf-tabs__list { justify-content: center; }
.gf-tabs[data-align="end"] .gf-tabs__list { justify-content: flex-end; }
.gf-tabs__tab { appearance: none; -webkit-appearance: none; background: transparent; border: 0; border-bottom: 2px solid transparent; margin-bottom: -1.5px; padding: 0.75rem 1.1rem; font-family: var(--gf-font-body, sans-serif); font-size: var(--gf-size-base, 1rem); font-weight: 600; color: var(--gf-color-ink-2, #46514a); cursor: pointer; transition: color .15s ease, border-color .15s ease; }
.gf-tabs__tab:hover { color: var(--gf-color-ink, #15201a); }
.gf-tabs__tab[aria-selected="true"] { color: var(--gf-color-brand-strong, #4f7a1f); border-bottom-color: var(--gf-color-brand, #9bd45f); }
.gf-tabs__tab:focus-visible { outline: 2px solid var(--gf-color-accent, #5fae6e); outline-offset: 2px; border-radius: var(--gf-radius-sm, 10px); }
.gf-tabs__panel { color: var(--gf-color-ink-2, #46514a); line-height: 1.7; }
.gf-tabs__panel:focus-visible { outline: 2px solid var(--gf-color-accent, #5fae6e); outline-offset: 4px; }
.gf-tabs__panel[hidden] { display: none; }
.gf-tabs__panel > :first-child { margin-top: 0; }
.gf-tabs__panel > :last-child { margin-bottom: 0; }
@media (prefers-reduced-motion: reduce) { .gf-tabs__tab { transition: none; } }

/* == taxonomy-filter == */
.gf-taxonomy-filter {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--gf-space-20, 0.5rem);
}
.gf-taxonomy-filter__btn {
	appearance: none;
	cursor: pointer;
	padding: 0.5rem 1.1rem;
	font: inherit;
	font-size: var(--gf-size-sm, 0.875rem);
	font-weight: 600;
	line-height: 1.2;
	color: var(--gf-color-ink-2, #46514a);
	background: var(--gf-color-surface, #ffffff);
	border: 1px solid var(--gf-color-border, #e3e6dc);
	border-radius: var(--gf-radius-pill, 999px);
	transition: background .18s ease, color .18s ease, border-color .18s ease;
}
.gf-taxonomy-filter__btn:hover {
	color: var(--gf-color-ink, #15201a);
	border-color: var(--gf-color-brand, #9bd45f);
}
.gf-taxonomy-filter__btn[aria-pressed="true"] {
	color: var(--gf-color-brand-ink, #1e3209);
	background: var(--gf-color-brand, #9bd45f);
	border-color: var(--gf-color-brand, #9bd45f);
}
.gf-taxonomy-filter__btn:focus-visible {
	outline: 2px solid var(--gf-color-brand-strong, #4f7a1f);
	outline-offset: 2px;
}
.gf-taxonomy-filter__hint {
	font-size: var(--gf-size-sm, 0.875rem);
	color: var(--gf-color-muted, #71807a);
}
@media (prefers-reduced-motion: reduce) {
	.gf-taxonomy-filter__btn { transition: none; }
}

/* == team-member == */
.gf-team-member {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	padding: clamp(1.25rem, 3vw, 2rem);
	background: var(--gf-color-surface, #ffffff);
	border: 1px solid var(--gf-color-border, #e3e6dc);
	border-radius: var(--gf-radius-lg, 22px);
	color: var(--gf-color-ink-2, #46514a);
	text-align: center;
	align-items: center;
}
.gf-team-member__photo { width: 6.5rem; height: 6.5rem; border-radius: var(--gf-radius-pill, 999px); overflow: hidden; }
.gf-team-member__img { display: block; width: 100%; height: 100%; object-fit: cover; }
.gf-team-member__img-placeholder {
	display: flex; align-items: center; justify-content: center;
	width: 100%; height: 100%;
	background: var(--gf-color-surface-2, #f1f3ec);
	color: var(--gf-color-muted, #71807a);
}
.gf-team-member__img-placeholder svg { width: 2.5rem; height: 2.5rem; }
.gf-team-member__body { display: flex; flex-direction: column; gap: 0.35rem; align-items: center; }
.gf-team-member__name {
	margin: 0;
	font-family: var(--gf-font-display, sans-serif);
	font-size: var(--gf-size-lg, 1.125rem);
	color: var(--gf-color-ink, #15201a);
}
.gf-team-member__role {
	margin: 0;
	font-size: var(--gf-size-sm, 0.875rem);
	font-weight: 600;
	color: var(--gf-color-brand-strong, #4f7a1f);
}
.gf-team-member__bio { margin: 0.35rem 0 0; line-height: 1.6; }
.gf-team-member__socials { list-style: none; display: flex; gap: 0.5rem; margin: 0.35rem 0 0; padding: 0; }
.gf-team-member__social {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.25rem;
	height: 2.25rem;
	border-radius: var(--gf-radius-pill, 999px);
	color: var(--gf-color-ink-2, #46514a);
	border: 1px solid var(--gf-color-border, #e3e6dc);
	transition: color .15s ease, border-color .15s ease, background-color .15s ease;
}
.gf-team-member__social svg { width: 1.15rem; height: 1.15rem; }
.gf-team-member__social:hover {
	color: var(--gf-color-brand-ink, #1e3209);
	background: var(--gf-color-brand-soft, #eef7df);
	border-color: var(--gf-color-brand, #9bd45f);
}
.gf-team-member__placeholder { color: var(--gf-color-muted, #71807a); font-size: var(--gf-size-sm, 0.875rem); }
@media (prefers-reduced-motion: reduce) {
	.gf-team-member__social { transition: none; }
}

/* == template-embed == */
.gf-template-embed { display: block; }
.gf-template-embed__placeholder {
	display: block;
	padding: var(--gf-space-40, 1.5rem);
	text-align: center;
	color: var(--gf-color-muted, #71807a);
	font-size: var(--gf-size-sm, 0.875rem);
	background: var(--gf-color-surface-2, #f1f3ec);
	border: 1px dashed var(--gf-color-border-strong, #cfd4c6);
	border-radius: var(--gf-radius-md, 16px);
}

/* == testimonial == */
.gf-testimonial {
	display: flex;
	flex-direction: column;
	gap: var(--gf-space-30, 1rem);
	margin: 0;
	padding: var(--gf-space-50, 3rem);
	background: var(--gf-color-surface, #ffffff);
	border: 1px solid var(--gf-color-border, #e3e6dc);
	border-radius: var(--gf-radius-lg, 22px);
}
.gf-testimonial__rating { position: relative; display: inline-flex; line-height: 0; align-self: flex-start; }
.gf-testimonial__stars-track,
.gf-testimonial__stars-fill { display: inline-flex; white-space: nowrap; }
.gf-testimonial__stars-track { color: var(--gf-color-border-strong, #cfd4c6); }
.gf-testimonial__stars-fill { position: absolute; inset: 0; width: var(--gf-rating, 0%); overflow: hidden; color: var(--gf-color-brand, #9bd45f); }
.gf-testimonial__star { width: 1.1rem; height: 1.1rem; display: block; }
.gf-testimonial__quote {
	margin: 0;
	font-family: var(--gf-font-display, sans-serif);
	font-size: var(--gf-size-xl, 1.25rem);
	line-height: 1.5;
	color: var(--gf-color-ink, #15201a);
}
.gf-testimonial__quote p { margin: 0 0 0.75rem; }
.gf-testimonial__quote p:last-child { margin-bottom: 0; }
.gf-testimonial__cite { display: flex; align-items: center; gap: 0.85rem; font-style: normal; }
.gf-testimonial__avatar {
	width: 3rem;
	height: 3rem;
	border-radius: var(--gf-radius-pill, 999px);
	object-fit: cover;
	flex: none;
}
.gf-testimonial__meta { display: flex; flex-direction: column; }
.gf-testimonial__author { font-weight: 700; color: var(--gf-color-ink, #15201a); }
.gf-testimonial__role { font-size: var(--gf-size-sm, 0.875rem); color: var(--gf-color-muted, #71807a); }

/* == testimonial-carousel == */
.gf-testimonial-carousel { position: relative; }
.gf-testimonial-carousel__viewport { overflow: hidden; }
.gf-testimonial-carousel__track {
	display: flex;
	gap: var(--gf-space-40, 1.5rem);
	margin: 0;
	padding: 0;
	list-style: none;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	-ms-overflow-style: none;
	scrollbar-width: none;
}
.gf-testimonial-carousel__track::-webkit-scrollbar { display: none; }
.gf-testimonial-carousel__slide {
	flex: 0 0 100%;
	min-width: 0;
	scroll-snap-align: center;
}
.gf-testimonial-carousel__figure {
	display: flex;
	flex-direction: column;
	gap: var(--gf-space-30, 1rem);
	margin: 0;
	padding: var(--gf-space-50, 3rem);
	background: var(--gf-color-surface, #ffffff);
	border: 1px solid var(--gf-color-border, #e3e6dc);
	border-radius: var(--gf-radius-lg, 22px);
	height: 100%;
}
.gf-testimonial-carousel__quote {
	margin: 0;
	font-family: var(--gf-font-display, sans-serif);
	font-size: var(--gf-size-xl, 1.25rem);
	line-height: 1.5;
	color: var(--gf-color-ink, #15201a);
}
.gf-testimonial-carousel__quote p { margin: 0 0 0.75rem; }
.gf-testimonial-carousel__quote p:last-child { margin-bottom: 0; }
.gf-testimonial-carousel__cite { display: flex; align-items: center; gap: 0.85rem; }
.gf-testimonial-carousel__avatar { width: 3rem; height: 3rem; border-radius: var(--gf-radius-pill, 999px); object-fit: cover; flex: none; }
.gf-testimonial-carousel__meta { display: flex; flex-direction: column; }
.gf-testimonial-carousel__author { font-weight: 700; color: var(--gf-color-ink, #15201a); }
.gf-testimonial-carousel__role { font-size: var(--gf-size-sm, 0.875rem); color: var(--gf-color-muted, #71807a); }
.gf-testimonial-carousel__arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	border: 1px solid var(--gf-color-border, #e3e6dc);
	border-radius: var(--gf-radius-pill, 999px);
	background: var(--gf-color-surface, #ffffff);
	color: var(--gf-color-ink, #15201a);
	cursor: pointer;
	box-shadow: 0 8px 20px -10px rgba(21, 32, 26, 0.4);
	transition: background-color 0.15s ease, color 0.15s ease;
}
.gf-testimonial-carousel__arrow:hover { background: var(--gf-color-brand, #9bd45f); color: var(--gf-color-brand-ink, #1e3209); }
.gf-testimonial-carousel__arrow svg { width: 1.2rem; height: 1.2rem; display: block; }
.gf-testimonial-carousel__arrow--prev { left: 0.5rem; }
.gf-testimonial-carousel__arrow--next { right: 0.5rem; }
.gf-testimonial-carousel__arrow[disabled] { opacity: 0.4; cursor: default; }
.gf-testimonial-carousel__dots { display: flex; justify-content: center; gap: 0.5rem; margin-top: var(--gf-space-30, 1rem); }
.gf-testimonial-carousel .gf-carousel__dot {
	width: 0.6rem;
	height: 0.6rem;
	padding: 0;
	border: 0;
	border-radius: var(--gf-radius-pill, 999px);
	background: var(--gf-color-border-strong, #cfd4c6);
	cursor: pointer;
	transition: background-color 0.15s ease, transform 0.15s ease;
}
.gf-testimonial-carousel .gf-carousel__dot[aria-current="true"] { background: var(--gf-color-brand-strong, #4f7a1f); transform: scale(1.25); }
.gf-testimonial-carousel__empty { color: var(--gf-color-muted, #71807a); text-align: center; }
@media (prefers-reduced-motion: reduce) {
	.gf-testimonial-carousel__track { scroll-behavior: auto; }
	.gf-testimonial-carousel__arrow,
	.gf-testimonial-carousel .gf-carousel__dot { transition: none; }
}
@media (max-width: 640px) {
	.gf-testimonial-carousel__figure { padding: var(--gf-space-40, 1.5rem); }
	.gf-testimonial-carousel__arrow { display: none; }
}

/* == timeline == */
.gf-timeline { list-style: none; margin: 0; padding: 0; position: relative; }
.gf-timeline::before {
	content: "";
	position: absolute;
	top: 0.5rem;
	bottom: 0.5rem;
	width: 2px;
	background: var(--gf-color-border-strong, #cfd4c6);
}
.gf-timeline[data-align="left"]::before,
.gf-timeline[data-align="alternate"]::before { left: 0.875rem; }
.gf-timeline__item {
	position: relative;
	padding-left: 2.75rem;
	padding-bottom: var(--gf-space-40, 1.5rem);
}
.gf-timeline__item:last-child { padding-bottom: 0; }
.gf-timeline__marker {
	position: absolute;
	top: 0.1rem;
	left: 0;
	width: 1.75rem;
	height: 1.75rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--gf-radius-pill, 999px);
	background: var(--gf-color-brand-soft, #eef7df);
	color: var(--gf-color-brand-strong, #4f7a1f);
	box-shadow: 0 0 0 2px var(--gf-color-surface, #ffffff), 0 0 0 4px var(--gf-color-brand, #9bd45f);
}
.gf-timeline__marker svg { width: 0.95rem; height: 0.95rem; display: block; }
.gf-timeline__dot { width: 0.5rem; height: 0.5rem; border-radius: var(--gf-radius-pill, 999px); background: currentColor; }
.gf-timeline__date {
	display: block;
	font-size: var(--gf-size-sm, 0.875rem);
	font-weight: 700;
	letter-spacing: 0.02em;
	color: var(--gf-color-brand-strong, #4f7a1f);
}
.gf-timeline__title {
	margin: 0.15rem 0 0.35rem;
	font-family: var(--gf-font-display, sans-serif);
	font-size: var(--gf-size-lg, 1.125rem);
	line-height: 1.25;
	color: var(--gf-color-ink, #15201a);
}
.gf-timeline__text { margin: 0; color: var(--gf-color-ink-2, #46514a); }
.gf-timeline__empty { color: var(--gf-color-muted, #71807a); padding-left: 0; }
@media (min-width: 641px) {
	.gf-timeline[data-align="alternate"]::before { left: 50%; transform: translateX(-50%); }
	.gf-timeline[data-align="alternate"] .gf-timeline__item {
		width: 50%;
		box-sizing: border-box;
		padding-left: 0;
		padding-right: 2.75rem;
		text-align: right;
	}
	.gf-timeline[data-align="alternate"] .gf-timeline__item:nth-child(even) {
		margin-left: 50%;
		padding-left: 2.75rem;
		padding-right: 0;
		text-align: left;
	}
	.gf-timeline[data-align="alternate"] .gf-timeline__marker { left: auto; right: -0.875rem; }
	.gf-timeline[data-align="alternate"] .gf-timeline__item:nth-child(even) .gf-timeline__marker { left: -0.875rem; right: auto; }
}

/* == toc == */
.gf-toc { align-self: start; padding: 1.1rem 1.3rem; background: var(--gf-color-surface, #ffffff); border: 1px solid var(--gf-color-border, #e6e9df); border-radius: var(--gf-radius-md, 16px); }
.gf-toc__title { margin: 0 0 0.6rem; font-family: var(--gf-font-mono, monospace); font-size: 0.6875rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gf-color-muted, #71807a); }
.gf-toc__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.3rem; }
.gf-toc[data-numbered="1"] .gf-toc__list { counter-reset: gf-toc; }
.gf-toc__item { line-height: 1.4; }
.gf-toc__item--hint { color: var(--gf-color-muted, #71807a); font-size: var(--gf-size-sm, 0.875rem); }
.gf-toc__link { display: inline-block; color: var(--gf-color-ink-2, #46514a); text-decoration: none; font-size: var(--gf-size-sm, 0.875rem); border-left: 2px solid transparent; padding-left: 0.6rem; margin-left: -0.6rem; transition: color 0.15s ease, border-color 0.15s ease; }
.gf-toc__link:hover, .gf-toc__link:focus-visible { color: var(--gf-color-brand-strong, #4f7a1f); border-left-color: var(--gf-color-brand, #9bd45f); }
.gf-toc__item[data-level="h3"] .gf-toc__link { padding-left: 1.5rem; }
.gf-toc__item[data-level="h4"] .gf-toc__link { padding-left: 2.4rem; }
.gf-toc[data-numbered="1"] .gf-toc__item[data-level="h2"] .gf-toc__link::before { counter-increment: gf-toc; content: counter(gf-toc) ". "; color: var(--gf-color-muted, #71807a); }
@media (min-width: 1025px) {
	.gf-toc { position: sticky; top: var(--gf-anchor-offset, 6rem); }
}
@media (prefers-reduced-motion: reduce) {
	.gf-toc__link { transition: none; }
}

/* == toggle == */
.gf-toggle { padding: 0 1.25rem; background: var(--gf-color-surface, #ffffff); border: 1.5px solid var(--gf-color-border, #e3e6dc); border-radius: var(--gf-radius-md, 16px); }
.gf-toggle__summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.1rem 0; font-family: var(--gf-font-display, sans-serif); font-size: var(--gf-size-lg, 1.125rem); font-weight: 600; color: var(--gf-color-ink, #15201a); cursor: pointer; list-style: none; }
.gf-toggle__summary::-webkit-details-marker { display: none; }
.gf-toggle__summary:focus-visible { outline: 2px solid var(--gf-color-accent, #5fae6e); outline-offset: 2px; border-radius: var(--gf-radius-sm, 10px); }
.gf-toggle__title { flex: 1 1 auto; }
.gf-toggle__marker { flex: none; display: inline-flex; color: var(--gf-color-brand-strong, #4f7a1f); transition: transform .2s ease; }
.gf-toggle__marker svg { width: 1.25rem; height: 1.25rem; }
.gf-toggle[open] .gf-toggle__marker { transform: rotate(180deg); }
.gf-toggle__content { padding: 0 0 1.25rem; color: var(--gf-color-ink-2, #46514a); line-height: 1.7; }
.gf-toggle__content > :first-child { margin-top: 0; }
.gf-toggle__content > :last-child { margin-bottom: 0; }
@media (prefers-reduced-motion: reduce) { .gf-toggle__marker { transition: none; } }

/* == video == */
.gf-video{ position:relative; display:block; width:100%; aspect-ratio:var(--gf-ratio, 16 / 9); overflow:hidden; border-radius:var(--gf-radius-md,16px); background:var(--gf-color-ink,#15201a); }
.gf-video__el{ position:absolute; inset:0; width:100%; height:100%; border:0; display:block; object-fit:cover; }
.gf-video__facade{ position:absolute; inset:0; width:100%; height:100%; padding:0; border:0; cursor:pointer; background:var(--gf-color-ink,#15201a); display:flex; align-items:center; justify-content:center; }
.gf-video__poster{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.gf-video__play{
	position:relative; z-index:1; width:72px; height:72px; display:inline-flex; align-items:center; justify-content:center;
	border-radius:var(--gf-radius-pill,999px); background:var(--gf-color-brand,#9bd45f); color:var(--gf-color-brand-ink,#1e3209);
	box-shadow:0 10px 30px color-mix(in srgb, var(--gf-color-ink, #15201a) 35%, transparent); transition:transform 0.2s ease;
}
.gf-video__play svg{ width:30px; height:30px; margin-left:3px; }
.gf-video__facade:hover .gf-video__play{ transform:scale(1.08); }
.gf-video__facade:focus-visible{ outline:3px solid var(--gf-color-brand,#9bd45f); outline-offset:-3px; }
.gf-video__placeholder{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:var(--gf-color-on-dark,#f7fffd); font-family:var(--gf-font-body,sans-serif); }
@media (prefers-reduced-motion: reduce){
	.gf-video__play{ transition:none; }
	.gf-video__facade:hover .gf-video__play{ transform:none; }
}

/* == video-playlist == */
.gf-video-playlist{ display:grid; gap:var(--gf-space-40,1.5rem); }
.gf-video-playlist[data-layout="side"]{ grid-template-columns:minmax(0,2fr) minmax(220px,1fr); align-items:start; }
.gf-video-playlist[data-layout="below"]{ grid-template-columns:minmax(0,1fr); }
.gf-video-playlist__stage{ position:relative; aspect-ratio:16 / 9; overflow:hidden; border-radius:var(--gf-radius-md,16px); background:var(--gf-color-ink,#15201a); }
.gf-video-playlist__el{ position:absolute; inset:0; width:100%; height:100%; border:0; display:block; object-fit:cover; }
.gf-video-playlist__facade{ position:absolute; inset:0; width:100%; height:100%; padding:0; border:0; cursor:pointer; background:var(--gf-color-ink,#15201a); display:flex; align-items:center; justify-content:center; }
.gf-video-playlist__poster{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.gf-video-playlist__play{
	position:relative; z-index:1; width:66px; height:66px; display:inline-flex; align-items:center; justify-content:center;
	border-radius:var(--gf-radius-pill,999px); background:var(--gf-color-brand,#9bd45f); color:var(--gf-color-brand-ink,#1e3209);
	box-shadow:0 10px 30px color-mix(in srgb, var(--gf-color-ink, #15201a) 35%, transparent);
}
.gf-video-playlist__play svg{ width:28px; height:28px; margin-left:3px; }
.gf-video-playlist__facade:focus-visible{ outline:3px solid var(--gf-color-brand,#9bd45f); outline-offset:-3px; }
.gf-video-playlist__list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:0.5rem; max-height:none; overflow:auto; }
.gf-video-playlist[data-layout="side"] .gf-video-playlist__list{ max-height:min(70vh,520px); }
.gf-video-playlist[data-layout="below"] .gf-video-playlist__list{ display:grid; grid-template-columns:repeat(auto-fill, minmax(220px,1fr)); }
.gf-video-playlist__item{
	display:flex; align-items:center; gap:0.75rem; width:100%; text-align:left; cursor:pointer;
	padding:0.5rem; border:1px solid transparent; border-radius:var(--gf-radius-sm,10px);
	background:var(--gf-color-surface,#ffffff); color:var(--gf-color-ink,#15201a); font-family:var(--gf-font-body,sans-serif);
}
.gf-video-playlist__item:hover{ background:var(--gf-color-surface-2,#f1f3ec); }
.gf-video-playlist__item:focus-visible{ outline:2px solid var(--gf-color-brand,#9bd45f); outline-offset:2px; }
.gf-video-playlist__item[aria-current="true"]{ border-color:var(--gf-color-brand,#9bd45f); background:var(--gf-color-brand-soft,#eef7df); }
.gf-video-playlist__thumb{ flex:0 0 auto; width:88px; height:52px; object-fit:cover; border-radius:6px; background:var(--gf-color-surface-2,#f1f3ec); }
.gf-video-playlist__thumb--empty{ display:inline-flex; align-items:center; justify-content:center; color:var(--gf-color-muted,#71807a); }
.gf-video-playlist__thumb--empty svg{ width:20px; height:20px; }
.gf-video-playlist__title{ font-size:var(--gf-size-sm,0.875rem); line-height:1.3; font-weight:600; }
.gf-video-playlist__empty{ padding:var(--gf-space-40,1.5rem); text-align:center; color:var(--gf-color-muted,#71807a); border:1px dashed var(--gf-color-border-strong,#cfd4c6); border-radius:var(--gf-radius-md,16px); }
@media (max-width:768px){ .gf-video-playlist[data-layout="side"]{ grid-template-columns:minmax(0,1fr); } .gf-video-playlist[data-layout="side"] .gf-video-playlist__list{ max-height:none; } }

/* == product-add-to-cart == */
.gf-product-add-to-cart .quantity{display:inline-flex;align-items:center;margin-inline-end:var(--gf-space-20,.5rem)}
.gf-product-add-to-cart .quantity input.qty{width:4.5rem;height:3rem;text-align:center;font-size:var(--gf-size-base,1rem);color:var(--gf-color-ink,#15201a);background:var(--gf-color-surface,#fff);border:1.5px solid var(--gf-color-border-strong,#cfd4c6);border-radius:var(--gf-radius-sm,10px)}
.gf-product-add-to-cart button.single_add_to_cart_button,.gf-product-add-to-cart .single_add_to_cart_button{display:inline-flex;align-items:center;justify-content:center;gap:.5em;padding:.85rem 1.6rem;min-height:3rem;font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif);font-weight:600;font-size:var(--gf-size-base,1rem);color:var(--gf-color-brand-ink,#1e3209);background:var(--gf-color-brand,#9bd45f);border:0;border-radius:var(--gf-radius-pill,999px);cursor:pointer;transition:background .2s ease,transform .1s ease}
.gf-product-add-to-cart button.single_add_to_cart_button:hover{background:var(--gf-color-brand-strong,#4f7a1f);color:var(--gf-color-on-dark,#f7fffd)}
.gf-product-add-to-cart button.single_add_to_cart_button:focus-visible{outline:2px solid var(--gf-color-accent,#5fae6e);outline-offset:2px}
.gf-product-add-to-cart .variations{width:100%;margin-block-end:var(--gf-space-30,1rem);border-collapse:collapse}
.gf-product-add-to-cart .variations td,.gf-product-add-to-cart .variations th{padding:.4rem 0;text-align:start;vertical-align:middle}
.gf-product-add-to-cart .variations select{min-height:2.75rem;padding:0 .75rem;border:1.5px solid var(--gf-color-border-strong,#cfd4c6);border-radius:var(--gf-radius-sm,10px);background:var(--gf-color-surface,#fff);color:var(--gf-color-ink,#15201a)}
.gf-product-add-to-cart .woocommerce-variation-price{margin-block:var(--gf-space-20,.5rem);font-weight:700;color:var(--gf-color-ink,#15201a)}
.gf-product-add-to-cart[data-gf-placeholder]{padding:var(--gf-space-40,1.5rem);border:1px dashed var(--gf-color-border-strong,#cfd4c6);border-radius:var(--gf-radius-md,16px)}
.gf-product-add-to-cart[data-gf-placeholder] .gf-wc__notice{color:var(--gf-color-muted,#71807a);font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif)}
@media (prefers-reduced-motion: reduce){.gf-product-add-to-cart button.single_add_to_cart_button{transition:none}}

/* == add-to-cart-button == */
.gf-add-to-cart-button{display:inline-block}
.gf-add-to-cart-button__link{display:inline-flex;align-items:center;gap:.5em;padding:.75rem 1.4rem;font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif);font-weight:600;font-size:var(--gf-size-base,1rem);line-height:1.2;color:var(--gf-color-brand-ink,#1e3209);background:var(--gf-color-brand,#9bd45f);border:0;border-radius:var(--gf-radius-pill,999px);text-decoration:none;cursor:pointer;transition:background .2s ease,transform .1s ease}
.gf-add-to-cart-button__link:hover{background:var(--gf-color-brand-strong,#4f7a1f);color:var(--gf-color-on-dark,#f7fffd)}
.gf-add-to-cart-button__link:focus-visible{outline:2px solid var(--gf-color-accent,#5fae6e);outline-offset:2px}
.gf-add-to-cart-button__link.added{opacity:.85}
.gf-add-to-cart-button__link.loading{opacity:.6;pointer-events:none}
.gf-add-to-cart-button__price{font-weight:700}
.gf-add-to-cart-button__price del{opacity:.6;font-weight:500;margin-inline-end:.35em}
.gf-add-to-cart-button__price ins{text-decoration:none}
.gf-add-to-cart-button[data-gf-placeholder] .gf-add-to-cart-button__link{background:var(--gf-color-surface-2,#f1f3ec);color:var(--gf-color-muted,#71807a)}
@media (prefers-reduced-motion: reduce){.gf-add-to-cart-button__link{transition:none}}

/* == archive-description == */
.gf-archive-description{font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif);font-size:var(--gf-size-lg,1.125rem);line-height:1.7;color:var(--gf-color-ink-2,#46514a)}
.gf-archive-description > *{margin-block:0 var(--gf-space-30,1rem)}
.gf-archive-description > :first-child{margin-block-start:0}
.gf-archive-description > :last-child{margin-block-end:0}
.gf-archive-description .term-description{margin:0}
.gf-archive-description[data-gf-placeholder]{padding:var(--gf-space-40,1.5rem);border:1px dashed var(--gf-color-border-strong,#cfd4c6);border-radius:var(--gf-radius-md,16px)}
.gf-archive-description[data-gf-placeholder] .gf-wc__notice{color:var(--gf-color-muted,#71807a)}

/* == archive-products == */
.gf-archive-products ul.products{display:grid;grid-template-columns:repeat(var(--gf-cols,4),minmax(0,1fr));gap:var(--gf-space-40,1.5rem);margin:0;padding:0;list-style:none}
.gf-archive-products ul.products::before,.gf-archive-products ul.products::after{display:none}
.gf-archive-products ul.products li.product{width:auto!important;margin:0!important;float:none!important;display:flex;flex-direction:column;gap:.4rem;text-align:start}
.gf-archive-products ul.products li.product a img{width:100%;height:auto;border-radius:var(--gf-radius-md,16px)}
.gf-archive-products ul.products li.product .woocommerce-loop-product__title{font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif);font-size:var(--gf-size-base,1rem);font-weight:600;color:var(--gf-color-ink,#15201a);padding:0}
.gf-archive-products ul.products li.product .price{color:var(--gf-color-brand-strong,#4f7a1f);font-weight:700}
.gf-archive-products ul.products li.product .button{align-self:flex-start;color:var(--gf-color-brand-ink,#1e3209);background:var(--gf-color-brand,#9bd45f);border-radius:var(--gf-radius-pill,999px);padding:.5rem 1rem;text-decoration:none;font-weight:600}
.gf-archive-products .gf-wc-skeleton{list-style:none}
.gf-archive-products .gf-wc-skeleton__media{display:block;aspect-ratio:1/1;border-radius:var(--gf-radius-md,16px);background:var(--gf-color-surface-2,#f1f3ec)}
.gf-archive-products .gf-wc-skeleton__line{display:block;height:.8rem;margin-top:.6rem;border-radius:var(--gf-radius-sm,10px);background:var(--gf-color-surface-2,#f1f3ec)}
.gf-archive-products .gf-wc-skeleton__line--short{width:55%}
@media (max-width:1024px){.gf-archive-products ul.products{grid-template-columns:repeat(min(var(--gf-cols,4),3),minmax(0,1fr))}}
@media (max-width:640px){.gf-archive-products ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* == woo-breadcrumb == */
.gf-woo-breadcrumb .woocommerce-breadcrumb{font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif);font-size:var(--gf-size-sm,.875rem);color:var(--gf-color-muted,#71807a);line-height:1.6}
.gf-woo-breadcrumb .woocommerce-breadcrumb a{color:var(--gf-color-brand-strong,#4f7a1f);text-decoration:none}
.gf-woo-breadcrumb .woocommerce-breadcrumb a:hover{text-decoration:underline}
.gf-woo-breadcrumb[data-gf-placeholder] .gf-wc__notice{color:var(--gf-color-muted,#71807a);font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif);font-size:var(--gf-size-sm,.875rem)}

/* == cart == */
.gf-cart{font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif);color:var(--gf-color-ink-2,#46514a)}
.gf-cart .woocommerce-cart-form__contents,.gf-cart table.shop_table{width:100%;border-collapse:collapse;border:1px solid var(--gf-color-border,#e3e6dc);border-radius:var(--gf-radius-md,16px);overflow:hidden}
.gf-cart table.shop_table th{padding:1rem;text-align:start;font-family:var(--gf-font-display,"Space Grotesk",ui-sans-serif,system-ui,sans-serif);font-size:var(--gf-size-sm,.875rem);text-transform:uppercase;letter-spacing:.04em;color:var(--gf-color-ink,#15201a);background:var(--gf-color-surface-2,#f1f3ec)}
.gf-cart table.shop_table td{padding:1rem;border-top:1px solid var(--gf-color-border,#e3e6dc);vertical-align:middle}
.gf-cart .cart_item .product-thumbnail img{width:64px;height:64px;object-fit:cover;border-radius:var(--gf-radius-sm,10px)}
.gf-cart .product-name a{color:var(--gf-color-ink,#15201a);text-decoration:none;font-weight:600}
.gf-cart .product-name a:hover{color:var(--gf-color-brand-strong,#4f7a1f)}
.gf-cart .product-remove a.remove{display:inline-flex;align-items:center;justify-content:center;width:1.6rem;height:1.6rem;border-radius:var(--gf-radius-pill,999px);color:var(--gf-color-muted,#71807a)!important;background:var(--gf-color-surface-2,#f1f3ec);text-decoration:none;font-size:1rem}
.gf-cart .product-remove a.remove:hover{color:#b3261e!important;background:#fdeceb}
.gf-cart .quantity input.qty{width:4.5rem;height:2.75rem;text-align:center;border:1.5px solid var(--gf-color-border-strong,#cfd4c6);border-radius:var(--gf-radius-sm,10px);background:var(--gf-color-surface,#fff);color:var(--gf-color-ink,#15201a)}
.gf-cart .actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:space-between;padding:1rem 0}
.gf-cart .coupon{display:flex;gap:.5rem;flex-wrap:wrap}
.gf-cart .coupon input[type="text"]{min-height:2.75rem;padding:0 .9rem;border:1.5px solid var(--gf-color-border-strong,#cfd4c6);border-radius:var(--gf-radius-sm,10px);background:var(--gf-color-surface,#fff)}
.gf-cart .cart_totals{margin-top:var(--gf-space-40,1.5rem);padding:var(--gf-space-40,1.5rem);background:var(--gf-color-surface,#fff);border:1px solid var(--gf-color-border,#e3e6dc);border-radius:var(--gf-radius-md,16px)}
.gf-cart .cart_totals h2{margin:0 0 1rem;font-family:var(--gf-font-display,"Space Grotesk",ui-sans-serif,system-ui,sans-serif);font-size:var(--gf-size-xl,1.25rem);color:var(--gf-color-ink,#15201a)}
.gf-cart .cart_totals table{width:100%;border-collapse:collapse}
.gf-cart .cart_totals th,.gf-cart .cart_totals td{padding:.7rem 0;text-align:start;border-bottom:1px solid var(--gf-color-border,#e3e6dc)}
.gf-cart .cart_totals .order-total .amount{font-family:var(--gf-font-display,"Space Grotesk",ui-sans-serif,system-ui,sans-serif);font-size:var(--gf-size-lg,1.125rem);color:var(--gf-color-ink,#15201a)}
.gf-cart .button,.gf-cart button.button,.gf-cart input.button{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.4rem;min-height:2.75rem;font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif);font-weight:600;color:var(--gf-color-ink,#15201a);background:var(--gf-color-surface-2,#f1f3ec);border:0;border-radius:var(--gf-radius-pill,999px);cursor:pointer;text-decoration:none;transition:background .2s ease,color .2s ease}
.gf-cart .button:hover{background:var(--gf-color-border,#e3e6dc)}
.gf-cart .checkout-button,.gf-cart .wc-proceed-to-checkout .button{width:100%;color:var(--gf-color-brand-ink,#1e3209)!important;background:var(--gf-color-brand,#9bd45f)!important}
.gf-cart .checkout-button:hover{background:var(--gf-color-brand-strong,#4f7a1f)!important;color:var(--gf-color-on-dark,#f7fffd)!important}
.gf-cart .button:focus-visible{outline:2px solid var(--gf-color-accent,#5fae6e);outline-offset:2px}
.gf-cart .wc-empty-cart-message,.gf-cart .cart-empty{color:var(--gf-color-muted,#71807a)}
.gf-cart[data-gf-placeholder]{padding:0}
.gf-wc-page__ph{display:flex;flex-direction:column;gap:.5rem;padding:var(--gf-space-50,3rem) var(--gf-space-40,1.5rem);text-align:center;border:1px dashed var(--gf-color-border-strong,#cfd4c6);border-radius:var(--gf-radius-md,16px);background:var(--gf-color-surface-2,#f1f3ec)}
.gf-wc-page__ph-title{font-family:var(--gf-font-display,"Space Grotesk",ui-sans-serif,system-ui,sans-serif);font-size:var(--gf-size-xl,1.25rem);color:var(--gf-color-ink,#15201a)}
.gf-wc-page__ph-note{color:var(--gf-color-muted,#71807a)}
@media (max-width:640px){.gf-cart table.shop_table thead{display:none}.gf-cart table.shop_table td{display:block;text-align:end}.gf-cart .actions{flex-direction:column;align-items:stretch}}
@media (prefers-reduced-motion: reduce){.gf-cart .button{transition:none}}

/* == checkout == */
.gf-checkout{font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif);color:var(--gf-color-ink-2,#46514a)}
.gf-checkout form.checkout{display:flex;flex-wrap:wrap;gap:var(--gf-space-50,3rem)}
.gf-checkout #customer_details{flex:1 1 360px;min-width:0}
.gf-checkout #order_review,.gf-checkout #order_review_heading{flex:1 1 320px;min-width:0}
.gf-checkout h3,.gf-checkout #order_review_heading{margin:0 0 1rem;font-family:var(--gf-font-display,"Space Grotesk",ui-sans-serif,system-ui,sans-serif);font-size:var(--gf-size-xl,1.25rem);color:var(--gf-color-ink,#15201a)}
.gf-checkout .woocommerce-billing-fields__field-wrapper,.gf-checkout .woocommerce-shipping-fields__field-wrapper,.gf-checkout .woocommerce-additional-fields{display:flex;flex-direction:column;gap:.85rem}
.gf-checkout .form-row{display:flex;flex-direction:column;gap:.35rem;margin:0}
.gf-checkout .form-row label{font-size:var(--gf-size-sm,.875rem);font-weight:600;color:var(--gf-color-ink,#15201a)}
.gf-checkout .form-row .required{color:var(--gf-color-brand-strong,#4f7a1f);text-decoration:none}
.gf-checkout .form-row .input-text,.gf-checkout .form-row input[type="text"],.gf-checkout .form-row input[type="email"],.gf-checkout .form-row input[type="tel"],.gf-checkout .form-row input[type="password"],.gf-checkout .form-row textarea,.gf-checkout .select2-container--default .select2-selection--single,.gf-checkout .form-row select{width:100%;min-height:2.9rem;padding:.65rem .85rem;font-size:var(--gf-size-base,1rem);color:var(--gf-color-ink,#15201a);background:var(--gf-color-surface,#fff);border:1.5px solid var(--gf-color-border-strong,#cfd4c6);border-radius:var(--gf-radius-sm,10px);transition:border-color .15s ease,box-shadow .15s ease}
.gf-checkout .form-row .input-text:focus,.gf-checkout .form-row textarea:focus,.gf-checkout .form-row select:focus{outline:0;border-color:var(--gf-color-brand,#9bd45f);box-shadow:0 0 0 3px var(--gf-color-brand-soft,#eef7df)}
.gf-checkout .form-row.woocommerce-invalid .input-text{border-color:#b3261e}
.gf-checkout .form-row.woocommerce-validated .input-text{border-color:var(--gf-color-brand,#9bd45f)}
.gf-checkout .select2-container--default .select2-selection--single{display:flex;align-items:center}
.gf-checkout #order_review{padding:var(--gf-space-40,1.5rem);background:var(--gf-color-surface,#fff);border:1px solid var(--gf-color-border,#e3e6dc);border-radius:var(--gf-radius-md,16px)}
.gf-checkout table.woocommerce-checkout-review-order-table{width:100%;border-collapse:collapse;font-size:var(--gf-size-sm,.9rem)}
.gf-checkout table.woocommerce-checkout-review-order-table th,.gf-checkout table.woocommerce-checkout-review-order-table td{padding:.7rem 0;text-align:start;border-bottom:1px solid var(--gf-color-border,#e3e6dc)}
.gf-checkout table.woocommerce-checkout-review-order-table .order-total .amount{font-family:var(--gf-font-display,"Space Grotesk",ui-sans-serif,system-ui,sans-serif);font-size:var(--gf-size-lg,1.125rem);color:var(--gf-color-ink,#15201a)}
.gf-checkout #payment{margin-top:var(--gf-space-30,1rem);background:transparent}
.gf-checkout #payment ul.payment_methods{list-style:none;margin:0 0 1rem;padding:0;border:0;display:flex;flex-direction:column;gap:.5rem}
.gf-checkout #payment ul.payment_methods li{padding:.85rem 1rem;background:var(--gf-color-surface-2,#f1f3ec);border:1.5px solid transparent;border-radius:var(--gf-radius-sm,10px)}
.gf-checkout #payment ul.payment_methods li input[type="radio"]{accent-color:var(--gf-color-brand-strong,#4f7a1f);margin-inline-end:.5rem}
.gf-checkout #payment ul.payment_methods li label{font-weight:600;color:var(--gf-color-ink,#15201a)}
.gf-checkout #payment div.payment_box{margin-top:.6rem;padding:.85rem 1rem;font-size:var(--gf-size-sm,.875rem);color:var(--gf-color-ink-2,#46514a);background:var(--gf-color-surface,#fff);border-radius:var(--gf-radius-sm,10px)}
.gf-checkout #payment div.payment_box::before{display:none}
.gf-checkout .woocommerce-terms-and-conditions-wrapper{margin:1rem 0;font-size:var(--gf-size-sm,.875rem)}
.gf-checkout #place_order,.gf-checkout #payment #place_order{width:100%;padding:.95rem 1.5rem;min-height:3.2rem;font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif);font-weight:700;font-size:var(--gf-size-base,1rem);color:var(--gf-color-brand-ink,#1e3209);background:var(--gf-color-brand,#9bd45f);border:0;border-radius:var(--gf-radius-pill,999px);cursor:pointer;transition:background .2s ease,transform .1s ease}
.gf-checkout #place_order:hover{background:var(--gf-color-brand-strong,#4f7a1f);color:var(--gf-color-on-dark,#f7fffd)}
.gf-checkout #place_order:focus-visible{outline:2px solid var(--gf-color-accent,#5fae6e);outline-offset:2px}
.gf-checkout .woocommerce-info,.gf-checkout .woocommerce-error,.gf-checkout .woocommerce-message{margin:0 0 1rem;padding:.85rem 1rem;border-radius:var(--gf-radius-sm,10px);list-style:none;font-size:var(--gf-size-sm,.9rem)}
.gf-checkout .woocommerce-info{background:var(--gf-color-brand-soft,#eef7df);color:var(--gf-color-brand-ink,#1e3209)}
.gf-checkout .woocommerce-error{background:#fdeceb;color:#8a1c14}
.gf-checkout[data-gf-placeholder]{padding:0}
.gf-wc-page__ph{display:flex;flex-direction:column;gap:.5rem;padding:var(--gf-space-50,3rem) var(--gf-space-40,1.5rem);text-align:center;border:1px dashed var(--gf-color-border-strong,#cfd4c6);border-radius:var(--gf-radius-md,16px);background:var(--gf-color-surface-2,#f1f3ec)}
.gf-wc-page__ph-title{font-family:var(--gf-font-display,"Space Grotesk",ui-sans-serif,system-ui,sans-serif);font-size:var(--gf-size-xl,1.25rem);color:var(--gf-color-ink,#15201a)}
.gf-wc-page__ph-note{color:var(--gf-color-muted,#71807a)}
@media (max-width:768px){.gf-checkout form.checkout{gap:var(--gf-space-40,1.5rem)}}
@media (prefers-reduced-motion: reduce){.gf-checkout .form-row .input-text,.gf-checkout #place_order{transition:none}}

/* == menu-cart == */
.gf-menu-cart{position:relative;display:inline-block}
.gf-menu-cart__toggle{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .75rem;font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif);font-weight:600;font-size:var(--gf-size-sm,.875rem);color:var(--gf-color-ink,#15201a);background:transparent;border:0;border-radius:var(--gf-radius-pill,999px);cursor:pointer}
.gf-menu-cart__toggle:hover{color:var(--gf-color-brand-strong,#4f7a1f)}
.gf-menu-cart__toggle:focus-visible{outline:2px solid var(--gf-color-accent,#5fae6e);outline-offset:2px}
.gf-menu-cart__icon-wrap{position:relative;display:inline-flex}
.gf-menu-cart__icon{width:1.5rem;height:1.5rem}
.gf-menu-cart__count{position:absolute;top:-.5rem;inset-inline-end:-.6rem;min-width:1.15rem;height:1.15rem;padding:0 .3rem;display:inline-flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;line-height:1;color:var(--gf-color-brand-ink,#1e3209);background:var(--gf-color-brand,#9bd45f);border-radius:var(--gf-radius-pill,999px)}
.gf-menu-cart__total{font-weight:700}
.gf-menu-cart__drawer{position:absolute;inset-inline-end:0;top:calc(100% + .5rem);z-index:60;width:min(360px,90vw);padding:var(--gf-space-40,1.5rem);background:var(--gf-color-surface,#fff);border:1px solid var(--gf-color-border,#e3e6dc);border-radius:var(--gf-radius-md,16px);box-shadow:0 18px 44px rgba(21,32,26,.16)}
.gf-menu-cart__drawer[hidden]{display:none}
.gf-menu-cart__drawer .woocommerce-mini-cart{list-style:none;margin:0;padding:0;max-height:50vh;overflow-y:auto}
.gf-menu-cart__drawer .woocommerce-mini-cart__empty-message{margin:0;color:var(--gf-color-muted,#71807a)}
.gf-menu-cart__drawer .mini_cart_item{display:flex;gap:.75rem;align-items:center;padding:.6rem 0;border-bottom:1px solid var(--gf-color-border,#e3e6dc)}
.gf-menu-cart__drawer .mini_cart_item img{width:48px;height:48px;object-fit:cover;border-radius:var(--gf-radius-sm,10px)}
.gf-menu-cart__drawer .mini_cart_item a:not(.remove){color:var(--gf-color-ink,#15201a);text-decoration:none;font-weight:600}
.gf-menu-cart__drawer .woocommerce-mini-cart__total{display:flex;justify-content:space-between;margin:var(--gf-space-30,1rem) 0;font-weight:700;color:var(--gf-color-ink,#15201a)}
.gf-menu-cart__drawer .woocommerce-mini-cart__buttons{display:flex;gap:.5rem;flex-wrap:wrap;margin:0}
.gf-menu-cart__drawer .woocommerce-mini-cart__buttons .button{flex:1 1 auto;text-align:center;padding:.6rem 1rem;border-radius:var(--gf-radius-pill,999px);text-decoration:none;font-weight:600;color:var(--gf-color-ink,#15201a);background:var(--gf-color-surface-2,#f1f3ec)}
.gf-menu-cart__drawer .woocommerce-mini-cart__buttons .button.checkout{color:var(--gf-color-brand-ink,#1e3209);background:var(--gf-color-brand,#9bd45f)}
.gf-menu-cart[data-gf-placeholder] .gf-menu-cart__count{background:var(--gf-color-surface-2,#f1f3ec);color:var(--gf-color-muted,#71807a)}

/* == my-account == */
.gf-my-account{font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif);color:var(--gf-color-ink-2,#46514a)}
.gf-my-account .woocommerce-account,.gf-my-account .woocommerce{display:block}
.gf-my-account .woocommerce-MyAccount-navigation ul{list-style:none;margin:0 0 var(--gf-space-40,1.5rem);padding:0;display:flex;flex-wrap:wrap;gap:.35rem;border-bottom:1px solid var(--gf-color-border,#e3e6dc)}
.gf-my-account .woocommerce-MyAccount-navigation li a{display:inline-block;padding:.7rem 1rem;font-weight:600;font-size:var(--gf-size-sm,.9rem);color:var(--gf-color-muted,#71807a);text-decoration:none;border-bottom:2px solid transparent}
.gf-my-account .woocommerce-MyAccount-navigation li a:hover{color:var(--gf-color-ink,#15201a)}
.gf-my-account .woocommerce-MyAccount-navigation li.is-active a{color:var(--gf-color-brand-strong,#4f7a1f);border-bottom-color:var(--gf-color-brand,#9bd45f)}
.gf-my-account .woocommerce-MyAccount-content{font-size:var(--gf-size-base,1rem);line-height:1.7}
.gf-my-account .woocommerce-MyAccount-content h2,.gf-my-account .woocommerce-MyAccount-content h3{font-family:var(--gf-font-display,"Space Grotesk",ui-sans-serif,system-ui,sans-serif);color:var(--gf-color-ink,#15201a)}
.gf-my-account table.shop_table,.gf-my-account table.woocommerce-orders-table,.gf-my-account table.account-orders-table{width:100%;border-collapse:collapse;border:1px solid var(--gf-color-border,#e3e6dc);border-radius:var(--gf-radius-md,16px);overflow:hidden}
.gf-my-account table.shop_table th{padding:.85rem 1rem;text-align:start;font-size:var(--gf-size-sm,.875rem);text-transform:uppercase;letter-spacing:.04em;color:var(--gf-color-ink,#15201a);background:var(--gf-color-surface-2,#f1f3ec)}
.gf-my-account table.shop_table td{padding:.85rem 1rem;border-top:1px solid var(--gf-color-border,#e3e6dc)}
.gf-my-account .form-row{display:flex;flex-direction:column;gap:.35rem;margin:0 0 1rem}
.gf-my-account label{font-size:var(--gf-size-sm,.875rem);font-weight:600;color:var(--gf-color-ink,#15201a)}
.gf-my-account input.input-text,.gf-my-account input[type="text"],.gf-my-account input[type="email"],.gf-my-account input[type="password"],.gf-my-account input[type="tel"],.gf-my-account select,.gf-my-account textarea{width:100%;min-height:2.9rem;padding:.65rem .85rem;font-size:var(--gf-size-base,1rem);color:var(--gf-color-ink,#15201a);background:var(--gf-color-surface,#fff);border:1.5px solid var(--gf-color-border-strong,#cfd4c6);border-radius:var(--gf-radius-sm,10px);transition:border-color .15s ease,box-shadow .15s ease}
.gf-my-account input.input-text:focus,.gf-my-account select:focus,.gf-my-account textarea:focus{outline:0;border-color:var(--gf-color-brand,#9bd45f);box-shadow:0 0 0 3px var(--gf-color-brand-soft,#eef7df)}
.gf-my-account .button,.gf-my-account button.button,.gf-my-account input.button,.gf-my-account button[type="submit"]{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;min-height:2.9rem;font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif);font-weight:600;color:var(--gf-color-brand-ink,#1e3209);background:var(--gf-color-brand,#9bd45f);border:0;border-radius:var(--gf-radius-pill,999px);cursor:pointer;text-decoration:none;transition:background .2s ease,color .2s ease}
.gf-my-account .button:hover,.gf-my-account button[type="submit"]:hover{background:var(--gf-color-brand-strong,#4f7a1f);color:var(--gf-color-on-dark,#f7fffd)}
.gf-my-account .button:focus-visible,.gf-my-account button[type="submit"]:focus-visible{outline:2px solid var(--gf-color-accent,#5fae6e);outline-offset:2px}
.gf-my-account .woocommerce-form-login,.gf-my-account .woocommerce-form-register,.gf-my-account .u-columns .col-1,.gf-my-account .u-columns .col-2{padding:var(--gf-space-40,1.5rem);background:var(--gf-color-surface,#fff);border:1px solid var(--gf-color-border,#e3e6dc);border-radius:var(--gf-radius-md,16px)}
.gf-my-account .woocommerce-info,.gf-my-account .woocommerce-message{margin:0 0 1rem;padding:.85rem 1rem;border-radius:var(--gf-radius-sm,10px);background:var(--gf-color-brand-soft,#eef7df);color:var(--gf-color-brand-ink,#1e3209);list-style:none}
.gf-my-account .woocommerce-error{margin:0 0 1rem;padding:.85rem 1rem;border-radius:var(--gf-radius-sm,10px);background:#fdeceb;color:#8a1c14;list-style:none}
.gf-my-account[data-gf-placeholder]{padding:0}
.gf-wc-page__ph{display:flex;flex-direction:column;gap:.5rem;padding:var(--gf-space-50,3rem) var(--gf-space-40,1.5rem);text-align:center;border:1px dashed var(--gf-color-border-strong,#cfd4c6);border-radius:var(--gf-radius-md,16px);background:var(--gf-color-surface-2,#f1f3ec)}
.gf-wc-page__ph-title{font-family:var(--gf-font-display,"Space Grotesk",ui-sans-serif,system-ui,sans-serif);font-size:var(--gf-size-xl,1.25rem);color:var(--gf-color-ink,#15201a)}
.gf-wc-page__ph-note{color:var(--gf-color-muted,#71807a)}
@media (prefers-reduced-motion: reduce){.gf-my-account input.input-text,.gf-my-account .button{transition:none}}

/* == product-additional-info == */
.gf-product-additional-info .woocommerce-product-attributes,.gf-product-additional-info table.shop_attributes{width:100%;border-collapse:collapse;font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif);font-size:var(--gf-size-base,1rem)}
.gf-product-additional-info th,.gf-product-additional-info td{padding:.75rem 1rem;text-align:start;border-bottom:1px solid var(--gf-color-border,#e3e6dc);vertical-align:top}
.gf-product-additional-info th{width:30%;font-weight:600;color:var(--gf-color-ink,#15201a);background:var(--gf-color-surface-2,#f1f3ec)}
.gf-product-additional-info td{color:var(--gf-color-ink-2,#46514a)}
.gf-product-additional-info td p{margin:0}
.gf-product-additional-info[data-gf-placeholder] .gf-wc__notice{color:var(--gf-color-muted,#71807a);font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif)}
@media (max-width:640px){.gf-product-additional-info th{width:40%}}

/* == product-categories == */
.gf-product-categories__grid{display:grid;grid-template-columns:repeat(var(--gf-cols,4),minmax(0,1fr));gap:var(--gf-space-40,1.5rem)}
.gf-product-categories__card{display:flex;flex-direction:column;overflow:clip;text-decoration:none;background:var(--gf-color-surface,#fff);border:1px solid var(--gf-color-border,#e3e6dc);border-radius:var(--gf-radius-md,16px);transition:border-color .2s ease,transform .2s ease}
.gf-product-categories__card:hover{border-color:var(--gf-color-brand,#9bd45f);transform:translateY(-2px)}
.gf-product-categories__card:focus-visible{outline:2px solid var(--gf-color-brand-strong,#4f7a1f);outline-offset:2px}
.gf-product-categories__media{display:block;aspect-ratio:1/1;overflow:clip;background:var(--gf-color-surface-2,#f1f3ec)}
.gf-product-categories__img{width:100%;height:100%;object-fit:cover;display:block}
.gf-product-categories__img--empty{background:var(--gf-color-surface-2,#f1f3ec)}
.gf-product-categories__body{display:flex;flex-direction:column;gap:.15rem;padding:var(--gf-space-30,1rem) var(--gf-space-40,1.5rem)}
.gf-product-categories__name{font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif);font-weight:600;font-size:var(--gf-size-base,1rem);color:var(--gf-color-ink,#15201a)}
.gf-product-categories__count{font-size:var(--gf-size-sm,.875rem);color:var(--gf-color-muted,#71807a)}
.gf-product-categories__skeleton{display:block;background:var(--gf-color-surface-2,#f1f3ec)}
.gf-product-categories__skeleton.gf-product-categories__media{aspect-ratio:1/1}
.gf-product-categories__skeleton--name{width:70%;height:1rem;margin:var(--gf-space-30,1rem) var(--gf-space-40,1.5rem);border-radius:var(--gf-radius-sm,10px)}
@media (max-width:1024px){.gf-product-categories__grid{grid-template-columns:repeat(min(var(--gf-cols,4),3),minmax(0,1fr))}}
@media (max-width:640px){.gf-product-categories__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (prefers-reduced-motion: reduce){.gf-product-categories__card{transition:none}.gf-product-categories__card:hover{transform:none}}

/* == product-content == */
.gf-product-content{font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif);font-size:var(--gf-size-base,1rem);line-height:1.7;color:var(--gf-color-ink-2,#46514a)}
.gf-product-content > *{margin-block:0 var(--gf-space-30,1rem)}
.gf-product-content > :first-child{margin-block-start:0}
.gf-product-content > :last-child{margin-block-end:0}
.gf-product-content h1,.gf-product-content h2,.gf-product-content h3,.gf-product-content h4{font-family:var(--gf-font-display,"Space Grotesk",ui-sans-serif,system-ui,sans-serif);color:var(--gf-color-ink,#15201a);line-height:1.2;margin-block:var(--gf-space-40,1.5rem) var(--gf-space-20,.5rem)}
.gf-product-content a{color:var(--gf-color-brand-strong,#4f7a1f);text-decoration:underline;text-underline-offset:2px}
.gf-product-content img,.gf-product-content figure{max-width:100%;height:auto}
.gf-product-content img{border-radius:var(--gf-radius-md,16px)}
.gf-product-content ul,.gf-product-content ol{padding-inline-start:1.4em}
.gf-product-content[data-gf-placeholder]{padding:var(--gf-space-40,1.5rem);border:1px dashed var(--gf-color-border-strong,#cfd4c6);border-radius:var(--gf-radius-md,16px)}
.gf-product-content[data-gf-placeholder] .gf-wc__notice{color:var(--gf-color-muted,#71807a)}

/* == product-data-tabs == */
.gf-product-data-tabs .wc-tabs{display:flex;flex-wrap:wrap;gap:.25rem;margin:0 0 var(--gf-space-30,1rem);padding:0;list-style:none;border-bottom:1px solid var(--gf-color-border,#e3e6dc)}
.gf-product-data-tabs .wc-tabs li{margin:0}
.gf-product-data-tabs .wc-tabs li a{display:inline-block;padding:.75rem 1.1rem;font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif);font-weight:600;font-size:var(--gf-size-base,1rem);color:var(--gf-color-muted,#71807a);text-decoration:none;border-bottom:2px solid transparent}
.gf-product-data-tabs .wc-tabs li a:hover{color:var(--gf-color-ink,#15201a)}
.gf-product-data-tabs .wc-tabs li.active a{color:var(--gf-color-brand-strong,#4f7a1f);border-bottom-color:var(--gf-color-brand,#9bd45f)}
.gf-product-data-tabs .woocommerce-Tabs-panel{font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif);line-height:1.7;color:var(--gf-color-ink-2,#46514a)}
.gf-product-data-tabs .woocommerce-Tabs-panel h2{font-family:var(--gf-font-display,"Space Grotesk",ui-sans-serif,system-ui,sans-serif);color:var(--gf-color-ink,#15201a)}
.gf-product-data-tabs[data-gf-placeholder] .gf-wc__notice{color:var(--gf-color-muted,#71807a);font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif)}

/* == product-images == */
.gf-product-images{position:relative}
.gf-product-images .woocommerce-product-gallery__wrapper{margin:0}
.gf-product-images .woocommerce-product-gallery__image img{display:block;width:100%;height:auto;border-radius:var(--gf-radius-md,16px)}
.gf-product-images[data-ratio="1"] .woocommerce-product-gallery__image img{aspect-ratio:var(--gf-ratio,1/1);object-fit:cover}
.gf-product-images .flex-control-thumbs{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gf-space-20,.5rem);margin:var(--gf-space-30,1rem) 0 0;padding:0}
.gf-product-images .flex-control-thumbs img{border-radius:var(--gf-radius-sm,10px);cursor:pointer;opacity:.7;transition:opacity .2s ease}
.gf-product-images .flex-control-thumbs img:hover,.gf-product-images .flex-control-thumbs img.flex-active{opacity:1}
.gf-product-images[data-thumbs="0"] .flex-control-thumbs{display:none}
.gf-product-images[data-gf-placeholder]{padding:var(--gf-space-50,3rem) var(--gf-space-40,1.5rem);text-align:center;border:1px dashed var(--gf-color-border-strong,#cfd4c6);border-radius:var(--gf-radius-md,16px);background:var(--gf-color-surface-2,#f1f3ec)}
.gf-product-images[data-gf-placeholder] .gf-wc__notice{color:var(--gf-color-muted,#71807a);font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif)}
@media (prefers-reduced-motion: reduce){.gf-product-images .flex-control-thumbs img{transition:none}}

/* == product-meta == */
.gf-product-meta .product_meta{font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif);font-size:var(--gf-size-sm,.875rem);line-height:1.9;color:var(--gf-color-ink-2,#46514a)}
.gf-product-meta .product_meta > span{display:block}
.gf-product-meta .product_meta .sku-wrapper,.gf-product-meta .product_meta .posted_in,.gf-product-meta .product_meta .tagged_as{color:var(--gf-color-muted,#71807a)}
.gf-product-meta .product_meta a{color:var(--gf-color-brand-strong,#4f7a1f);text-decoration:none}
.gf-product-meta .product_meta a:hover{text-decoration:underline}
.gf-product-meta[data-gf-placeholder] .gf-wc__notice{color:var(--gf-color-muted,#71807a);font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif);font-size:var(--gf-size-sm,.875rem)}

/* == product-price == */
.gf-product-price{font-family:var(--gf-font-display,"Space Grotesk",ui-sans-serif,system-ui,sans-serif);font-size:var(--gf-size-2xl,1.5rem);font-weight:700;line-height:1.2;color:var(--gf-color-ink,#15201a)}
.gf-product-price del{color:var(--gf-color-muted,#71807a);font-weight:500;margin-inline-end:.4em}
.gf-product-price ins{text-decoration:none;color:var(--gf-color-brand-strong,#4f7a1f)}
.gf-product-price .woocommerce-Price-currencySymbol{font-weight:600}
.gf-product-price[data-gf-placeholder] .gf-wc__notice{color:var(--gf-color-muted,#71807a);font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif);font-size:var(--gf-size-base,1rem);font-weight:500}

/* == product-rating == */
.gf-product-rating{display:flex;align-items:center;gap:var(--gf-space-20,.5rem);flex-wrap:wrap;color:var(--gf-color-ink-2,#46514a)}
.gf-product-rating .star-rating{margin:0;color:var(--gf-color-brand-strong,#4f7a1f)}
.gf-product-rating .star-rating span::before{color:var(--gf-color-brand-strong,#4f7a1f)}
.gf-product-rating__count{color:var(--gf-color-muted,#71807a);font-size:var(--gf-size-sm,.875rem);font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif)}
.gf-product-rating[data-gf-placeholder] .gf-wc__notice{color:var(--gf-color-muted,#71807a);font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif);font-size:var(--gf-size-sm,.875rem)}

/* == product-related == */
.gf-product-related__heading{margin:0 0 var(--gf-space-40,1.5rem);font-family:var(--gf-font-display,"Space Grotesk",ui-sans-serif,system-ui,sans-serif);font-size:var(--gf-size-2xl,1.5rem);color:var(--gf-color-ink,#15201a)}
.gf-product-related ul.products{display:grid;grid-template-columns:repeat(var(--gf-cols,4),minmax(0,1fr));gap:var(--gf-space-40,1.5rem);margin:0;padding:0;list-style:none}
.gf-product-related ul.products::before,.gf-product-related ul.products::after{display:none}
.gf-product-related ul.products li.product{width:auto!important;margin:0!important;float:none!important;display:flex;flex-direction:column;gap:.4rem;text-align:start}
.gf-product-related ul.products li.product a img{width:100%;height:auto;border-radius:var(--gf-radius-md,16px)}
.gf-product-related ul.products li.product .woocommerce-loop-product__title{font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif);font-size:var(--gf-size-base,1rem);font-weight:600;color:var(--gf-color-ink,#15201a);padding:0}
.gf-product-related ul.products li.product .price{color:var(--gf-color-brand-strong,#4f7a1f);font-weight:700}
.gf-product-related ul.products li.product .button{align-self:flex-start;color:var(--gf-color-brand-ink,#1e3209);background:var(--gf-color-brand,#9bd45f);border-radius:var(--gf-radius-pill,999px);padding:.5rem 1rem;text-decoration:none;font-weight:600}
.gf-wc-skeleton{list-style:none}
.gf-wc-skeleton__media{display:block;aspect-ratio:1/1;border-radius:var(--gf-radius-md,16px);background:var(--gf-color-surface-2,#f1f3ec)}
.gf-wc-skeleton__line{display:block;height:.8rem;margin-top:.6rem;border-radius:var(--gf-radius-sm,10px);background:var(--gf-color-surface-2,#f1f3ec)}
.gf-wc-skeleton__line--short{width:55%}
@media (max-width:1024px){.gf-product-related ul.products{grid-template-columns:repeat(min(var(--gf-cols,4),3),minmax(0,1fr))}}
@media (max-width:640px){.gf-product-related ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* == product-short-description == */
.gf-product-short-description{font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif);font-size:var(--gf-size-lg,1.125rem);line-height:1.7;color:var(--gf-color-ink-2,#46514a)}
.gf-product-short-description > *{margin-block:0 var(--gf-space-30,1rem)}
.gf-product-short-description > :first-child{margin-block-start:0}
.gf-product-short-description > :last-child{margin-block-end:0}
.gf-product-short-description ul,.gf-product-short-description ol{padding-inline-start:1.4em}
.gf-product-short-description[data-gf-placeholder] .gf-wc__notice{color:var(--gf-color-muted,#71807a);font-size:var(--gf-size-base,1rem)}

/* == product-stock == */
.gf-product-stock .stock{margin:0;font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif);font-size:var(--gf-size-sm,.875rem);font-weight:600;display:inline-flex;align-items:center;gap:.4em}
.gf-product-stock .stock.in-stock,.gf-product-stock .stock.instock{color:var(--gf-color-brand-strong,#4f7a1f)}
.gf-product-stock .stock.out-of-stock,.gf-product-stock .stock.outofstock{color:#b3261e}
.gf-product-stock .stock.available-on-backorder,.gf-product-stock .stock.onbackorder{color:#8a6d00}
.gf-product-stock[data-gf-placeholder] .gf-wc__notice{color:var(--gf-color-muted,#71807a);font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif);font-size:var(--gf-size-sm,.875rem)}

/* == product-title == */
.gf-product-title{margin:0;font-family:var(--gf-font-display,"Space Grotesk",ui-sans-serif,system-ui,sans-serif);font-size:var(--gf-size-3xl,clamp(1.875rem,1.5rem + 1.8vw,2.4rem));line-height:1.15;color:var(--gf-color-ink,#15201a);text-wrap:balance}
.gf-product-title[data-gf-placeholder]{color:var(--gf-color-muted,#71807a)}
.gf-product-title .gf-wc__notice{color:var(--gf-color-muted,#71807a);font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif)}

/* == product-upsells == */
.gf-product-upsells__heading{margin:0 0 var(--gf-space-40,1.5rem);font-family:var(--gf-font-display,"Space Grotesk",ui-sans-serif,system-ui,sans-serif);font-size:var(--gf-size-2xl,1.5rem);color:var(--gf-color-ink,#15201a)}
.gf-product-upsells ul.products{display:grid;grid-template-columns:repeat(var(--gf-cols,4),minmax(0,1fr));gap:var(--gf-space-40,1.5rem);margin:0;padding:0;list-style:none}
.gf-product-upsells ul.products::before,.gf-product-upsells ul.products::after{display:none}
.gf-product-upsells ul.products li.product{width:auto!important;margin:0!important;float:none!important;display:flex;flex-direction:column;gap:.4rem;text-align:start}
.gf-product-upsells ul.products li.product a img{width:100%;height:auto;border-radius:var(--gf-radius-md,16px)}
.gf-product-upsells ul.products li.product .woocommerce-loop-product__title{font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif);font-size:var(--gf-size-base,1rem);font-weight:600;color:var(--gf-color-ink,#15201a);padding:0}
.gf-product-upsells ul.products li.product .price{color:var(--gf-color-brand-strong,#4f7a1f);font-weight:700}
.gf-product-upsells ul.products li.product .button{align-self:flex-start;color:var(--gf-color-brand-ink,#1e3209);background:var(--gf-color-brand,#9bd45f);border-radius:var(--gf-radius-pill,999px);padding:.5rem 1rem;text-decoration:none;font-weight:600}
.gf-product-upsells .gf-wc-skeleton{list-style:none}
.gf-product-upsells .gf-wc-skeleton__media{display:block;aspect-ratio:1/1;border-radius:var(--gf-radius-md,16px);background:var(--gf-color-surface-2,#f1f3ec)}
.gf-product-upsells .gf-wc-skeleton__line{display:block;height:.8rem;margin-top:.6rem;border-radius:var(--gf-radius-sm,10px);background:var(--gf-color-surface-2,#f1f3ec)}
.gf-product-upsells .gf-wc-skeleton__line--short{width:55%}
@media (max-width:1024px){.gf-product-upsells ul.products{grid-template-columns:repeat(min(var(--gf-cols,4),3),minmax(0,1fr))}}
@media (max-width:640px){.gf-product-upsells ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* == products-grid == */
.gf-products__grid{display:grid;grid-template-columns:repeat(var(--gf-cols,4),minmax(0,1fr));gap:var(--gf-space-40,1.5rem)}
.gf-products__card{display:flex;flex-direction:column;overflow:clip;background:var(--gf-color-surface,#fff);border:1px solid var(--gf-color-border,#e3e6dc);border-radius:var(--gf-radius-md,16px)}
.gf-products__media{display:block;aspect-ratio:1/1;overflow:clip;background:var(--gf-color-surface-2,#f1f3ec)}
.gf-products__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}
.gf-products__card:hover .gf-products__media img{transform:scale(1.04)}
.gf-products__body{display:flex;flex-direction:column;gap:var(--gf-space-20,.5rem);padding:var(--gf-space-40,1.5rem);flex:1 1 auto}
.gf-products__rating .star-rating{color:var(--gf-color-brand-strong,#4f7a1f);font-size:.85rem}
.gf-products__title{margin:0;font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif);font-size:var(--gf-size-lg,1.125rem);line-height:1.3}
.gf-products__title a{color:var(--gf-color-ink,#15201a);text-decoration:none}
.gf-products__title a:hover{color:var(--gf-color-brand-strong,#4f7a1f)}
.gf-products__price{font-family:var(--gf-font-display,"Space Grotesk",ui-sans-serif,system-ui,sans-serif);font-weight:700;color:var(--gf-color-ink,#15201a)}
.gf-products__price del{color:var(--gf-color-muted,#71807a);font-weight:500;margin-inline-end:.35em}
.gf-products__price ins{text-decoration:none;color:var(--gf-color-brand-strong,#4f7a1f)}
.gf-products__cta{margin-top:auto;align-self:flex-start;display:inline-flex;align-items:center;padding:.55rem 1.1rem;font-family:var(--gf-font-body,Inter,ui-sans-serif,system-ui,sans-serif);font-weight:600;font-size:var(--gf-size-sm,.875rem);color:var(--gf-color-brand-ink,#1e3209);background:var(--gf-color-brand,#9bd45f);border:0;border-radius:var(--gf-radius-pill,999px);text-decoration:none;cursor:pointer;transition:background .2s ease}
.gf-products__cta:hover{background:var(--gf-color-brand-strong,#4f7a1f);color:var(--gf-color-on-dark,#f7fffd)}
.gf-products__cta:focus-visible{outline:2px solid var(--gf-color-accent,#5fae6e);outline-offset:2px}
.gf-products__skeleton{display:block;border-radius:var(--gf-radius-sm,10px);background:var(--gf-color-surface-2,#f1f3ec)}
.gf-products__skeleton.gf-products__media{aspect-ratio:1/1;border-radius:0}
.gf-products__skeleton--title{width:80%;height:1.1rem}
.gf-products__skeleton--price{width:45%;height:.9rem}
@media (max-width:1024px){.gf-products__grid{grid-template-columns:repeat(min(var(--gf-cols,4),3),minmax(0,1fr))}}
@media (max-width:640px){.gf-products__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (prefers-reduced-motion: reduce){.gf-products__media img{transition:none}.gf-products__card:hover .gf-products__media img{transform:none}}

/* == whatsapp-button == */
.gf-whatsapp-button {
	--gf-wa-bg: #25d366;
	--gf-wa-ink: #ffffff;
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	padding: 0.7rem 1.15rem;
	border-radius: var(--gf-radius-pill, 999px);
	background: var(--gf-wa-bg, #25d366);
	color: var(--gf-wa-ink, #ffffff);
	font-family: var(--gf-font-body, sans-serif);
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	box-shadow: 0 6px 18px -6px rgba(37, 211, 102, 0.6);
	transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.gf-whatsapp-button:hover,
.gf-whatsapp-button:focus-visible { transform: translateY(-2px); box-shadow: 0 10px 24px -8px rgba(37, 211, 102, 0.7); }
.gf-whatsapp-button__icon { display: inline-flex; }
.gf-whatsapp-button__icon svg { width: 1.35rem; height: 1.35rem; display: block; }
.gf-whatsapp-button__sr {
	position: absolute;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0);
	white-space: nowrap; border: 0;
}
.gf-whatsapp-button[data-empty="1"] { background: var(--gf-color-surface-2, #f1f3ec); color: var(--gf-color-muted, #71807a); box-shadow: none; }
.gf-whatsapp-button[data-floating="1"] {
	position: fixed;
	z-index: 900;
	bottom: clamp(1rem, 4vw, 1.75rem);
	width: 3.5rem;
	height: 3.5rem;
	padding: 0;
	justify-content: center;
}
.gf-whatsapp-button[data-position="bottom-right"] { right: clamp(1rem, 4vw, 1.75rem); }
.gf-whatsapp-button[data-position="bottom-left"] { left: clamp(1rem, 4vw, 1.75rem); }
.gf-whatsapp-button[data-floating="1"] .gf-whatsapp-button__icon svg { width: 1.7rem; height: 1.7rem; }
@media (prefers-reduced-motion: reduce) {
	.gf-whatsapp-button { transition: none; }
	.gf-whatsapp-button:hover,
	.gf-whatsapp-button:focus-visible { transform: none; }
}

/* == widget-area == */
.gf-widget-area { display: block; }
.gf-widget-area > * + * { margin-top: var(--gf-space-40, 1.5rem); }
.gf-widget-area .widget-title,
.gf-widget-area .widgettitle {
	margin: 0 0 var(--gf-space-20, 0.5rem);
	font-family: var(--gf-font-display, ui-sans-serif, system-ui, sans-serif);
	font-size: var(--gf-size-lg, 1.125rem);
	color: var(--gf-color-ink, #15201a);
}
.gf-widget-area a { color: var(--gf-color-brand-strong, #4f7a1f); }
.gf-widget-area__placeholder {
	display: block;
	padding: var(--gf-space-40, 1.5rem);
	text-align: center;
	color: var(--gf-color-muted, #71807a);
	font-size: var(--gf-size-sm, 0.875rem);
	background: var(--gf-color-surface-2, #f1f3ec);
	border: 1px dashed var(--gf-color-border-strong, #cfd4c6);
	border-radius: var(--gf-radius-md, 16px);
}
