/* YoMorocco brand tokens — pulled from the site's Elementor Global Kit */
:root {
	--yomo-primary-100: #FDF5F0;
	--yomo-primary-300: #F4CFB3;
	--yomo-primary-500: #E79557;
	--yomo-primary-700: #E07728;
	--yomo-primary-900: #C7661C;
	--yomo-gray-900: #232424;
	--yomo-gray-700: #464948;
	--yomo-gray-500: #7B807F;
	--yomo-gray-300: #AAADAC;
	--yomo-gray-100: #D9DBDA;
	--yomo-bg-main: #FBFCFB;
	--yomo-bg-variant: #E9EEEB;
	--yomo-terracotta: #DAA385;
	--yomo-border: #E2E2E2;
	--yomo-white: #FFFFFF;
	--yomo-heading-font: 'Bricolage Grotesque', sans-serif;
	--yomo-body-font: 'Open Sans', sans-serif;
}

.yomo-single-post {
	background: var(--yomo-bg-main);
}

/* ---------- Hero ---------- */
.yomo-post-hero {
	position: relative;
	width: 100%;
	min-height: 56vh;
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	background: linear-gradient(135deg, var(--yomo-primary-900), var(--yomo-primary-500));
}
.yomo-post-hero__media {
	position: absolute;
	inset: 0;
}
.yomo-post-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.yomo-post-hero__media--fallback {
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg, var(--yomo-primary-900), var(--yomo-primary-500));
}
.yomo-post-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(20, 15, 10, .85) 0%, rgba(20, 15, 10, .4) 45%, rgba(20, 15, 10, .05) 75%);
}
.yomo-post-hero__content {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: 900px;
	margin: 0 auto;
	padding: 60px 24px 48px;
	color: var(--yomo-white);
}
.yomo-eyebrow {
	display: inline-block;
	font-family: var(--yomo-heading-font);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 2.5px;
	text-transform: uppercase;
	color: var(--yomo-primary-300);
	text-decoration: none;
	background: rgba(255, 255, 255, .12);
	border: 1px solid rgba(255, 255, 255, .35);
	padding: 6px 14px;
	border-radius: 999px;
	margin-bottom: 18px;
}
.yomo-eyebrow:hover {
	color: var(--yomo-white);
	border-color: var(--yomo-white);
}
.yomo-post-title {
	font-family: var(--yomo-heading-font);
	font-weight: 600;
	font-size: clamp(30px, 5vw, 52px);
	line-height: 1.15;
	letter-spacing: -1px;
	color: var(--yomo-white) !important;
	margin: 0 0 18px;
}
.yomo-post-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	font-family: var(--yomo-body-font);
	font-size: 14px;
	color: rgba(255, 255, 255, .85);
}
.yomo-post-meta__dot {
	opacity: .6;
}

/* ---------- Body ---------- */
.yomo-post-body {
	max-width: 760px;
	margin: 0 auto;
	padding: 56px 24px 0;
}
.yomo-post-content {
	font-family: var(--yomo-body-font);
	font-size: 17px;
	line-height: 1.75;
	color: var(--yomo-gray-700);
}
.yomo-post-content > *:first-child {
	margin-top: 0;
}
.yomo-post-content p {
	margin: 0 0 22px;
}
.yomo-post-content h2 {
	font-family: var(--yomo-heading-font);
	font-size: clamp(24px, 3vw, 32px);
	font-weight: 600;
	letter-spacing: -.5px;
	line-height: 1.3;
	color: var(--yomo-gray-900);
	margin: 48px 0 18px;
}
.yomo-post-content h3 {
	font-family: var(--yomo-heading-font);
	font-size: clamp(20px, 2.4vw, 24px);
	font-weight: 600;
	letter-spacing: -.3px;
	color: var(--yomo-gray-900);
	margin: 36px 0 14px;
}
.yomo-post-content h4 {
	font-family: var(--yomo-heading-font);
	font-size: 19px;
	font-weight: 600;
	color: var(--yomo-gray-900);
	margin: 28px 0 12px;
}
.yomo-post-content a {
	color: var(--yomo-primary-700);
	text-decoration: underline;
	text-decoration-color: var(--yomo-primary-300);
	text-underline-offset: 2px;
}
.yomo-post-content a:hover {
	color: var(--yomo-primary-900);
}
.yomo-post-content strong,
.yomo-post-content b {
	color: var(--yomo-gray-900);
	font-weight: 700;
}
.yomo-post-content ul,
.yomo-post-content ol {
	margin: 0 0 22px;
	padding-left: 4px;
	list-style: none;
}
.yomo-post-content ul li,
.yomo-post-content ol li {
	position: relative;
	padding-left: 28px;
	margin-bottom: 10px;
}
.yomo-post-content ul li::before {
	content: '';
	position: absolute;
	left: 4px;
	top: 10px;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--yomo-primary-700);
}
.yomo-post-content ol {
	counter-reset: yomo-ol;
}
.yomo-post-content ol li {
	counter-increment: yomo-ol;
}
.yomo-post-content ol li::before {
	content: counter(yomo-ol);
	left: 0;
	top: 0;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--yomo-primary-100);
	color: var(--yomo-primary-900);
	font-size: 12px;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
}
.yomo-post-content blockquote {
	margin: 32px 0;
	padding: 20px 24px;
	background: var(--yomo-primary-100);
	border-left: 4px solid var(--yomo-primary-700);
	border-radius: 4px;
	font-style: italic;
	color: var(--yomo-gray-900);
}
.yomo-post-content img {
	width: 100%;
	height: auto;
	border-radius: 16px;
	margin: 12px 0 32px;
	display: block;
	box-shadow: 0 12px 32px rgba(35, 36, 36, .12);
}
.yomo-post-content figure {
	margin: 32px 0;
}
.yomo-post-content figcaption {
	font-size: 13px;
	color: var(--yomo-gray-500);
	text-align: center;
	margin-top: 10px;
}
.yomo-post-content hr {
	border: none;
	border-top: 1px solid var(--yomo-border);
	margin: 40px 0;
}
.yomo-page-links {
	font-family: var(--yomo-body-font);
	margin: 24px 0;
}

