/**
 * Travel 2Borders - section components (Page sections builder).
 *
 * One block per component, named after it: .t2b-<component>,
 * .t2b-<component>__<element>, .t2b-<component>--<variant>.
 * Colours and fonts come from variables.css.
 */

/* ==========================================================================
   Visibility options (Advanced tab)
   ========================================================================== */

@media (max-width:640px) {
	.t2b-hide-mobile {
		display: none !important;
	}
}

@media (min-width:641px) {
	.t2b-hide-desktop {
		display: none !important;
	}
}

/* ==========================================================================
   CTA band
   ========================================================================== */

.t2b-cta {
	background: var(--t2b-color-bg);
}

.t2b-cta__title {
	font-size: clamp(28px,3.6vw,48px);
	font-weight: 800;
	letter-spacing: -0.034em;
	line-height: 1.06;
	margin: 0;
	max-width: 720px;
	text-wrap: balance;
}

.t2b-cta__actions {
	display: flex;
	align-items: center;
	gap: 20px;
	flex-wrap: wrap;
}

.t2b-cta__btn:hover {
	background: var(--t2b-color-primary-dark);
}

.t2b-cta__link:hover {
	color: var(--t2b-color-primary);
	border-bottom-color: var(--t2b-color-primary);
}

/* Image style: photo, dark overlay, light text. */
.t2b-cta--image {
	background: var(--t2b-color-secondary);
	color: var(--t2b-color-mint-light);
	position: relative;
	overflow: hidden;
}

.t2b-cta--image .t2b-cta__inner {
	position: relative;
	padding: clamp(56px,6vw,92px) 32px;
	gap: 24px;
}

.t2b-cta--image .t2b-cta__title {
	max-width: 700px;
	color: var(--t2b-color-bg);
}

.t2b-cta--image .t2b-cta__link:hover {
	color: var(--t2b-color-primary-light);
	border-bottom-color: var(--t2b-color-primary-light);
}

/* ==========================================================================
   Hero
   ========================================================================== */

.t2b-hero {
	position: relative;
	min-height: clamp(540px,66vh,700px);
	display: flex;
	align-items: flex-end;
	background: var(--t2b-color-dark);
	overflow: hidden;
}

.t2b-hero__overlay {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(102deg, rgba(var(--t2b-color-overlay-rgb), 0.92) 0%, rgba(var(--t2b-color-overlay-rgb), 0.7) 46%, rgba(var(--t2b-color-overlay-rgb), 0.3) 100%);
}

.t2b-hero__eyebrow {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--t2b-color-primary-light);
	margin-bottom: 18px;
}

.t2b-hero__title {
	font-size: clamp(38px,5.4vw,76px);
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.038em;
	margin: 0 0 22px;
	color: var(--t2b-color-bg);
	max-width: 900px;
	text-wrap: balance;
}

.t2b-hero__text {
	font-size: clamp(17px,1.4vw,21px);
	line-height: 1.55;
	font-weight: 500;
	color: rgba(var(--t2b-color-mint-light-rgb), 0.84);
	max-width: 600px;
	margin: 0;
	text-wrap: pretty;
}

/* ==========================================================================
   Hero (large)
   ========================================================================== */

.t2b-hero-large {
	position: relative;
	min-height: clamp(660px,90vh,900px);
	display: flex;
	align-items: flex-end;
	background: var(--t2b-color-dark);
	overflow: hidden;
}

.t2b-hero-large__overlay {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(102deg, rgba(var(--t2b-color-overlay-rgb), 0.9) 0%, rgba(var(--t2b-color-overlay-rgb), 0.68) 42%, rgba(var(--t2b-color-overlay-rgb), 0.22) 78%, rgba(var(--t2b-color-overlay-rgb), 0.32) 100%);
}

.t2b-hero-large__overlay-fade {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(180deg, rgba(var(--t2b-color-overlay-rgb), 0.42) 0%, rgba(var(--t2b-color-overlay-rgb), 0) 30%, rgba(var(--t2b-color-overlay-rgb), 0.55) 100%);
}

.t2b-hero-large__inner {
	position: relative;
	width: 100%;
	max-width: 1280px;
	margin: 0 auto;
	padding: clamp(56px,6vw,84px) 32px 0;
}

.t2b-hero-large__content {
	max-width: 800px;
}

.t2b-hero-large__badge {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	background: rgba(var(--t2b-color-mint-rgb), 0.14);
	border: 1px solid rgba(var(--t2b-color-mint-rgb), 0.34);
	color: var(--t2b-color-mint-light);
	border-radius: 999px;
	padding: 9px 18px;
	font-size: 13.5px;
	font-weight: 600;
	margin-bottom: 30px;
	backdrop-filter: blur(6px);
}

.t2b-hero-large__badge-dot {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--t2b-color-primary-light);
}

.t2b-hero-large__title {
	font-size: clamp(46px,6.6vw,96px);
	font-weight: 800;
	line-height: 0.98;
	letter-spacing: -0.038em;
	margin: 0 0 26px;
	color: var(--t2b-color-bg);
	text-wrap: balance;
}

.t2b-hero-large__text {
	font-size: clamp(18px,1.5vw,22px);
	line-height: 1.55;
	font-weight: 500;
	color: rgba(var(--t2b-color-mint-light-rgb), 0.86);
	max-width: 580px;
	margin: 0 0 38px;
	text-wrap: pretty;
}

.t2b-hero-large__actions {
	display: flex;
	align-items: center;
	gap: 18px;
	flex-wrap: wrap;
}

.t2b-hero-large__btn,
.t2b-hero-large__btn:hover {
	background: var(--t2b-color-primary);
	color: var(--t2b-color-white);
	padding: 19px 38px;
	border-radius: 999px;
	font-size: 17px;
	font-weight: 700;
	box-shadow: 0 14px 34px rgba(var(--t2b-color-overlay-rgb), 0.4);
}

.t2b-hero-large__btn-ghost,
.t2b-hero-large__btn-ghost:hover {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	background: rgba(var(--t2b-color-bg-rgb), 0.12);
	border: 1px solid rgba(var(--t2b-color-bg-rgb), 0.4);
	color: var(--t2b-color-bg);
	padding: 19px 32px;
	border-radius: 999px;
	font-size: 17px;
	font-weight: 600;
	backdrop-filter: blur(6px);
}

.t2b-hero-large__stat {
	display: flex;
	flex-direction: column;
	gap: 5px;
}

.t2b-hero-large__stars {
	letter-spacing: 0.06em;
	color: var(--t2b-color-primary-light);
	font-size: 15px;
	font-weight: 400;
}

.t2b-hero-large__stat-label {
	font-size: 14.5px;
	color: rgba(var(--t2b-color-mint-light-rgb), 0.7);
	font-weight: 500;
}

.t2b-hero-large__stats {
	margin-top: clamp(48px,7vw,96px);
	border-top: 1px solid rgba(var(--t2b-color-bg-rgb), 0.22);
	padding: 26px 0 30px;
	display: grid;
	gap: clamp(18px,3vw,44px);
}

