/* Tour + guide + testimonial cards, and the grids that hold them */

.tour-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
	gap: var(--zgb-space-6);
}

/* ---- Tour card ----------------------------------------------------- */
.tour-card {
	position: relative;
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 0;
	border-radius: var(--zgb-radius);
	overflow: hidden;
	box-shadow: var(--zgb-shadow-soft);
	transition: transform var(--zgb-dur-fast) var(--zgb-ease-out), box-shadow var(--zgb-dur-fast) var(--zgb-ease-out);
}
.tour-card:hover { transform: translateY(-6px); box-shadow: var(--zgb-shadow-warm); }
.tour-card.is-hidden { display: none; }

.tour-card__media { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; }
.tour-card__img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--zgb-ease-settle); }
.tour-card:hover .tour-card__img { transform: scale(1.06); }
.tour-card__img--placeholder { background: var(--zgb-cream-deep); }
.tour-card__media::after {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(to top, rgba(22, 17, 14, .45), transparent 45%);
	opacity: 0; transition: opacity var(--zgb-dur-fast);
}
.tour-card:hover .tour-card__media::after { opacity: 1; }

.tour-card__cat {
	position: absolute; top: 12px; left: 12px; z-index: 2;
	background: rgba(255, 255, 255, .92); color: var(--zgb-blue-dark);
	-webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
	padding: .32em .75em; border-radius: var(--zgb-radius-pill);
	font: 600 var(--zgb-fs-kicker)/1 var(--zgb-font-head);
	letter-spacing: .04em; text-transform: uppercase;
}
.tour-card__badge {
	position: absolute; top: 12px; right: 12px; z-index: 2;
	background: var(--zgb-green); color: #fff;
	font-size: var(--zgb-fs-kicker); font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
	padding: .32em .75em; border-radius: var(--zgb-radius-pill);
}

.tour-card__body { display: flex; flex-direction: column; gap: var(--zgb-space-2); padding: var(--zgb-space-5); flex: 1; }
.tour-card__title { font-size: var(--zgb-fs-h3); margin: 0; }
.tour-card__title a { color: var(--zgb-black); }
.tour-card__title a:hover { color: var(--zgb-terracotta-dark); }
/* Stretched link: the whole card is clickable via the single title link */
.tour-card__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.tour-card__excerpt { color: var(--zgb-ink-soft); font-size: .95rem; }
.tour-card__meta { display: flex; align-items: center; justify-content: space-between; gap: var(--zgb-space-3); margin-top: auto; font-size: var(--zgb-fs-sm); color: var(--zgb-muted); }
.tour-card__meta-left { display: inline-flex; align-items: center; gap: var(--zgb-space-3); }
.tour-card__price { color: var(--zgb-wine); font-weight: 700; }
.tour-card__more { margin-top: var(--zgb-space-3); font-weight: 600; font-family: var(--zgb-font-head); color: var(--zgb-terracotta); }
.tour-card__more span { display: inline-block; transition: transform var(--zgb-dur-fast) var(--zgb-ease-out); }
.tour-card:hover .tour-card__more span { transform: translateX(4px); }


/* ---- Guide card ---------------------------------------------------- */
.guides-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--zgb-space-6); }
/* Home guides: centered row that stays centered for any count (1–4) */
.guides-row {
	display: flex; flex-wrap: wrap;
	justify-content: center;
	gap: clamp(1.5rem, 4vw, 3.5rem);
}
.guides-row .guide-card { flex: 0 1 260px; max-width: 300px; }
.guide-card { text-align: center; }
.guide-card__media { display: block; width: 168px; aspect-ratio: 1; margin: 0 auto var(--zgb-space-4); border-radius: 50%; overflow: hidden;
	box-shadow: 0 0 0 0 var(--zgb-green-soft);
	transition: box-shadow var(--zgb-dur) var(--zgb-ease-out), transform var(--zgb-dur) var(--zgb-ease-out); }
.guide-card:hover .guide-card__media { box-shadow: 0 0 0 6px color-mix(in srgb, var(--zgb-green) 30%, transparent); transform: translateY(-4px); }
.guide-card__img { width: 100%; height: 100%; object-fit: cover; }
.guide-card__name { font-size: var(--zgb-fs-lg); margin: 0 0 var(--zgb-space-1); }
.guide-card__name a { color: var(--zgb-black); }
.guide-card__name a:hover { color: var(--zgb-blue-dark); }
.guide-card__role {
	display: inline-block;
	color: var(--zgb-blue-dark); font-weight: 600; font-size: var(--zgb-fs-kicker);
	text-transform: uppercase; letter-spacing: .08em;
	margin: 0 0 var(--zgb-space-2);
}
.guide-card__bio { color: var(--zgb-ink-soft); font-size: .95rem; }
.guide-card__link {
	display: inline-block; margin-top: var(--zgb-space-3);
	font-family: var(--zgb-font-head); font-weight: 600; font-size: var(--zgb-fs-sm);
	color: var(--zgb-blue-dark);
}
.guide-card__link span { display: inline-block; transition: transform var(--zgb-dur-fast) var(--zgb-ease-out); }
.guide-card__link:hover span { transform: translateX(4px); }
/* On the home slider the link is optional chrome — keep it subtle */
.zgb-guides-swiper .guide-card__link { margin-top: var(--zgb-space-2); }