/* ---------- Tags ---------- */
.yomo-post-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 12px 0 40px;
	padding-top: 28px;
	border-top: 1px solid var(--yomo-border);
}
.yomo-post-tags a {
	font-family: var(--yomo-body-font);
	font-size: 13px;
	font-weight: 600;
	color: var(--yomo-primary-900);
	background: var(--yomo-primary-100);
	border: 1px solid var(--yomo-primary-300);
	padding: 6px 14px;
	border-radius: 999px;
	text-decoration: none;
}
.yomo-post-tags a:hover {
	background: var(--yomo-primary-300);
}

/* ---------- CTA ---------- */
.yomo-post-cta {
	margin: 48px 0;
	border-radius: 24px;
	background: linear-gradient(135deg, var(--yomo-primary-900), var(--yomo-primary-700));
	padding: 48px 40px;
	text-align: center;
}
.yomo-post-cta__inner h3 {
	font-family: var(--yomo-heading-font);
	font-size: clamp(22px, 3vw, 30px);
	font-weight: 600;
	color: var(--yomo-white);
	margin: 0 0 12px;
}
.yomo-post-cta__inner p {
	font-family: var(--yomo-body-font);
	color: rgba(255, 255, 255, .9);
	max-width: 480px;
	margin: 0 auto 24px;
}
.yomo-post-cta__inner .yomo-post-cta__button {
	display: inline-block;
	font-family: var(--yomo-heading-font);
	font-weight: 700;
	font-size: 15px;
	color: var(--yomo-primary-900);
	background: var(--yomo-white);
	padding: 14px 32px;
	border-radius: 8px;
	text-decoration: none;
	letter-spacing: -.2px;
	transition: transform .15s ease;
}
.yomo-post-cta__inner .yomo-post-cta__button:hover {
	transform: translateY(-2px);
}

/* ---------- Feature grid / feature card ---------- */
/* Generic reusable card (title + description + optional image) for tours,
   landing pages, and blog posts alike -- built fresh against the theme's
   own --yomo-primary-* tokens rather than the hardcoded hex palette used
   by the older, WPCode-snippet-only .yomo-hl-item tour-highlight styling. */
.yomo-feature-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 16px;
	margin: 32px 0;
}
.yomo-feature-card {
	background: var(--yomo-primary-100);
	border: 1px solid var(--yomo-primary-300);
	border-radius: 12px;
	padding: 20px;
}
.yomo-feature-card__image {
	width: 56px;
	height: 56px;
	object-fit: cover;
	border-radius: 10px;
	margin-bottom: 14px;
	display: block;
}
.yomo-feature-card__title {
	font-family: var(--yomo-heading-font);
	font-size: 16px;
	font-weight: 600;
	color: var(--yomo-gray-900);
	margin: 0 0 6px;
}
.yomo-feature-card__description {
	font-family: var(--yomo-body-font);
	font-size: 14px;
	line-height: 1.6;
	color: var(--yomo-gray-700);
	margin: 0;
}
@media (max-width: 600px) {
	.yomo-feature-grid {
		grid-template-columns: 1fr;
	}
}

/* ---------- Hero block (yomo/hero) ---------- */
/* Same visual language as .yomo-post-hero (full-bleed image, dark overlay,
   white text) but standalone -- .yomo-post-hero is blog-specific, applied
   automatically from the post's featured image/title/meta, not a block a
   page author places. This is a generic, composable hero for any page,
   with a gradient fallback so it still looks intentional with no photo. */