.t2b-hero-large__stat-value {
	font-size: clamp(22px,2.1vw,30px);
	font-weight: 800;
	letter-spacing: -0.03em;
	color: var(--t2b-color-bg);
}

.t2b-hero-large__stat-value.has-stars {
	display: flex;
	align-items: center;
	gap: 8px;
}

.t2b-hero-large__btn:hover {
	background: var(--t2b-color-primary-dark);
}

.t2b-hero-large__btn-ghost:hover {
	background: rgba(var(--t2b-color-bg-rgb), 0.22);
}

/* Highlighted words inside the heading. */
.t2b-hero-large__highlight {
	color: var(--t2b-color-mint);
}

/* ==========================================================================
   Hero (split with card)
   ========================================================================== */

.t2b-split-hero {
	background: var(--t2b-color-bg);
	border-bottom: 1px solid rgba(var(--t2b-color-ink-rgb), 0.08);
}

.t2b-split-hero__inner {
	max-width: 1280px;
	margin: 0 auto;
	padding: clamp(40px,5vw,72px) 32px clamp(52px,6vw,88px);
	display: grid;
	grid-template-columns: minmax(0,1fr) minmax(0,0.92fr);
	gap: clamp(32px,4.5vw,68px);
	align-items: center;
}

.t2b-split-hero__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	background: var(--t2b-color-mint);
	color: var(--t2b-color-secondary);
	border-radius: 999px;
	padding: 8px 16px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin-bottom: 24px;
}

.t2b-split-hero__title {
	font-size: clamp(36px,4.8vw,68px);
	font-weight: 800;
	line-height: 1.0;
	letter-spacing: -0.04em;
	margin: 0 0 22px;
	max-width: 660px;
	text-wrap: balance;
}

.t2b-split-hero__text {
	font-size: clamp(17px,1.4vw,21px);
	line-height: 1.6;
	font-weight: 500;
	color: var(--t2b-color-text-muted);
	max-width: 580px;
	margin: 0 0 32px;
	text-wrap: pretty;
}

.t2b-split-hero__btn,
.t2b-split-hero__btn:hover {
	background: var(--t2b-color-primary);
	color: var(--t2b-color-white);
	padding: 18px 34px;
	border-radius: 999px;
	font-size: 17px;
	font-weight: 700;
}

.t2b-split-hero__link,
.t2b-split-hero__link:hover {
	font-size: 16px;
	font-weight: 600;
	color: var(--t2b-color-secondary-light);
	border-bottom: 2px solid rgba(var(--t2b-color-secondary-light-rgb), 0.35);
	padding-bottom: 3px;
}

.t2b-split-hero__media-col {
	position: relative;
}

.t2b-split-hero__media {
	aspect-ratio: 4/5;
	border-radius: 26px;
	overflow: hidden;
	background: var(--t2b-color-dark-forest);
}

.t2b-split-hero__card {
	position: relative;
	margin: -56px 0 0 clamp(-24px,-2vw,0px);
	max-width: 360px;
	background: var(--t2b-color-secondary);
	color: var(--t2b-color-mint-light);
	border-radius: 20px;
	padding: 22px 26px;
	box-shadow: 0 22px 50px rgba(var(--t2b-color-dark-rgb), 0.3);
}

.t2b-split-hero__card-eyebrow {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--t2b-color-primary-light);
	margin-bottom: 10px;
}

.t2b-split-hero__card-title {
	font-size: 22px;
	font-weight: 800;
	letter-spacing: -0.025em;
	line-height: 1.15;
	color: var(--t2b-color-bg);
	margin-bottom: 8px;
}

.t2b-split-hero__card-date {
	font-size: 15px;
	font-weight: 600;
	color: rgba(var(--t2b-color-mint-light-rgb), 0.75);
	margin-bottom: 12px;
}

.t2b-split-hero__card-stats {
	display: flex;
	flex-wrap: wrap;
	gap: 14px 20px;
	padding-top: 12px;
	border-top: 1px solid rgba(var(--t2b-color-mint-rgb), 0.2);
}

.t2b-split-hero__card-stat {
	min-width: 0;
}

.t2b-split-hero__card-value {
	font-size: 20px;
	font-weight: 800;
	letter-spacing: -0.02em;
	color: var(--t2b-color-bg);
	line-height: 1;
}

.t2b-split-hero__card-label {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(var(--t2b-color-mint-light-rgb), 0.6);
	margin-top: 5px;
	line-height: 1.35;
}

.t2b-split-hero__card-text {
	font-size: 14.5px;
	line-height: 1.55;
	color: rgba(var(--t2b-color-mint-light-rgb), 0.82);
	margin: 14px 0 0;
	font-weight: 500;
	text-wrap: pretty;
}

.t2b-split-hero__btn:hover {
	background: var(--t2b-color-primary-dark);
}

.t2b-split-hero__link:hover {
	color: var(--t2b-color-primary);
	border-bottom-color: var(--t2b-color-primary);
}

/* ==========================================================================
   Steps
   ========================================================================== */

.t2b-steps {
	background: var(--t2b-color-bg);
}

.t2b-steps__layout {
	display: grid;
	grid-template-columns: minmax(0,0.66fr) minmax(0,1.34fr);
	gap: clamp(32px,4.5vw,72px);
	align-items: start;
}

.t2b-steps__aside {
	position: sticky;
	top: 104px;
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.t2b-steps__card {
	background: var(--t2b-color-bg-alt);
	border-radius: 22px;
	padding: 28px 28px 30px;
}

.t2b-steps__eyebrow {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--t2b-color-primary);
	margin-bottom: 14px;
}

.t2b-steps__rows {
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin-bottom: 24px;
}

.t2b-steps__row-label {
	color: var(--t2b-color-text-muted);
	font-weight: 500;
}

.t2b-steps__row-value {
	font-weight: 700;
	white-space: nowrap;
}

.t2b-steps__note {
	font-size: 15.5px;
	line-height: 1.62;
	color: var(--t2b-color-text-muted);
	margin: 0 0 18px;
	text-wrap: pretty;
}

.t2b-steps__btn,
.t2b-steps__btn:hover {
	display: inline-block;
	background: var(--t2b-color-secondary);
	color: var(--t2b-color-bg);
	padding: 15px 28px;
	border-radius: 999px;
	font-size: 15.5px;
	font-weight: 700;
}

.t2b-steps__title {
	font-size: 24px;
	font-weight: 700;
	letter-spacing: -0.02em;
	margin: 0 0 10px;
}

.t2b-steps__text {
	font-size: 16.5px;
	line-height: 1.65;
	color: var(--t2b-color-text-muted);
	margin: 0;
	max-width: 620px;
	text-wrap: pretty;
}

.t2b-steps__row {
	display: flex;
	justify-content: space-between;
	gap: 14px;
	font-size: 15.5px;
}

