/**
 * CEWEB Pack Element – Advanced Button, widget bdt-advanced-button
 * Reprise à l'identique d'Element Pack Pro 10.0.1 :
 * - ep-advanced-button.css (bouton et effets A à I) ;
 * - ep-helper.css (tailles xs à xl, animation « Attention ») ;
 * - bdt-uikit.css (utilitaires bdt-flex*, limités au bouton).
 */

/* ---------- Utilitaires UIkit (limités au bouton) ---------- */

.bdt-ep-button .bdt-flex {
	display: flex;
}

.bdt-ep-button .bdt-flex-center {
	justify-content: center;
}

.bdt-ep-button .bdt-flex-middle {
	align-items: center;
}

.bdt-ep-button .bdt-flex-column {
	flex-direction: column;
}

.bdt-ep-button .bdt-flex-column-reverse {
	flex-direction: column-reverse;
}

/* ---------- Bouton ---------- */

.bdt-ep-button-wrapper {
	display: flex;
}

.bdt-ep-button {
	cursor: pointer;
	text-transform: uppercase;
	outline: none;
	position: relative;
	transition: all .3s ease-out;
	z-index: 0;
	text-align: center;
	overflow: hidden;
}

.bdt-ep-button:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

.bdt-ep-button:hover {
	background-color: transparent;
	color: #fff;
}

.bdt-ep-button:hover .bdt-ep-button-badge-inner {
	color: #000;
}

.bdt-ep-button:hover svg {
	fill: #fff;
}

.bdt-ep-button .bdt-ep-button-icon {
	position: relative;
	display: inline-flex;
	z-index: 0;
}

.bdt-ep-button .bdt-ep-button-icon .bdt-ep-button-a-icon-inner,
.bdt-ep-button .bdt-ep-button-icon .bdt-ep-button-b-icon-inner,
.bdt-ep-button .bdt-ep-button-icon .bdt-ep-button-icon-inner {
	display: inline-flex;
}

.bdt-ep-button .bdt-ep-button-icon i,
.bdt-ep-button .bdt-ep-button-icon svg {
	block-size: 1em;
	inline-size: 1em;
	transition: all .3s ease-out;
}

.bdt-ep-button .bdt-ep-button-text {
	position: relative;
	display: inline-block;
	z-index: 0;
}

.bdt-ep-button .bdt-ep-button-badge-inner {
	font-size: 10px;
	background: #e4e4e8;
	padding: 3px 6px;
	border-radius: 3px;
	text-transform: uppercase;
	transition: all .3s ease;
}

.bdt-ep-button .bdt-ep-button-content-wrapper {
	display: flex;
	align-items: center;
}

.bdt-ep-button:after {
	content: '';
	position: absolute;
	z-index: -1;
	transition: all .3s ease-out;
	background: #666;
}

.bdt-ep-button:active {
	color: #fff;
}

/* ---------- Tailles ---------- */

.bdt-ep-button.bdt-ep-button-size-xs {
	padding-block: 5px;
	padding-inline: 10px;
	font-size: 10px;
	font-weight: 400;
}

.bdt-ep-button.bdt-ep-button-size-sm {
	padding-block: 10px;
	padding-inline: 20px;
	font-size: 12px;
}

.bdt-ep-button.bdt-ep-button-size-md {
	padding-block: 15px;
	padding-inline: 30px;
}

.bdt-ep-button.bdt-ep-button-size-lg {
	padding-block: 20px;
	padding-inline: 30px;
	font-size: 16px;
}

.bdt-ep-button.bdt-ep-button-size-xl {
	padding-block: 25px;
	padding-inline: 30px;
	font-size: 18px;
}

/* ---------- Effet A : fondu ---------- */

.bdt-ep-button.bdt-ep-button-effect-a:after {
	inline-size: 100%;
	block-size: 100%;
	inset-block-start: 0;
	inset-inline-start: 0;
	opacity: 0;
}

.bdt-ep-button.bdt-ep-button-effect-a:hover:after,
.bdt-ep-button.bdt-ep-button-effect-a:active:after {
	opacity: 1;
}

