.button {
	position: relative;

	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-2);

	min-height: 50px;
	padding: 14px 24px;

	font-family: var(--font-family-body);
	font-size: var(--font-size-button);
	font-weight: var(--font-weight-semibold);
	line-height: 1.35;
	letter-spacing: var(--letter-spacing-button);
	text-align: center;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;

	border-width: 1px;
	border-style: solid;
	border-color: transparent;
	border-radius: var(--radius-sm);

	cursor: pointer;
	user-select: none;
}

.button:hover {
	text-decoration: none;
}

/* ==========================
   BUTTON SIZES
========================== */

.button--small {
	min-height: 40px;
	padding: 11px 20px;

	font-size: 12px;
	letter-spacing: 0.045em;
}

.button--large {
	min-height: 54px;
	padding: 16px 34px;

	font-size: 14px;
}

/* ==========================
   BUTTON SYSTEM 06C — GLIN SOURCE-PORT CANONICAL MATERIAL OWNER
   --------------------------------------------------------------------------
   Controlling source-port family:
   Primary   = Glin Button variant="frosted"
   Secondary = Glin Button variant="glass"
   Utility   = Glin glass elevation 1 -> 2
   Ghost     = Glin Button variant="ghost"

   PAMI semantic/material tokens remain the color owner. Glin source values
   remain the mechanics owner. Static Glin top highlights are transported onto
   the control element itself so Woo/CF7 operational pseudo-elements remain
   protected. No React/Radix/Tailwind/Glin runtime is required.
========================== */

.button--primary,
.button--secondary,
.button--ghost,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
a.added_to_cart,
#pami-contact-form.pami-contacts-form .wpcf7-submit {
	/* Generic Woo controls use the Glin glass-1 Utility baseline. */
	--pami-button-foreground: var(--color-content-primary);
	--pami-button-surface:
		color-mix(in srgb, var(--color-surface-raised) 8%, transparent);
	--pami-button-border:
		color-mix(in srgb, var(--color-border-default) 20%, transparent);
	--pami-button-border-top:
		color-mix(in srgb, var(--color-material-pearl-light) 40%, transparent);
	--pami-button-top-highlight: transparent;
	--pami-button-backdrop-blur: 8px;
	--pami-button-backdrop-saturate: 180%;
	--pami-button-shadow:
		0 2px 8px color-mix(in srgb, var(--color-material-ambient-shadow) 8%, transparent);

	color: var(--pami-button-foreground);

	background-color: var(--pami-button-surface);
	background-image:
		linear-gradient(
			to right,
			transparent 0%,
			var(--pami-button-top-highlight) 50%,
			transparent 100%
		);
	background-position: top center;
	background-repeat: no-repeat;
	background-size: 100% 1px;

	border-color: var(--pami-button-border);
	border-top-color: var(--pami-button-border-top);
	box-shadow: var(--pami-button-shadow);

	-webkit-backdrop-filter:
		blur(var(--pami-button-backdrop-blur))
		saturate(var(--pami-button-backdrop-saturate));
	backdrop-filter:
		blur(var(--pami-button-backdrop-blur))
		saturate(var(--pami-button-backdrop-saturate));

	transform: translateY(0);

	transition:
		transform 250ms cubic-bezier(0.2, 0, 0, 1),
		background-color 250ms cubic-bezier(0.2, 0, 0, 1),
		box-shadow 250ms cubic-bezier(0.2, 0, 0, 1),
		color 250ms cubic-bezier(0.2, 0, 0, 1),
		border-color 250ms cubic-bezier(0.2, 0, 0, 1),
		opacity 250ms cubic-bezier(0.2, 0, 0, 1);
}

/* Primary — PAMI Deep Claret Glass.
   Strong brand glass: deep claret translucency + light semantic foreground,
   with specular edge and internal refraction rather than an opaque paint fill. */