.yomo-hero {
	position: relative;
	width: 100%;
	min-height: 46vh;
	display: flex;
	align-items: center;
	overflow: hidden;
	border-radius: 16px;
	background: linear-gradient(135deg, var(--yomo-primary-900), var(--yomo-primary-500));
}
.yomo-hero__media {
	position: absolute;
	inset: 0;
}
.yomo-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.yomo-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient( to top, rgba(20, 15, 10, .8) 0%, rgba(20, 15, 10, .35) 50%, rgba(20, 15, 10, .05) 80% );
}
.yomo-hero__content {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: 700px;
	margin: 0 auto;
	padding: 56px 24px;
	text-align: center;
	color: var(--yomo-white);
}
.yomo-hero__eyebrow {
	display: inline-block;
	font-family: var(--yomo-heading-font);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 2.5px;
	text-transform: uppercase;
	color: var(--yomo-primary-300);
	background: rgba(255, 255, 255, .12);
	border: 1px solid rgba(255, 255, 255, .35);
	padding: 6px 14px;
	border-radius: 999px;
	margin-bottom: 18px;
}
.yomo-hero__heading {
	font-family: var(--yomo-heading-font);
	font-weight: 600;
	font-size: clamp(28px, 5vw, 46px);
	line-height: 1.15;
	letter-spacing: -1px;
	color: var(--yomo-white) !important;
	margin: 0 0 16px;
}
.yomo-hero__subtext {
	font-family: var(--yomo-body-font);
	font-size: 17px;
	line-height: 1.6;
	color: rgba(255, 255, 255, .9);
	max-width: 520px;
	margin: 0 auto 24px;
}
.yomo-hero__content .yomo-hero__button {
	display: inline-block;
	font-family: var(--yomo-heading-font);
	font-weight: 700;
	font-size: 15px;
	color: var(--yomo-primary-900);
	background: var(--yomo-white);
	padding: 14px 32px;
	border-radius: 8px;
	text-decoration: none;
	letter-spacing: -.2px;
	transition: transform .15s ease;
}
.yomo-hero__content .yomo-hero__button:hover {
	transform: translateY(-2px);
}
@media (max-width: 600px) {
	.yomo-hero {
		min-height: 40vh;
		border-radius: 0;
	}
	.yomo-hero__content {
		padding: 40px 20px;
	}
}

/* ---------- Related posts ---------- */
.yomo-related-posts {
	margin: 56px 0 64px;
}
.yomo-related-posts__title {
	font-family: var(--yomo-heading-font) !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	letter-spacing: 1.5px !important;
	text-transform: uppercase !important;
	color: var(--yomo-gray-500) !important;
	margin: 0 0 20px !important;
	line-height: 1.4 !important;
}
.yomo-related-posts__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}
.yomo-related-card {
	display: block;
	text-decoration: none;
	border-radius: 16px;
	overflow: hidden;
	background: var(--yomo-white);
	border: 1px solid var(--yomo-border);
	transition: box-shadow .2s ease, transform .2s ease;
}
.yomo-related-card:hover {
	box-shadow: 0 16px 32px rgba(35, 36, 36, .1);
	transform: translateY(-3px);
}
.yomo-related-card__media {
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--yomo-primary-100);
}
.yomo-related-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.yomo-related-card__media--fallback {
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, var(--yomo-primary-300), var(--yomo-primary-500));
}
.yomo-related-card__body {
	padding: 16px 18px 20px;
}
.yomo-eyebrow--small {
	font-size: 11px;
	padding: 4px 10px;
	background: var(--yomo-primary-100);
	border-color: var(--yomo-primary-300);
	color: var(--yomo-primary-900);
}
.yomo-related-card__body h3 {
	font-family: var(--yomo-heading-font);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--yomo-gray-900);
	margin: 10px 0 0;
}

/* ---------- Comments ---------- */
.yomo-comments-wrap {
	max-width: 760px;
	margin: 0 auto;
	padding: 0 24px 64px;
}
.yomo-comments-wrap .comments-area {
	border-top: 1px solid var(--yomo-border);
	padding-top: 40px;
}
.yomo-comments-wrap #comments .title-comments,
.yomo-comments-wrap #reply-title {
	font-family: var(--yomo-heading-font);
	font-size: 24px;
	font-weight: 600;
	color: var(--yomo-gray-900);
	margin: 0 0 24px;
}
.yomo-comments-wrap .comment-form label {
	display: block;
	font-family: var(--yomo-body-font);
	font-size: 13px;
	font-weight: 600;
	color: var(--yomo-gray-700);
	margin-bottom: 6px;
}
.yomo-comments-wrap .comment-form p {
	margin-bottom: 18px;
}
.yomo-comments-wrap .comment-form input[type="text"],
.yomo-comments-wrap .comment-form input[type="email"],
.yomo-comments-wrap .comment-form input[type="url"],
.yomo-comments-wrap .comment-form textarea {
	width: 100%;
	font-family: var(--yomo-body-font);
	font-size: 15px;
	padding: 12px 16px;
	border: 1px solid var(--yomo-border);
	border-radius: 8px;
	background: var(--yomo-white);
	color: var(--yomo-gray-900);
	transition: border-color .15s ease;
	box-sizing: border-box;
}
.yomo-comments-wrap .comment-form input:focus,
.yomo-comments-wrap .comment-form textarea:focus {
	outline: none;
	border-color: var(--yomo-primary-700);
}
.yomo-comments-wrap .comment-form #submit {
	font-family: var(--yomo-heading-font);
	font-weight: 700;
	font-size: 15px;
	color: var(--yomo-white);
	background: var(--yomo-primary-700);
	border: none;
	padding: 14px 32px;
	border-radius: 8px;
	cursor: pointer;
	transition: background .15s ease;
}
.yomo-comments-wrap .comment-form #submit:hover {
	background: var(--yomo-primary-900);
}

