/*!
 * Three Pillars Explorer for Elementor
 * Every rule is scoped to .tpe-widget so nothing leaks into the theme.
 * Elementor style controls use "{{WRAPPER}} .tpe-widget ..." which is always more specific than these defaults.
 */

/* ------------------------------------------------------------------
 * Tokens
 * ---------------------------------------------------------------- */
.tpe-widget {
	--tpe-accent: #e3a447;
	--tpe-trust: #3c8cc0;
	--tpe-trust-dark: #1e628f;
	--tpe-trust-tint: #eef4f8;
	--tpe-expertise: #d68147;
	--tpe-expertise-dark: #b76831;
	--tpe-expertise-tint: #f9efe6;
	--tpe-empowerment: #75a067;
	--tpe-empowerment-dark: #456a3d;
	--tpe-empowerment-tint: #eef4ea;

	/* Diagram geometry, unitless percentages of the image. */
	--tpe-trust-x: 50;
	--tpe-trust-y: 27;
	--tpe-trust-ring: 55.5;
	--tpe-trust-hit: 50;
	--tpe-expertise-x: 74.4;
	--tpe-expertise-y: 70.2;
	--tpe-expertise-ring: 51;
	--tpe-expertise-hit: 47;
	--tpe-empowerment-x: 25.8;
	--tpe-empowerment-y: 70.2;
	--tpe-empowerment-ring: 51;
	--tpe-empowerment-hit: 47;

	--tpe-ease: cubic-bezier(0.65, 0, 0.35, 1);
	--tpe-font-display: Fraunces, "Source Serif 4", Georgia, "Times New Roman", serif;
	--tpe-font-serif: "Source Serif 4", Georgia, "Times New Roman", serif;
	--tpe-font-ui: Inter, "Helvetica Neue", Arial, sans-serif;

	position: relative;
	font-family: var(--tpe-font-serif);
	font-size: 17px;
	line-height: 1.72;
	letter-spacing: 0.008em;
	color: #24333d;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

.tpe-widget *,
.tpe-widget *::before,
.tpe-widget *::after {
	box-sizing: border-box;
}

/* ------------------------------------------------------------------
 * Shell and grid
 * ---------------------------------------------------------------- */
.tpe-widget .tpe-shell {
	--tpe-c: var(--tpe-trust);
	--tpe-cd: var(--tpe-trust-dark);
	--tpe-ct: var(--tpe-trust-tint);
	display: grid;
	grid-template-columns: var(--tpe-cols, var(--tpe-nav-w, 300px) minmax(0, var(--tpe-vis-fr, 0.9fr)) minmax(0, var(--tpe-con-fr, 1.1fr)));
	grid-template-areas: var(--tpe-areas, "nav visual content");
	grid-template-rows: var(--tpe-rows, auto);
	min-height: 600px;
	border: 1px solid rgba(10, 34, 50, 0.08);
	border-radius: 32px;
	overflow: hidden;
	background: #fffdf8;
	box-shadow: 0 30px 70px rgba(8, 29, 41, 0.12);
}

.tpe-widget .tpe-shell[data-active="expertise"] {
	--tpe-c: var(--tpe-expertise);
	--tpe-cd: var(--tpe-expertise-dark);
	--tpe-ct: var(--tpe-expertise-tint);
}

.tpe-widget .tpe-shell[data-active="empowerment"] {
	--tpe-c: var(--tpe-empowerment);
	--tpe-cd: var(--tpe-empowerment-dark);
	--tpe-ct: var(--tpe-empowerment-tint);
}

/* ------------------------------------------------------------------
 * Navigation
 * ---------------------------------------------------------------- */
.tpe-widget .tpe-nav {
	grid-area: nav;
	display: flex;
	flex-direction: column;
	min-width: 0;
	padding: 22px;
	background:
		radial-gradient(circle at 20% 110%, rgba(227, 164, 71, 0.12), transparent 45%),
		linear-gradient(#0e2e42, #0a2233);
}

.tpe-widget .tpe-tabs {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 0;
	padding: 0;
}

.tpe-widget .tpe-tab {
	--tpe-tc: var(--tpe-trust);
	-webkit-appearance: none;
	appearance: none;
	position: relative;
	overflow: hidden;
	display: grid;
	grid-template-columns: calc(var(--tpe-dot, 10px) + 2px) minmax(0, 1fr) auto;
	grid-template-areas: "dot name range" ". tag tag";
	align-items: center;
	column-gap: 12px;
	row-gap: 0;
	width: 100%;
	min-height: 0;
	margin: 0;
	padding: 18px 16px;
	border: 1px solid rgba(255, 255, 255, 0.06);
	border-radius: 16px;
	background: rgba(255, 255, 255, 0.024);
	box-shadow: none;
	color: #a9bdc8;
	font-family: var(--tpe-font-ui);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: normal;
	text-align: left;
	text-decoration: none;
	text-transform: none;
	white-space: normal;
	cursor: pointer;
	transition: background-color 0.3s, border-color 0.3s, color 0.3s, transform 0.25s;
}

.tpe-widget .tpe-tab[data-pillar="expertise"] {
	--tpe-tc: var(--tpe-expertise);
}

.tpe-widget .tpe-tab[data-pillar="empowerment"] {
	--tpe-tc: var(--tpe-empowerment);
}

.tpe-widget .tpe-tab:hover {
	transform: translateX(3px);
	background: rgba(255, 255, 255, 0.06);
	color: #fff;
	text-decoration: none;
}

.tpe-widget .tpe-tab.is-active {
	transform: none;
	background: rgba(255, 255, 255, 0.09);
	border-color: rgba(255, 255, 255, 0.22);
	border-color: color-mix(in srgb, var(--tpe-tc) 60%, transparent);
	color: #fff;
}

.tpe-widget.tpe-no-tab-move .tpe-tab:hover,
.tpe-widget.tpe-tabs-static .tpe-tab:hover {
	transform: none;
}

.tpe-widget.tpe-tabs-static .tpe-tab {
	cursor: default;
}

.tpe-widget .tpe-tab-dot {
	grid-area: dot;
	display: block;
	width: var(--tpe-dot, 10px);
	height: var(--tpe-dot, 10px);
	border-radius: 50%;
	background: var(--tpe-tc);
	opacity: 0.55;
	box-shadow: 0 0 0 0 transparent;
	transition: opacity 0.3s, box-shadow 0.3s;
}

.tpe-widget .tpe-tab.is-active .tpe-tab-dot {
	opacity: 1;
	box-shadow: 0 0 0 5px rgba(255, 255, 255, 0.12);
	box-shadow: 0 0 0 5px color-mix(in srgb, var(--tpe-tc) 22%, transparent);
}

.tpe-widget .tpe-tab-name {
	grid-area: name;
	min-width: 0;
	font-family: var(--tpe-font-ui);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.35;
}

.tpe-widget .tpe-tab-range {
	grid-area: range;
	font-family: var(--tpe-font-ui);
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1.35;
	white-space: nowrap;
	opacity: 0.7;
}

.tpe-widget .tpe-tab-tagline {
	grid-area: tag;
	display: block;
	max-height: 0;
	margin-top: 0;
	overflow: hidden;
	opacity: 0;
	font-family: var(--tpe-font-serif);
	font-size: 14.5px;
	font-style: italic;
	font-weight: 400;
	line-height: 1.5;
	color: #b9cad2;
	transition: max-height 0.4s, opacity 0.3s, margin-top 0.3s;
}

.tpe-widget .tpe-tab.is-active .tpe-tab-tagline {
	max-height: 8em;
	margin-top: 8px;
	opacity: 1;
}

.tpe-widget .tpe-tab-bar {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: var(--tpe-bar-h, 3px);
	pointer-events: none;
}

.tpe-widget .tpe-tab-bar-fill {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 0 3px 3px 0;
	background: var(--tpe-tc);
	transform: scaleX(0);
	transform-origin: left center;
}

/* Without running autoplay the active tab shows a full bar, like the original. */
.tpe-widget .tpe-shell:not(.is-autoplay) .tpe-tab.is-active .tpe-tab-bar-fill {
	transform: scaleX(1);
}

.tpe-widget .tpe-hint {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: auto 0 0;
	padding: 14px 4px 2px;
	color: #a9bcc6;
	font-family: var(--tpe-font-ui);
	font-size: 12.5px;
	font-weight: 500;
	line-height: 1.5;
}

.tpe-widget .tpe-hint svg {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	fill: none;
	stroke: var(--tpe-hint-icon, var(--tpe-accent));
	stroke-width: 1.6;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* ------------------------------------------------------------------
 * Visual area
 * ---------------------------------------------------------------- */
.tpe-widget .tpe-visual {
	grid-area: visual;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
	padding: 34px;
	overflow: hidden;
	isolation: isolate;
	background: #f6f2e6;
}

.tpe-widget .tpe-visual::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	z-index: 0;
	width: var(--tpe-orbit-size, 88%);
	aspect-ratio: 1 / 1;
	border: 1px var(--tpe-orbit-style, dashed) var(--tpe-orbit-color, rgba(10, 34, 50, 0.14));
	border-radius: 50%;
	opacity: var(--tpe-orbit-opacity, 1);
	transform: translate(-50%, -50%);
	animation: tpe-orbit var(--tpe-orbit-duration, 70s) linear infinite;
	pointer-events: none;
}

.tpe-widget .tpe-visual::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	z-index: 0;
	width: var(--tpe-glow-size, 62%);
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(60, 140, 192, 0.18), transparent 70%);
	background: radial-gradient(circle, color-mix(in srgb, var(--tpe-c) 18%, transparent), transparent 70%);
	opacity: var(--tpe-glow-opacity, 1);
	transform: translate(-50%, -50%);
	pointer-events: none;
}