.button--primary,
.woocommerce a.button.button--primary,
.woocommerce button.button.button--primary,
.woocommerce input.button.button--primary,
.woocommerce #respond input#submit.button--primary,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt,
.woocommerce ul.products li.product .button.add_to_cart_button,
.woocommerce div.product .single_add_to_cart_button,
.woocommerce .wc-proceed-to-checkout a.checkout-button,
.woocommerce #place_order,
.woocommerce form.login button[name="login"],
.woocommerce form.register button[name="register"],
.woocommerce form.lost_reset_password button.button,
.woocommerce form.edit-account button[name="save_account_details"],
.woocommerce form.woocommerce-address-fields button[name="save_address"],
#pami-contact-form.pami-contacts-form .wpcf7-submit {
	--pami-button-foreground: var(--color-action-on-primary);
	--pami-button-surface:
		color-mix(in srgb, color-mix(in srgb, var(--color-action-primary) 88%, var(--color-action-primary-strong) 12%) 72%, transparent);
	--pami-button-border:
		color-mix(in srgb, var(--color-material-pearl-light) 38%, var(--color-action-primary-strong));
	--pami-button-border-top:
		color-mix(in srgb, var(--color-material-pearl-light) 82%, transparent);
	--pami-button-top-highlight:
		color-mix(in srgb, var(--color-material-pearl-light) 94%, transparent);
	--pami-button-backdrop-blur: 24px;
	--pami-button-backdrop-saturate: 165%;
	--pami-button-shadow:
		inset 0 1px 0 color-mix(in srgb, var(--color-material-pearl-light) 68%, transparent),
		inset 0 0 0 1px color-mix(in srgb, var(--color-material-pearl-light) 13%, transparent),
		inset 0 -16px 30px color-mix(in srgb, var(--color-action-primary-strong) 22%, transparent),
		0 12px 24px -15px color-mix(in srgb, var(--color-material-ambient-shadow) 32%, transparent);
	background-image:
		linear-gradient(to right, transparent 0%, var(--pami-button-top-highlight) 50%, transparent 100%),
		radial-gradient(
			ellipse at 50% -20%,
			color-mix(in srgb, var(--color-material-pearl-light) 30%, transparent) 0%,
			transparent 58%
		),
		linear-gradient(
			180deg,
			color-mix(in srgb, var(--color-material-pearl-light) 16%, transparent) 0%,
			transparent 42%,
			color-mix(in srgb, var(--color-action-primary-strong) 10%, transparent) 100%
		);
	background-size: 100% 1px, 100% 100%, 100% 100%;
}

/* Secondary — exact Glin Glass mechanics. */
.button--secondary,
.woocommerce .return-to-shop a.button {
	--pami-button-foreground: var(--color-content-primary);
	--pami-button-surface:
		color-mix(in srgb, var(--color-surface-raised) 50%, transparent);
	--pami-button-border:
		color-mix(in srgb, var(--color-border-default) 60%, transparent);
	--pami-button-border-top:
		color-mix(in srgb, var(--color-material-pearl-light) 40%, transparent);
	--pami-button-top-highlight:
		color-mix(in srgb, var(--color-material-pearl-light) 70%, transparent);
	--pami-button-backdrop-blur: 24px;
	--pami-button-backdrop-saturate: 180%;
	--pami-button-shadow:
		inset 0 0 0 1px color-mix(in srgb, var(--color-material-pearl-light) 40%, transparent),
		0 10px 22px -14px color-mix(in srgb, var(--color-material-ambient-shadow) 18%, transparent);
}

/* Utility exceptions that currently reuse Secondary markup remain Glin glass-1. */
button.button.button--secondary.pami-back-to-top,
.pami-distributor-filter__actions .button--secondary,
.button--secondary[data-distributor-reset] {
	--pami-button-foreground: var(--color-content-primary);
	--pami-button-surface:
		color-mix(in srgb, var(--color-material-pearl-light) 34%, transparent);
	--pami-button-border:
		color-mix(in srgb, var(--color-border-default) 34%, transparent);
	--pami-button-border-top:
		color-mix(in srgb, var(--color-material-pearl-light) 76%, transparent);
	--pami-button-top-highlight:
		color-mix(in srgb, var(--color-material-pearl-light) 82%, transparent);
	--pami-button-backdrop-blur: 12px;
	--pami-button-backdrop-saturate: 145%;
	--pami-button-shadow:
		inset 0 1px 0 color-mix(in srgb, var(--color-material-pearl-light) 58%, transparent),
		inset 0 0 0 1px color-mix(in srgb, var(--color-material-pearl-light) 10%, transparent),
		0 6px 14px -10px color-mix(in srgb, var(--color-material-ambient-shadow) 12%, transparent);
}

/* Ghost — exact Glin transparent rest state. */
.button--ghost,
a.added_to_cart {
	--pami-button-foreground: var(--color-content-primary);
	--pami-button-surface: transparent;
	--pami-button-border: transparent;
	--pami-button-border-top: transparent;
	--pami-button-top-highlight: transparent;
	--pami-button-backdrop-blur: 0px;
	--pami-button-backdrop-saturate: 100%;
	--pami-button-shadow: none;

	-webkit-backdrop-filter: none;
	backdrop-filter: none;
}

/* ==========================
   GLIN SOURCE STATES
========================== */

