/*
 * Global standard buttons remain untouched by default.
 * AVP's global button design is applied only when the site owner explicitly
 * selects a button style in the Customizer. Theme-owned CTA components keep
 * their own component styling in the inherited/default mode.
 */
body:is(.avp-button-style-filled, .avp-button-style-outline, .avp-button-style-minimal)
:is(.button:not(.button--secondary):not(.button--outline):not(.button--light):not(.button--ghost), button.button:not(.button--secondary):not(.button--outline):not(.button--light):not(.button--ghost), input[type="submit"]) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: var(--avp-button-padding-top) var(--avp-button-padding-right) var(--avp-button-padding-bottom) var(--avp-button-padding-left);
	margin: var(--avp-button-margin-top) var(--avp-button-margin-right) var(--avp-button-margin-bottom) var(--avp-button-margin-left);
	border: var(--avp-button-border-width) solid var(--avp-color-button);
	border-radius: var(--avp-button-radius);
	color: var(--avp-color-button-text);
	background: var(--avp-color-button);
	font-size: var(--avp-button-font-size);
	font-weight: var(--avp-button-font-weight);
	font-style: var(--avp-button-font-style, normal);
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	box-shadow: 0 0 var(--avp-button-shadow, 12px) rgba(23, 105, 224, .14);
	transition: transform var(--avp-transition), box-shadow var(--avp-transition), color var(--avp-transition), background var(--avp-transition), border-color var(--avp-transition);
}

body:is(.avp-button-style-filled, .avp-button-style-outline, .avp-button-style-minimal)
:is(.button:not(.button--secondary):not(.button--outline):not(.button--light):not(.button--ghost), button.button:not(.button--secondary):not(.button--outline):not(.button--light):not(.button--ghost), input[type="submit"]):hover {
	color: var(--avp-color-button-hover-text);
	background: var(--avp-color-button-hover);
	border-color: var(--avp-color-button-hover);
	transform: translateY(-2px);
	box-shadow: 0 0 var(--avp-button-shadow, 12px) rgba(23, 105, 224, .25);
}

body:is(.avp-secondary-button-style-filled, .avp-secondary-button-style-outline, .avp-secondary-button-style-minimal)
:is(.button.button--secondary, .button.button--outline, button.button--secondary, button.button--outline) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: calc(var(--avp-secondary-button-padding-top) + var(--avp-secondary-button-padding-bottom) + var(--avp-secondary-button-font-size) * 1.2);
	padding: var(--avp-secondary-button-padding-top) var(--avp-secondary-button-padding-right) var(--avp-secondary-button-padding-bottom) var(--avp-secondary-button-padding-left);
	margin: var(--avp-secondary-button-margin-top) var(--avp-secondary-button-margin-right) var(--avp-secondary-button-margin-bottom) var(--avp-secondary-button-margin-left);
	border: var(--avp-secondary-button-border-width) solid var(--avp-color-secondary-button);
	border-radius: var(--avp-secondary-button-radius);
	color: var(--avp-color-secondary-button-text);
	background: var(--avp-color-secondary-button);
	font-size: var(--avp-secondary-button-font-size);
	font-weight: var(--avp-secondary-button-font-weight);
	font-style: var(--avp-secondary-button-font-style, normal);
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	box-shadow: 0 0 var(--avp-secondary-button-shadow, 12px) rgba(23, 105, 224, .14);
	transition: transform var(--avp-transition), box-shadow var(--avp-transition), color var(--avp-transition), background var(--avp-transition), border-color var(--avp-transition);
}

body:is(.avp-secondary-button-style-filled, .avp-secondary-button-style-outline, .avp-secondary-button-style-minimal)
:is(.button.button--secondary, .button.button--outline, button.button--secondary, button.button--outline):hover {
	color: var(--avp-color-secondary-button-hover-text);
	background: var(--avp-color-secondary-button-hover);
	border-color: var(--avp-color-secondary-button-hover);
	transform: translateY(-2px);
	box-shadow: 0 0 var(--avp-secondary-button-shadow, 12px) rgba(23, 105, 224, .25);
}

