/* Reusable Spot card shared by the homepage and Spot archive. */

.spot-card {
	display: flex;
	min-width: 0;
	overflow: hidden;
	border: 1px solid #ded9cc;
	border-radius: 1.125rem;
	background: #fff;
	box-shadow: 0 1rem 2.5rem rgba(33, 47, 38, 0.08);
	transition: transform 180ms ease, box-shadow 180ms ease;
}

.spot-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 1.25rem 3rem rgba(33, 47, 38, 0.14);
}

.spot-card__link {
	display: flex;
	flex: 1;
	flex-direction: column;
	min-width: 0;
	color: inherit;
	text-decoration: none;
}

.spot-card__link:hover,
.spot-card__link:focus {
	text-decoration: none;
}

.spot-card__link:focus-visible {
	outline: 3px solid #c88343;
	outline-offset: -3px;
}

.spot-card__media {
	position: relative;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: #d9dfd4;
}

.spot-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 350ms ease;
}

.spot-card:hover .spot-card__media img {
	transform: scale(1.035);
}

.spot-card__media-fallback {
	display: grid;
	width: 100%;
	height: 100%;
	place-items: center;
	background:
		linear-gradient(145deg, transparent 52%, rgba(32, 63, 45, 0.22) 52%),
		linear-gradient(30deg, #b8c9ba 38%, #e7dfc9 38% 56%, #8ba78e 56%);
}

.spot-card__media-fallback span {
	padding: 0.35rem 0.75rem;
	border: 1px solid rgba(255, 255, 255, 0.7);
	border-radius: 999px;
	background: rgba(34, 55, 41, 0.72);
	color: #fff;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.spot-card__verification {
	position: absolute;
	top: 0.85rem;
	right: 0.85rem;
	padding: 0.35rem 0.65rem;
	border-radius: 999px;
	background: rgba(248, 246, 238, 0.94);
	color: #254b35;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.spot-card__verification--pending {
	background: rgba(250, 239, 208, 0.96);
	color: #76551b;
}

.spot-card__verification--needs_review {
	background: rgba(239, 235, 223, 0.96);
	color: #5c5548;
}

.spot-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 0.7rem;
	padding: 1.35rem;
}

.spot-card__location {
	margin: 0;
	color: #8b5d37;
	font-size: 0.76rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	overflow-wrap: anywhere;
}

.spot-card__title {
	margin: 0;
	color: #223629;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.25rem, 2vw, 1.55rem);
	line-height: 1.2;
	overflow-wrap: anywhere;
}

.spot-card__excerpt {
	display: -webkit-box;
	overflow: hidden;
	margin: 0;
	color: #59645c;
	font-size: 0.93rem;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

.spot-card__facts {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
	margin-top: 0.15rem;
}

.spot-card__fact,
.spot-card__price {
	padding: 0.3rem 0.55rem;
	border-radius: 0.45rem;
	background: #f3f0e7;
	color: #465148;
	font-size: 0.75rem;
	font-weight: 700;
}

.spot-card__fact--yes {
	background: #e1eee2;
	color: #275c37;
}

.spot-card__fact--no {
	background: #f3e3de;
	color: #7d3f31;
}

.spot-card__cta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: auto;
	padding-top: 0.55rem;
	color: #315a40;
	font-size: 0.88rem;
	font-weight: 800;
}

.spot-card__cta span {
	font-size: 1.15rem;
	transition: transform 180ms ease;
}

.spot-card:hover .spot-card__cta span {
	transform: translateX(4px);
}

@media (prefers-reduced-motion: reduce) {
	.spot-card,
	.spot-card__media img,
	.spot-card__cta span {
		transition: none;
	}
}