/* Utility hover derives from Glin glass elevation 2; Glass motion supplies -1px. */
.woocommerce a.button:not(.alt):hover,
.woocommerce button.button:not(.alt):hover,
.woocommerce input.button:not(.alt):hover,
.woocommerce #respond input#submit:not(.alt):hover,
button.button.button--secondary.pami-back-to-top:hover,
.pami-distributor-filter__actions .button--secondary:hover,
.button--secondary[data-distributor-reset]:hover {
	--pami-button-surface:
		color-mix(in srgb, var(--color-surface-raised) 12%, transparent);
	--pami-button-backdrop-blur: 12px;

	transform: translateY(-1px);
}

/* Primary Deep Claret Glass hover. */
.button--primary:hover,
.woocommerce a.button.button--primary:hover,
.woocommerce button.button.button--primary:hover,
.woocommerce input.button.button--primary:hover,
.woocommerce #respond input#submit.button--primary:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce #respond input#submit.alt:hover,
.woocommerce ul.products li.product .button.add_to_cart_button:hover,
.woocommerce div.product .single_add_to_cart_button:hover,
.woocommerce .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce #place_order:hover,
.woocommerce form.login button[name="login"]:hover,
.woocommerce form.register button[name="register"]:hover,
.woocommerce form.lost_reset_password button.button:hover,
.woocommerce form.edit-account button[name="save_account_details"]:hover,
.woocommerce form.woocommerce-address-fields button[name="save_address"]:hover,
#pami-contact-form.pami-contacts-form .wpcf7-submit:hover {
	--pami-button-surface:
		color-mix(in srgb, color-mix(in srgb, var(--color-action-primary) 86%, var(--color-action-primary-strong) 14%) 78%, transparent);
	--pami-button-border:
		color-mix(in srgb, var(--color-material-pearl-light) 48%, var(--color-action-primary-strong));
	--pami-button-border-top:
		color-mix(in srgb, var(--color-material-pearl-light) 90%, transparent);
	--pami-button-top-highlight:
		color-mix(in srgb, var(--color-material-pearl-light) 98%, transparent);
	--pami-button-shadow:
		inset 0 1px 0 color-mix(in srgb, var(--color-material-pearl-light) 76%, transparent),
		inset 0 0 0 1px color-mix(in srgb, var(--color-material-pearl-light) 16%, transparent),
		inset 0 -18px 32px color-mix(in srgb, var(--color-action-primary-strong) 25%, transparent),
		0 16px 30px -16px color-mix(in srgb, var(--color-material-ambient-shadow) 38%, transparent);
	transform: translateY(-1px);
}

/* Secondary Glass hover — exact Glin source values. */
.button--secondary:hover,
.woocommerce .return-to-shop a.button:hover {
	--pami-button-surface:
		color-mix(in srgb, var(--color-surface-raised) 60%, transparent);
	--pami-button-shadow:
		inset 0 0 0 1px color-mix(in srgb, var(--color-material-pearl-light) 50%, transparent),
		0 14px 26px -14px color-mix(in srgb, var(--color-material-ambient-shadow) 22%, transparent);

	transform: translateY(-1px);
}

/* Re-assert Utility after Secondary membership inheritance. */
button.button.button--secondary.pami-back-to-top:hover,
.pami-distributor-filter__actions .button--secondary:hover,
.button--secondary[data-distributor-reset]:hover {
	--pami-button-surface:
		color-mix(in srgb, var(--color-material-pearl-light) 46%, transparent);
	--pami-button-border:
		color-mix(in srgb, var(--color-border-default) 42%, transparent);
	--pami-button-border-top:
		color-mix(in srgb, var(--color-material-pearl-light) 88%, transparent);
	--pami-button-top-highlight:
		color-mix(in srgb, var(--color-material-pearl-light) 92%, transparent);
	--pami-button-shadow:
		inset 0 1px 0 color-mix(in srgb, var(--color-material-pearl-light) 70%, transparent),
		inset 0 0 0 1px color-mix(in srgb, var(--color-material-pearl-light) 13%, transparent),
		0 8px 16px -10px color-mix(in srgb, var(--color-material-ambient-shadow) 14%, transparent);
	--pami-button-backdrop-blur: 14px;

	transform: translateY(-1px);
}

/* Return to shop remains Secondary, not generic Woo Utility. */
.woocommerce .return-to-shop a.button:hover {
	--pami-button-surface:
		color-mix(in srgb, var(--color-surface-raised) 60%, transparent);
	--pami-button-shadow:
		inset 0 0 0 1px color-mix(in srgb, var(--color-material-pearl-light) 50%, transparent),
		0 14px 26px -14px color-mix(in srgb, var(--color-material-ambient-shadow) 22%, transparent);
	--pami-button-backdrop-blur: 24px;

	transform: translateY(-1px);
}