.t2b-steps__row.is-divided {
	border-bottom: 1px solid rgba(var(--t2b-color-ink-rgb), 0.12);
	padding-bottom: 12px;
}

.t2b-steps__step {
	display: grid;
	grid-template-columns: 74px minmax(0,1fr);
	gap: clamp(16px,2vw,30px);
	padding: 26px 0;
	border-top: 1px solid rgba(var(--t2b-color-ink-rgb), 0.12);
}

.t2b-steps__step.is-first {
	padding: 0 0 26px;
	border-top: 0;
}

.t2b-steps__step.is-last {
	padding: 26px 0 0;
}

.t2b-steps__num {
	font-size: clamp(30px,3vw,42px);
	font-weight: 800;
	letter-spacing: -0.04em;
	color: var(--t2b-color-primary);
	line-height: 1;
}

.t2b-steps__num.is-last {
	color: var(--t2b-color-secondary-light);
}

.t2b-steps__btn:hover {
	background: var(--t2b-color-primary);
}

/* ==========================================================================
   Text cards
   ========================================================================== */

.t2b-cards {
	background: var(--t2b-color-bg-alt);
	border-top: 1px solid rgba(var(--t2b-color-ink-rgb), 0.07);
}

.t2b-cards__eyebrow {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--t2b-color-primary);
	margin-bottom: 14px;
}

.t2b-cards__title {
	font-size: clamp(30px,3.8vw,52px);
	font-weight: 800;
	letter-spacing: -0.032em;
	line-height: 1.06;
	margin: 0 0 18px;
	max-width: 760px;
	text-wrap: balance;
}

.t2b-cards__intro {
	font-size: 19px;
	line-height: 1.6;
	color: var(--t2b-color-text);
	font-weight: 500;
	max-width: 620px;
	margin: 0 0 clamp(36px,4vw,56px);
	text-wrap: pretty;
}

.t2b-cards__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0,1fr));
	gap: clamp(16px,2vw,24px);
}

.t2b-cards__card {
	background: var(--t2b-color-bg);
	border-radius: 22px;
	padding: clamp(26px,2.6vw,34px);
}

.t2b-cards__num {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--t2b-color-primary);
	margin-bottom: 14px;
}

.t2b-cards__card-title {
	font-size: 22px;
	font-weight: 700;
	letter-spacing: -0.02em;
	margin: 0 0 12px;
}

.t2b-cards__card-text {
	font-size: 16.5px;
	line-height: 1.65;
	color: var(--t2b-color-text-muted);
	margin: 0;
	text-wrap: pretty;
}

/* ==========================================================================
   Image cards
   ========================================================================== */

.t2b-image-cards {
	background: var(--t2b-color-bg-alt);
	border-top: 1px solid rgba(var(--t2b-color-ink-rgb), 0.07);
}

.t2b-image-cards__header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 32px;
	flex-wrap: wrap;
	margin-bottom: clamp(32px,4vw,52px);
}

.t2b-image-cards__title {
	font-size: clamp(30px,3.8vw,50px);
	font-weight: 800;
	letter-spacing: -0.032em;
	line-height: 1.06;
	margin: 0 0 16px;
	max-width: 620px;
	text-wrap: balance;
}

.t2b-image-cards__intro {
	font-size: 18px;
	line-height: 1.6;
	color: var(--t2b-color-text);
	font-weight: 500;
	margin: 0;
	max-width: 560px;
	text-wrap: pretty;
}

.t2b-image-cards__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0,1fr));
	gap: 22px;
}

.t2b-image-cards__card,
.t2b-image-cards__card:hover {
	display: block;
	background: var(--t2b-color-bg);
	border-radius: 22px;
	padding: 14px 14px 24px;
	color: var(--t2b-color-heading);
}

.t2b-image-cards__media {
	aspect-ratio: 4/5;
	border-radius: 16px;
	overflow: hidden;
	background: var(--t2b-color-placeholder);
	margin-bottom: 18px;
}

.t2b-image-cards__card-title {
	font-size: 23px;
	font-weight: 700;
	letter-spacing: -0.02em;
	margin: 0 0 8px;
}

.t2b-image-cards__card-text {
	font-size: 15px;
	line-height: 1.6;
	color: var(--t2b-color-text-muted);
	margin: 0;
	text-wrap: pretty;
}

.t2b-image-cards__link:hover {
	color: var(--t2b-color-primary);
	border-bottom-color: var(--t2b-color-primary);
}

.t2b-image-cards__card:hover {
	color: var(--t2b-color-primary);
}

/* ==========================================================================
   Latest posts
   ========================================================================== */

.t2b-posts {
	background: var(--t2b-color-bg);
}

.t2b-posts__inner {
	max-width: 1280px;
	margin: 0 auto;
	padding: clamp(56px,6.5vw,100px) 32px;
}

.t2b-posts__header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 32px;
	flex-wrap: wrap;
	margin-bottom: clamp(30px,3.5vw,48px);
}

.t2b-posts__title {
	font-size: clamp(28px,3.4vw,44px);
	font-weight: 800;
	letter-spacing: -0.032em;
	line-height: 1.06;
	margin: 0;
}

.t2b-posts__card,
.t2b-posts__card:hover {
	display: block;
	background: var(--t2b-color-bg-alt);
	border-radius: 22px;
	padding: 14px 14px 26px;
	color: var(--t2b-color-heading);
}

.t2b-posts__media {
	aspect-ratio: 16/10;
	border-radius: 16px;
	overflow: hidden;
	background: var(--t2b-color-placeholder);
	margin-bottom: 18px;
}

.t2b-posts__meta {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--t2b-color-text-faint);
	margin-bottom: 12px;
}

.t2b-posts__card-title {
	font-size: 21px;
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.28;
	margin: 0 0 10px;
	text-wrap: pretty;
}

.t2b-posts__card-text {
	font-size: 15px;
	line-height: 1.6;
	color: var(--t2b-color-text-muted);
	margin: 0;
	text-wrap: pretty;
}

.t2b-posts__empty {
	font-size: 17px;
	line-height: 1.6;
	color: var(--t2b-color-text-muted);
	font-weight: 500;
	margin: 0;
}

.t2b-posts__link:hover {
	color: var(--t2b-color-primary);
	border-bottom-color: var(--t2b-color-primary);
}

.t2b-posts__card:hover {
	color: var(--t2b-color-primary);
}

/* ==========================================================================
   Stats band
   ========================================================================== */

.t2b-stats {
	background: var(--t2b-color-secondary);
	color: var(--t2b-color-mint-light);
	position: relative;
	overflow: hidden;
}

.t2b-stats__overlay {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(255deg, rgba(var(--t2b-color-overlay-rgb), 0.95) 0%, rgba(var(--t2b-color-dark-alt-rgb), 0.92) 52%, rgba(var(--t2b-color-dark-alt-rgb), 0.86) 100%);
}

