/* ==================================================================
   [tour_cards] — card design shared with the tours page
   A page can hold several of these blocks, so instead of an ID the
   scope is ".tibc:not(#x)": the :not(#x) part gives every selector
   ID-level strength (it matches everything) so theme / Elementor
   rules can't override it. Class prefix: "tibc-".
================================================================== */
.tibc:not(#x) {
	--tibc-navy: #1F2B3B; --tibc-navy-2: #2C3B4F; --tibc-gold: #FFBF1D;
	--tibc-ink: #1B1917; --tibc-muted: #6B7280; --tibc-soft: #9CA3AF; --tibc-line: #E9EAEC;
	font-family: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
	font-size: 16px; line-height: 1.5; color: var(--tibc-ink); text-align: left;
	-webkit-font-smoothing: antialiased; width: 100%;
}
.tibc:not(#x) *, .tibc:not(#x) *::before, .tibc:not(#x) *::after { box-sizing: border-box; }
.tibc:not(#x) :is(div, article, h2, h3, p, span, strong, small, a, img) {
	margin: 0; padding: 0; border: 0; background: none; box-shadow: none; text-shadow: none;
	font-family: inherit; font-size: inherit; font-weight: inherit; font-style: normal; line-height: inherit;
	letter-spacing: normal; text-transform: none; text-decoration: none; color: inherit; border-radius: 0; float: none; transition: none;
}
.tibc:not(#x) img { display: block; max-width: 100%; }
.tibc:not(#x) svg { display: inline-block; flex-shrink: 0; vertical-align: middle; }
.tibc:not(#x) :focus-visible { outline: 3px solid var(--tibc-gold); outline-offset: 3px; }

/* Heading row (optional) */
.tibc:not(#x) .tibc-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 32px; }
.tibc:not(#x) .tibc-title { font-size: clamp(24px, 3vw, 32px); line-height: 1.2; font-weight: 700; letter-spacing: -0.02em; margin-bottom: 6px; }
.tibc:not(#x) .tibc-sub { font-size: 15.5px; line-height: 1.6; color: var(--tibc-muted); max-width: 56ch; }
.tibc:not(#x) .tibc-headlink { font-size: 15px; font-weight: 700; color: var(--tibc-navy); text-decoration: underline; text-underline-offset: 3px; }

/* Grid */
.tibc:not(#x) .tibc-grid { display: grid; grid-template-columns: repeat(var(--tibc-cols, 3), minmax(0, 1fr)); gap: 24px; }
@media (max-width: 1024px) { :is(.tibc--c3, .tibc--c4):not(#x) .tibc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px)  { .tibc:not(#x) .tibc-grid { grid-template-columns: 1fr; } }

/* Slider: one swipeable row */
.tibc--slider:not(#x) .tibc-grid {
	grid-template-columns: none; grid-auto-flow: column;
	grid-auto-columns: calc((100% - (var(--tibc-cols, 3) - 1) * 24px) / var(--tibc-cols, 3));
	overflow-x: auto; scroll-snap-type: x mandatory; padding: 6px 2px 20px; margin: -6px -2px 0; scrollbar-width: thin;
}
.tibc--slider:not(#x) .tibc-card { scroll-snap-align: start; }
@media (max-width: 1024px) { .tibc--slider:not(#x) .tibc-grid { grid-template-columns: none; grid-auto-columns: calc((100% - 24px) / 2); } }
@media (max-width: 640px)  { .tibc--slider:not(#x) .tibc-grid { grid-template-columns: none; grid-auto-columns: 86%; gap: 16px; } }

/* Card */
.tibc:not(#x) .tibc-card {
	position: relative; display: flex; flex-direction: column; overflow: hidden; height: 100%;
	background: #fff; border: 1.5px solid var(--tibc-line); border-radius: 20px;
	transition: transform .25s ease, box-shadow .25s ease, border-color .2s;
}
.tibc:not(#x) .tibc-card:hover { transform: translateY(-6px); box-shadow: 0 22px 44px rgba(31,43,59,.12); border-color: var(--tibc-gold); }
.tibc:not(#x) .tibc-media { position: relative; height: 210px; background: var(--tibc-navy); overflow: hidden; flex-shrink: 0; }
.tibc:not(#x) .tibc-media img { width: 100%; height: 100%; max-width: none; object-fit: cover; transition: transform .6s ease; }
.tibc:not(#x) .tibc-card:hover .tibc-media img { transform: scale(1.06); }
.tibc:not(#x) .tibc-pill {
	position: absolute; top: 14px; right: 14px; display: inline-flex !important; align-items: center; gap: 6px;
	background: rgba(15,23,32,.58); color: #fff; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
	font-size: 12px; font-weight: 600; line-height: 1; padding: 7px 12px; border-radius: 999px;
}
.tibc:not(#x) .tibc-body { display: flex; flex-direction: column; flex: 1; padding: 22px; }
.tibc:not(#x) .tibc-tag { margin-bottom: 6px; font-size: 13px; line-height: 1.4; color: var(--tibc-muted); }
.tibc:not(#x) .tibc-name { margin-bottom: 8px; font-size: 19px; line-height: 1.3; font-weight: 700; letter-spacing: -0.01em; color: var(--tibc-ink); }
.tibc:not(#x) .tibc-name a { color: inherit; }
.tibc:not(#x) .tibc-name a::after { content: ""; position: absolute; inset: 0; z-index: 1; } /* whole card opens the tour */
.tibc:not(#x) .tibc-desc {
	margin-bottom: 18px; font-size: 14px; line-height: 1.6; color: var(--tibc-muted);
	display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.tibc:not(#x) .tibc-meta { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-bottom: 18px; padding-top: 16px; border-top: 1px solid var(--tibc-line); }
.tibc:not(#x) .tibc-meta > span { display: inline-flex !important; align-items: center; gap: 6px; font-size: 13px; font-weight: 500; color: var(--tibc-muted); }
.tibc:not(#x) .tibc-meta svg { color: var(--tibc-soft); }
.tibc:not(#x) .tibc-meta .tibc-star { color: var(--tibc-ink); font-weight: 700; }
.tibc:not(#x) .tibc-meta .tibc-star svg { color: var(--tibc-gold); }
.tibc:not(#x) .tibc-foot { margin-top: auto; display: grid; gap: 14px; }
.tibc:not(#x) .tibc-price { display: flex; align-items: baseline; gap: 6px; }
.tibc:not(#x) .tibc-price small { font-size: 13px; color: var(--tibc-soft); }
.tibc:not(#x) .tibc-price strong { font-size: 24px; line-height: 1.1; font-weight: 700; letter-spacing: -0.02em; color: var(--tibc-ink); white-space: nowrap; }
.tibc:not(#x) .tibc-price span { font-size: 12.5px; color: var(--tibc-muted); }
.tibc:not(#x) .tibc-actions { position: relative; z-index: 2; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.tibc:not(#x) .tibc-actions--one { grid-template-columns: 1fr; }
.tibc:not(#x) .tibc-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	border: 1.5px solid transparent; border-radius: 12px; padding: 12px 16px;
	font-size: 14px; line-height: 1.2; font-weight: 700; white-space: nowrap; text-align: center;
	transition: background .2s, color .2s, border-color .2s, transform .2s;
}
.tibc:not(#x) .tibc-btn:hover { transform: translateY(-2px); }
.tibc:not(#x) .tibc-btn--ghost { background: #fff; color: var(--tibc-navy); border-color: var(--tibc-line); }
.tibc:not(#x) .tibc-btn--ghost:hover { background: #fff; color: var(--tibc-navy); border-color: var(--tibc-navy); }
.tibc:not(#x) .tibc-btn--navy { background: var(--tibc-navy); color: #fff; }
.tibc:not(#x) .tibc-btn--navy:hover { background: var(--tibc-navy-2); color: #fff; }

@media (prefers-reduced-motion: reduce) { .tibc:not(#x) * { transition: none !important; } }