/* Primary Woo controls without .alt must not be demoted by generic Utility. */
.woocommerce ul.products li.product .button.add_to_cart_button:hover,
.woocommerce div.product .single_add_to_cart_button:hover,
.woocommerce .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce #place_order:hover,
.woocommerce form.login button[name="login"]:hover,
.woocommerce form.register button[name="register"]:hover,
.woocommerce form.lost_reset_password button.button:hover,
.woocommerce form.edit-account button[name="save_account_details"]:hover,
.woocommerce form.woocommerce-address-fields button[name="save_address"]:hover {
	--pami-button-foreground: var(--color-content-primary);
	--pami-button-surface:
		color-mix(
			in srgb,
			color-mix(in srgb, var(--color-surface-raised) 92%, var(--color-action-primary-strong) 8%) 54%,
			transparent
		);
	--pami-button-border:
		color-mix(in srgb, var(--color-action-primary-strong) 44%, transparent);
	--pami-button-border-top:
		color-mix(in srgb, var(--color-material-pearl-light) 88%, transparent);
	--pami-button-top-highlight:
		color-mix(in srgb, var(--color-material-pearl-light) 96%, transparent);
	--pami-button-shadow:
		inset 0 1px 0 color-mix(in srgb, var(--color-material-pearl-light) 82%, transparent),
		inset 0 0 0 1px color-mix(in srgb, var(--color-action-primary-strong) 10%, transparent),
		inset 0 -14px 28px color-mix(in srgb, var(--color-action-primary-strong) 7%, transparent),
		0 12px 24px -14px color-mix(in srgb, var(--color-material-ambient-shadow) 30%, transparent);
	--pami-button-backdrop-blur: 24px;
	--pami-button-backdrop-saturate: 165%;

	transform: translateY(-1px);
}

/* Ghost hover — exact Glin Ghost mechanic: glass-1 surface + refraction edge. */
.button--ghost:hover,
a.added_to_cart:hover {
	--pami-button-surface:
		color-mix(in srgb, var(--color-surface-raised) 8%, transparent);
	--pami-button-border:
		color-mix(in srgb, var(--color-material-pearl-light) 10%, transparent);
	--pami-button-border-top:
		color-mix(in srgb, var(--color-material-pearl-light) 40%, transparent);

	-webkit-backdrop-filter: none;
	backdrop-filter: none;
	transform: translateY(0);
}

.button:focus:not(:focus-visible),
.woocommerce a.button:focus:not(:focus-visible),
.woocommerce button.button:focus:not(:focus-visible),
.woocommerce input.button:focus:not(:focus-visible),
.woocommerce #respond input#submit:focus:not(:focus-visible),
a.added_to_cart:focus:not(:focus-visible),
#pami-contact-form.pami-contacts-form .wpcf7-submit:focus:not(:focus-visible) {
	outline: none;
}

.button:focus-visible,
.woocommerce a.button:focus-visible,
.woocommerce button.button:focus-visible,
.woocommerce input.button:focus-visible,
.woocommerce #respond input#submit:focus-visible,
a.added_to_cart:focus-visible,
#pami-contact-form.pami-contacts-form .wpcf7-submit:focus-visible {
	outline: var(--focus-ring-width) solid var(--focus-ring-color);
	outline-offset: var(--focus-ring-offset);
}

/* Glin Glass/Frosted active only resets the hover lift to the resting position. */
.button--primary:active,
.button--secondary:active,
.woocommerce a.button:active,
.woocommerce button.button:active,
.woocommerce input.button:active,
.woocommerce #respond input#submit:active,
#pami-contact-form.pami-contacts-form .wpcf7-submit:active,
button.button.button--secondary.pami-back-to-top:active,
.pami-distributor-filter__actions .button--secondary:active,
.button--secondary[data-distributor-reset]:active {
	transform: translateY(0);
}



/* ==========================================================================
   PAMI — CANONICAL WOOCOMMERCE PRIMARY PAINT BRIDGE
   --------------------------------------------------------------------------
   WooCommerce/plugin styles may assign direct background/color paint to their
   buttons. The canonical Button System owns the material; this bridge commits
   the resolved PAMI variables to the actual properties on proven Primary Woo
   consumers so no plugin violet/lilac paint survives in Rest/Hover/Active/Focus.
   Disabled remains owned by the canonical disabled block.
   ========================================================================== */

