/* Tribe Watersports Microsite — brand CSS
   Scoped under .tribe-camp so it does not leak into the surrounding theme.
   Mirrors the print brochure design system: Anton + Inter + Fraunces,
   sky/ocean/ink/sand palette, signature heading device.
*/

@font-face { font-family: 'Anton';    src: url('../fonts/Anton-Regular.woff2') format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Inter';    src: url('../fonts/Inter-Regular.woff2') format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Inter';    src: url('../fonts/Inter-SemiBold.woff2') format('woff2'); font-weight: 600; font-display: swap; }
@font-face { font-family: 'Inter';    src: url('../fonts/Inter-Bold.woff2') format('woff2'); font-weight: 700; font-display: swap; }
@font-face { font-family: 'Fraunces'; src: url('../fonts/Fraunces-Italic.woff2') format('woff2'); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: 'Fraunces'; src: url('../fonts/Fraunces-LightItalic.woff2') format('woff2'); font-weight: 300; font-style: italic; font-display: swap; }

/* Anchor jump offset so the sticky bar + drop-down badge don't cover the target heading. */
html { scroll-padding-top: 170px; }
@media (max-width: 900px) { html { scroll-padding-top: 140px; } }
@media (max-width: 640px) { html { scroll-padding-top: 120px; } }

.tribe-camp,
.tribe-form {
	--sky:    #3FB6E6;
	--ocean:  #1E4A8C;
	--ink:    #0B1E3D;
	--sand:   #F6F1E8;
	--paper:  #FFFFFF;
	--line:   rgba(11, 30, 61, 0.12);
	--mute:   rgba(11, 30, 61, 0.62);
	--shadow: 0 18px 40px -20px rgba(11, 30, 61, 0.35);
}

.tribe-camp,
.tribe-form {
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	color: var(--ink);
	line-height: 1.55;
	font-size: 16px;
	background: var(--paper);
}

.tribe-camp *,
.tribe-form * { box-sizing: border-box; }

.tribe-camp img { max-width: 100%; height: auto; display: block; }

.tribe-camp a {
	color: var(--ocean);
	text-decoration: none;
	border-bottom: 1px solid currentColor;
}
.tribe-camp a:hover { color: var(--sky); }

/* ---------- Layout primitives ---------- */