/* Theme-owned front-page/header/footer CTA components keep a defined design
 * when the global button setting is left at "Standard übernehmen". */
body.avp-button-style-inherit :is(.hero__actions > .button, .cta-panel__actions > .button, .header-cta.button:not(.header-cta--link), .site-footer a.footer-withdraw-button.button) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: var(--avp-button-padding-top) var(--avp-button-padding-right) var(--avp-button-padding-bottom) var(--avp-button-padding-left);
	margin: var(--avp-button-margin-top) var(--avp-button-margin-right) var(--avp-button-margin-bottom) var(--avp-button-margin-left);
	border: var(--avp-button-border-width) solid var(--avp-color-button);
	border-radius: var(--avp-button-radius);
	color: var(--avp-color-button-text);
	background: var(--avp-color-button);
	font-size: var(--avp-button-font-size);
	font-weight: var(--avp-button-font-weight);
	font-style: var(--avp-button-font-style, normal);
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	box-shadow: 0 0 var(--avp-button-shadow, 12px) rgba(23, 105, 224, .14);
	transition: transform var(--avp-transition), box-shadow var(--avp-transition), color var(--avp-transition), background var(--avp-transition), border-color var(--avp-transition);
}

body.avp-button-style-inherit :is(.hero__actions > .button, .cta-panel__actions > .button, .header-cta.button:not(.header-cta--link), .site-footer a.footer-withdraw-button.button):hover {
	color: var(--avp-color-button-hover-text);
	background: var(--avp-color-button-hover);
	border-color: var(--avp-color-button-hover);
	transform: translateY(-2px);
	box-shadow: 0 0 var(--avp-button-shadow, 12px) rgba(23, 105, 224, .25);
}

body.avp-secondary-button-style-inherit :is(.hero__actions > .button.button--outline, .hero__actions > .button.button--secondary) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: calc(var(--avp-secondary-button-padding-top) + var(--avp-secondary-button-padding-bottom) + var(--avp-secondary-button-font-size) * 1.2);
	padding: var(--avp-secondary-button-padding-top) var(--avp-secondary-button-padding-right) var(--avp-secondary-button-padding-bottom) var(--avp-secondary-button-padding-left);
	margin: var(--avp-secondary-button-margin-top) var(--avp-secondary-button-margin-right) var(--avp-secondary-button-margin-bottom) var(--avp-secondary-button-margin-left);
	border: var(--avp-secondary-button-border-width) solid var(--avp-color-secondary-button);
	border-radius: var(--avp-secondary-button-radius);
	color: var(--avp-color-secondary-button-text);
	background: transparent;
	font-size: var(--avp-secondary-button-font-size);
	font-weight: var(--avp-secondary-button-font-weight);
	font-style: var(--avp-secondary-button-font-style, normal);
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	box-shadow: 0 0 var(--avp-secondary-button-shadow, 12px) rgba(23, 105, 224, .14);
	transition: transform var(--avp-transition), box-shadow var(--avp-transition), color var(--avp-transition), background var(--avp-transition), border-color var(--avp-transition);
}

body.avp-secondary-button-style-inherit :is(.hero__actions > .button.button--outline, .hero__actions > .button.button--secondary):hover {
	color: var(--avp-color-secondary-button-hover-text);
	background: var(--avp-color-secondary-button-hover);
	border-color: var(--avp-color-secondary-button-hover);
}

body.avp-button-style-inherit .header-cta.header-cta--outline {
	color: var(--avp-color-button);
	background: transparent;
}

body.avp-button-style-inherit .header-cta.header-cta--outline:hover {
	color: var(--avp-color-button-hover-text);
	background: var(--avp-color-button-hover);
	border-color: var(--avp-color-button-hover);
}

body.avp-button-style-inherit .header-cta.header-cta--link {
	min-height: auto;
	padding: 0;
	border: 0;
	border-radius: 0;
	color: var(--avp-header-link, currentColor);
	background: transparent;
	box-shadow: none;
	text-decoration: none;
}

