/* Drink With Us — Place card

   Sits above your prose about each place. Image, name, address and hours
   all come from the listing, so nothing here can drift out of date
   independently of the listing you maintain. */

.dwu-place {
	--dwu-p-ink: var(--color-inky-green, #0f2e26);
	--dwu-p-soft: rgba(15, 46, 38, 0.66);
	--dwu-p-rule: rgba(15, 46, 38, 0.12);
	--dwu-p-accent: var(--color-dusty-mauve, #ba7157);
	display: flex;
	gap: var(--space-5, 1.25rem);
	margin: var(--space-8, 2rem) 0 var(--space-6, 1.5rem);
	padding: var(--space-4, 1rem);
	background: #fff;
	border: 1px solid var(--dwu-p-rule);
	border-radius: 12px;
}

/* Image size. On an art guide the photo is doing real work, so it takes
   roughly a third of the card rather than sitting as a thumbnail. */

.dwu-place__media {
	flex: none;
	width: clamp(200px, 34%, 320px);
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border-radius: 10px;
	background: rgba(15, 46, 38, 0.05);
}

.dwu-place__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.35s ease;
}

.dwu-place:hover .dwu-place__media img {
	transform: scale(1.03);
}

.dwu-place__body {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
}

.fl-page .dwu-place .dwu-place__name {
	margin: 0;
	font-family: var(--font-heading, sans-serif);
	font-size: 1.25rem;
	font-weight: 400;
	line-height: 1.2;
	letter-spacing: -0.005em;
}

.fl-page .dwu-place .dwu-place__name a {
	color: var(--dwu-p-ink);
	text-decoration: none;
}

.fl-page .dwu-place .dwu-place__name a:hover {
	color: var(--dwu-p-accent);
}

.fl-page .dwu-place .dwu-place__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 2px 8px;
	margin: 0;
	max-width: none;
	color: var(--dwu-p-soft);
	font-family: var(--font-body, sans-serif);
	font-size: 0.8125rem !important;
	line-height: 1.35 !important;
	letter-spacing: 0.01em !important;
}

.dwu-place__city::before,
.dwu-place__hours::before {
	content: "·";
	margin-right: 8px;
	opacity: 0.6;
}

.dwu-place__meta > span:first-child::before {
	content: "";
	margin: 0;
}

.fl-page .dwu-place .dwu-place__note {
	margin: 2px 0 0;
	max-width: none;
	color: var(--dwu-p-accent);
	font-size: 0.8125rem !important;
	line-height: 1.45 !important;
	font-style: italic;
}

/* Actions */

.fl-page .dwu-place .dwu-place__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 14px;
	margin: 6px 0 0;
	max-width: none;
	font-size: 0.75rem !important;
	line-height: 1.2 !important;
}

.fl-page .dwu-place .dwu-place__link {
	color: var(--dwu-p-ink);
	font-family: var(--font-body, sans-serif);
	font-size: 0.75rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
	border-bottom: 1px solid rgba(15, 46, 38, 0.28);
	padding-bottom: 1px;
	transition: color 0.2s ease, border-color 0.2s ease;
}

.fl-page .dwu-place .dwu-place__link:hover {
	color: var(--dwu-p-accent);
	border-bottom-color: var(--dwu-p-accent);
}

/* The add-to-trip button is styled by the unified trip-control block
   in the site stylesheet (section 7), alongside the archive tiles,
   guide cards and map cards. Nothing is set here — two definitions
   with !important on both is what made the saved state render green
   on one card and red on another. Only layout belongs here. */

.dwu-place__actions .dwu-place__add {
	flex: 0 0 auto;
}

/* Stacked variant */

.dwu-place--stacked {
	flex-direction: column;
}

.dwu-place--stacked .dwu-place__media {
	width: 100%;
	aspect-ratio: 3 / 2;
}

/* Full-bleed variant — for the one or two places in a guide that deserve
   a proper photo rather than a card. [dwu_place layout="feature"] */

.dwu-place--feature {
	flex-direction: column;
	gap: 0;
	padding: 0;
	border: 0;
	background: transparent;
}

.dwu-place--feature .dwu-place__media {
	width: 100%;
	aspect-ratio: 16 / 9;
	border-radius: 12px;
}

.dwu-place--feature .dwu-place__body {
	padding: var(--space-4, 1rem) 0 0;
}

.fl-page .dwu-place--feature .dwu-place__name {
	font-size: 1.5rem;
}

.dwu-place--no-image .dwu-place__body {
	justify-content: flex-start;
}

.dwu-place__notice {
	padding: 10px 12px;
	border: 1px dashed var(--dwu-saved, #8f2c33);
	border-radius: 6px;
	color: var(--dwu-saved, #8f2c33);
	font-size: 13px;
}

@media (max-width: 600px) {
	.dwu-place {
		flex-direction: column;
		gap: var(--space-3, 0.75rem);
	}

	.dwu-place__media {
		width: 100%;
		aspect-ratio: 3 / 2;
	}
}

@media (prefers-reduced-motion: reduce) {
	.dwu-place__media img,
	.fl-page .dwu-place .dwu-place__link,
	.fl-page .dwu-place .dwu-place__add {
		transition: none;
	}
}

@media print {
	.dwu-place__add {
		display: none !important;
	}
}
