/* Theme UI components that cannot be expressed in theme.json. */
:root {
	--tyt-font-display: 'Cormorant Garamond', Georgia, serif;
	--tyt-font-body: Jost, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
	--tyt-weight-light: 300;
	--tyt-weight-regular: 400;
	--tyt-weight-medium: 500;
	--tyt-weight-semibold: 600;
	--tyt-weight-bold: 700;
	/* Every homepage card title is set off this one step, so the rails read as
	   one family however each is laid out. */
	--tyt-card-title-size: clamp(1.18rem, 1.42vw, 1.48rem);
}

.tyt-tour-price-selector { margin: 1.25rem 0 0.5rem; }
.tyt-tour-price-selector__options { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.tyt-tour-price-selector__option { background: transparent; border: 1px solid var(--tyt-hairline); cursor: pointer; padding: 0.6rem 1rem; }
.tyt-tour-price-selector__option.is-selected { background: var(--wp--preset--color--primary); border-color: var(--wp--preset--color--primary); color: var(--wp--preset--color--base); }
.tyt-tour-price { color: var(--wp--preset--color--primary); font-size: var(--wp--preset--font-size--x-large); font-weight: 600; margin: 1rem 0 0; }

/* MBS87 Stitch landing system: one scoped presentation layer for imported Pages. */
/* MBS87 keeps the global white Header as an independent block. */
body:has(.tyt-mbs87-hero-stage) {
	--tyt-mbs87-container: min(1536px, calc(100vw - 48px));
}

body:has(.tyt-mbs87-hero-stage) .wp-site-blocks > .wp-block-template-part:first-child {
	position: relative;
	width: 100%;
	z-index: 20;
}

body:has(.tyt-mbs87-hero-stage) .tyt-primary-navigation {
	width: 100%;
}

body:has(.tyt-mbs87-hero-stage) .wp-site-blocks > .wp-block-template-part + .wp-block-cover {
	margin-block-start: 0 !important;
}

body:has(.tyt-mbs87-hero-stage) #wp--skip-link--target {
	margin-block: 0 !important;
}

body:has(.tyt-mbs87-hero-stage) .wp-site-blocks > .wp-block-template-part:last-child {
	margin-block-start: 0 !important;
}

body:has(.tyt-mbs87-hero-stage) .tyt-mbs87-body-surface {
	padding-bottom: clamp(4rem, 7vw, 7rem) !important;
}

.tyt-mbs87-page-shell,
.tyt-mbs87-body-surface {
	background: #f6f6f4;
	max-width: none !important;
}

.tyt-mbs87-body-surface {
	padding: 0 0 clamp(4rem, 7vw, 7rem);
	width: 100%;
}

.tyt-mbs87-body-surface .wp-block-post-content {
	max-width: none !important;
	width: 100% !important;
}

.tyt-mbs87-hero-stage {
	align-items: center;
	box-sizing: border-box;
	min-height: clamp(34rem, 47vw, 42rem) !important;
	padding: 0 !important;
}

/* Tall source heroes often carry text baked into the image, so a hero with an
   image fills the viewport below the 90px sticky header. Pages without a hero
   image keep the height above as their floor. */
.tyt-mbs87-hero-stage:has(.wp-block-cover__image-background) {
	min-height: max(clamp(34rem, 47vw, 42rem), calc(100vh - 90px)) !important;
	min-height: max(clamp(34rem, 47vw, 42rem), calc(100svh - 90px)) !important;
}

.tyt-mbs87-hero-stage .wp-block-cover__image-background {
	object-position: center;
}

.tyt-mbs87-hero-stage .wp-block-cover__background {
	background: linear-gradient(90deg, rgba(8, 15, 22, 0.78) 0%, rgba(8, 15, 22, 0.46) 42%, rgba(8, 15, 22, 0.12) 78%, rgba(8, 15, 22, 0) 100%) !important;
	opacity: 1 !important;
}

.tyt-mbs87-hero-stage .wp-block-cover__inner-container {
	align-items: center;
	display: flex;
	margin: 0 auto;
	max-width: var(--tyt-mbs87-container);
	padding-top: 4rem;
	width: 100%;
}

.tyt-mbs87-hero-stage .wp-block-cover__inner-container > .tyt-mbs87-hero-copy {
	margin-inline: 0 !important;
	max-width: var(--tyt-mbs87-container);
	width: 100%;
}

.tyt-mbs87-hero-copy {
	max-width: 48rem;
	margin-left: 0 !important;
	margin-right: 0 !important;
	width: 100%;
}

.tyt-mbs87-hero-copy > .wp-block-post-title,
.tyt-mbs87-hero-copy > .wp-block-buttons {
	margin-inline: 0 !important;
}

.tyt-mbs87-hero-copy > .wp-block-buttons {
	max-width: var(--tyt-mbs87-container);
	width: 100%;
}

.tyt-mbs87-hero-copy .wp-block-post-title {
	color: #fff;
	font-family: var(--tyt-font-display);
	font-size: clamp(2.8rem, 4.6vw, 4.5rem);
	font-weight: var(--tyt-weight-semibold);
	letter-spacing: -0.02em;
	line-height: 0.95;
	margin: 0 0 1.75rem;
	max-width: 80%;
	text-align: left !important;
}

.tyt-mbs87-hero-copy .wp-block-buttons {
	margin: 0;
}

.tyt-mbs87-hero-cta .wp-block-button__link {
	background: #e2bd3c;
	border: 0;
	border-radius: 999px;
	box-shadow: 0 8px 22px rgba(0, 0, 0, 0.22);
	color: #111820;
	font-family: var(--tyt-font-body);
	font-size: 0.95rem;
	font-weight: var(--tyt-weight-bold);
	padding: 0.85rem 1.55rem;
}

.tyt-mbs87-hero-cta .wp-block-button__link:hover,
.tyt-mbs87-hero-cta .wp-block-button__link:focus-visible {
	background: #f0d36c;
	color: #111820;
}

.tyt-source-mbs87 {
	--tyt-mbs87-prose: 900px;
	--tyt-mbs87-card: #fff;
	--tyt-mbs87-rule: rgba(18, 27, 38, 0.1);
	--tyt-mbs87-gap: clamp(1rem, 1.7vw, 1.5rem);
	--tyt-mbs87-radius: 9px;
	--tyt-mbs87-shadow: 0 5px 14px rgba(19, 28, 38, 0.08), 0 1px 3px rgba(19, 28, 38, 0.04);
	box-sizing: border-box;
}

.tyt-source-mbs87 .tyt-editorial-page {
	box-sizing: border-box;
	max-width: none;
	width: 100%;
}

.tyt-source-mbs87 .tyt-editorial-section {
	box-sizing: border-box;
	margin: clamp(4rem, 6vw, 6rem) auto 0 !important;
	max-width: var(--tyt-mbs87-container) !important;
	width: var(--tyt-mbs87-container) !important;
}

/* Rich-text sections carry their own sub-heading scale so body copy on the
   long-form pages steps down from the section title instead of guessing. */
.tyt-source-mbs87 .tyt-editorial-richtext .wp-block-heading {
	font-family: var(--tyt-font-display);
	font-weight: var(--tyt-weight-semibold);
	line-height: 1.15;
	margin: clamp(2rem, 3.5vw, 3rem) 0 0.9rem;
}

.tyt-source-mbs87 .tyt-editorial-richtext > .wp-block-heading:first-child {
	margin-top: 0;
}

.tyt-source-mbs87 .tyt-editorial-richtext h2.wp-block-heading {
	font-size: clamp(1.9rem, 2.7vw, 2.6rem);
	letter-spacing: -0.01em;
}

.tyt-source-mbs87 .tyt-editorial-richtext h3.wp-block-heading {
	font-size: clamp(1.35rem, 1.8vw, 1.7rem);
}

.tyt-source-mbs87 .tyt-editorial-richtext :is(h4, h5, h6).wp-block-heading {
	font-size: clamp(1.15rem, 1.45vw, 1.4rem);
}

.tyt-source-mbs87 .tyt-editorial-intro .wp-block-paragraph:first-child {
	color: #17202a;
	font-size: clamp(1.12rem, 1.45vw, 1.35rem);
	font-weight: var(--tyt-weight-semibold);
	line-height: 1.55;
}

.tyt-source-mbs87 .tyt-editorial-intro > .wp-block-paragraph {
	margin-inline: auto;
	max-width: var(--tyt-mbs87-prose);
}

.tyt-source-mbs87 .tyt-editorial-intro .wp-block-paragraph {
	font-family: var(--tyt-font-body);
	font-size: clamp(1rem, 1.1vw, 1.08rem);
	line-height: 1.7;
	margin-inline: auto;
	text-align: center;
}

.tyt-source-mbs87 .tyt-editorial-intro .wp-block-paragraph + .wp-block-paragraph {
	margin-top: 0.9rem;
}

.tyt-source-mbs87 .tyt-editorial-cards > .wp-block-heading {
	font-family: var(--tyt-font-display);
	font-size: clamp(1.9rem, 2.7vw, 2.6rem);
	font-weight: var(--tyt-weight-semibold);
	letter-spacing: -0.01em;
	line-height: 1.08;
	margin: 0 0 clamp(1.75rem, 2.75vw, 2.5rem);
	text-align: center;
}

/* The scrape wraps some headings in <strong> and leaves others plain. Headings
   own their weight here so every section title reads the same. */
.tyt-source-mbs87 .wp-block-heading :is(strong, b) {
	font-weight: inherit;
}

.tyt-source-mbs87 .tyt-editorial-grid {
	display: grid !important;
	gap: var(--tyt-mbs87-gap);
	margin: 0 !important;
	width: 100%;
}

.tyt-source-mbs87 .tyt-editorial-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tyt-source-mbs87 .tyt-editorial-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tyt-source-mbs87 .tyt-editorial-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.tyt-source-mbs87 .tyt-editorial-grid > .wp-block-column {
	box-sizing: border-box;
	flex-basis: auto !important;
	margin: 0 !important;
	min-width: 0;
	width: auto !important;
}

/* The image-only source section stays editable but reads as a quiet visual strip. */
.tyt-source-mbs87 .tyt-editorial-gallery.tyt-editorial-cards--2 {
	margin-top: clamp(2.5rem, 4vw, 4rem) !important;
}

.tyt-source-mbs87 .tyt-editorial-gallery.tyt-editorial-cards--2 .tyt-editorial-card {
	border-radius: var(--tyt-mbs87-radius);
	box-shadow: var(--tyt-mbs87-shadow);
	overflow: hidden;
}

.tyt-source-mbs87 .tyt-editorial-gallery.tyt-editorial-cards--2 .wp-block-image,
.tyt-source-mbs87 .tyt-editorial-gallery.tyt-editorial-cards--2 .wp-block-image img {
	display: block;
	margin: 0;
	width: 100%;
}

.tyt-source-mbs87 .tyt-editorial-gallery.tyt-editorial-cards--2 .wp-block-image img {
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

/* Fleet: native 3 × 2 cards with a stable 16:9 media frame. */
.tyt-source-mbs87 .tyt-editorial-gallery .tyt-editorial-grid--3 {
	row-gap: var(--tyt-mbs87-gap);
}

.tyt-source-mbs87 .tyt-editorial-gallery .tyt-editorial-grid--3 + .tyt-editorial-grid--3 {
	margin-top: var(--tyt-mbs87-gap) !important;
}

.tyt-source-mbs87 .tyt-editorial-gallery .tyt-editorial-grid--3 .tyt-editorial-card {
	background: var(--tyt-mbs87-card);
	border: 1px solid var(--tyt-mbs87-rule);
	border-radius: var(--tyt-mbs87-radius);
	box-shadow: var(--tyt-mbs87-shadow);
	height: 100%;
	overflow: hidden;
}

.tyt-source-mbs87 .tyt-editorial-gallery .tyt-editorial-grid--3 .tyt-editorial-card {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.tyt-source-mbs87 .tyt-editorial-gallery .tyt-editorial-grid--3 .wp-block-image {
	margin: 0;
}

.tyt-source-mbs87 .tyt-editorial-gallery .tyt-editorial-grid--3 .wp-block-image img {
	aspect-ratio: 16 / 9;
	display: block;
	object-fit: cover;
	width: 100%;
}

.tyt-source-mbs87 .tyt-editorial-gallery .tyt-editorial-grid--3 .wp-block-paragraph {
	font-family: var(--tyt-font-body);
	font-size: 0.92rem;
	font-weight: var(--tyt-weight-bold);
	line-height: 1.25;
	margin: 0;
	padding: 0.9rem 1rem 1rem;
}

/* Benefits: four individually elevated cards with presentation-only icons. */
.tyt-source-mbs87 .tyt-editorial-benefits .tyt-editorial-grid {
	gap: var(--tyt-mbs87-gap);
}

.tyt-source-mbs87 .tyt-editorial-benefits .wp-block-column {
	background: transparent;
	padding: 0;
}

.tyt-source-mbs87 .tyt-editorial-benefits .tyt-editorial-card {
	background: var(--tyt-mbs87-card);
	border: 1px solid var(--tyt-mbs87-rule);
	border-radius: var(--tyt-mbs87-radius);
	box-shadow: var(--tyt-mbs87-shadow);
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: clamp(1rem, 1.35vw, 1.35rem);
	text-align: center;
}

.tyt-source-mbs87 .tyt-editorial-benefits .tyt-editorial-card::before {
	align-items: center;
	background-position: center;
	background-repeat: no-repeat;
	background-size: 72% 72%;
	border: 2px solid #d4a812;
	border-radius: 50%;
	color: transparent;
	display: flex;
	font-size: 0;
	height: 3.25rem;
	justify-content: center;
	margin: 0 auto 1.15rem;
	width: 3.25rem;
}

.tyt-source-mbs87 .tyt-benefit-icon--value::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d4a812' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v10m3-7c0-1-1-2-3-2s-3 1-3 2 1 2 3 2 3 1 3 2-1 2-3 2-3-1-3-2'/%3E%3C/svg%3E");
	content: '';
}

.tyt-source-mbs87 .tyt-benefit-icon--driver::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d4a812' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Ccircle cx='12' cy='9' r='2'/%3E%3Cpath d='m12 11-8.5 5M12 11l8.5 5M12 11V2'/%3E%3C/svg%3E");
	content: '';
}

.tyt-source-mbs87 .tyt-benefit-icon--comfort::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d4a812' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 7h8M8 11h8M5 19h14a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2Z'/%3E%3Cpath d='M8 15h.01M16 15h.01'/%3E%3C/svg%3E");
	content: '';
}

.tyt-source-mbs87 .tyt-benefit-icon--support::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d4a812' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 18v-6a9 9 0 0 1 18 0v6M3 18a3 3 0 0 0 3 3h2a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1H5m14 5a3 3 0 0 1-3 3h-2a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1h4'/%3E%3C/svg%3E");
	content: '';
}

.tyt-source-mbs87 .tyt-benefit-icon--neutral::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d4a812' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m12 8 1.3 2.7L16 12l-2.7 1.3L12 16l-1.3-2.7L8 12l2.7-1.3L12 8Z'/%3E%3C/svg%3E");
	content: '';
}

/* Card titles only: the section title keeps the shared .tyt-editorial-cards size.
   Sources title a benefit card either with a heading or with a fully bold
   paragraph, so both get one treatment. */
.tyt-source-mbs87 .tyt-editorial-benefits .tyt-editorial-card .wp-block-heading,
.tyt-source-mbs87 .tyt-editorial-benefits .tyt-editorial-card:not(:has(.wp-block-heading)) > .wp-block-paragraph:first-of-type {
	font-family: var(--tyt-font-display);
	font-size: clamp(1.15rem, 1.45vw, 1.4rem);
	font-weight: var(--tyt-weight-semibold);
	line-height: 1.2;
	margin: 0 0 1rem;
	text-align: center !important;
}

.tyt-source-mbs87 .tyt-editorial-benefits .tyt-editorial-card:not(:has(.wp-block-heading)) > .wp-block-paragraph:first-of-type :is(strong, b) {
	font-weight: inherit;
}

.tyt-source-mbs87 .tyt-editorial-benefits :is(.wp-block-list, .wp-block-paragraph) {
	font-size: clamp(0.86rem, 0.95vw, 0.98rem);
	line-height: 1.55;
	text-align: left;
}

.tyt-source-mbs87 .tyt-editorial-benefits .wp-block-list {
	margin: 0 !important;
	padding-left: 1.25rem !important;
}

/* Card body starts at the same offset whether the source used a list or prose. */
.tyt-source-mbs87 .tyt-editorial-benefits .tyt-editorial-card > .wp-block-paragraph {
	margin-top: 0 !important;
}

.tyt-source-mbs87 .tyt-editorial-benefits .tyt-editorial-card > :is(.wp-block-paragraph, .wp-block-list) + .wp-block-paragraph {
	margin-top: 0.7rem !important;
}

.tyt-source-mbs87 .tyt-editorial-benefits .wp-block-list li + li {
	margin-top: 0.45rem;
}

/* Unclassified sections still read as cards instead of bare text, so a source
   section the classifier cannot place never renders unstyled. */
.tyt-source-mbs87 .tyt-editorial-card--cards {
	background: var(--tyt-mbs87-card);
	border: 1px solid var(--tyt-mbs87-rule);
	border-radius: var(--tyt-mbs87-radius);
	box-shadow: var(--tyt-mbs87-shadow);
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	padding: clamp(1.35rem, 2vw, 1.8rem);
}

.tyt-source-mbs87 .tyt-editorial-card--cards:has(> .wp-block-image:first-child) {
	padding: 0;
}

.tyt-source-mbs87 .tyt-editorial-card--cards > .wp-block-image,
.tyt-source-mbs87 .tyt-editorial-card--cards > .wp-block-image img {
	display: block;
	margin: 0;
	width: 100%;
}