.woocommerce a.button.button--primary:not(.disabled):not([aria-disabled="true"]),
.woocommerce a.button.button--primary:not(.disabled):not([aria-disabled="true"]):hover,
.woocommerce a.button.button--primary:not(.disabled):not([aria-disabled="true"]):active,
.woocommerce a.button.button--primary:not(.disabled):not([aria-disabled="true"]):focus,
.woocommerce a.button.button--primary:not(.disabled):not([aria-disabled="true"]):focus-visible,
.woocommerce button.button.button--primary:not(:disabled):not(.disabled),
.woocommerce button.button.button--primary:not(:disabled):not(.disabled):hover,
.woocommerce button.button.button--primary:not(:disabled):not(.disabled):active,
.woocommerce button.button.button--primary:not(:disabled):not(.disabled):focus,
.woocommerce button.button.button--primary:not(:disabled):not(.disabled):focus-visible,
.woocommerce input.button.button--primary:not(:disabled):not(.disabled),
.woocommerce input.button.button--primary:not(:disabled):not(.disabled):hover,
.woocommerce input.button.button--primary:not(:disabled):not(.disabled):active,
.woocommerce input.button.button--primary:not(:disabled):not(.disabled):focus,
.woocommerce input.button.button--primary:not(:disabled):not(.disabled):focus-visible,
.woocommerce #respond input#submit.button--primary:not(:disabled):not(.disabled),
.woocommerce #respond input#submit.button--primary:not(:disabled):not(.disabled):hover,
.woocommerce #respond input#submit.button--primary:not(:disabled):not(.disabled):active,
.woocommerce #respond input#submit.button--primary:not(:disabled):not(.disabled):focus,
.woocommerce #respond input#submit.button--primary:not(:disabled):not(.disabled):focus-visible,
.woocommerce ul.products li.product .button.add_to_cart_button:not(.disabled):not([aria-disabled="true"]),
.woocommerce div.product .single_add_to_cart_button:not(:disabled):not(.disabled),
.woocommerce .wc-proceed-to-checkout a.checkout-button:not(.disabled):not([aria-disabled="true"]),
.woocommerce #place_order:not(:disabled):not(.disabled):not([aria-disabled="true"]),
.woocommerce form.login button[name="login"]:not(:disabled):not(.disabled):not([aria-disabled="true"]),
.woocommerce form.register button[name="register"]:not(:disabled):not(.disabled):not([aria-disabled="true"]),
.woocommerce form.lost_reset_password button.button:not(:disabled):not(.disabled):not([aria-disabled="true"]),
.woocommerce form.edit-account button[name="save_account_details"]:not(:disabled):not(.disabled):not([aria-disabled="true"]),
.woocommerce form.woocommerce-address-fields button[name="save_address"]:not(:disabled):not(.disabled):not([aria-disabled="true"]),
.woocommerce a.button.alt:not(.disabled):not([aria-disabled="true"]),
.woocommerce button.button.alt:not(:disabled):not(.disabled),
.woocommerce input.button.alt:not(:disabled):not(.disabled),
.woocommerce form.login button[name="login"]:not(:disabled):not(.disabled):not([aria-disabled="true"]):is(:hover, :active, :focus, :focus-visible),
.woocommerce form.register button[name="register"]:not(:disabled):not(.disabled):not([aria-disabled="true"]):is(:hover, :active, :focus, :focus-visible),
.woocommerce form.lost_reset_password button.button:not(:disabled):not(.disabled):not([aria-disabled="true"]):is(:hover, :active, :focus, :focus-visible),
.woocommerce form.edit-account button[name="save_account_details"]:not(:disabled):not(.disabled):not([aria-disabled="true"]):is(:hover, :active, :focus, :focus-visible),
.woocommerce form.woocommerce-address-fields button[name="save_address"]:not(:disabled):not(.disabled):not([aria-disabled="true"]):is(:hover, :active, :focus, :focus-visible) {
	color: var(--pami-button-foreground);
	background-color: var(--pami-button-surface);
	background-image:
		linear-gradient(
			to right,
			transparent 0%,
			var(--pami-button-top-highlight) 50%,
			transparent 100%
		),
		radial-gradient(
			ellipse at 50% -20%,
			color-mix(in srgb, var(--color-material-pearl-light) 30%, transparent) 0%,
			transparent 58%
		),
		linear-gradient(
			180deg,
			color-mix(in srgb, var(--color-material-pearl-light) 16%, transparent) 0%,
			transparent 42%,
			color-mix(in srgb, var(--color-action-primary-strong) 10%, transparent) 100%
		);
	background-position: top center, center, center;
	background-repeat: no-repeat;
	background-size: 100% 1px, 100% 100%, 100% 100%;
	border-color: var(--pami-button-border);
	border-top-color: var(--pami-button-border-top);
	box-shadow: var(--pami-button-shadow);
	-webkit-backdrop-filter:
		blur(var(--pami-button-backdrop-blur))
		saturate(var(--pami-button-backdrop-saturate));
	backdrop-filter:
		blur(var(--pami-button-backdrop-blur))
		saturate(var(--pami-button-backdrop-saturate));
}

