/**
 * PowerX Section Title / Heading Component Styles
 *
 * Header and section title component with bilateral decorative lines,
 * bottom underlines, responsive alignments, and typography tokens.
 *
 * =========================================================================
 * TABLE OF CONTENTS
 * =========================================================================
 * 1.0 MAIN WRAPPER & ALIGNMENTS
 * 2.0 TITLE INNER & FLEX CONTAINER
 * 3.0 BILATERAL DIVIDER LINES (LEFT / RIGHT)
 * 4.0 BOTTOM ACCENT LINE
 * 5.0 TYPOGRAPHY & HOVER TRANSITIONS
 * =========================================================================
 *
 * @package PowerX_Core
 * @version 0.0.1
 */

/* =========================================================================
 * 1.0 MAIN WRAPPER & ALIGNMENTS
 * ========================================================================= */
.elementor-widget-px-heading,
.elementor-widget-px-heading-v2 {
	width: 100%;
}

.px-section-title-wrap {
	display: flex;
	flex-direction: column;
	width: 100%;
	max-width: 100%;
	position: relative;
	margin: 0;
	padding: 0;
	align-items: flex-start;
	text-align: left;
}

.px-section-title-wrap.px-align-left {
	align-items: flex-start;
	text-align: left;
}

.px-section-title-wrap.px-align-center {
	align-items: center;
	text-align: center;
}

.px-section-title-wrap.px-align-right {
	align-items: flex-end;
	text-align: right;
}

/* =========================================================================
 * 2.0 TITLE INNER & FLEX CONTAINER
 * ========================================================================= */
/* Non-divider layouts behave as pure block flow for natural multi-line text wrapping */
.px-section-title-wrap.px-pos-none .px-title-inner,
.px-section-title-wrap.px-pos-bottom .px-title-inner {
	display: block;
	width: 100%;
}

.px-section-title-wrap.px-pos-none .px-title-text,
.px-section-title-wrap.px-pos-bottom .px-title-text {
	display: block;
	width: 100%;
	text-align: inherit;
}

/* Divider layouts use flex with bilateral/single line integration */
.px-section-title-wrap.px-pos-both .px-title-inner,
.px-section-title-wrap.px-pos-left .px-title-inner,
.px-section-title-wrap.px-pos-right .px-title-inner,
.px-section-title-wrap .px-title-inner {
	display: flex;
	align-items: center;
	width: 100%;
	gap: var(--px-heading-divider-gap, 16px);
}

.px-section-title-wrap.px-align-center .px-title-inner {
	justify-content: center;
}

.px-section-title-wrap.px-align-left .px-title-inner {
	justify-content: flex-start;
}

.px-section-title-wrap.px-align-right .px-title-inner {
	justify-content: flex-end;
}

/* =========================================================================
 * 3.0 BILATERAL DIVIDER LINES (LEFT / RIGHT)
 * ========================================================================= */
