/* ─────────────────────────────────────────────────────────────────────────
   WETRIPER — Components
   All reusable UI components built on --c-* design tokens from core.css.
   No --wt-* references. One definition per component.
   ───────────────────────────────────────────────────────────────────────── */

/* ── Card base ──────────────────────────────────────────────────────────── */
.card {
	background: var(--c-surface);
	border: 1px solid var(--c-line);
	border-radius: var(--r-xl);
	overflow: hidden;
}

.card--inset {
	background: var(--c-surface-2);
	border-color: transparent;
}

.card--dark {
	background: var(--c-dark);
	border-color: transparent;
	color: var(--c-white);
}

/* ── Tour card ───────────────────────────────────────────────────────────── */
.tour-card {
	display: flex;
	flex-direction: column;
	/* min-width:0 stops the card's image intrinsic width (768px) from inflating
	   the flex container's min-content size and overflowing the page. */
	min-width: 0;
	background: var(--c-surface);
	border: 1px solid var(--c-line);
	border-radius: var(--r-xl);
	overflow: hidden;
	transition: box-shadow 200ms, transform 200ms;
}

.tour-card:hover {
	box-shadow: var(--shadow-card-hover);
	transform: translateY(-2px);
}

.tour-card__image {
	display: block;
	position: relative;
	aspect-ratio: 3 / 3;
	overflow: hidden;
	background: var(--c-surface-2);
	flex-shrink: 0;
}

.tour-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 350ms ease;
}



.tour-card__duration-badge {
	position: absolute;
	top: var(--sp-4);
	right: var(--sp-4);
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 0.3rem 0.65rem;
	background: var(--c-white);
	border-radius: var(--r-pill);
	font-size: var(--text-xs);
	font-weight: 500;
	white-space: nowrap;
	z-index: 1;
}

.tour-card__duration-badge img,
.tour-card__duration-badge i {
	flex-shrink: 0;
	width: 14px;
	font-size: 0.875rem;
	line-height: 1;
	color: var(--c-ink-2);
}

.tour-card__fallback {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	color: var(--c-muted);
	font-size: var(--text-sm);
}

.tour-card__body {
	display: flex;
	flex-direction: column;
	gap: var(--sp-3);
	padding: var(--sp-5);
	flex: 1;
}

.tour-card__topline {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--sp-2);
	flex-wrap: nowrap;
}

.tour-card__topline .catm-favorite-button {
	flex-shrink: 0;
}

.tour-card__location {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.tour-card__location i {
	font-size: 0.9rem;
	color: var(--c-muted);
	flex-shrink: 0;
	line-height: 1;
}

.tour-card__topline .eyebrow {
	background: none;
	padding: 0;
	border-radius: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.tour-card__body h3 {
	font-size: var(--text-lg);
	font-weight: 600;
	letter-spacing: -0.03em;
	line-height: 1.2;
}

.tour-card__body h3 a {
	color: var(--c-ink);
}

.tour-card__body h3 a:hover {
	color: var(--c-accent);
}

.tour-card__price {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: var(--text-lg);
	font-weight: 700;
	color: var(--c-ink);
}

.tour-card__price i {
	font-size: 0.9rem;
	color: var(--c-muted);
	flex-shrink: 0;
	line-height: 1;
}

.tour-card__meta-strip {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-2);
}

.tour-card__meta-strip span {
	display: inline-flex;
	align-items: center;
	padding: 0.25rem 0.6rem;
	background: var(--c-surface-2);
	border-radius: var(--r-pill);
	font-size: var(--text-xs);
	font-weight: 500;
	color: var(--c-ink-2);
}

.tour-card__body>p {
	font-size: var(--text-sm);
	color: var(--c-muted);
	line-height: 1.55;
	flex: 1;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.tour-card__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--sp-3);
	margin-top: auto;
	padding-top: var(--sp-3);
	border-top: 1px solid var(--c-line);
	font-size: var(--text-sm);
	color: var(--c-muted);
}