.tribe-section {
	padding: 96px 0;
	position: relative;
	overflow: hidden;
	isolation: isolate;
}
.tribe-section--tight   { padding: 64px 0; }
.tribe-section--sand    { background: var(--sand); }
.tribe-section--ink     { background: var(--ink); color: #fff; }
.tribe-section--ocean   { background: var(--ocean); color: #fff; }
.tribe-section--ink a,
.tribe-section--ocean a { color: #fff; }
.tribe-section > .tribe-container { position: relative; z-index: 2; }

/* ---------- Brand-graphic accents ---------- */

/* Shield, half bleeding off a section edge.
   Sized so the bottom point of the shield sits at the vertical midpoint of
   the section (the bisecting cut), with the body extending up and bleeding
   off the section top. translateX(±50%) drops half the width off the side. */
.tribe-shield-bg {
	position: absolute;
	top: 10%;
	height: 60%;
	width: auto;
	opacity: 0.10;
	z-index: 1;
	pointer-events: none;
	user-select: none;
}
.tribe-shield-bg--right {
	right: 0;
	transform: translateX(50%);
}
.tribe-shield-bg--left {
	left: 0;
	transform: translateX(-50%) scaleX(-1);
}
.tribe-section--ink .tribe-shield-bg,
.tribe-section--ocean .tribe-shield-bg { opacity: 0.13; filter: brightness(3); }

/* Zebra stripes as a faint full-section background.
   Big block of artwork in one corner of the section, faded softly on every
   edge with a radial mask so it blends rather than crops as a hard shape. */
.tribe-zebra-bg {
	position: absolute;
	inset: 0;
	background-image: url('../img/zebra-clean.png');
	background-size: 75% auto;
	background-position: 115% 110%;
	background-repeat: no-repeat;
	opacity: 0.08;
	z-index: 1;
	pointer-events: none;
	mask-image: radial-gradient(ellipse 55% 65% at 78% 75%, black 0%, black 28%, transparent 95%);
	-webkit-mask-image: radial-gradient(ellipse 55% 65% at 78% 75%, black 0%, black 28%, transparent 95%);
}
.tribe-zebra-bg--left {
	background-position: -15% 110%;
	mask-image: radial-gradient(ellipse 55% 65% at 22% 75%, black 0%, black 28%, transparent 95%);
	-webkit-mask-image: radial-gradient(ellipse 55% 65% at 22% 75%, black 0%, black 28%, transparent 95%);
}
/* Center variant: zebra fills the middle, fades softly on all edges.
   Used on text-heavy sections where the artwork sits behind the copy. */
.tribe-zebra-bg--center {
	background-position: center center;
	background-size: 68% auto;
	mask-image: radial-gradient(ellipse 60% 70% at center, black 0%, black 35%, transparent 95%);
	-webkit-mask-image: radial-gradient(ellipse 60% 70% at center, black 0%, black 35%, transparent 95%);
}
/* Fill variant: zebra covers the whole section, only the outer edges feather. */
.tribe-zebra-bg--fill {
	inset: -12%;
	background-position: center center;
	background-size: 108% auto;
	background-repeat: no-repeat;
	mask-image: radial-gradient(ellipse 75% 80% at center, black 0%, black 55%, transparent 100%);
	-webkit-mask-image: radial-gradient(ellipse 75% 80% at center, black 0%, black 55%, transparent 100%);
}
.tribe-section--ink .tribe-zebra-bg,
.tribe-section--ocean .tribe-zebra-bg { opacity: 0.12; filter: invert(1) brightness(2); }

/* Zebra corner accent — large block in one corner of the section, soft-faded
   on every edge so it dissolves into the section rather than cropping hard.  */
.tribe-zebra-corner {
	position: absolute;
	width: 560px;
	max-width: 55%;
	opacity: 0.13;
	z-index: 1;
	pointer-events: none;
	user-select: none;
	mask-image: radial-gradient(ellipse 60% 60% at center, black 0%, black 28%, transparent 90%);
	-webkit-mask-image: radial-gradient(ellipse 60% 60% at center, black 0%, black 28%, transparent 90%);
}
.tribe-zebra-corner--tr {
	top: -90px;
	right: -90px;
}
.tribe-zebra-corner--bl {
	bottom: -90px;
	left: -90px;
	transform: scaleX(-1);
}
.tribe-section--ink .tribe-zebra-corner,
.tribe-section--ocean .tribe-zebra-corner { opacity: 0.17; filter: invert(1) brightness(2); }

@media (max-width: 760px) {
	.tribe-zebra-corner { width: 360px; max-width: 70%; }
	.tribe-zebra-corner--tr { top: -60px; right: -60px; }
	.tribe-zebra-corner--bl { bottom: -60px; left: -60px; }
}

/* ---------- Hover effects on image cards ---------- */

.tribe-card,
.tribe-activity,
.tribe-doit-card {
	transition: transform 0.3s cubic-bezier(0.2, 0.7, 0.3, 1), box-shadow 0.3s ease;
	will-change: transform;
}
.tribe-card:hover,
.tribe-activity:hover,
.tribe-doit-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 22px 40px -22px rgba(11, 30, 61, 0.32);
}

.tribe-card__media,
.tribe-activity__media,
.tribe-doit-card__media,
.tribe-more-camp__media {
	transition: transform 0.7s cubic-bezier(0.2, 0.7, 0.3, 1);
	transform-origin: center center;
	will-change: transform;
}
.tribe-card:hover .tribe-card__media,
.tribe-activity:hover .tribe-activity__media,
.tribe-doit-card:hover .tribe-doit-card__media,
.tribe-more-camp:hover .tribe-more-camp__media {
	transform: scale(1.06);
}

/* More-camps strip already has lift; add image scale to match the rest. */
.tribe-more-camp__media { transition: transform 0.7s cubic-bezier(0.2, 0.7, 0.3, 1); }

@media (prefers-reduced-motion: reduce) {
	.tribe-card, .tribe-activity, .tribe-doit-card, .tribe-more-camp,
	.tribe-card__media, .tribe-activity__media, .tribe-doit-card__media, .tribe-more-camp__media {
		transition: none !important;
	}
	.tribe-card:hover, .tribe-activity:hover, .tribe-doit-card:hover,
	.tribe-card:hover .tribe-card__media, .tribe-activity:hover .tribe-activity__media,
	.tribe-doit-card:hover .tribe-doit-card__media, .tribe-more-camp:hover .tribe-more-camp__media {
		transform: none !important;
	}
	.tribe-hero__bg { animation: none !important; }
	.tribe-reveal, .tribe-reveal > * { opacity: 1 !important; transform: none !important; }
}

/* ---------- Ken Burns on hero photos ---------- */

.tribe-hero__bg {
	animation: tribe-ken-burns 28s ease-in-out infinite alternate;
	transform-origin: center center;
	will-change: transform;
}
@keyframes tribe-ken-burns {
	0%   { transform: scale(1) translate(0, 0); }
	100% { transform: scale(1.07) translate(-1%, 0.5%); }
}

/* ---------- Reveal-on-scroll ---------- */

.tribe-reveal {
	opacity: 0;
	transform: translateY(22px);
	transition: opacity 0.85s cubic-bezier(0.2, 0.7, 0.3, 1), transform 0.85s cubic-bezier(0.2, 0.7, 0.3, 1);
	will-change: opacity, transform;
}
.tribe-reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

/* Stagger children — used when a grid container is the reveal trigger. */
.tribe-reveal-stagger > * {
	opacity: 0;
	transform: translateY(18px);
	transition: opacity 0.7s cubic-bezier(0.2, 0.7, 0.3, 1), transform 0.7s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.tribe-reveal-stagger.is-visible > * { opacity: 1; transform: translateY(0); }
.tribe-reveal-stagger.is-visible > *:nth-child(1) { transition-delay: 0s; }
.tribe-reveal-stagger.is-visible > *:nth-child(2) { transition-delay: 0.08s; }
.tribe-reveal-stagger.is-visible > *:nth-child(3) { transition-delay: 0.16s; }
.tribe-reveal-stagger.is-visible > *:nth-child(4) { transition-delay: 0.24s; }
.tribe-reveal-stagger.is-visible > *:nth-child(5) { transition-delay: 0.32s; }
.tribe-reveal-stagger.is-visible > *:nth-child(6) { transition-delay: 0.40s; }

/* Magnetic buttons hint — slightly smoother transition so cursor-follow feels organic. */
.tribe-btn { transition: transform 0.22s cubic-bezier(0.2, 0.7, 0.3, 1), background 0.2s ease, color 0.2s ease; }

/* ---------- Camp picker — branded bar with hover-reveal dropdown ---------- */

/* The picker section overrides default section clipping so the dropdown can
   extend below the section into the page beneath, and stacks above the
   following section via z-index. */
.tribe-section--picker {
	overflow: visible !important;
	isolation: auto !important;
	z-index: 10;
	padding: 56px 0 64px;
}

.tribe-picker-wrap {
	position: relative;
	margin: 48px auto 0;
	max-width: 920px;
	text-align: center;
}
.tribe-picker-dropdown { text-align: left; }
.tribe-picker-trigger {
	cursor: pointer;
	position: relative;
}
.tribe-picker-trigger--badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.tribe-picker-trigger--badge .tribe-camp-nav__badge {
	margin: 0;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
	cursor: pointer;
}
.tribe-picker-wrap:hover .tribe-picker-trigger--badge .tribe-camp-nav__badge,
.tribe-picker-wrap.is-open .tribe-picker-trigger--badge .tribe-camp-nav__badge {
	transform: translateY(-4px);
	box-shadow: 0 14px 30px rgba(0, 0, 0, 0.30), 0 0 0 5px rgba(63, 182, 230, 0.18);
}
.tribe-picker-trigger::after {
	content: "";
	position: absolute;
	bottom: -14px;
	left: 50%;
	width: 14px;
	height: 14px;
	border-right: 2px solid var(--ocean);
	border-bottom: 2px solid var(--ocean);
	transform: translateX(-50%) rotate(45deg);
	transition: transform 0.25s ease, opacity 0.2s;
	z-index: 5;
}
.tribe-picker-wrap:hover .tribe-picker-trigger::after,
.tribe-picker-wrap.is-open .tribe-picker-trigger::after {
	transform: translateX(-50%) rotate(225deg);
}

.tribe-picker-dropdown {
	position: absolute;
	top: calc(100% + 12px);
	left: 0;
	right: 0;
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 4px;
	box-shadow: 0 22px 50px -18px rgba(11, 30, 61, 0.4);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-8px);
	transition: opacity 0.25s ease, transform 0.25s cubic-bezier(0.2, 0.7, 0.3, 1), visibility 0.25s;
	z-index: 30;
	max-height: 60vh;
	overflow-y: auto;
	overscroll-behavior: contain;
}
.tribe-picker-wrap:hover .tribe-picker-dropdown,
.tribe-picker-wrap:focus-within .tribe-picker-dropdown,
.tribe-picker-wrap.is-open .tribe-picker-dropdown {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.tribe-picker-item {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	gap: 16px;
	padding: 22px 28px;
	color: var(--ink) !important;
	text-decoration: none;
	border: 0 !important;
	border-bottom: 1px solid var(--line) !important;
	transition: background 0.18s ease, padding-left 0.25s ease;
}
.tribe-picker-item:last-child { border-bottom: 0 !important; }
.tribe-picker-item:hover {
	background: var(--sand);
	padding-left: 36px;
}
.tribe-picker-item__title {
	font-family: 'Anton', sans-serif;
	font-size: 22px;
	letter-spacing: 0.01em;
	text-transform: uppercase;
	line-height: 1;
	margin-bottom: 4px;
}
.tribe-picker-item__title em {
	font-family: 'Fraunces', serif;
	font-style: italic;
	font-weight: 400;
	text-transform: lowercase;
	color: var(--ocean);
}
.tribe-picker-item__meta {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--mute);
}
.tribe-picker-item__arrow {
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--sky);
	transition: transform 0.25s ease;
}
.tribe-picker-item:hover .tribe-picker-item__arrow {
	transform: translateX(4px);
}

/* Bar variant scoped to picker — non-sticky, click/hover trigger. */
.tribe-camp-nav--picker { position: relative; top: auto; cursor: pointer; }

/* ---------- In-nav badge dropdown ---------- */

.tribe-nav-picker {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	outline: none;
	z-index: 5;
	/* Return transition (going back to centered on bar) — bouncy */
	transition: top 0.6s cubic-bezier(0.34, 1.56, 0.64, 1), transform 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.tribe-camp-nav.is-stuck .tribe-nav-picker {
	top: 100%;
	transform: translate(-50%, -30%);
	/* Drop transition (going to hanging-below state) — smooth, no bounce */
	transition: top 0.35s cubic-bezier(0.2, 0.7, 0.3, 1), transform 0.35s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.tribe-nav-picker__trigger { display: block; }
.tribe-nav-picker__dropdown {
	position: absolute;
	top: calc(100% + 14px);
	left: 50%;
	transform: translate(-50%, -8px);
	width: 340px;
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 4px;
	box-shadow: 0 22px 50px -18px rgba(11, 30, 61, 0.4);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s linear;
	z-index: 40;
	overflow: hidden;
	text-align: left;
}
.tribe-nav-picker:hover .tribe-nav-picker__dropdown,
.tribe-nav-picker:focus-within .tribe-nav-picker__dropdown,
.tribe-nav-picker.is-open .tribe-nav-picker__dropdown {
	opacity: 1;
	visibility: visible;
	transform: translate(-50%, 0);
}
.tribe-nav-picker__item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 14px 22px;
	color: var(--ink) !important;
	text-decoration: none;
	border: 0 !important;
	border-bottom: 1px solid var(--line) !important;
	transition: background 0.18s ease, padding-left 0.18s ease;
}
.tribe-nav-picker__item:last-child { border-bottom: 0 !important; }
.tribe-nav-picker__item:hover {
	background: var(--sand);
	padding-left: 30px;
}
.tribe-nav-picker__item--home {
	background: var(--ocean);
	color: #fff !important;
}
.tribe-nav-picker__item--home:hover {
	background: var(--ink);
	color: #fff !important;
}
.tribe-nav-picker__item-title {
	font-family: 'Anton', sans-serif;
	font-size: 17px;
	letter-spacing: 0.01em;
	text-transform: uppercase;
	line-height: 1.05;
}
.tribe-nav-picker__item-title em {
	font-family: 'Fraunces', serif;
	font-style: italic;
	font-weight: 400;
	text-transform: lowercase;
	color: var(--ocean);
}
.tribe-nav-picker__item--home .tribe-nav-picker__item-title em { color: var(--sky); }
.tribe-nav-picker__item-arrow {
	font-family: 'Inter', sans-serif;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--sky);
	flex: 0 0 auto;
}
.tribe-nav-picker__item.is-current { background: var(--sand); }
.tribe-nav-picker__item.is-current .tribe-nav-picker__item-arrow { color: var(--ocean); }

/* Section-anchor items inside the dropdown — hidden by default (bar quick-jumps cover them) */
.tribe-nav-picker__header,
.tribe-nav-picker__item--anchor { display: none; }

/* ---------- Stay / accommodation showcase ---------- */

.tribe-stay-photos {
	display: grid;
	grid-template-rows: auto auto;
	gap: 12px;
}
.tribe-stay-photos__hero {
	aspect-ratio: 16 / 10;
	background-size: cover;
	background-position: center;
	border-radius: 4px;
}
.tribe-stay-photos__pair {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
}
.tribe-stay-photos__pair > div {
	aspect-ratio: 4 / 3;
	background-size: cover;
	background-position: center;
	border-radius: 4px;
}
.tribe-stay-meta {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--ocean);
	margin-bottom: 8px;
}
.tribe-stay-name {
	font-family: 'Anton', sans-serif;
	font-size: 38px;
	letter-spacing: 0.01em;
	text-transform: uppercase;
	line-height: 1;
	margin: 0 0 14px;
	color: var(--ink);
}
.tribe-stay-name em {
	font-family: 'Fraunces', serif;
	font-style: italic;
	font-weight: 300;
	text-transform: lowercase;
	color: var(--ocean);
}
.tribe-stay-block + .tribe-stay-block { margin-top: 56px; }
@media (max-width: 760px) {
	.tribe-stay-name { font-size: 30px; }
	.tribe-stay-photos__pair { grid-template-columns: 1fr 1fr; }
}