.px-section-title-wrap .px-divider-line {
	display: block;
	height: 0;
	border-top-width: var(--px-heading-divider-thick, 1px);
	border-top-style: var(--px-heading-divider-style, solid);
	border-top-color: var(--px-heading-divider-color, #e2e8f0);
	margin: 0;
	padding: 0;
}

.px-section-title-wrap .px-line-left,
.px-section-title-wrap .px-line-right {
	flex: 1 1 0%;
	min-width: 16px;
	max-width: var(--px-heading-divider-max, none);
}

.px-section-title-wrap.px-align-left .px-line-left {
	flex: 0 0 var(--px-heading-divider-max, 40px);
	max-width: var(--px-heading-divider-max, 40px);
}

.px-section-title-wrap.px-align-right .px-line-right {
	flex: 0 0 var(--px-heading-divider-max, 40px);
	max-width: var(--px-heading-divider-max, 40px);
}

/* =========================================================================
 * 4.0 BOTTOM ACCENT LINE
 * ========================================================================= */
.px-section-title-wrap .px-line-bottom {
	width: var(--px-heading-divider-max, 48px);
	height: var(--px-heading-divider-thick, 2px);
	background: var(--px-heading-divider-color, var(--powerx-primary-500, #4945ff));
	border: none;
	margin-top: var(--px-heading-line-mt, 10px);
}

.px-section-title-wrap.px-align-center .px-line-bottom {
	margin-left: auto;
	margin-right: auto;
}

.px-section-title-wrap.px-align-left .px-line-bottom {
	margin-left: 0;
	margin-right: auto;
}

.px-section-title-wrap.px-align-right .px-line-bottom {
	margin-left: auto;
	margin-right: 0;
}

/* =========================================================================
 * 5.0 TYPOGRAPHY & HOVER TRANSITIONS
 * ========================================================================= */
.px-section-title-wrap .px-title-text {
	margin: 0;
	padding: 0;
	font-family: var(--powerx-font-primary, inherit);
	font-size: var(--px-heading-size, inherit);
	font-weight: var(--px-heading-weight, 700);
	letter-spacing: var(--px-heading-spacing, normal);
	text-transform: var(--px-heading-transform, none);
	color: var(--px-heading-color, var(--powerx-neutral-900, #212134));
	white-space: normal;
	word-wrap: break-word;
	overflow-wrap: break-word;
	word-break: break-word;
	line-height: 1.25;
	flex-shrink: 1;
	min-width: 0;
	max-width: 100%;
}

@media (max-width: 640px) {
	.px-section-title-wrap .px-title-text {
		overflow-wrap: break-word;
	}
}

.px-section-title-wrap .px-title-link,
.elementor-element.elementor-widget-px-heading .px-title-link,
.elementor-element.elementor-widget-heading .elementor-heading-title a,
.px-title-text a {
	color: inherit;
	text-decoration: none;
	transition: color 0.2s ease;
}

.px-section-title-wrap .px-title-link:hover {
	color: var(--px-heading-hover-color, var(--powerx-primary-color, #0284c7));
}

/* =========================================================================
 * 6.0 SUBTITLE STYLES
 * ========================================================================= */
.px-section-title-wrap .px-subtitle-text {
	display: inline-block;
	margin: 0;
	padding: 0;
	font-family: var(--powerx-font-primary, inherit);
	font-size: var(--px-heading-subtitle-size, 13px);
	font-weight: var(--px-heading-subtitle-weight, 600);
	letter-spacing: var(--px-heading-subtitle-spacing, 0.5px);
	line-height: 1.35;
	color: var(--px-heading-subtitle-color, var(--powerx-primary, #0284c7));
	max-width: 100%;
	word-wrap: break-word;
	overflow-wrap: break-word;
}

.px-section-title-wrap .px-subtitle-text.is-badge {
	background-color: var(--px-heading-badge-bg, rgba(2, 132, 199, 0.08));
	padding: 4px 12px;
	border-radius: var(--px-heading-badge-radius, 4px);
}

.px-section-title-wrap.px-align-center .px-subtitle-text {
	text-align: center;
	margin-left: auto;
	margin-right: auto;
}

.px-section-title-wrap.px-align-left .px-subtitle-text {
	text-align: left;
	margin-left: 0;
	margin-right: auto;
}

.px-section-title-wrap.px-align-right .px-subtitle-text {
	text-align: right;
	margin-left: auto;
	margin-right: 0;
}

/* =========================================================================
 * 7.0 DESCRIPTION / CONTENT STYLES
 * ========================================================================= */
.px-section-title-wrap .px-heading-description {
	width: 100%;
	max-width: 680px;
	margin: 0;
	padding: 0;
	font-family: var(--powerx-font-primary, inherit);
	font-size: var(--px-heading-desc-size, 15px);
	font-weight: var(--px-heading-desc-weight, 400);
	line-height: 1.6;
	color: var(--px-heading-desc-color, var(--powerx-neutral-600, #64748b));
	word-wrap: break-word;
	overflow-wrap: break-word;
}

.px-section-title-wrap.px-align-center .px-heading-description {
	margin-left: auto;
	margin-right: auto;
	text-align: center;
}

.px-section-title-wrap.px-align-left .px-heading-description {
	margin-left: 0;
	margin-right: auto;
	text-align: left;
}

.px-section-title-wrap.px-align-right .px-heading-description {
	margin-left: auto;
	margin-right: 0;
	text-align: right;
}

.px-section-title-wrap .px-heading-description p {
	margin-top: 0;
	margin-bottom: 0.75em;
}

.px-section-title-wrap .px-heading-description p:last-child {
	margin-bottom: 0;
}

.px-section-title-wrap .px-heading-description a {
	color: var(--px-heading-desc-link-color, var(--powerx-primary, #0284c7));
	text-decoration: underline;
	transition: color 0.2s ease;
}

.px-section-title-wrap .px-heading-description a:hover {
	color: var(--px-heading-desc-link-hover, var(--powerx-primary-dark, #0369a1));
}

/* =========================================================================
 * 8.0 TABLE SUPPORT INSIDE CONTENT / DESCRIPTION
 * ========================================================================= */
.px-section-title-wrap .px-heading-description:has(table),
.px-section-title-wrap .px-heading-description:has(.px-raw-table-wrap) {
	max-width: 100%;
}

.px-section-title-wrap .px-heading-description table {
	width: 100%;
	border-collapse: collapse;
	margin: 1rem 0;
	font-size: 0.875rem;
	line-height: 1.35;
}

.px-section-title-wrap .px-heading-description th,
.px-section-title-wrap .px-heading-description td {
	padding: 5px 12px;
	border: 1px solid var(--powerx-border-color, #e2e8f0);
	text-align: left;
	vertical-align: middle;
	line-height: 1.35;
}

.px-section-title-wrap .px-heading-description th {
	font-weight: 600;
	background-color: var(--powerx-overlay-navy, rgba(15, 23, 42, 0.04));
	color: var(--powerx-heading-color, var(--powerx-neutral-900, #212134));
}

.px-section-title-wrap .px-heading-description tbody tr:nth-child(even) {
	background-color: var(--powerx-color-alpha, rgba(248, 250, 252, 0.6));
}

.px-section-title-wrap .px-heading-description tbody tr:hover {
	background-color: var(--powerx-color-alpha, rgba(241, 245, 249, 0.8));
}


