.tp-package {
	--tp-cream: #F8F5F0;
	--tp-dark: #303434;
	--tp-gold: #AA8453;
	--tp-gold-dark: #8A7142;
	--tp-accent: #FFBC7D;
	--tp-script: 'silver-south-script', cursive;
	--tp-serif: 'Playfair Display', 'Crimson Pro', serif;
	color: var(--tp-dark);
	background: #fff;
	font-family: 'Crimson Pro', Georgia, serif;
}

.tp-package h1, .tp-package h2, .tp-package h3, .tp-package h4 { font-family: var(--tp-serif); font-weight: 600; }

.tp-accent {
	font-family: var(--tp-script);
	font-weight: normal;
	color: var(--tp-gold-dark);
	font-size: 1.5em;
	line-height: 1;
	display: inline-block;
}

.tp-section { width: 100%; padding: 48px 20px; box-sizing: border-box; }
.tp-inner { max-width: 1140px; margin: 0 auto; }

.tp-package h2 { font-size: 28px; margin: 0 0 24px; }
.tp-package h2.tp-h-center { text-align: center; }
.tp-package h2.tp-h-left { text-align: left; }
.tp-package h2 .tp-accent { font-size: 1.6em; }
.tp-h-big { color: var(--tp-gold-dark); font-size: 1.3em; }

.tp-hero { background: var(--tp-cream); text-align: center; padding: 56px 20px 24px; }
.tp-hero-title { font-size: 42px; margin: 0; }

.tp-gallery-section { background: var(--tp-cream); padding-top: 0; }
.tp-hero-meta { display: flex; align-items: center; justify-content: space-between; font-size: 15px; margin-bottom: 20px; }
.tp-tag { font-family: var(--tp-script); color: var(--tp-gold-dark); font-size: 26px; }
.tp-duration { color: var(--tp-dark); opacity: .8; }
.tp-duration-bar { color: var(--tp-gold); margin-right: 4px; }

.tp-gallery-section .swiper-slide { border-radius: 8px; overflow: hidden; }
.tp-gallery-img { width: 100%; height: 420px; object-fit: cover; display: block; }

.tp-prose { line-height: 1.7; }
.tp-prose p { margin: 0 0 16px; }

.tp-highlights { background: var(--tp-cream); }
.tp-highlights-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 60px; max-width: 900px; margin: 0 auto; }
.tp-highlight-item { padding: 8px 0; border-bottom: 1px solid #e2ddd3; font-size: 15px; }

.tp-highlight-gallery-section { position: relative; }
.tp-highlight-gallery-section .swiper-slide { overflow: hidden; }
.tp-highlight-img { width: 100%; height: 220px; object-fit: cover; display: block; }

.tp-grid { display: grid; gap: 24px; }
.tp-destinations-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px 20px; }
.tp-destination-card {
	display: flex;
	align-items: stretch;
	gap: 0;
	flex: 0 1 31%;
	min-width: 220px;
	border: 1px solid #eee;
}
.tp-destination-img { flex: 0 0 40%; width: 40%; height: 80px; object-fit: cover; display: block; }
.tp-destination-body { flex: 1 1 auto; padding: 8px 12px; display: flex; flex-direction: column; justify-content: center; }
.tp-destination-body h3 { margin: 0; font-size: 13px; font-weight: 600; color: var(--tp-gold-dark); font-family: 'Crimson Pro', serif; }
.tp-destination-body p { margin: 2px 0 0; font-size: 14px; font-weight: 600; color: var(--tp-dark); }