/* ==========================================================================
   PAMI — CANONICAL WOOCOMMERCE UTILITY PAINT BRIDGE
   --------------------------------------------------------------------------
   Generic Woo Utility controls own the existing Utility variables above.
   This bridge commits those resolved variables to final paint after plugin
   state rules, while explicitly excluding canonical Primary and Secondary
   memberships. No Utility material values are defined here.
   ========================================================================== */

.woocommerce a.button:not(:where(
	.alt,
	.button--primary,
	.button--secondary,
	.add_to_cart_button,
	.single_add_to_cart_button,
	.checkout-button,
	#place_order,
	.return-to-shop a.button
)),
.woocommerce a.button:not(:where(
	.alt,
	.button--primary,
	.button--secondary,
	.add_to_cart_button,
	.single_add_to_cart_button,
	.checkout-button,
	#place_order,
	.return-to-shop a.button
)):is(:hover, :active, :focus, :focus-visible),
.woocommerce button.button:not(:where(
	.alt,
	.button--primary,
	.button--secondary,
	.add_to_cart_button,
	.single_add_to_cart_button,
	.checkout-button,
	#place_order,
	form.login button[name="login"],
	form.register button[name="register"],
	form.lost_reset_password button.button,
	form.edit-account button[name="save_account_details"],
	form.woocommerce-address-fields button[name="save_address"]
)),
.woocommerce button.button:not(:where(
	.alt,
	.button--primary,
	.button--secondary,
	.add_to_cart_button,
	.single_add_to_cart_button,
	.checkout-button,
	#place_order,
	form.login button[name="login"],
	form.register button[name="register"],
	form.lost_reset_password button.button,
	form.edit-account button[name="save_account_details"],
	form.woocommerce-address-fields button[name="save_address"]
)):is(:hover, :active, :focus, :focus-visible),
.woocommerce input.button:not(:where(
	.alt,
	.button--primary,
	.button--secondary,
	.add_to_cart_button,
	.single_add_to_cart_button,
	.checkout-button,
	#place_order
)),
.woocommerce input.button:not(:where(
	.alt,
	.button--primary,
	.button--secondary,
	.add_to_cart_button,
	.single_add_to_cart_button,
	.checkout-button,
	#place_order
)):is(:hover, :active, :focus, :focus-visible),
.woocommerce #respond input#submit:not(:where(
	.alt,
	.button--primary,
	.button--secondary
)),
.woocommerce #respond input#submit:not(:where(
	.alt,
	.button--primary,
	.button--secondary
)):is(:hover, :active, :focus, :focus-visible) {
	color: var(--pami-button-foreground);
	background-color: var(--pami-button-surface);
	background-image:
		linear-gradient(
			to right,
			transparent 0%,
			var(--pami-button-top-highlight) 50%,
			transparent 100%
		);
	background-position: top center;
	background-repeat: no-repeat;
	background-size: 100% 1px;
	border-color: var(--pami-button-border);
	border-top-color: var(--pami-button-border-top);
	box-shadow: var(--pami-button-shadow);
	-webkit-backdrop-filter:
		blur(var(--pami-button-backdrop-blur))
		saturate(var(--pami-button-backdrop-saturate));
	backdrop-filter:
		blur(var(--pami-button-backdrop-blur))
		saturate(var(--pami-button-backdrop-saturate));
}


/* ==========================
   DISABLED MATERIAL FAMILY
========================== */