/* ---------- From-per-week headline hook ---------- */

.tribe-from-hook {
	display: flex;
	align-items: center;
	gap: 28px;
	margin: 32px 0 12px;
	padding: 26px 36px;
	background: var(--ocean);
	color: #fff;
	border-radius: 6px;
	position: relative;
	overflow: hidden;
}
.tribe-from-hook::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(110deg, transparent 35%, rgba(63, 182, 230, 0.28) 50%, transparent 65%);
	background-size: 220% 100%;
	background-position: -110% 0;
	animation: tribe-hook-shimmer 6s ease-in-out infinite;
	pointer-events: none;
}
@keyframes tribe-hook-shimmer {
	0%   { background-position: -110% 0; }
	60%  { background-position: 110% 0; }
	100% { background-position: 110% 0; }
}
@media (prefers-reduced-motion: reduce) {
	.tribe-from-hook::before { animation: none; }
}

/* ---------- Scroll progress bar ---------- */
.tribe-scroll-progress {
	position: fixed;
	top: 0;
	left: 0;
	width: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--sky), var(--ocean));
	z-index: 100;
	pointer-events: none;
	transition: width 0.08s linear;
}
@media (prefers-reduced-motion: reduce) {
	.tribe-scroll-progress { transition: none; }
}
.tribe-from-hook__label {
	font-family: 'Fraunces', serif;
	font-style: italic;
	font-weight: 300;
	font-size: 22px;
	color: rgba(255, 255, 255, 0.88);
	position: relative;
	z-index: 1;
}
.tribe-from-hook__price {
	font-family: 'Anton', sans-serif;
	font-size: 64px;
	line-height: 1;
	letter-spacing: -0.01em;
	position: relative;
	z-index: 1;
}
.tribe-from-hook__unit {
	font-family: 'Inter', sans-serif;
	font-size: 11px;
	line-height: 1.3;
	text-transform: uppercase;
	letter-spacing: 0.18em;
	font-weight: 700;
	position: relative;
	z-index: 1;
}
.tribe-from-hook__caption {
	margin-left: auto;
	font-size: 13px;
	line-height: 1.5;
	max-width: 280px;
	text-align: right;
	color: rgba(255, 255, 255, 0.85);
	position: relative;
	z-index: 1;
}
@media (max-width: 720px) {
	.tribe-from-hook {
		flex-wrap: wrap;
		padding: 22px 24px;
		gap: 18px;
	}
	.tribe-from-hook__price { font-size: 52px; }
	.tribe-from-hook__caption {
		margin-left: 0;
		text-align: left;
		max-width: none;
		flex-basis: 100%;
	}
}