.tpe-widget.tpe-no-orbit .tpe-visual::before,
.tpe-widget.tpe-no-glow .tpe-visual::after {
	display: none;
}

.tpe-widget.tpe-no-orbit-spin .tpe-visual::before {
	animation: none;
}

/*
 * One shared coordinate system: the image, dim layer, ring and click areas
 * all live in .tpe-diagram, which takes its height from the image itself.
 */
.tpe-widget .tpe-diagram {
	--tpe-x: var(--tpe-trust-x);
	--tpe-y: var(--tpe-trust-y);
	--tpe-d: var(--tpe-trust-ring);
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 360px;
	margin: 0 auto;
	line-height: 0;
}

.tpe-widget .tpe-diagram[data-active="expertise"] {
	--tpe-x: var(--tpe-expertise-x);
	--tpe-y: var(--tpe-expertise-y);
	--tpe-d: var(--tpe-expertise-ring);
}

.tpe-widget .tpe-diagram[data-active="empowerment"] {
	--tpe-x: var(--tpe-empowerment-x);
	--tpe-y: var(--tpe-empowerment-y);
	--tpe-d: var(--tpe-empowerment-ring);
}

.tpe-widget .tpe-image {
	position: relative;
	z-index: 1;
	display: block;
	width: 100%;
	height: auto;
	max-width: 100%;
	max-height: none;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	background: none;
	object-fit: contain;
}