/* ---------- Category / tag archive ---------- */
.yomo-archive-hero {
	background: linear-gradient(135deg, var(--yomo-primary-900), var(--yomo-primary-700));
	padding: 64px 24px 56px;
	text-align: center;
}
.yomo-archive-hero .yomo-eyebrow {
	margin-bottom: 16px;
}
.yomo-archive-title {
	font-family: var(--yomo-heading-font) !important;
	font-size: clamp(32px, 5vw, 48px) !important;
	font-weight: 600 !important;
	letter-spacing: -1px !important;
	line-height: 1.15 !important;
	color: var(--yomo-white) !important;
	margin: 0 0 12px !important;
}
.yomo-archive-description {
	font-family: var(--yomo-body-font);
	font-size: 16px;
	line-height: 1.6;
	color: rgba(255, 255, 255, .85);
	max-width: 620px;
	margin: 0 auto 12px;
}
.yomo-archive-count {
	font-family: var(--yomo-body-font);
	font-size: 14px;
	color: rgba(255, 255, 255, .7);
	margin: 0;
}

.yomo-archive-body {
	max-width: 1140px;
	margin: 0 auto;
	padding: 56px 24px 80px;
}
.yomo-archive-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
}
.yomo-archive-card {
	display: block;
	text-decoration: none;
	background: var(--yomo-white);
	border: 1px solid var(--yomo-border);
	border-radius: 16px;
	overflow: hidden;
	transition: box-shadow .2s ease, transform .2s ease;
}
.yomo-archive-card:hover {
	box-shadow: 0 16px 32px rgba(35, 36, 36, .1);
	transform: translateY(-3px);
}
.yomo-archive-card__media {
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--yomo-primary-100);
}
.yomo-archive-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.yomo-archive-card__media--fallback {
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, var(--yomo-primary-300), var(--yomo-primary-500));
}
.yomo-archive-card__body {
	padding: 20px 22px 24px;
}
.yomo-archive-card__body h2 {
	font-family: var(--yomo-heading-font) !important;
	font-size: 19px !important;
	font-weight: 600 !important;
	line-height: 1.4 !important;
	letter-spacing: -.3px !important;
	color: var(--yomo-gray-900) !important;
	margin: 10px 0 10px !important;
}
.yomo-archive-card__body p {
	font-family: var(--yomo-body-font);
	font-size: 14px;
	line-height: 1.6;
	color: var(--yomo-gray-500);
	margin: 0 0 14px;
}
.yomo-archive-card__meta {
	font-family: var(--yomo-body-font);
	font-size: 12.5px;
	color: var(--yomo-gray-500);
	display: flex;
	align-items: center;
	gap: 6px;
}

.yomo-archive-pagination {
	display: flex;
	justify-content: center;
	gap: 8px;
	margin-top: 48px;
	flex-wrap: wrap;
}
.yomo-archive-pagination__item a,
.yomo-archive-pagination__item span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 14px;
	font-family: var(--yomo-body-font);
	font-size: 14px;
	font-weight: 600;
	border-radius: 8px;
	border: 1px solid var(--yomo-border);
	color: var(--yomo-gray-700);
	text-decoration: none;
}
.yomo-archive-pagination__item .current {
	background: var(--yomo-primary-700);
	border-color: var(--yomo-primary-700);
	color: var(--yomo-white);
}
.yomo-archive-pagination__item a:hover {
	border-color: var(--yomo-primary-700);
	color: var(--yomo-primary-700);
}

.yomo-archive-empty {
	text-align: center;
	font-family: var(--yomo-body-font);
	color: var(--yomo-gray-500);
	padding: 60px 0;
}