/* badge cursor on the trigger */
.tribe-nav-picker .tribe-camp-nav__badge { cursor: pointer; transition: transform 0.2s ease; }
.tribe-nav-picker:hover .tribe-camp-nav__badge,
.tribe-nav-picker:focus-within .tribe-camp-nav__badge { transform: translateY(-3px); }

/* ---------- Tabs ---------- */

.tribe-tabs {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 22px;
	margin-bottom: 56px;
	border-bottom: 0;
}
.tribe-tab {
	background: #fff;
	border: 1.5px solid var(--line);
	border-radius: 6px;
	padding: 36px 24px 30px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 18px;
	cursor: pointer;
	color: var(--ocean);
	text-align: center;
	transition: transform 0.3s cubic-bezier(0.2, 0.7, 0.3, 1), box-shadow 0.3s, border-color 0.3s, background 0.3s;
	min-width: 0;
}
.tribe-tab:hover {
	transform: translateY(-4px);
	box-shadow: 0 22px 36px -18px rgba(11, 30, 61, 0.3);
	border-color: var(--sky);
}
.tribe-tab.is-active {
	background: var(--ocean);
	border-color: var(--ocean);
	color: #fff;
	box-shadow: 0 18px 34px -16px rgba(30, 74, 140, 0.55);
}
.tribe-tab.is-active .tribe-tab__icon { color: var(--sky); }
.tribe-tab__icon {
	width: 64px;
	height: 64px;
	display: block;
	object-fit: contain;
	/* Black PNG → ocean blue via filter (matches --ocean #1E4A8C). */
	filter: brightness(0) saturate(100%) invert(20%) sepia(72%) saturate(2400%) hue-rotate(208deg) brightness(94%) contrast(94%);
	transition: filter 0.3s, transform 0.3s;
}
.tribe-tab.is-active .tribe-tab__icon {
	/* Black PNG → sky blue (matches --sky #3FB6E6). */
	filter: brightness(0) saturate(100%) invert(78%) sepia(34%) saturate(900%) hue-rotate(160deg) brightness(99%) contrast(94%);
}
.tribe-tab:hover .tribe-tab__icon { transform: translateY(-2px) scale(1.05); }
.tribe-tab__label {
	font-family: 'Anton', sans-serif;
	font-size: 22px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	line-height: 1.05;
}
.tribe-tab__sublabel {
	font-family: 'Inter', sans-serif;
	font-weight: 600;
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	opacity: 0.7;
	margin-top: -8px;
}
@media (max-width: 720px) {
	.tribe-tabs { grid-template-columns: 1fr; gap: 12px; margin-bottom: 36px; }
	.tribe-tab { flex-direction: row; padding: 22px 22px; gap: 18px; text-align: left; }
	.tribe-tab__icon { width: 44px; height: 44px; flex: 0 0 44px; }
	.tribe-tab__sublabel { margin-top: 0; }
}

.tribe-tab-panel { display: none; }
.tribe-tab-panel.is-active { display: block; animation: tribe-fade-in 0.25s ease-out; }
@keyframes tribe-fade-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }

.tribe-facts {
	display: grid;
	grid-template-columns: 140px 1fr;
	gap: 14px 20px;
	font-size: 15px;
	margin: 0;
}
.tribe-facts dt {
	font-weight: 700;
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ocean);
	padding-top: 2px;
}
.tribe-facts dd {
	margin: 0;
	color: var(--ink);
}

.tribe-doit-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 32px;
}
.tribe-doit-card {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 4px;
	overflow: hidden;
}
.tribe-doit-card__media {
	aspect-ratio: 16 / 10;
	background-size: cover;
	background-position: center;
	position: relative;
}
.tribe-doit-card__label {
	position: absolute;
	top: 16px;
	left: 16px;
	background: var(--sky);
	color: #fff;
	font-family: 'Anton', sans-serif;
	font-size: 16px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 7px 14px;
	border-radius: 2px;
}
.tribe-doit-card__body {
	padding: 26px 30px 32px;
	font-size: 16px;
	color: var(--ink);
	line-height: 1.55;
}

.tribe-service-row {
	display: grid;
	grid-template-columns: 360px 1fr;
	gap: 32px;
	align-items: center;
	margin-bottom: 32px;
	padding-bottom: 32px;
	border-bottom: 1px solid var(--line);
}
.tribe-service-row__media { overflow: hidden; }
.tribe-service-row { overflow: visible; }
.tribe-service-row__media-wrap { overflow: hidden; border-radius: 4px; }
.tribe-service-row:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.tribe-service-row__media {
	aspect-ratio: 4 / 3;
	background-size: cover;
	background-position: center;
	border-radius: 4px;
}
.tribe-service-row__name {
	font-family: 'Anton', sans-serif;
	font-size: 26px;
	text-transform: uppercase;
	margin: 0 0 10px 0;
}