/* ---------- Effet B : remplissage vertical ---------- */

.bdt-ep-button.bdt-ep-button-effect-b:after {
	inline-size: 100%;
	block-size: 0;
	inset-block-start: 0;
	inset-inline-start: 0;
}

.bdt-ep-button.bdt-ep-button-effect-b:hover:after,
.bdt-ep-button.bdt-ep-button-effect-b:active:after {
	block-size: 100%;
}

/* ---------- Effet C : remplissage horizontal ---------- */

.bdt-ep-button.bdt-ep-button-effect-c:after {
	inline-size: 0%;
	block-size: 100%;
	inset-block-start: 0;
	inset-inline-start: 0;
}

.bdt-ep-button.bdt-ep-button-effect-c:hover:after,
.bdt-ep-button.bdt-ep-button-effect-c:active:after {
	inline-size: 100%;
}

/* ---------- Effet D : ouverture depuis le centre (horizontale) ---------- */

.bdt-ep-button.bdt-ep-button-effect-d {
	overflow: hidden;
}

.bdt-ep-button.bdt-ep-button-effect-d:after {
	inline-size: 0;
	block-size: 103%;
	inset-block-start: 50%;
	inset-inline-start: 50%;
	opacity: 0;
	transform: translateX(-50%) translateY(-50%);
}

.bdt-ep-button.bdt-ep-button-effect-d:hover:after {
	inline-size: 90%;
	opacity: 1;
}

.bdt-ep-button.bdt-ep-button-effect-d:active:after {
	inline-size: 101%;
	opacity: 1;
}

/* ---------- Effet E : bande diagonale ---------- */

.bdt-ep-button.bdt-ep-button-effect-e {
	overflow: hidden;
}

.bdt-ep-button.bdt-ep-button-effect-e:after {
	inline-size: 100%;
	block-size: 0;
	inset-block-start: 50%;
	inset-inline-start: 50%;
	opacity: 0;
	transform: translateX(-50%) translateY(-50%) rotate(45deg);
}

.bdt-ep-button.bdt-ep-button-effect-e:hover:after {
	block-size: 260%;
	opacity: 1;
}

.bdt-ep-button.bdt-ep-button-effect-e:active:after {
	block-size: 400%;
	opacity: 1;
}

/* ---------- Effet F : ouverture depuis le centre (verticale) ---------- */

.bdt-ep-button.bdt-ep-button-effect-f {
	overflow: hidden;
}

.bdt-ep-button.bdt-ep-button-effect-f:after {
	inline-size: 101%;
	block-size: 0;
	inset-block-start: 50%;
	inset-inline-start: 50%;
	opacity: 0;
	transform: translateX(-50%) translateY(-50%);
}

.bdt-ep-button.bdt-ep-button-effect-f:hover:after {
	block-size: 75%;
	opacity: 1;
}

.bdt-ep-button.bdt-ep-button-effect-f:active:after {
	block-size: 130%;
	opacity: 1;
}

/* ---------- Effet G : texte qui remonte ---------- */

.bdt-ep-button.bdt-ep-button-effect-g {
	transition-timing-function: cubic-bezier(.31, 1.13, .64, .94);
}

.bdt-ep-button.bdt-ep-button-effect-g .bdt-ep-button-content-wrapper {
	position: relative;
}

.bdt-ep-button.bdt-ep-button-effect-g .bdt-ep-button-content-wrapper .bdt-ep-button-text {
	display: block;
	position: relative;
}

.bdt-ep-button.bdt-ep-button-effect-g .bdt-ep-button-content-wrapper .avdbtn-text {
	display: block;
	transition: transform .5s, opacity .8s;
	transition-timing-function: cubic-bezier(.31, 1.13, .64, .94);
}

.bdt-ep-button.bdt-ep-button-effect-g .bdt-ep-button-content-wrapper .avdbtn-alt-text {
	position: absolute;
	inline-size: 100%;
	block-size: 100%;
	inset-inline-start: 0;
	inset-block-start: 0;
	opacity: 0;
	transform: translate3d(0, 25%, 0);
	transition: transform .5s, opacity .8s;
	transition-timing-function: cubic-bezier(.31, 1.13, .64, .94);
}