.t2b-stats__inner {
	position: relative;
	max-width: 1280px;
	margin: 0 auto;
	padding: clamp(40px,4.5vw,64px) 32px;
}

.t2b-stats__item {
	border-top: 1px solid rgba(var(--t2b-color-mint-light-rgb), 0.28);
	padding-top: 20px;
}

.t2b-stats__value {
	font-size: clamp(28px,2.8vw,38px);
	font-weight: 800;
	letter-spacing: -0.035em;
	color: var(--t2b-color-bg);
	margin-bottom: 6px;
}

.t2b-stats__label {
	font-size: 15.5px;
	font-weight: 500;
	color: rgba(var(--t2b-color-mint-light-rgb), 0.72);
	line-height: 1.5;
}

.t2b-stats__grid {
	display: grid;
	gap: clamp(20px,2.6vw,36px);
}

/* ==========================================================================
   FAQ
   ========================================================================== */

.t2b-faq-list {
	background: var(--t2b-color-bg);
}

.t2b-faq-list__layout {
	max-width: 1280px;
	margin: 0 auto;
	padding: clamp(64px,7vw,104px) 32px;
	display: grid;
	grid-template-columns: minmax(0,0.7fr) minmax(0,1.3fr);
	gap: clamp(32px,5vw,72px);
	align-items: start;
}

.t2b-faq-list__title {
	font-size: clamp(30px,3.9vw,52px);
	font-weight: 800;
	letter-spacing: -0.032em;
	line-height: 1.06;
	margin: 0 0 18px;
}

.t2b-faq-list__intro {
	font-size: 17px;
	line-height: 1.6;
	color: var(--t2b-color-text-muted);
	font-weight: 500;
	margin: 0 0 24px;
	max-width: 320px;
}

.t2b-faq-list__item {
	background: var(--t2b-color-bg-alt);
	border-radius: 18px;
	padding: 24px 28px;
}

.t2b-faq-list__question {
	width: 100%;
	background: none;
	border: none;
	padding: 0;
	text-align: left;
	cursor: pointer;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 20px;
	font-size: 19px;
	font-weight: 700;
	letter-spacing: -0.02em;
	color: var(--t2b-color-heading);
}

.t2b-faq-list__sign {
	flex: 0 0 auto;
	color: var(--t2b-color-primary);
	font-size: 22px;
	line-height: 1;
}

.t2b-faq-list__answer {
	font-size: 16.5px;
	line-height: 1.68;
	color: var(--t2b-color-text);
	margin: 16px 0 0;
	max-width: 640px;
	text-wrap: pretty;
}

.t2b-faq-list__link:hover {
	color: var(--t2b-color-primary);
	border-bottom-color: var(--t2b-color-primary);
}

/* ==========================================================================
   Testimonial
   ========================================================================== */

.t2b-testimonial {
	background: var(--t2b-color-secondary);
	color: var(--t2b-color-mint-light);
	position: relative;
	overflow: hidden;
}

.t2b-testimonial__overlay {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(255deg, rgba(var(--t2b-color-overlay-rgb), 0.93) 0%, rgba(var(--t2b-color-dark-alt-rgb), 0.9) 48%, rgba(var(--t2b-color-dark-alt-rgb), 0.74) 100%);
}

.t2b-testimonial__layout {
	display: grid;
	grid-template-columns: minmax(0,0.82fr) minmax(0,1.18fr);
	gap: clamp(32px,4.5vw,72px);
	align-items: center;
}

.t2b-testimonial__media-col {
	position: relative;
	display: flex;
	flex-direction: column;
}

.t2b-testimonial__media {
	aspect-ratio: 4/5;
	border-radius: 24px;
	overflow: hidden;
	background: var(--t2b-color-dark-alt);
}

.t2b-testimonial__badge {
	position: absolute;
	right: -18px;
	bottom: 28px;
	background: var(--t2b-color-bg);
	color: var(--t2b-color-heading);
	border-radius: 18px;
	padding: 18px 22px;
	box-shadow: 0 18px 44px rgba(var(--t2b-color-overlay-rgb), 0.35);
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.t2b-testimonial__badge-eyebrow {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--t2b-color-primary);
}

.t2b-testimonial__badge-text {
	font-size: 16px;
	font-weight: 700;
	letter-spacing: -0.015em;
}

.t2b-testimonial__header {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 26px;
}

.t2b-testimonial__eyebrow {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--t2b-color-mint);
}

.t2b-testimonial__rule {
	flex: 1 1 auto;
	height: 1px;
	background: rgba(var(--t2b-color-mint-light-rgb), 0.22);
}

.t2b-testimonial__stars {
	letter-spacing: 0.1em;
	color: var(--t2b-color-primary-light);
	font-size: 17px;
}

.t2b-testimonial__quote {
	font-size: clamp(26px,3.1vw,44px);
	font-weight: 800;
	letter-spacing: -0.032em;
	line-height: 1.14;
	margin: 0 0 30px;
	color: var(--t2b-color-bg);
	text-wrap: pretty;
}

.t2b-testimonial__author {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 34px;
}

.t2b-testimonial__avatar {
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background: var(--t2b-color-mint);
	color: var(--t2b-color-secondary);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 18px;
	font-weight: 800;
}

.t2b-testimonial__author-text {
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.t2b-testimonial__name {
	font-size: 16.5px;
	font-weight: 700;
	color: var(--t2b-color-bg);
}

.t2b-testimonial__meta {
	font-size: 14.5px;
	font-weight: 500;
	color: rgba(var(--t2b-color-mint-light-rgb), 0.66);
}

.t2b-testimonial__link,
.t2b-testimonial__link:hover {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 16px;
	font-weight: 600;
	color: var(--t2b-color-mint);
	border-bottom: 2px solid rgba(var(--t2b-color-mint-rgb), 0.35);
	padding-bottom: 4px;
}

.t2b-testimonial__link:hover {
	color: var(--t2b-color-primary-light);
	border-bottom-color: var(--t2b-color-primary-light);
}

/* ==========================================================================
   Media + text
   ========================================================================== */

.t2b-media-text {
	background: var(--t2b-color-bg);
}

.t2b-media-text__layout {
	display: grid;
	grid-template-columns: minmax(0,0.9fr) minmax(0,1.1fr);
	gap: clamp(36px,5vw,72px);
	align-items: start;
}

.t2b-media-text__card {
	position: sticky;
	top: 104px;
	background: var(--t2b-color-bg-alt);
	border-radius: 24px;
	padding: clamp(20px,2vw,26px);
	display: flex;
	flex-direction: column;
	gap: 22px;
}

.t2b-media-text__media {
	aspect-ratio: 4/5;
	border-radius: 18px;
	overflow: hidden;
	background: var(--t2b-color-placeholder);
}

.t2b-media-text__card-head {
	display: flex;
	align-items: baseline;
	gap: 12px;
	margin-bottom: 12px;
	flex-wrap: wrap;
}

.t2b-media-text__card-name {
	font-size: 22px;
	font-weight: 800;
	letter-spacing: -0.025em;
	color: var(--t2b-color-heading);
}

.t2b-media-text__card-place {
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--t2b-color-primary);
}