@media (max-width: 900px) {
	.tribe-service-row { grid-template-columns: 1fr; gap: 18px; }
	.tribe-facts { grid-template-columns: 1fr; gap: 4px 0; }
	.tribe-facts dd { margin-bottom: 12px; }
}
@media (max-width: 720px) {
	.tribe-doit-grid { grid-template-columns: 1fr; gap: 24px; }
	.tribe-tab { min-width: 50%; font-size: 11px; padding: 16px 10px; }
}

.tribe-container {
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 32px;
}
.tribe-container--narrow { max-width: 820px; }

.tribe-grid {
	display: grid;
	gap: 32px;
}
.tribe-grid--2 { grid-template-columns: repeat(2, 1fr); }
.tribe-grid--3 { grid-template-columns: repeat(3, 1fr); }
.tribe-grid--4 { grid-template-columns: repeat(4, 1fr); }
.tribe-grid--5 { grid-template-columns: repeat(5, 1fr); }
.tribe-grid--auto { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }

/* 5-item staggered layout: top row of 3, bottom row of 2 offset to sit between
   the top row's gaps for a uniform diamond rhythm. Falls back gracefully. */
.tribe-grid--5-staggered {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 32px;
}
.tribe-grid--5-staggered > *:nth-child(1) { grid-column: 1 / span 2; }
.tribe-grid--5-staggered > *:nth-child(2) { grid-column: 3 / span 2; }
.tribe-grid--5-staggered > *:nth-child(3) { grid-column: 5 / span 2; }
.tribe-grid--5-staggered > *:nth-child(4) { grid-column: 2 / span 2; }
.tribe-grid--5-staggered > *:nth-child(5) { grid-column: 4 / span 2; }
@media (max-width: 900px) {
	.tribe-grid--5-staggered { grid-template-columns: repeat(2, 1fr); }
	.tribe-grid--5-staggered > * { grid-column: auto !important; }
}
@media (max-width: 560px) {
	.tribe-grid--5-staggered { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
	.tribe-grid--2,
	.tribe-grid--3,
	.tribe-grid--4,
	.tribe-grid--5 { grid-template-columns: 1fr; }
	.tribe-section { padding: 64px 0; }
	.tribe-container { padding: 0 20px; }
}

/* ---------- Typography ---------- */

.tribe-eyebrow {
	display: inline-block;
	font-family: 'Inter', sans-serif;
	font-weight: 700;
	font-size: 11px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--ocean);
	margin-bottom: 18px;
}
.tribe-section--ink .tribe-eyebrow,
.tribe-section--ocean .tribe-eyebrow,
.tribe-hero .tribe-eyebrow { color: var(--sky); }

.tribe-section--ink .tribe-mute,
.tribe-section--ocean .tribe-mute { color: rgba(255, 255, 255, 0.7); }
.tribe-section--ink .tribe-mute a,
.tribe-section--ocean .tribe-mute a { color: #fff; }

.tribe-h1, .tribe-h2, .tribe-h3 {
	font-family: 'Anton', 'Inter', sans-serif;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.01em;
	line-height: 0.94;
	margin: 0 0 24px 0;
	color: inherit;
}
.tribe-h1 { font-size: clamp(48px, 7vw, 92px); }
.tribe-h2 { font-size: clamp(38px, 5vw, 64px); }
.tribe-h3 { font-size: clamp(28px, 3.6vw, 40px); }

.tribe-h1 em, .tribe-h2 em, .tribe-h3 em {
	font-family: 'Fraunces', serif;
	font-style: italic;
	font-weight: 400;
	text-transform: lowercase;
	letter-spacing: 0;
	color: var(--ocean);
}
/* On dark sections and over the hero photo, sky-blue keeps contrast. */
.tribe-section--ink .tribe-h1 em,
.tribe-section--ink .tribe-h2 em,
.tribe-section--ink .tribe-h3 em,
.tribe-section--ocean .tribe-h1 em,
.tribe-section--ocean .tribe-h2 em,
.tribe-section--ocean .tribe-h3 em,
.tribe-hero .tribe-h1 em {
	color: var(--sky);
}

.tribe-kicker {
	font-family: 'Fraunces', serif;
	font-style: italic;
	font-weight: 300;
	color: var(--sky);
	font-size: 22px;
	margin-bottom: 8px;
}
.tribe-hero .tribe-kicker {
	color: #fff;
	font-weight: 400;
	text-shadow: 0 2px 8px rgba(0, 0, 0, 0.55);
}
.tribe-hero__inline-logo {
	display: block;
	height: 56px;
	width: auto;
	margin-bottom: 20px;
	filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.8)) drop-shadow(0 4px 16px rgba(0, 0, 0, 0.55));
}
@media (max-width: 760px) {
	.tribe-hero__inline-logo { height: 40px; margin-bottom: 16px; }
}

.tribe-lede {
	font-size: 19px;
	line-height: 1.55;
	color: var(--ink);
	max-width: 62ch;
}
.tribe-section--ink .tribe-lede,
.tribe-section--ocean .tribe-lede { color: rgba(255,255,255,0.85); }

.tribe-body p { margin: 0 0 14px 0; }
.tribe-body p:last-child { margin-bottom: 0; }

.tribe-mute {
	color: var(--mute);
	font-size: 14px;
}

/* ---------- Hero ---------- */

.tribe-hero {
	position: relative;
	min-height: 44vh;
	color: #fff;
	overflow: hidden;
	isolation: isolate;
	background: var(--ink);
	display: flex;
	align-items: flex-end;
}
.tribe-hero__bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	z-index: 1;
}
.tribe-hero__scrim {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(11,30,61,0.05) 0%, rgba(11,30,61,0.10) 40%, rgba(11,30,61,0.55) 75%, rgba(11,30,61,0.78) 100%);
	z-index: 2;
}
.tribe-hero--tinted .tribe-hero__scrim {
	background: linear-gradient(180deg, rgba(11,30,61,0.60) 0%, rgba(11,30,61,0.32) 40%, rgba(11,30,61,0.60) 75%, rgba(11,30,61,0.85) 100%);
}
.tribe-hero--tinted {
	min-height: 36vh;
}
.tribe-hero--tinted .tribe-hero__inner {
	padding: 40px 0;
}
/* Welcome hero: logo lifted out of content flow and pinned to the top-right
   corner of the hero. Kicker / H1 / strap return to their default sizes. */
