/*
 * Private tour pages (inc/tour.php). Loaded only on the tours listed in TGT_TOUR_DESIGN.
 *
 * The tour page keeps its own layout (photos and a sticky booking card side by side, a tab
 * menu, sections divided by hairlines) and takes the catalog pages' type and colour: Georgia
 * headings at weight 400 with their last words in italic gold, small gold kickers, Trebuchet
 * body, navy, gold and cream. Colours are written out in every rule, never variables, per the
 * repo rules. New classes start with tgt-tp-.
 */

/* ---------------------------------------------------------------- shared pieces */

.tgt-tp-kicker {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 14px;
	font-family: "Trebuchet MS", Arial, sans-serif;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: #a8862e;
}
.tgt-tp-kicker::before {
	content: "";
	flex: none;
	width: 28px;
	height: 1px;
	background: #c8a44a;
}
.tgt-tp-kicker--light { color: #e0c475; }
.tgt-tp-kicker--light::before { background: #e0c475; }

.tgt-tp-head { margin: 0 0 28px; }
.tgt-tp-title {
	margin: 0;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(28px, 1vw + 20px, 36px);
	font-weight: 400;
	line-height: 1.15;
	letter-spacing: -.005em;
	color: #0e1620;
}
.tgt-tp-title em { font-style: italic; color: #a8862e; }
.tgt-tp-lead {
	margin: 12px 0 0;
	max-width: 620px;
	font-size: 16.5px;
	line-height: 1.7;
	color: #5a5448;
}

.tgt-tp-stars { color: #c8a44a; font-size: 15px; letter-spacing: 2px; line-height: 1; }

/* Round icon frame with a gold hairline, as on the catalog pages. */
.tgt-tp-ico {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: 1px solid #e3d3a8;
	border-radius: 50%;
	background: #fdfbf6;
	color: #a8862e;
}
.tgt-tp-ico .tgc-ico { width: 20px; height: 20px; }
.tgt-tp-ico--lg { width: 52px; height: 52px; }
.tgt-tp-ico--lg .tgc-ico { width: 24px; height: 24px; }
.tgt-tp-ico--dark {
	border-color: rgba(224, 196, 117, .45);
	background: rgba(224, 196, 117, .08);
	color: #e0c475;
}

/* Sections inside the booking column: one hairline between each. */
.tgt-tp-sec { padding: 48px 0; border-top: 1px solid #efe8db; }
#overview > .tgt-tp-sec { padding-top: 36px; border-top: 0; }

.tgt-tour--v2 #overview,
.tgt-tour--v2 #included,
.tgt-tour--v2 #pickup,
.tgt-tour--v2 #itinerary,
.tgt-tour--v2 #info,
.tgt-tour--v2 #reviews,
.tgt-tour--v2 #form { scroll-margin-top: calc(var(--header-h) + 64px); }

/* ---------------------------------------------------------------- layout: column + card */

/* 1200px of content, as on the catalog pages: room for the tab menu and five fact tiles. */
.tgt-tour__crumbs,
.tgt-tour--v2 .tgt-wrap { max-width: 1240px; }
.tgt-tour--v2 .tgt-rail-grid {
	grid-template-columns: minmax(0, 1fr) 340px;
	gap: 56px;
}

/* ---------------------------------------------------------------- top: title, rating, photos */

.tgt-tp-hero { padding-top: 10px; }
.tgt-tp-hero__title {
	margin: 0 0 16px;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(32px, 1.4vw + 22px, 46px);
	font-weight: 400;
	line-height: 1.1;
	letter-spacing: -.01em;
	color: #0e1620;
}
.tgt-tp-hero__title em { display: block; font-style: italic; color: #a8862e; }

.tgt-tp-hero__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 22px;
	margin: 0 0 26px;
	padding: 0;
	list-style: none;
	font-size: 14px;
	color: #5a5448;
}
.tgt-tp-hero__meta li { display: inline-flex; align-items: center; gap: 8px; }
.tgt-tp-hero__meta .tgc-ico { width: 17px; height: 17px; color: #c8a44a; }
.tgt-tp-hero__rating { display: inline-flex; align-items: center; gap: 10px; color: #3a3a3a; text-decoration: none; }
.tgt-tp-hero__rating span:last-child { border-bottom: 1px solid rgba(200, 164, 74, .55); }
.tgt-tp-hero__rating:hover span:last-child { color: #a8862e; border-bottom-color: #a8862e; }

.tgt-tp-hero__media .tgt-car__track { border-radius: 18px; }
.tgt-tp-hero__media .tgt-car__viewall {
	margin-top: 16px;
	padding: 10px 18px;
	border: 1px solid #e6dccb;
	border-radius: 999px;
	background: #fff;
	color: #0e1620;
	font-size: 13.5px;
}
.tgt-tp-hero__media .tgt-car__viewall:hover { border-color: #c8a44a; color: #a8862e; }
.tgt-tp-hero__media .tgt-car__dots button { background: #e3d3a8; }
.tgt-tp-hero__media .tgt-car__dots button[aria-current="true"] { background: #c8a44a; }

/* ---------------------------------------------------------------- tab menu */

.tgt-tp-tabs {
	margin-top: 32px;
	background: #fff;
	border-bottom: 1px solid #efe8db;
	box-shadow: 0 12px 22px -20px rgba(14, 22, 32, .45);
}
.tgt-tp-tabs .tgt-tabnav__row { align-items: center; gap: 2px; }
.tgt-tp-tabs a {
	padding: 17px 14px 15px;
	font-family: "Trebuchet MS", Arial, sans-serif;
	font-size: 13.5px;
	font-weight: 700;
	letter-spacing: .02em;
	color: #6b6558;
	border-bottom: 2px solid transparent;
	text-decoration: none;
}
.tgt-tp-tabs a:hover { color: #0e1620; }
.tgt-tp-tabs a.is-active { color: #0e1620; border-bottom-color: #c8a44a; }
.tgt-tp-tabs a.tgt-tp-tabs__reserve {
	margin: 0 0 0 auto;
	padding: 10px 20px;
	border: 0;
	border-radius: 999px;
	background: linear-gradient(135deg, #e0c475 0%, #c8a44a 60%, #b8963b 100%);
	color: #0e1620;
}
.tgt-tp-tabs a.tgt-tp-tabs__reserve:hover { filter: brightness(1.05); }

/* ---------------------------------------------------------------- overview */

.tgt-tp-tiles {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(128px, 1fr));
	gap: 12px;
	margin: 0 0 32px;
	padding: 0;
	list-style: none;
}
.tgt-tp-tile {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 5px;
	padding: 18px 16px;
	border: 1px solid #efe8db;
	border-radius: 16px;
	background: #fff;
}
.tgt-tp-tile .tgt-tp-ico { width: 38px; height: 38px; margin-bottom: 8px; }
.tgt-tp-tile .tgt-tp-ico .tgc-ico { width: 18px; height: 18px; }
.tgt-tp-tile__label,
.tgt-tp-fact__label {
	font-family: "Trebuchet MS", Arial, sans-serif;
	font-size: 11px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #8a8375;
}
.tgt-tp-tile__value {
	font-family: Georgia, "Times New Roman", serif;
	font-size: 16.5px;
	line-height: 1.3;
	color: #0e1620;
}

.tgt-tp-overview__text p,
.tgt-tp-more__body p {
	margin: 0 0 16px;
	font-size: 16.5px;
	line-height: 1.75;
	color: #3a3a3a;
}
.tgt-tp-overview__text p.tgt-tp-overview__lead {
	font-family: Georgia, "Times New Roman", serif;
	font-size: 21px;
	font-style: italic;
	line-height: 1.55;
	color: #0e1620;
}
.tgt-tp-overview__text strong,
.tgt-tp-more__body strong { color: #0e1620; }
.tgt-tp-overview__text a,
.tgt-tp-more__body a,
.tgt-tp-why a { color: #1a6e8a; }

.tgt-tp-more { margin-top: 4px; }
.tgt-tp-more > summary {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 6px 0;
	list-style: none;
	cursor: pointer;
	font-family: "Trebuchet MS", Arial, sans-serif;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .02em;
	color: #a8862e;
}
.tgt-tp-more > summary::-webkit-details-marker { display: none; }
.tgt-tp-more > summary:hover { color: #0e1620; }
.tgt-tp-more > summary .tgc-ico { transform: rotate(90deg); transition: transform .2s ease; }
.tgt-tp-more[open] > summary .tgc-ico { transform: rotate(-90deg); }
.tgt-tp-more__open,
.tgt-tp-more[open] .tgt-tp-more__closed { display: none; }
.tgt-tp-more[open] .tgt-tp-more__open { display: inline; }
.tgt-tp-more__body { margin-top: 14px; }

/* ---------------------------------------------------------------- what's included */

.tgt-tp-included__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.tgt-tp-included__card {
	padding: 26px 26px 24px;
	border: 1px solid #efe8db;
	border-radius: 18px;
	background: #fff;
}
.tgt-tp-included__card--yes { border-color: #ece5d6; background: #f8f5ee; }
.tgt-tp-included__card h3 {
	margin: 0 0 18px;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 20px;
	font-weight: 400;
	color: #0e1620;
}
.tgt-tp-included__card ul { margin: 0; padding: 0; list-style: none; }
.tgt-tp-included__card li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	font-size: 15.5px;
	line-height: 1.55;
	color: #3a3a3a;
}
.tgt-tp-included__card li + li { margin-top: 13px; }
.tgt-tp-included__card--no li { color: #5a5448; }
.tgt-tp-mark {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	margin-top: 1px;
	border-radius: 50%;
	background: #c8a44a;
	color: #fff;
}
.tgt-tp-mark .tgc-ico { width: 13px; height: 13px; stroke-width: 2.6; }
.tgt-tp-included__card--no .tgt-tp-mark { background: #f3ece0; color: #8a8375; }
.tgt-tp-included__card--no .tgt-tp-mark .tgc-ico { width: 11px; height: 11px; }

/* ---------------------------------------------------------------- meeting and pickup */

.tgt-tp-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0 0 22px;
	padding: 0;
	list-style: none;
}
.tgt-tp-chips li {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 9px 16px;
	border-radius: 999px;
	background: #f3ece0;
	font-size: 14px;
	color: #3a3a3a;
}
.tgt-tp-chips .tgc-ico { width: 16px; height: 16px; color: #a8862e; }

.tgt-tp-map { margin: 0; }
.tgt-tp-map__frame {
	position: relative;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	border: 1px solid #ece5d6;
	border-radius: 18px;
	background: #f3ece0;
}
.tgt-tp-map__frame iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}
.tgt-tp-map figcaption {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: 12px;
	font-size: 13.5px;
	color: #6b6558;
}
.tgt-tp-map figcaption .tgc-ico { color: #c8a44a; }

/* ---------------------------------------------------------------- itinerary */

.tgt-tp-stops { position: relative; margin: 0; padding: 0; list-style: none; }
.tgt-tp-stop {
	position: relative;
	display: grid;
	grid-template-columns: 44px 1fr;
	gap: 20px;
	padding-bottom: 26px;
}
.tgt-tp-stop:last-child { padding-bottom: 0; }
.tgt-tp-stop::before {
	content: "";
	position: absolute;
	top: 44px;
	bottom: 0;
	left: 21.5px;
	width: 1px;
	background: #e3d3a8;
}
.tgt-tp-stop:last-child::before { display: none; }
.tgt-tp-stop__n {
	position: relative;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: #0e1620;
	box-shadow: 0 0 0 4px #fff;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 17px;
	color: #e0c475;
}
.tgt-tp-stop__body { padding-top: 9px; }
.tgt-tp-stop__time {
	margin: 0 0 2px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #a8862e;
}
.tgt-tp-stop h3 {
	margin: 0 0 4px;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 19px;
	font-weight: 400;
	line-height: 1.3;
	color: #0e1620;
}
.tgt-tp-stop p { margin: 0; font-size: 15.5px; line-height: 1.6; color: #5a5448; }

/* ---------------------------------------------------------------- additional information */

.tgt-tp-facts {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
	margin: 0 0 30px;
	padding: 0;
	list-style: none;
}
.tgt-tp-fact {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 18px;
	border: 1px solid #efe8db;
	border-radius: 16px;
	background: #fff;
}
.tgt-tp-fact--difficulty { border-color: #ece5d6; background: #f8f5ee; }
/* An odd count leaves one card alone on the last row: it takes the full width instead. */
.tgt-tp-fact:last-child:nth-child(odd) { grid-column: 1 / -1; }
.tgt-tp-fact p { margin: 0; }
.tgt-tp-fact__label { margin-bottom: 3px !important; }
.tgt-tp-fact__value {
	margin-bottom: 4px !important;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 17px;
	line-height: 1.3;
	color: #0e1620;
}
.tgt-tp-fact__text { font-size: 14.5px; line-height: 1.6; color: #5a5448; }

.tgt-tp-help { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.tgt-tp-help__card {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding: 28px;
	border-radius: 20px;
}
.tgt-tp-help__card--policy { border: 1px solid #e9dcbc; background: #f8f5ee; }
.tgt-tp-help__card--ask {
	background-color: #0e1620;
	background-image: radial-gradient(circle at 100% 0, rgba(200, 164, 74, .2), rgba(200, 164, 74, 0) 58%);
	color: #fff;
}
.tgt-tp-help__card .tgt-tp-ico { margin-bottom: 18px; }
/* Beats ".tgt-tp-help__card p" below: the kicker is a paragraph too. */
.tgt-tp-help__card .tgt-tp-help__kicker {
	margin: 0 0 6px;
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: #a8862e;
}
.tgt-tp-help__card--ask .tgt-tp-help__kicker { color: #e0c475; }
.tgt-tp-help__card h3 {
	margin: 0 0 10px;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 23px;
	font-weight: 400;
	line-height: 1.25;
	color: #0e1620;
}
.tgt-tp-help__card--ask h3 { color: #fff; }
.tgt-tp-help__card p { margin: 0 0 22px; font-size: 15px; line-height: 1.65; color: #5a5448; }
.tgt-tp-help__card--ask p { color: rgba(255, 255, 255, .74); }

.tgt-tp-help__btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: auto;
	padding: 11px 20px 11px 16px;
	border: 1px solid #c8a44a;
	border-radius: 999px;
	background: #fff;
	color: #0e1620;
	font-family: "Trebuchet MS", Arial, sans-serif;
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
	transition: background-color .2s ease, color .2s ease;
}
.tgt-tp-help__btn .tgc-ico { width: 18px; height: 18px; color: #a8862e; transition: color .2s ease; }
.tgt-tp-help__btn:hover { background: #0e1620; color: #fff; }
.tgt-tp-help__btn:hover .tgc-ico { color: #e0c475; }

.tgt-tp-help__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 18px;
	margin-top: auto;
}
.tgt-tp-btn-wa {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 12px 20px;
	border-radius: 999px;
	background: #25d366;
	color: #0e1620;
	font-family: "Trebuchet MS", Arial, sans-serif;
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
	transition: filter .2s ease, transform .2s ease;
}
.tgt-tp-btn-wa svg { width: 18px; height: 18px; fill: currentColor; }
.tgt-tp-btn-wa:hover { filter: brightness(1.06); transform: translateY(-1px); }
.tgt-tp-help__mail {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	color: #e0c475;
	text-decoration: underline;
	text-decoration-color: rgba(224, 196, 117, .4);
	text-underline-offset: 3px;
	word-break: break-all;
}
.tgt-tp-help__mail:hover { color: #fff; }

/* ---------------------------------------------------------------- cancellation popup */

.tgt-tp-infobtn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	margin: -3px 0 -3px 2px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: none;
	color: #a8862e;
	cursor: pointer;
}
.tgt-tp-infobtn .tgc-ico { width: 18px; height: 18px; }
.tgt-tp-infobtn:hover { background: #f3ece0; color: #0e1620; }

.tgt-tp-modal {
	width: min(620px, calc(100vw - 32px));
	max-height: calc(100vh - 48px);
	margin: auto;
	padding: 0;
	overflow: auto;
	border: 0;
	border-radius: 22px;
	background: #fff;
	color: #3a3a3a;
	box-shadow: 0 30px 80px rgba(14, 22, 32, .35);
}
.tgt-tp-modal::backdrop { background: rgba(14, 22, 32, .62); backdrop-filter: blur(3px); }
.tgt-tp-modal:not([open]) { display: none; }
html.tgt-tp-lock { overflow: hidden; }

.tgt-tp-modal__head {
	position: relative;
	padding: 26px 30px 24px;
	background-color: #0e1620;
	background-image: radial-gradient(circle at 100% 0, rgba(200, 164, 74, .24), rgba(200, 164, 74, 0) 60%);
	color: #fff;
}
.tgt-tp-modal__head .tgt-tp-ico { display: flex; width: 44px; height: 44px; margin-bottom: 12px; }
.tgt-tp-modal__head .tgt-tp-kicker { margin-bottom: 10px; }
.tgt-tp-modal__title {
	margin: 0;
	padding-right: 30px;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 28px;
	font-weight: 400;
	line-height: 1.2;
	color: #fff;
}
.tgt-tp-modal__title em { font-style: italic; color: #e0c475; }
.tgt-tp-modal__lead { margin: 10px 0 0; font-size: 15px; line-height: 1.6; color: rgba(255, 255, 255, .72); }
.tgt-tp-modal__close {
	position: absolute;
	top: 16px;
	right: 16px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, .25);
	border-radius: 50%;
	background: rgba(255, 255, 255, .06);
	color: #fff;
	cursor: pointer;
}
.tgt-tp-modal__close:hover { background: rgba(255, 255, 255, .16); }
.tgt-tp-modal__close:focus-visible,
.tgt-tp-infobtn:focus-visible,
.tgt-tp-help__btn:focus-visible { outline: 2px solid #c8a44a; outline-offset: 2px; }

.tgt-tp-modal__list { margin: 0; padding: 4px 30px; list-style: none; }
.tgt-tp-modal__list li {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	padding: 13px 0;
	border-bottom: 1px solid #efe8db;
}
.tgt-tp-modal__list li:last-child { border-bottom: 0; }
.tgt-tp-modal__list h3 {
	margin: 2px 0 4px;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 18px;
	font-weight: 400;
	color: #0e1620;
}
.tgt-tp-modal__list p { margin: 0; font-size: 14.5px; line-height: 1.6; color: #5a5448; }
.tgt-tp-modal__foot { padding: 18px 30px 22px; border-top: 1px solid #ece5d6; background: #f8f5ee; }
.tgt-tp-modal__foot p { margin: 0 0 12px; font-size: 14px; color: #5a5448; }
.tgt-tp-modal__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.tgt-tp-modal__mail {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 11px 18px;
	border: 1px solid #d9cfba;
	border-radius: 999px;
	background: #fff;
	color: #0e1620;
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
}
.tgt-tp-modal__mail .tgc-ico { color: #a8862e; }
.tgt-tp-modal__mail:hover { border-color: #c8a44a; }

@media (prefers-reduced-motion: no-preference) {
	.tgt-tp-modal[open] { animation: tgt-tp-in .22s ease-out; }
	.tgt-tp-modal[open]::backdrop { animation: tgt-tp-fade .22s ease-out; }
}
@keyframes tgt-tp-in {
	from { opacity: 0; transform: translateY(14px) scale(.98); }
	to { opacity: 1; transform: none; }
}
@keyframes tgt-tp-fade {
	from { opacity: 0; }
	to { opacity: 1; }
}

/* ---------------------------------------------------------------- booking card */

.tgt-rail-grid .tgt-tp-card {
	top: calc(var(--header-h) + 72px);
	gap: 16px;
	padding: 26px;
	border: 1px solid #ece5d6;
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 18px 44px rgba(14, 22, 32, .09);
}
.tgt-tp-card__price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 6px;
	margin: 0;
	color: #6b6558;
}
.tgt-tp-card__from {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #8a8375;
}
.tgt-tp-card__price strong {
	font-family: Georgia, "Times New Roman", serif;
	font-size: 40px;
	font-weight: 400;
	line-height: 1;
	color: #0e1620;
}
.tgt-tp-card__per { font-size: 14px; }
.tgt-tp-card__checks {
	margin: 0;
	padding: 14px 16px;
	border-radius: 14px;
	background: #f8f5ee;
	list-style: none;
}
.tgt-tp-card__checks li {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 14px;
	line-height: 1.45;
	color: #3a3a3a;
}
.tgt-tp-card__checks li + li { margin-top: 8px; }
.tgt-tp-card__checks > li > .tgc-ico { flex: none; width: 16px; height: 16px; color: #a8862e; stroke-width: 2.4; }

.tgt-tp-card .tgt-form__stepno { background: #f3ece0; color: #6b6558; }
.tgt-tp-card .tgt-form__step.is-now .tgt-form__stepno { background: #c8a44a; color: #fff; }
.tgt-tp-card .tgt-form__steplabel { font-size: 11px; letter-spacing: .14em; color: #8a8375; }
.tgt-tp-card .tgt-form__row label { font-size: 12.5px; font-weight: 700; color: #3a3a3a; }
.tgt-tp-card .tgt-form input,
.tgt-tp-card .tgt-form select,
.tgt-tp-card .tgt-form textarea {
	border: 1px solid #e3dccd;
	border-radius: 10px;
	background: #fff;
	color: #1b1b1b;
}
.tgt-tp-card .tgt-form input:focus,
.tgt-tp-card .tgt-form select:focus,
.tgt-tp-card .tgt-form textarea:focus {
	border-color: #c8a44a;
	outline: none;
	box-shadow: 0 0 0 3px rgba(200, 164, 74, .18);
}
.tgt-tp-card .tgt-form__actions .tgt-btn {
	border-radius: 999px;
	font-family: "Trebuchet MS", Arial, sans-serif;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: .02em;
	text-transform: none;
}
.tgt-tp-card .tgt-form__actions .tgt-btn--gold {
	border: 0;
	background: linear-gradient(135deg, #e0c475 0%, #c8a44a 60%, #b8963b 100%);
	color: #0e1620;
	box-shadow: 0 8px 20px rgba(200, 164, 74, .32);
}
.tgt-tp-card .tgt-form__actions .tgt-btn--gold:hover { filter: brightness(1.05); }
.tgt-tp-card .tgt-form__actions .tgt-btn--quiet { border: 1px solid #e3dccd; background: #fff; color: #5a5448; }
.tgt-tp-card .tgt-form__promise { color: #8a8375; }
.tgt-tp-card .tgt-rail-card__or { color: #8a8375; }
.tgt-tp-card .tgt-rail-card__or span { background: #efe8db; }
.tgt-rail-card .tgt-tp-card__wa {
	border: 1px solid #25d366;
	border-radius: 999px;
	color: #0f7a3d;
}
.tgt-rail-card .tgt-tp-card__wa:hover { background: #25d366; color: #0e1620; }
.tgt-tp-card .tgt-rail-card__trust { text-align: center; color: #8a8375; }

/* The second step (six questions) is taller than a laptop screen. The pinned card then
   scrolls inside itself and keeps its buttons at its foot, so "Continue" and "Get My
   Personalised Quote" are always in view without scrolling the page to its end. */
@media (min-width: 1025px) {
	.tgt-rail-grid .tgt-tp-card {
		max-height: calc(100vh - var(--header-h) - 92px);
		overflow-y: auto;
		scrollbar-width: thin;
		scrollbar-color: #e3dccd transparent;
	}
	.tgt-tp-card .tgt-form__actions {
		position: sticky;
		bottom: -26px;
		z-index: 2;
		flex: 0 0 calc(100% + 52px);
		margin: 4px -26px 0;
		padding: 12px 26px 18px;
		background: #fff;
		box-shadow: 0 -12px 14px -12px rgba(14, 22, 32, .14);
	}
}

/* ---------------------------------------------------------------- reviews */

.tgt-tour--v2 .tgt-tp-reviews {
	margin-top: 24px;
	padding: 72px 0;
	border-top: 1px solid #ece5d6;
	background: #f8f5ee;
}
.tgt-tp-reviews__top {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px 40px;
	margin-bottom: 30px;
}
.tgt-tp-reviews__top .tgt-tp-head { margin: 0; }
.tgt-tp-score {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 14px 20px;
	border: 1px solid #ece5d6;
	border-radius: 16px;
	background: #fff;
	color: #0e1620;
	text-decoration: none;
	transition: border-color .2s ease, box-shadow .2s ease;
}
.tgt-tp-score:hover { border-color: #c8a44a; box-shadow: 0 10px 26px rgba(14, 22, 32, .08); }
.tgt-tp-score__num { font-family: Georgia, "Times New Roman", serif; font-size: 42px; line-height: 1; }
.tgt-tp-score__side { display: flex; flex-direction: column; gap: 6px; }
.tgt-tp-score__count {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 13.5px;
	font-weight: 700;
	color: #1a6e8a;
}

.tgt-tour--v2 .tgt-tp-reviews__box { position: relative; padding: 0; }
.tgt-tp-reviews__rail { gap: 20px; padding: 4px 2px 10px; }
.tgt-tp-review {
	flex: 0 0 calc((100% - 40px) / 3);
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 26px;
	border: 1px solid #ece5d6;
	border-radius: 18px;
	background: #fff;
	scroll-snap-align: start;
}
.tgt-tp-review__text {
	display: -webkit-box;
	margin: 14px 0 22px;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 7;
	font-size: 15.5px;
	font-style: normal;
	line-height: 1.7;
	color: #3a3a3a;
}
.tgt-tp-review__by { display: flex; align-items: center; gap: 12px; margin-top: auto; }
.tgt-tp-review__by img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
.tgt-tp-review__initial {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: #0e1620;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 17px;
	color: #e0c475;
}
.tgt-tp-review__by strong { display: block; font-size: 14.5px; color: #0e1620; }
.tgt-tp-review__by small { display: block; font-size: 12.5px; color: #8a8375; }

.tgt-tour--v2 .tgt-tp-arrow {
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	border: 1px solid #e3d3a8;
	border-radius: 50%;
	background: #fff;
	color: #0e1620;
	box-shadow: 0 8px 20px rgba(14, 22, 32, .08);
}
.tgt-tour--v2 .tgt-tp-arrow:hover { border-color: #c8a44a; color: #a8862e; }
.tgt-tour--v2 .tgt-tp-arrow .tgc-ico { width: 18px; height: 18px; }
.tgt-tour--v2 .tgt-quotes__arrow--prev.tgt-tp-arrow { left: -23px; }
.tgt-tour--v2 .tgt-quotes__arrow--prev.tgt-tp-arrow .tgc-ico { transform: rotate(180deg); }
.tgt-tour--v2 .tgt-quotes__arrow--next.tgt-tp-arrow { right: -23px; }
.tgt-tp-reviews__dots { margin-top: 22px; }
.tgt-tp-reviews__dots button { background: #c8a44a; opacity: .3; transition: width .2s ease; }
.tgt-tp-reviews__dots button[aria-selected="true"] { width: 18px; border-radius: 99px; opacity: 1; }

/* ---------------------------------------------------------------- prose sections
 * The live pages' own prose: full width after the card (.tgt-tp-why), or one more section
 * of the main column when it stood before the itinerary (.tgt-tp-prose).
 */

.tgt-tp-why { padding: 72px 0; background: #fff; }
.tgt-tp-why__inner { max-width: 760px; }
/* The prose paragraphs only: the heading's kicker and lead are paragraphs too. */
.tgt-tp-part > p { margin: 0 0 16px; font-size: 17px; line-height: 1.75; color: #3a3a3a; }
.tgt-tp-prose .tgt-tp-part > p { font-size: 16.5px; }
.tgt-tp-prose a { color: #1a6e8a; }
.tgt-tp-why strong,
.tgt-tp-prose strong { color: #0e1620; }
.tgt-tp-part + .tgt-tp-part { margin-top: 36px; }
.tgt-tp-part__title {
	margin: 0 0 14px;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(22px, .6vw + 18px, 26px);
	font-weight: 400;
	line-height: 1.25;
	color: #0e1620;
}
.tgt-tp-part__title em { font-style: italic; color: #a8862e; }
.tgt-tp-list { margin: 0 0 16px; padding: 0; list-style: none; }
.tgt-tp-list li {
	position: relative;
	padding-left: 22px;
	font-size: 16px;
	line-height: 1.7;
	color: #3a3a3a;
}
.tgt-tp-list li::before {
	content: "";
	position: absolute;
	top: .72em;
	left: 4px;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #c8a44a;
}

/* Itinerary: a part of the day ("First Stop: Exploring Tangier (Morning)") above its stops. */
.tgt-tp-stops__group { margin: 8px 0 22px; padding: 16px 18px; border-radius: 14px; background: #f8f5ee; }
.tgt-tp-stops__group:not(:first-child) { margin-top: 30px; }
.tgt-tp-stops__group h3 {
	margin: 0;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 19px;
	font-weight: 400;
	color: #a8862e;
}
.tgt-tp-stops__group p { margin: 4px 0 0; font-size: 14.5px; line-height: 1.6; color: #5a5448; }
.tgt-tp-why .tgt-tp-why__link { margin: 22px 0 0; }
.tgt-tp-why__link a { font-weight: 700; color: #1a6e8a; text-decoration: none; border-bottom: 1px solid rgba(26, 110, 138, .35); }
.tgt-tp-why__link a:hover { color: #145670; border-bottom-color: #145670; }

/* ---------------------------------------------------------------- questions and answers */

.tgt-tp-faq { padding: 72px 0; border-top: 1px solid #efe8db; background: #fff; }
.tgt-tp-faq__inner { max-width: 820px; }
.tgt-tp-faq__list { border-top: 1px solid #efe8db; }
.tgt-tp-faq__item { border-bottom: 1px solid #efe8db; }
.tgt-tp-faq__item > summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding: 20px 0;
	list-style: none;
	cursor: pointer;
}
.tgt-tp-faq__item > summary::-webkit-details-marker { display: none; }
.tgt-tp-faq__item h3 {
	margin: 0;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 19px;
	font-weight: 400;
	line-height: 1.35;
	color: #0e1620;
}
.tgt-tp-faq__item > summary:hover h3 { color: #a8862e; }
.tgt-tp-faq__sign {
	position: relative;
	flex: none;
	width: 30px;
	height: 30px;
	border: 1px solid #e3d3a8;
	border-radius: 50%;
}
.tgt-tp-faq__sign::before,
.tgt-tp-faq__sign::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 11px;
	height: 1.5px;
	background: #a8862e;
	transform: translate(-50%, -50%);
}
.tgt-tp-faq__sign::after { transform: translate(-50%, -50%) rotate(90deg); transition: transform .2s ease; }
.tgt-tp-faq__item[open] .tgt-tp-faq__sign::after { transform: translate(-50%, -50%) rotate(0deg); }
.tgt-tp-faq__item p { margin: 0 0 22px; max-width: 700px; font-size: 16px; line-height: 1.7; color: #5a5448; }

/* ---------------------------------------------------------------- other tours */

.tgt-tp-related { padding: 72px 0 88px; border-top: 1px solid #efe8db; background: #fff; }
.tgt-tp-cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.tgt-tp-cardi a {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	border: 1px solid #efe8db;
	border-radius: 18px;
	background: #fff;
	color: inherit;
	text-decoration: none;
	transition: transform .25s ease, box-shadow .25s ease;
}
.tgt-tp-cardi a:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(14, 22, 32, .1); }
.tgt-tp-cardi__img { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #f3ece0; }
.tgt-tp-cardi__img img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.tgt-tp-cardi a:hover .tgt-tp-cardi__img img { transform: scale(1.045); }
.tgt-tp-cardi__body { display: flex; flex: 1; flex-direction: column; gap: 8px; padding: 20px 22px 22px; }
.tgt-tp-cardi__title {
	font-family: Georgia, "Times New Roman", serif;
	font-size: 21px;
	line-height: 1.25;
	color: #0e1620;
}
.tgt-tp-cardi__sum { font-size: 14.5px; line-height: 1.6; color: #5a5448; }
.tgt-tp-cardi__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-top: auto;
	padding-top: 14px;
	border-top: 1px solid #efe8db;
	font-size: 13.5px;
}
.tgt-tp-cardi__price { color: #6b6558; }
.tgt-tp-cardi__price strong { font-family: Georgia, "Times New Roman", serif; font-size: 17px; font-weight: 400; color: #0e1620; }
.tgt-tp-cardi__go { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: #a8862e; white-space: nowrap; }

/* ---------------------------------------------------------------- phone booking bar */

.tgt-tp-mobile {
	transition: transform .3s ease, visibility 0s linear 0s;
	gap: 10px;
	padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px));
	border-top: 1px solid #ece5d6;
	background: #fff;
	box-shadow: 0 -10px 30px rgba(14, 22, 32, .1);
}
.tgt-tp-mobile__price {
	display: flex;
	align-items: baseline;
	gap: 5px;
	margin: 0 auto 0 0;
	font-size: 12.5px;
	color: #6b6558;
	white-space: nowrap;
}
.tgt-tp-mobile__price strong {
	font-family: Georgia, "Times New Roman", serif;
	font-size: 23px;
	font-weight: 400;
	color: #0e1620;
}
.tgt-tp-mobile__wa {
	display: flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background: #25d366;
	color: #0e1620;
}
.tgt-tp-mobile__wa svg { width: 22px; height: 22px; fill: currentColor; }
/* Hidden while the booking card is on screen (tour.js): it would sit on the form's own buttons. */
.tgt-tp-mobile.is-away { visibility: hidden; transform: translateY(110%); transition: transform .3s ease, visibility 0s linear .3s; }
.tgt-tp-mobile__btn {
	flex: none;
	padding: 13px 28px;
	border-radius: 999px;
	background: linear-gradient(135deg, #e0c475 0%, #c8a44a 60%, #b8963b 100%);
	color: #0e1620;
	font-size: 15px;
	font-weight: 700;
	text-decoration: none;
}
/* Small phones: the French price ("À partir de 100 € par personne") and "Réserver" did not fit in 360 px
   and pushed the page 19 px wider. "par personne" moves under the price and the button is a little narrower. */
@media (max-width: 420px) {
	.tgt-tp-mobile__price { flex-wrap: wrap; min-width: 0; row-gap: 0; line-height: 1.15; }
	.tgt-tp-mobile__btn { padding: 13px 20px; }
}

/* ---------------------------------------------------------------- smaller screens */

@media (max-width: 1240px) {
	.tgt-tour--v2 .tgt-quotes__arrow--prev.tgt-tp-arrow { left: 6px; }
	.tgt-tour--v2 .tgt-quotes__arrow--next.tgt-tp-arrow { right: 6px; }
}

@media (max-width: 1024px) {
	.tgt-tour--v2 .tgt-rail-grid { grid-template-columns: 1fr; gap: 0; }
	.tgt-rail-grid .tgt-tp-card { margin-bottom: 48px; }
	.tgt-tp-review { flex-basis: calc((100% - 20px) / 2); }
	.tgt-tp-cards { grid-template-columns: 1fr 1fr; }
	/* The booking bar carries WhatsApp on these pages: no floating bubble on top of it. */
}

@media (max-width: 760px) {
	.tgt-tp-sec { padding: 40px 0; }
	.tgt-tp-head { margin-bottom: 22px; }
	.tgt-tp-hero__title { font-size: clamp(30px, 6vw + 8px, 38px); }
	.tgt-tp-hero__meta { gap: 8px 16px; font-size: 13.5px; }
	.tgt-tp-tabs { margin-top: 24px; }
	.tgt-tp-tabs a { padding: 15px 11px 13px; font-size: 13px; }
	.tgt-tp-tiles { grid-template-columns: 1fr 1fr; gap: 10px; }
	.tgt-tp-overview__text p.tgt-tp-overview__lead { font-size: 19px; }
	.tgt-tp-included__grid,
	.tgt-tp-facts,
	.tgt-tp-help { grid-template-columns: 1fr; }
	.tgt-tp-help__card { padding: 24px; }
	.tgt-tp-map__frame { aspect-ratio: 4 / 5; }
	.tgt-tour--v2 .tgt-tp-reviews,
	.tgt-tp-why,
	.tgt-tp-faq,
	.tgt-tp-related { padding: 56px 0; }
	.tgt-tp-faq__item h3 { font-size: 17.5px; }
	.tgt-tp-reviews__top { align-items: flex-start; }
	.tgt-tp-review { flex-basis: 86%; }
	.tgt-tour--v2 .tgt-tp-arrow { display: none; }
	.tgt-tp-cards { grid-template-columns: 1fr; }
	.tgt-tp-modal__head { padding: 26px 22px 22px; }
	.tgt-tp-modal__title { font-size: 24px; }
	.tgt-tp-modal__list { padding: 4px 22px; }
	.tgt-tp-modal__foot { padding: 18px 22px 22px; }
}

@media (prefers-reduced-motion: reduce) {
	.tgt-tp-cardi a,
	.tgt-tp-cardi__img img,
	.tgt-tp-btn-wa,
	.tgt-tp-more > summary .tgc-ico { transition: none; }
	.tgt-tp-cardi a:hover { transform: none; }
	.tgt-tp-cardi a:hover .tgt-tp-cardi__img img { transform: none; }
}