.t2b-media-text__card-quote {
	font-size: 17px;
	font-weight: 700;
	letter-spacing: -0.018em;
	line-height: 1.45;
	margin: 0;
	color: var(--t2b-color-heading);
	text-wrap: pretty;
}

.t2b-media-text__eyebrow {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--t2b-color-primary);
	margin-bottom: 16px;
}

.t2b-media-text__title {
	font-size: clamp(28px,3.4vw,46px);
	font-weight: 800;
	letter-spacing: -0.032em;
	line-height: 1.08;
	margin: 0 0 24px;
	text-wrap: balance;
}

.t2b-media-text__fact-value {
	font-size: clamp(20px,1.9vw,26px);
	font-weight: 800;
	letter-spacing: -0.03em;
	color: var(--t2b-color-heading);
}

.t2b-media-text__fact-label {
	font-size: 14.5px;
	line-height: 1.4;
	color: var(--t2b-color-text-soft);
	font-weight: 500;
}

.t2b-media-text__actions {
	display: flex;
	align-items: center;
	gap: 20px;
	flex-wrap: wrap;
}

.t2b-media-text__btn,
.t2b-media-text__btn:hover {
	background: var(--t2b-color-primary);
	color: var(--t2b-color-white);
	padding: 16px 30px;
	border-radius: 999px;
	font-size: 16px;
	font-weight: 700;
}

.t2b-media-text__para {
	font-size: 18px;
	line-height: 1.68;
	color: var(--t2b-color-text);
	font-weight: 500;
	margin: 0 0 18px;
	text-wrap: pretty;
}

.t2b-media-text__para.is-last {
	margin-bottom: 34px;
}

.t2b-media-text__facts {
	display: grid;
	gap: clamp(14px,2vw,26px);
	border-top: 1px solid rgba(var(--t2b-color-ink-rgb), 0.12);
	border-bottom: 1px solid rgba(var(--t2b-color-ink-rgb), 0.12);
	padding: 26px 0;
	margin-bottom: 34px;
}

.t2b-media-text__btn:hover {
	background: var(--t2b-color-primary-dark);
}

.t2b-media-text__link:hover {
	color: var(--t2b-color-primary);
	border-bottom-color: var(--t2b-color-primary);
}

/* ==========================================================================
   Video
   ========================================================================== */

.t2b-video {
	background: var(--t2b-color-bg-alt);
	border-top: 1px solid rgba(var(--t2b-color-ink-rgb), 0.07);
}

.t2b-video__inner {
	max-width: 1280px;
	margin: 0 auto;
	padding: clamp(48px,5vw,80px) 32px;
}

.t2b-video__frame {
	position: relative;
	border-radius: 24px;
	overflow: hidden;
	background: var(--t2b-color-secondary);
	aspect-ratio: 21/9;
	color: var(--t2b-color-white);
}

.t2b-video__media {
	position: absolute;
	inset: 0;
	overflow: hidden;
	background: var(--t2b-color-dark-film);
}

.t2b-video__scrim {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(90deg, rgba(var(--t2b-color-overlay-rgb), 0.76) 0%, rgba(var(--t2b-color-overlay-rgb), 0.35) 52%, rgba(var(--t2b-color-overlay-rgb), 0.05) 85%);
}

.t2b-video__content {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	padding: clamp(24px,4vw,56px);
}

.t2b-video__box {
	max-width: 460px;
}

.t2b-video__eyebrow {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: rgba(var(--t2b-color-white-rgb), 0.72);
	margin-bottom: 16px;
}

.t2b-video__title {
	font-size: clamp(26px,3.2vw,44px);
	font-weight: 800;
	letter-spacing: -0.032em;
	line-height: 1.06;
	margin: 0 0 16px;
	color: var(--t2b-color-white);
}

.t2b-video__text {
	font-size: 16.5px;
	line-height: 1.6;
	color: rgba(var(--t2b-color-white-rgb), 0.82);
	font-weight: 500;
	margin: 0 0 22px;
	text-wrap: pretty;
}

.t2b-video__play {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	background: var(--t2b-color-bg);
	color: var(--t2b-color-heading);
	border: none;
	padding: 13px 24px;
	border-radius: 999px;
	font-size: 15.5px;
	font-weight: 700;
	cursor: pointer;
}

.t2b-video__play:hover {
	background: var(--t2b-color-primary);
	color: var(--t2b-color-white);
}

/* ==========================================================================
   Enquiry form
   ========================================================================== */

.t2b-enquiry-form {
	background: var(--t2b-color-secondary);
	color: var(--t2b-color-mint-light);
	position: relative;
	overflow: hidden;
}

.t2b-enquiry-form__overlay {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(105deg, rgba(var(--t2b-color-overlay-deep-rgb), 0.94) 0%, rgba(var(--t2b-color-overlay-green-rgb), 0.88) 46%, rgba(var(--t2b-color-overlay-green-rgb), 0.62) 100%);
}

.t2b-enquiry-form__layout {
	position: relative;
	max-width: 1280px;
	margin: 0 auto;
	padding: clamp(64px,7vw,104px) 32px;
	display: grid;
	grid-template-columns: minmax(0,1fr) minmax(0,1fr);
	gap: clamp(36px,5vw,72px);
	align-items: center;
}

.t2b-enquiry-form__title {
	font-size: clamp(32px,4.2vw,58px);
	font-weight: 800;
	letter-spacing: -0.035em;
	line-height: 1.04;
	margin: 0 0 22px;
	text-wrap: balance;
}

.t2b-enquiry-form__intro {
	font-size: 19px;
	line-height: 1.6;
	font-weight: 500;
	color: rgba(var(--t2b-color-mint-light-rgb), 0.78);
	max-width: 460px;
	margin: 0 0 36px;
	text-wrap: pretty;
}