.tribe-hero--tinted .tribe-hero__inline-logo {
	position: absolute;
	top: 32px;
	right: 32px;
	z-index: 4;
	height: clamp(90px, 11vw, 160px);
	margin-bottom: 0;
	max-width: 42%;
}
@media (max-width: 760px) {
	.tribe-hero--tinted .tribe-hero__inline-logo {
		height: 64px;
		top: 18px;
		right: 16px;
		max-width: 45%;
	}
}
.tribe-hero__inner {
	position: relative;
	z-index: 3;
	width: 100%;
	padding: 56px 0;
}
.tribe-hero h1 {
	color: #fff;
	margin-bottom: 18px;
	max-width: 16ch;
}
.tribe-hero__logo {
	position: absolute;
	top: 22px;
	left: 24px;
	height: 32px;
	width: auto;
	z-index: 4;
	opacity: 0.85;
	filter: drop-shadow(0 1px 4px rgba(0,0,0,0.4));
}
@media (max-width: 760px) {
	.tribe-hero__logo { height: 24px; top: 16px; left: 16px; }
}
.tribe-hero__strap {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.78);
	margin-top: 14px;
}
.tribe-hero__zebra {
	position: absolute;
	right: -120px;
	bottom: -80px;
	width: 480px;
	max-width: 60%;
	opacity: 0.12;
	z-index: 2;
	pointer-events: none;
	mask-image: linear-gradient(to top left, black 30%, transparent 80%);
	-webkit-mask-image: linear-gradient(to top left, black 30%, transparent 80%);
}
.tribe-hero__side-cta {
	position: absolute;
	right: 32px;
	top: 50%;
	transform: translateY(-50%);
	z-index: 5;
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	padding: 22px 18px;
	background: rgba(11, 30, 61, 0.78);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: 4px;
	color: #fff !important;
	font-family: 'Inter', sans-serif;
	font-weight: 700;
	font-size: 12px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	text-decoration: none;
	text-align: center;
	max-width: 80px;
	line-height: 1.4;
	transition: background 0.2s ease, transform 0.2s ease;
}
.tribe-hero__side-cta::after {
	content: "";
	display: block;
	width: 18px;
	height: 18px;
	border-right: 2px solid var(--sky);
	border-bottom: 2px solid var(--sky);
	transform: rotate(-45deg);
	margin-top: 4px;
}
.tribe-hero__side-cta:hover {
	background: var(--ocean);
	transform: translateY(-50%) translateX(-2px);
	color: #fff !important;
}
@media (max-width: 760px) {
	.tribe-hero__side-cta { right: 16px; padding: 16px 12px; font-size: 10px; max-width: 60px; }
}

/* ---------- Section heading block ---------- */

.tribe-section-head {
	margin-bottom: 48px;
	max-width: 760px;
}

/* ---------- Credentials strip ---------- */

.tribe-creds {
	display: flex;
	flex-wrap: wrap;
	gap: 36px 56px;
	align-items: center;
	justify-content: center;
	padding: 28px 0;
}
.tribe-creds img {
	height: 72px;
	width: auto;
	opacity: 0.78;
	filter: grayscale(1);
	transition: opacity 0.2s;
}
@media (max-width: 760px) {
	.tribe-creds img { height: 54px; }
	.tribe-creds { gap: 24px 36px; }
}
.tribe-creds img:hover { opacity: 1; }
.tribe-creds__label {
	width: 100%;
	text-align: center;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--mute);
	margin-bottom: 10px;
}

/* ---------- Edition / option card ---------- */

.tribe-card {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 4px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}
.tribe-card__media {
	aspect-ratio: 16 / 10;
	background-size: cover;
	background-position: center;
	position: relative;
}
.tribe-card__tab {
	position: absolute;
	top: 14px;
	left: 14px;
	background: var(--sky);
	color: #fff;
	font-family: 'Anton', sans-serif;
	font-size: 14px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 6px 12px;
	border-radius: 2px;
}
.tribe-card__body {
	padding: 28px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	flex: 1;
}
.tribe-card__title {
	font-family: 'Anton', sans-serif;
	font-size: 30px;
	text-transform: uppercase;
	line-height: 1;
	margin: 0;
}
.tribe-card__meta {
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--ocean);
}
.tribe-card__price {
	font-family: 'Anton', sans-serif;
	font-size: 22px;
	color: var(--ocean);
}

/* ---------- Itinerary / data table ---------- */

.tribe-data {
	width: 100%;
	border-collapse: collapse;
	font-size: 15px;
}
.tribe-data th,
.tribe-data td {
	text-align: left;
	padding: 14px 16px;
	border-bottom: 1px solid var(--line);
	vertical-align: top;
}
.tribe-data thead th {
	background: var(--ocean);
	color: #fff;
	font-family: 'Inter', sans-serif;
	font-weight: 700;
	font-size: 12px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}
.tribe-data tbody tr:nth-child(even) td { background: rgba(11,30,61,0.025); }
.tribe-data__seg {
	font-family: 'Anton', sans-serif;
	font-size: 18px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--ocean);
}

/* ---------- Activity card ---------- */

.tribe-activity {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 4px;
	overflow: hidden;
}
.tribe-activity__media {
	aspect-ratio: 4 / 3;
	background-size: cover;
	background-position: center;
}
.tribe-activity__body {
	padding: 20px 22px 24px;
}
.tribe-activity__name {
	font-family: 'Anton', sans-serif;
	font-size: 21px;
	text-transform: uppercase;
	letter-spacing: 0.01em;
	margin: 0 0 6px 0;
	line-height: 1.05;
}
.tribe-activity__desc {
	font-size: 14px;
	line-height: 1.5;
	color: var(--mute);
}

/* ---------- Wholesale (gated) block ---------- */