.tyt-source-mbs87 .tyt-editorial-card--cards > .wp-block-image img {
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

.tyt-source-mbs87 .tyt-editorial-card--cards .wp-block-heading,
.tyt-source-mbs87 .tyt-editorial-card--cards > .wp-block-paragraph:first-of-type {
	font-family: var(--tyt-font-display);
	font-size: clamp(1.05rem, 1.2vw, 1.2rem);
	font-weight: var(--tyt-weight-semibold);
	line-height: 1.2;
	margin: 0 0 0.75rem;
}

.tyt-source-mbs87 .tyt-editorial-card--cards .wp-block-paragraph {
	color: #45515a;
	font-size: clamp(0.86rem, 0.95vw, 0.98rem);
	line-height: 1.6;
	margin: 0;
}

.tyt-source-mbs87 .tyt-editorial-card--cards .wp-block-paragraph + .wp-block-paragraph {
	margin-top: 0.6rem;
}

/* Destinations: image-forward 4 × 2 cards with a deterministic fallback for unresolved labels. */
.tyt-source-mbs87 .tyt-editorial-destinations .tyt-editorial-grid--4 + .tyt-editorial-grid--4 {
	margin-top: var(--tyt-mbs87-gap) !important;
}

.tyt-source-mbs87 .tyt-editorial-destinations .wp-block-column {
	min-width: 0;
}

.tyt-source-mbs87 .tyt-editorial-destinations .tyt-editorial-card {
	background: linear-gradient(145deg, #303842, #1e252d);
	border: 0;
	border-radius: var(--tyt-mbs87-radius);
	box-sizing: border-box;
	color: #fff;
	display: flex;
	flex: 1;
	flex-direction: column;
	justify-content: flex-end;
	min-height: clamp(10rem, 15vw, 14rem);
	overflow: hidden;
	position: relative;
	box-shadow: none;
}

.tyt-source-mbs87 .tyt-editorial-destinations .tyt-editorial-card:has(.wp-block-image) {
	background: #171c23;
}

/* Card labels sit on a dark image scrim, so every inline element — links
   included, which otherwise inherit the dark theme link colour — stays white. */
.tyt-source-mbs87 .tyt-editorial-destinations .tyt-editorial-card,
.tyt-source-mbs87 .tyt-editorial-destinations .tyt-editorial-card :where(p, a, span, strong, em, h2, h3, h4, h5, h6, li) {
	color: #fff !important;
}

.tyt-source-mbs87 .tyt-editorial-destinations .tyt-editorial-card a {
	text-decoration: none;
	text-shadow: 0 1px 2px rgba(8, 12, 16, 0.55);
}

.tyt-source-mbs87 .tyt-editorial-destinations .tyt-editorial-card a:hover,
.tyt-source-mbs87 .tyt-editorial-destinations .tyt-editorial-card a:focus-visible {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.tyt-source-mbs87 .tyt-editorial-destinations .wp-block-image {
	height: 100%;
	inset: 0;
	margin: 0;
	position: absolute;
	width: 100%;
}

.tyt-source-mbs87 .tyt-editorial-destinations .wp-block-image::after {
	background: linear-gradient(180deg, rgba(8, 12, 16, 0) 22%, rgba(8, 12, 16, 0.86) 100%);
	content: '';
	inset: 0;
	position: absolute;
}

.tyt-source-mbs87 .tyt-editorial-destinations .wp-block-image img {
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.tyt-source-mbs87 .tyt-editorial-destinations .wp-block-paragraph {
	box-sizing: border-box;
	bottom: 0;
	color: #fff;
	font-family: var(--tyt-font-body);
	font-size: clamp(1rem, 1.15vw, 1.25rem);
	font-weight: var(--tyt-weight-bold);
	inset-block-end: 0;
	left: 0;
	line-height: 1.25;
	margin: 0;
	overflow: hidden;
	padding: 1rem;
	position: absolute;
	right: 0;
	text-overflow: ellipsis;
	white-space: nowrap;
	z-index: 1;
}

/* Reviews are deliberately static: six native cards in a 3/2/1 grid. */
.tyt-source-mbs87 .tyt-editorial-testimonials {
	background: #eef3f1;
	border: 1px solid rgba(20, 88, 82, 0.08);
	border-radius: var(--tyt-mbs87-radius);
	display: grid;
	gap: var(--tyt-mbs87-gap);
	grid-template-columns: repeat(3, minmax(0, 1fr));
	padding: clamp(2rem, 4vw, 3.5rem);
}

/* The desktop editor canvas is narrower than the front end because of its sidebars. */
@media (min-width: 900px) {
	body.block-editor-iframe__body .tyt-source-mbs87 .tyt-editorial-testimonials {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.tyt-source-mbs87 .tyt-editorial-testimonials > .wp-block-heading {
	grid-column: 1 / -1;
	margin-bottom: 0.35rem;
	text-align: center;
}

.tyt-source-mbs87 .tyt-editorial-testimonials .tyt-editorial-grid {
	display: contents !important;
}

.tyt-source-mbs87 .tyt-editorial-testimonials .wp-block-column {
	min-width: 0;
}

.tyt-source-mbs87 .tyt-editorial-testimonials .tyt-editorial-card {
	background: var(--tyt-mbs87-card);
	border: 1px solid var(--tyt-mbs87-rule);
	border-radius: var(--tyt-mbs87-radius);
	box-shadow: var(--tyt-mbs87-shadow);
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	height: 100%;
	min-height: 16rem;
	padding: clamp(1.35rem, 2vw, 1.8rem);
}

/* A quote can run over several paragraphs, so body styling covers all of them
   and only the closing paragraph reads as the attribution. */
.tyt-source-mbs87 .tyt-editorial-testimonials .wp-block-paragraph {
	color: #45515a;
	font-size: 0.92rem;
	line-height: 1.62;
	margin: 0;
}

.tyt-source-mbs87 .tyt-editorial-testimonials .wp-block-paragraph + .wp-block-paragraph {
	margin-top: 0.7rem;
}

.tyt-source-mbs87 .tyt-editorial-testimonials .wp-block-paragraph:first-child::before {
	color: #c99316;
	content: '“';
	display: block;
	font-family: Georgia, serif;
	font-size: 3rem;
	line-height: 0.65;
	margin-bottom: 0.85rem;
}

.tyt-source-mbs87 .tyt-editorial-testimonials .tyt-editorial-card > .wp-block-paragraph:last-child:not(:first-child) {
	border-top: 2px solid #d2a51c;
	color: #17202a;
	font-size: 0.87rem;
	font-weight: var(--tyt-weight-bold);
	line-height: 1.25;
	margin: auto 0 0;
	padding-top: 0.85rem;
}

.tyt-source-mbs87 .tyt-editorial-testimonials .tyt-editorial-card > .wp-block-paragraph:last-child:not(:first-child) :is(strong, b) {
	font-weight: inherit;
}

/* Other destinations: a closing strip of sibling MBS87 Pages, on the same
   container rhythm and card shape as the sections above it. A Page carries no
   taxonomy, so the relation is the imported corpus itself — see
   theme/inc/related-posts.php. */
.tyt-source-mbs87 .tyt-mbs87-related {
	box-sizing: border-box;
	margin: clamp(4rem, 6vw, 6rem) auto 0 !important;
	max-width: var(--tyt-mbs87-container) !important;
	width: var(--tyt-mbs87-container) !important;
}

/* A Page with no sibling in the corpus drops the strip instead of standing empty. */
.tyt-source-mbs87 .tyt-mbs87-related:has(.wp-block-query-no-results) {
	display: none;
}

.tyt-source-mbs87 .tyt-mbs87-related__title {
	font-family: var(--tyt-font-display);
	font-size: clamp(1.9rem, 2.7vw, 2.6rem);
	font-weight: var(--tyt-weight-semibold);
	letter-spacing: -0.01em;
	line-height: 1.08;
	margin: 0 0 clamp(1.75rem, 2.75vw, 2.5rem);
	text-align: center;
}

.tyt-source-mbs87 .tyt-mbs87-related__list {
	display: grid !important;
	gap: var(--tyt-mbs87-gap);
	grid-template-columns: repeat(4, minmax(0, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}

.tyt-source-mbs87 .tyt-mbs87-related__list > li {
	background: var(--tyt-mbs87-card);
	border: 1px solid var(--tyt-mbs87-rule);
	border-radius: var(--tyt-mbs87-radius);
	box-shadow: var(--tyt-mbs87-shadow);
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	overflow: hidden;
}

.tyt-source-mbs87 .tyt-mbs87-related__image { margin: 0; }

.tyt-source-mbs87 .tyt-mbs87-related__image img {
	aspect-ratio: 16 / 10;
	display: block;
	height: auto;
	object-fit: cover;
	width: 100%;
}

/* A Page without a featured image keeps the card's proportions rather than
   collapsing to a bare title. */
.tyt-source-mbs87 .tyt-mbs87-related__list > li:not(:has(img))::before {
	aspect-ratio: 16 / 10;
	background: linear-gradient(145deg, #303842, #1e252d);
	content: '';
	display: block;
	width: 100%;
}

.tyt-source-mbs87 .tyt-mbs87-related__link {
	font-family: var(--tyt-font-display);
	font-size: clamp(1.05rem, 1.2vw, 1.2rem);
	font-weight: var(--tyt-weight-semibold);
	line-height: 1.25;
	margin: 0;
	padding: clamp(1rem, 1.4vw, 1.25rem);
}

.tyt-source-mbs87 .tyt-mbs87-related__link a {
	color: inherit;
	text-decoration: none;
}

.tyt-source-mbs87 .tyt-mbs87-related__link a:hover,
.tyt-source-mbs87 .tyt-mbs87-related__link a:focus-visible {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

/* Shared footer keeps the Stitch dark utility rhythm on the imported template. */
.tyt-footer-stitch {
	--tyt-footer-container: min(1240px, calc(100vw - 128px));
	background: #171d2a !important;
}

.tyt-footer-stitch > .wp-block-columns,
.tyt-footer-stitch > .wp-block-group,
.tyt-footer-stitch > .wp-block-separator {
	box-sizing: border-box;
	max-width: var(--tyt-footer-container) !important;
	width: var(--tyt-footer-container) !important;
}

.tyt-footer-stitch > .wp-block-columns {
	gap: clamp(2rem, 8vw, 7rem) !important;
	margin-bottom: clamp(2.75rem, 5vw, 4rem) !important;
}

.tyt-footer-stitch .wp-block-heading {
	font-family: var(--tyt-font-body);
	font-size: 1rem;
	font-weight: var(--tyt-weight-bold);
}

.tyt-footer-stitch .wp-block-paragraph {
	color: rgba(255, 255, 255, 0.72);
	font-size: 0.84rem;
	line-height: 1.5;
}

.tyt-footer-stitch .tyt-footer-brand {
	font-size: clamp(2rem, 4vw, 3.5rem);
	letter-spacing: 0.12em;
}

@media (max-width: 1100px) {
	body:has(.tyt-mbs87-hero-stage) {
		--tyt-mbs87-container: calc(100vw - 80px);
	}

	.tyt-source-mbs87 .tyt-editorial-gallery .tyt-editorial-grid--3,
	.tyt-source-mbs87 .tyt-editorial-destinations .tyt-editorial-grid--4,
	.tyt-source-mbs87 .tyt-editorial-testimonials,
	.tyt-source-mbs87 .tyt-mbs87-related__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.tyt-mbs87-hero-stage .wp-block-cover__inner-container {
		max-width: var(--tyt-mbs87-container);
	}

	.tyt-footer-stitch {
		--tyt-footer-container: calc(100vw - 80px);
	}
}

@media (max-width: 781px) {
	body:has(.tyt-mbs87-hero-stage) .tyt-site-header .tyt-header-utility {
		width: calc(100vw - 32px);
	}

	.tyt-mbs87-hero-stage {
		min-height: clamp(32rem, 160vw, 40rem) !important;
	}

	.tyt-mbs87-hero-stage:has(.wp-block-cover__image-background) {
		min-height: max(clamp(32rem, 160vw, 40rem), calc(100vh - 72px)) !important;
		min-height: max(clamp(32rem, 160vw, 40rem), calc(100svh - 72px)) !important;
	}

	.tyt-mbs87-hero-stage .wp-block-cover__inner-container {
		max-width: var(--tyt-mbs87-container);
		padding-top: 3rem;
	}

	.tyt-mbs87-hero-copy .wp-block-post-title {
		font-size: clamp(2.55rem, 11.5vw, 4rem);
		max-width: 10ch;
	}

	body:has(.tyt-mbs87-hero-stage) {
		--tyt-mbs87-container: calc(100vw - 32px);
	}

	.tyt-source-mbs87 .tyt-editorial-benefits .tyt-editorial-grid--4,
	.tyt-source-mbs87 .tyt-editorial-gallery .tyt-editorial-grid--2,
	.tyt-source-mbs87 .tyt-editorial-gallery .tyt-editorial-grid--3,
	.tyt-source-mbs87 .tyt-editorial-destinations .tyt-editorial-grid--4,
	.tyt-source-mbs87 .tyt-editorial-testimonials,
	.tyt-source-mbs87 .tyt-mbs87-related__list {
		grid-template-columns: minmax(0, 1fr);
	}

	.tyt-source-mbs87 .tyt-editorial-testimonials {
		padding: 2rem 1rem;
	}

	.tyt-source-mbs87 .tyt-editorial-testimonials .tyt-editorial-card {
		min-height: 0;
	}

	.tyt-source-mbs87 .tyt-editorial-intro .wp-block-paragraph {
		text-align: left;
	}

	.tyt-footer-stitch {
		--tyt-footer-container: calc(100% + 4px);
	}

	.tyt-footer-stitch > .wp-block-columns {
		gap: 2rem !important;
	}
}

body,
button,
input,
textarea,
select {
	font-family: var(--tyt-font-body);
}

body {
	font-size: 1rem;
	line-height: 1.6;
}

h1, h2, h3, h4, h5, h6,
.wp-block-heading { font-family: var(--tyt-font-display); font-weight: var(--tyt-weight-medium); }

.tyt-site-header {
	border-bottom: 1px solid transparent;
	position: sticky;
	top: 0;
	transition: box-shadow 180ms ease, border-color 180ms ease;
	z-index: 20;
}

.tyt-site-header.is-scrolled {
	border-color: rgba(23, 23, 23, 0.12);
	box-shadow: 0 8px 24px rgba(23, 23, 23, 0.08);
}

.tyt-site-header .wp-block-site-title {
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 600;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.tyt-site-footer a {
	color: inherit;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
}

.tyt-site-footer .wp-block-navigation-item__content:hover,
.tyt-site-footer a:hover {
	color: var(--wp--preset--color--secondary);
}

.wp-block-query.is-style-tyt-rail {
	position: relative;
}

.wp-block-query.is-style-tyt-rail.alignwide {
	max-width: var(--wp--style--global--wide-size);
}

.tyt-hero .wp-block-cover__inner-container {
	max-width: 1300px;
}

.tyt-hero .wp-block-cover__video-background {
	pointer-events: none;
}

.tyt-trust-band {
	gap: var(--wp--preset--spacing--60);
}

.tyt-trust-band p {
	max-width: 38rem;
}

.tyt-editorial-rail .wp-block-post-template > * {
	background: var(--wp--preset--color--secondary);
	border-radius: 10px;
	padding: var(--wp--preset--spacing--40);
}

.tyt-editorial-rail .wp-block-post-title a {
	text-decoration: none;
}

.tyt-award-band {
	border-bottom: 1px solid rgba(23, 23, 23, 0.12);
}

.tyt-award-band p:last-child {
	margin-inline: auto;
	max-width: 46rem;
}

.wp-block-query.is-style-tyt-rail .wp-block-post-template {
	display: flex;
	flex-wrap: nowrap;
	gap: clamp(14px, 1.4vw, 24px);
	overflow-x: auto;
	padding: 2px;
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}

.wp-block-query.is-style-tyt-rail .wp-block-post-template::-webkit-scrollbar {
	display: none;
}

.wp-block-query.is-style-tyt-rail .wp-block-post-template > * {
	flex: 0 0 100%;
	margin: 0;
	scroll-snap-align: start;
}

.wp-block-query.is-style-tyt-rail .wp-block-post-featured-image,
.wp-block-query.is-style-tyt-rail .wp-block-post-featured-image img {
	aspect-ratio: 16 / 9;
	border-radius: 10px 10px 0 0;
	object-fit: cover;
	width: 100%;
}

.wp-block-query.is-style-tyt-rail .wp-block-post-template > li > .wp-block-group {
	border: 1px solid rgba(23, 23, 23, 0.12);
	border-radius: 10px;
	height: 100%;
	overflow: hidden;
	transition: transform 180ms ease, box-shadow 180ms ease;
}

.wp-block-query.is-style-tyt-rail .wp-block-post-template > li > .wp-block-group:hover {
	box-shadow: 0 12px 30px rgba(23, 23, 23, 0.1);
	transform: translateY(-4px);
}

.wp-block-query.is-style-tyt-rail .wp-block-post-template:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 4px;
}

.tyt-rail__controls {
	display: flex;
	gap: 8px;
	justify-content: flex-end;
	margin-top: var(--wp--preset--spacing--30);
}

.tyt-rail__control {
	align-items: center;
	background: transparent;
	border: 1px solid currentColor;
	border-radius: 5px;
	color: var(--wp--preset--color--contrast);
	cursor: pointer;
	display: inline-flex;
	height: 42px;
	justify-content: center;
	padding: 0;
	width: 42px;
}

.tyt-rail__control:hover:not(:disabled),
.tyt-rail__control:focus-visible {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

.tyt-rail__control:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

.tyt-rail__control:disabled {
	cursor: not-allowed;
	opacity: 0.35;
}

@media (min-width: 768px) {
	.wp-block-query.is-style-tyt-rail .wp-block-post-template > * {
		flex-basis: calc((100% - var(--wp--preset--spacing--40)) / 2);
	}
}

@media (min-width: 1024px) {
	.wp-block-query.is-style-tyt-rail .wp-block-post-template > * {
		flex-basis: calc((100% - (var(--wp--preset--spacing--40) * 2)) / 3);
	}
}

@media (prefers-reduced-motion: reduce) {
	.tyt-site-header {
		transition: none;
	}

	.tyt-home-favourites .wp-block-post-featured-image { transition: none; }

	.wp-block-query.is-style-tyt-rail .wp-block-post-template {
		scroll-behavior: auto;
	}

	.wp-block-query.is-style-tyt-rail .wp-block-post-template > li > .wp-block-group {
		transition: none;
	}

	.wp-block-query.is-style-tyt-rail .wp-block-post-template > li > .wp-block-group:hover {
		transform: none;
	}
}

/* Reference-inspired homepage composition. */
:root {
	--tyt-hairline: rgba(23, 23, 23, 0.16);
	--tyt-wide: min(1366px, calc(100vw - clamp(40px, 8vw, 120px)));
}

html { scroll-behavior: smooth; }
body { overflow-x: hidden; }

.tyt-icon {
	display: block;
	fill: none;
	height: 24px;
	width: 24px;
}

.tyt-site-header {
	padding: 0 !important;
}

.wp-site-blocks > .wp-block-template-part + main {
	margin-block-start: 0 !important;
}

.tyt-header-utility {
	align-items: center;
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	height: 90px;
	margin-inline: auto !important;
	max-width: none;
	padding: 0;
	position: relative;
	width: var(--tyt-wide);
}

.tyt-header-icon-link {
	align-items: center;
	color: var(--wp--preset--color--contrast);
	display: inline-flex;
	justify-content: center;
	min-height: 42px;
	min-width: 42px;
	text-decoration: none;
}

.tyt-header-icon-link:hover,
.tyt-header-icon-link:focus-visible {
	opacity: 0.58;
}

.tyt-header-icon-link:focus-visible {
	outline: 1px solid currentColor;
	outline-offset: 3px;
}

.tyt-header-instagram {
	justify-self: start;
	margin-left: -10px;
}

.tyt-header-brand {
	justify-self: center;
	margin: 0;
}

.tyt-header-brand a {
	align-items: center;
	display: flex;
}

.tyt-header-brand img {
	height: 78px;
	object-fit: contain;
	width: 230px !important;
}

.tyt-header-actions {
	gap: 14px;
	justify-self: end;
}

.tyt-header-language {
	align-items: center;
	display: inline-flex;
	font-size: 0.75rem;
	gap: 6px;
	letter-spacing: 0.06em;
}

.tyt-header-language .tyt-icon--small {
	height: 18px;
	width: 18px;
}

.tyt-header-language .tyt-icon--chevron {
	height: 14px;
	width: 14px;
}

.tyt-header-cta .wp-block-button__link {
	align-items: center;
	display: inline-flex;
	font-size: 0.75rem;
	height: 42px;
	justify-content: center;
	letter-spacing: 0.03em;
	min-width: 132px;
	padding: 0 18px;
	text-transform: none;
}

.tyt-primary-navigation a { text-decoration: none; }
.tyt-primary-navigation {
	border: 0;
	box-sizing: border-box;
	font-family: var(--tyt-font-display);
	font-size: 0.98rem;
	font-weight: var(--tyt-weight-bold);
	height: 45px;
	letter-spacing: 0.01em;
	margin: 0 0 0 calc(50% - 50vw) !important;
	max-width: none !important;
	padding: 0;
	text-transform: uppercase;
	width: 100vw;
}
.tyt-primary-navigation .wp-block-navigation__container {
	gap: clamp(2rem, 4vw, 4.25rem);
	height: 100%;
}

.tyt-primary-navigation--classic {
	align-items: center;
	display: flex;
	justify-content: center;
	position: relative;
}

.tyt-primary-navigation--classic .tyt-primary-menu-wrap,
.tyt-primary-navigation--classic .tyt-primary-menu {
	height: 100%;
}

.tyt-primary-navigation--classic .tyt-primary-menu {
	align-items: center;
	display: flex;
	gap: clamp(0.85rem, 1.75vw, 1.9rem);
	list-style: none;
	margin: 0;
	padding: 0;
}

.tyt-primary-navigation--classic .tyt-primary-menu > li {
	align-items: center;
	display: flex;
	height: 100%;
	position: static;
}

.tyt-primary-navigation--classic .tyt-primary-menu > li > a {
	align-items: center;
	color: inherit;
	display: inline-flex;
	height: 100%;
	position: relative;
}

.tyt-primary-navigation--classic .tyt-primary-menu > li > a:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 4px;
}

.tyt-primary-menu-toggle { display: none; }

.tyt-mega-panel {
	background: var(--wp--preset--color--base);
	border-top: 1px solid rgba(23, 23, 23, 0.12);
	box-shadow: 0 12px 24px rgba(23, 23, 23, 0.08);
	display: none;
	left: 50%;
	position: absolute;
	top: 100%;
	transform: translateX(-50%);
	width: 100vw;
	z-index: 25;
}

.tyt-primary-navigation--classic .tyt-has-mega-menu.is-mega-active .tyt-mega-panel,
.tyt-primary-navigation--classic .tyt-has-mega-menu:hover .tyt-mega-panel {
	display: block;
}

.tyt-mega-panel__inner {
	display: grid;
	column-gap: clamp(48px, 4vw, 72px);
	/* Sixteen country groups wrap onto several rows, so they need a gutter
	   between rows as well or a tall column runs into the heading below it. */
	row-gap: 30px;
	grid-template-columns: repeat(auto-fit, minmax(140px, max-content));
	justify-content: center;
	margin-inline: auto;
	max-width: var(--wp--style--global--wide-size);
	padding: 32px var(--wp--preset--spacing--30) 38px;
	width: calc(100% - 48px);
}

.tyt-mega-panel .tyt-mega-group ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.tyt-mega-panel .tyt-mega-group li + li { margin-top: 9px; }
.tyt-mega-panel .tyt-mega-group a { color: inherit; font-family: var(--tyt-font-body); font-size: 0.88rem; font-weight: var(--tyt-weight-regular); line-height: 1.75; text-decoration: none; }
.tyt-mega-panel .tyt-mega-group li.mega-menu-column-title { margin-bottom: 14px; }
.tyt-mega-panel .tyt-mega-group li.mega-menu-column-title a {
	font-family: var(--tyt-font-display);
	font-size: 1rem;
	font-weight: var(--tyt-weight-bold);
	letter-spacing: 0.05em;
	text-transform: uppercase;
}
.tyt-mega-panel .tyt-mega-group a:hover,
.tyt-mega-panel .tyt-mega-group a:focus-visible { text-decoration: underline; text-underline-offset: 4px; }

/* Nine top-level items no longer fit a single row much under 1200px, so the
   drawer takes over there rather than only on phones. */
@media (max-width: 1199px) {
	.tyt-primary-navigation--classic {
		height: 0;
		justify-content: stretch;
		margin: 0 !important;
		position: static;
	}

	/* The toggle is absolute against the sticky header, so pull it back to the
	   content gutter instead of the raw viewport edge, and reserve room for it
	   beside the CTA that is still visible down to 782px. */
	.tyt-primary-navigation--classic .tyt-primary-menu-toggle {
		align-items: center;
		background: transparent;
		border: 0;
		color: inherit;
		cursor: pointer;
		display: inline-flex;
		height: 42px;
		justify-content: center;
		padding: 0;
		position: absolute;
		right: max(16px, calc((100% - var(--tyt-wide)) / 2));
		top: calc((90px - 42px) / 2);
		width: 42px;
		z-index: 26;
	}

	.tyt-primary-navigation--classic .tyt-primary-menu-toggle:focus-visible {
		outline: 1px solid currentColor;
		outline-offset: 3px;
	}

	.tyt-primary-menu-toggle__bars,
	.tyt-primary-menu-toggle__bars::before,
	.tyt-primary-menu-toggle__bars::after {
		background: currentColor;
		border-radius: 1px;
		content: '';
		display: block;
		height: 2px;
		transition: transform 160ms ease, opacity 160ms ease;
		width: 22px;
	}

	.tyt-primary-menu-toggle__bars::before { transform: translateY(-7px); }
	.tyt-primary-menu-toggle__bars::after { transform: translateY(5px); }

	.is-mobile-open .tyt-primary-menu-toggle__bars { background: transparent; }
	.is-mobile-open .tyt-primary-menu-toggle__bars::before { transform: rotate(45deg); }
	.is-mobile-open .tyt-primary-menu-toggle__bars::after { transform: rotate(-45deg) translateY(-2px); }

	.tyt-header-actions { padding-right: 52px; }

	.tyt-primary-navigation--classic .tyt-primary-menu-wrap {
		background: var(--wp--preset--color--base);
		box-sizing: border-box;
		display: none;
		height: auto;
		left: 0;
		padding: 88px max(24px, calc((100% - var(--tyt-wide)) / 2)) 32px;
		position: absolute;
		top: 0;
		width: 100%;
		z-index: 25;
	}

	.tyt-primary-navigation--classic.is-mobile-open .tyt-primary-menu-wrap { display: block; }
	.tyt-primary-navigation--classic .tyt-primary-menu { align-items: flex-start; display: flex; flex-direction: column; gap: 18px; height: auto; }
	.tyt-primary-navigation--classic .tyt-primary-menu > li { display: block; height: auto; width: 100%; }
	.tyt-primary-navigation--classic .tyt-primary-menu > li > a { height: auto; }
	.tyt-mega-panel { border: 0; box-shadow: none; display: none; left: auto; margin-top: 14px; position: static; transform: none; width: 100%; }
	.tyt-primary-navigation--classic .tyt-has-mega-menu.is-mega-active .tyt-mega-panel { display: block; }
	.tyt-mega-panel__inner { display: flex; flex-direction: column; gap: 22px; padding: 0 0 4px 16px; width: auto; }
}

.tyt-hero { max-height: 760px; min-height: clamp(520px, 68vh, 760px) !important; }
.tyt-hero .wp-block-cover__image-background { filter: saturate(0.82) contrast(0.96); }
.tyt-hero h1 { font-weight: 500; letter-spacing: 0.025em; text-transform: uppercase; }
.tyt-hero .is-style-outline .wp-block-button__link { border-color: #fff; color: #fff; }
.tyt-hero .is-style-outline .wp-block-button__link:hover { background: #fff; color: var(--wp--preset--color--contrast); }

.tyt-award-band { border: 0; }
.tyt-award-band h2 { font-weight: 500; letter-spacing: 0.04em; text-transform: uppercase; }
.tyt-award-band p { color: #cfcfcf; letter-spacing: 0.08em; }
.tyt-benefits .wp-block-columns { margin-bottom: 0; }
.tyt-benefits .wp-block-column { padding-inline: var(--wp--preset--spacing--30); }
.tyt-benefit-icon { align-items: center; display: flex; justify-content: center; margin-bottom: var(--wp--preset--spacing--30); }
.tyt-benefit-icon .tyt-icon { height: 48px; width: 48px; }
.tyt-benefits h3 { font-weight: 500; letter-spacing: 0.03em; text-transform: uppercase; }

.tyt-kicker { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; }
.tyt-display-heading { font-size: clamp(2rem, 4.5vw, 4rem); font-weight: 500; letter-spacing: 0.015em; line-height: 1.05; }
.tyt-section-rule { align-items: center; gap: var(--wp--preset--spacing--30); width: var(--tyt-wide); }
.tyt-section-rule::before,
.tyt-section-rule::after { background: var(--tyt-hairline); content: ""; flex: 1 1 80px; height: 1px; }
.tyt-section-rule h2 { flex: 0 0 auto; font-weight: 500; letter-spacing: 0.03em; text-transform: uppercase; }

.tyt-home-favourites > .wp-block-query.alignwide { max-width: none; width: var(--tyt-wide); }
.tyt-home-favourites .tyt-tour-card { border: 0 !important; box-shadow: none !important; }
.tyt-home-favourites .tyt-tour-card .wp-block-group { align-items: center; text-align: center; }
.tyt-home-favourites .tyt-tour-card > .wp-block-group { align-self: center; box-sizing: border-box; width: 100%; }
/* Tour artwork is portrait (~3:4) and often carries type baked into the plate,
   so the frame letterboxes rather than crops. */
.tyt-home-favourites .tyt-tour-card .wp-block-post-featured-image,
.tyt-home-favourites .tyt-tour-card .wp-block-post-featured-image img { aspect-ratio: 4 / 3; border-radius: 0; object-fit: contain; }
.tyt-home-favourites .tyt-tour-card .wp-block-post-title {
	font-size: var(--tyt-card-title-size);
	font-weight: var(--tyt-weight-semibold);
}

.tyt-home-editorial { background: var(--wp--preset--color--base); }
.tyt-home-editorial .wp-block-columns,
.tyt-home-collection .wp-block-columns { width: var(--tyt-wide); }
.tyt-editorial-image,
.tyt-editorial-image img { aspect-ratio: 16 / 10; height: 100%; object-fit: cover; width: 100%; }

.tyt-home-collection { background: var(--wp--preset--color--secondary); }
.tyt-home-collection .tyt-tour-card { border: 1px solid var(--tyt-hairline); border-radius: 0; }
.tyt-home-collection .wp-block-query.is-style-tyt-rail .wp-block-post-template > * { flex-basis: min(72%, 360px); }
.tyt-home-collection .wp-block-post-featured-image,
.tyt-home-collection .wp-block-post-featured-image img { border-radius: 0; }

.tyt-home-magazine .tyt-section-rule,
.tyt-home-magazine .tyt-magazine-grid,
.tyt-home-press .tyt-section-rule,
.tyt-home-press .tyt-press-logos { max-width: none; width: var(--tyt-wide); }
:is(.tyt-magazine-grid, .tyt-journal-grid) .wp-block-post-template {
	display: grid;
	gap: 30px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
/* Article tiles read as cards: a landscape image over a light body carrying the
   headline, its terms and a short excerpt. */
:is(.tyt-magazine-grid, .tyt-journal-grid) .wp-block-post {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--tyt-hairline);
	display: flex;
	flex-direction: column;
	overflow: hidden;
	position: relative;
}
/* The image frame matches the 3:2 of the imported blog artwork. That artwork
   also carries an MBS87.COM watermark burned into the bottom ~13% of every
   file, so the picture is oversized and pinned to the top -- the frame clips
   the watermark band away. */
:is(.tyt-magazine-grid, .tyt-journal-grid) .wp-block-post-featured-image {
	aspect-ratio: 3 / 2;
	flex: 0 0 auto;
	margin: 0;
	overflow: hidden;
	position: relative;
	width: 100%;
}
:is(.tyt-magazine-grid, .tyt-journal-grid) .wp-block-post-featured-image a,
:is(.tyt-magazine-grid, .tyt-journal-grid) .wp-block-post-featured-image img {
	border-radius: 0;
	display: block;
	height: 116%;
	inset: 0;
	margin: 0;
	object-fit: cover;
	object-position: center top;
	position: absolute;
	width: 100%;
}
:is(.tyt-magazine-grid, .tyt-journal-grid) .tyt-card-body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: 0.6rem;
	padding: clamp(1rem, 1.6vw, 1.4rem);
}
:is(.tyt-magazine-grid, .tyt-journal-grid) .wp-block-post-title {
	font-size: var(--tyt-card-title-size);
	line-height: 1.25;
	margin: 0;
}
:is(.tyt-magazine-grid, .tyt-journal-grid) .wp-block-post-title a { color: var(--wp--preset--color--contrast); text-decoration: none; }
:is(.tyt-magazine-grid, .tyt-journal-grid) .wp-block-post-title a:hover { text-decoration: underline; text-underline-offset: 0.2em; }
:is(.tyt-magazine-grid, .tyt-journal-grid) .wp-block-post-excerpt {
	color: var(--tyt-blog-ink-muted, #45464c);
	font-size: 0.9rem;
	line-height: 1.6;
	margin: 0;
}
:is(.tyt-magazine-grid, .tyt-journal-grid) .wp-block-post-excerpt__excerpt { margin: 0; }
:is(.tyt-magazine-grid, .tyt-journal-grid) .wp-block-post-excerpt__more-link {
	color: var(--wp--preset--color--contrast);
	display: inline-block;
	font-size: 0.75rem;
	letter-spacing: 0.14em;
	margin-top: 0.6rem;
	text-transform: uppercase;
}

.tyt-press-logos { align-items: center; margin-top: var(--wp--preset--spacing--40); }
.tyt-press-logos p { font-size: clamp(1rem, 2.2vw, 1.65rem); font-weight: 700; letter-spacing: 0.04em; }
.tyt-home-mission { border-radius: 10px; }
.tyt-home-mission .tyt-kicker { color: #cfcfcf; }

.tyt-newsletter-form { display: flex; margin: var(--wp--preset--spacing--30) auto 0; max-width: 560px; }
.tyt-newsletter-form input { background: #fff; border: 1px solid var(--wp--preset--color--contrast); border-radius: 5px 0 0 5px; box-sizing: border-box; font: inherit; min-width: 0; padding: 0.95rem 1rem; width: 100%; }
.tyt-newsletter-form button { background: var(--wp--preset--color--contrast); border: 1px solid var(--wp--preset--color--contrast); border-radius: 0 5px 5px 0; color: #fff; cursor: pointer; font: inherit; font-size: 0.8rem; font-weight: 600; padding: 0.95rem 1.4rem; text-transform: uppercase; white-space: nowrap; }
.tyt-home-newsletter .fluentform { margin: var(--wp--preset--spacing--30) auto 0; max-width: 560px; }
.tyt-home-newsletter .ff-t-container { display: flex; gap: 0; }
.tyt-home-newsletter .ff-t-column-1 { flex-basis: 75% !important; }
.tyt-home-newsletter .ff-t-column-2 { flex-basis: 25% !important; }
.tyt-home-newsletter .ff-t-cell { padding: 0 !important; }
.tyt-home-newsletter .ff-el-group { margin-bottom: 0; }
.tyt-home-newsletter .ff-el-form-control { border: 1px solid var(--wp--preset--color--contrast); border-radius: 5px 0 0 5px; font-family: inherit; min-height: 56px; }
form.fluent_form_2 .wpf_has_custom_css.ff-btn-submit { background: var(--wp--preset--color--contrast) !important; border: 1px solid var(--wp--preset--color--contrast) !important; border-radius: 0 5px 5px 0; color: #fff !important; font-family: inherit; font-size: 0.8rem; min-height: 56px; text-transform: uppercase; }
form.fluent_form_2 .wpf_has_custom_css.ff-btn-submit:hover { background: #fff !important; color: var(--wp--preset--color--contrast) !important; }
.tyt-site-footer .tyt-newsletter-form { margin-left: 0; }
.tyt-site-footer .tyt-newsletter-form input { background: #353535; border-color: #555; color: #fff; }
.tyt-site-footer .tyt-newsletter-form button { background: #fff; border-color: #fff; color: var(--wp--preset--color--contrast); }
.tyt-footer-brand { font-size: clamp(1.8rem, 4vw, 3.4rem); font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; }

/* Full-page reference composition. */
.tyt-hero {
	min-height: clamp(680px, 78vh, 780px) !important;
	padding-bottom: 64px !important;
	padding-top: 64px !important;
}

.tyt-hero .wp-block-cover__background {
	background-color: rgba(0, 0, 0, 0.42) !important;
	opacity: 1 !important;
}

.tyt-hero .wp-block-cover__inner-container > p:first-of-type {
	color: #fff !important;
	font-family: var(--tyt-font-body);
	font-size: 0.8rem;
	font-weight: var(--tyt-weight-semibold);
	letter-spacing: 0.2em;
	line-height: 1.4;
	text-transform: uppercase;
}

.tyt-hero h1 {
	font-size: clamp(3.2rem, 3.85vw, 4.25rem);
	font-weight: var(--tyt-weight-semibold);
	letter-spacing: 0.025em;
	white-space: nowrap;
}

.tyt-hero h1,
.tyt-award-band h2,
.tyt-benefits h3,
.tyt-reference-heading,
.tyt-home-favourites .tyt-section-rule h2,
.tyt-home-press .tyt-section-rule h2 {
	font-family: var(--tyt-font-display);
}

.tyt-hero .wp-block-cover__inner-container > p:not(:first-of-type),
.tyt-home-editorial .tyt-editorial-lead > .wp-block-column:first-child > p:not(.tyt-kicker),
.tyt-home-collection > .wp-block-columns > .wp-block-column:first-child > p,
.tyt-home-magazine-intro > p {
	font-family: var(--tyt-font-body);
	font-weight: var(--tyt-weight-medium);
}

.tyt-hero .wp-block-cover__inner-container > p:not(:first-of-type) {
	font-size: 1.1em;
}

.tyt-home-favourites .tyt-section-rule h2,
.tyt-home-editorial .tyt-reference-heading,
.tyt-home-collection .tyt-collection-heading,
.tyt-home-magazine .tyt-magazine-title-row h2 {
	font-weight: var(--tyt-weight-semibold);
}

.tyt-award-band {
	align-items: center;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 235px;
	text-align: center;
}

.tyt-benefits {
	align-items: center;
	display: flex;
	min-height: 400px;
}

.tyt-benefits > .wp-block-columns {
	max-width: 1160px;
	width: 100%;
}

@media (min-width: 1024px) {
	.tyt-home-favourites,
	.tyt-favourites-style-rail { overflow: hidden; }
	.tyt-home-favourites {
		margin-left: calc(50% - 50vw) !important;
		max-width: none !important;
		width: 100vw !important;
	}
	.tyt-home-favourites > .wp-block-query.alignwide {
		margin-left: calc(50% - 50vw) !important;
		max-width: none;
		width: 100vw;
	}
	.tyt-home-favourites .wp-block-post-template {
		gap: clamp(14px, 1.05vw, 22px) !important;
		padding-inline: max(9vw, calc(50vw - min(56vw, 1218px) / 2)) !important;
		scroll-padding-inline: max(9vw, calc(50vw - min(56vw, 1218px) / 2));
	}
	.tyt-home-favourites .wp-block-post-template > * {
		flex-basis: min(56vw, 1218px) !important;
		scroll-snap-align: center !important;
	}
	.tyt-home-favourites .wp-block-post-template > * {
		position: relative;
		z-index: 0;
	}
	.tyt-home-favourites .wp-block-post-featured-image {
		align-items: center;
		display: flex;
		height: clamp(330px, min(31.5vw, calc(100vh - 260px)), 560px);
		justify-content: center;
		margin-inline: auto;
		max-width: 1120px;
		overflow: hidden;
		position: relative;
		transform: scale(0.86);
		transform-origin: center center;
		transition: transform 360ms ease-out;
		width: 100%;
		z-index: 0;
	}
	.tyt-home-favourites .wp-block-post-featured-image > a {
		display: block;
		height: 100%;
		width: 100%;
	}
	.tyt-home-favourites .wp-block-post-featured-image img {
		aspect-ratio: auto !important;
		height: 100% !important;
		/* Tour artwork is portrait with text baked into it, so the frame shows
		   the whole image rather than cropping a band out of the middle. */
		object-fit: contain;
		width: 100%;
	}
	.tyt-home-favourites .wp-block-post-template > *.is-focused .wp-block-post-featured-image {
		transform: scale(1);
		z-index: 1;
	}
	.tyt-home-favourites .wp-block-post-template > *.is-before-focused .wp-block-post-featured-image {
		transform: translateX(8.65%) scale(0.86);
		transform-origin: right center;
	}
	.tyt-home-favourites .wp-block-post-template > *.is-after-focused .wp-block-post-featured-image {
		transform: translateX(-8.65%) scale(0.86);
		transform-origin: left center;
	}
	.tyt-favourites-style-rail .tyt-static-rail__track {
		gap: 1.15vw !important;
		padding-inline: 4vw !important;
		scroll-padding-inline: 4vw;
	}
	.tyt-favourites-style-rail .tyt-static-rail__track > * {
		flex-basis: min(29vw, 520px) !important;
	}
	.tyt-home-favourites .wp-block-post-featured-image,
	.tyt-home-favourites .wp-block-post-featured-image img {
		aspect-ratio: 16 / 9 !important;
	}
	.tyt-home-favourites .tyt-rail__controls,
	.tyt-favourites-style-rail .tyt-rail__controls {
		justify-content: space-between;
		margin: 0;
		pointer-events: none;
		position: absolute;
		z-index: 2;
	}
	.tyt-home-favourites .tyt-rail__controls {
		transform: translateY(-50%);
	}
	.tyt-home-favourites .tyt-rail__control,
	.tyt-favourites-style-rail .tyt-rail__control {
		background: rgba(255, 255, 255, 0.88);
		border-color: rgba(23, 23, 23, 0.35);
		border-radius: 50%;
		height: 50px;
		pointer-events: auto;
		width: 50px;
	}
	.tyt-home-favourites > .wp-block-query::after {
		display: none;
	}
	.tyt-home-favourites .tyt-rail__pagination {
		display: flex;
		gap: 4px;
		justify-content: center;
		margin: 18px auto 0;
		position: relative;
		width: fit-content;
		z-index: 3;
	}
	.tyt-home-favourites .tyt-rail__pagination button {
		appearance: none;
		background: transparent;
		border: 0;
		cursor: pointer;
		height: 28px;
		padding: 0 3px;
		position: relative;
		width: 20px;
	}
	.tyt-home-favourites .tyt-rail__pagination button::after {
		background: var(--tyt-hairline);
		content: "";
		height: 1px;
		inset: 50% 3px auto;
		position: absolute;
	}
	.tyt-home-favourites .tyt-rail__pagination button.is-active::after {
		background: var(--wp--preset--color--contrast);
		height: 2px;
	}
	.tyt-home-favourites .tyt-rail__pagination button:focus-visible {
		outline: 1px solid currentColor;
		outline-offset: 2px;
	}
}

@media (min-width: 782px) {
	.tyt-home-favourites {
		padding-bottom: 64px !important;
		padding-top: 64px !important;
	}
	.tyt-home-editorial {
		padding-bottom: 64px !important;
		padding-top: 64px !important;
	}
	.tyt-editorial-lead { min-height: 400px; }
	.tyt-static-rail { margin-top: 40px !important; }
	.tyt-home-magazine {
		padding-bottom: 64px !important;
		padding-top: 64px !important;
	}
	.tyt-home-mission-wrap {
		padding-bottom: 64px !important;
		padding-top: 64px !important;
	}
	.tyt-video-feature-wrap,
	.tyt-home-collection,
	.tyt-home-press {
		padding-block: 56px !important;
	}
	.tyt-video-feature {
		min-height: 500px !important;
	}
}

.tyt-reference-heading {
	font-size: clamp(3.3rem, 4.7vw, 5.2rem);
	font-weight: 500;
	letter-spacing: 0;
	line-height: 0.98;
}

.tyt-collection-heading {
	font-family: var(--tyt-font-display);
	font-size: clamp(2.35rem, 3.2vw, 3.55rem);
	font-weight: 500;
	letter-spacing: 0.01em;
	line-height: 1.05;
}

.tyt-editorial-lead {
	min-height: 500px;
}

.tyt-editorial-caption {
	font-family: var(--tyt-font-display);
	font-size: 1.24rem;
	text-align: center;
}

.tyt-static-rail {
	margin-left: calc(50% - 50vw) !important;
	margin-top: clamp(80px, 9vw, 150px) !important;
	max-width: none !important;
	width: 100vw;
}

.tyt-static-rail__track {
	display: flex !important;
	flex-wrap: nowrap !important;
	gap: clamp(12px, 1.3vw, 22px);
	overflow-x: auto;
	padding: 2px 7vw 10px;
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}

.tyt-static-rail__track::-webkit-scrollbar { display: none; }

.tyt-static-rail__track > * {
	flex: 0 0 min(34vw, 490px);
	margin: 0 !important;
	scroll-snap-align: center;
}

.tyt-story-card figure,
.tyt-story-card img {
	aspect-ratio: 16 / 9;
	height: auto;
	margin: 0;
	object-fit: cover;
	width: 100%;
}

.tyt-story-card h3 {
	font-family: var(--tyt-font-display);
	font-size: clamp(1.3rem, 1.78vw, 1.72rem);
	font-weight: var(--tyt-weight-semibold);
	margin-top: var(--wp--preset--spacing--20);
	text-align: center;
}

.tyt-static-rail > .tyt-rail__controls {
	margin-inline: auto;
	width: var(--tyt-wide);
}

/* Travelled for you is a single editorial module: tighter lead, related rail. */
.tyt-home-editorial {
	padding-bottom: 48px !important;
	padding-top: 56px !important;
}

.tyt-home-editorial .tyt-editorial-lead {
	column-gap: clamp(48px, 5vw, 72px) !important;
	min-height: 420px;
}

.tyt-home-editorial .tyt-editorial-lead > .wp-block-column:first-child {
	display: flex;
	flex-direction: column;
	gap: clamp(16px, 1.5vw, 22px);
}

.tyt-home-editorial .tyt-kicker,
.tyt-home-editorial .tyt-reference-heading,
.tyt-home-editorial .tyt-editorial-lead > .wp-block-column:first-child > p,
.tyt-home-editorial .wp-block-buttons,
.tyt-home-editorial .tyt-editorial-image,
.tyt-home-editorial .tyt-editorial-caption {
	margin: 0;
}

.tyt-home-editorial .tyt-reference-heading {
	font-size: clamp(3.2rem, 4vw, 4.42rem);
}

.tyt-home-editorial .tyt-editorial-lead > .wp-block-column:first-child > p:not(.tyt-kicker) {
	line-height: 1.6;
	max-width: 31rem;
}

.tyt-home-editorial .tyt-editorial-image,
.tyt-home-editorial .tyt-editorial-image img {
	aspect-ratio: 16 / 9;
}

.tyt-home-editorial .tyt-editorial-caption {
	font-size: 1.18rem;
	margin-top: 12px;
}

.tyt-home-editorial .tyt-editorial-gallery {
	margin-top: 32px !important;
}

.tyt-home-editorial .tyt-static-rail__track {
	gap: clamp(10px, 1vw, 16px) !important;
	padding: 2px 4vw 8px !important;
	padding-right: 4vw !important;
}

.tyt-home-editorial .tyt-static-rail__track > * {
	flex-basis: min(36vw, 640px) !important;
}

.tyt-home-editorial .tyt-story-card h3 {
	font-size: clamp(1.24rem, 1.54vw, 1.48rem);
	margin-top: 12px;
}

.tyt-editorial-gallery > .tyt-rail__controls {
	justify-content: space-between;
	margin: 0 !important;
	pointer-events: none;
	position: absolute !important;
	z-index: 2;
}

.tyt-editorial-gallery > .tyt-rail__controls .tyt-rail__control {
	background: rgba(255, 255, 255, 0.78);
	border: 1px solid rgba(23, 23, 23, 0.38);
	border-radius: 50%;
	box-shadow: 0 4px 14px rgba(23, 23, 23, 0.1);
	height: 50px;
	pointer-events: auto;
	transition: background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease, color 180ms ease, transform 180ms ease;
	width: 50px;
}

.tyt-editorial-gallery > .tyt-rail__controls .tyt-rail__control:hover:not(:disabled),
.tyt-editorial-gallery > .tyt-rail__controls .tyt-rail__control:focus-visible {
	background: rgba(23, 23, 23, 0.92);
	border-color: rgba(23, 23, 23, 0.92);
	box-shadow: 0 6px 18px rgba(23, 23, 23, 0.2);
	color: var(--wp--preset--color--base);
	transform: scale(1.04);
}

.tyt-editorial-gallery .tyt-rail__pagination {
	display: flex;
	gap: 4px;
	justify-content: center;
	margin: 8px auto 0;
	position: relative;
	width: fit-content;
	z-index: 3;
}

.tyt-editorial-gallery .tyt-rail__pagination button {
	appearance: none;
	background: transparent;
	border: 0;
	cursor: pointer;
	height: 28px;
	padding: 0 3px;
	position: relative;
	width: 20px;
}

.tyt-editorial-gallery .tyt-rail__pagination button::after {
	background: var(--tyt-hairline);
	content: "";
	height: 1px;
	inset: 50% 3px auto;
	position: absolute;
}

.tyt-editorial-gallery .tyt-rail__pagination button.is-active::after {
	background: var(--wp--preset--color--contrast);
	height: 2px;
}

.tyt-editorial-gallery .tyt-rail__pagination button:focus-visible {
	outline: 1px solid currentColor;
	outline-offset: 2px;
}

/* The editorial stories inherit the centred, edge-to-edge language of favourites. */
.tyt-favourites-style-rail,
.tyt-home-favourites,
.tyt-rail-fade {
	overflow: hidden;
	position: relative;
}

.tyt-favourites-style-rail::before,
.tyt-favourites-style-rail::after,
.tyt-home-favourites::before,
.tyt-home-favourites::after,
.tyt-rail-fade::before,
.tyt-rail-fade::after {
	content: "";
	inset-block: 0;
	pointer-events: none;
	position: absolute;
	width: clamp(28px, 8vw, 180px);
	z-index: 1;
}

.tyt-favourites-style-rail::before,
.tyt-home-favourites::before,
.tyt-rail-fade::before {
	background: linear-gradient(90deg, var(--wp--preset--color--base) 0%, rgba(255, 255, 255, 0) 100%);
	left: 0;
}

.tyt-favourites-style-rail::after,
.tyt-home-favourites::after,
.tyt-rail-fade::after {
	background: linear-gradient(270deg, var(--wp--preset--color--base) 0%, rgba(255, 255, 255, 0) 100%);
	right: 0;
}

.tyt-favourites-style-rail .tyt-rail__controls {
	position: relative;
	z-index: 2;
}

.tyt-home-favourites .tyt-rail__controls {
	position: absolute;
	z-index: 3;
}

.tyt-home-favourites .wp-block-post-template,
.tyt-favourites-style-rail .tyt-static-rail__track,
.tyt-theme-rail .wp-block-post-template {
	-webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 11%, #000 89%, transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0%, #000 11%, #000 89%, transparent 100%);
}

/* .tyt-video-feature-wrap { border-bottom: 1px solid var(--tyt-hairline); } */

.tyt-video-feature {
	max-width: none !important;
	width: var(--tyt-wide);
}

.tyt-video-feature .wp-block-cover__inner-container {
	align-items: center;
	display: flex;
	height: 100%;
	inset: 0;
	justify-content: center;
	position: absolute;
	width: 100%;
	z-index: 2;
}

.tyt-video-feature__link {
	align-items: center;
	background: transparent;
	border: 0;
	color: #fff;
	cursor: pointer;
	display: flex;
	flex-direction: column;
	font-size: 0.92rem;
	font-weight: 600;
	font-family: inherit;
	gap: 16px;
	letter-spacing: 0.12em;
	margin-inline: auto;
	padding: 0;
	text-decoration: none;
	text-transform: uppercase;
	width: fit-content;
}

.tyt-video-feature__link .tyt-icon {
	height: 132px;
	transition: transform 180ms ease;
	width: 132px;
}

.tyt-video-feature__link:hover .tyt-icon,
.tyt-video-feature__link:focus-visible .tyt-icon { transform: scale(1.05); }
.tyt-video-feature__link:focus-visible { outline: 2px solid #fff; outline-offset: 8px; }

.tyt-video-feature.is-playing .wp-block-cover__background,
.tyt-video-feature.is-playing .wp-block-cover__image-background { visibility: hidden; }

.tyt-video-feature__player {
	height: 100%;
	inset: 0;
	object-fit: contain;
	position: absolute;
	width: 100%;
	z-index: 2;
}

.tyt-video-feature__player[src*="youtube-nocookie.com"],
.tyt-video-feature__player[src*="player.vimeo.com"] { border: 0; }

.tyt-video-feature__status {
	background: rgba(20, 20, 20, 0.72);
	color: #fff;
	font-size: 0.8rem;
	left: 50%;
	padding: 10px 14px;
	position: absolute;
	text-align: center;
	top: 50%;
	transform: translate(-50%, -50%);
	z-index: 2;
}

.tyt-home-collection {
	background: var(--wp--preset--color--base);
	position: relative;
}

.tyt-home-collection::before {
	background: var(--wp--preset--color--secondary);
	content: "";
	inset: 8% 18% 8% 25%;
	pointer-events: none;
	position: absolute;
}

.tyt-home-collection::before { display: none; }

.tyt-home-collection > .wp-block-columns { position: relative; z-index: 1; }

.tyt-theme-grid .wp-block-post-template {
	display: grid;
	gap: var(--wp--preset--spacing--30);
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.tyt-theme-rail {
	/* The card width the controls are positioned off; the tour frame is 4:5, so
	   half its height -- where the buttons sit -- is five eighths of this. */
	--tyt-rail-card: clamp(260px, 21vw, 300px);
	position: relative;
}

.tyt-theme-rail-stack {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.tyt-theme-rail .wp-block-post-template {
	display: grid !important;
	column-gap: 18px !important;
	grid-auto-columns: var(--tyt-rail-card);
	grid-auto-flow: column;
	grid-template-columns: none !important;
	grid-template-rows: minmax(0, auto);
	overflow-x: auto;
	padding: 2px 2px 4px;
	scroll-snap-type: x mandatory;
}

.tyt-theme-rail .wp-block-post-template > * {
	grid-column: auto !important;
	grid-row: auto !important;
	margin: 0 !important;
	scroll-snap-align: start;
}

.tyt-theme-rail .tyt-rail__controls {
	inset-inline: 12px;
	justify-content: space-between;
	margin: 0;
	/* The bar spans the rail so the two buttons land on its edges; only the
	   buttons themselves catch the pointer, the span between them does not. */
	pointer-events: none;
	position: absolute;
	/* Centred on the artwork rather than the whole card, so the buttons never
	   land over the title and price. */
	top: calc(2px + var(--tyt-rail-card) * 0.625);
	transform: translateY(-50%);
	z-index: 3;
}

.tyt-theme-rail .tyt-rail__control {
	pointer-events: auto;
}

.tyt-home-collection .tyt-theme-rail .tyt-rail__control {
	background: rgba(255, 255, 255, 0.9);
	border: 1px solid rgba(23, 23, 23, 0.22);
	border-radius: 50%;
	box-shadow: 0 3px 10px rgba(23, 23, 23, 0.08);
	transition: background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease, color 180ms ease, transform 180ms ease;
}

.tyt-home-collection .tyt-theme-rail .tyt-rail__control:hover:not(:disabled),
.tyt-home-collection .tyt-theme-rail .tyt-rail__control:focus-visible {
	background: var(--wp--preset--color--contrast);
	border-color: var(--wp--preset--color--contrast);
	box-shadow: 0 5px 14px rgba(23, 23, 23, 0.16);
	color: var(--wp--preset--color--base);
	transform: scale(1.04);
}

.tyt-theme-rail .wp-block-post-template {
	-webkit-mask-image: linear-gradient(90deg, #000 0%, #000 88%, transparent 100%);
	mask-image: linear-gradient(90deg, #000 0%, #000 88%, transparent 100%);
}

.tyt-theme-grid .tyt-tour-card {
	border: 1px solid var(--tyt-hairline);
	border-radius: 0;
	height: 100%;
	overflow: hidden;
	padding-inline: 0 !important;
	padding-top: 0 !important;
}

.tyt-theme-grid .tyt-tour-card,
.tyt-theme-grid .tyt-tour-card > .wp-block-group,
.tyt-theme-grid .tyt-tour-card .wp-block-post-featured-image,
.tyt-theme-grid .tyt-tour-card .wp-block-post-featured-image img {
	border-radius: 0 !important;
}

.tyt-theme-grid .tyt-tour-card > .wp-block-group {
	box-sizing: border-box;
	padding-inline: 18px !important;
	width: 100%;
}

.tyt-theme-grid {
	--tyt-grid-card-title-size: var(--tyt-card-title-size);
}

.tyt-theme-grid .wp-block-post-title {
	font-size: var(--tyt-grid-card-title-size) !important;
	font-weight: var(--tyt-weight-semibold);
	hyphens: none;
	overflow-wrap: normal;
	word-break: normal;
}

.tyt-theme-grid .wp-block-post-featured-image,
.tyt-theme-grid .wp-block-post-featured-image img {
	aspect-ratio: 4 / 3;
	height: auto;
	object-fit: cover;
	width: 100%;
}

.tyt-home-magazine-intro,
.tyt-magazine-title-row {
	max-width: none;
	width: var(--tyt-wide);
}

.tyt-home-magazine-intro {
	margin-inline: auto !important;
}

.tyt-magazine-title-row { align-items: center; gap: 40px; }
.tyt-magazine-title-row::after {
	background: rgba(23, 23, 23, 0.62);
	content: "";
	flex: 1 1 auto;
	height: 2px;
}
.tyt-home-magazine-intro > p { max-width: 980px; }
:is(.tyt-magazine-grid, .tyt-journal-grid) .wp-block-post-title { font-family: var(--tyt-font-display); font-weight: var(--tyt-weight-semibold); }

.tyt-home-mission-wrap { padding-top: var(--wp--preset--spacing--60) !important; }
.tyt-home-mission { min-height: 260px; }

.tyt-site-footer > .wp-block-columns,
.tyt-site-footer > .wp-block-group,
.tyt-site-footer > .wp-block-separator {
	margin-inline: auto !important;
	max-width: none;
	width: var(--tyt-wide);
}

.tyt-footer-newsletter-pattern .fluentform { margin-top: var(--wp--preset--spacing--30); max-width: 560px; }
.tyt-footer-newsletter-pattern .ff-t-container { display: flex; gap: 0; }
.tyt-footer-newsletter-pattern .ff-t-column-1 { flex-basis: 75% !important; }
.tyt-footer-newsletter-pattern .ff-t-column-2 { flex-basis: 25% !important; }
.tyt-footer-newsletter-pattern .ff-t-cell { padding: 0 !important; }
.tyt-footer-newsletter-pattern .ff-el-group { margin-bottom: 0; }
.tyt-footer-newsletter-pattern .ff-el-form-control { background: #353535; border: 1px solid #555; border-radius: 5px 0 0 5px; color: #fff; font-family: inherit; min-height: 56px; }
.tyt-footer-newsletter-pattern form.fluent_form_2 .ff-btn-submit { background: #fff !important; border: 1px solid #fff !important; border-radius: 0 5px 5px 0; color: var(--wp--preset--color--contrast) !important; min-height: 56px; width: 100%; }

.tyt-home-favourites > .wp-block-query.alignwide,
.tyt-home-favourites .tyt-section-rule,
.tyt-home-editorial .wp-block-columns,
.tyt-home-collection .wp-block-columns,
.tyt-home-magazine .tyt-home-magazine-intro,
.tyt-home-magazine .tyt-section-rule,
.tyt-home-magazine .tyt-magazine-grid,
.tyt-home-press .tyt-section-rule,
.tyt-home-press .tyt-press-logos {
	margin-left: calc((100% - var(--tyt-wide)) / 2) !important;
	margin-right: calc((100% - var(--tyt-wide)) / 2) !important;
	transform: none;
}

@media (min-width: 1024px) {
	.tyt-home-favourites > .wp-block-query.alignwide {
		margin-left: calc(50% - 50vw) !important;
	}
}

@media (min-width: 1101px) {
	.tyt-home-collection > .wp-block-columns {
		max-width: none;
		width: calc(var(--tyt-wide) + (100vw - var(--tyt-wide)) / 2) !important;
	}

	.tyt-home-collection > .wp-block-columns > .wp-block-column:first-child {
		flex-basis: 20% !important;
	}

	.tyt-home-collection > .wp-block-columns > .wp-block-column:last-child {
		flex-basis: calc(80% + (100vw - var(--tyt-wide)) / 2) !important;
		max-width: none;
		width: calc(80% + (100vw - var(--tyt-wide)) / 2) !important;
	}

	/* The rail column runs past the site's wide measure to the viewport edge;
	   the next button stays inside that measure. */
	.tyt-home-collection .tyt-theme-rail .tyt-rail__controls {
		inset-inline: 12px calc((100vw - var(--tyt-wide)) / 2 + 12px);
	}

	.tyt-theme-rail::after {
		content: "";
		inset-block: 0;
		pointer-events: none;
		position: absolute;
		width: clamp(24px, 4vw, 84px);
		z-index: 1;
	}

	.tyt-theme-rail::after {
		background: linear-gradient(270deg, var(--wp--preset--color--base), rgba(255, 255, 255, 0));
		right: 0;
	}

	.tyt-theme-rail .tyt-rail__controls {
		z-index: 3;
	}
}

@media (min-width: 782px) and (max-width: 1100px) {
	.tyt-home-collection > .wp-block-columns {
		flex-wrap: wrap !important;
	}

	.tyt-home-collection > .wp-block-columns > .wp-block-column {
		flex-basis: 100% !important;
	}

	.tyt-theme-grid .wp-block-post-template {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 782px) {
	.tyt-theme-rail .wp-block-post-template {
		grid-auto-columns: var(--tyt-rail-card) !important;
	}
}

@media (max-width: 781px) {
	.tyt-header-utility { grid-template-columns: 1fr auto 1fr; height: 72px; width: calc(100vw - 32px); }
	.tyt-header-brand { grid-column: 2; }
	.tyt-header-brand img { height: 58px; width: 164px !important; }
	.tyt-header-instagram,
	.tyt-header-language,
	.tyt-header-cta { display: none !important; }
	.tyt-header-actions { left: 0; padding-right: 0; position: absolute; top: 15px; }
	.tyt-primary-navigation--classic .tyt-primary-menu-toggle { top: 15px; }
	.tyt-primary-navigation { border: 0; height: 0; margin: 0 !important; padding: 0; position: static; width: 100%; }
	.tyt-primary-navigation .wp-block-navigation__responsive-container-open { height: 42px; margin: 0; padding: 9px; position: absolute; right: 16px; top: 15px; width: 42px; }
	.tyt-primary-navigation .wp-block-navigation__responsive-container-close { height: 42px; padding: 9px; right: 16px; top: 15px; width: 42px; }
	.tyt-primary-navigation .wp-block-navigation__responsive-container.is-menu-open { padding: 88px 24px 32px; }
	.tyt-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: flex-start; font-size: 1.3rem; gap: 1.5rem; }
	.tyt-hero { min-height: 620px !important; }
	.tyt-hero h1 { font-size: clamp(2.75rem, 12.5vw, 3.7rem); white-space: normal; }
	.tyt-award-band { min-height: 210px; }
	.tyt-benefits { min-height: 0; }
	.tyt-reference-heading { font-size: clamp(3.2rem, 14vw, 4.95rem); }
	.tyt-editorial-lead { min-height: 0; }
	.tyt-static-rail__track { padding-inline: 20px; }
	.tyt-static-rail__track > * { flex-basis: 84vw; }
	.tyt-static-rail > .tyt-rail__controls { width: calc(100vw - 40px); }
	.tyt-video-feature { min-height: 420px !important; width: calc(100vw - 40px); }
	.tyt-video-feature__link .tyt-icon { height: 92px; width: 92px; }
	.tyt-benefits .wp-block-column { padding-block: var(--wp--preset--spacing--30); }
	.tyt-home-editorial .wp-block-columns,
	.tyt-home-collection .wp-block-columns { margin-left: 0; transform: none; width: 100%; }
	.tyt-home-collection .wp-block-column:first-child { margin-bottom: var(--wp--preset--spacing--40); }
	.tyt-home-collection::before { inset: 28% 0 4% 10%; }
	.tyt-theme-grid .wp-block-post-template { grid-template-columns: 1fr; }
	.tyt-home-magazine-intro,
	.tyt-magazine-title-row { width: 100%; }
	:is(.tyt-magazine-grid, .tyt-journal-grid) .wp-block-post-template { grid-template-columns: 1fr; }
	.tyt-section-rule::before,
	.tyt-section-rule::after { display: none; }
	.tyt-newsletter-form { flex-direction: column; }
	.tyt-newsletter-form input,
	.tyt-newsletter-form button { border-radius: 5px; }
	.tyt-home-newsletter .ff-t-container { display: block; }
	.tyt-home-newsletter .ff-t-column-1,
	.tyt-home-newsletter .ff-t-column-2 { width: 100%; }
	.tyt-home-newsletter .ff-t-cell { margin-bottom: 0; }
	.tyt-home-newsletter .ff-el-form-control,
	form.fluent_form_2 .wpf_has_custom_css.ff-btn-submit { border-radius: 5px; width: 100%; }
	.tyt-footer-newsletter-pattern .ff-t-container { display: block; }
	.tyt-footer-newsletter-pattern .ff-t-column-1,
	.tyt-footer-newsletter-pattern .ff-t-column-2 { width: 100%; }
	.tyt-footer-newsletter-pattern .ff-el-form-control,
	.tyt-footer-newsletter-pattern form.fluent_form_2 .ff-btn-submit { border-radius: 5px; }
}

/* Imported blog presentation: native editorial posts with category-aware archives.
   Reference: docs/design/references/mbs87-blog-stitch (SHA-Style Editorial Blog
   - MBS 87). Squared panels, an 8/4 article-and-sidebar column, and one serif
   voice. Two deliberate departures from that reference: titles stay in sentence
   case (it sets H1 and every H2 in letter-spaced uppercase, which turns long
   real-world headlines into a wall), and the contents panel removes itself on a
   post without sections instead of standing empty. */
.tyt-blog-single,
.tyt-blog-archive,
.tyt-tour-archive,
.tyt-destinations-page,
.tyt-destination-term,
.tyt-source-blog {
	--tyt-blog-prose: 760px;
	--tyt-journal-max: 2000px;
	--tyt-blog-rule: #e5e2e1;
	--tyt-blog-surface-low: #f6f3f2;
	--tyt-blog-ink-muted: #45464c;
}

.tyt-source-blog { font-family: var(--tyt-font-body); }

.tyt-source-blog .tyt-editorial-richtext { margin-inline: 0; max-width: none; }

.tyt-source-blog .tyt-editorial-richtext > .wp-block-heading {
	font-family: var(--tyt-font-display);
	font-weight: var(--tyt-weight-medium);
	line-height: 1.25;
	margin-top: clamp(2.75rem, 5vw, 4rem);
	scroll-margin-top: 7rem;
}

.tyt-source-blog .tyt-editorial-richtext > :is(h2, h3).wp-block-heading { font-size: clamp(1.7rem, 2.3vw, 2.1rem); }
.tyt-source-blog .tyt-editorial-richtext > :is(h4, h5, h6).wp-block-heading { font-size: clamp(1.25rem, 1.6vw, 1.45rem); }

.tyt-source-blog .tyt-editorial-richtext > .wp-block-paragraph {
	font-family: var(--tyt-font-body);
	font-size: clamp(1.05rem, 1.15vw, 1.125rem);
	line-height: 1.75;
}

/* The opening paragraph reads as a standfirst, as in the reference. */
.tyt-source-blog .tyt-editorial-richtext > .wp-block-paragraph:first-child {
	background: var(--tyt-blog-surface-low);
	border: 1px solid var(--tyt-blog-rule);
	color: #1c1b1b;
	padding: clamp(1.25rem, 2vw, 1.75rem);
}

.tyt-source-blog .tyt-editorial-richtext > .wp-block-image { margin-block: clamp(1.75rem, 3vw, 3rem); }
.tyt-source-blog .tyt-editorial-richtext > .wp-block-image img { border-radius: 0; display: block; height: auto; width: 100%; }

.tyt-blog-single, .tyt-blog-archive { font-family: var(--tyt-font-body); }
.tyt-blog-single__category { font-family: var(--tyt-font-body); font-weight: var(--tyt-weight-semibold); }
.tyt-blog-single__title, .tyt-blog-archive__title { font-family: var(--tyt-font-display); font-weight: var(--tyt-weight-medium); line-height: 1.15; }

/* Sized against the article column rather than the viewport: the reference sets
   the headline at 48px, and the old clamp reached 84px and dwarfed the story. */
.tyt-blog-single__masthead { margin-inline: auto; max-width: 56rem !important; text-align: center; }
.tyt-blog-single__title { font-size: clamp(2.2rem, 3.6vw, 3.25rem); margin: 0.8rem auto 0; max-width: 100%; text-align: center; }

.tyt-blog-single__meta {
	border-top: 1px solid var(--tyt-blog-rule);
	margin-top: clamp(1.5rem, 2.5vw, 2rem);
	padding-top: clamp(1rem, 1.6vw, 1.5rem);
}

/* The banner spans the viewport and is never cropped. It stops at the fold:
   `--tyt-banner-max` is the distance from the top of the image to the bottom of
   the screen, measured by tyt-blog-banner.js because it depends on how tall the
   masthead renders. When the cap bites the image letterboxes inside it rather
   than cropping; the figure stays unpainted so the page shows through. */
.tyt-blog-single__featured { background: none; max-width: none; width: auto; }
.tyt-blog-single__featured img { border-radius: 0; display: block; height: auto; max-height: var(--tyt-banner-max, none); width: 100%; }

.tyt-blog-layout { align-items: flex-start; gap: clamp(2rem, 4vw, 4rem) !important; }
.tyt-blog-layout__main { min-width: 0; }
.tyt-blog-single__content { max-width: none !important; padding-inline: 0 !important; }
.tyt-blog-single__content > .tyt-source-blog { max-width: none; }

.tyt-blog-layout__aside { min-width: 0; }
.tyt-blog-aside { position: sticky; top: 7rem; }

.tyt-blog-related, .tyt-blog-cta { border: 1px solid var(--tyt-blog-rule); padding: clamp(1.5rem, 2.2vw, 2rem); }
/* The gap between the two panels belongs to the related one, not to the CTA:
   the related panel removes itself on a post with no siblings, and a margin-top
   on the CTA would survive that and push it out of line with the article. */
.tyt-blog-related { background: #fff; margin-bottom: clamp(1.25rem, 2vw, 2rem); }
.tyt-blog-cta { background: var(--tyt-blog-surface-low); margin-top: 0; text-align: center; }

.tyt-blog-related__title, .tyt-blog-cta__title {
	font-family: var(--tyt-font-display);
	font-size: clamp(1.25rem, 1.6vw, 1.45rem);
	font-weight: var(--tyt-weight-medium);
	line-height: 1.25;
	margin: 0;
}

.tyt-blog-related__title { border-bottom: 1px solid var(--tyt-blog-rule); margin-bottom: 1.25rem; padding-bottom: 0.9rem; }

/* A post with no sibling in its category has nothing to offer, so the panel
   removes itself rather than standing empty. */
.tyt-blog-related:has(.wp-block-query-no-results) { display: none; }

.tyt-blog-related__list { display: flex; flex-direction: column; gap: 1.25rem; list-style: none; margin: 0; padding: 0; }
.tyt-blog-related__list > li { display: grid; gap: 0.9rem; grid-template-columns: 5rem minmax(0, 1fr); align-items: start; }
.tyt-blog-related__image { margin: 0; }
.tyt-blog-related__image img { aspect-ratio: 4 / 3; border-radius: 0; display: block; height: auto; object-fit: cover; width: 100%; }
.tyt-blog-related__link { font-family: var(--tyt-font-display); font-size: 1.05rem; font-weight: var(--tyt-weight-medium); line-height: 1.3; margin: 0; }
.tyt-blog-related__link a { color: #1c1b1b; text-decoration: none; }
.tyt-blog-related__link a:hover, .tyt-blog-related__link a:focus-visible { text-decoration: underline; text-underline-offset: 0.2em; }

.tyt-blog-cta__title + .wp-block-paragraph { color: var(--tyt-blog-ink-muted); font-size: 0.95rem; line-height: 1.6; margin: 0.9rem 0 1.5rem; }
.tyt-blog-cta .wp-block-buttons { justify-content: center; }
.tyt-blog-cta__button, .tyt-blog-cta__button .wp-block-button__link { width: 100%; }
.tyt-blog-cta__button .wp-block-button__link {
	background: #171d2a;
	border-radius: 0;
	color: #fff;
	font-size: 0.75rem;
	font-weight: var(--tyt-weight-semibold);
	letter-spacing: 0.14em;
	padding: 1rem 1.5rem;
	text-transform: uppercase;
}

/* Tour details use a product-page hierarchy without commerce controls. */
.tyt-tour-single__hero { align-items: flex-start; gap: clamp(2rem, 5vw, 5.5rem) !important; }
.tyt-tour-single__gallery .wp-block-post-featured-image,
.tyt-tour-single__gallery .wp-block-post-featured-image img { display: block; width: 100%; }
.tyt-tour-single__gallery .wp-block-post-featured-image img { aspect-ratio: 4 / 5; object-fit: cover; }
.tyt-tour-single__gallery { position: sticky; top: 7rem; }
.tyt-tour-single__summary { border-top: 1px solid var(--tyt-hairline); padding-top: 1.25rem; }
.tyt-tour-single__summary .wp-block-post-title { margin-bottom: 0.5rem; }
.tyt-tour-single__summary .wp-block-post-terms { margin-bottom: 0.75rem; }
.tyt-tour-single__summary .wp-block-paragraph { color: var(--tyt-blog-ink-muted); }
.tyt-tour-single__summary .has-primary-color { color: var(--wp--preset--color--primary) !important; margin: 1.25rem 0 0.5rem; }
.tyt-tour-single__enquiry,
.tyt-tour-single__enquiry .wp-block-button,
.tyt-tour-single__enquiry .wp-block-button__link { width: 100%; }
.tyt-tour-single__enquiry .wp-block-button__link { border-radius: 0; text-align: center; }
.tyt-tour-single__summary .tyt-tour-single__content { margin-top: var(--wp--preset--spacing--30); padding-inline: 0; }
.tyt-tour-single__contact { border-top: 1px solid var(--tyt-hairline); }

.tyt-blog-archive__title { font-size: clamp(2.8rem, 5vw, 4.5rem); }
.tyt-blog-archive__description { margin-inline: auto; max-width: 620px; }

/* Journal and category listings, after the luxewellnessclub category page: a
   tinted masthead band over a two-up grid of wide landscape tiles, each tile
   carrying its category terms as pills. The tile itself is still the homepage
   story card — image, scrim, title pinned bottom-left — in the reference's
   proportions. Corners stay square: the reference rounds them, the rest of this
   site does not. */
.tyt-blog-archive__masthead {
	background: var(--tyt-blog-surface-low);
	padding: clamp(2.5rem, 5vw, 4.25rem) var(--tyt-mbs87-gutter, clamp(1.25rem, 3vw, 2rem));
}

.tyt-blog-archive__back {
	font-family: var(--tyt-font-body);
	font-size: 0.8rem;
	letter-spacing: 0.1em;
	margin: 0 0 clamp(1.5rem, 3vw, 2.5rem);
	text-transform: uppercase;
}

.tyt-blog-archive__back a { color: var(--tyt-blog-ink-muted); text-decoration: none; }
.tyt-blog-archive__back a::before { content: '\2190'; margin-right: 0.6em; }
.tyt-blog-archive__back a:hover,
.tyt-blog-archive__back a:focus-visible { color: inherit; text-decoration: underline; text-underline-offset: 0.3em; }

.tyt-blog-archive__breadcrumb {
	color: var(--tyt-blog-ink-muted);
	font-family: var(--tyt-font-body);
	font-size: 0.85rem;
	margin: 0 0 0.9rem;
}

.tyt-blog-archive__breadcrumb a { color: inherit; text-decoration: none; }
.tyt-blog-archive__breadcrumb a:hover,
.tyt-blog-archive__breadcrumb a:focus-visible { text-decoration: underline; text-underline-offset: 0.25em; }
.tyt-blog-archive__breadcrumb span { opacity: 0.5; padding-inline: 0.35em; }

/* A category name is short, so the reference's letter-spaced uppercase reads
   well here — unlike an article headline, which stays sentence case. */
.tyt-blog-archive__title {
	letter-spacing: 0.04em;
	margin: 0;
	text-transform: uppercase;
}

.tyt-blog-archive__description {
	color: var(--tyt-blog-ink-muted);
	font-family: var(--tyt-font-body);
	margin: 1rem auto 0;
}

/* The listing follows the screen rather than stopping at the site's 1366px
   wide measure; only past 2000px does it stop growing. */
.tyt-journal-grid {
	/* Beats the generated `.alignwide { max-width: <wide-size> }` layout rule,
	   which is what otherwise pins the listing at 1366px. */
	margin-inline: auto !important;
	max-width: none !important;
	width: min(var(--tyt-journal-max), calc(100vw - clamp(40px, 8vw, 120px))) !important;
}

.tyt-journal-grid .wp-block-post-template {
	gap: 30px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* A listing headline is set in the body face and uppercased, unlike the
   homepage rail's display-face titles. */
.tyt-journal-grid .wp-block-post-title {
	font-family: var(--tyt-font-body);
	font-size: clamp(0.95rem, 1.1vw, 1.15rem);
	font-weight: var(--tyt-weight-semibold);
	letter-spacing: 0.01em;
	line-height: 1.2;
	text-transform: uppercase;
}

.tyt-journal-card__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0;
}

.tyt-journal-card__tags a {
	border: 1px solid var(--tyt-hairline);
	border-radius: 999px;
	color: var(--wp--preset--color--contrast);
	font-family: var(--tyt-font-body);
	font-size: 0.72rem;
	line-height: 1.2;
	padding: 0.35rem 0.85rem;
	text-decoration: none;
	white-space: nowrap;
}

.tyt-journal-card__tags a:hover,
.tyt-journal-card__tags a:focus-visible { background: var(--wp--preset--color--contrast); border-color: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }

/* "Uncategorized" is WordPress's placeholder, never a real label. */
.tyt-journal-card__tags a[href*="/uncategorized"] { display: none; }
.tyt-journal-card__tags:not(:has(a:not([href*="/uncategorized"]))) { display: none; }

.tyt-journal-pagination {
	font-family: var(--tyt-font-body);
	font-size: 0.9rem;
	gap: 0.9rem;
}

.tyt-journal-pagination a { color: var(--tyt-blog-ink-muted); text-decoration: none; }
.tyt-journal-pagination a:hover,
.tyt-journal-pagination a:focus-visible { color: inherit; text-decoration: underline; text-underline-offset: 0.3em; }
.tyt-journal-pagination .wp-block-query-pagination-numbers { display: flex; gap: 0.9rem; }
.tyt-journal-pagination .page-numbers.current { font-weight: var(--tyt-weight-semibold); }

@media (max-width: 1100px) {
	.tyt-tour-single__hero { flex-wrap: wrap !important; }
	.tyt-tour-single__gallery, .tyt-tour-single__summary { flex-basis: 100% !important; }
	.tyt-tour-single__gallery, .tyt-tour-single__summary { position: static; }

	/* The sidebar stops being a companion column and becomes a footer panel. */
	.tyt-blog-layout { flex-wrap: wrap !important; }
	.tyt-blog-layout__main, .tyt-blog-layout__aside { flex-basis: 100% !important; }
	.tyt-blog-aside { display: grid; gap: clamp(1.25rem, 2vw, 2rem); grid-template-columns: repeat(2, minmax(0, 1fr)); position: static; }
	/* The constrained-layout rule puts `margin-inline: auto` on these panels, which
	   in a grid makes them shrink to their content instead of filling the cell. */
	.tyt-blog-aside > * { margin-inline: 0 !important; max-width: none !important; }
	/* With the related panel removed the CTA is the only panel, so it takes the row. */
	.tyt-blog-aside:has(.wp-block-query-no-results) { grid-template-columns: minmax(0, 1fr); }
	.tyt-blog-related { margin-bottom: 0; }
	.tyt-source-blog .tyt-editorial-richtext { margin-inline: auto; max-width: var(--tyt-blog-prose); }
	.tyt-journal-grid .wp-block-post-template { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

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

@media (max-width: 781px) {
	.tyt-blog-single__title { font-size: clamp(2rem, 8.5vw, 2.8rem); }
	.tyt-blog-single__meta { font-size: 0.9rem; }
	.tyt-blog-aside { grid-template-columns: minmax(0, 1fr); }
	.tyt-journal-grid .wp-block-post-template { grid-template-columns: minmax(0, 1fr); }
}

/* Homepage reading scale: the section content below the hero is set from the
   theme's presets, so raising the presets for the front page alone lifts every
   heading, card title and paragraph at once without touching the rest of the
   site. The hero opts back down — its headline is width-constrained, so it
   takes a gentler step. */
body.home main {
	--wp--preset--font-size--small: clamp(0.95rem, 0.9rem + 0.25vw, 1.02rem);
	--wp--preset--font-size--medium: clamp(1.17rem, 1.1rem + 0.35vw, 1.32rem);
	--wp--preset--font-size--large: clamp(1.4rem, 1.3rem + 0.5vw, 1.76rem);
	--wp--preset--font-size--x-large: clamp(1.7rem, 1.5rem + 1vw, 2.35rem);
	--wp--preset--font-size--xx-large: clamp(2.05rem, 1.7rem + 1.6vw, 3.05rem);
}

body.home .tyt-hero {
	--wp--preset--font-size--small: clamp(0.85rem, 0.82rem + 0.15vw, 0.92rem);
	--wp--preset--font-size--medium: clamp(1.05rem, 1rem + 0.25vw, 1.19rem);
	--wp--preset--font-size--large: clamp(1.26rem, 1.18rem + 0.35vw, 1.58rem);
	--wp--preset--font-size--x-large: clamp(1.5rem, 1.35rem + 0.7vw, 2.12rem);
	--wp--preset--font-size--xx-large: clamp(1.85rem, 1.6rem + 1.1vw, 2.75rem);
}

/* Card titles are the whole card's link target, so the underline reads as
   clutter across a rail of them. It comes back on hover and focus. */
.tyt-tour-card .wp-block-post-title a,
.tyt-tour-card__link,
.tyt-story-card h3 a,
.tyt-editorial-rail .wp-block-post-title a,
:is(.tyt-magazine-grid, .tyt-journal-grid) .wp-block-post-title a {
	text-decoration: none;
}

.tyt-tour-card .wp-block-post-title a:hover,
.tyt-tour-card .wp-block-post-title a:focus-visible,
.tyt-tour-card__link:hover,
.tyt-tour-card__link:focus-visible,
.tyt-story-card h3 a:hover,
.tyt-story-card h3 a:focus-visible {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

/* Price outranks the tour name in the card hierarchy: it is the figure people
   scan a rail for, so it is set heavier and a step larger than the title. */
.tyt-tour-card .wp-block-post-title {
	font-size: clamp(1.35rem, 1.7vw, 1.75rem);
	font-weight: var(--tyt-weight-semibold);
}

.tyt-tour-card__price {
	color: var(--wp--preset--color--primary);
	font-family: var(--tyt-font-body);
	font-size: clamp(1.7rem, 2.2vw, 2.25rem);
	font-weight: 700;
	letter-spacing: 0.01em;
	line-height: 1.15;
	margin-block: 0.4rem 0;
}

/* Journeys by feeling: the cards sit in a two-row rail beside the section copy,
   so their titles carry more weight than the rest of the homepage's card
   titles. Price and title are set to one size here — the price stays bolder,
   which is what separates them — so both read off the same shared token. */
.tyt-home-collection .tyt-tour-card .wp-block-post-title {
	font-weight: var(--tyt-weight-semibold);
}

/* Titles here run long and uneven, so the type and price are pinned to the
   bottom of every card: the row reads as one baseline instead of stepping up
   and down with each title's line count. */
.tyt-home-collection .tyt-tour-card {
	display: flex;
	flex-direction: column;
}

.tyt-home-collection .tyt-tour-card > .wp-block-group {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding-bottom: 18px;
}

.tyt-home-collection .tyt-tour-card__eyebrow {
	margin-top: auto;
}

.tyt-home-collection .tyt-tour-card__price {
	font-size: clamp(1.12rem, 1.35vw, 1.41rem);
}

/* The tour artwork is portrait (~3:4), so the rail's shared 16/9 frame threw
   most of every image away. 4/5 sits just inside the source ratio -- the crop
   is a sliver rather than a band. Carries the rail's own two classes so it
   outranks `.wp-block-query.is-style-tyt-rail .wp-block-post-featured-image`. */
.tyt-home-collection .wp-block-query.is-style-tyt-rail .wp-block-post-featured-image,
.tyt-home-collection .wp-block-query.is-style-tyt-rail .wp-block-post-featured-image img {
	aspect-ratio: 4 / 5;
}

.tyt-tour-card__eyebrow-link {
	color: inherit;
	text-decoration: none;
}

.tyt-tour-card__eyebrow-link:hover,
.tyt-tour-card__eyebrow-link:focus-visible {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

/* Magazine reads as a rail rather than a fixed row of three. The shared rail
   style wins on specificity over the magazine card rules, so the pieces that
   make a card a card -- the 3:2 image frame over a light body -- are restated
   here with the rail's own classes in the selector. */
.tyt-home-magazine .wp-block-query.is-style-tyt-rail .wp-block-post-template > * {
	flex: 0 0 min(86%, 420px);
}

@media (min-width: 768px) {
	.tyt-home-magazine .wp-block-query.is-style-tyt-rail .wp-block-post-template > * {
		flex: 0 0 min(48%, 420px);
	}
}

@media (min-width: 1024px) {
	.tyt-home-magazine .wp-block-query.is-style-tyt-rail .wp-block-post-template > * {
		flex: 0 0 min(32%, 420px);
	}
}

/* The card body is a `> li > .wp-block-group`, which is what the shared rail
   style dresses as a tour card: a second border inside the card's own, plus a
   lift-and-shadow on hover. An article card is flat and does not move. */
.tyt-home-magazine .wp-block-query.is-style-tyt-rail .wp-block-post-template > li > .wp-block-group {
	border: 0;
	border-radius: 0;
	transition: none;
}

.tyt-home-magazine .wp-block-query.is-style-tyt-rail .wp-block-post-template > li > .wp-block-group:hover {
	box-shadow: none;
	transform: none;
}

.tyt-home-magazine .wp-block-query.is-style-tyt-rail .wp-block-post-featured-image {
	aspect-ratio: 3 / 2;
	border-radius: 0;
	flex: 0 0 auto;
	margin: 0;
	overflow: hidden;
	position: relative;
	width: 100%;
}

.tyt-home-magazine .wp-block-query.is-style-tyt-rail .wp-block-post-featured-image a,
.tyt-home-magazine .wp-block-query.is-style-tyt-rail .wp-block-post-featured-image img {
	aspect-ratio: auto;
	border-radius: 0;
	height: 116%;
	inset: 0;
	margin: 0;
	object-fit: cover;
	object-position: center top;
	position: absolute;
	width: 100%;
}


/* --------------------------------------------------------------------------
   Homepage tail: FAQ, booking banner, testimonials, review platforms, contact.
   One quiet system — hairline rules, square corners, Cormorant for the large
   headings and Jost for everything that has to be read quickly.
   -------------------------------------------------------------------------- */

/* Sections that carry a scroll anchor sit inside a plain wrapper div. That
   wrapper is an unaligned child of the constrained <main>, so WordPress caps it
   at the 800px content size and the alignfull section inside it — plus anything
   sized to --tyt-wide — spills out to the right. Let the wrappers pass the full
   width through to the section they only exist to label. */
#approach,
#collections,
#journal {
	max-width: none;
	width: 100%;
}

.tyt-home-faq { background: var(--wp--preset--color--base); }

.tyt-faq-layout {
	margin-inline: auto;
	margin-top: var(--wp--preset--spacing--40);
	max-width: none;
	width: var(--tyt-wide);
}

/* The aside stays with the reader while a long accordion scrolls past it. */
.tyt-faq-aside {
	align-self: flex-start;
	position: sticky;
	top: 150px;
}

.tyt-faq-aside .tyt-collection-heading { margin: 0.6rem 0 1rem; }
.tyt-faq-aside p:not(.tyt-kicker) { color: var(--wp--preset--color--accent); }

.tyt-faq-contact {
	border-top: 1px solid var(--tyt-hairline);
	margin-top: var(--wp--preset--spacing--30);
	padding-top: var(--wp--preset--spacing--30);
}

.tyt-faq-contact p { margin: 0 0 0.4rem; }
.tyt-faq-contact a { color: var(--wp--preset--color--contrast); text-decoration: none; }
.tyt-faq-contact a:hover { text-decoration: underline; text-underline-offset: 0.2em; }

.tyt-faq-item {
	border-bottom: 1px solid var(--tyt-hairline);
	margin: 0;
	padding: 0;
}

.tyt-faq-list .tyt-faq-item:first-of-type { border-top: 1px solid var(--tyt-hairline); }

.tyt-faq-item > summary {
	align-items: center;
	cursor: pointer;
	display: flex;
	font-size: clamp(1rem, 1.15vw, 1.15rem);
	font-weight: var(--tyt-weight-medium);
	gap: 0.85rem;
	letter-spacing: 0.01em;
	list-style: none;
	padding: 1.15rem 0;
}

.tyt-faq-item > summary::-webkit-details-marker { display: none; }
.tyt-faq-item > summary::marker { content: ""; }
.tyt-faq-item > summary:hover { color: var(--wp--preset--color--accent); }

/* A chevron ahead of the question is the affordance: it points right when the
   answer is closed and down once it is open. Drawn as a mask so it inherits
   the summary's colour, including the hover state. */
.tyt-faq-item > summary::before {
	background-color: currentColor;
	content: "";
	flex: 0 0 auto;
	height: 1.05rem;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") center / contain no-repeat;
	transform: rotate(-90deg);
	transition: transform 0.2s ease;
	width: 1.05rem;
}

.tyt-faq-item[open] > summary::before { transform: rotate(0deg); }

/* Answers line up under the question text, not under its chevron. */
.tyt-faq-item > :not(summary) {
	color: var(--wp--preset--color--accent);
	font-size: 0.95rem;
	line-height: 1.7;
	margin: 0 0 1.1rem;
	max-width: 62ch;
	padding-left: calc(1.05rem + 0.85rem);
}

.tyt-faq-item > summary + * { margin-top: -0.2rem; }
.tyt-faq-item ul { padding-left: calc(1.05rem + 0.85rem + 1.1rem); }
.tyt-faq-item li { margin-bottom: 0.35rem; }
.tyt-faq-item .wp-block-buttons { margin-bottom: 1.4rem; }

.tyt-banner-heading {
	font-family: var(--tyt-font-display);
	font-size: clamp(2.1rem, 3.4vw, 3.4rem);
	font-weight: var(--tyt-weight-medium);
	line-height: 1.08;
	margin-block: 0.5rem;
}

.tyt-booking-banner .tyt-banner-lede {
	margin-inline: auto;
	max-width: 620px;
}

.tyt-booking-banner .wp-block-buttons { margin-top: var(--wp--preset--spacing--30); }
.tyt-banner-cta .wp-block-button__link { background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast); }
.tyt-banner-cta .wp-block-button__link:hover { background: transparent; box-shadow: inset 0 0 0 1px #fff; color: #fff; }
.tyt-booking-banner .is-style-outline .wp-block-button__link { border-color: #fff; color: #fff; }
.tyt-booking-banner .is-style-outline .wp-block-button__link:hover { background: #fff; color: var(--wp--preset--color--contrast); }

.tyt-home-testimonials { background: var(--wp--preset--color--secondary); }

/* The quotes ride the shared static rail: full-bleed track, scroll snapping,
   arrows and autoplay all come from tyt-rail.js. Only the spacing above the
   track and the equal-height cards are particular to this section. */
.tyt-testimonial-rail { margin-top: var(--wp--preset--spacing--40) !important; }
.tyt-testimonial-rail .tyt-static-rail__track { align-items: stretch; }
.tyt-testimonial-rail .tyt-static-rail__track > * { flex: 0 0 min(30vw, 430px); }

.tyt-testimonial-card {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--tyt-hairline);
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: clamp(1.5rem, 2.4vw, 2.25rem);
}

/* The quote mark sits in the flow above the text rather than floating over it,
   so the first line is never nudged out of alignment with its neighbours. */
.tyt-testimonial-quote::before {
	color: var(--tyt-hairline);
	content: "\201C";
	display: block;
	font-family: var(--tyt-font-display);
	font-size: 3.4rem;
	line-height: 0.6;
	margin-bottom: 0.9rem;
}

.tyt-testimonial-quote {
	color: var(--wp--preset--color--contrast);
	flex: 1 1 auto;
	font-size: 1.02rem;
	line-height: 1.7;
	margin: 0 0 var(--wp--preset--spacing--30);
}

.tyt-testimonial-name {
	border-top: 1px solid var(--tyt-hairline);
	margin: 0;
	padding-top: 1rem;
}

.tyt-testimonial-name strong {
	font-size: 0.85rem;
	font-weight: var(--tyt-weight-semibold);
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.tyt-testimonial-name span {
	color: var(--wp--preset--color--accent);
	font-size: 0.85rem;
}

.tyt-review-band {
	margin-inline: auto;
	max-width: none;
	width: var(--tyt-wide);
}

.tyt-review-band__image,
.tyt-review-band__image img {
	aspect-ratio: 3 / 2;
	height: 100%;
	margin: 0;
	object-fit: cover;
	width: 100%;
}

.tyt-review-band__panel {
	background: var(--wp--preset--color--secondary);
	box-sizing: border-box;
	padding: clamp(1.75rem, 3.6vw, 3.5rem);
}

.tyt-review-band__panel .tyt-collection-heading { margin: 0.6rem 0 1rem; }
.tyt-review-band__panel p:not(.tyt-kicker) { color: var(--wp--preset--color--accent); }
.tyt-review-band__panel .wp-block-buttons { margin-top: var(--wp--preset--spacing--30); }

.tyt-contact-layout {
	margin-inline: auto;
	max-width: none;
	width: var(--tyt-wide);
}

.tyt-contact-intro .tyt-collection-heading { margin: 0.6rem 0 1rem; }
.tyt-contact-intro p:not(.tyt-kicker) { color: var(--wp--preset--color--accent); }
.tyt-contact-intro .wp-block-group { margin-top: var(--wp--preset--spacing--30); }
.tyt-contact-intro a { color: var(--wp--preset--color--contrast); }

.tyt-contact-form {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--tyt-hairline);
	box-sizing: border-box;
	padding: clamp(1.5rem, 2.6vw, 2.5rem);
}

/* Fluent Forms ships its own rounded, blue-tinted controls; square them off and
   let them inherit the theme's type so the form reads as part of the page. */
.tyt-contact-form .ff-el-group,
.tyt-content-page__body .ff-el-group { margin-bottom: 1.1rem; }

.tyt-contact-form .ff-el-form-control,
.tyt-content-page__body .ff-el-form-control {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--tyt-hairline);
	border-radius: 0;
	box-shadow: none;
	color: var(--wp--preset--color--contrast);
	font-family: var(--tyt-font-body);
	font-size: 0.95rem;
	padding: 0.85rem 1rem;
}

.tyt-contact-form .ff-el-form-control:focus,
.tyt-content-page__body .ff-el-form-control:focus {
	border-color: var(--wp--preset--color--contrast);
	outline: none;
}

.tyt-contact-form .ff-el-input--label label,
.tyt-content-page__body .ff-el-input--label label {
	font-size: 0.75rem;
	font-weight: var(--tyt-weight-semibold);
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

/* Fluent Forms prints a per-form <style> block late in the body
   (form.fluent_form_N .ff-btn-submit, 0-3-1), so the theme's button needs one
   class more than that to win the cascade without reaching for !important. */
.tyt-contact-form .fluentform .ff-btn-submit.ff-btn,
.tyt-content-page__body .fluentform .ff-btn-submit.ff-btn {
	background: var(--wp--preset--color--contrast);
	border: 1px solid var(--wp--preset--color--contrast);
	border-radius: 0;
	color: var(--wp--preset--color--base);
	font-family: var(--tyt-font-body);
	font-size: 0.78rem;
	font-weight: var(--tyt-weight-semibold);
	letter-spacing: 0.14em;
	padding: 0.95rem 2.2rem;
	text-transform: uppercase;
}

.tyt-contact-form .fluentform .ff-btn-submit.ff-btn:hover,
.tyt-content-page__body .fluentform .ff-btn-submit.ff-btn:hover {
	background: transparent;
	color: var(--wp--preset--color--contrast);
}

@media (max-width: 781px) {
	.tyt-home-faq,
	.tyt-home-testimonials,
	.tyt-home-contact { padding-block: 56px !important; }
	.tyt-faq-layout,
	.tyt-contact-layout { gap: var(--wp--preset--spacing--40); }
	.tyt-faq-aside { position: static; }
	.tyt-testimonial-rail .tyt-static-rail__track > * { flex: 0 0 min(80vw, 420px); }
	.tyt-booking-banner { min-height: 360px !important; }
	.tyt-review-band__image,
	.tyt-review-band__image img { aspect-ratio: 16 / 10; }
}

/* --------------------------------------------------------------------------
   Content Page template — for pages written by hand (Contact, About us) rather
   than imported from MBS87. A quiet title band over a single measure of prose.
   -------------------------------------------------------------------------- */

.tyt-content-page__head {
	background: var(--wp--preset--color--secondary);
	border-bottom: 1px solid var(--tyt-hairline);
	padding-block: clamp(3rem, 5.5vw, 5.5rem);
}

.tyt-content-page__title {
	font-family: var(--tyt-font-display);
	font-size: clamp(2.1rem, 4vw, 3.5rem);
	font-weight: var(--tyt-weight-medium);
	letter-spacing: 0.01em;
	line-height: 1.08;
	margin: 0;
	max-width: 20ch;
	margin-inline: auto;
}

.tyt-content-page__body { padding-block: clamp(2.5rem, 4.5vw, 4.5rem); }

/* Imported MBS87 markup centres its own prose for the landing template. On a
   plain content page copy reads from the left, while any alignment the editor
   sets on a block (has-text-align-*) still wins — the reset skips those. */
.tyt-content-page .tyt-content-page__body :is(p, h1, h2, h3, h4, h5, h6, ul, ol, blockquote, figcaption):not([class*="has-text-align"]),
.tyt-content-page__body .tyt-editorial-intro .wp-block-paragraph:not([class*="has-text-align"]) {
	text-align: left;
}

/* Imported MBS87 sections open with a 4-6rem top margin sized for the landing
   template's hero. Under a plain title band that reads as dead space. */
.tyt-content-page__body .tyt-editorial-section:first-child { margin-top: 0 !important; }

.tyt-content-page__body :is(p, ul, ol) {
	font-size: 1.02rem;
	line-height: 1.75;
}

.tyt-content-page__body :is(h2, h3, h4) { margin-bottom: 0.6em; }
.tyt-content-page__body :is(h2, h3, h4):not(:first-child) { margin-top: 2.1em; }

.tyt-content-page__body h2 {
	font-family: var(--tyt-font-display);
	font-size: clamp(1.6rem, 2.4vw, 2.2rem);
	font-weight: var(--tyt-weight-medium);
	line-height: 1.15;
}

/* h3 steps down to the body face so a long page keeps two legible levels
   without the two serif sizes running together. */
.tyt-content-page__body h3 {
	font-size: 1.02rem;
	font-weight: var(--tyt-weight-semibold);
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.tyt-content-page__body :is(ul, ol) { padding-left: 1.3rem; }
.tyt-content-page__body li + li { margin-top: 0.4rem; }

.tyt-content-page__body a:not(.wp-element-button) {
	color: var(--wp--preset--color--contrast);
	text-underline-offset: 0.2em;
}

.tyt-content-page__body blockquote {
	border-left: 2px solid var(--tyt-hairline);
	font-family: var(--tyt-font-display);
	font-size: 1.25rem;
	line-height: 1.5;
	margin: var(--wp--preset--spacing--40) 0;
	padding-left: var(--wp--preset--spacing--30);
}

.tyt-content-page__body :is(figure, .wp-block-image) { margin-block: var(--wp--preset--spacing--40); }
.tyt-content-page__body figcaption {
	color: var(--wp--preset--color--accent);
	font-size: 0.85rem;
	text-align: center;
}

.tyt-content-page__body hr {
	background: var(--tyt-hairline);
	border: 0;
	height: 1px;
	margin-block: var(--wp--preset--spacing--40);
}

.tyt-content-page__body table {
	border-collapse: collapse;
	width: 100%;
}

.tyt-content-page__body :is(th, td) {
	border-bottom: 1px solid var(--tyt-hairline);
	padding: 0.75rem 0.5rem;
	text-align: left;
}

.tyt-content-page__body th {
	font-size: 0.78rem;
	font-weight: var(--tyt-weight-semibold);
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.tyt-content-page__body > :last-child { margin-bottom: 0; }

/* --------------------------------------------------------------------------
   Site-wide WhatsApp contact button.
   -------------------------------------------------------------------------- */

.tyt-whatsapp-button {
	align-items: center;
	background: #25d366;
	border: 2px solid rgba(255, 255, 255, 0.92);
	border-radius: 50%;
	bottom: max(1.25rem, env(safe-area-inset-bottom));
	box-shadow: 0 8px 24px rgba(23, 23, 23, 0.24);
	color: #fff;
	display: flex;
	height: 58px;
	justify-content: center;
	position: fixed;
	right: max(1.25rem, env(safe-area-inset-right));
	text-decoration: none;
	transition: box-shadow 180ms ease, transform 180ms ease;
	width: 58px;
	z-index: 1000;
}

.tyt-whatsapp-button svg {
	display: block;
	height: 32px;
	width: 32px;
}

.tyt-whatsapp-button:hover {
	box-shadow: 0 10px 30px rgba(23, 23, 23, 0.32);
	color: #fff;
	text-decoration: none;
	transform: translateY(-2px);
}

.tyt-whatsapp-button:focus-visible {
	outline: 3px solid #fff;
	outline-offset: 3px;
}

@media (max-width: 600px) {
	.tyt-whatsapp-button {
		bottom: max(1rem, env(safe-area-inset-bottom));
		height: 54px;
		right: max(1rem, env(safe-area-inset-right));
		width: 54px;
	}

	.tyt-whatsapp-button svg {
		height: 30px;
		width: 30px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tyt-whatsapp-button { transition: none; }
}

/* --------------------------------------------------------------------------
   Header search overlay — a live results panel over the page, opened from the
   header's search icon. Same hairline system as the rest of the site.
   -------------------------------------------------------------------------- */

.tyt-search-overlay[hidden] { display: none; }

.tyt-search-overlay {
	inset: 0;
	position: fixed;
	z-index: 9999;
}

.tyt-search-overlay__backdrop {
	background: rgba(23, 23, 23, 0.45);
	inset: 0;
	position: absolute;
}

.tyt-search-overlay__panel {
	background: var(--wp--preset--color--base);
	border-bottom: 1px solid var(--tyt-hairline);
	box-sizing: border-box;
	margin-inline: auto;
	max-height: 85vh;
	overflow-y: auto;
	padding: clamp(1.5rem, 3vw, 2.5rem) clamp(1.25rem, 4vw, 3rem) clamp(1.75rem, 3vw, 2.75rem);
	position: relative;
	width: 100%;
}

.tyt-search-overlay__panel > * {
	margin-inline: auto;
	max-width: 760px;
}

.tyt-search-form {
	align-items: center;
	border-bottom: 1px solid var(--wp--preset--color--contrast);
	display: flex;
	gap: 0.75rem;
	padding-bottom: 0.6rem;
}

.tyt-search-form__input {
	background: transparent;
	border: 0;
	color: var(--wp--preset--color--contrast);
	flex: 1 1 auto;
	font-family: var(--tyt-font-display);
	font-size: clamp(1.4rem, 2.6vw, 2.1rem);
	font-weight: var(--tyt-weight-medium);
	min-width: 0;
	outline: none;
	padding: 0.2rem 0;
}

.tyt-search-form__input::placeholder { color: var(--wp--preset--color--accent); opacity: 0.7; }
.tyt-search-form__input::-webkit-search-cancel-button { display: none; }

.tyt-search-form__submit {
	background: var(--wp--preset--color--contrast);
	border: 1px solid var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	cursor: pointer;
	flex: 0 0 auto;
	font-family: var(--tyt-font-body);
	font-size: 0.72rem;
	font-weight: var(--tyt-weight-semibold);
	letter-spacing: 0.14em;
	padding: 0.7rem 1.4rem;
	text-transform: uppercase;
}

.tyt-search-form__submit:hover {
	background: transparent;
	color: var(--wp--preset--color--contrast);
}

.tyt-search-form__close {
	background: transparent;
	border: 0;
	color: var(--wp--preset--color--contrast);
	cursor: pointer;
	flex: 0 0 auto;
	line-height: 0;
	padding: 0.5rem;
}

.tyt-search-form__close .tyt-icon { height: 20px; width: 20px; }

.tyt-search-status {
	color: var(--wp--preset--color--accent);
	font-size: 0.8rem;
	letter-spacing: 0.06em;
	margin: 0.85rem auto 0;
	min-height: 1.2em;
}

.tyt-search-status[data-tone="error"] { color: #a3282a; }

.tyt-search-results:not(:empty) { margin-top: var(--wp--preset--spacing--30); }

.tyt-search-group + .tyt-search-group { margin-top: var(--wp--preset--spacing--30); }

.tyt-search-group__label {
	border-bottom: 1px solid var(--tyt-hairline);
	color: var(--wp--preset--color--accent);
	font-size: 0.72rem;
	font-weight: var(--tyt-weight-semibold);
	letter-spacing: 0.16em;
	margin: 0 0 0.4rem;
	padding-bottom: 0.5rem;
	text-transform: uppercase;
}

.tyt-search-result {
	align-items: center;
	border-bottom: 1px solid var(--tyt-hairline);
	color: var(--wp--preset--color--contrast);
	display: flex;
	gap: 1rem;
	padding: 0.75rem 0.5rem;
	text-decoration: none;
}

.tyt-search-result:hover,
.tyt-search-result.is-active { background: var(--wp--preset--color--secondary); }

.tyt-search-result__thumb {
	background: var(--wp--preset--color--secondary);
	flex: 0 0 auto;
	height: 60px;
	overflow: hidden;
	width: 88px;
}

.tyt-search-result__thumb img {
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

/* A tour or page without a featured image keeps the same footprint, so the
   rows stay aligned instead of jumping between two heights. */
.tyt-search-result__thumb--empty { border: 1px solid var(--tyt-hairline); }

.tyt-search-result__body {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	min-width: 0;
}

.tyt-search-result__title {
	font-size: 1rem;
	font-weight: var(--tyt-weight-medium);
	line-height: 1.3;
}

.tyt-search-result__price {
	color: var(--wp--preset--color--primary);
	font-size: 0.85rem;
	font-weight: var(--tyt-weight-semibold);
	letter-spacing: 0.04em;
}

body.tyt-search-is-open { overflow: hidden; }

/* The overlay renders its own label text visually hidden; block themes do not
   always ship core's utility class. */
.tyt-search-overlay .screen-reader-text {
	clip-path: inset(50%);
	height: 1px;
	overflow: hidden;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}

@media (max-width: 600px) {
	.tyt-search-form__submit { display: none; }
	.tyt-search-result__thumb { height: 48px; width: 68px; }
}


/* Tour listings — the /tours/ archive and every tour_type term page. They reuse
   the Journal archive's shape (a tinted masthead band over a grid) so the two
   listings on the site read as one family, with the journey-type filter row
   sitting under the description as pills rather than the tag cloud's raw
   underlined links. */
.tyt-tour-archive__masthead {
	background: var(--tyt-blog-surface-low);
	padding: clamp(2.5rem, 5vw, 4.25rem) var(--tyt-mbs87-gutter, clamp(1.25rem, 3vw, 2rem));
}

.tyt-tour-archive__back {
	font-family: var(--tyt-font-body);
	font-size: 0.8rem;
	letter-spacing: 0.1em;
	margin: 0 0 clamp(1.5rem, 3vw, 2.5rem);
	text-transform: uppercase;
}

.tyt-tour-archive__back a { color: var(--tyt-blog-ink-muted); text-decoration: none; }
.tyt-tour-archive__back a::before { content: '\2190'; margin-right: 0.6em; }
.tyt-tour-archive__back a:hover,
.tyt-tour-archive__back a:focus-visible { color: inherit; text-decoration: underline; text-underline-offset: 0.3em; }

.tyt-tour-archive__breadcrumb {
	color: var(--tyt-blog-ink-muted);
	font-family: var(--tyt-font-body);
	font-size: 0.85rem;
	margin: 0 0 0.9rem;
}

.tyt-tour-archive__breadcrumb a { color: inherit; text-decoration: none; }
.tyt-tour-archive__breadcrumb a:hover,
.tyt-tour-archive__breadcrumb a:focus-visible { text-decoration: underline; text-underline-offset: 0.25em; }
.tyt-tour-archive__breadcrumb span { opacity: 0.5; padding-inline: 0.35em; }

/* A term name is short, so it takes the same letter-spaced uppercase treatment
   as a Journal category title. */
.tyt-tour-archive__title {
	font-family: var(--tyt-font-display);
	font-size: clamp(2.4rem, 4.4vw, 3.9rem);
	font-weight: var(--tyt-weight-medium);
	letter-spacing: 0.04em;
	line-height: 1.15;
	margin: 0;
	text-transform: uppercase;
}

.tyt-tour-archive__description {
	color: var(--tyt-blog-ink-muted);
	font-family: var(--tyt-font-body);
	margin: 1rem auto 0;
	max-width: 620px;
}

.tyt-tour-archive__description p { margin: 0; }

.tyt-tour-archive__filters { margin-top: clamp(1.75rem, 3vw, 2.5rem); }

.tyt-tour-archive__filters-label {
	color: var(--tyt-blog-ink-muted);
	font-family: var(--tyt-font-body);
	font-size: 0.75rem;
	letter-spacing: 0.14em;
	margin: 0 0 1rem;
	text-transform: uppercase;
}

.tyt-tour-archive .wp-block-tag-cloud {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
	justify-content: center;
	margin: 0 auto;
	max-width: 980px;
}

.tyt-tour-archive .wp-block-tag-cloud a {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--tyt-hairline);
	border-radius: 999px;
	color: var(--wp--preset--color--contrast);
	font-family: var(--tyt-font-body);
	font-size: 0.78rem !important;
	line-height: 1.2;
	padding: 0.45rem 0.95rem;
	text-decoration: none;
	white-space: nowrap;
}

.tyt-tour-archive .wp-block-tag-cloud a:hover,
.tyt-tour-archive .wp-block-tag-cloud a:focus-visible {
	background: var(--wp--preset--color--contrast);
	border-color: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

/* The term whose page this is stays in the row for context but is not a link
   back to itself, so it is marked as the current one. */
.tyt-tour-archive .wp-block-tag-cloud a[aria-current="page"] {
	background: var(--wp--preset--color--contrast);
	border-color: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

.tyt-tour-grid .wp-block-post-template {
	gap: clamp(20px, 2.2vw, 30px);
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.tyt-tour-grid .wp-block-post { display: flex; }

/* The tour artwork is portrait, so the listing frames it 4/5 like the homepage
   rail instead of the 4/3 the shared grid card uses for photography. */
.tyt-tour-grid .tyt-tour-card .wp-block-post-featured-image,
.tyt-tour-grid .tyt-tour-card .wp-block-post-featured-image img {
	aspect-ratio: 4 / 5;
}

/* Titles run long and uneven here, so the type row and price are pinned to the
   bottom of every card and the row keeps one baseline. */
.tyt-tour-grid .tyt-tour-card {
	display: flex;
	flex-direction: column;
	width: 100%;
}

.tyt-tour-grid .tyt-tour-card > .wp-block-group {
	display: flex;
	flex: 1;
	flex-direction: column;
}

.tyt-tour-grid .tyt-tour-card .wp-block-post-title {
	font-size: clamp(1.02rem, 1.15vw, 1.2rem);
	line-height: 1.3;
}

.tyt-tour-grid .tyt-tour-card .wp-block-post-terms {
	color: var(--tyt-blog-ink-muted);
	line-height: 1.5;
}

.tyt-tour-grid .tyt-tour-card .wp-block-post-terms a { color: inherit; text-decoration: none; }
.tyt-tour-grid .tyt-tour-card .wp-block-post-terms a:hover,
.tyt-tour-grid .tyt-tour-card .wp-block-post-terms a:focus-visible { text-decoration: underline; text-underline-offset: 0.2em; }

.tyt-tour-grid .tyt-tour-card .wp-block-post-terms + .wp-block-post-title { margin-top: 0; }

/* The price is the figure people scan a listing for, so it sits last and holds
   the bottom edge of the card. */
.tyt-tour-grid .tyt-tour-card p:last-child {
	font-size: clamp(1.15rem, 1.35vw, 1.4rem);
	margin-block: auto 0;
	padding-top: 0.6rem;
}

.tyt-tour-pagination {
	font-family: var(--tyt-font-body);
	font-size: 0.9rem;
	gap: 0.9rem;
}

.tyt-tour-pagination a { color: var(--tyt-blog-ink-muted); text-decoration: none; }
.tyt-tour-pagination a:hover,
.tyt-tour-pagination a:focus-visible { color: inherit; text-decoration: underline; text-underline-offset: 0.3em; }
.tyt-tour-pagination .wp-block-query-pagination-numbers { display: flex; gap: 0.9rem; }
.tyt-tour-pagination .page-numbers.current { font-weight: var(--tyt-weight-semibold); }

@media (max-width: 1024px) {
	.tyt-tour-grid .wp-block-post-template { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
	.tyt-tour-grid .wp-block-post-template { grid-template-columns: 1fr; }
}

/* The /destinations/ index. It takes the Journal archive's masthead so the
   site's three listings read as one family, then departs from it: a place is
   chosen by looking, so the cards are photographs with the name laid over them
   rather than text blocks with a thumbnail. After the reference's destinations
   page, where a rail of countries sits above the priced products. */
.tyt-destinations-masthead {
	background: var(--tyt-blog-surface-low);
	padding: clamp(2.5rem, 5vw, 4.25rem) var(--tyt-mbs87-gutter, clamp(1.25rem, 3vw, 2rem));
}

.tyt-destinations-breadcrumb {
	color: var(--tyt-blog-ink-muted);
	font-family: var(--tyt-font-body);
	font-size: 0.85rem;
	margin: 0 0 0.9rem;
}

.tyt-destinations-breadcrumb a { color: inherit; text-decoration: none; }
.tyt-destinations-breadcrumb a:hover,
.tyt-destinations-breadcrumb a:focus-visible { text-decoration: underline; text-underline-offset: 0.25em; }
.tyt-destinations-breadcrumb span { opacity: 0.5; padding-inline: 0.35em; }

.tyt-destinations-title {
	font-family: var(--tyt-font-display);
	font-size: clamp(2.4rem, 4.4vw, 3.9rem);
	font-weight: var(--tyt-weight-medium);
	letter-spacing: 0.04em;
	line-height: 1.15;
	margin: 0;
	text-transform: uppercase;
}

.tyt-destinations-standfirst {
	color: var(--tyt-blog-ink-muted);
	font-family: var(--tyt-font-body);
	margin: 1rem auto 0;
	max-width: 640px;
}

.tyt-destinations {
	margin-inline: auto !important;
	max-width: none !important;
	width: var(--tyt-wide);
}

/* Destination and tour archives share the same filter menu. The compact tab
   row opens one generous, chip-based panel while the native details element
   keeps the chooser useful with JavaScript disabled. */
.tyt-destination-filters {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--tyt-hairline);
	border-radius: 999px;
	margin: clamp(-1.75rem, -3vw, -2.5rem) auto 0;
	max-width: 1100px;
	position: relative;
	z-index: 2;
}

.tyt-destination-filters__tabs {
	align-items: stretch;
	display: flex;
	min-height: 64px;
}

.tyt-destination-filters__menu {
	flex: 1 1 150px;
	min-width: 0;
	position: static;
}

.tyt-destination-filters__menu + .tyt-destination-filters__menu { border-left: 1px solid var(--tyt-hairline); }

.tyt-destination-filters__tab {
	align-content: center;
	box-sizing: border-box;
	cursor: pointer;
	display: grid;
	grid-template-columns: 27px minmax(0, 1fr);
	column-gap: 0.7rem;
	height: 100%;
	list-style: none;
	padding: 0.7rem clamp(0.9rem, 2vw, 1.5rem);
	white-space: nowrap;
}

.tyt-destination-filters__tab::-webkit-details-marker,
.tyt-destination-filters__region > summary::-webkit-details-marker { display: none; }
.tyt-destination-filters__tab::marker,
.tyt-destination-filters__region > summary::marker { content: ''; }
.tyt-destination-filters__tab:focus-visible,
.tyt-destination-filters__region > summary:focus-visible { outline: 1px solid currentColor; outline-offset: -4px; }
.tyt-destination-filters__tab > .tyt-icon {
	align-self: center;
	grid-column: 1;
	grid-row: 1 / span 2;
	height: 27px;
	width: 27px;
}
.tyt-destination-filters__tab-name {
	font-family: var(--tyt-font-display);
	font-size: 1.05rem;
	grid-column: 2;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
}
.tyt-destination-filters__tab-value {
	color: var(--tyt-blog-ink-muted);
	display: block;
	font-family: var(--tyt-font-body);
	font-size: 0.78rem;
	grid-column: 2;
	letter-spacing: 0.01em;
	max-width: 8rem;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
}
.tyt-destination-filters__menu.is-filtered .tyt-destination-filters__tab-value {
	color: var(--wp--preset--color--contrast);
	font-weight: var(--tyt-weight-semibold);
}
.tyt-destination-filters__chevron { display: none; }

.tyt-destination-filters__panel {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--tyt-hairline);
	border-radius: 0 0 20px 20px;
	box-shadow: 0 16px 32px rgba(23, 23, 23, 0.12);
	box-sizing: border-box;
	left: 0;
	max-height: min(70vh, 710px);
	overflow-y: auto;
	padding: 1.4rem clamp(1rem, 3vw, 2rem) 1.6rem;
	position: absolute;
	top: calc(100% + 8px);
	width: min(640px, calc(100vw - 32px));
	z-index: 5;
}

.tyt-destination-filters__region > summary {
	align-items: center;
	cursor: pointer;
	display: flex;
	font-family: var(--tyt-font-display);
	font-size: 1.15rem;
	justify-content: space-between;
	list-style: none;
	padding: 0.55rem 0;
}

.tyt-destination-filters__region > summary .tyt-icon { height: 16px; width: 16px; }
.tyt-destination-filters__region[open] > summary .tyt-icon { transform: rotate(180deg); }
.tyt-destination-filters__options { display: flex; flex-wrap: wrap; gap: 0.7rem; padding: 0.7rem 0 1rem; }
.tyt-destination-filters__option { position: relative; }
.tyt-destination-filters__option input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.tyt-destination-filters__option span {
	border: 1px solid var(--tyt-hairline);
	border-radius: 999px;
	display: block;
	font-family: var(--tyt-font-body);
	font-size: 0.9rem;
	letter-spacing: 0.02em;
	padding: 0.55rem 0.95rem;
}
.tyt-destination-filters__option input:checked + span { background: var(--wp--preset--color--contrast); border-color: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }
.tyt-destination-filters__option input:focus-visible + span { outline: 1px solid currentColor; outline-offset: 3px; }
.tyt-destination-filters__option span:hover { border-color: var(--wp--preset--color--contrast); }

.tyt-destination-filters__field {
	align-items: center;
	display: flex;
	flex: 1 1 210px;
	min-width: 0;
	padding: 0.55rem clamp(0.9rem, 1.6vw, 1.4rem);
}

.tyt-destination-filters__search {
	box-sizing: border-box;
	border: 1px solid var(--tyt-hairline);
	border-radius: 999px;
	flex: 0 1 220px;
	gap: 0.55rem;
	margin: 0.45rem;
	padding: 0.45rem 1rem;
}

.tyt-destination-filters__search .tyt-icon {
	color: var(--tyt-blog-ink-muted);
	flex: 0 0 20px;
	height: 20px;
	width: 20px;
}

.tyt-destination-filters__search > label {
	height: 1px;
	overflow: hidden;
	position: absolute;
	width: 1px;
}

.tyt-destination-filters label {
	color: var(--tyt-blog-ink-muted);
	font-family: var(--tyt-font-body);
	font-size: 0.68rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.tyt-destination-filters input[type="search"] {
	appearance: none;
	background: transparent;
	border: 0;
	color: var(--wp--preset--color--contrast);
	font-family: var(--tyt-font-body);
	font-size: 0.92rem;
	margin: 0;
	max-width: 100%;
	padding: 0.1rem 0;
	text-overflow: ellipsis;
	width: 100%;
}

.tyt-destination-filters input[type="search"]::-webkit-search-cancel-button { display: none; }

.tyt-destination-filters__search:focus-within {
	outline: 1px solid currentColor;
	outline-offset: 2px;
}

.tyt-destination-filters select:focus-visible,
.tyt-destination-filters input:focus-visible { outline: 1px solid currentColor; outline-offset: 3px; }

.tyt-destination-filters__search input:focus-visible { outline: 0; }

.tyt-destination-filters__submit {
	align-items: center;
	background: var(--wp--preset--color--contrast);
	border: 0;
	border-radius: 999px;
	cursor: pointer;
	display: inline-flex;
	gap: 0.4rem;
	justify-content: center;
	margin: 0.4rem;
	min-width: 48px;
	padding: 0.7em 1.2em;
	font: inherit;
	font-size: 0.82rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--base);
}
.tyt-destination-filters__submit { flex: 0 0 48px; }
.tyt-destination-filters__submit span { display: none; }
.tyt-destination-filters__submit .tyt-icon { height: 18px; width: 18px; }

.tyt-destination-filters__submit:hover,
.tyt-destination-filters__submit:focus-visible { opacity: 0.85; }

.tyt-destination-section { margin-top: clamp(2.75rem, 5vw, 4.5rem); }

.tyt-destinations-page > .tyt-destination-filters + .tyt-section-rule {
	margin-top: clamp(3rem, 6vw, 5rem);
}

.tyt-destinations-page .tyt-destination-rail-block {
	margin-top: clamp(1.5rem, 3vw, 2.5rem) !important;
}

.tyt-destinations-page > .tyt-section-rule + .wp-block-query.is-style-tyt-rail .tyt-tour-card {
	border: 1px solid var(--tyt-hairline);
	border-radius: 0;
	overflow: hidden;
}

.tyt-destination-section__title {
	border-bottom: 1px solid var(--tyt-blog-rule, var(--tyt-hairline));
	font-family: var(--tyt-font-display);
	font-size: clamp(1.05rem, 1.3vw, 1.25rem);
	font-weight: var(--tyt-weight-semibold);
	letter-spacing: 0.12em;
	margin: 0 0 clamp(1.25rem, 2.5vw, 2rem);
	padding-bottom: 0.85rem;
	text-transform: uppercase;
}

.tyt-destination-country {
	align-items: flex-end;
	aspect-ratio: 4 / 3;
	display: flex;
	justify-content: center;
	overflow: hidden;
	padding: clamp(1rem, 2vw, 1.75rem);
	position: relative;
	text-decoration: none;
}

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

.tyt-destination-country:hover img,
.tyt-destination-country:focus-visible img { transform: scale(1.04); }

/* The name sits on the photograph, so it needs its own ground: a scrim, not a
   text shadow, keeps thin uppercase letterforms readable over any image. */
.tyt-destination-country::after {
	background: linear-gradient(180deg, rgba(23, 23, 23, 0) 35%, rgba(23, 23, 23, 0.62) 100%);
	content: '';
	inset: 0;
	position: absolute;
}

.tyt-destination-country__label {
	color: #fff;
	font-family: var(--tyt-font-display);
	font-size: clamp(1.15rem, 1.6vw, 1.5rem);
	letter-spacing: 0.12em;
	position: relative;
	text-align: center;
	text-transform: uppercase;
	z-index: 1;
}

/* Europe and Finland have no photograph in the library and no city to borrow
   one from. An ink card keeps the rail complete; an empty frame reads broken. */
.tyt-destination-country--plain {
	align-items: center;
	background: var(--wp--preset--color--contrast);
	justify-content: center;
}

.tyt-destination-country--plain::after { content: none; }
.tyt-destination-country--plain .tyt-destination-card__placeholder { display: none; }

/* A destination card inside a curated rail: the same overlay card the country
   rail uses, sized for the shared rail scroller. */
.tyt-destination-rail-block .tyt-static-rail__track { gap: clamp(1rem, 2vw, 1.5rem); }

.tyt-destination-rail-block .tyt-destination-country {
	flex: 0 0 clamp(16rem, 28vw, 26rem);
	aspect-ratio: 4 / 3;
	scroll-snap-align: start;
}

.tyt-destination-rail-block .tyt-destination-country__label small {
	display: block;
	font-size: 0.72em;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	opacity: 0.85;
}

.tyt-destination-grid {
	display: grid;
	gap: clamp(16px, 1.8vw, 26px);
	grid-template-columns: repeat(4, minmax(0, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}

.tyt-destination-card {
	color: inherit;
	display: block;
	text-decoration: none;
}

.tyt-destination-card img,
.tyt-destination-card__placeholder {
	aspect-ratio: 3 / 4;
	display: block;
	height: auto;
	object-fit: cover;
	width: 100%;
}

.tyt-destination-card__placeholder { background: var(--tyt-blog-surface-low); }

.tyt-destination-card__body {
	display: block;
	padding-top: 0.85rem;
}

.tyt-destination-card__name {
	display: block;
	font-family: var(--tyt-font-body);
	font-size: 0.95rem;
	font-weight: var(--tyt-weight-semibold);
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.tyt-destination-card__country {
	color: var(--tyt-blog-ink-muted);
	display: block;
	font-family: var(--tyt-font-body);
	font-size: 0.8rem;
	margin-top: 0.2rem;
}

.tyt-destination-card:hover .tyt-destination-card__name,
.tyt-destination-card:focus-visible .tyt-destination-card__name { text-decoration: underline; text-underline-offset: 0.25em; }

@media (max-width: 1100px) {
	.tyt-destination-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 781px) {
	.tyt-destination-filters {
		border-radius: 18px;
		margin-top: clamp(-1.25rem, -3vw, -1.75rem);
	}

	.tyt-destination-filters__tabs { flex-direction: column; }
	.tyt-destination-filters__menu { border-bottom: 1px solid var(--tyt-hairline); flex: 0 0 58px; }
	.tyt-destination-filters__menu + .tyt-destination-filters__menu { border-left: 0; }
	.tyt-destination-filters__tab { display: flex; }
	.tyt-destination-filters__tab > .tyt-icon { flex: 0 0 27px; }
	.tyt-destination-filters__tab-name { flex: 0 1 auto; }
	.tyt-destination-filters__menu.is-filtered .tyt-destination-filters__tab-value { flex: 0 1 auto; margin-inline-start: auto; max-width: none; }
	.tyt-destination-filters__search { border-left: 0; border-top: 1px solid var(--tyt-hairline); flex: 0 0 58px; }
	.tyt-destination-filters__submit { border-radius: 0 0 18px 0; flex: 0 0 48px; margin: 0; }
	.tyt-destination-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.tyt-tour-archive__count {
	margin-top: 1.25rem;
	text-align: center;
	font-size: 0.85rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	opacity: 0.7;
}
