/**
 * Button Custom Module Styles
 * Uses CSS custom properties from PHP for dynamic colors
 * Classes: .et_pb_btn_filled / .et_pb_btn_outline
 * --btn-bg: inner background color for gradient border (default: #fff)
 */

/* Base button styles */
.et_pb_button_module_wrapper .et_pb_btn_custom {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 12px;
	padding: 12px 24px !important;
	border-radius: 100px;
	border-width: 1px;
	border-style: solid;
	border-color: transparent;
	text-decoration: none !important;
	cursor: pointer;
	transition: all 0.3s ease;
	box-sizing: border-box;
	font-size: inherit;
	line-height: inherit;
	font-weight: 400;
}

/* Lock padding on hover */
.et_pb_button_module_wrapper .et_pb_btn_custom:hover {
	padding: 12px 24px !important;
	text-decoration: none !important;
}

/* ========================================
   FILLED: gradient bg + light text
   Hover: gradient border only + dark text
   ======================================== */
.et_pb_button_module_wrapper .et_pb_btn_custom.et_pb_btn_filled {
	background: linear-gradient(var(--btn-angle), var(--btn-c1), var(--btn-c2)) !important;
	border-color: transparent !important;
	color: var(--btn-text) !important;
}

.et_pb_button_module_wrapper .et_pb_btn_custom.et_pb_btn_filled:hover {
	background: linear-gradient(var(--btn-bg, #ffffff), var(--btn-bg, #ffffff)) padding-box,
		linear-gradient(var(--btn-angle), var(--btn-c1), var(--btn-c2)) border-box !important;
	border-color: transparent !important;
	color: var(--btn-text-hover) !important;
}

/* ========================================
   OUTLINE: gradient border only + dark text
   Hover: gradient bg + light text
   ======================================== */
.et_pb_button_module_wrapper .et_pb_btn_custom.et_pb_btn_outline {
	background: linear-gradient(var(--btn-bg, #ffffff), var(--btn-bg, #ffffff)) padding-box,
		linear-gradient(var(--btn-angle), var(--btn-c1), var(--btn-c2)) border-box !important;
	border-color: transparent !important;
	color: var(--btn-text) !important;
}

.et_pb_button_module_wrapper .et_pb_btn_custom.et_pb_btn_outline:hover {
	background: linear-gradient(var(--btn-angle), var(--btn-c1), var(--btn-c2)) !important;
	border-color: transparent !important;
	color: var(--btn-text-hover) !important;
}

/* ========================================
   Icon styles
   ======================================== */
.et_pb_button_module_wrapper .et_pb_btn_custom .et_pb_button_custom_icon {
	width: 24px;
	height: 24px;
	display: inline-block;
	background-image: url('cta-icon-blue.svg');
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	transition: all 0.3s ease;
	flex-shrink: 0;
}

.et_pb_button_module_wrapper .et_pb_btn_custom.et_pb_btn_filled .et_pb_button_custom_icon {
	background-image: url('cta-icon-white.svg');
}

.et_pb_button_module_wrapper .et_pb_btn_custom.et_pb_btn_filled:hover .et_pb_button_custom_icon {
	background-image: url('cta-icon-blue.svg');
}

.et_pb_button_module_wrapper .et_pb_btn_custom:hover .et_pb_button_custom_icon {
	background-image: url('cta-icon-white.svg');
}

/* Hide Divi default ::after icon */
.et_pb_button_module_wrapper .et_pb_btn_custom.has-custom-icon::after {
	display: none !important;
}

/* Text span alignment */
.et_pb_button_module_wrapper .et_pb_btn_custom .et_pb_button_custom_text {
	display: inline-block;
	vertical-align: middle;
}