.button:is(:disabled, .is-disabled, [aria-disabled="true"]),
.woocommerce a.button.disabled,
.woocommerce a.button[aria-disabled="true"],
.woocommerce .return-to-shop a.button.disabled,
.woocommerce .return-to-shop a.button[aria-disabled="true"],
.woocommerce button.button.disabled,
.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled],
.woocommerce input.button.disabled,
.woocommerce input.button:disabled,
.woocommerce input.button:disabled[disabled],
.woocommerce #respond input#submit.disabled,
.woocommerce #respond input#submit:disabled,
.woocommerce a.button.alt:is(.disabled, [aria-disabled="true"]),
.woocommerce button.button.alt:is(:disabled, .disabled, [disabled], [aria-disabled="true"]),
.woocommerce input.button.alt:is(:disabled, .disabled, [disabled], [aria-disabled="true"]),
.woocommerce #respond input#submit.alt:is(:disabled, .disabled, [disabled], [aria-disabled="true"]),
.woocommerce ul.products li.product .button.add_to_cart_button:is(:disabled, .disabled, [disabled], [aria-disabled="true"]),
.woocommerce div.product .single_add_to_cart_button:is(:disabled, .disabled, [disabled], [aria-disabled="true"]),
.woocommerce .wc-proceed-to-checkout a.checkout-button:is(.disabled, [aria-disabled="true"]),
.woocommerce #place_order:is(:disabled, .disabled, [disabled], [aria-disabled="true"]),
.woocommerce form.login button[name="login"]:is(:disabled, .disabled, [disabled], [aria-disabled="true"]),
.woocommerce form.register button[name="register"]:is(:disabled, .disabled, [disabled], [aria-disabled="true"]),
.woocommerce form.lost_reset_password button.button:is(:disabled, .disabled, [disabled], [aria-disabled="true"]),
.woocommerce form.edit-account button[name="save_account_details"]:is(:disabled, .disabled, [disabled], [aria-disabled="true"]),
.woocommerce form.woocommerce-address-fields button[name="save_address"]:is(:disabled, .disabled, [disabled], [aria-disabled="true"]),
.woocommerce ul.products li.product .button.add_to_cart_button.disabled,
.woocommerce ul.products li.product .button.add_to_cart_button[aria-disabled="true"],
.woocommerce #place_order.disabled,
.woocommerce #place_order:disabled,
.woocommerce #place_order[aria-disabled="true"],
#pami-contact-form.pami-contacts-form .wpcf7-submit:disabled {
	--pami-button-foreground: var(--color-content-tertiary);
	--pami-button-surface: var(--color-surface-subtle);
	--pami-button-border: var(--color-border-subtle);
	--pami-button-border-top: var(--color-border-subtle);
	--pami-button-top-highlight: transparent;
	--pami-button-shadow: none;

	color: var(--pami-button-foreground);
	background-color: var(--pami-button-surface);
	background-image: none;
	border-color: var(--pami-button-border);
	box-shadow: none;

	-webkit-backdrop-filter: none;
	backdrop-filter: none;

	cursor: not-allowed;
	opacity: 1;
	pointer-events: none;
	transform: none;
}

/* ==========================
   ROLE GEOMETRY
========================== */

.button--ghost,
a.added_to_cart {
	min-height: var(--touch-target-min);
}

.button--ghost {
	padding: 10px 0;

	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
}

/* Homepage Hero keeps its existing larger geometry. Non-Hero Primary and
   Secondary controls use the compact visual body with protected touch target. */
.button--primary:not(.pami-home-hero__actions .button),
.button--secondary:not(.pami-home-hero__actions .button) {
	box-sizing: border-box;

	min-width: 44px;
	min-height: 42px;
	padding: 10px 18px;

	font-size: var(--font-size-button);
	line-height: 1.35;
	letter-spacing: var(--letter-spacing-button);

	border-width: 1px;
	border-style: solid;
	border-radius: var(--radius-sm);
}

.button--small:not(.pami-home-hero__actions .button--small) {
	min-height: 38px;
	padding: 8px 16px;
}

.button--large:not(.pami-home-hero__actions .button--large) {
	min-height: 44px;
	padding: 11px 22px;
}

.button--primary:not(.pami-home-hero__actions .button)::after,
.button--secondary:not(.pami-home-hero__actions .button)::after {
	content: "";

	position: absolute;
	inset-block: -1px;
	inset-inline: 0;

	background: transparent;
	border: 0;
	box-shadow: none;

	pointer-events: auto;
}

.button--small:not(.pami-home-hero__actions .button--small)::after {
	inset-block: -3px;
}

.button--large:not(.pami-home-hero__actions .button--large)::after {
	inset-block: 0;
}

.button:is(:disabled, .is-disabled, [aria-disabled="true"])::after {
	pointer-events: none;
}

/* ==========================
   BUTTON GROUP
========================== */

.button-group {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-4);
}

.button-group:not(.pami-home-hero__actions) {
	gap: var(--space-3);
}

@media (max-width: 680px) {
	.button-group {
		width: 100%;
	}
}

/* ==========================
   ACCESSIBILITY / MATERIAL FALLBACKS
========================== */