.tour-card__footer a {
	font-size: var(--text-sm);
	font-weight: 600;
	color: var(--c-accent);
}

.tour-card__footer a:hover {
	text-decoration: underline;
}

/* ── Trip request card ───────────────────────────────────────────────────── */
.trip-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	gap: var(--sp-3);
	padding: var(--sp-5);
	background: var(--c-surface);
	border: 1px solid var(--c-line);
	border-radius: var(--r-xl);
	transition: box-shadow 200ms, transform 200ms;
}

.trip-card:hover {
	box-shadow: var(--shadow-card-hover);
	transform: translateY(-2px);
}

.trip-card__topline {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--sp-2);
	flex-wrap: nowrap;
}

/* Country label with pin icon */
.trip-card__country {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	font-size: var(--text-sm);
	font-weight: 500;
	color: var(--c-muted);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.trip-card__country svg,
.trip-card__country i { flex-shrink: 0; font-size: 0.875rem; line-height: 1; }

/* Unified badge — outlined pill, no fill */
.trip-card__badge {
	display: inline-flex;
	align-items: center;
	padding: 0.25rem 0.75rem;
	border: 1.5px solid var(--c-line);
	border-radius: var(--r-pill);
	background: var(--c-surface);
	font-size: var(--text-xs);
	font-weight: 500;
	color: var(--c-ink);
	white-space: nowrap;
	flex-shrink: 0;
}
.trip-card__badge--full {
	border-color: var(--c-muted);
	color: var(--c-muted);
}

.trip-card h3 {
	font-size: var(--text-lg);
	font-weight: 600;
	letter-spacing: -0.03em;
	line-height: 1.2;
}

.trip-card h3 a {
	color: var(--c-ink);
}

.trip-card h3 a:hover {
	color: var(--c-accent);
}

/* Meta row — icon + text items separated by dots */
.trip-card__meta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.3rem 0.4rem;
	font-size: var(--text-sm);
	color: var(--c-muted);
}

.trip-card__meta-item {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
}
.trip-card__meta-item svg,
.trip-card__meta-item i { flex-shrink: 0; font-size: 0.875rem; line-height: 1; color: var(--c-muted); }

.trip-card__meta-sep {
	color: var(--c-muted);
	line-height: 1;
	user-select: none;
}

/* Footer: avatar + name | cta */
.trip-card__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--sp-3);
	margin-top: auto;
	padding-top: var(--sp-4);
	border-top: 1px solid var(--c-line);
}

.trip-card__author {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	min-width: 0;
}

.trip-card__avatar {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--c-surface-2);
	color: var(--c-muted);
	flex-shrink: 0;
}
.trip-card__avatar i { font-size: 1.1rem; line-height: 1; }

.trip-card__author-name {
	font-size: var(--text-sm);
	color: var(--c-muted);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.trip-card__cta {
	font-size: var(--text-sm);
	font-weight: 700;
	color: var(--c-ink);
	white-space: nowrap;
	flex-shrink: 0;
}
.trip-card__cta:hover {
	color: var(--c-accent);
}

/* ── Guide card ──────────────────────────────────────────────────────────── */
.guide-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	align-items: flex-start;
	gap: var(--sp-4);
	padding: var(--sp-5);
	background: var(--c-surface);
	border: 1px solid var(--c-line);
	border-radius: var(--r-xl);
	transition: box-shadow 200ms, transform 200ms;
}

.guide-card:hover {
	box-shadow: var(--shadow-card-hover);
	transform: translateY(-2px);
}

.guide-card__avatar {
	display: block;
	width: 72px;
	height: 72px;
	border-radius: var(--r-pill);
	overflow: hidden;
	background: var(--c-surface-2);
	flex-shrink: 0;
}

.guide-card__avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.guide-card h3 {
	font-size: var(--text-lg);
	font-weight: 600;
	letter-spacing: -0.03em;
	margin-top: var(--sp-1);
}

.guide-card h3 a {
	color: var(--c-ink);
}