.tpe-widget .tpe-dim-layer {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 2;
	overflow: hidden;
	pointer-events: none;
}

.tpe-widget .tpe-dim,
.tpe-widget .tpe-ring {
	position: absolute;
	left: calc(var(--tpe-x) * 1%);
	top: calc(var(--tpe-y) * 1%);
	width: calc(var(--tpe-d) * 1%);
	height: auto;
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	transform: translate(-50%, -50%);
	pointer-events: none;
	transition: left 0.6s var(--tpe-ease), top 0.6s var(--tpe-ease), width 0.6s var(--tpe-ease);
}

.tpe-widget .tpe-dim {
	box-shadow: 0 0 0 3000px var(--tpe-dim-color, rgba(246, 242, 230, 0.8));
}

.tpe-widget.tpe-no-dim .tpe-dim-layer {
	display: none;
}

.tpe-widget .tpe-ring {
	--tpe-ring-c: var(--tpe-accent);
	z-index: 3;
	border: var(--tpe-ring-w, 2px) solid var(--tpe-ring-c);
	box-shadow: 0 0 0 6px rgba(227, 164, 71, 0.14), 0 0 38px rgba(227, 164, 71, 0.45);
	box-shadow: 0 0 0 6px color-mix(in srgb, var(--tpe-ring-c) 14%, transparent), 0 0 38px color-mix(in srgb, var(--tpe-ring-c) 45%, transparent);
}

.tpe-widget.tpe-ring-pillar .tpe-ring {
	--tpe-ring-c: var(--tpe-c);
}

.tpe-widget.tpe-no-ring-glow .tpe-ring {
	box-shadow: none;
}

.tpe-widget .tpe-ring::after {
	content: "";
	position: absolute;
	top: calc(var(--tpe-ring-w, 2px) * -1);
	right: calc(var(--tpe-ring-w, 2px) * -1);
	bottom: calc(var(--tpe-ring-w, 2px) * -1);
	left: calc(var(--tpe-ring-w, 2px) * -1);
	border: var(--tpe-ring-w, 2px) solid var(--tpe-ring-c);
	border-radius: 50%;
	animation: tpe-ring-pulse var(--tpe-pulse-duration, 2.4s) ease-out infinite;
}