.bdt-ep-button.bdt-ep-button-effect-g:hover {
	background-color: transparent;
	color: #666;
}

.bdt-ep-button.bdt-ep-button-effect-g:hover .avdbtn-alt-text {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

.bdt-ep-button.bdt-ep-button-effect-g:hover .avdbtn-text {
	opacity: 0;
	transform: translate3d(0, -25%, 0);
}

/* ---------- Effet H : volet en rotation ---------- */

.bdt-ep-button.bdt-ep-button-effect-h {
	transition: color .3s;
	transition-timing-function: cubic-bezier(.2, 1, .3, 1);
}

.bdt-ep-button.bdt-ep-button-effect-h::after {
	content: '';
	position: absolute;
	inset-block-start: 0;
	inset-inline-start: 0;
	inline-size: 150%;
	block-size: 100%;
	background: #666;
	z-index: -1;
	transform: rotate3d(0, 0, 1, -45deg) translate3d(0, -3em, 0);
	transform-origin: 0% 100%;
	transition: transform .3s, opacity .3s, background-color .3s;
}

.bdt-ep-button.bdt-ep-button-effect-h:hover::after {
	opacity: 1;
	background-color: #666;
	transform: rotate3d(0, 0, 1, 0deg);
	transition-timing-function: cubic-bezier(.2, 1, .3, 1);
}

/* ---------- Effet I : ouverture haut / bas ---------- */

.bdt-ep-button.bdt-ep-button-effect-i {
	color: #fff;
	background: #666;
}

.bdt-ep-button.bdt-ep-button-effect-i .bdt-ep-button-content-wrapper::before {
	content: '';
	position: absolute;
	inline-size: 100%;
	block-size: 50%;
	inset-inline-start: 0;
	background: #666;
	color: #fff;
	overflow: hidden;
	transition: transform .3s;
	transition-timing-function: cubic-bezier(.2, 1, .3, 1);
	inset-block-start: 0;
	padding-block-start: 1em;
}

.bdt-ep-button.bdt-ep-button-effect-i .bdt-ep-button-content-wrapper::after {
	content: '';
	position: absolute;
	inline-size: 100%;
	block-size: 50%;
	inset-inline-start: 0;
	background: #666;
	color: #fff;
	overflow: hidden;
	transition: transform .3s;
	transition-timing-function: cubic-bezier(.2, 1, .3, 1);
	inset-block-end: 0;
	line-height: 0;
}

.bdt-ep-button.bdt-ep-button-effect-i .bdt-ep-button-text {
	position: relative;
	z-index: 1;
}

.bdt-ep-button.bdt-ep-button-effect-i:hover {
	color: #666;
	background: #fff;
}

.bdt-ep-button.bdt-ep-button-effect-i:hover .bdt-ep-button-content-wrapper::before {
	transform: translate3d(0, -100%, 0);
}

.bdt-ep-button.bdt-ep-button-effect-i:hover .bdt-ep-button-content-wrapper::after {
	transform: translate3d(0, 100%, 0);
}

/* ---------- Attention : petite secousse toutes les 5 s ---------- */

@keyframes attentionAnimation {
	0% {
		inset-inline-start: 0;
	}

	1% {
		inset-inline-start: -3px;
	}

	2% {
		inset-inline-start: 5px;
	}

	3% {
		inset-inline-start: -8px;
	}

	4% {
		inset-inline-start: 8px;
	}

	5% {
		inset-inline-start: -5px;
	}

	6% {
		inset-inline-start: 3px;
	}

	7% {
		inset-inline-start: 0;
	}
}

.bdt-ep-attention-button {
	animation-name: attentionAnimation;
	animation-duration: 5s;
	animation-iteration-count: infinite;
	animation-timing-function: ease-in;
	position: relative;
}

@media (prefers-reduced-motion: reduce) {
	.bdt-ep-attention-button {
		animation: none;
	}
}