.guide-card h3 a:hover {
	color: var(--c-accent);
}

.guide-card>div>p {
	font-size: var(--text-sm);
	color: var(--c-muted);
	line-height: 1.55;
	margin-top: var(--sp-2);
}

.guide-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-2);
	margin-top: auto;
	padding-top: var(--sp-3);
	border-top: 1px solid var(--c-line);
	width: 100%;
}

.guide-card__meta span {
	display: inline-flex;
	align-items: center;
	padding: 0.25rem 0.6rem;
	background: var(--c-surface-2);
	border-radius: var(--r-pill);
	font-size: var(--text-xs);
	font-weight: 500;
	color: var(--c-ink-2);
}

/* ── Country / destination card ──────────────────────────────────────────── */
.country-card {
	position: relative;
	display: block;
	min-width: 0;
	aspect-ratio: 3 / 4;
	border-radius: var(--r-xl);
	overflow: hidden;
	background: var(--c-surface-2);
	text-decoration: none;
	color: var(--c-white);
	transition: transform 250ms;
}

.country-card:hover {
	transform: scale(1.02);
}

.country-card img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 350ms ease;
}

.country-card:hover img {
	transform: scale(1.06);
}

.country-card::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(0, 0, 0, 0.65) 0%, rgba(0, 0, 0, 0.1) 60%, transparent 100%);
}

.country-card__body {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	padding: var(--sp-5);
	z-index: 1;
}

.country-card__body h3 {
	font-size: var(--text-lg);
	font-weight: 700;
	letter-spacing: -0.03em;
	color: var(--c-white);
	line-height: 1.1;
}

.country-card__body .eyebrow {
	color: rgba(255, 255, 255, 0.7);
	margin-bottom: var(--sp-2);
}

/* ── Quote / testimonial card ────────────────────────────────────────────── */
.quote-card {
	display: flex;
	flex-direction: column;
	gap: var(--sp-4);
	padding: var(--sp-6);
	background: var(--c-surface);
	border: 1px solid var(--c-line);
	border-radius: var(--r-xl);
}

.quote-card::before {
	content: '\201C';
	font-size: 4rem;
	line-height: 1;
	color: var(--c-accent);
	font-weight: 700;
	display: block;
	margin-bottom: calc(-1 * var(--sp-3));
}

.quote-card>p {
	font-size: var(--text-base);
	color: var(--c-ink-2);
	line-height: 1.7;
	flex: 1;
}

.quote-card>strong {
	font-size: var(--text-sm);
	font-weight: 600;
	color: var(--c-muted);
	letter-spacing: 0.02em;
}

/* ── Blog / content card ─────────────────────────────────────────────────── */
.content-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	gap: var(--sp-4);
	background: var(--c-surface);
	border: 1px solid var(--c-line);
	border-radius: var(--r-xl);
	overflow: hidden;
	transition: box-shadow 200ms, transform 200ms;
}

.content-card:hover {
	box-shadow: var(--shadow-card-hover);
	transform: translateY(-2px);
}

.content-card__image {
	display: block;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--c-surface-2);
}

.content-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 350ms ease;
}

.content-card:hover .content-card__image img {
	transform: scale(1.04);
}

.content-card h3,
.content-card h3 a {
	color: var(--c-ink);
	font-size: var(--text-lg);
	font-weight: 600;
	letter-spacing: -0.03em;
	line-height: 1.25;
	padding-inline: var(--sp-5);
}

.content-card h3 a:hover {
	color: var(--c-accent);
}

.content-card>p,
.content-card .excerpt {
	padding-inline: var(--sp-5);
	padding-bottom: var(--sp-5);
	font-size: var(--text-sm);
	color: var(--c-muted);
	line-height: 1.6;
}

.content-card:not(:has(.content-card__image)) h3,
.content-card:not(:has(.content-card__image))>p {
	padding-top: var(--sp-5);
}