.t2b-enquiry-form__contacts {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.t2b-enquiry-form__contact,
.t2b-enquiry-form__contact:hover {
	color: var(--t2b-color-mint-light);
	font-size: 26px;
	font-weight: 700;
	letter-spacing: -0.02em;
}

.t2b-enquiry-form__hours {
	font-size: 15px;
	color: rgba(var(--t2b-color-mint-light-rgb), 0.6);
	font-weight: 500;
}

.t2b-enquiry-form__card {
	background: var(--t2b-color-bg);
	color: var(--t2b-color-heading);
	border-radius: 24px;
	padding: clamp(28px,3vw,42px);
}

.t2b-enquiry-form__fields {
	display: flex;
	flex-direction: column;
	gap: 22px;
}

.t2b-enquiry-form__row {
	display: grid;
	grid-template-columns: minmax(0,1fr) minmax(0,1fr);
	gap: 18px;
}

.t2b-enquiry-form__field {
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-width: 0;
}

.t2b-enquiry-form__field-label {
	font-size: 14px;
	font-weight: 600;
	color: var(--t2b-color-text);
}

.t2b-enquiry-form__input {
	background: var(--t2b-color-bg-alt);
	border: 1px solid rgba(var(--t2b-color-ink-rgb), 0.12);
	border-radius: 12px;
	color: var(--t2b-color-heading);
	font-size: 16px;
	padding: 13px 14px;
	outline: none;
	width: 100%;
	min-width: 0;
}

.t2b-enquiry-form__field-full {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.t2b-enquiry-form__textarea {
	background: var(--t2b-color-bg-alt);
	border: 1px solid rgba(var(--t2b-color-ink-rgb), 0.12);
	border-radius: 12px;
	color: var(--t2b-color-heading);
	font-size: 16px;
	line-height: 1.55;
	font-family: inherit;
	padding: 14px;
	outline: none;
	width: 100%;
	min-width: 0;
	resize: vertical;
}

.t2b-enquiry-form__hint {
	font-size: 13.5px;
	line-height: 1.5;
	color: var(--t2b-color-text-soft);
}

.t2b-enquiry-form__submit {
	background: var(--t2b-color-primary);
	color: var(--t2b-color-white);
	border: none;
	padding: 17px 30px;
	border-radius: 999px;
	font-size: 16.5px;
	font-weight: 700;
	cursor: pointer;
}

.t2b-enquiry-form__note {
	font-size: 13.5px;
	line-height: 1.55;
	color: var(--t2b-color-text-soft);
	margin: 0;
}

.t2b-enquiry-form__success {
	padding: 44px 0;
	text-align: center;
}

.t2b-enquiry-form__success-title {
	font-size: 30px;
	font-weight: 800;
	letter-spacing: -0.03em;
	margin-bottom: 14px;
}

.t2b-enquiry-form__success-text {
	font-size: 17px;
	line-height: 1.6;
	color: var(--t2b-color-text);
	margin: 0 auto;
	max-width: 340px;
	font-weight: 500;
}

.t2b-enquiry-form__contact:hover {
	color: var(--t2b-color-mint);
}

.t2b-enquiry-form__submit:hover {
	background: var(--t2b-color-primary-dark);
}

/* ==========================================================================
   Image divider
   ========================================================================== */

.t2b-image-divider {
	position: relative;
	height: clamp(280px,32vw,420px);
	background: var(--t2b-color-dark);
	overflow: hidden;
	display: flex;
	align-items: flex-end;
}

.t2b-image-divider__overlay {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(8deg, rgba(var(--t2b-color-overlay-rgb), 0.9) 0%, rgba(var(--t2b-color-overlay-rgb), 0.42) 46%, rgba(var(--t2b-color-overlay-rgb), 0.12) 100%);
}

.t2b-image-divider__inner {
	position: relative;
	width: 100%;
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 32px clamp(28px,3vw,44px);
}

.t2b-image-divider__text {
	font-size: clamp(19px,2vw,28px);
	font-weight: 700;
	letter-spacing: -0.025em;
	line-height: 1.25;
	color: var(--t2b-color-bg);
	margin: 0;
	max-width: 680px;
	text-wrap: balance;
}

/* ==========================================================================
   Two lists
   ========================================================================== */

.t2b-two-lists {
	background: var(--t2b-color-bg-alt);
	border-top: 1px solid rgba(var(--t2b-color-ink-rgb), 0.07);
}

.t2b-two-lists__eyebrow {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--t2b-color-primary);
	margin-bottom: 14px;
}

.t2b-two-lists__title {
	font-size: clamp(30px,3.8vw,52px);
	font-weight: 800;
	letter-spacing: -0.032em;
	line-height: 1.06;
	margin: 0 0 clamp(36px,4vw,56px);
	max-width: 700px;
	text-wrap: balance;
}

.t2b-two-lists__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0,1fr));
	gap: clamp(18px,2.4vw,30px);
}

.t2b-two-lists__card {
	background: var(--t2b-color-bg);
	border-radius: 22px;
	padding: clamp(26px,2.8vw,38px);
}

.t2b-two-lists__items {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.t2b-two-lists__note {
	font-size: 16px;
	line-height: 1.65;
	color: var(--t2b-color-text-muted);
	margin: 26px 0 0;
	text-wrap: pretty;
}

.t2b-two-lists__item {
	font-size: 16.5px;
	line-height: 1.55;
	color: var(--t2b-color-text);
}

.t2b-two-lists__item.is-divided {
	border-bottom: 1px solid rgba(var(--t2b-color-ink-rgb), 0.1);
	padding-bottom: 14px;
}

.t2b-two-lists__card-title {
	font-size: 21px;
	font-weight: 700;
	letter-spacing: -0.02em;
	margin: 0 0 20px;
}

.t2b-two-lists__card-title.is-positive {
	color: var(--t2b-color-secondary-light);
}

.t2b-two-lists__card-title.is-negative {
	color: var(--t2b-color-primary);
}

/* ==========================================================================
   Timeline
   ========================================================================== */

.t2b-timeline {
	background: var(--t2b-color-secondary);
	color: var(--t2b-color-mint-light);
	position: relative;
	overflow: hidden;
}

.t2b-timeline__overlay {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(255deg, rgba(var(--t2b-color-overlay-rgb), 0.95) 0%, rgba(var(--t2b-color-dark-alt-rgb), 0.93) 52%, rgba(var(--t2b-color-dark-alt-rgb), 0.88) 100%);
}

.t2b-timeline__inner {
	position: relative;
	max-width: 1280px;
	margin: 0 auto;
	padding: clamp(48px,5.5vw,80px) 32px;
}

.t2b-timeline__header {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
	margin-bottom: clamp(30px,3.4vw,44px);
}

.t2b-timeline__title {
	font-size: clamp(24px,2.6vw,36px);
	font-weight: 800;
	letter-spacing: -0.03em;
	line-height: 1.1;
	margin: 0;
	color: var(--t2b-color-bg);
	max-width: 600px;
	text-wrap: balance;
}

.t2b-timeline__intro {
	font-size: 16px;
	line-height: 1.6;
	color: rgba(var(--t2b-color-mint-light-rgb), 0.72);
	margin: 0;
	max-width: 440px;
	font-weight: 500;
	text-wrap: pretty;
}

.t2b-timeline__step-title {
	font-size: 18px;
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.25;
	margin: 0 0 7px;
	color: var(--t2b-color-bg);
}

.t2b-timeline__step-text {
	font-size: 15px;
	line-height: 1.55;
	color: rgba(var(--t2b-color-mint-light-rgb), 0.72);
	margin: 0;
	text-wrap: pretty;
}

.t2b-timeline__grid {
	display: grid;
	gap: clamp(16px,2vw,26px);
}

.t2b-timeline__step {
	position: relative;
	border-top: 2px solid rgba(var(--t2b-color-mint-light-rgb), 0.28);
	padding-top: 22px;
}

.t2b-timeline__step.is-end {
	border-top-color: rgba(var(--t2b-color-mint-rgb), 0.9);
}

.t2b-timeline__dot {
	position: absolute;
	top: -6px;
	left: 0;
	width: 10px;
	height: 10px;
	border-radius: 99px;
	background: var(--t2b-color-primary-light);
}

.t2b-timeline__dot.is-end {
	background: var(--t2b-color-mint);
}

.t2b-timeline__when {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--t2b-color-primary-light);
	margin-bottom: 8px;
}