/* ---- Testimonial --------------------------------------------------- */
.testimonial {
	position: relative;
	background: var(--zgb-cream);
	border: 0; border-radius: var(--zgb-radius);
	padding: var(--zgb-space-6);
	display: flex; flex-direction: column; gap: var(--zgb-space-3);
	height: 100%;
	box-shadow: var(--zgb-shadow-soft);
}
.testimonial::before {
	content: "\201C"; font-family: Georgia, "Times New Roman", serif;
	font-size: 4rem; line-height: .8; height: .55em; color: var(--zgb-blue); opacity: .35;
}
.testimonial .zgb-stars { color: var(--zgb-gold); }
.testimonial__quote { font-size: 1.05rem; color: var(--zgb-ink-soft); font-style: italic; }
.testimonial__quote p { margin-bottom: 0; }
.testimonial__more {
	align-self: flex-start;
	background: none; border: 0; padding: 0; cursor: pointer;
	font-family: var(--zgb-font-head); font-weight: 600; font-size: var(--zgb-fs-sm);
	color: var(--zgb-blue-dark);
}
.testimonial__more[hidden] { display: none; }
.testimonial__more:hover { color: var(--zgb-blue); }
.testimonial__more span { display: inline-block; transition: transform var(--zgb-dur-fast) var(--zgb-ease-out); }
.testimonial__more:hover span { transform: translateX(3px); }
.testimonial__author { margin-top: auto; font-weight: 600; font-family: var(--zgb-font-head); color: var(--zgb-wine); }

/* ============================================================
   REVIEWS — editorial glass card on the dusk band.
   Scoped to .zgb-reviews-swiper so the light-band grid card
   (parts/reviews.php on tour pages) is untouched.
   ============================================================ */
/* Section heading "Tasted, loved, remembered" — smaller + not bold. */
.reviews-section .section-title--center {
	font-size: clamp(1.5rem, 1.2rem + 1.1vw, 2rem);
	font-weight: 400;
	letter-spacing: -0.01em;
}

.zgb-reviews-swiper {
	max-width: 760px;
	margin-inline: auto;
	padding-inline: var(--zgb-gutter);
	padding-bottom: 0;            /* control rail lives outside now */
	overflow: visible;            /* glow/accent not clipped */
}
.zgb-reviews-swiper .swiper-slide { padding: 0; }

/* The card → minimal: no box. A centered, editorial quote floating on the
   dusk band (#0e323a). No background, border, blur or shadow. */
.zgb-reviews-swiper .testimonial {
	position: relative;
	text-align: center;
	align-items: center;
	gap: var(--zgb-space-3);
	background: none;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
	padding: clamp(0.5rem, 3vw, 2rem) clamp(1rem, 6vw, 3.5rem) 0;
}

/* Centered gradient quotation mark, in flow above the quote (first flex item) */
.zgb-reviews-swiper .testimonial::before {
	content: "\201C";
	display: block; order: 0;
	pointer-events: none;
	font-family: Georgia, "Times New Roman", serif; font-weight: 700;
	font-size: clamp(3.5rem, 9vw, 5.5rem); line-height: .7;
	background: linear-gradient(135deg, var(--zgb-green-soft), var(--zgb-blue-soft));
	-webkit-background-clip: text; background-clip: text;
	-webkit-text-fill-color: transparent; color: transparent;
	opacity: .9; margin: 0;
}
@supports not ((-webkit-background-clip: text) or (background-clip: text)) {
	.zgb-reviews-swiper .testimonial::before {
		-webkit-text-fill-color: var(--zgb-green-soft);
		color: var(--zgb-green-soft);
	}
}

/* Visual order: quote → stars → author (DOM order is stars, quote, author) */
.zgb-reviews-swiper .testimonial__quote  { order: 1; }
.zgb-reviews-swiper .zgb-stars            { order: 2; }
.zgb-reviews-swiper .testimonial__author  { order: 3; }

/* Stars — centered, below the quote */
.zgb-reviews-swiper .zgb-stars {
	color: var(--zgb-gold-soft);
	font-size: .95rem; gap: .14em; letter-spacing: .14em;
	filter: drop-shadow(0 1px 0 rgba(0,0,0,.25));
}

/* The hero quote — Poppins, editorial, centered, airy */
.zgb-reviews-swiper .testimonial__quote {
	font-family: var(--zgb-font-head);
	font-weight: 400; font-style: normal;
	font-size: 1.2rem;
	line-height: 1.5; letter-spacing: -0.01em;
	color: var(--zgb-cream);
	max-width: 60ch; margin-inline: auto;
	text-wrap: pretty;
}
.zgb-reviews-swiper .testimonial__quote p { margin: 0; }