/* ── FAQ item ────────────────────────────────────────────────────────────── */
.faq-item {
	padding: var(--sp-5);
	background: var(--c-surface);
	border: 1px solid var(--c-line);
	border-radius: var(--r-xl);
}

.faq-item summary {
	font-size: var(--text-lg);
	font-weight: 600;
	color: var(--c-ink);
	cursor: pointer;
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--sp-4);
}

.faq-item summary::-webkit-details-marker {
	display: none;
}

.faq-item summary::after {
	content: '+';
	font-size: var(--text-xl);
	font-weight: 300;
	color: var(--c-muted);
	flex-shrink: 0;
	transition: transform 200ms;
}

.faq-item[open] summary::after {
	transform: rotate(45deg);
	color: var(--c-accent);
}

.faq-item>p {
	margin-top: var(--sp-4);
	font-size: var(--text-sm);
	color: var(--c-muted);
	line-height: 1.7;
}

/* ── Favorite button ─────────────────────────────────────────────────────── */
.catm-favorite-button,
.favorite-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border: none;
	border-radius: 50%;
	background: none;
	cursor: pointer;
	padding: 0;
	transition: background 150ms, transform 150ms;
}

/* Both heart SVGs */
.catm-favorite-button .catm-heart-outline,
.catm-favorite-button .catm-heart-solid,
.favorite-btn .catm-heart-outline,
.favorite-btn .catm-heart-solid {
	width: 20px;
	height: 20px;
	flex-shrink: 0;
	transition: color 150ms;
}

/* Default: outline (visible dark/light), solid hidden */
.catm-favorite-button .catm-heart-outline { color: var(--c-ink-2); display: block; }
.catm-favorite-button .catm-heart-solid   { color: #e11d48; display: none; }

/* Saved: filled red shown, outline hidden */
.catm-favorite-button.is-saved .catm-heart-outline,
.catm-favorite-button.is-favorited .catm-heart-outline { display: none; }
.catm-favorite-button.is-saved .catm-heart-solid,
.catm-favorite-button.is-favorited .catm-heart-solid   { display: block; }

/* Hover: preview red */
.catm-favorite-button:not(.is-saved):not(.is-favorited):hover .catm-heart-outline {
	color: #e11d48;
}

.catm-favorite-button:hover {
	background: rgba(225, 29, 72, 0.1);
	transform: scale(1.1);
}

/* ── Search / filter panel ───────────────────────────────────────────────── */
.search-panel {
	display: flex;
	flex-direction: column;
	gap: var(--sp-5);
	padding: var(--sp-5) var(--sp-6);
	background: var(--c-surface);
	border: 1px solid var(--c-line);
	border-radius: var(--r-xl);
}

.search-panel form {
	display: contents;
}

.search-panel .chip-row {
	gap: var(--sp-2);
	flex-wrap: wrap;
}

.search-panel .chip-row .chip {
	cursor: pointer;
	transition: background 150ms, border-color 150ms, color 150ms;
}

.search-panel .chip-row .chip:hover {
	border-color: var(--c-ink);
	color: var(--c-ink);
}

.search-grid {
	display: grid;
	gap: var(--sp-4);
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.search-actions {
	display: flex;
	gap: var(--sp-3);
	flex-wrap: wrap;
}

/* ── Booking form ────────────────────────────────────────────────────────── */
.booking-panel {
	display: flex;
	flex-direction: column;
	gap: var(--sp-5);
	padding: var(--sp-6);
	background: var(--c-surface);
	border: 1px solid var(--c-line);
	border-radius: var(--r-xl);
}

.booking-panel h2 {
	font-size: var(--text-2xl);
	font-weight: 700;
	letter-spacing: -0.04em;
}

.catm-form {
	display: grid;
	gap: var(--sp-4);
}

.catm-form p {
	margin: 0;
}

/* ── Trip / open-trip request card ───────────────────────────────────────── */
.request-card {
	display: flex;
	flex-direction: column;
	gap: var(--sp-4);
	padding: var(--sp-5);
	background: var(--c-surface);
	border: 1px solid var(--c-line);
	border-radius: var(--r-xl);
	transition: box-shadow 200ms, transform 200ms;
}

.request-card:hover {
	box-shadow: var(--shadow-card-hover);
	transform: translateY(-2px);
}

.request-card h3 {
	font-size: var(--text-lg);
	font-weight: 600;
	letter-spacing: -0.03em;
}

.request-card h3 a {
	color: var(--c-ink);
}

.request-card h3 a:hover {
	color: var(--c-accent);
}

.request-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-2);
}