.t2b-timeline__when.is-end {
	color: var(--t2b-color-mint);
}

/* ==========================================================================
   Itinerary
   ========================================================================== */

.t2b-itinerary {
	background: var(--t2b-color-bg-alt);
}

.t2b-itinerary__inner {
	max-width: 1280px;
	margin: 0 auto;
	padding: clamp(56px,6.5vw,100px) 32px clamp(20px,2.5vw,32px);
}

.t2b-itinerary__eyebrow {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--t2b-color-primary);
	margin-bottom: 14px;
}

.t2b-itinerary__title {
	font-size: clamp(28px,3.6vw,48px);
	font-weight: 800;
	letter-spacing: -0.032em;
	line-height: 1.06;
	margin: 0 0 16px;
	max-width: 760px;
	text-wrap: balance;
}

.t2b-itinerary__intro {
	font-size: 17.5px;
	line-height: 1.6;
	color: var(--t2b-color-text-muted);
	margin: 0 0 clamp(28px,3vw,40px);
	max-width: 640px;
	font-weight: 500;
	text-wrap: pretty;
}

.t2b-itinerary__track {
	display: flex;
	gap: clamp(16px,2vw,24px);
	overflow-x: auto;
	padding: 4px 32px clamp(56px,6.5vw,100px);
	scroll-snap-type: x mandatory;
}

.t2b-itinerary__day {
	flex: 0 0 clamp(270px,26vw,340px);
	scroll-snap-align: start;
	background: var(--t2b-color-bg);
	border-radius: 22px;
	padding: 14px 14px 26px;
}

.t2b-itinerary__media {
	aspect-ratio: 4/3;
	border-radius: 15px;
	overflow: hidden;
	background: var(--t2b-color-bg-sand);
	margin-bottom: 18px;
}

.t2b-itinerary__label {
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--t2b-color-primary);
	margin-bottom: 8px;
}

.t2b-itinerary__day-title {
	font-size: 19px;
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.25;
	margin: 0 0 9px;
}

.t2b-itinerary__day-text {
	font-size: 15.5px;
	line-height: 1.6;
	color: var(--t2b-color-text-muted);
	margin: 0;
	text-wrap: pretty;
}

.t2b-itinerary__end {
	flex: 0 0 clamp(270px,26vw,340px);
	scroll-snap-align: start;
	background: var(--t2b-color-secondary);
	color: var(--t2b-color-mint-light);
	border-radius: 22px;
	padding: clamp(24px,2.6vw,32px);
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 14px;
}

.t2b-itinerary__end-eyebrow {
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--t2b-color-primary-light);
}

.t2b-itinerary__end-title {
	font-size: 21px;
	font-weight: 700;
	letter-spacing: -0.025em;
	margin: 0;
	color: var(--t2b-color-bg);
	line-height: 1.2;
}

.t2b-itinerary__end-text {
	font-size: 15.5px;
	line-height: 1.6;
	color: rgba(var(--t2b-color-mint-light-rgb), 0.78);
	margin: 0;
	text-wrap: pretty;
}

.t2b-itinerary__end-btn,
.t2b-itinerary__end-btn:hover {
	align-self: flex-start;
	margin-top: 4px;
	background: var(--t2b-color-primary);
	color: var(--t2b-color-white);
	padding: 14px 26px;
	border-radius: 999px;
	font-size: 15.5px;
	font-weight: 700;
}

.t2b-itinerary__end-btn:hover {
	background: var(--t2b-color-primary-light);
}

/* ==========================================================================
   Review wall
   ========================================================================== */

.t2b-review-wall {
	background: var(--t2b-color-bg);
}

.t2b-review-wall__inner {
	max-width: 1280px;
	margin: 0 auto;
	padding: clamp(36px,4vw,60px) 32px clamp(64px,7vw,104px);
}

.t2b-review-wall__header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 28px;
	flex-wrap: wrap;
	margin-bottom: clamp(24px,2.6vw,34px);
}

.t2b-review-wall__eyebrow {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--t2b-color-primary);
	margin-bottom: 14px;
}

.t2b-review-wall__title {
	font-size: clamp(28px,3.4vw,46px);
	font-weight: 800;
	letter-spacing: -0.032em;
	line-height: 1.06;
	margin: 0 0 16px;
	max-width: 680px;
	text-wrap: balance;
}

.t2b-review-wall__intro {
	font-size: 17.5px;
	line-height: 1.62;
	color: var(--t2b-color-text);
	font-weight: 500;
	max-width: 560px;
	margin: 0;
	text-wrap: pretty;
}

.t2b-review-wall__filters {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	margin-bottom: clamp(26px,3vw,38px);
}

.t2b-review-wall__wall {
	column-count: 3;
	column-gap: 22px;
}

.t2b-review-wall__item {
	break-inside: avoid;
	margin-bottom: 22px;
	display: inline-block;
	width: 100%;
}

.t2b-review-wall__photo {
	position: relative;
	border-radius: 20px;
	overflow: hidden;
	background: var(--t2b-color-secondary);
	aspect-ratio: 3/4;
}

.t2b-review-wall__photo-overlay {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(180deg, rgba(var(--t2b-color-overlay-rgb), 0) 42%, rgba(var(--t2b-color-overlay-rgb), 0.72) 100%);
}

.t2b-review-wall__photo-text {
	position: absolute;
	left: 22px;
	right: 22px;
	bottom: 20px;
	display: flex;
	flex-direction: column;
	gap: 5px;
}

.t2b-review-wall__photo-badge {
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--t2b-color-primary-light);
}

.t2b-review-wall__photo-caption {
	font-size: 16.5px;
	font-weight: 700;
	letter-spacing: -0.018em;
	line-height: 1.3;
	color: var(--t2b-color-bg);
	text-wrap: pretty;
}

.t2b-review-wall__review {
	background: var(--t2b-color-bg-alt);
	border-radius: 20px;
	padding: 26px 28px 28px;
}

.t2b-review-wall__review-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 16px;
}

.t2b-review-wall__stars {
	letter-spacing: 0.1em;
	color: var(--t2b-color-primary);
	font-size: 15px;
}

.t2b-review-wall__review-badge {
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--t2b-color-secondary);
	background: rgba(var(--t2b-color-secondary-rgb), 0.09);
	border-radius: 999px;
	padding: 6px 12px;
	white-space: nowrap;
}

