/* Editable TTBM post_content presentation inspired by the supplied tour format. */
.esp-tour-description {
	--description-surface: #fff;
	--description-soft: #f4f8f4;
	--description-line: #dde5de;
	display: grid;
	gap: 30px;
	margin-bottom: 58px;
}

.esp-tour-description__intro,
.esp-tour-description__section {
	position: relative;
	z-index: 0;
	padding: clamp(26px, 4vw, 44px);
	border: 1px solid var(--description-line);
	border-radius: 30px;
	background: linear-gradient(180deg, #ffffff 0%, #fbfcfb 100%);
	box-shadow: 0 16px 42px rgba(32, 55, 42, .07);
}

.esp-tour-description__intro::before,
.esp-tour-description__section::before {
	position: absolute;
	z-index: -1;
	inset: 12px -10px -12px 10px;
	content: "";
	border-radius: inherit;
	background: #fce6d5;
}

.esp-tour-description__section:nth-of-type(3n)::before { background: #dfeee5; }
.esp-tour-description__section:nth-of-type(3n + 1)::before { background: #f6e7dc; }

.esp-tour-description .section-kicker {
	margin: 0 0 10px !important;
	color: var(--orange-dark) !important;
}

.esp-tour-description__intro > h2,
.esp-tour-description__section > h2 {
	margin: 0 0 26px !important;
	padding: 0 0 15px !important;
	border: 0 !important;
	border-bottom: 2px solid var(--orange) !important;
	background: transparent !important;
	color: var(--forest) !important;
	font-family: var(--sans) !important;
	font-size: clamp(1.45rem, 2.6vw, 2rem) !important;
	font-weight: 800 !important;
	letter-spacing: -.01em !important;
	line-height: 1.15 !important;
}

.esp-tour-description__intro > h2 { max-width: 600px; font-size: clamp(1.9rem, 3.4vw, 2.7rem) !important; }
.esp-tour-description__intro > p:not(.section-kicker):first-of-type { color: #3f4c44 !important; font-size: 1.08rem !important; line-height: 1.7 !important; }

.esp-tour-description h3,
.esp-tour-description h4 {
	margin: 26px 0 12px !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	color: var(--forest) !important;
	font-family: var(--sans) !important;
	font-size: 1.14rem !important;
	font-style: normal !important;
	font-weight: 800 !important;
	line-height: 1.3 !important;
	text-align: left !important;
}
.esp-tour-description h3:first-child,
.esp-tour-description h4:first-child { margin-top: 0 !important; }

.esp-tour-description p,
.esp-tour-description li,
.esp-tour-description blockquote {
	color: #465249 !important;
	font-family: var(--sans) !important;
	font-size: .98rem !important;
	line-height: 1.75 !important;
}
.esp-tour-description p { margin: 0 0 14px !important; }
.esp-tour-description p:last-child { margin-bottom: 0 !important; }

.esp-tour-description ul,
.esp-tour-description ol { margin: 15px 0 5px !important; padding: 0 !important; list-style: none !important; }
.esp-tour-description li { position: relative; margin: 0 !important; padding: 7px 0 7px 28px !important; }
.esp-tour-description ul > li::before {
	position: absolute;
	top: 7px;
	left: 2px;
	content: "\2713";
	color: var(--orange-dark);
	font-weight: 900;
}
.esp-tour-description ol { counter-reset: esp-description-list; }
.esp-tour-description ol > li { counter-increment: esp-description-list; }
.esp-tour-description ol > li::before {
	position: absolute;
	left: 0;
	content: counter(esp-description-list) ".";
	color: var(--orange-dark);
	font-weight: 850;
}

.esp-tour-description a { color: var(--forest); text-decoration-color: var(--orange); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.esp-tour-description img { height: auto; border-radius: 22px; }
.ttbm_style .esp-tour-description img[src*="fonts.gstatic.com/s/e/notoemoji/"] {
	display: inline-block;
	width: 1em !important;
	height: 1em !important;
	max-width: 1em !important;
	margin: 0 .12em;
	border-radius: 0;
	object-fit: contain;
	vertical-align: -.12em;
}
.esp-tour-description iframe,
.esp-tour-description video { width: 100%; min-height: 380px; border: 0; border-radius: 22px; background: #122d23; }

.esp-tour-description__nav {
	position: sticky;
	top: 10px;
	z-index: 20;
	display: flex;
	gap: 20px;
	overflow-x: auto;
	padding: 15px 20px;
	border: 1px solid var(--description-line);
	border-radius: 18px;
	background: rgba(255, 255, 255, .96);
	box-shadow: 0 10px 30px rgba(32, 55, 42, .08);
	scrollbar-width: thin;
}

.esp-tour-description__nav a {
	flex: 0 0 auto;
	padding-bottom: 4px;
	border-bottom: 2px solid transparent;
	color: #435048;
	font-size: .76rem;
	font-weight: 800;
	text-decoration: none;
}
.esp-tour-description__nav a:hover,
.esp-tour-description__nav a:focus { border-bottom-color: var(--orange); color: var(--forest); }

/* Hero-style intro (dark gradient + chips), matching the reference. */
.esp-tour-description__hero {
	padding: clamp(32px, 5vw, 58px) clamp(24px, 4vw, 46px);
	border-radius: 28px;
	background:
		radial-gradient(circle at 82% 12%, rgba(217, 87, 43, .28), transparent 42%),
		linear-gradient(125deg, #1c2620 0%, #2c3a2f 58%, #3c2a1d 100%);
	color: #fff;
	text-align: center;
}
/* Gallery photo behind the hero, with a dark overlay for legibility. */
.esp-tour-description__hero.has-photo {
	background:
		linear-gradient(125deg, rgba(20, 26, 22, .72), rgba(28, 38, 30, .58) 55%, rgba(60, 42, 29, .62)),
		radial-gradient(circle at 82% 12%, rgba(217, 87, 43, .26), transparent 45%),
		var(--hero-photo) center / cover no-repeat;
}
.esp-tour-description__hero .section-kicker { color: var(--orange) !important; text-align: center !important; }
.esp-tour-description__hero > h2 {
	margin: 0 auto 18px !important;
	padding: 0 !important;
	border: 0 !important;
	color: #fff !important;
	font-family: var(--sans) !important;
	font-size: clamp(1.85rem, 4vw, 3rem) !important;
	font-weight: 850 !important;
	letter-spacing: -.015em !important;
	line-height: 1.1 !important;
	text-align: center !important;
}
.esp-tour-description .esp-tour-description__hero > p:not(.section-kicker) {
	max-width: 730px;
	margin: 0 auto !important;
	color: #fff !important;
	font-size: 1.06rem !important;
	text-shadow: 0 1px 12px rgba(0, 0, 0, .55) !important;
}
.esp-tour-description .esp-tour-description__hero > h2 { text-shadow: 0 2px 16px rgba(0, 0, 0, .4); }
.esp-tour-description__chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 9px; margin-top: 24px; }
.esp-tour-description__chips span {
	padding: 8px 13px;
	border: 1px solid rgba(255, 255, 255, .22);
	border-radius: 999px;
	background: rgba(255, 255, 255, .1);
	color: #fff;
	font-size: .82rem;
	font-weight: 800;
}
/* Trust bar. */
.esp-tour-description__trust {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 1px;
	overflow: hidden;
	border: 1px solid var(--description-line);
	border-radius: 16px;
	background: var(--description-line);
}
.esp-tour-description__trust div { padding: 16px 10px; background: #fff; color: var(--forest); font-size: .78rem; font-weight: 800; text-align: center; }

/* Centered section headings (kicker + title), closer to the reference layout. */
.esp-tour-description__intro > .section-kicker,
.esp-tour-description__section > .section-kicker { text-align: center !important; }
.esp-tour-description__intro > h2,
.esp-tour-description__section > h2 {
	border-bottom: 0 !important;
	text-align: center !important;
}
.esp-tour-description__intro > h2::after,
.esp-tour-description__section > h2::after {
	display: block;
	width: 78px;
	height: 4px;
	margin: 16px auto 0;
	border-radius: 999px;
	background: linear-gradient(90deg, var(--orange), var(--orange-dark));
	content: "";
}
.esp-tour-description__intro > p { max-width: 720px; margin-inline: auto; text-align: center; }

.esp-tour-description__feature-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
	text-align: left;
}
.esp-tour-description__feature-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.esp-tour-description__feature-grid article,
.esp-tour-description__columns > div {
	padding: 24px;
	border: 1px solid var(--description-line);
	border-radius: 20px;
	background: linear-gradient(165deg, #ffffff 0%, #f4f8f4 100%);
	box-shadow: 0 8px 22px rgba(32, 55, 42, .05);
}
.esp-tour-description__feature-grid article {
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.esp-tour-description__feature-grid article:hover {
	transform: translateY(-3px);
	border-color: #e7cdb9;
	box-shadow: 0 16px 34px rgba(173, 61, 29, .12);
}
.esp-tour-description__feature-grid h3,
.esp-tour-description__columns h3 {
	margin: 0 0 14px !important;
	padding-bottom: 10px !important;
	border-bottom: 2px solid #ecd7c6 !important;
	font-size: 1.05rem !important;
}
.esp-tour-description__columns ul,
.esp-tour-description__feature-grid ul { margin-top: 0 !important; }
.esp-tour-description__feature-grid .icon,
.esp-tour-description__columns .icon {
	display: grid;
	place-items: center;
	width: 46px;
	height: 46px;
	margin-bottom: 12px;
	border-radius: 14px;
	background: linear-gradient(135deg, #fce6d5, #f7cdae);
	font-size: 1.5rem;
	line-height: 1;
}
/* Optional × checklist for "no incluye" style lists. */
.esp-tour-description .not-included li::before { content: "\00d7"; color: var(--orange-dark); }

.esp-tour-description__columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }

.esp-tour-description__timeline { display: grid; gap: 0; counter-reset: esp-tl; }
.esp-tour-description__timeline article {
	position: relative;
	display: grid;
	grid-template-columns: 54px minmax(0, 1fr);
	gap: 16px;
	padding-bottom: 22px;
	counter-increment: esp-tl;
}
/* Number badges are generated by CSS so no digits live in the tour text. */
.esp-tour-description__timeline article > span:empty::before { content: counter(esp-tl); }
.esp-tour-description__timeline article:not(:last-child)::after {
	position: absolute;
	top: 48px;
	bottom: 0;
	left: 25px;
	width: 2px;
	content: "";
	background: #d7e0d9;
}
.esp-tour-description__timeline article > span {
	position: relative;
	z-index: 1;
	display: grid;
	width: 52px;
	height: 52px;
	place-items: center;
	border-radius: 14px;
	background: linear-gradient(135deg, var(--orange), var(--orange-dark));
	box-shadow: 0 9px 20px rgba(173, 61, 29, .28);
	color: #fff;
	font-size: 1.15rem;
	font-weight: 900;
}
.esp-tour-description__timeline article > div {
	padding: 18px 22px;
	border: 1px solid var(--description-line);
	border-radius: 18px;
	background: linear-gradient(180deg, #fff, #fbfaf8);
	box-shadow: 0 8px 22px rgba(32, 55, 42, .05);
	transition: transform .2s ease, box-shadow .2s ease;
}
.esp-tour-description__timeline article > div:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(32, 55, 42, .1); }
.esp-tour-description__timeline article strong { color: var(--orange-dark); font-size: .76rem; letter-spacing: .03em; text-transform: uppercase; }
.esp-tour-description__timeline article h3 { margin: 5px 0 7px !important; }
.esp-tour-description__timeline article p:last-child { margin-bottom: 0; }

.esp-tour-description details {
	margin: 10px 0;
	overflow: hidden;
	border: 1px solid var(--description-line);
	border-radius: 17px;
	background: #fff;
}
.esp-tour-description summary { position: relative; padding: 17px 50px 17px 18px; color: var(--forest); cursor: pointer; font-weight: 800; list-style: none; }
.esp-tour-description summary::-webkit-details-marker { display: none; }
.esp-tour-description summary::after { position: absolute; top: 15px; right: 18px; content: "+"; color: var(--orange-dark); font-size: 1.3rem; font-weight: 500; }
.esp-tour-description details[open] summary::after { content: "\2212"; }
.esp-tour-description details > *:not(summary) { margin-right: 18px !important; margin-left: 18px !important; }

.esp-tour-description__section > div[style],
.esp-tour-description__intro > div[style] { background: transparent !important; color: inherit !important; }

/* Translated legacy descriptions are normalized in the browser without
 * rewriting post_content, so the server database remains the source of truth. */
.esp-tour-description--normalized > .esp-tour-description__section > :first-child { margin-top: 0 !important; }
.esp-tour-description--normalized .esp-video-placeholder {
	position: relative;
	overflow: hidden;
	border-radius: 22px;
	background: #122d23;
}
.esp-tour-description--normalized .esp-video-placeholder button {
	display: grid;
	width: 100%;
	min-height: 360px;
	place-items: center;
	border: 0;
	background: transparent;
	color: #fff;
	cursor: pointer;
}
.esp-tour-description--normalized .esp-video-placeholder img {
	position: absolute;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: .72;
}
.esp-tour-description--normalized .esp-video-placeholder span {
	position: relative;
	z-index: 1;
	padding: 11px 17px;
	border-radius: 999px;
	background: rgba(18, 45, 35, .88);
	color: #fff;
	font-weight: 800;
}

/* ---------------------------------------------------------------------------
   Legacy descriptions (inline-styled content) rebranded to the orange palette
   by CSS only. The tour content/text is never modified — this just restyles
   whatever inline colors/fonts the editor saved.
--------------------------------------------------------------------------- */
/* Direct children only → applies to legacy raw content, not structured sections. */
.esp-tour-description > h1,
.esp-tour-description > h2 {
	margin: 34px 0 14px !important;
	padding: 0 0 12px !important;
	border-bottom: 2px solid var(--orange) !important;
	color: var(--forest) !important;
	font-family: var(--sans) !important;
	font-size: clamp(1.7rem, 3.2vw, 2.5rem) !important;
	font-weight: 800 !important;
	line-height: 1.12 !important;
	text-align: left !important;
}
.esp-tour-description h1:first-child,
.esp-tour-description h2:first-child { margin-top: 0 !important; }
/* Neutralize blue/navy inline colors from the old editor. */
.esp-tour-description [style*="#0b5394"],
.esp-tour-description [style*="#333399"],
.esp-tour-description [style*="#000080"],
.esp-tour-description [style*="#0B5394"] { color: var(--forest) !important; }
/* Keep price highlights on-brand. */
.esp-tour-description [style*="#ff6600"],
.esp-tour-description [style*="#FF6600"] { color: var(--orange-dark) !important; font-weight: 800 !important; }
/* Turn the harsh black CTA banners into warm orange banners (text stays readable). */
.esp-tour-description [style*="background: #000000"],
.esp-tour-description [style*="background-color: #000000"],
.esp-tour-description [style*="background: #000"],
.esp-tour-description [style*="background-color: #000"] {
	padding: 16px 20px !important;
	border-radius: 16px !important;
	background: linear-gradient(135deg, var(--orange), var(--orange-dark)) !important;
	color: #fff !important;
	box-shadow: 0 12px 30px rgba(173, 61, 29, .22) !important;
}
.esp-tour-description [style*="background: #000000"] *,
.esp-tour-description [style*="background-color: #000000"] *,
.esp-tour-description [style*="background: #000"] *,
.esp-tour-description [style*="background-color: #000"] * { color: #fff !important; }
/* Price highlight chip. */
.esp-tour-description .esp-price { color: var(--orange-dark); font-weight: 900; white-space: nowrap; }
/* Warm CTA banner (replaces the old harsh black banners). */
.esp-tour-description .esp-tour-cta {
	margin: 16px 0 !important;
	padding: 16px 22px !important;
	border-radius: 16px !important;
	background: linear-gradient(135deg, var(--orange), var(--orange-dark)) !important;
	color: #fff !important;
	font-size: 1.05rem !important;
	font-weight: 800 !important;
	line-height: 1.4 !important;
	text-align: center !important;
	box-shadow: 0 14px 32px rgba(173, 61, 29, .24) !important;
}
.esp-tour-description .esp-tour-cta * { color: #fff !important; }
.esp-tour-description .esp-tour-cta--lg { font-size: 1.25rem !important; }
.esp-tour-description .esp-tour-cta--alt { background: linear-gradient(135deg, #243129, #171714) !important; }
/* Normalize legacy inline fonts/sizes so everything matches the theme. */
.esp-tour-description [style*="font-family"] { font-family: var(--sans) !important; }
.esp-tour-description p[style*="font-size"],
.esp-tour-description li[style*="font-size"] { font-size: 1rem !important; }

@media (max-width: 760px) {
	.esp-tour-description { gap: 24px; margin-bottom: 42px; }
	.esp-tour-description__intro,
	.esp-tour-description__section { padding: 24px 20px; border-radius: 23px; }
	.esp-tour-description__intro::before,
	.esp-tour-description__section::before { inset: 8px -5px -8px 5px; }
	.esp-tour-description__nav { position: static; border-radius: 15px; }
	.esp-tour-description__feature-grid,
	.esp-tour-description__feature-grid--2,
	.esp-tour-description__columns { grid-template-columns: 1fr; }
	.esp-tour-description iframe,
	.esp-tour-description video { min-height: 220px; }
	.esp-tour-description--normalized .esp-video-placeholder button { min-height: 220px; }
	.esp-tour-description__trust { grid-template-columns: repeat(2, 1fr); }
	.esp-tour-description__hero { padding: 30px 20px; border-radius: 22px; }
	.esp-tour-description__chips { gap: 7px; }
	.esp-tour-description__chips span { font-size: .74rem; }
}