.tpe-widget.tpe-no-pulse .tpe-ring::after {
	display: none;
}

.tpe-widget .tpe-hit {
	-webkit-appearance: none;
	appearance: none;
	position: absolute;
	z-index: 4;
	display: block;
	height: auto;
	min-height: 0;
	aspect-ratio: 1 / 1;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	box-shadow: none;
	color: transparent;
	font-size: 0;
	line-height: 0;
	transform: translate(-50%, -50%);
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}

.tpe-widget .tpe-hit:hover,
.tpe-widget .tpe-hit:focus {
	background: transparent;
	color: transparent;
}

.tpe-widget .tpe-hit:hover {
	box-shadow: inset 0 0 0 2px rgba(10, 34, 50, 0.18);
}

.tpe-widget .tpe-hit.is-active,
.tpe-widget .tpe-hit.is-active:hover {
	box-shadow: none;
	cursor: default;
}

.tpe-widget .tpe-hit--trust {
	left: calc(var(--tpe-trust-hx, var(--tpe-trust-x)) * 1%);
	top: calc(var(--tpe-trust-hy, var(--tpe-trust-y)) * 1%);
	width: calc(var(--tpe-trust-hit) * 1%);
}

.tpe-widget .tpe-hit--expertise {
	left: calc(var(--tpe-expertise-hx, var(--tpe-expertise-x)) * 1%);
	top: calc(var(--tpe-expertise-hy, var(--tpe-expertise-y)) * 1%);
	width: calc(var(--tpe-expertise-hit) * 1%);
}

.tpe-widget .tpe-hit--empowerment {
	left: calc(var(--tpe-empowerment-hx, var(--tpe-empowerment-x)) * 1%);
	top: calc(var(--tpe-empowerment-hy, var(--tpe-empowerment-y)) * 1%);
	width: calc(var(--tpe-empowerment-hit) * 1%);
}

.tpe-widget .tpe-badge {
	position: absolute;
	left: 24px;
	bottom: 24px;
	z-index: 5;
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 9px 13px;
	border-radius: 999px;
	background: #fffdf8;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
	color: #173d54;
	font-family: var(--tpe-font-ui);
	font-size: 10.5px;
	font-weight: 800;
	line-height: 1.3;
	letter-spacing: 0.02em;
}

.tpe-widget .tpe-badge-dot {
	flex: 0 0 auto;
	width: var(--tpe-badge-dot, 7px);
	height: var(--tpe-badge-dot, 7px);
	border-radius: 50%;
	background: var(--tpe-c);
	transition: background-color 0.4s;
}

/* ------------------------------------------------------------------
 * Content panel
 * ---------------------------------------------------------------- */