.t2b-review-wall__review-title {
	font-size: 19px;
	font-weight: 800;
	letter-spacing: -0.022em;
	line-height: 1.24;
	margin: 0 0 14px;
	color: var(--t2b-color-heading);
	text-wrap: pretty;
}

.t2b-review-wall__review-text {
	font-size: 15.5px;
	line-height: 1.66;
	color: var(--t2b-color-text);
	font-weight: 500;
	margin: 0 0 20px;
	text-wrap: pretty;
}

.t2b-review-wall__review-author {
	padding-top: 16px;
	border-top: 1px solid rgba(var(--t2b-color-ink-rgb), 0.12);
	margin-top: 16px;
}

.t2b-review-wall__review-name {
	font-size: 15px;
	font-weight: 700;
	color: var(--t2b-color-heading);
	margin-bottom: 4px;
}

.t2b-review-wall__review-meta {
	font-size: 14px;
	font-weight: 500;
	color: var(--t2b-color-text-soft);
}

.t2b-review-wall__filter {
	border: 1px solid rgba(var(--t2b-color-ink-rgb), 0.18);
	border-radius: 999px;
	padding: 12px 22px;
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
	background: var(--t2b-color-bg);
	color: var(--t2b-color-heading);
}

.t2b-review-wall__filter[aria-pressed="false"] {
	background: transparent;
}

.t2b-review-wall__filter[aria-pressed="true"] {
	background: var(--t2b-color-secondary);
	color: var(--t2b-color-bg);
}

.t2b-review-wall__filter:hover {
	border-color: var(--t2b-color-secondary);
}

/* ==========================================================================
   Components that reuse page styles (main.css): hover states
   ========================================================================== */

.t2b-destinations__region-btn:hover {
	background: var(--t2b-color-primary);
}

.t2b-reviews__read-more-btn:hover {
	background: var(--t2b-color-white);
}

.t2b-reviews__read-more-label:hover {
	color: var(--t2b-color-primary-light);
	border-bottom-color: var(--t2b-color-primary-light);
}

.t2b-faq__list-btn:hover {
	background: var(--t2b-color-primary);
}

.t2b-faq__list-link:hover {
	color: var(--t2b-color-primary);
	border-bottom-color: var(--t2b-color-primary);
}

.t2b-journal__topics-btn:hover {
	background: var(--t2b-color-primary);
}

/* ==========================================================================
   Hero styles and Video options
   ========================================================================== */

.t2b-hero--wide .t2b-hero__overlay {
	background: linear-gradient(102deg, rgba(var(--t2b-color-overlay-rgb), 0.92) 0%, rgba(var(--t2b-color-overlay-rgb), 0.72) 46%, rgba(var(--t2b-color-overlay-rgb), 0.32) 100%);
}

.t2b-hero--wide .t2b-hero__text {
	max-width: 620px;
}

.t2b-hero--compact {
	min-height: clamp(480px,56vh,600px);
}

.t2b-hero--compact .t2b-page-hero__inner {
	padding: clamp(68px,7.5vw,108px) 32px clamp(48px,5vw,72px);
}

.t2b-hero--compact .t2b-hero__overlay {
	background: linear-gradient(102deg, rgba(var(--t2b-color-overlay-rgb), 0.93) 0%, rgba(var(--t2b-color-overlay-rgb), 0.76) 46%, rgba(var(--t2b-color-overlay-rgb), 0.38) 100%);
}

.t2b-hero--compact .t2b-hero__title {
	font-size: clamp(36px,5vw,68px);
	line-height: 1.02;
	margin: 0 0 20px;
	max-width: 820px;
}

.t2b-hero--compact .t2b-hero__text {
	font-size: clamp(17px,1.4vw,20px);
	max-width: 560px;
}

.t2b-hero--compact-wide .t2b-hero__overlay {
	background: linear-gradient(102deg, rgba(var(--t2b-color-overlay-rgb), 0.93) 0%, rgba(var(--t2b-color-overlay-rgb), 0.74) 46%, rgba(var(--t2b-color-overlay-rgb), 0.36) 100%);
}

.t2b-hero--compact-wide .t2b-hero__text {
	max-width: 580px;
}

.t2b-video--no-divider {
	border-top: 0;
}

.t2b-image-divider--bold {
	height: clamp(260px,30vw,400px);
}

.t2b-image-divider--bold .t2b-image-divider__text {
	font-size: clamp(22px,2.4vw,34px);
	font-weight: 800;
	letter-spacing: -0.03em;
	line-height: 1.18;
	max-width: 760px;
}

.t2b-cta--wide .t2b-cta__title {
	max-width: 720px;
}

.t2b-cta-call--wide .t2b-corporate__cta-heading {
	max-width: 800px;
}

/* Video without a hover colour on the play button (homepage film). */
.t2b-video--static .t2b-video__play:hover {
	background: var(--t2b-color-bg);
	color: var(--t2b-color-heading);
}

/* Contact Form 7 -----------------------------------------------------------
 *
 * The plugin adds three wrappers the layouts never asked for: a div around the
 * whole form, a div around the hidden control fields, and a span around every
 * control. display:contents takes them back out of the box tree, so the form
 * and its inputs stay the flex children their containers were written for.
 */
.t2b-cf7,
.t2b-cf7 > .wpcf7,
.t2b-form .wpcf7-form-control-wrap {
	display: contents;
}

.t2b-form {
	margin: 0;
}

.t2b-cf7__hidden {
	display: none;
}

/* Message under a field that failed validation. */
.t2b-form .wpcf7-not-valid-tip {
	display: block;
	font-size: 13.5px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--t2b-color-primary);
}

.t2b-form .wpcf7-form-control.wpcf7-not-valid {
	border-color: var(--t2b-color-primary);
}

/* The plugin's own summary line, shown after a submission. */
.t2b-cf7 .wpcf7-response-output {
	margin: 0;
	padding: 13px 16px;
	border: 1px solid currentColor;
	border-radius: 12px;
	font-size: 14.5px;
	font-weight: 600;
	line-height: 1.5;
}

.t2b-form.invalid .wpcf7-response-output,
.t2b-form.unaccepted .wpcf7-response-output,
.t2b-form.spam .wpcf7-response-output,
.t2b-form.failed .wpcf7-response-output,
.t2b-form.aborted .wpcf7-response-output {
	color: var(--t2b-color-primary);
}

/* While a submission is in flight the button must stop taking clicks. */
.t2b-form.submitting button[type="submit"] {
	opacity: 0.65;
	pointer-events: none;
}

.t2b-form .wpcf7-spinner {
	display: none;
}

/* The plugin builds the <option> elements itself, so the colour the theme used
 * to put on each one (legible against the system dropdown, not against the
 * dark field) is applied to the options directly. */
.t2b-school__inquiry-select option,
.t2b-corporate__free-audit-select option {
	color: var(--t2b-color-heading);
}
