/* Buttons: Grundverhalten, Stile Weiß / Glas / Rufnummer / Kontur, Icons. */

.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	white-space: nowrap;
	transition: background-color .2s, color .2s, border-color .2s, transform .2s, box-shadow .2s;
}

.wp-block-button:not([class*="is-style-"]) .wp-block-button__link:hover {
	transform: translateY(-2px);
}

.wp-block-button__link:active {
	transform: translateY(0) scale(.985);
}

/* Icons über Zusatzklasse: has-icon-phone, has-icon-mail (vorne), has-icon-arrow (hinten). */
.has-icon-phone .wp-block-button__link::before,
.has-icon-mail .wp-block-button__link::before,
.has-icon-arrow .wp-block-button__link::after {
	content: "";
	flex: none;
	width: 16px;
	height: 16px;
	background: currentColor;
	-webkit-mask: var(--himml-btn-icon) center / contain no-repeat;
	mask: var(--himml-btn-icon) center / contain no-repeat;
}

.has-icon-phone {
	--himml-btn-icon: url("../../icons/phone.svg");
}

.has-icon-mail {
	--himml-btn-icon: url("../../icons/mail.svg");
}

.has-icon-arrow {
	--himml-btn-icon: url("../../icons/arrow-right.svg");
}

/* Kontur (Core-Stil „Outline“): feine Linie statt dicker Rahmen. Die Linie ist
 * kräftig genug, dass der Button auch auf Hellgrau ohne Überfahren als Button
 * erkennbar ist (line #e4e4e4 verschwand auf sand #f2f2f2). */
.wp-block-button.is-style-outline > .wp-block-button__link {
	padding: 18px 28px;
	border: 1px solid rgba(15, 31, 63, .3);
	background: transparent;
	color: var(--wp--preset--color--ink);
	box-shadow: none;
}

.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	border-color: var(--wp--preset--color--ink);
	background: transparent;
	color: var(--wp--preset--color--ink);
}

/* Auf grauen Flächen zusätzlich weiß gefüllt. */
:is([class*="is-style-section-sand"], .has-sand-background-color, .has-grey-background-color, .is-style-step) .wp-block-button.is-style-outline > .wp-block-button__link,
:is([class*="is-style-section-sand"], .has-sand-background-color, .has-grey-background-color, .is-style-step) .wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--wp--preset--color--base);
}

[class*="is-style-section-night"] .wp-block-button.is-style-outline > .wp-block-button__link,
[class*="is-style-section-stone"] .wp-block-button.is-style-outline > .wp-block-button__link {
	border-color: rgba(255, 255, 255, .45);
	background: transparent;
	color: #fff;
}

[class*="is-style-section-night"] .wp-block-button.is-style-outline > .wp-block-button__link:hover,
[class*="is-style-section-stone"] .wp-block-button.is-style-outline > .wp-block-button__link:hover {
	border-color: #fff;
	background: rgba(255, 255, 255, .08);
	color: #fff;
}

/* Weiß. */
.wp-block-button.is-style-white .wp-block-button__link {
	background: #fff;
	color: var(--wp--preset--color--ink);
	box-shadow: none;
}

.wp-block-button.is-style-white .wp-block-button__link:hover {
	background: var(--wp--preset--color--grey);
	color: var(--wp--preset--color--ink);
}

/* Glas: auf dunklem Grund. */
.wp-block-button.is-style-glass .wp-block-button__link {
	border: 1px solid rgba(255, 255, 255, .18);
	background: rgba(255, 255, 255, .08);
	color: #fff;
	box-shadow: none;
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
}

.wp-block-button.is-style-glass .wp-block-button__link:hover {
	background: rgba(255, 255, 255, .14);
	color: #fff;
}

/* Rufnummer: große, fette Ziffern mit Kontur. */
.wp-block-button.is-style-number .wp-block-button__link {
	padding: 12px 18px;
	border: 1.5px solid var(--wp--preset--color--ink);
	background: transparent;
	color: var(--wp--preset--color--ink);
	box-shadow: none;
	font-size: 21.5px;
	font-weight: 700;
	letter-spacing: -.02em;
	font-variant-numeric: tabular-nums;
	white-space: nowrap !important;
}

.wp-block-button.is-style-number .wp-block-button__link:hover {
	background: var(--wp--preset--color--ink);
	color: #fff;
}

/* Kontaktband: Telefon wird blau, E-Mail deutlich heller. */
.himml-cta__phone .wp-block-button__link {
	font-size: 18.5px;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

.himml-cta__phone .wp-block-button__link:hover,
.himml-cta__phone .wp-block-button__link:focus-visible {
	background: var(--wp--preset--color--blue);
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 14px 30px -12px rgba(14, 65, 148, .8), 0 0 0 4px rgba(255, 255, 255, .14);
}

.himml-cta__mail .wp-block-button__link:hover,
.himml-cta__mail .wp-block-button__link:focus-visible {
	border-color: rgba(255, 255, 255, .75);
	background: rgba(255, 255, 255, .3);
	transform: translateY(-2px);
	box-shadow: 0 14px 30px -14px rgba(0, 0, 0, .55);
}

/* Anruf-Leiste: Text darf umbrechen. */
.himml-sticky-call .wp-block-button__link,
.himml-sticky-call .wp-block-button__link:hover {
	width: 100%;
	white-space: normal;
	background: var(--wp--preset--color--blue);
	color: #fff;
	box-shadow: var(--wp--preset--shadow--blue);
}

@media (prefers-reduced-motion: reduce) {
	.wp-block-button__link,
	.wp-block-button__link:hover,
	.wp-block-button__link:active {
		transform: none !important;
		transition: none;
	}
}