@media (max-width: 992px) {
	.yomo-archive-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (max-width: 600px) {
	.yomo-archive-grid {
		grid-template-columns: 1fr;
	}
	.yomo-archive-hero {
		padding: 48px 20px 40px;
	}
}

/* ---------- Product taxonomy archives (location / category / tag) ---------- */
.yomo-tax-quick-facts {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0;
	width: fit-content;
	margin: 28px auto 0;
	max-width: 640px;
	background: rgba(255, 255, 255, .1);
	border: 1px solid rgba(255, 255, 255, .25);
	border-radius: 12px;
	overflow: hidden;
}
.yomo-tax-fact {
	flex: 1 1 0;
	min-width: 110px;
	padding: 14px 12px;
	text-align: center;
	border-right: 1px solid rgba(255, 255, 255, .2);
}
.yomo-tax-fact:last-child {
	border-right: none;
}
.yomo-tax-fact-label {
	display: block;
	font-family: var(--yomo-body-font);
	font-size: 10.5px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .6px;
	color: rgba(255, 255, 255, .65);
	margin-bottom: 4px;
}
.yomo-tax-fact-value {
	display: block;
	font-family: var(--yomo-heading-font);
	font-size: 15px;
	font-weight: 600;
	color: var(--yomo-white);
}

.yomo-archive-intro {
	max-width: 760px;
	margin: 0 auto 40px;
}

.yomo-tax-listing {
	max-width: 1140px;
	margin: 0 auto;
}

/* Tour-card CTA ("View the Tour") — shared by every WooTours grid/table/list
   card sitewide (archives, shop, widgets). Three competing plugin
   stylesheets (layout.css, style.css, custom.css.php's dynamic wt_main_color
   rule) fight over this button's color; targeting all three of its own
   classes together outweighs each of them so this is the version that wins.
   It also needs `display` forced here: on the Related Tours grid specifically
   (content-layout-ct-1.php's .wt-grid-shortcode.gr-classic cards) something
   in the plugin's own CSS cascade sets this button to display:none — the
   button is in the DOM with the right text and href, just invisible. Rather
   than chase which of several plugin stylesheets wins that fight, force it
   visible here the same way color/background is already forced above. */
.exwt-btn.exwt-btn-default.we-button {
	display: inline-block !important;
	background: var(--yomo-primary-700) !important;
	color: var(--yomo-white) !important;
	border: none !important;
	font-style: normal !important;
	font-weight: 700 !important;
	letter-spacing: .5px;
	border-radius: 6px !important;
	box-shadow: none !important;
	transition: background .2s ease, transform .15s ease, box-shadow .2s ease;
}
.exwt-btn.exwt-btn-default.we-button:hover,
.exwt-btn.exwt-btn-default.we-button:focus {
	background: var(--yomo-primary-900) !important;
	color: var(--yomo-white) !important;
	transform: translateY(-1px);
	box-shadow: 0 8px 18px rgba(199, 102, 28, .3) !important;
}

/* WPCode 1259's sticky "Plan This Tour" bar (#yomo-sticky-bar) and the
   currency toggle (#yomo-currency-toggle, injected by currency-toggle.js)
   both fix themselves to the bottom-right on single-product pages and
   collide once the sticky bar becomes visible on scroll. Shift the
   currency toggle up only while the bar is showing, using :has() rather
   than JS coordination between two independently-authored features. */
body.single-product:has(#yomo-sticky-bar.yomo-sb-visible) #yomo-currency-toggle {
	bottom: 92px !important;
	transition: bottom .2s ease;
}
@media (max-width: 600px) {
	body.single-product:has(#yomo-sticky-bar.yomo-sb-visible) #yomo-currency-toggle {
		bottom: 76px !important;
	}
}

/* ---------- Contact page (/contact/) — trust bar, service-inclusions
   grid, WhatsApp card, testimonials. Injected as two Elementor "html"
   widgets around the FormCraft form; Elementor strips <style> tags from
   raw-HTML widget content at full-page render even though the widget's
   own render_content() doesn't, so this lives here instead — same
   warm/amber palette as the single tour pages and /plan/, since Contact
   is part of that same booking-intent flow, not the editorial/browse one. */
.yct-page, .yct-page2 {
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	color: #1A1410;
}
.yct-page *, .yct-page2 * {
	box-sizing: border-box;
}
.yct-trust-bar {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0;
	margin: 8px auto 44px;
	max-width: 560px;
	border: 1px solid rgba(193, 127, 36, .25);
	border-radius: 10px;
	overflow: hidden;
	background: #FFFDF9;
}
.yct-stat {
	flex: 1 1 0;
	min-width: 120px;
	padding: 16px 14px;
	text-align: center;
	border-right: 1px solid rgba(193, 127, 36, .18);
}
.yct-stat:last-child {
	border-right: none;
}
.yct-stat-n {
	display: block;
	font-family: Georgia, 'Times New Roman', serif;
	font-size: 24px;
	color: #C17F24;
	line-height: 1;
}
.yct-stat-l {
	display: block;
	font-size: 10.5px;
	color: #9C8B78;
	text-transform: uppercase;
	letter-spacing: .6px;
	margin-top: 5px;
}
.yct-included {
	margin: 0 0 40px;
}
.yct-included-head {
	text-align: center;
	margin-bottom: 26px;
}
.yct-eyebrow {
	display: inline-block;
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 1.2px;
	color: #C17F24;
	margin-bottom: 8px;
}
.yct-included-head h3 {
	font-family: Georgia, 'Times New Roman', serif;
	font-weight: 400;
	font-size: 24px;
	color: #1A1410;
	margin: 0;
}
.yct-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}
.yct-card {
	background: #FFFDF9;
	border: 1px solid rgba(193, 127, 36, .16);
	border-radius: 10px;
	padding: 20px;
	display: flex;
	align-items: flex-start;
	gap: 12px;
}
.yct-card-icon {
	width: 38px;
	height: 38px;
	min-width: 38px;
	background: #FDF3E3;
	border-radius: 8px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.yct-card-icon i {
	font-size: 17px;
	color: #C17F24;
}
.yct-card-body strong {
	display: block;
	font-size: 14.5px;
	font-weight: 600;
	color: #1A1410;
	margin-bottom: 3px;
	line-height: 1.35;
}
.yct-card-body span {
	font-size: 13px;
	color: #5C4A35;
	line-height: 1.55;
	display: block;
}
.yct-mini {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	flex-wrap: wrap;
	padding: 11px 16px;
	background: #FDF3E3;
	border: 1px solid rgba(193, 127, 36, .18);
	border-radius: 8px;
	max-width: 520px;
	margin: 0 auto;
	font-size: 12.5px;
	color: #5C4A35;
}
.yct-mini b {
	color: #1A1410;
}
.yct-mini-sep {
	color: #D8C7AD;
}
.yct-wa {
	max-width: 640px;
	margin: 40px auto 0;
	background: #F0FDF4;
	border: 2px solid #86EFAC;
	border-radius: 12px;
	padding: 20px 24px;
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
}
.yct-wa-orb {
	width: 46px;
	height: 46px;
	min-width: 46px;
	background: #25D366;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
}
.yct-wa-orb i {
	font-size: 22px;
	color: #fff;
}
.yct-wa-copy {
	flex: 1;
	min-width: 180px;
}
.yct-wa-copy strong {
	display: block;
	font-size: 15.5px;
	font-weight: 600;
	color: #14532D;
	margin-bottom: 2px;
}
.yct-wa-copy span {
	font-size: 13px;
	color: #166534;
}
.yct-wa-btn {
	background: #25D366;
	color: #fff !important;
	border: none;
	border-radius: 8px;
	padding: 12px 22px;
	font-size: 14px;
	font-weight: 600;
	font-family: inherit;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	text-decoration: none !important;
	white-space: nowrap;
}
.yct-wa-btn:hover {
	background: #1EBE5A;
}
.yct-wa-btn i {
	font-size: 15px;
	color: #fff;
}
.yct-reviews-head {
	text-align: center;
	margin: 52px auto 22px;
}
.yct-reviews-head .yct-eyebrow {
	display: block;
}
.yct-reviews-head h3 {
	font-family: Georgia, 'Times New Roman', serif;
	font-weight: 400;
	font-size: 22px;
	color: #1A1410;
	margin: 0;
}
.yct-reviews {
	max-width: 900px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}
.yct-review {
	background: #FDF3E3;
	border: 1px solid rgba(193, 127, 36, .18);
	border-radius: 10px;
	padding: 18px 20px;
}
.yct-rev-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 8px;
}
.yct-rev-stars {
	color: #C17F24;
	font-size: 14px;
	letter-spacing: 1px;
}
.yct-rev-flag {
	font-size: 18px;
}
.yct-rev-bold {
	font-size: 14.5px;
	font-weight: 600;
	color: #1A1410;
	margin-bottom: 6px;
	line-height: 1.4;
}
.yct-rev-text {
	font-size: 13.5px;
	color: #3D3028;
	line-height: 1.65;
	font-style: italic;
	margin-bottom: 8px;
}
.yct-rev-author {
	font-size: 11.5px;
	color: #9C8B78;
	font-weight: 500;
}
.yct-foot {
	max-width: 640px;
	margin: 36px auto 0;
	text-align: center;
	font-size: 12.5px;
	color: #9C8B78;
	line-height: 1.7;
}
@media (max-width: 900px) {
	.yct-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (max-width: 700px) {
	.yct-reviews {
		grid-template-columns: 1fr;
	}
	.yct-wa {
		justify-content: center;
		text-align: center;
	}
	.yct-wa-btn {
		width: 100%;
		justify-content: center;
	}
}
@media (max-width: 600px) {
	.yct-grid {
		grid-template-columns: 1fr;
	}
	.yct-stat {
		min-width: 33%;
		padding: 14px 8px;
	}
	.yct-stat-n {
		font-size: 20px;
	}
	.yct-included-head h3 {
		font-size: 20px;
	}
	.yct-mini {
		flex-direction: column;
		gap: 6px;
	}
	.yct-mini-sep {
		display: none;
	}
}

/* FAQ block (archive pages only — namespaced so it can't collide with the
   sitewide .yomo-faq-item rules the "Tour Pages" WPCode snippet loads on
   every page for single product pages) */
.yomo-tax-faq {
	max-width: 760px;
	margin: 56px auto 0;
	padding-top: 40px;
	border-top: 1px solid var(--yomo-border);
}
.yomo-section-title {
	font-family: var(--yomo-heading-font) !important;
	font-size: clamp(22px, 3vw, 28px) !important;
	font-weight: 600 !important;
	color: var(--yomo-gray-900) !important;
	margin: 0 0 20px !important;
}
.yomo-tax-faq-item {
	border-bottom: 1px solid var(--yomo-border);
	padding: 18px 0;
}
.yomo-tax-faq-item:last-child {
	border-bottom: none;
}
.yomo-tax-faq-q {
	font-family: var(--yomo-heading-font);
	font-size: 16px;
	font-weight: 600;
	color: var(--yomo-gray-900);
	margin-bottom: 8px;
}
.yomo-tax-faq-a {
	font-family: var(--yomo-body-font);
	font-size: 15px;
	line-height: 1.7;
	color: var(--yomo-gray-700);
}

/* Cross-links between location / category / tag archives */
.yomo-archive-crosslinks {
	max-width: 760px;
	margin: 32px auto 0;
}
.yomo-archive-crosslinks__label {
	display: block;
	font-family: var(--yomo-heading-font);
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1px;
	color: var(--yomo-gray-500);
	margin-bottom: 10px;
}
.yomo-archive-crosslinks .yomo-post-tags {
	margin: 0 0 8px;
	padding-top: 0;
	border-top: none;
}

@media (max-width: 600px) {
	.yomo-tax-quick-facts {
		max-width: 320px;
	}
	.yomo-tax-fact {
		min-width: 45%;
	}
	.yomo-tax-fact:nth-child(2) {
		border-right: none;
	}
}

/* ---------- Tour carousel (yomo/tour-carousel) ---------- */
/* CSS scroll-snap instead of a JS slider library -- swipeable on touch,
   scrollable with a trackpad/wheel on desktop, no bundler or JS
   dependency to maintain, consistent with this theme's other blocks. */
.yomo-tour-carousel {
	margin: 32px 0;
}
.yomo-tour-carousel__heading {
	font-family: var(--yomo-heading-font);
	margin: 0 0 16px;
}
.yomo-tour-carousel__track {
	display: flex;
	gap: 16px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	padding-bottom: 12px;
	-webkit-overflow-scrolling: touch;
}
.yomo-tour-carousel__card {
	flex: 0 0 260px;
	scroll-snap-align: start;
	background: var(--yomo-primary-100);
	border: 1px solid var(--yomo-primary-300);
	border-radius: 12px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}
.yomo-tour-carousel__image {
	width: 100%;
	height: 150px;
}
.yomo-tour-carousel__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.yomo-tour-carousel__body {
	padding: 16px;
	display: flex;
	flex-direction: column;
	flex-grow: 1;
}
.yomo-tour-carousel__duration {
	display: inline-block;
	font-family: var(--yomo-heading-font);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: var(--yomo-primary-900);
	background: var(--yomo-primary-300);
	padding: 3px 10px;
	border-radius: 999px;
	margin-bottom: 10px;
	align-self: flex-start;
}
.yomo-tour-carousel__card .yomo-tour-carousel__title {
	font-family: var(--yomo-heading-font);
	font-size: 15px;
	font-weight: 600;
	color: var(--yomo-gray-900);
	margin: 0 0 8px;
	line-height: 1.35;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	overflow: hidden;
}
.yomo-tour-carousel__price {
	font-family: var(--yomo-body-font);
	font-size: 14px;
	color: var(--yomo-gray-700);
	margin-bottom: 14px;
}
.yomo-tour-carousel__card .yomo-tour-carousel__cta {
	display: inline-block;
	font-family: var(--yomo-heading-font);
	font-weight: 700;
	font-size: 14px;
	color: var(--yomo-primary-900);
	background: var(--yomo-white);
	border: 1px solid var(--yomo-primary-300);
	padding: 10px 18px;
	border-radius: 8px;
	text-decoration: none;
	text-align: center;
	margin-top: auto;
	transition: transform .15s ease;
}
.yomo-tour-carousel__card .yomo-tour-carousel__cta:hover {
	transform: translateY(-2px);
}

/* ---------- Testimonial grid / testimonial (Tier 2) ---------- */
.yomo-testimonial-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 16px;
	margin: 32px 0;
}
.yomo-testimonial {
	background: var(--yomo-white);
	border: 1px solid var(--yomo-primary-300);
	border-radius: 12px;
	padding: 24px;
}
.yomo-testimonial__image {
	width: 48px;
	height: 48px;
	object-fit: cover;
	border-radius: 999px;
	display: block;
	margin-bottom: 12px;
}
.yomo-testimonial__quote {
	font-family: var(--yomo-body-font);
	font-size: 15px;
	line-height: 1.6;
	color: var(--yomo-gray-900);
	font-style: italic;
	margin: 0 0 14px;
}
.yomo-testimonial__name {
	font-family: var(--yomo-heading-font);
	font-size: 14px;
	font-weight: 700;
	color: var(--yomo-primary-900);
}
.yomo-testimonial__context {
	font-family: var(--yomo-body-font);
	font-size: 13px;
	color: var(--yomo-gray-700);
	margin-top: 2px;
}
@media (max-width: 600px) {
	.yomo-testimonial-grid {
		grid-template-columns: 1fr;
	}
}