.tribe-wholesale {
	background: linear-gradient(180deg, var(--sand) 0%, #fff 100%);
	border: 1px solid var(--line);
	border-radius: 6px;
	padding: 40px 40px 44px;
	position: relative;
	box-shadow: var(--shadow);
}
.tribe-wholesale__tag {
	position: absolute;
	top: -14px;
	left: 32px;
	background: var(--ocean);
	color: #fff;
	font-family: 'Inter', sans-serif;
	font-weight: 700;
	font-size: 11px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	padding: 6px 14px;
	border-radius: 2px;
}

.tribe-gate {
	background: var(--ink);
	color: #fff;
	border-radius: 6px;
	padding: 56px 40px;
	text-align: center;
	background-image: radial-gradient(circle at 80% 0%, rgba(63,182,230,0.18), transparent 60%);
}
.tribe-gate h3 {
	color: #fff;
	margin-bottom: 14px;
}
.tribe-gate p {
	max-width: 56ch;
	margin: 0 auto 26px;
	color: rgba(255,255,255,0.78);
}

/* ---------- Buttons ---------- */

.tribe-btn {
	display: inline-block;
	font-family: 'Inter', sans-serif;
	font-weight: 700;
	font-size: 13px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	padding: 16px 28px;
	background: var(--sky);
	color: #fff !important;
	border: 0;
	border-radius: 2px;
	cursor: pointer;
	transition: background 0.2s, transform 0.15s;
	border-bottom: 0 !important;
}
.tribe-btn:hover { background: var(--ocean); color: #fff !important; transform: translateY(-1px); }
.tribe-btn--ghost {
	background: transparent;
	color: #fff !important;
	border: 1px solid rgba(255,255,255,0.4) !important;
}
.tribe-btn--ghost:hover { background: rgba(255,255,255,0.12); }
.tribe-btn--dark {
	background: var(--ocean);
}
.tribe-btn--dark:hover { background: var(--sky); }

.tribe-cta-row {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	align-items: center;
	margin-top: 24px;
}

/* ---------- Form ---------- */

.tribe-form {
	background: #fff;
	padding: 0;
}
.tribe-form__inner {
	max-width: 680px;
	margin: 0 auto;
}
.tribe-field {
	display: block;
	margin-bottom: 18px;
}
.tribe-field label {
	display: block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--ocean);
	margin-bottom: 6px;
}
.tribe-field input,
.tribe-field select,
.tribe-field textarea {
	width: 100%;
	padding: 14px 16px;
	font-family: inherit;
	font-size: 16px;
	color: var(--ink);
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 2px;
	transition: border-color 0.2s, box-shadow 0.2s;
}
.tribe-field input:focus,
.tribe-field select:focus,
.tribe-field textarea:focus {
	outline: none;
	border-color: var(--sky);
	box-shadow: 0 0 0 3px rgba(63,182,230,0.18);
}
.tribe-field textarea { min-height: 130px; resize: vertical; }
.tribe-field--hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
.tribe-form__notice {
	margin-top: 18px;
	padding: 14px 18px;
	border-radius: 2px;
	font-size: 14px;
}
.tribe-form__notice--ok    { background: #E8F6EF; color: #14513F; }
.tribe-form__notice--error { background: #FCE8E6; color: #872A22; }

/* ---------- Login card ---------- */

.tribe-login-card {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 6px;
	padding: 40px 36px;
	max-width: 460px;
	margin: 0 auto;
	box-shadow: var(--shadow);
}
.tribe-login-card h3 {
	font-family: 'Anton', sans-serif;
	font-size: 32px;
	text-transform: uppercase;
	margin: 0 0 18px;
}

/* ---------- Itinerary alt: nights chart ---------- */

.tribe-itinerary {
	display: grid;
	grid-template-columns: 140px 1fr 1.5fr;
	gap: 0;
	border-top: 1px solid var(--line);
}
.tribe-itinerary > div {
	padding: 18px 16px;
	border-bottom: 1px solid var(--line);
}
.tribe-itinerary__seg {
	font-family: 'Anton', sans-serif;
	font-size: 17px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--ocean);
}
.tribe-itinerary__loc {
	font-weight: 600;
	color: var(--ink);
}
.tribe-itinerary__desc {
	color: var(--mute);
	font-size: 15px;
}
@media (max-width: 760px) {
	.tribe-itinerary { grid-template-columns: 1fr; }
	.tribe-itinerary > div { border-bottom: 0; padding: 8px 0; }
	.tribe-itinerary > div:nth-child(3n) { border-bottom: 1px solid var(--line); padding-bottom: 18px; margin-bottom: 8px; }
}

/* ---------- Specs row (4-up tile) ---------- */

.tribe-specs {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0;
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
}
.tribe-specs > div {
	padding: 28px 24px;
	border-right: 1px solid var(--line);
}
.tribe-specs > div:last-child { border-right: 0; }
.tribe-specs__label {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--mute);
	margin-bottom: 6px;
}
.tribe-specs__value {
	font-family: 'Anton', sans-serif;
	font-size: 22px;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	color: var(--ink);
	line-height: 1.05;
}
@media (max-width: 760px) {
	.tribe-specs { grid-template-columns: repeat(2, 1fr); }
	.tribe-specs > div { border-right: 0; border-bottom: 1px solid var(--line); }
	.tribe-specs > div:nth-child(odd)  { border-right: 1px solid var(--line); }
	.tribe-specs > div:nth-last-child(-n+2) { border-bottom: 0; }
}

/* ---------- Misc utilities ---------- */

.tribe-list {
	list-style: none;
	padding: 0;
	margin: 0;
}
.tribe-list li {
	padding-left: 26px;
	position: relative;
	margin-bottom: 10px;
}
.tribe-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 10px;
	width: 14px;
	height: 2px;
	background: var(--sky);
}

.tribe-divider {
	border: 0;
	border-top: 1px solid var(--line);
	margin: 0;
}

.tribe-pill {
	display: inline-block;
	background: var(--sky);
	color: #fff;
	font-family: 'Inter', sans-serif;
	font-weight: 700;
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	padding: 5px 10px;
	border-radius: 2px;
	margin-right: 6px;
}

