/*
 * Copper Lantern VacationPort 0.16.10
 * Shared supplier-offer presentation contract.
 * Loaded after the public and public-contract layers.
 */

.cltvp-offer-card {
	position: relative;
	overflow: visible;
	background: transparent;
	border: 0;
	box-shadow: none;
}

.cltvp-offer-card::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: 1px;
	background: linear-gradient(90deg, var(--vp-copper) 0 64px, var(--vp-line) 64px 100%);
}

.cltvp-offer-card .cltvp-media {
	border: 1px solid var(--vp-line);
	box-shadow: 14px 14px 0 rgba(223, 207, 188, .38);
}

.cltvp-explorer .cltvp-offer-card > .cltvp-offer-copy {
	position: relative;
	display: flex;
	min-width: 0;
	flex: 1;
	flex-direction: column;
	padding: 23px 0 27px;
}

.cltvp-offer-sequence {
	position: absolute;
	top: 21px;
	right: 0;
	color: #a96d3b;
	font: 400 13px/1 "Cinzel CLT", "Cinzel", Georgia, serif;
	letter-spacing: .12em;
}

.cltvp-explorer .cltvp-offer-card .cltvp-kicker,
.cltvp-supplier-offer-card .cltvp-kicker {
	padding-right: 44px;
	color: #a96732;
}

.cltvp-explorer .cltvp-offer-card h3 {
	max-width: 92%;
	margin-bottom: 9px;
	font-size: clamp(22px, 2vw, 29px);
	line-height: 1.13;
}

.cltvp-explorer .cltvp-offer-card .cltvp-offer-summary {
	margin: 0;
	color: var(--vp-muted);
	font-size: 13px;
	line-height: 1.55;
}

.cltvp-explorer .cltvp-offer-card .cltvp-offer-details {
	margin: 12px 0 0;
	padding: 14px 0 0;
	border-top: 1px solid var(--vp-line);
}

.cltvp-explorer .cltvp-offer-card .cltvp-offer-details li {
	margin-bottom: 7px;
	font-size: 13px;
	line-height: 1.48;
}

.cltvp-explorer .cltvp-offer-card .cltvp-offer-details .cltvp-offer-price {
	color: var(--vp-ink);
	font-weight: 700;
}

.cltvp-explorer .cltvp-offer-card .cltvp-actions {
	gap: 15px;
	padding-top: 16px;
}

.cltvp-explorer .cltvp-offer-card .cltvp-actions .cltvp-button {
	min-height: 40px;
	padding: 8px 16px;
	font-size: 10px;
}

/* Saved destination modules use an editorial feature-and-index composition. */
.cltvp-destination-module .cltvp-offer-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.16fr) minmax(330px, .84fr);
	gap: 26px 42px;
	align-items: stretch;
}

.cltvp-destination-module .cltvp-offer-card {
	min-width: 0;
	height: auto;
	overflow: visible;
	background: transparent;
	border: 0;
	box-shadow: none;
}

.cltvp-destination-module .cltvp-offer-grid.count-1 {
	grid-template-columns: minmax(0, 790px);
}

.cltvp-destination-module .cltvp-offer-grid.count-2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cltvp-destination-module .cltvp-offer-grid.count-3 > .cltvp-offer-card:first-child {
	grid-row: span 2;
}

/* Never enlarge a small supplier photograph into a visibly soft feature. */
@media (min-width: 981px) {
	.cltvp-destination-module .cltvp-offer-grid.count-3 > .cltvp-offer-card:first-child .cltvp-media.is-low-resolution {
		display: grid;
		padding: 18px;
		place-items: center;
		background: linear-gradient(135deg, rgba(186, 125, 68, .1), transparent 42%), #efe7dc;
		border-color: rgba(159, 97, 47, .3);
	}

	.cltvp-destination-module .cltvp-offer-grid.count-3 > .cltvp-offer-card:first-child .cltvp-media.is-low-resolution img {
		width: min(calc(100% - 36px), var(--cltvp-safe-image-width, 640px));
		height: auto;
		max-height: min(calc(100% - 36px), var(--cltvp-safe-image-height, 420px));
		object-fit: contain;
		border: 1px solid rgba(159, 97, 47, .34);
		box-shadow: 0 16px 36px rgba(24, 42, 36, .14);
		transform: none;
	}

	.cltvp-destination-module .cltvp-offer-grid.count-3 > .cltvp-offer-card:first-child:hover .cltvp-media.is-low-resolution img {
		transform: none;
	}
}

.cltvp-destination-module .cltvp-offer-grid.count-3 > .cltvp-offer-card:not(:first-child) {
	display: grid;
	grid-template-columns: minmax(145px, .72fr) minmax(0, 1.28fr);
	align-items: stretch;
}

.cltvp-destination-module .cltvp-offer-grid.count-3 > .cltvp-offer-card:not(:first-child) .cltvp-media {
	height: 100%;
	min-height: 225px;
	aspect-ratio: auto;
	box-shadow: 10px 10px 0 rgba(223, 207, 188, .32);
}

.cltvp-destination-module .cltvp-offer-grid.count-3 > .cltvp-offer-card:not(:first-child) .cltvp-offer-copy {
	padding: 20px 0 24px 25px;
}