/* ---------- Tour callout (Tier 2, blog-specific) ---------- */
.yomo-tour-callout {
	display: flex;
	gap: 16px;
	align-items: center;
	background: var(--yomo-primary-100);
	border: 1px solid var(--yomo-primary-300);
	border-radius: 12px;
	padding: 16px;
	margin: 28px 0;
}
.yomo-tour-callout__image {
	flex: 0 0 90px;
	width: 90px;
	height: 90px;
	border-radius: 8px;
	overflow: hidden;
}
.yomo-tour-callout__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.yomo-tour-callout__body {
	flex: 1 1 auto;
	min-width: 0;
}
.yomo-tour-callout__label {
	display: block;
	font-family: var(--yomo-heading-font);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: var(--yomo-primary-900);
	margin-bottom: 4px;
}
.yomo-tour-callout__title {
	font-family: var(--yomo-heading-font);
	font-size: 16px;
	font-weight: 600;
	color: var(--yomo-gray-900);
	margin-bottom: 4px;
}
.yomo-tour-callout__meta {
	font-family: var(--yomo-body-font);
	font-size: 13px;
	color: var(--yomo-gray-700);
	margin-bottom: 10px;
}
.yomo-tour-callout .yomo-tour-callout__cta {
	display: inline-block;
	font-family: var(--yomo-heading-font);
	font-weight: 700;
	font-size: 13px;
	color: var(--yomo-primary-900);
	background: var(--yomo-white);
	border: 1px solid var(--yomo-primary-300);
	padding: 8px 16px;
	border-radius: 8px;
	text-decoration: none;
	transition: transform .15s ease;
}
.yomo-tour-callout .yomo-tour-callout__cta:hover {
	transform: translateY(-2px);
}
@media (max-width: 600px) {
	.yomo-tour-callout {
		flex-direction: column;
		align-items: flex-start;
	}
	.yomo-tour-callout__image {
		width: 100%;
		height: 140px;
	}
}