/* Author — centered name + source, no avatar box */
.zgb-reviews-swiper .testimonial__author {
	display: flex; flex-direction: column; align-items: center; gap: 2px;
	margin-top: var(--zgb-space-3);
}
.zgb-reviews-swiper .testimonial__avatar { display: none; }
.zgb-reviews-swiper .testimonial__byline {
	display: flex; flex-direction: column; align-items: center; text-align: center; gap: 2px;
}
.zgb-reviews-swiper .testimonial__name,
.zgb-reviews-swiper .testimonial__author a.testimonial__name {
	font-family: var(--zgb-font-head); font-weight: 600; font-size: 1.05rem;
	color: #fff; text-decoration: none;
}
.zgb-reviews-swiper .testimonial__author a.testimonial__name:hover { color: var(--zgb-green-soft); }
.zgb-reviews-swiper .testimonial__source {
	font-family: var(--zgb-font-body); font-weight: 400; font-size: var(--zgb-fs-sm);
	color: var(--zgb-green-soft); font-style: normal;
}

/* ---- Control rail BELOW the card (fixes arrow overlap) ---- */
.reviews-section .reviews-nav {
	display: flex; align-items: center; justify-content: center;
	gap: clamp(1rem, 3vw, 2rem);
	margin-top: clamp(1.75rem, 4vw, 2.75rem);
}
.reviews-section .reviews-nav .swiper-button-prev,
.reviews-section .reviews-nav .swiper-button-next {
	/* !important overrides Swiper bundle's `position:absolute;top:50%` and its
	   `display:none!important` so the arrows live in the rail, not over text. */
	position: static !important;
	margin: 0 !important; top: auto !important; left: auto !important; right: auto !important;
	width: 46px !important; height: 46px !important; margin-top: 0 !important;
	border-radius: var(--zgb-radius-pill);
	background: rgba(255,255,255,.06);
	border: 1px solid color-mix(in srgb, var(--zgb-cream) 28%, transparent);
	color: var(--zgb-cream); box-shadow: none;
	display: inline-flex !important; align-items: center; justify-content: center;
	transition: background var(--zgb-dur-fast) var(--zgb-ease-out),
	            border-color var(--zgb-dur-fast), color var(--zgb-dur-fast),
	            transform var(--zgb-dur-fast);
}
.reviews-section .swiper-button-prev::after,
.reviews-section .swiper-button-next::after { font-size: .85rem; font-weight: 700; }
.reviews-section .swiper-button-prev:hover,
.reviews-section .swiper-button-next:hover {
	background: linear-gradient(135deg, var(--zgb-green), var(--zgb-blue));
	border-color: transparent; color: #fff; transform: scale(1.06);
}
.reviews-section .swiper-button-prev:focus-visible,
.reviews-section .swiper-button-next:focus-visible {
	outline: 2px solid var(--zgb-blue-soft); outline-offset: 2px;
}
.reviews-section .swiper-button-disabled { opacity: .3; }

/* Bullets -> dashes (scoped). !important beats Swiper bundle's
   `.swiper-pagination{position:absolute}` and bullet background/transform. */
.reviews-section .reviews-nav .swiper-pagination {
	position: static !important; width: auto !important;
	transform: none !important;
	display: inline-flex; align-items: center; gap: 8px;
}
.reviews-section .swiper-pagination-bullet {
	background: transparent !important;   /* kill Swiper bundle's round dot */
	opacity: 1 !important; transform: none !important;
	margin: 0 3px !important;
}
.reviews-section .swiper-pagination-bullet::before {
	width: 18px; height: 2px; border-radius: 2px;
	background: color-mix(in srgb, var(--zgb-cream) 32%, transparent);
}
.reviews-section .swiper-pagination-bullet:hover::before {
	background: color-mix(in srgb, var(--zgb-green-soft) 70%, transparent);
}
.reviews-section .swiper-pagination-bullet-active::before {
	width: 32px;
	background: linear-gradient(90deg, var(--zgb-green), var(--zgb-blue));
}

@media (max-width: 480px) {
	.zgb-reviews-swiper .testimonial__avatar { width: 40px; height: 40px; }
	.reviews-section .swiper-button-prev,
	.reviews-section .swiper-button-next { width: 42px; height: 42px; }
}

@media (prefers-reduced-motion: reduce) {
	.reviews-section .swiper-button-prev,
	.reviews-section .swiper-button-next,
	.reviews-section .swiper-pagination-bullet::before,
	.zgb-reviews-swiper .testimonial,
	.zgb-reviews-swiper .testimonial * {
		transition: none !important; animation: none !important;
	}
	.reviews-section .swiper-button-prev:hover,
	.reviews-section .swiper-button-next:hover { transform: none; }
}

@media (max-width: 480px) {
	.tour-grid { grid-template-columns: 1fr; }
}
