.epaw-ts {
	--epaw-green: #1E7A4A;
	--epaw-green-deep: #155E39;
	--epaw-green-soft: #E6F3EB;
	--epaw-navy: #10334A;
	--epaw-ink: #22323D;
	--epaw-muted: #5A6E7A;
	--epaw-line: #E6EEE9;
	--epaw-font-display: 'Poppins', ui-sans-serif, system-ui, -apple-system, sans-serif;
	--epaw-font-body: 'Inter', system-ui, -apple-system, sans-serif;

	background: #fff;
	color: var(--epaw-ink);
	font-family: var(--epaw-font-body);
}

.epaw-ts *,
.epaw-ts *::before,
.epaw-ts *::after { box-sizing: border-box; }

.epaw-ts__container {
	max-width: var(--epaw-content-width, 1300px);
	margin-inline: auto;
	padding-inline: 24px;
}

/* Match the homepage hero (.epaw-hero) height so the trek page title banner
   reads as a full-height featured image, and center the title block on the
   image. Scoped to .epaw-ts so it wins over page-title.css (same source order). */
.epaw-ts .epaw-page-hero--catalog {
	min-height: 90vh;
	align-items: center;
	padding-top: 132px;
	padding-bottom: 132px;
}

/* ---------------------------------------------------------
   Sticky section nav
   --------------------------------------------------------- */
.epaw-ts-nav {
	position: sticky;
	top: var(--epaw-ts-nav-top, 78px);
	z-index: 30;
	background: #fff;
	border-bottom: 1px solid var(--epaw-line);
	box-shadow: 0 8px 20px rgba(16, 51, 74, .05);
}

.epaw-ts-nav__inner {
	display: flex;
	align-items: center;
	gap: 28px;
	min-height: 66px;
}

.epaw-ts-nav__link {
	display: inline-flex;
	align-items: center;
	padding: 22px 0;
	border-bottom: 3px solid transparent;
	margin-bottom: -1px;
	font-family: var(--epaw-font-display);
	font-weight: 600;
	font-size: .98rem;
	color: var(--epaw-muted);
	text-decoration: none;
	transition: color .2s, border-color .2s;
}

.epaw-ts-nav__link:hover { color: var(--epaw-green); }

.epaw-ts-nav__link.is-active {
	color: var(--epaw-green);
	border-bottom-color: var(--epaw-green);
}

.epaw-ts-nav__book {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	margin-left: auto;
	padding: 11px 22px;
	border-radius: 10px;
	background: var(--epaw-green);
	color: #fff;
	font-family: var(--epaw-font-display);
	font-weight: 600;
	font-size: .92rem;
	line-height: 1.2;
	text-decoration: none;
	transition: background .25s, transform .25s, box-shadow .25s;
}

.epaw-ts-nav__book svg {
	width: 17px;
	height: 17px;
	flex: none;
}

.epaw-ts-nav__book:hover {
	background: var(--epaw-green-deep);
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 12px 26px rgba(21, 94, 57, .28);
}

/* ---------------------------------------------------------
   Body + sections
   --------------------------------------------------------- */
.epaw-ts-body {
	max-width: var( --epaw-content-width, 1300px );
	margin-inline: auto;
	padding: 56px 24px 104px;
}

/* Wins over the theme's `section[id]{scroll-margin-top}` so anchored sections
   clear the sticky nav (and the fixed header, when the theme has one). */
.epaw-ts-body .epaw-ts-section { scroll-margin-top: calc(var(--epaw-ts-nav-top, 78px) + 92px); }

.epaw-ts-section + .epaw-ts-section { margin-top: 52px; }

.epaw-ts-section__title {
	margin: 0 0 18px;
	font-family: var(--epaw-font-display);
	font-weight: 700;
	font-size: clamp(1.4rem, 2.6vw, 1.9rem);
	line-height: 1.25;
	color: var(--epaw-navy);
}

.epaw-ts-overview {
	font-size: 1.03rem;
	line-height: 1.75;
	color: #4A5A64;
}

.epaw-ts-overview p { margin: 0 0 1.1em; }
.epaw-ts-overview p:last-child { margin-bottom: 0; }

/* ---------------------------------------------------------
   Highlights
   --------------------------------------------------------- */
.epaw-ts-highlights {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px;
}

.epaw-ts-highlight {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
	padding: 26px 18px;
	border: 1px solid #E6F0E9;
	border-radius: 14px;
	background: #F4F9F5;
	text-align: center;
}