.request-card__meta span {
	display: inline-flex;
	align-items: center;
	padding: 0.25rem 0.6rem;
	background: var(--c-accent-bg);
	border-radius: var(--r-pill);
	font-size: var(--text-xs);
	font-weight: 500;
	color: var(--c-accent);
}

.request-card__meta--owner {
	background: var(--c-ink) !important;
	color: var(--c-white) !important;
}

.request-card__meta--full {
	background: var(--c-muted) !important;
	color: var(--c-white) !important;
	opacity: 0.7;
}

.request-card__meta--spots {
	background: var(--c-accent-bg, #EEF2FF) !important;
	color: var(--c-accent) !important;
	font-weight: 600;
}

.request-card>p {
	font-size: var(--text-sm);
	color: var(--c-muted);
	line-height: 1.6;
}

.request-card__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-top: var(--sp-3);
	border-top: 1px solid var(--c-line);
	font-size: var(--text-sm);
	color: var(--c-muted);
}

/* ── CTA banner ──────────────────────────────────────────────────────────── */
.cta-banner {
	display: grid;
	gap: var(--sp-6);
	grid-template-columns: 1fr auto;
	align-items: center;
	padding: var(--sp-8) var(--sp-8);
	background: var(--c-dark);
	border-radius: var(--r-xl);
	color: var(--c-white);
}

.cta-banner > div { display: grid; gap: var(--sp-5); }

.cta-banner h2 {
	color: var(--c-white);
	font-size: var(--text-3xl);
}

.cta-banner p {
	color: rgba(255, 255, 255, 0.6);
}

.cta-banner .eyebrow {
	color: var(--c-accent);
}

.cta-banner .section-actions {
	display: flex;
	gap: var(--sp-3);
	flex-wrap: wrap;
	flex-shrink: 0;
}

/* ── Split story ─────────────────────────────────────────────────────────── */
.split-story {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--sp-8);
	align-items: center;
	padding: var(--sp-8);
	background: var(--c-surface);
	border: 1px solid var(--c-line);
	border-radius: var(--r-xl);
}

.split-story__copy {
	display: grid;
	gap: var(--sp-5);
}

.split-story__copy h2 {
	font-size: var(--text-3xl);
}

.media-stack {
	display: grid;
	gap: var(--sp-4);
	grid-template-rows: auto;
}

.media-stack__item {
	border-radius: var(--r-lg);
	overflow: hidden;
	aspect-ratio: 4 / 3;
}

.media-stack__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ── Section intro helper ────────────────────────────────────────────────── */
.section-head {
	display: grid;
	gap: var(--sp-3);
	max-width: 52rem;
}

/* When .section-head is also the .shell element (i.e. both classes on the
   same div), the shell already constrains the width via min(). The extra
   max-width:52rem causes it to centre itself narrower than sibling .shell
   card-grids, misaligning the heading with the cards below.
   Removing the max-width here lets the heading shell expand to the full
   container width so its left edge matches the card-grid shell's left edge. */
.shell.section-head {
	max-width: none;
}

.section-head h2 {
	max-width: 22ch;
}

.section-head p {
	color: var(--c-muted);
	max-width: 44ch;
}

.section-head--row {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: var(--sp-5);
	max-width: none;
}

.section-head--row h2 {
	max-width: none;
}