/* ---------- Responsive ---------- */
/* ---------- Tour days (Tier 3) ---------- */
/* Fresh class names, not the legacy .yomo-day*: an existing tour's inline
   CSS revealed at least 3 incompatible accordion implementations layered
   over each other across different tours (plain onclick divs, a
   data-yomo attribute variant, and a native <details> variant), each
   depending on a different WPCode-snippet-managed script. Native
   <details>/<summary> here needs no JS and nothing to collide with. */
.yomo-tour-days {
	counter-reset: yomo-day;
	margin: 32px 0;
}
.yomo-tour-day {
	counter-increment: yomo-day;
	border: 1px solid var(--yomo-primary-300);
	border-radius: 12px;
	margin-bottom: 12px;
	overflow: hidden;
}
.yomo-tour-day > .yomo-tour-day__summary {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 16px 20px;
	background: var(--yomo-primary-100);
	cursor: pointer;
	list-style: none;
}
.yomo-tour-day > .yomo-tour-day__summary::-webkit-details-marker {
	display: none;
}
.yomo-tour-day > .yomo-tour-day__summary::after {
	content: '\25BE';
	margin-left: auto;
	color: var(--yomo-primary-900);
	transition: transform .15s ease;
	flex-shrink: 0;
}
.yomo-tour-day[open] > .yomo-tour-day__summary::after {
	transform: rotate(180deg);
}
.yomo-tour-day__number {
	flex-shrink: 0;
	width: 32px;
	height: 32px;
	border-radius: 999px;
	background: var(--yomo-primary-700);
	color: var(--yomo-white);
	font-family: var(--yomo-heading-font);
	font-weight: 700;
	font-size: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.yomo-tour-day__number::before {
	content: counter(yomo-day);
}
.yomo-tour-day__meta {
	flex: 1 1 auto;
	min-width: 0;
}
.yomo-tour-day__route {
	display: block;
	font-family: var(--yomo-heading-font);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--yomo-primary-900);
	margin-bottom: 2px;
}
.yomo-tour-day__title {
	display: block;
	font-family: var(--yomo-heading-font);
	font-size: 15px;
	font-weight: 600;
	color: var(--yomo-gray-900);
}
.yomo-tour-day__night {
	flex-shrink: 0;
	font-family: var(--yomo-body-font);
	font-size: 12px;
	color: var(--yomo-gray-700);
	white-space: nowrap;
}
.yomo-tour-day__body {
	padding: 16px 20px;
	font-family: var(--yomo-body-font);
}
.yomo-tour-day__body p {
	font-size: 14px;
	line-height: 1.65;
	color: var(--yomo-gray-700);
	margin: 0;
}