.tpe-widget .tpe-content {
	grid-area: content;
	position: relative;
	display: flex;
	align-items: center;
	min-width: 0;
	padding: 54px 50px;
	overflow: hidden;
	background: var(--tpe-content-bg, #fffdf8);
	background: linear-gradient(160deg, var(--tpe-ct), var(--tpe-content-bg, #fffdf8) 60%);
}

.tpe-widget.tpe-no-tint .tpe-content {
	background: var(--tpe-content-bg, #fffdf8);
}

.tpe-widget .tpe-panel {
	position: relative;
	display: block;
	width: 100%;
}

.tpe-widget .tpe-panel[hidden] {
	display: none;
}

.tpe-widget .tpe-panel.is-active {
	animation: tpe-panel-in 0.35s ease both;
}

.tpe-widget .tpe-panel:focus {
	outline: none;
}

.tpe-widget .tpe-panel-num {
	position: absolute;
	right: -6px;
	top: -40px;
	z-index: 0;
	font-family: var(--tpe-font-display);
	font-size: 150px;
	font-weight: 400;
	line-height: 1;
	letter-spacing: -0.05em;
	color: var(--tpe-cd);
	opacity: 0.07;
	pointer-events: none;
	-webkit-user-select: none;
	user-select: none;
}

.tpe-widget.tpe-no-number .tpe-panel-num {
	display: none;
}

.tpe-widget .tpe-panel-label {
	position: relative;
	font-family: var(--tpe-font-ui);
	font-size: 10.5px;
	font-weight: 800;
	line-height: 1.4;
	letter-spacing: 0.11em;
	text-transform: none;
	color: var(--tpe-cd);
}

.tpe-widget .tpe-heading {
	position: relative;
	margin: 10px 0 12px;
	padding: 0;
	font-family: var(--tpe-font-display);
	font-size: clamp(34px, 3.4vw, 50px);
	font-weight: 500;
	line-height: 1.08;
	letter-spacing: -0.012em;
	text-transform: none;
	color: #102f43;
}

.tpe-widget .tpe-desc {
	position: relative;
	max-width: 590px;
	margin: 0 0 10px;
	padding: 0;
	font-family: var(--tpe-font-serif);
	font-size: 17px;
	line-height: 1.72;
	color: #4d5b64;
	font-feature-settings: "kern", "liga";
}

.tpe-widget .tpe-chapters {
	position: relative;
	display: grid;
	grid-template-columns: repeat(var(--tpe-chapter-cols, 2), minmax(0, 1fr));
	gap: 8px;
	margin: 26px 0;
	padding: 0;
	list-style: none;
}

.tpe-widget .tpe-chapter-item {
	min-width: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tpe-widget .tpe-chapter-item::before,
.tpe-widget .tpe-chapter-item::after {
	content: none;
}

.tpe-widget .tpe-panel.is-active .tpe-chapter-item {
	animation: tpe-chip-in 0.45s cubic-bezier(0.2, 0.8, 0.2, 1) both;
	animation-delay: calc(var(--tpe-i, 0) * 50ms + 50ms);
}

.tpe-widget .tpe-chapter {
	display: flex;
	align-items: center;
	gap: 12px;
	height: 100%;
	padding: 10px 14px 10px 10px;
	border: 1px solid rgba(10, 34, 50, 0.08);
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.85);
	box-shadow: 0 4px 12px rgba(7, 25, 35, 0.04);
	color: #16323f;
	font-family: var(--tpe-font-ui);
	font-size: 13.5px;
	font-weight: 600;
	line-height: 1.35;
	text-decoration: none;
	-webkit-tap-highlight-color: transparent;
	transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s, background-color 0.2s, color 0.2s;
}

.tpe-widget a.tpe-chapter:hover,
.tpe-widget a.tpe-chapter:focus-visible {
	transform: translateY(-2px);
	border-color: rgba(10, 34, 50, 0.2);
	border-color: color-mix(in srgb, var(--tpe-c) 45%, transparent);
	background: #fff;
	box-shadow: 0 12px 24px rgba(7, 25, 35, 0.09);
	color: #0a2232;
	text-decoration: none;
}

.tpe-widget.tpe-no-card-move a.tpe-chapter:hover,
.tpe-widget.tpe-no-card-move a.tpe-chapter:focus-visible {
	transform: none;
}

.tpe-widget .tpe-chapter-num {
	flex: 0 0 auto;
	display: grid;
	place-items: center;
	width: 32px;
	height: 32px;
	border-radius: 10px;
	background: var(--tpe-ct);
	color: var(--tpe-cd);
	font-family: var(--tpe-font-display);
	font-size: 15px;
	font-weight: 400;
	line-height: 1;
	transition: background-color 0.2s, color 0.2s;
}

.tpe-widget a.tpe-chapter:hover .tpe-chapter-num,
.tpe-widget a.tpe-chapter:focus-visible .tpe-chapter-num {
	background: var(--tpe-cd);
	color: #fff;
}

.tpe-widget .tpe-chapter-title {
	min-width: 0;
	overflow-wrap: anywhere;
}

.tpe-widget .tpe-chapter-arrow {
	margin-left: auto;
	color: var(--tpe-cd);
	opacity: 0;
	transform: translateX(-4px);
	transition: opacity 0.2s, transform 0.2s;
}

.tpe-widget a.tpe-chapter:hover .tpe-chapter-arrow,
.tpe-widget a.tpe-chapter:focus-visible .tpe-chapter-arrow {
	opacity: 1;
	transform: none;
}

.tpe-widget.tpe-no-arrow .tpe-chapter-arrow {
	display: none;
}

.tpe-widget .tpe-cta {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	padding: 13px 20px;
	border: 0;
	border-radius: 999px;
	background-color: var(--tpe-cd);
	box-shadow: 0 12px 26px rgba(10, 34, 50, 0.2);
	box-shadow: 0 12px 26px color-mix(in srgb, var(--tpe-cd) 35%, transparent);
	color: #fff;
	font-family: var(--tpe-font-ui);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.3;
	text-decoration: none;
	transition: transform 0.2s, background-color 0.4s, color 0.2s, box-shadow 0.2s;
}

.tpe-widget .tpe-cta:hover,
.tpe-widget .tpe-cta:focus-visible {
	transform: translateY(-2px);
	color: #fff;
	text-decoration: none;
}

/* ------------------------------------------------------------------
 * Focus
 * ---------------------------------------------------------------- */
.tpe-widget .tpe-tab:focus-visible,
.tpe-widget .tpe-hit:focus-visible,
.tpe-widget .tpe-chapter:focus-visible,
.tpe-widget .tpe-cta:focus-visible {
	outline: 2px solid var(--tpe-accent);
	outline-offset: 3px;
}

.tpe-widget .tpe-panel:focus-visible {
	outline: 2px solid var(--tpe-accent);
	outline-offset: 6px;
	border-radius: 8px;
}

/* ------------------------------------------------------------------
 * RTL
 * ---------------------------------------------------------------- */
[dir="rtl"] .tpe-widget .tpe-tab {
	text-align: right;
}

[dir="rtl"] .tpe-widget .tpe-tab-bar-fill {
	transform-origin: right center;
	border-radius: 3px 0 0 3px;
}

[dir="rtl"] .tpe-widget .tpe-chapter-arrow {
	margin-left: 0;
	margin-right: auto;
	transform: scaleX(-1) translateX(-4px);
}

[dir="rtl"] .tpe-widget a.tpe-chapter:hover .tpe-chapter-arrow {
	transform: scaleX(-1);
}

/* ------------------------------------------------------------------
 * Responsive fallbacks (used when Elementor's generated CSS is not present;
 * Elementor's own responsive values are more specific and win).
 * ---------------------------------------------------------------- */
@media (max-width: 1024px) {
	.tpe-widget .tpe-shell {
		--tpe-cols: minmax(0, 1fr);
		--tpe-areas: "nav" "visual" "content";
		--tpe-rows: auto;
		min-height: 0;
	}

	.tpe-widget .tpe-visual,
	.tpe-widget .tpe-hint {
		display: none;
	}

	.tpe-widget .tpe-content {
		padding: 34px 26px;
	}
}

@media (max-width: 767px) {
	.tpe-widget .tpe-nav {
		padding: 12px;
	}

	.tpe-widget .tpe-chapters {
		--tpe-chapter-cols: 1;
	}

	.tpe-widget .tpe-content {
		padding: 28px 20px;
	}

	.tpe-widget .tpe-panel-num {
		top: -20px;
		font-size: 110px;
	}

	.tpe-widget .tpe-badge {
		left: 14px;
		bottom: 14px;
	}
}

/* ------------------------------------------------------------------
 * Reduced motion
 * ---------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	.tpe-widget .tpe-visual::before,
	.tpe-widget .tpe-ring::after,
	.tpe-widget .tpe-panel.is-active,
	.tpe-widget .tpe-panel.is-active .tpe-chapter-item {
		animation: none;
	}

	.tpe-widget .tpe-tab,
	.tpe-widget .tpe-tab-dot,
	.tpe-widget .tpe-tab-tagline,
	.tpe-widget .tpe-ring,
	.tpe-widget .tpe-dim,
	.tpe-widget .tpe-badge-dot,
	.tpe-widget .tpe-chapter,
	.tpe-widget .tpe-chapter-num,
	.tpe-widget .tpe-chapter-arrow,
	.tpe-widget .tpe-cta {
		transition: none;
	}

	.tpe-widget .tpe-tab:hover,
	.tpe-widget a.tpe-chapter:hover,
	.tpe-widget a.tpe-chapter:focus-visible,
	.tpe-widget .tpe-cta:hover,
	.tpe-widget .tpe-cta:focus-visible {
		transform: none;
	}
}

/* ------------------------------------------------------------------
 * Keyframes (prefixed to avoid clashing with theme animations)
 * ---------------------------------------------------------------- */
@keyframes tpe-orbit {
	from {
		transform: translate(-50%, -50%) rotate(0deg);
	}
	to {
		transform: translate(-50%, -50%) rotate(360deg);
	}
}

@keyframes tpe-ring-pulse {
	0% {
		transform: scale(1);
		opacity: 0.7;
	}
	100% {
		transform: scale(1.18);
		opacity: 0;
	}
}

@keyframes tpe-panel-in {
	0% {
		opacity: 0;
		transform: translateY(7px);
	}
	100% {
		opacity: 1;
		transform: none;
	}
}

@keyframes tpe-chip-in {
	0% {
		opacity: 0;
		transform: translateY(10px);
	}
	100% {
		opacity: 1;
		transform: none;
	}
}
