/**
 * Module button variants.
 *
 * Setup provides two brand colours via CSS variables:
 *   --digifox-btn-brand  (Button colour)
 *   --digifox-btn-hover  (Button alternative)
 *
 * Per button: Colour (default|light|dark) × Style (fill|outline) × Size (large|small).
 *
 * Default fill:  bg=brand, text=alternative → hover swaps
 * Default outline: border+text=brand → hover fill=brand, text=alternative
 * Light / Dark: white or black pairs (independent of Setup brand)
 */

.button.button--fill,
.button.button--outline {
	border-width: 2px !important;
	border-style: solid !important;
	transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease, transform 0.3s ease;
}

.button.button--fill:hover,
.button.button--fill:focus-visible,
.button.button--outline:hover,
.button.button--outline:focus-visible {
	transform: translateY(-1px);
}

.button.button--small {
	font-size: 0.85em;
	padding: 0.4em 1em !important;
}

/* ——— Default (Setup brand + hover) ——— */
.button.button--fill.button--default {
	background-color: var(--digifox-btn-brand) !important;
	border-color: var(--digifox-btn-brand) !important;
	color: var(--digifox-btn-hover) !important;
}

.button.button--fill.button--default:hover,
.button.button--fill.button--default:focus-visible {
	background-color: var(--digifox-btn-hover) !important;
	border-color: var(--digifox-btn-hover) !important;
	color: var(--digifox-btn-brand) !important;
}

.button.button--outline.button--default {
	background-color: transparent !important;
	border-color: var(--digifox-btn-brand) !important;
	color: var(--digifox-btn-brand) !important;
}

.button.button--outline.button--default:hover,
.button.button--outline.button--default:focus-visible {
	background-color: var(--digifox-btn-brand) !important;
	border-color: var(--digifox-btn-brand) !important;
	color: var(--digifox-btn-hover) !important;
}

/* ——— Light (white) ——— */
.button.button--fill.button--light,
.button.button--fill.button--white {
	background-color: #ffffff !important;
	border-color: #ffffff !important;
	color: #000000 !important;
}

.button.button--fill.button--light:hover,
.button.button--fill.button--light:focus-visible,
.button.button--fill.button--white:hover,
.button.button--fill.button--white:focus-visible {
	background-color: #000000 !important;
	border-color: #000000 !important;
	color: #ffffff !important;
}

.button.button--outline.button--light,
.button.button--outline.button--white {
	background-color: transparent !important;
	border-color: #ffffff !important;
	color: #ffffff !important;
}

.button.button--outline.button--light:hover,
.button.button--outline.button--light:focus-visible,
.button.button--outline.button--white:hover,
.button.button--outline.button--white:focus-visible {
	background-color: #ffffff !important;
	border-color: #ffffff !important;
	color: #000000 !important;
}

/* ——— Dark (black) ——— */
.button.button--fill.button--dark,
.button.button--fill.button--black {
	background-color: #000000 !important;
	border-color: #000000 !important;
	color: #ffffff !important;
}

.button.button--fill.button--dark:hover,
.button.button--fill.button--dark:focus-visible,
.button.button--fill.button--black:hover,
.button.button--fill.button--black:focus-visible {
	background-color: #ffffff !important;
	border-color: #ffffff !important;
	color: #000000 !important;
}

.button.button--outline.button--dark,
.button.button--outline.button--black {
	background-color: transparent !important;
	border-color: #000000 !important;
	color: #000000 !important;
}

.button.button--outline.button--dark:hover,
.button.button--outline.button--dark:focus-visible,
.button.button--outline.button--black:hover,
.button.button--outline.button--black:focus-visible {
	background-color: #000000 !important;
	border-color: #000000 !important;
	color: #ffffff !important;
}