body.avp-button-style-inherit .header-cta.header-cta--link:hover {
	color: var(--avp-color-link-hover);
	background: transparent;
	box-shadow: none;
	transform: none;
}


/* The light CTA is a dedicated theme component, not a generic plugin button. */
.cta-panel__actions > .button--light {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: var(--avp-button-padding-top) var(--avp-button-padding-right) var(--avp-button-padding-bottom) var(--avp-button-padding-left);
	margin: var(--avp-button-margin-top) var(--avp-button-margin-right) var(--avp-button-margin-bottom) var(--avp-button-margin-left);
	border: var(--avp-button-border-width) solid #fff;
	border-radius: var(--avp-button-radius);
	color: var(--avp-color-primary);
	background: #fff;
	font-size: var(--avp-button-font-size);
	font-weight: var(--avp-button-font-weight);
	font-style: var(--avp-button-font-style, normal);
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	box-shadow: 0 0 var(--avp-button-shadow, 12px) rgba(23, 105, 224, .14);
	transition: transform var(--avp-transition), box-shadow var(--avp-transition), color var(--avp-transition), background var(--avp-transition), border-color var(--avp-transition);
}
.cta-panel__actions > .button--light:hover { color: var(--avp-color-secondary); }

/* Theme-owned modifiers only; they do not target generic plugin controls. */
.hero__actions .button--small,
.cta-panel__actions .button--small,
.header-cta.button--small,
.site-footer .footer-withdraw-button.button--small { min-height: 42px; padding: 8px 18px; font-size: .9rem; }

.hero__actions .button--ghost,
.cta-panel__actions .button--ghost { border-color: rgba(255, 255, 255, .45); color: #fff; background: transparent; }
.hero__actions .button--full,
.cta-panel__actions .button--full { width: 100%; }

body.avp-button-style-outline :is(.button:not(.button--secondary):not(.button--outline):not(.button--light):not(.button--ghost), input[type="submit"]) {
	color: var(--avp-color-button);
	background: transparent;
}
body.avp-button-style-minimal :is(.button:not(.button--secondary):not(.button--outline):not(.button--light):not(.button--ghost), input[type="submit"]) {
	min-height: auto;
	padding-inline: 0;
	border-color: transparent;
	color: var(--avp-color-button);
	background: transparent;
}

body.avp-button-style-outline :is(.button:not(.button--secondary):not(.button--outline):not(.button--light):not(.button--ghost), input[type="submit"]):hover,
body.avp-button-style-minimal :is(.button:not(.button--secondary):not(.button--outline):not(.button--light):not(.button--ghost), input[type="submit"]):hover {
	color: var(--avp-color-button-hover-text);
	background: var(--avp-color-button-hover);
	border-color: var(--avp-color-button-hover);
}

body.avp-secondary-button-style-outline :is(.button--secondary, .button--outline) {
	color: var(--avp-color-secondary-button-text);
	background: transparent;
}
body.avp-secondary-button-style-minimal :is(.button--secondary, .button--outline) {
	min-height: auto;
	padding-inline: 0;
	border-color: transparent;
	color: var(--avp-color-secondary-button-text);
	background: transparent;
}

body.avp-secondary-button-style-outline :is(.button--secondary, .button--outline):hover,
body.avp-secondary-button-style-minimal :is(.button--secondary, .button--outline):hover {
	color: var(--avp-color-secondary-button-hover-text);
	background: var(--avp-color-secondary-button-hover);
	border-color: var(--avp-color-secondary-button-hover);
}

body:is(.avp-button-style-filled, .avp-button-style-outline, .avp-button-style-minimal).avp-button-hover-flat
:is(.button:not(.button--secondary):not(.button--outline), input[type="submit"]):hover,
body:is(.avp-secondary-button-style-filled, .avp-secondary-button-style-outline, .avp-secondary-button-style-minimal).avp-secondary-button-hover-flat
:is(.button--secondary, .button--outline):hover {
	transform: none;
	box-shadow: none;
}