.tribe-footer-call {
	display: flex;
	gap: 24px;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	margin-top: 24px;
	font-size: 14px;
	color: rgba(255,255,255,0.78);
}
.tribe-footer-call a { color: #fff; border-bottom-color: rgba(255,255,255,0.4); }

.tribe-stub {
	padding: 96px 32px;
	text-align: center;
	background: var(--sand);
}

/* ---------- Sticky camp-picker nav ---------- */

.tribe-camp-nav {
	position: sticky;
	top: 0;
	z-index: 30;
	background: var(--ocean);
	color: #fff;
	padding: 12px 0;
	box-shadow: 0 6px 18px -8px rgba(0,0,0,0.25);
}
.tribe-camp-nav::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(110deg, transparent 35%, rgba(63, 182, 230, 0.20) 50%, transparent 65%);
	background-size: 220% 100%;
	background-position: -110% 0;
	animation: tribe-bar-shimmer 8s ease-in-out infinite;
	pointer-events: none;
	z-index: 0;
}
@keyframes tribe-bar-shimmer {
	0%   { background-position: -110% 0; }
	55%  { background-position: 110% 0; }
	100% { background-position: 110% 0; }
}
@media (prefers-reduced-motion: reduce) {
	.tribe-camp-nav::before { animation: none; }
}
.tribe-camp-nav__inner { position: relative; z-index: 1; }
.tribe-camp-nav__inner {
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 24px;
}
.tribe-camp-nav__group {
	display: flex;
	gap: 28px;
	align-items: center;
	flex: 1;
}
.tribe-camp-nav__group--left  { justify-content: flex-end; padding-right: 88px; }
.tribe-camp-nav__group--right { justify-content: flex-start; padding-left: 88px; }
.tribe-camp-nav__link {
	color: rgba(255,255,255,0.72) !important;
	font-family: 'Inter', sans-serif;
	font-weight: 600;
	font-size: 12px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	padding: 8px 2px;
	border: 0 !important;
	border-bottom: 2px solid transparent !important;
	transition: color 0.2s, border-color 0.2s;
	text-decoration: none;
	white-space: nowrap;
}
.tribe-camp-nav__link:hover { color: #fff !important; }
.tribe-camp-nav__link.is-current {
	color: #fff !important;
	border-bottom-color: var(--sky) !important;
}
.tribe-camp-nav__badge {
	flex: 0 0 auto;
	width: 132px;
	height: 132px;
	border-radius: 50%;
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 10px 24px rgba(0,0,0,0.30), 0 0 0 5px rgba(255,255,255,0.08);
	margin: 0;
	padding: 0;
	overflow: hidden;
}
.tribe-camp-nav__badge img {
	height: 122px;
	width: auto;
	max-width: 122px;
	object-fit: contain;
	object-position: center center;
	display: block;
	margin: 0 auto;
	transform: translateX(3px);
}

@media (max-width: 1080px) {
	.tribe-camp-nav__inner { gap: 8px; padding: 0 20px; }
	.tribe-camp-nav__group { gap: 14px; }
	.tribe-camp-nav__group--left  { padding-right: 78px; }
	.tribe-camp-nav__group--right { padding-left: 78px; }
	.tribe-camp-nav__link { font-size: 11px; letter-spacing: 0.1em; }
}
@media (max-width: 940px) {
	.tribe-camp-nav { padding: 12px 0; }
	.tribe-camp-nav__inner { gap: 6px; padding: 0 14px; }
	.tribe-camp-nav__group { gap: 10px; }
	.tribe-camp-nav__group--left  { padding-right: 58px; }
	.tribe-camp-nav__group--right { padding-left: 58px; }
	.tribe-camp-nav__badge { width: 88px; height: 88px; }
	.tribe-camp-nav__badge img { height: 80px; max-width: 80px; transform: translateX(2px); }
	.tribe-camp-nav__link { font-size: 10px; letter-spacing: 0.08em; padding: 6px 1px; }
}
@media (max-width: 820px) {
	.tribe-camp-nav { padding: 14px 0; }
	.tribe-camp-nav__inner { gap: 8px; padding: 0 12px; }
	.tribe-camp-nav__group {
		flex-direction: column;
		gap: 5px;
		flex: 1 1 0;
	}
	.tribe-camp-nav__group--left  { padding-right: 54px; align-items: flex-end;  text-align: right; }
	.tribe-camp-nav__group--right { padding-left: 54px; align-items: flex-start; text-align: left; }
	.tribe-camp-nav__badge { width: 84px; height: 84px; }
	.tribe-camp-nav__badge img { height: 76px; max-width: 76px; transform: translateX(2px); }
	.tribe-camp-nav__link {
		font-size: 10px;
		letter-spacing: 0.08em;
		padding: 3px 1px;
		white-space: nowrap;
	}
	.tribe-nav-picker__dropdown { width: min(320px, calc(100vw - 32px)); }
	/* Keep the circle centred on the bar at narrow widths — no scroll-drop. */
	.tribe-camp-nav.is-stuck .tribe-nav-picker {
		top: 50%;
		transform: translate(-50%, -50%);
	}
}
@media (max-width: 480px) {
	.tribe-camp-nav { padding: 12px 0; }
	.tribe-camp-nav__inner { padding: 0 8px; }
	.tribe-camp-nav__group--left  { padding-right: 46px; }
	.tribe-camp-nav__group--right { padding-left: 46px; }
	.tribe-camp-nav__badge { width: 74px; height: 74px; }
	.tribe-camp-nav__badge img { height: 68px; max-width: 68px; }
	.tribe-camp-nav__link { font-size: 9px; letter-spacing: 0.06em; }
}

/* ---------- More Tribe camps strip ---------- */

.tribe-more-camps {
	background: var(--sand);
	padding: 80px 0 88px;
}
.tribe-more-camps__head {
	text-align: center;
	margin-bottom: 40px;
}
.tribe-more-camps__head .tribe-h2 { margin-bottom: 8px; }
.tribe-more-camps__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}
.tribe-more-camp {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 4px;
	overflow: hidden;
	display: block;
	text-decoration: none !important;
	border-bottom: 1px solid var(--line) !important;
	transition: transform 0.2s, box-shadow 0.2s;
	color: var(--ink);
}
.tribe-more-camp:hover {
	transform: translateY(-3px);
	box-shadow: 0 18px 32px -16px rgba(11,30,61,0.3);
}
.tribe-more-camp__media {
	aspect-ratio: 16 / 10;
	background-size: cover;
	background-position: center;
}
.tribe-more-camp__body {
	padding: 22px 24px 26px;
}
.tribe-more-camp__title {
	font-family: 'Anton', sans-serif;
	font-size: 22px;
	text-transform: uppercase;
	letter-spacing: 0.01em;
	line-height: 1.05;
	margin: 0 0 6px 0;
	color: var(--ink);
}
.tribe-more-camp__title em {
	font-family: 'Fraunces', serif;
	font-style: italic;
	font-weight: 300;
	text-transform: lowercase;
	color: var(--sky);
}
.tribe-more-camp__meta {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--ocean);
	margin-bottom: 10px;
}
.tribe-more-camp__arrow {
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--sky);
}

@media (max-width: 760px) {
	.tribe-more-camps__grid { grid-template-columns: 1fr; }
	.tribe-more-camps { padding: 56px 0 64px; }
}

/* Picker on landing — 4-up active, 2-up soon */
.tribe-picker-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
}
.tribe-picker-grid--soon {
	grid-template-columns: repeat(2, 1fr);
	max-width: 720px;
	margin: 24px auto 0;
}
@media (max-width: 980px) {
	.tribe-picker-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
	.tribe-picker-grid,
	.tribe-picker-grid--soon { grid-template-columns: 1fr; }
}