@media (prefers-reduced-transparency: reduce) {
	.button--primary,
	.button--secondary,
	.button--ghost,
	.woocommerce a.button,
	.woocommerce button.button,
	.woocommerce input.button,
	.woocommerce #respond input#submit,
	a.added_to_cart,
	#pami-contact-form.pami-contacts-form .wpcf7-submit {
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.button--primary,
	.button--secondary,
	.button--ghost,
	.woocommerce a.button,
	.woocommerce button.button,
	.woocommerce input.button,
	.woocommerce #respond input#submit,
	a.added_to_cart,
	#pami-contact-form.pami-contacts-form .wpcf7-submit {
		transition: none;
	}

	/* Glin Button docs require transform-heavy motion suppression.
	   SYSTEM-06C-RM closes the Frosted Primary source/docs mismatch only. */
	.button--primary,
	.woocommerce a.button.alt,
	.woocommerce button.button.alt,
	.woocommerce input.button.alt,
	.woocommerce #respond input#submit.alt,
	.woocommerce ul.products li.product .button.add_to_cart_button,
	.woocommerce div.product .single_add_to_cart_button,
	.woocommerce .wc-proceed-to-checkout a.checkout-button,
	.woocommerce #place_order,
	.woocommerce form.login button[name="login"],
	.woocommerce form.register button[name="register"],
	.woocommerce form.lost_reset_password button.button,
	.woocommerce form.edit-account button[name="save_account_details"],
	.woocommerce form.woocommerce-address-fields button[name="save_address"],
	#pami-contact-form.pami-contacts-form .wpcf7-submit,
	.button--primary:hover,
	.woocommerce a.button.alt:hover,
	.woocommerce button.button.alt:hover,
	.woocommerce input.button.alt:hover,
	.woocommerce #respond input#submit.alt:hover,
	.woocommerce ul.products li.product .button.add_to_cart_button:hover,
	.woocommerce div.product .single_add_to_cart_button:hover,
	.woocommerce .wc-proceed-to-checkout a.checkout-button:hover,
	.woocommerce #place_order:hover,
	.woocommerce form.login button[name="login"]:hover,
	.woocommerce form.register button[name="register"]:hover,
	.woocommerce form.lost_reset_password button.button:hover,
	.woocommerce form.edit-account button[name="save_account_details"]:hover,
	.woocommerce form.woocommerce-address-fields button[name="save_address"]:hover,
	#pami-contact-form.pami-contacts-form .wpcf7-submit:hover,
	.button--primary:active,
	.woocommerce a.button.alt:active,
	.woocommerce button.button.alt:active,
	.woocommerce input.button.alt:active,
	.woocommerce #respond input#submit.alt:active,
	.woocommerce ul.products li.product .button.add_to_cart_button:active,
	.woocommerce div.product .single_add_to_cart_button:active,
	.woocommerce .wc-proceed-to-checkout a.checkout-button:active,
	.woocommerce #place_order:active,
	.woocommerce form.login button[name="login"]:active,
	.woocommerce form.register button[name="register"]:active,
	.woocommerce form.lost_reset_password button.button:active,
	.woocommerce form.edit-account button[name="save_account_details"]:active,
	.woocommerce form.woocommerce-address-fields button[name="save_address"]:active,
	#pami-contact-form.pami-contacts-form .wpcf7-submit:active {
		transform: none;
	}
}

@media (forced-colors: active) {
	.button--primary,
	.button--secondary,
	.button--ghost,
	.woocommerce a.button,
	.woocommerce button.button,
	.woocommerce input.button,
	.woocommerce #respond input#submit,
	a.added_to_cart,
	#pami-contact-form.pami-contacts-form .wpcf7-submit {
		color: ButtonText;
		background: ButtonFace;
		border-color: ButtonText;
		box-shadow: none;
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
		filter: none;
	}

	.button:focus-visible,
	.woocommerce a.button:focus-visible,
	.woocommerce button.button:focus-visible,
	.woocommerce input.button:focus-visible,
	.woocommerce #respond input#submit:focus-visible,
	a.added_to_cart:focus-visible,
	#pami-contact-form.pami-contacts-form .wpcf7-submit:focus-visible {
		outline-color: Highlight;
	}
}

/* ==========================
   GLOBAL BACK TO TOP UTILITY
========================== */

button.button.button--secondary.pami-back-to-top {
	position: fixed;
}

.pami-back-to-top {
	right: calc(var(--space-4) + env(safe-area-inset-right));
	bottom: calc(var(--space-4) + env(safe-area-inset-bottom));
	z-index: calc(var(--z-header) - 1);

	width: 48px;
	min-width: 48px;
	height: 48px;
	min-height: 48px;
	padding: 0;

	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(var(--space-2));

	transition:
		opacity var(--transition-fast),
		transform var(--transition-fast),
		visibility 0s linear var(--motion-duration-fast);
}

.pami-back-to-top.is-visible {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateY(0);
	transition-delay: 0s;
}

.pami-back-to-top.is-visible:active {
	/* Glin Glass active returns the visible Utility control to its resting position. */
	transform: translateY(0);
}

.pami-back-to-top__icon {
	width: 19px;
	height: 19px;
	flex: 0 0 auto;
}

@media (min-width: 768px) {
	.pami-back-to-top {
		right: calc(var(--space-6) + env(safe-area-inset-right));
		bottom: calc(var(--space-6) + env(safe-area-inset-bottom));
	}
}

@media (prefers-reduced-motion: reduce) {
	.pami-back-to-top,
	.pami-back-to-top.is-visible:active {
		transform: none;
		transition: none;
	}
}