/* ── Stats list ──────────────────────────────────────────────────────────── */
.hero-stats {
	display: grid;
	gap: var(--sp-3);
	padding: 0;
	margin: 0;
	list-style: none;
}

.hero-stats li {
	display: flex;
	align-items: center;
	gap: var(--sp-3);
	padding: var(--sp-3) 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
	color: rgba(255, 255, 255, 0.8);
	font-size: var(--text-sm);
}

.hero-stats li::before {
	content: '→';
	color: var(--c-accent);
	font-weight: 700;
	flex-shrink: 0;
}

/* ── Guide profile page (author.php) ─────────────────────────────────────── */
.guide-profile__header {
	display: flex;
	align-items: flex-start;
	gap: var(--sp-7);
	padding: var(--sp-7) 0 var(--sp-8);
	border-bottom: 1px solid var(--c-line);
}

.guide-profile__avatar {
	width: 120px;
	height: 120px;
	border-radius: var(--r-pill);
	overflow: hidden;
	flex-shrink: 0;
}

.guide-profile__avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.guide-profile__info {
	display: grid;
	gap: var(--sp-3);
}

.guide-profile__name {
	font-size: var(--text-4xl);
	font-weight: 700;
	letter-spacing: -0.05em;
	line-height: 0.95;
}

.guide-profile__meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-2);
}

/* ── Page hero bar (archives, inner pages) ───────────────────────────────── */
.page-hero {
	padding: var(--sp-9) 0 var(--sp-7);
	border-bottom: 1px solid var(--c-line);
	margin-bottom: var(--sp-7);
}

.page-hero .eyebrow {
	margin-bottom: var(--sp-3);
}

.page-hero h1 {
	font-size: var(--text-4xl);
	max-width: 22ch;
	margin-bottom: var(--sp-4);
}

.page-hero p {
	font-size: var(--text-lg);
	color: var(--c-muted);
	max-width: 52ch;
}


/* ── Dashboard ───────────────────────────────────────────────────────────── */
.dashboard-layout {
	display: grid;
	grid-template-columns: 240px 1fr;
	gap: var(--sp-7);
	align-items: start;
}

.dashboard-nav {
	position: sticky;
	top: calc(var(--header-h) + var(--sp-5));
	background: var(--c-surface);
	border: 1px solid var(--c-line);
	border-radius: var(--r-xl);
	overflow: hidden;
}

.dashboard-nav__item {
	display: flex;
	align-items: center;
	gap: var(--sp-3);
	padding: var(--sp-3) var(--sp-5);
	font-size: var(--text-sm);
	font-weight: 500;
	color: var(--c-muted);
	border-bottom: 1px solid var(--c-line);
	transition: background 150ms, color 150ms;
}

.dashboard-nav__item:last-child {
	border-bottom: none;
}

.dashboard-nav__item:hover {
	background: var(--c-surface-2);
	color: var(--c-ink);
}

.dashboard-nav__item.is-active {
	color: var(--c-accent);
	background: var(--c-accent-bg);
}

.dashboard-content {
	display: grid;
	gap: var(--sp-6);
}

.dashboard-stat-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: var(--sp-4);
}

.dashboard-stat {
	padding: var(--sp-5);
	background: var(--c-surface);
	border: 1px solid var(--c-line);
	border-radius: var(--r-xl);
}

.dashboard-stat__value {
	font-size: var(--text-4xl);
	font-weight: 700;
	letter-spacing: -0.06em;
	line-height: 1;
	color: var(--c-ink);
}

.dashboard-stat__label {
	font-size: var(--text-xs);
	color: var(--c-muted);
	margin-top: var(--sp-2);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-weight: 500;
}

/* ── Section shells ──────────────────────────────────────────────────────── */
.section {
	display: grid;
	gap: var(--sp-6);
}

.section--gap-sm {
	gap: var(--sp-5);
}

.section--gap-lg {
	gap: var(--sp-8);
}