.tp-itinerary-columns { display: flex; gap: 40px; align-items: flex-start; }
.tp-itinerary-list { display: flex; flex-direction: column; gap: 0; flex: 1 1 65%; min-width: 0; }
.tp-itinerary-map { flex: 1 1 35%; position: sticky; top: 20px; }
.tp-itinerary-map iframe { width: 100%; height: 600px; border: 0; }
.tp-itinerary-row { padding: 20px 0; border-bottom: 1px dashed #ccc; }
.tp-itinerary-day { font-size: 15px; font-weight: 600; color: var(--tp-gold-dark); margin-bottom: 2px; }
.tp-itinerary-row h3 { margin: 0 0 8px; font-size: 26px; color: #000; font-weight: 500; }
.tp-itinerary-desc { margin: 0; line-height: 1.6; opacity: .85; font-size: 14px; }

.tp-hotels-section { background: var(--tp-cream); position: relative; }
.tp-hotel-slide { text-align: center; }
.tp-hotel-img { width: 100%; height: 200px; object-fit: cover; }
.tp-hotel-name { margin: 10px 0 0; font-weight: 600; }

.tp-in-ex-section { background: #fff; }
.tp-in-ex { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; margin-bottom: 40px; }
.tp-tick-list, .tp-cross-list { list-style: none; margin: 0 0 32px; padding: 0; }
.tp-tick-list li, .tp-cross-list li { padding: 6px 0 6px 28px; position: relative; font-size: 14px; }
.tp-tick-list li::before { content: "\2713"; position: absolute; left: 0; color: #2e7d32; font-weight: 700; }
.tp-cross-list li::before { content: "\2715"; position: absolute; left: 0; color: #c62828; font-weight: 700; }

.tp-trust-heading { font-family: var(--tp-serif); font-size: 22px; font-weight: 600; margin: 0 0 16px; }
.tp-trust-badges { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-bottom: 16px; }
.tp-trust-badge { max-height: 60px; width: auto; }
.tp-trust-badges-reviews { margin-bottom: 24px; }
.tp-trust-badge-sm { max-height: 28px; width: auto; }
.tp-testimonial { margin: 0; font-style: italic; font-size: 14px; line-height: 1.7; }
.tp-testimonial footer { margin-top: 12px; font-style: normal; font-weight: 600; font-size: 13px; color: var(--tp-gold-dark); opacity: .9; }

.tp-trust-icons { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 24px; text-align: center; }
.tp-icon-box { border: 1px solid #eee; padding: 24px 16px; }
.tp-icon-box-glyph { display: block; font-size: 22px; color: var(--tp-gold-dark); margin-bottom: 8px; }
.tp-icon-box h4 { margin: 0 0 8px; font-size: 15px; color: var(--tp-gold-dark); }
.tp-icon-box p { margin: 0; font-size: 13px; opacity: .8; line-height: 1.6; }

.tp-similar { background: var(--tp-cream); position: relative; }
.tp-similar-swiper { padding-bottom: 36px; }
.tp-similar-card {
	display: block;
	text-decoration: none;
	color: inherit;
	background: #fff;
	border: 1px solid #e6e1d6;
	overflow: hidden;
	height: 100%;
	box-sizing: border-box;
}
.tp-similar-img { width: 100%; height: 160px; object-fit: cover; display: block; }
.tp-similar-body { padding: 16px 20px 20px; text-align: center; }
.tp-similar-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	border: 1px solid var(--tp-gold-dark);
	color: var(--tp-gold-dark);
	font-size: 14px;
	margin-bottom: 10px;
}
.tp-similar-card h3 { font-size: 17px; margin: 0 0 8px; color: var(--tp-gold-dark); font-weight: 600; }
.tp-similar-body p { margin: 0 0 10px; font-size: 13px; color: var(--tp-dark); opacity: .75; line-height: 1.6; }
.tp-similar-duration { display: inline-block; font-size: 13px; color: var(--tp-gold-dark); font-weight: 600; }

.tp-cta { text-align: center; }
.tp-cta-button {
	display: inline-block;
	background: var(--tp-gold-dark);
	color: #fff;
	padding: 14px 40px;
	border-radius: 4px;
	text-decoration: none;
	font-weight: 600;
	letter-spacing: .03em;
}
.tp-cta-button:hover { background: var(--tp-dark); color: #fff; }

@media (max-width: 900px) {
	.tp-itinerary-columns { flex-direction: column; }
	.tp-itinerary-map { position: static; width: 100%; }
	.tp-itinerary-map iframe { height: 320px; }
	.tp-in-ex { grid-template-columns: 1fr; gap: 32px; }
}

@media (max-width: 640px) {
	.tp-hero-title { font-size: 30px; }
	.tp-highlights-grid { grid-template-columns: 1fr; }
	.tp-destination-card { flex: 1 1 100%; }
}