.cltvp-destination-module .cltvp-offer-grid.count-3 > .cltvp-offer-card:not(:first-child) h3 {
	font-size: clamp(20px, 1.55vw, 25px);
}

.cltvp-destination-module .cltvp-offer-card .cltvp-actions .cltvp-button {
	min-height: 0;
	padding: 0 0 3px;
	color: var(--vp-copper-text, #8b512c) !important;
	background: transparent;
	border: 0;
	border-bottom: 1px solid rgba(159, 97, 47, .42);
}

.cltvp-destination-module .cltvp-offer-card .cltvp-actions .cltvp-button::after {
	content: "\2192";
	margin-left: 8px;
}

.cltvp-destination-module .cltvp-offer-card .cltvp-actions .cltvp-button:hover,
.cltvp-destination-module .cltvp-offer-card .cltvp-actions .cltvp-button:focus-visible {
	color: var(--vp-ink) !important;
	border-bottom-color: var(--vp-ink);
}

/* Deliberate search density: three editorial results at wide desktop, then two and one. */
.cltvp-search-offer-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 34px 24px;
}

.cltvp-search-offer-grid .cltvp-offer-card figure {
	aspect-ratio: 16 / 8.7;
}

/* Cruise-line offer groups use the same rail, type, and restrained surfaces. */
.cltvp-supplier-offer-grid {
	gap: 30px 22px;
}

.cltvp-supplier-offer-card {
	position: relative;
	overflow: visible;
	background: transparent;
	border: 0;
	border-bottom: 1px solid var(--vp-line);
	box-shadow: none;
}

.cltvp-supplier-offer-card::after {
	content: "";
	position: absolute;
	bottom: -1px;
	left: 0;
	width: 58px;
	height: 1px;
	background: var(--vp-copper);
}

.cltvp-supplier-offer-card figure {
	min-height: 132px;
	border: 1px solid var(--vp-line);
	box-shadow: 10px 10px 0 rgba(223, 207, 188, .32);
}

.cltvp-supplier-offer-card figure > img:not(.cltvp-supplier-offer-logo) {
	height: 160px;
}

.cltvp-supplier-offer-card .cltvp-supplier-offer-logo {
	width: min(56%, 210px);
	height: 66px;
	padding: 6px;
}

.cltvp-supplier-offer-card > div {
	position: relative;
	min-height: 205px;
	padding: 20px 0 25px;
}

.cltvp-supplier-offer-card h3 {
	max-width: 92%;
}

.cltvp-supplier-offer-card .cltvp-button {
	min-height: 39px;
	padding: 7px 15px;
}

/* The 125% reference band retains breathing room without oversized cards. */
@media (min-width: 1101px) and (max-width: 1600px) {
	.cltvp-destination-module .cltvp-offer-grid {
		grid-template-columns: minmax(0, 1.1fr) minmax(315px, .9fr);
		gap: 22px 34px;
	}

	.cltvp-destination-module .cltvp-offer-grid.count-3 > .cltvp-offer-card:not(:first-child) {
		grid-template-columns: minmax(132px, .68fr) minmax(0, 1.32fr);
	}

	.cltvp-destination-module .cltvp-offer-grid.count-3 > .cltvp-offer-card:not(:first-child) .cltvp-media {
		min-height: 205px;
	}

	.cltvp-explorer .cltvp-offer-card h3 {
		font-size: clamp(20px, 1.75vw, 26px);
	}

	.cltvp-explorer .cltvp-offer-card > .cltvp-offer-copy {
		padding-top: 20px;
	}

	.cltvp-search-offer-grid {
		gap: 28px 20px;
	}
}

@media (max-width: 1120px) {
	.cltvp-search-offer-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 980px) {
	.cltvp-destination-module .cltvp-offer-grid,
	.cltvp-destination-module .cltvp-offer-grid.count-1,
	.cltvp-destination-module .cltvp-offer-grid.count-2 {
		grid-template-columns: 1fr;
	}

	.cltvp-destination-module .cltvp-offer-grid.count-3 > .cltvp-offer-card:first-child {
		grid-row: auto;
	}

	.cltvp-destination-module .cltvp-offer-grid.count-3 > .cltvp-offer-card:not(:first-child) {
		grid-template-columns: minmax(210px, .72fr) minmax(0, 1.28fr);
	}
}

@media (max-width: 700px) {
	.cltvp-search-offer-grid {
		grid-template-columns: 1fr;
	}

	.cltvp-destination-module .cltvp-offer-grid.count-3 > .cltvp-offer-card:not(:first-child) {
		display: flex;
		flex-direction: column;
	}

	.cltvp-destination-module .cltvp-offer-grid.count-3 > .cltvp-offer-card:not(:first-child) .cltvp-media {
		height: auto;
		min-height: 0;
		aspect-ratio: 16 / 9;
	}

	.cltvp-destination-module .cltvp-offer-grid.count-3 > .cltvp-offer-card:not(:first-child) .cltvp-offer-copy {
		padding: 21px 0 25px;
	}

	.cltvp-offer-card .cltvp-media,
	.cltvp-supplier-offer-card figure {
		box-shadow: 7px 7px 0 rgba(223, 207, 188, .32);
	}
}

@media (prefers-reduced-motion: reduce) {
	.cltvp-offer-card figure img {
		transition: none;
	}
}