/* ── Responsive breakpoints ──────────────────────────────────────────────── */
@media (max-width: 1024px) {
	.cta-banner {
		grid-template-columns: 1fr;
	}

	.split-story {
		grid-template-columns: 1fr;
		padding: var(--sp-6);
	}

	.dashboard-layout {
		grid-template-columns: 1fr;
	}

	.dashboard-nav {
		position: static;
	}
}

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

	.cta-banner {
		padding: var(--sp-6);
	}

	.booking-panel {
		padding: var(--sp-5);
	}

	.guide-profile__header {
		flex-direction: column;
		gap: var(--sp-5);
	}
}

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

	.tour-card__footer {
		flex-direction: column;
		align-items: flex-start;
	}

	/* Section headings with inline CTAs stack vertically on mobile */
	.section-head--row {
		flex-direction: column;
		align-items: flex-start;
		gap: var(--sp-3);
	}

	/* Trip cards: a little tighter on phone */
	.trip-card {
		padding: var(--sp-4);
	}

	/* Quote cards: less padding */
	.quote-card {
		padding: var(--sp-4);
	}
}

/* ── Editorial section wrapper (global — homepage + inner pages) ─────────── */
.editorial-section {
	display: grid;
	gap: var(--sp-6);
	padding-block: clamp(32px, 8vw, 96px);
}

.editorial-section--divider {
	border-top: 1px solid var(--c-line);
}

/* ── Card grid — responsive block layout ─────────────────────────────────── */
.card-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--sp-5);
}

/* Destination cards — 4 equal columns (square-ish country cards) */
.card-grid--destinations {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* Review / quote cards — 3 columns for readability */
.card-grid--reviews {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.card-grid__footer {
	padding-top: var(--sp-5);
	display: flex;
	justify-content: center;
}

@media (max-width: 900px) {
	.card-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.card-grid--destinations {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.card-grid--reviews {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

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

	.card-grid--destinations {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.card-grid--reviews {
		grid-template-columns: 1fr;
	}
}

/* ── Slider — mobile horizontal scroll, desktop CSS grid ──────────────────
   Mobile  : outer .slider clips overflow; inner .slider__track flex-scrolls.
   Desktop : .slider becomes a shell-like grid container; no scroll at all.
   Same HTML both modes — CSS does the switching at 768 px.
   ─────────────────────────────────────────────────────────────────────────── */

/* ── Mobile (default — applied below 768 px via max-width query) ─────────── */
@media (max-width: 768px) {
	.slider {
		overflow: hidden;
		/* clips track — page never sees horizontal overflow */
		padding: 20px 0px 20px 10px;
	}

	.slider__track {
		display: flex;
		gap: var(--sp-4);
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		-ms-overflow-style: none;
		overscroll-behavior-x: contain;
		/* Align first card with shell content */
		padding-inline: var(--gutter);
		/* Room for card box-shadows */
		padding-block: 16px;
		margin-block: -16px;
	}

	.slider__track::-webkit-scrollbar {
		display: none;
	}

	/* Default card width: ~1 card + peek of next */
	.slider__track>* {
		flex: 0 0 clamp(240px, 75vw, 320px);
		scroll-snap-align: start;
		min-width: 0;
	}

	/* Destination cards: show 2 + peek */
	.slider--destinations .slider__track>* {
		flex: 0 0 clamp(150px, 42vw, 220px);
	}

	/* Review cards: ~1 card + peek */
	.slider--reviews .slider__track>* {
		flex: 0 0 clamp(260px, 80vw, 360px);
	}
}

/* ── Desktop (≥ 769 px) — switch to grid, no scroll ─────────────────────── */
@media (min-width: 769px) {

	/* Behave like a .shell — same centering and width as sibling shells */
	.slider {
		width: min(var(--container), calc(100% - var(--gutter) * 2));
		margin-inline: auto;
	}

	.slider__track {
		display: grid;
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: var(--sp-5);
	}

	/* Destination cards — 4 columns */
	.slider--destinations .slider__track {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	/* Review cards — 3 columns */
	.slider--reviews .slider__track {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

