.ptw-intro {
	font-size: 15px;
	color: #6b6259;
	text-align: center;
	margin-bottom: 32px;
}

.ptw-timeline {
	--ptw-line-color: #e8d5c8;
	--ptw-line-width: 2px;
	--ptw-marker-slot: 26px;
	--ptw-marker-border-width: 2px;
	--ptw-marker-active-bg: #cc8863;
	--ptw-marker-active-border: #cc8863;
	--ptw-marker-active-size: 20px;
	--ptw-marker-upcoming-bg: #ffffff;
	--ptw-marker-upcoming-border: #e8d5c8;
	--ptw-marker-upcoming-size: 18px;
	--ptw-card-gap: 24px;

	position: relative;
	max-width: 760px;
	width: 100%;
}

.ptw-timeline::before {
	content: '';
	position: absolute;
	top: 6px;
	bottom: 6px;
	left: calc(var(--ptw-marker-slot) / 2);
	width: 0;
	border-left: var(--ptw-line-width) var(--ptw-line-color);
}

.ptw-timeline.ptw-line-solid::before  { border-left-style: solid; }
.ptw-timeline.ptw-line-dashed::before { border-left-style: dashed; }
.ptw-timeline.ptw-line-dotted::before { border-left-style: dotted; }

.ptw-item {
	position: relative;
	display: flex;
	align-items: flex-start;
	margin-bottom: 48px;
}

.ptw-item:last-child {
	margin-bottom: 0;
}

.ptw-rail {
	flex: 0 0 var(--ptw-marker-slot);
	width: var(--ptw-marker-slot);
	display: flex;
	justify-content: center;
	padding-top: 28px;
	position: relative;
	z-index: 2;
}

.ptw-marker {
	border-radius: 50%;
	box-sizing: border-box;
	transition: background-color 0.25s ease, border-color 0.25s ease, width 0.25s ease, height 0.25s ease;
}

.ptw-marker--active {
	width: var(--ptw-marker-active-size);
	height: var(--ptw-marker-active-size);
	background: var(--ptw-marker-active-bg);
	border: var(--ptw-marker-border-width) solid var(--ptw-marker-active-border);
}

.ptw-marker--upcoming {
	width: var(--ptw-marker-upcoming-size);
	height: var(--ptw-marker-upcoming-size);
	background: var(--ptw-marker-upcoming-bg);
	border: var(--ptw-marker-border-width) solid var(--ptw-marker-upcoming-border);
}

.ptw-timeline.ptw-hover-fill .ptw-item:hover .ptw-marker--upcoming,
.ptw-timeline.ptw-hover-fill .ptw-item:focus-within .ptw-marker--upcoming {
	background: var(--ptw-marker-active-bg);
	border-color: var(--ptw-marker-active-border);
}

.ptw-card {
	flex: 1 1 auto;
	min-width: 0;
	margin-left: var(--ptw-card-gap);
	background: #ffffff;
	border: 1px solid #f1e6dd;
	border-radius: 14px;
	padding: 28px 32px;
	box-shadow: 0 4px 18px rgba(30, 20, 10, 0.05);
	box-sizing: border-box;
}

.ptw-week-label {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #c98a5e;
	margin-bottom: 6px;
}

.ptw-title {
	font-size: 22px;
	font-weight: 700;
	line-height: 1.3;
	color: #1f1a17;
	margin: 0 0 18px 0;
}

.ptw-outcome {
	background: #fbf3ee;
	border: 1px solid #f0e1d6;
	color: #8a5c3e;
	border-radius: 10px;
	padding: 14px 18px;
	font-size: 14px;
	line-height: 1.6;
	margin-bottom: 20px;
	box-sizing: border-box;
}

.ptw-outcome strong {
	font-weight: 700;
	margin-right: 4px;
}

.ptw-checklist {
	list-style: none;
	margin: 0;
	padding: 0;
	column-count: 2;
	column-gap: 32px;
}

.ptw-checklist li {
	position: relative;
	padding-left: 26px;
	margin-bottom: 14px;
	font-size: 14px;
	line-height: 1.5;
	color: #4a4038;
	break-inside: avoid;
}

.ptw-checklist li::before {
    content: '\2713' !important;
    position: absolute !important;
    left: 0 !important;
    top: 3px !important;
    width: 17px !important;
    height: 17px !important;
    line-height: 15px !important;
    text-align: center !important;
    font-size: 10px !important;
    color: #d99a72 !important;
    border: 1.5px solid #d99a72 !important;
    border-radius: 4px !important;
    box-sizing: border-box !important;
}

/* Elementor inline-editing affordance: make it obvious text is editable on hover in editor */
.elementor-editor-active .ptw-week-label[contenteditable="true"]:hover,
.elementor-editor-active .ptw-title[contenteditable="true"]:hover,
.elementor-editor-active .ptw-outcome-text[contenteditable="true"]:hover,
.elementor-editor-active .ptw-outcome-prefix[contenteditable="true"]:hover,
.elementor-editor-active .ptw-intro[contenteditable="true"]:hover {
	outline: 1px dashed rgba(204, 136, 99, 0.6);
	outline-offset: 3px;
	cursor: text;
}

/* Scroll reveal animation (optional, toggled by widget setting) */
.ptw-timeline.ptw-animate .ptw-item {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 0.6s ease, transform 0.6s ease;
}

.ptw-timeline.ptw-animate .ptw-item.ptw-in-view {
	opacity: 1;
	transform: translateY(0);
}

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
	.ptw-card {
		padding: 24px 26px;
	}
	.ptw-title {
		font-size: 20px;
	}
}

@media (max-width: 767px) {
	.ptw-card {
		padding: 20px 20px;
	}
	.ptw-title {
		font-size: 18px;
	}
	.ptw-checklist {
		column-count: 1 !important;
	}
	.ptw-item {
		margin-bottom: 32px;
	}
	.ptw-rail {
		padding-top: 22px;
	}
}

@media (max-width: 480px) {
	.ptw-card {
		padding: 16px 16px;
		border-radius: 10px;
	}
	.ptw-week-label {
		font-size: 11px;
	}
	.ptw-title {
		font-size: 17px;
	}
	.ptw-outcome {
		font-size: 13px;
		padding: 12px 14px;
	}
}