/* ---------- Route map (Tier 3) ---------- */
/* New class names (.yomo-route-map*), not .yomo-map-wrap: the iframe is
   rendered directly server-side here, not injected by the dormant
   WPCode-1303 JS that .yomo-map-wrap normally depends on, and some tours
   already define .yomo-map-wrap in their own inline <style>. */
.yomo-route-map {
	margin: 28px 0;
}
.yomo-route-map__heading {
	font-family: var(--yomo-heading-font);
	font-size: 18px;
	font-weight: 600;
	color: var(--yomo-gray-900);
	margin: 0 0 12px;
}
.yomo-route-map__frame-wrap {
	width: 100%;
	border-radius: 12px;
	overflow: hidden;
	border: 1px solid var(--yomo-primary-300);
	background: var(--yomo-primary-100);
}
.yomo-route-map__frame-wrap iframe {
	width: 100%;
	height: 420px;
	border: 0;
	display: block;
}

/* ---------- Responsive ---------- */
@media (max-width: 782px) {
	.yomo-post-hero {
		min-height: 42vh;
	}
	.yomo-related-posts__grid {
		grid-template-columns: 1fr;
	}
	.yomo-post-body {
		padding-top: 36px;
	}
	.yomo-post-cta {
		padding: 32px 24px;
	}
	.yomo-tour-carousel__card {
		flex-basis: 220px;
	}
	.yomo-tour-carousel__card .yomo-tour-carousel__title {
		font-size: 13px;
	}
	.yomo-tour-day > .yomo-tour-day__summary {
		flex-wrap: wrap;
		padding: 14px 16px;
	}
	.yomo-tour-day__night {
		margin-left: 46px;
	}
	.yomo-route-map__frame-wrap iframe {
		height: 320px;
	}
}