.epaw-ts-highlight__icon {
	display: grid;
	place-items: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--epaw-green-soft);
	color: var(--epaw-green);
}

.epaw-ts-highlight__icon svg {
	width: 28px;
	height: 28px;
}

.epaw-ts-highlight__text {
	margin: 0;
	font-family: var(--epaw-font-display);
	font-weight: 500;
	font-size: .95rem;
	line-height: 1.4;
	color: var(--epaw-ink);
}

/* ---------------------------------------------------------
   Itinerary timeline
   --------------------------------------------------------- */
.epaw-ts-itinerary {
	position: relative;
	list-style: none;
	margin: 0;
	padding: 0 0 0 34px;
	display: grid;
	gap: 16px;
}

.epaw-ts-itinerary::before {
	content: '';
	position: absolute;
	left: 10px;
	top: 20px;
	bottom: 20px;
	width: 2px;
	background: #DCE7DF;
}

.epaw-ts-day {
	position: relative;
	padding: 16px 20px 18px;
	border: 1px solid var(--epaw-line);
	border-radius: 14px;
	background: #fff;
}

.epaw-ts-day::before {
	content: '';
	position: absolute;
	left: -30px;
	top: 28px;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: var(--epaw-green);
	box-shadow: 0 0 0 4px var(--epaw-green-soft);
}

.epaw-ts-day__head {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 16px;
	width: 100%;
	padding: 0;
	border: 0;
	background: none;
	font: inherit;
	text-align: left;
	cursor: pointer;
}

.epaw-ts-day__badge {
	padding: 7px 14px;
	border-radius: 8px;
	background: var(--epaw-green-soft);
	color: var(--epaw-green-deep);
	font-family: var(--epaw-font-display);
	font-weight: 700;
	font-size: .82rem;
	white-space: nowrap;
}

.epaw-ts-day__title {
	font-family: var(--epaw-font-display);
	font-weight: 700;
	font-size: 1.05rem;
	line-height: 1.3;
	color: var(--epaw-navy);
}

.epaw-ts-day__chevron {
	display: inline-flex;
	color: var(--epaw-muted);
	transition: transform .3s;
}

.epaw-ts-day__chevron svg {
	width: 20px;
	height: 20px;
}

/* Points down while the day is open (matches the design); flips up when collapsed. */
.epaw-ts-day:not(.is-open) .epaw-ts-day__chevron { transform: rotate(180deg); }

.epaw-ts-day__panel { margin-top: 12px; }

.epaw-ts-day:not(.is-open) .epaw-ts-day__panel { display: none; }

.epaw-ts-day__text {
	margin: 0;
	font-size: .96rem;
	line-height: 1.65;
	color: #4A5A64;
}

.epaw-ts-day__stats {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 34px;
	margin: 16px 0 0;
	padding: 0;
	list-style: none;
}

.epaw-ts-day__stats li {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: .9rem;
	color: var(--epaw-muted);
}

.epaw-ts-day__stat-icon {
	display: inline-flex;
	color: var(--epaw-green);
}

.epaw-ts-day__stat-icon svg {
	width: 18px;
	height: 18px;
}

.epaw-ts-day__stat-value {
	font-weight: 600;
	color: var(--epaw-ink);
}

/* ---------------------------------------------------------
   Responsive
   --------------------------------------------------------- */
@media (max-width: 1024px) {

	.epaw-ts-highlights { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {

	.epaw-ts-nav__inner {
		gap: 20px;
		min-height: 60px;
	}

	.epaw-ts-nav__link {
		padding: 18px 0;
		font-size: .9rem;
	}

	.epaw-ts-nav__book {
		padding: 10px 16px;
		font-size: .85rem;
	}

	.epaw-ts-body { padding: 40px 20px 72px; }

	.epaw-ts-section + .epaw-ts-section { margin-top: 40px; }

	.epaw-ts-highlights { grid-template-columns: 1fr; }

	.epaw-ts-itinerary { padding-left: 26px; }

	.epaw-ts-itinerary::before { left: 4px; }

	.epaw-ts-day::before { left: -28px; }

	.epaw-ts-day { padding: 14px 16px 16px; }

	.epaw-ts-day__head { gap: 12px; }
}

@media (prefers-reduced-motion: reduce) {

	.epaw-ts-nav__link,
	.epaw-ts-nav__book,
	.epaw-ts-day__chevron { transition: none; }
}
