/*
Theme Name: unpackedindia
Theme URI: http://localhost/unpackedindia/
Author: unpackedindia
Author URI: http://localhost/unpackedindia/
Description: A clean, blank starter theme for unpackedindia. Built from scratch as a lightweight foundation for custom development.
Version: 3.8.0
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: unpackedindia
Tags: blog, custom-menu, featured-images, translation-ready
*/

/* ==========================================================================
   Base reset
   ========================================================================== */
*,
*::before,
*::after {
	box-sizing: border-box;
}

body {
	margin: 0;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	font-size: 18px;
	line-height: 1.6;
	color: #1a1a1a;
	background: #ffffff;
}

a {
	color: #0066cc;
}

img {
	max-width: 100%;
	height: auto;
}

/* ==========================================================================
   Layout
   ========================================================================== */
/* Content shell used by index.php, page.php and single.php. The global
   header and footer supply the surrounding chrome. */
.tm-page {
	padding: 64px 0 88px;
}

.tm-page .entry-title {
	color: var(--tm-navy);
}

.tm-page .entry-title a {
	color: inherit;
	text-decoration: none;
}

.tm-page .entry-title a:hover {
	color: #16b6cf;
}

.tm-page .entry-meta {
	color: var(--tm-muted);
	font-size: 15px;
	margin-top: 6px;
}

.tm-page .entry-thumb {
	margin: 24px 0;
}

.tm-page .entry-thumb img {
	width: 100%;
	border-radius: 14px;
}

/* ==========================================================================
   Posts
   ========================================================================== */
.entry {
	margin-bottom: 48px;
}

.entry-title {
	margin: 0 0 8px;
}

.entry-title a {
	text-decoration: none;
}

.entry-meta {
	color: #888;
	font-size: 14px;
	margin-bottom: 16px;
}

/* ==========================================================================
   Home Template
   ========================================================================== */
.home-hero {
	text-align: center;
	padding: 60px 0 40px;
}

.home-hero-title {
	margin: 0;
	font-size: 44px;
	line-height: 1.1;
}

.home-hero-subtitle {
	margin: 16px auto 0;
	max-width: 640px;
	font-size: 20px;
	color: #666;
}

.home-content {
	max-width: 720px;
	margin: 0 auto 40px;
}

.home-section-title {
	margin: 40px 0 24px;
	font-size: 28px;
	text-align: center;
}

.home-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 32px;
}

.home-card {
	border: 1px solid #eaeaea;
	border-radius: 10px;
	overflow: hidden;
	background: #fff;
	transition: box-shadow 0.2s ease;
}

.home-card:hover {
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.08);
}

.home-card-thumb img {
	display: block;
	width: 100%;
	height: 180px;
	object-fit: cover;
}

.home-card-title {
	margin: 16px 16px 4px;
	font-size: 20px;
}

.home-card-title a {
	text-decoration: none;
	color: #1a1a1a;
}

.home-card-meta {
	margin: 0 16px;
	color: #888;
	font-size: 13px;
}

.home-card-excerpt {
	margin: 8px 16px 18px;
	font-size: 15px;
	color: #444;
}

/* ==========================================================================
   TRAVEL / TOUR-BOOKING HOME TEMPLATE (Tourm-style replica)
   ========================================================================== */
:root {
	--tm-primary: #107c6d;
	--tm-primary-dark: #0b5f54;
	--tm-accent: #ffb400;
	--tm-dark: #091421;
	--tm-navy: #0e1b2b;
	--tm-text: #435060;
	--tm-muted: #7a8797;
	--tm-line: #e7ecf1;
	--tm-bg-soft: #f4efe4;
	--tm-radius: 14px;
	--tm-shadow: 0 18px 40px rgba(9, 20, 33, .10);
}

.tm-home {
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	color: var(--tm-text);
	font-size: 16px;
	line-height: 1.7;
}
.tm-home * { box-sizing: border-box; }
.tm-container { max-width: 1320px; margin: 0 auto; padding: 0 24px; }
.tm-home img { max-width: 100%; height: auto; display: block; }
.tm-ico { font-style: normal; }

/* Buttons */
.tm-btn {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 13px 26px; border-radius: 40px; font-weight: 600; font-size: 15px;
	text-decoration: none; border: 2px solid transparent; cursor: pointer;
	transition: transform .2s ease, background .2s ease, color .2s ease, box-shadow .2s ease;
	line-height: 1; white-space: nowrap;
}
.tm-btn:hover { transform: translateY(-2px); }
.tm-btn-primary { background: var(--tm-primary); color: #fff; }
.tm-btn-primary:hover { background: var(--tm-primary-dark); box-shadow: 0 10px 24px rgba(16, 124, 109, .35); }
.tm-btn-ghost { background: rgba(255, 255, 255, .12); color: #fff; border-color: rgba(255, 255, 255, .55); }
.tm-btn-ghost:hover { background: #fff; color: var(--tm-dark); }
.tm-btn-light { background: #fff; color: var(--tm-primary-dark); }
.tm-btn-light:hover { background: var(--tm-dark); color: #fff; }
.tm-btn-lg { padding: 16px 34px; font-size: 16px; }
.tm-btn-sm { padding: 10px 18px; font-size: 14px; }
.tm-play { font-size: 12px; }

/* Section + headings */
.tm-section { padding: 90px 0; }
.tm-head { margin-bottom: 50px; }
.tm-head-center { text-align: center; max-width: 640px; margin-left: auto; margin-right: auto; }
.tm-kicker {
	display: inline-block; color: var(--tm-primary); font-weight: 700; font-size: 14px;
	letter-spacing: .12em; text-transform: uppercase; margin-bottom: 12px;
}
.tm-kicker-light { color: var(--tm-accent); }
.tm-title {
	margin: 0; color: var(--tm-navy); font-weight: 800; letter-spacing: -.5px;
	font-size: clamp(28px, 4vw, 42px); line-height: 1.15;
}
.tm-lead { font-size: 18px; }

/* Utility top bar */
.tm-topbar { position: relative; background: #fff; color: #56606b; font-size: 14px; border-bottom: 1px solid var(--tm-line); }
.tm-topbar::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, #0f8a7d, #16b6cf); }
.tm-tb-item { transition: color .2s ease; }
.tm-topbar-info .tm-tb-item:hover { color: var(--tm-navy); }
.tm-topbar-inner { max-width: 1360px; display: flex; justify-content: space-between; align-items: center; min-height: 50px; }
.tm-topbar a { color: #56606b; text-decoration: none; transition: color .2s ease; }
.tm-topbar a:hover { color: var(--tm-navy); }
.tm-topbar-info { display: flex; gap: 20px; align-items: center; }
.tm-tb-item { display: inline-flex; align-items: center; gap: 8px; }
.tm-tb-item svg { width: 16px; height: 16px; color: #16b6cf; flex: 0 0 auto; }
.tm-tb-sep { width: 1px; height: 18px; background: var(--tm-line); }
.tm-topbar-actions { display: flex; align-items: center; gap: 14px; }
.tm-lang { display: inline-flex; align-items: center; gap: 7px; background: #fff; border: 1px solid #d9e1e8; border-radius: 30px; padding: 8px 16px; font-size: 14px; color: var(--tm-navy); cursor: pointer; font-weight: 500; }
.tm-lang:hover { border-color: #16b6cf; }
.tm-caret { font-size: 10px; }
.tm-tb-div { color: #d0d8df; }

/* Main header / nav */
.tm-header { background: #fefefe; position: sticky; top: 0; z-index: 500; transition: box-shadow .25s ease; }
@keyframes tm-header-settle { from { transform: translateY(-14px); opacity: .45; } to { transform: translateY(0); opacity: 1; } }
.tm-header.is-stuck { background: #fefefe; box-shadow: 0 10px 34px rgba(9, 20, 33, .12); animation: tm-header-settle .4s ease; }
.tm-brand-shape { position: absolute; left: 0; top: 0; bottom: 0; width: 300px; background: #16b6cf; clip-path: polygon(0 0, 60% 0, 38% 100%, 0 100%); z-index: 0; pointer-events: none; }
.tm-header-inner { position: relative; z-index: 1; max-width: 1360px; display: flex; align-items: center; justify-content: space-between; height: 92px; gap: 30px; transition: height .3s ease; }
/* Compact the sticky bar once the page is scrolled */
.tm-header.is-stuck .tm-header-inner { height: 74px; }
.tm-header.is-stuck .tm-nav .tm-menu > li > a { padding-top: 25px; padding-bottom: 25px; }
.tm-header.is-stuck .tm-quote { padding-top: 14px; padding-bottom: 14px; }
.tm-header.is-stuck .tm-logo-globe svg { transform: scale(.9); }
.tm-logo { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; }
.tm-logo-img { display: block; height: 54px; width: auto; max-width: 220px; object-fit: contain; transition: height .3s ease; }
.tm-header.is-stuck .tm-logo-img { height: 44px; }
.tm-logo-globe { width: 46px; height: 46px; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.tm-logo-globe svg { width: 46px; height: 46px; }
.tm-logo-text { display: flex; flex-direction: column; line-height: 1.04; }
.tm-logo-text strong { font-size: 25px; font-weight: 800; color: var(--tm-navy); letter-spacing: -.5px; }
.tm-logo-text em { font-style: normal; font-size: 12.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: #12a0b8; margin-top: 3px; }
.tm-nav .tm-menu { list-style: none; display: flex; gap: 22px; margin: 0; padding: 0; align-items: center; flex-wrap: nowrap; }
.tm-nav .tm-menu > li { position: relative; flex: 0 0 auto; }
.tm-nav .tm-menu > li > a { position: relative; text-decoration: none; color: var(--tm-navy); font-family: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif; font-weight: 600; font-size: 16.5px; letter-spacing: .008em; white-space: nowrap; padding: 34px 0; display: inline-flex; align-items: center; gap: 6px; transition: color .25s ease, transform .25s cubic-bezier(.2, .7, .2, 1), padding .3s ease; }
.tm-nav .tm-menu > li > a:hover,
.tm-nav .tm-menu > .current-menu-item > a { color: #c9720a; }
.tm-nav .tm-menu > li > a:hover { transform: translateY(-2px); }
/* Underline grows from the centre with a soft glow */
.tm-nav .tm-menu > li > a::after {
	content: ""; position: absolute; left: 0; right: 0; top: 50%; margin-top: 14px; height: 2px; border-radius: 2px;
	background: linear-gradient(90deg, #f2960b, #ffb347); box-shadow: 0 3px 10px rgba(242, 150, 11, .45);
	transform: scaleX(0); transform-origin: center; transition: transform .3s cubic-bezier(.2, .7, .2, 1);
}
.tm-nav .tm-menu > li > a:hover::after,
.tm-nav .tm-menu > .current-menu-item > a::after { transform: scaleX(1); }

/* Nav items fade/slide in on load */
@keyframes tm-navitem-in { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } }
.tm-nav .tm-menu > li { animation: tm-navitem-in .55s cubic-bezier(.2, .7, .2, 1) both; }
.tm-nav .tm-menu > li:nth-child(1) { animation-delay: .04s; }
.tm-nav .tm-menu > li:nth-child(2) { animation-delay: .10s; }
.tm-nav .tm-menu > li:nth-child(3) { animation-delay: .16s; }
.tm-nav .tm-menu > li:nth-child(4) { animation-delay: .22s; }
.tm-nav .tm-menu > li:nth-child(5) { animation-delay: .28s; }
.tm-nav .tm-menu > li:nth-child(6) { animation-delay: .34s; }
.tm-nav .tm-menu > li:nth-child(7) { animation-delay: .40s; }
@media (prefers-reduced-motion: reduce) { .tm-nav .tm-menu > li { animation: none; } }
.tm-nav .tm-menu .tm-caret { font-size: 9px; opacity: .7; font-style: normal; transition: transform .25s ease; }
.tm-has-dd:hover > a > .tm-caret { transform: rotate(180deg); }
/* Logo micro-interaction */
.tm-logo-globe svg { transition: transform .4s ease; }
.tm-logo:hover .tm-logo-globe svg { transform: rotate(-8deg) scale(1.05); }

/* Flat cascading dropdown panel */
.tm-dd {
	list-style: none; margin: 0; padding: 6px; position: absolute; top: 100%; left: 0;
	min-width: 232px; background: #fffdf8; border: 1px solid #efe3cd; border-radius: 14px;
	box-shadow: 0 24px 50px -22px rgba(9, 20, 33, .30);
	opacity: 0; visibility: hidden; transform: translateY(12px);
	transition: opacity .2s ease, transform .22s cubic-bezier(.2, .7, .2, 1), visibility .2s;
	z-index: 40;
}
.tm-has-dd:hover > .tm-dd { opacity: 1; visibility: visible; transform: translateY(0); }

.tm-dd li { position: relative; }
.tm-dd a {
	display: flex; align-items: center; justify-content: space-between; gap: 12px;
	padding: 12px 16px; border-radius: 9px; font-size: 14.5px; font-weight: 500; color: #5a6472;
	text-decoration: none; background: transparent;
	transition: background .18s ease, color .18s ease, padding-left .18s ease;
}
/* Hovered / active-trail item warms up with an orange nudge */
.tm-dd li:hover > a,
.tm-dd li.is-open > a {
	background: #fff3e2; color: #c9720a; padding-left: 22px;
}

/* Third-level flyout submenu — flush to the right, top-aligned */
.tm-caret-r { font-size: 15px; line-height: 1; opacity: .6; flex: 0 0 auto; font-style: normal; }
.tm-has-sub:hover > a .tm-caret-r { opacity: 1; }
.tm-dd-sub { top: -1px; left: 100%; transform: translateX(8px); }
.tm-has-sub:hover > .tm-dd-sub { opacity: 1; visibility: visible; transform: translateX(0); }
/* Invisible bridge so the flyout stays reachable across the border seam */
.tm-dd-sub::after { content: ""; position: absolute; top: 0; left: -8px; width: 8px; height: 100%; }
.tm-header-actions { display: flex; align-items: center; gap: 14px; }
.tm-quote { background: var(--tm-dark); color: #fff; padding: 19px 34px; border-radius: 40px; font-size: 16px; white-space: nowrap; transition: transform .2s ease, background .25s ease, box-shadow .2s ease, padding .3s ease; }
.tm-quote:hover { background: linear-gradient(120deg, #0f8a7d, #16b6cf); transform: translateY(-2px); box-shadow: 0 14px 28px rgba(22, 182, 207, .42); }
.tm-quote-arrow { display: inline-block; transition: transform .25s ease; }
.tm-quote:hover .tm-quote-arrow { transform: translateX(5px); }

/* ---- Header "Request A Quote" CTA — animated gradient border + 3D loop ---- */
.tm-header-cta {
	position: relative; isolation: isolate; overflow: visible; transform-style: preserve-3d;
	box-shadow: 0 10px 26px -12px rgba(242, 150, 11, .55);
	animation: tm-cta-float 5s ease-in-out infinite;
}
/* Continuously flowing gradient border, masked down to just the frame. */
.tm-header-cta::before {
	content: ""; position: absolute; inset: -2px; border-radius: inherit; padding: 2px; z-index: 2; pointer-events: none;
	background: linear-gradient(115deg, #f2960b, #ffd27a, #ff7a18, #ffc46b, #f2960b);
	background-size: 300% 100%;
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	        mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	        mask-composite: exclude;
	animation: tm-border-flow 3.5s linear infinite;
}
/* Light "shine" sweeping across the button face. */
.tm-header-cta::after {
	content: ""; position: absolute; inset: 0; border-radius: inherit; z-index: 1; pointer-events: none;
	background: linear-gradient(100deg, transparent 35%, rgba(255, 255, 255, .38) 50%, transparent 65%);
	background-size: 250% 100%; background-repeat: no-repeat;
	animation: tm-cta-shine 3.5s ease-in-out infinite;
}
.tm-header-cta:hover { animation: none; transform: translateY(-3px) scale(1.03); box-shadow: 0 18px 38px -12px rgba(242, 150, 11, .78); }
.tm-header-cta:hover::after { animation-duration: 1.4s; }
@keyframes tm-border-flow { 0% { background-position: 0% 50%; } 100% { background-position: 300% 50%; } }
@keyframes tm-cta-shine { 0% { background-position: 180% 0; } 55%, 100% { background-position: -120% 0; } }
@keyframes tm-cta-float {
	0%, 100% { transform: perspective(600px) translateY(0) rotateX(0deg); }
	50%      { transform: perspective(600px) translateY(-3px) rotateX(6deg); }
}
@media (prefers-reduced-motion: reduce) {
	.tm-header-cta, .tm-header-cta::before, .tm-header-cta::after { animation: none; }
}
.tm-nav-toggle { display: none; flex-direction: column; gap: 5px; background: none; border: 0; cursor: pointer; padding: 6px; }
.tm-nav-toggle span { width: 26px; height: 3px; background: var(--tm-navy); border-radius: 3px; transition: .25s; }
.tm-nav-toggle.is-active span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.tm-nav-toggle.is-active span:nth-child(2) { opacity: 0; }
.tm-nav-toggle.is-active span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

/* ==========================================================================
   Redesigned top bar (email · phone · offer · language/currency)
   ========================================================================== */
.tm-topbar-inner { justify-content: space-between; gap: 22px; }
.tm-topbar-info { flex: 0 0 auto; }
.tm-tb-item { display: inline-flex; align-items: center; gap: 7px; }
.tm-tb-item svg { width: 15px; height: 15px; flex: 0 0 auto; }
.tm-tb-sep { width: 1px; height: 15px; background: currentColor; opacity: .28; display: inline-block; }
.tm-topbar-offer {
	flex: 1 1 auto; display: inline-flex; align-items: center; justify-content: center; gap: 9px;
	font-weight: 700; font-size: 12.5px; letter-spacing: .07em; text-transform: uppercase;
	color: var(--tm-navy); white-space: nowrap;
}
.tm-topbar-offer::before {
	content: ""; width: 16px; height: 16px; flex: 0 0 auto;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f2960b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 12 20 22 4 22 4 12'/%3E%3Crect x='2' y='7' width='20' height='5'/%3E%3Cline x1='12' y1='22' x2='12' y2='7'/%3E%3Cpath d='M12 7H7.5a2.5 2.5 0 0 1 0-5C11 2 12 7 12 7z'/%3E%3Cpath d='M12 7h4.5a2.5 2.5 0 0 0 0-5C13 2 12 7 12 7z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.tm-topbar-actions { flex: 0 0 auto; display: flex; align-items: center; gap: 12px; }
.tm-tb-select { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; font-size: 13.5px; color: var(--tm-navy); cursor: pointer; }
.tm-tb-flag { font-size: 15px; margin-right: 1px; }
.tm-tb-select .tm-caret { font-size: 9px; opacity: .6; font-style: normal; }

/* ==========================================================================
   Header search
   ========================================================================== */
.tm-search { position: relative; display: inline-flex; }
.tm-search-toggle {
	width: 44px; height: 44px; border-radius: 12px; cursor: pointer;
	display: inline-flex; align-items: center; justify-content: center;
	background: #f2960b; color: #1a1205; border: 1px solid #f2960b;
	transition: background .2s ease, color .2s ease, transform .2s ease;
}
.tm-search-toggle svg { width: 20px; height: 20px; }
.tm-search-toggle:hover { transform: translateY(-1px); }
.tm-search-pop {
	position: absolute; top: calc(100% + 12px); right: 0; z-index: 60;
	display: flex; align-items: center; gap: 8px; width: 320px; max-width: 78vw;
	background: #fff; border-radius: 14px; padding: 8px 8px 8px 16px;
	box-shadow: 0 24px 54px -18px rgba(9, 20, 33, .35); border: 1px solid var(--tm-line);
	opacity: 0; visibility: hidden; transform: translateY(-8px); transition: opacity .22s ease, transform .22s ease, visibility .22s;
}
.tm-search.is-open .tm-search-pop { opacity: 1; visibility: visible; transform: translateY(0); }
.tm-search-pop input {
	flex: 1; border: 0; outline: 0; background: transparent; font-size: 15px; color: var(--tm-navy);
	min-width: 0;
}
.tm-search-pop button {
	flex: 0 0 auto; width: 38px; height: 38px; border-radius: 10px; border: 0; cursor: pointer;
	background: #f2960b; color: #1a1205; font-size: 18px; line-height: 1;
}

/* ==========================================================================
   Front-page overlay header (transparent over the hero, solid on scroll)
   ========================================================================== */
.tm-home.is-overlay .tm-topbar { background: transparent; box-shadow: none; }
.tm-home.is-overlay .tm-header { background: #fefefe; box-shadow: 0 6px 24px rgba(9, 20, 33, .07); }
.tm-home.is-overlay .tm-topbar { position: absolute; top: 0; left: 0; right: 0; z-index: 60; border-bottom: 1px solid rgba(255, 255, 255, .16); }
.tm-home.is-overlay .tm-topbar::before { display: none; }
.tm-home.is-overlay .tm-header { position: absolute; top: 51px; left: 0; right: 0; z-index: 55; }
.tm-home.is-overlay .tm-brand-shape { display: none; }
.tm-home.is-overlay .tm-topbar,
.tm-home.is-overlay .tm-topbar a,
.tm-home.is-overlay .tm-tb-item,
.tm-home.is-overlay .tm-topbar-offer,
.tm-home.is-overlay .tm-tb-select { color: rgba(255, 255, 255, .92); }
.tm-home.is-overlay .tm-nav .tm-menu > li > a,
.tm-home.is-overlay .tm-logo-text strong { color: var(--tm-navy); }
.tm-home.is-overlay .tm-logo-text em { color: #c9720a; }
.tm-home.is-overlay .tm-nav .tm-menu > li > a:hover,
.tm-home.is-overlay .tm-nav .tm-menu > .current-menu-item > a { color: #c9720a; }
.tm-home.is-overlay .tm-nav-toggle span { background: var(--tm-navy); }
/* Solid, sticky header once scrolled. */
.tm-home.is-overlay .tm-header.is-stuck { position: fixed; top: 0; background: #fefefe; box-shadow: 0 10px 34px rgba(9, 20, 33, .12); }
.tm-home.is-overlay .tm-header.is-stuck .tm-nav .tm-menu > li > a,
.tm-home.is-overlay .tm-header.is-stuck .tm-logo-text strong { color: var(--tm-navy); }
.tm-home.is-overlay .tm-header.is-stuck .tm-logo-text em { color: #c9720a; }
.tm-home.is-overlay .tm-header.is-stuck .tm-nav .tm-menu > li > a:hover,
.tm-home.is-overlay .tm-header.is-stuck .tm-nav .tm-menu > .current-menu-item > a { color: #c9720a; }
.tm-home.is-overlay .tm-header.is-stuck .tm-nav-toggle span { background: var(--tm-navy); }

/* Top utility bar removed site-wide; drop the overlay header's 51px offset. */
.tm-topbar { display: none; }
.tm-home.is-overlay .tm-header { top: 0; }
/* Banner inner pages: add room at the top so the title/breadcrumb clear the
   overlaid header (topbar + nav ≈ 142px). */
.tm-home.is-overlay .tm-pkg-banner { padding-top: 186px; }
@media ( max-width: 860px ) {
	.tm-home.is-overlay .tm-pkg-banner { padding-top: 150px; }
	.tm-pkg-banner { min-height: 440px; }
}

/* ==========================================================================
   Home hero (eyebrow · headline · feature images · CTA · category tabs)
   ========================================================================== */
.tm-hero2 {
	position: relative; min-height: 100vh; display: flex; flex-direction: column;
	background-size: cover; background-position: center; color: #fff;
	padding-top: 156px; overflow: hidden;
}
/* Slowly zooming ("Ken Burns") background layer — sits behind all hero content. */
.tm-hero2-bg {
	position: absolute; inset: 0; z-index: 0;
	background-size: cover; background-position: center;
	transform-origin: center; will-change: transform;
	animation: tm-hero-zoom 6s ease-out both;
}
@keyframes tm-hero-zoom { from { transform: scale(1); } to { transform: scale(1.12); } }
@media (prefers-reduced-motion: reduce) { .tm-hero2-bg { animation: none; } }
.tm-hero2-inner {
	position: relative; z-index: 1;
	flex: 1 1 auto; display: flex; flex-direction: column; align-items: center; justify-content: center;
	text-align: center; max-width: 1040px; padding-bottom: 30px;
	transition: opacity .3s ease;
}
.tm-hero2-inner.is-swapping { opacity: 0; }
.tm-hero2-eyebrow {
	font-size: 13px; font-weight: 700; letter-spacing: .3em; text-transform: uppercase;
	color: rgba(255, 255, 255, .85); margin-bottom: 16px;
}
.tm-hero2-title {
	font-family: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
	font-size: clamp(40px, 6.2vw, 84px); line-height: 1.02; font-weight: 700; margin: 0 0 20px;
	text-shadow: 0 6px 34px rgba(0, 0, 0, .38);
}
.tm-hero2-lead {
	max-width: 640px; font-size: 17px; line-height: 1.72; color: rgba(255, 255, 255, .9); margin: 0 0 32px;
}
.tm-hero2-cards { display: none; gap: 22px; justify-content: center; flex-wrap: wrap; margin-bottom: 30px; width: 100%; max-width: 720px; }
.tm-hero2-card {
	width: 210px; height: 136px; border-radius: 14px; background-size: cover; background-position: center;
	border: 3px solid rgba(255, 255, 255, .16); box-shadow: 0 26px 54px -20px rgba(0, 0, 0, .6);
	transition: transform .5s cubic-bezier(.2, .7, .2, 1), box-shadow .5s ease;
}
.tm-hero2-card:hover { transform: translateY(-8px) scale(1.03); box-shadow: 0 34px 64px -20px rgba(0, 0, 0, .7); }
.tm-hero2-btn {
	background: #f2960b; color: #1a1205; font-weight: 700; font-size: 15px; padding: 15px 36px;
	border-radius: 40px; box-shadow: 0 18px 36px -14px rgba(242, 150, 11, .7);
	transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.tm-hero2-btn:hover { transform: translateY(-2px); background: #ffa825; }
.tm-hero2-tabs { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; padding: 0 clamp(16px, 4vw, 60px) 42px; }
.tm-hero2-tab {
	display: flex; align-items: center; justify-content: center; gap: 10px; padding: 19px 16px;
	border-radius: 12px; border: 1px solid rgba(255, 255, 255, .24); background: rgba(255, 255, 255, .08);
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); color: #fff; cursor: pointer;
	font-family: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
	transition: background .3s ease, border-color .3s ease, color .3s ease, transform .3s ease;
}
.tm-hero2-tab:hover { background: rgba(255, 255, 255, .18); transform: translateY(-2px); }
.tm-hero2-tab.is-active { background: #f2960b; border-color: #f2960b; color: #1a1205; }
.tm-hero2-tab-num { display: none; }
.tm-hero2-tab-label { font-size: 18px; font-weight: 600; }

@media ( max-width: 860px ) {
	.tm-topbar-offer, .tm-topbar-actions { display: none; }
	.tm-hero2 { padding-top: 120px; min-height: 88vh; }
	.tm-hero2-card { width: 150px; height: 100px; }
	.tm-hero2-tabs { grid-template-columns: repeat(2, 1fr); gap: 12px; }
	.tm-search-toggle { width: 40px; height: 40px; }
}
@media ( max-width: 520px ) {
	.tm-hero2-cards { gap: 12px; }
	.tm-hero2-card { width: auto; flex: 1 1 0; min-width: 0; height: 96px; }
	.tm-hero2-tabs { grid-template-columns: 1fr; }
}

/* Hero slider */
.tm-hero { position: relative; min-height: 92vh; overflow: hidden; color: #fff; }
.tm-hero-slides { position: absolute; inset: 0; }
.tm-hero-slide {
	position: absolute; inset: 0; background-size: cover; background-position: center;
	display: flex; align-items: center; opacity: 0; visibility: hidden;
	transform: scale(1.06); transition: opacity 1.1s ease, transform 6s ease, visibility 1.1s;
}
.tm-hero-slide::after {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(90deg, rgba(9, 20, 33, .62) 0%, rgba(9, 20, 33, .40) 42%, rgba(9, 20, 33, .10) 100%);
}
.tm-hero-slide.is-active { opacity: 1; visibility: visible; transform: scale(1); }
.tm-hero-slide .tm-container { position: relative; z-index: 2; width: 100%; }
.tm-hero-inner { max-width: 760px; }
.tm-hero-kicker {
	display: block; font-family: "Snell Roundhand", "Brush Script MT", "Segoe Script", cursive;
	font-size: 34px; line-height: 1; margin-bottom: 14px; color: #fff; font-weight: 500;
}
.tm-hero-title { margin: 0 0 36px; font-size: clamp(40px, 6vw, 78px); font-weight: 800; line-height: 1.04; letter-spacing: -1.5px; }
.tm-hero-actions { display: flex; gap: 18px; flex-wrap: wrap; }
.tm-btn-cyan { background: #17b3c6; color: #fff; }
.tm-btn-cyan:hover { background: #129db0; box-shadow: 0 12px 26px rgba(23, 179, 198, .4); }
/* content entrance */
.tm-hero-slide.is-active .tm-hero-kicker { animation: tm-hero-in .8s .15s both; }
.tm-hero-slide.is-active .tm-hero-title { animation: tm-hero-in .8s .30s both; }
.tm-hero-slide.is-active .tm-hero-actions { animation: tm-hero-in .8s .45s both; }
@keyframes tm-hero-in { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: none; } }
/* vertical navigation */
.tm-hero-nav { position: absolute; right: 42px; top: 50%; transform: translateY(-50%); z-index: 5; display: flex; flex-direction: column; align-items: center; gap: 18px; }
.tm-hero-arrow {
	width: 50px; height: 50px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .5);
	background: rgba(255, 255, 255, .08); color: #fff; font-size: 20px; cursor: pointer;
	display: inline-flex; align-items: center; justify-content: center; transition: background .2s ease, border-color .2s ease;
}
.tm-hero-arrow:hover { background: #17b3c6; border-color: #17b3c6; }
.tm-hero-progress { width: 2px; height: 120px; background: rgba(255, 255, 255, .35); position: relative; overflow: hidden; }
.tm-hero-progress-bar { position: absolute; top: 0; left: 0; width: 100%; height: 0; background: #17b3c6; }

/* Search bar */
.tm-search-wrap { margin-top: -70px; position: relative; z-index: 20; }
.tm-search {
	background: #fff; border-radius: var(--tm-radius); box-shadow: var(--tm-shadow);
	padding: 22px; display: grid; grid-template-columns: repeat(4, 1fr) auto; gap: 18px; align-items: end;
}
.tm-search-field { display: flex; flex-direction: column; gap: 7px; text-align: left; }
.tm-search-field label { font-size: 13px; font-weight: 700; color: var(--tm-navy); text-transform: uppercase; letter-spacing: .05em; }
.tm-search-field select,
.tm-search-field input {
	border: 1px solid var(--tm-line); border-radius: 10px; padding: 12px 14px; font-size: 15px;
	color: var(--tm-navy); background: #fff; width: 100%;
}
.tm-search-btn { height: 48px; justify-content: center; }

/* Categories — tilted photo carousel */
.tm-cats2 { background-color: #fdf3e7; background-repeat: repeat; background-size: 300px auto; overflow: hidden; }
/* Scroll-reveal: heading, carousel and dots rise + fade in when the section enters view. */
.tm-cats2 .tm-head { opacity: 0; transform: translateY(30px); transition: opacity .7s ease, transform .7s cubic-bezier(.2, .7, .2, 1); }
.tm-cats2-viewport { opacity: 0; transform: translateY(48px) scale(.96); transition: opacity .9s ease, transform .9s cubic-bezier(.2, .7, .2, 1); }
.tm-cats2-dots { opacity: 0; transition: opacity .6s ease .35s; }
.tm-cats2.is-inview .tm-head { opacity: 1; transform: none; }
.tm-cats2.is-inview .tm-cats2-viewport { opacity: 1; transform: none; transition-delay: .12s; }
.tm-cats2.is-inview .tm-cats2-dots { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
	.tm-cats2 .tm-head, .tm-cats2-viewport, .tm-cats2-dots { opacity: 1; transform: none; transition: none; }
}
.tm-cats2 .tm-script { color: #c9720a; }
.tm-script {
	display: block; font-family: "Snell Roundhand", "Brush Script MT", "Segoe Script", "Comic Sans MS", cursive;
	font-size: 32px; line-height: 1; color: #2b8aa6; margin-bottom: 6px; font-weight: 500;
}
.tm-cats2 .tm-title { color: #123a47; }
.tm-cats2-viewport { width: 100vw; margin-left: calc(50% - 50vw); overflow: hidden; position: relative; height: 470px; }
.tm-cats2-track { position: relative; width: 100%; height: 100%; }
.tm-cat2 {
	position: absolute; left: 50%; top: 36px; width: 300px; text-decoration: none; text-align: center;
	transform: translateX(-50%); transition: transform .6s cubic-bezier(.22, .61, .36, 1), opacity .5s ease; will-change: transform, opacity;
}
.tm-cat2-img {
	display: block; width: 100%; height: 300px; border-radius: 24px;
	background-size: cover; background-position: center; box-shadow: 0 22px 44px rgba(9, 20, 33, .20);
	transition: transform .5s cubic-bezier(.2, .7, .2, 1), box-shadow .5s ease;
}
/* 3D tilt + lift on hover (applied to the image so it doesn't fight the
   carousel's JS-driven card transform). */
.tm-cat2:hover .tm-cat2-img {
	transform: perspective(900px) rotateX(6deg) rotateY(-9deg) translateZ(26px) scale(1.05);
	box-shadow: 0 48px 80px -22px rgba(9, 20, 33, .5);
}
.tm-cat2-name { display: block; margin-top: 20px; font-size: 22px; font-weight: 800; color: #123a47; }
.tm-cat2-more { display: block; margin-top: 6px; font-size: 14px; color: var(--tm-muted); font-weight: 600; }
.tm-cat2-more::after { content: ""; display: block; width: 0; height: 2px; background: #c9720a; margin: 6px auto 0; transition: width .25s ease; }
.tm-cat2:hover .tm-cat2-more::after { width: 34px; }
@media (max-width: 680px) { .tm-cats2-viewport { height: 430px; } }
.tm-cats2-dots { display: flex; justify-content: center; gap: 14px; margin-top: 44px; }
.tm-cats2-dot { width: 16px; height: 16px; border-radius: 50%; border: 2px solid #b8ccd8; background: transparent; cursor: pointer; padding: 0; transition: background .2s, border-color .2s, transform .2s; }
.tm-cats2-dot:hover { border-color: #2b8aa6; }
.tm-cats2-dot.is-active { background: #1e9bd7; border-color: #1e9bd7; transform: scale(1.1); }
.tm-cats2 .tm-cats2-dot { border-color: #e5c39a; }
.tm-cats2 .tm-cats2-dot:hover { border-color: #c9720a; }
.tm-cats2 .tm-cats2-dot.is-active { background: #f2960b; border-color: #f2960b; }

/* Popular Destination — coverflow */
.tm-pop { background: #fff; overflow: hidden; }
.tm-pop-stage { position: relative; height: 560px; margin-top: 24px; }
.tm-pop-card {
	position: absolute; left: 50%; top: 50%; width: 340px; height: 470px;
	border-radius: 26px; overflow: hidden; background-size: cover; background-position: center;
	cursor: pointer; box-shadow: 0 30px 60px rgba(9, 20, 33, .30);
	transform: translate(-50%, -50%);
	transition: transform .55s cubic-bezier(.22, .61, .36, 1), opacity .55s ease, filter .55s ease;
	will-change: transform, opacity;
}
.tm-pop-card::after {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(to top, rgba(9, 20, 33, .80) 0%, rgba(9, 20, 33, .18) 42%, rgba(9, 20, 33, 0) 66%);
}
.tm-pop-body {
	position: absolute; left: 0; right: 0; bottom: 0; z-index: 2;
	display: flex; align-items: flex-end; justify-content: space-between; gap: 12px;
	padding: 26px; color: #fff;
}
.tm-pop-info h3 { margin: 0 0 4px; font-size: 26px; font-weight: 800; }
.tm-pop-info span { font-size: 15px; opacity: .92; }
.tm-pop-btn {
	flex: 0 0 auto; text-decoration: none; color: #fff; font-weight: 600; font-size: 14px;
	border: 1.5px solid rgba(255, 255, 255, .8); padding: 11px 22px; border-radius: 40px;
	transition: background .2s ease, color .2s ease;
}
.tm-pop-btn:hover { background: #fff; color: var(--tm-navy); }
.tm-pop-card:not(.is-active) .tm-pop-btn { pointer-events: none; }
.tm-pop-arrow {
	position: absolute; top: 50%; transform: translateY(-50%); z-index: 120;
	width: 52px; height: 52px; border-radius: 50%; border: 0; cursor: pointer;
	background: #fff; color: var(--tm-navy); font-size: 26px; line-height: 1;
	box-shadow: var(--tm-shadow); transition: background .2s ease, color .2s ease;
}
.tm-pop-arrow:hover { background: var(--tm-primary); color: #fff; }
.tm-pop-prev { left: 8px; }
.tm-pop-next { right: 8px; }
.tm-pop-dots { display: flex; justify-content: center; gap: 14px; margin-top: 36px; }
.tm-pop-cta { display: flex; justify-content: center; margin-top: 34px; }
.tm-btn-arrow { display: inline-block; transition: transform .25s ease; }
.tm-btn:hover .tm-btn-arrow { transform: translateX(5px); }
@media (max-width: 620px) {
	.tm-pop-stage { height: 480px; }
	.tm-pop-card { width: 250px; height: 380px; }
	.tm-pop-info h3 { font-size: 22px; }
	.tm-pop-arrow { width: 42px; height: 42px; font-size: 22px; }
}

/* Plan Your Trip — about */
.tm-plan { background: #fff; overflow: hidden; }
.tm-plan-grid { max-width: 1360px; display: grid; grid-template-columns: 1.05fr 0.95fr 0.55fr; gap: 44px; align-items: center; }
.tm-plan-media {
	position: relative; display: grid; grid-template-columns: 1.05fr 0.9fr;
	grid-template-rows: 1fr 1fr; gap: 20px; min-height: 560px;
}
.tm-plan-balloons { position: absolute; left: -48px; top: -14px; z-index: 3; pointer-events: none; opacity: .85; }
.tm-plan-img { background-size: cover; background-position: center; box-shadow: 0 20px 44px rgba(9, 20, 33, .16); }
.tm-plan-img-arch { grid-column: 1; grid-row: 1 / 3; border-radius: 170px 170px 30px 30px; }
.tm-plan-img-blob1 { grid-column: 2; grid-row: 1; height: 100%; border-radius: 63% 37% 44% 56% / 55% 48% 52% 45%; }
.tm-plan-img-blob2 { grid-column: 2; grid-row: 2; height: 100%; border-radius: 42% 58% 55% 45% / 52% 45% 55% 48%; }

.tm-plan .tm-title { color: #123a47; }
.tm-plan .tm-script { color: #c9720a; }
.tm-plan-lead { margin: 20px 0 34px; color: #556270; font-size: 17px; line-height: 1.85; max-width: 520px; letter-spacing: .002em; text-wrap: pretty; }
.tm-plan-feats { list-style: none; margin: 0 0 32px; padding: 0; display: grid; gap: 24px; }
.tm-plan-feats li { display: flex; gap: 18px; align-items: flex-start; }
.tm-plan-ico {
	flex: 0 0 auto; width: 62px; height: 62px; border-radius: 50%; background: #f2960b;
	display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 10px 22px rgba(242, 150, 11, .35);
}
.tm-plan-ico svg { width: 30px; height: 30px; }
.tm-plan-feats h3 { margin: 4px 0 5px; font-size: 20px; color: #123a47; font-weight: 800; }
.tm-plan-feats p { margin: 0; font-size: 15px; color: var(--tm-muted); max-width: 300px; }
.tm-btn-dark { background: var(--tm-navy); color: #fff; }
.tm-btn-dark:hover { background: #071019; box-shadow: 0 10px 24px rgba(9, 20, 33, .30); }

.tm-plan-person { position: relative; align-self: end; min-height: 470px; display: flex; align-items: flex-end; justify-content: center; }
.tm-plan-circle { position: absolute; bottom: 16px; left: 50%; transform: translateX(-50%); width: 260px; height: 260px; border-radius: 50%; background: #fbe6d0; z-index: 0; }
.tm-plan-person-img { position: relative; z-index: 1; width: 230px; height: 360px; object-fit: cover; border-radius: 130px 130px 22px 22px; box-shadow: 0 24px 50px rgba(9, 20, 33, .18); }

@media (max-width: 1100px) {
	.tm-plan-grid { grid-template-columns: 1fr 1fr; }
	.tm-plan-person { display: none; }
}
@media (max-width: 820px) {
	.tm-plan-grid { grid-template-columns: 1fr; }
	.tm-plan-media { min-height: 460px; max-width: 560px; }
}
@media (max-width: 620px) {
	.tm-plan-media { min-height: 340px; }
	.tm-plan-img-arch { border-radius: 120px 120px 22px 22px; }
}

/* About */
.tm-about { background: var(--tm-bg-soft); }
.tm-about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.tm-about-media { position: relative; padding-bottom: 40px; }
.tm-about-img-1 { border-radius: var(--tm-radius); width: 82%; box-shadow: var(--tm-shadow); }
.tm-about-img-2 { border-radius: var(--tm-radius); width: 45%; position: absolute; right: 0; bottom: 0; border: 6px solid #fff; box-shadow: var(--tm-shadow); }
.tm-about-badge {
	position: absolute; left: 0; top: 24px; background: var(--tm-primary); color: #fff;
	border-radius: var(--tm-radius); padding: 16px 20px; display: flex; align-items: center; gap: 12px; box-shadow: var(--tm-shadow);
}
.tm-about-badge-num { font-size: 34px; font-weight: 900; line-height: 1; }
.tm-about-badge-label { font-size: 13px; line-height: 1.25; }
.tm-about-list { list-style: none; padding: 0; margin: 24px 0 30px; display: grid; gap: 12px; }
.tm-about-list li { display: flex; align-items: flex-start; gap: 10px; font-weight: 500; color: var(--tm-navy); }
.tm-check { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; flex: 0 0 24px; border-radius: 50%; background: rgba(16, 124, 109, .12); color: var(--tm-primary); font-size: 13px; font-weight: 800; }

/* Destinations */
.tm-dest-grid { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 240px; gap: 22px; }
.tm-dest-card {
	position: relative; border-radius: var(--tm-radius); overflow: hidden; background-size: cover; background-position: center;
	text-decoration: none; display: flex; align-items: flex-end; transition: transform .3s ease;
}
.tm-dest-card::after { content: ""; position: absolute; inset: 0; transition: background .3s ease; }
.tm-dest-card:hover { transform: scale(.99); }
.tm-dest-card-lg { grid-row: span 2; }
.tm-dest-info { position: relative; z-index: 2; padding: 22px; color: #fff; }
.tm-dest-info h3 { margin: 0 0 3px; font-size: 22px; font-weight: 800; }
.tm-dest-info span { font-size: 14px; opacity: .9; }

/* Stats */
.tm-stats { background-size: cover; background-position: center; background-attachment: fixed; color: #fff; padding: 70px 0; }
.tm-stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; text-align: center; }
.tm-stat-num { display: block; font-size: 46px; font-weight: 900; color: var(--tm-accent); line-height: 1; }
.tm-stat-label { display: block; margin-top: 8px; font-size: 16px; color: #e7ecf1; }

/* Features */
.tm-feat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 26px; }
.tm-feat-card { text-align: center; padding: 36px 24px; border-radius: var(--tm-radius); background: #fff; border: 1px solid var(--tm-line); transition: transform .25s ease, box-shadow .25s ease; }
.tm-feat-card:hover { transform: translateY(-6px); box-shadow: var(--tm-shadow); border-color: transparent; }
.tm-feat-icon { font-size: 44px; display: inline-block; margin-bottom: 14px; }
.tm-feat-card h3 { margin: 0 0 10px; color: var(--tm-navy); font-size: 19px; }
.tm-feat-card p { margin: 0; font-size: 15px; }

/* CTA */
.tm-cta { background-size: cover; background-position: center; color: #fff; padding: 70px 0; }
.tm-cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 30px; flex-wrap: wrap; }
.tm-cta h2 { margin: 0 0 8px; font-size: clamp(26px, 3.5vw, 38px); font-weight: 800; }
.tm-cta p { margin: 0; font-size: 18px; opacity: .95; }

/* Team */
.tm-team-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 26px; }
.tm-team-card { text-align: center; }
.tm-team-photo { position: relative; border-radius: var(--tm-radius); overflow: hidden; margin-bottom: 16px; }
.tm-team-photo img { width: 100%; aspect-ratio: 1/1; object-fit: cover; }
.tm-team-social { position: absolute; left: 0; right: 0; bottom: -60px; display: flex; justify-content: center; gap: 10px; padding: 14px; background: linear-gradient(transparent, rgba(9, 20, 33, .8)); transition: bottom .3s ease; }
.tm-team-card:hover .tm-team-social { bottom: 0; }
.tm-team-social a { color: #fff; text-decoration: none; font-size: 13px; background: rgba(255, 255, 255, .2); width: 34px; height: 34px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; }
.tm-team-social a:hover { background: var(--tm-primary); }
.tm-team-card h3 { margin: 0; color: var(--tm-navy); font-size: 19px; }
.tm-team-card span { color: var(--tm-primary); font-size: 14px; font-weight: 600; }

/* News & Articles (blog) */
.tm-blog2 { position: relative; overflow: hidden; background: #fdf3e7; }
.tm-blog2 > .tm-container { position: relative; z-index: 1; }
.tm-blog2 .tm-title { color: #123a47; margin-top: 4px; }
.tm-blog2 .tm-script { color: #c9720a; }
.tm-blog2 .tm-mark {
	background: #f2960b; color: #fff; padding: 0 .28em; border-radius: 6px;
	box-decoration-break: clone; -webkit-box-decoration-break: clone;
}
.tm-blog2-balloons { position: absolute; left: 30px; bottom: 30px; opacity: .55; z-index: 0; pointer-events: none; }
.tm-blog2-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; margin-bottom: 46px; }
.tm-blog2-more, .tm-blog2-btn {
	display: inline-block; text-decoration: none; color: var(--tm-navy); font-weight: 600;
	border: 1px solid #bcd2dd; border-radius: 40px; transition: background .2s ease, color .2s ease, border-color .2s ease; white-space: nowrap;
}
.tm-blog2-more { font-size: 16px; padding: 15px 30px; }
.tm-blog2-more:hover, .tm-blog2-btn:hover { background: var(--tm-navy); border-color: var(--tm-navy); color: #fff; }
.tm-blog2-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.tm-blog2-thumb { display: block; border-radius: 16px; overflow: hidden; aspect-ratio: 4 / 3.1; box-shadow: 0 16px 34px rgba(9, 20, 33, .10); }
.tm-blog2-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.tm-blog2-card:hover .tm-blog2-thumb img { transform: scale(1.06); }
.tm-blog2-meta { display: flex; align-items: center; gap: 12px; margin: 22px 0 12px; color: var(--tm-muted); font-size: 14.5px; }
.tm-blog2-sep { width: 1px; height: 14px; background: #b3c4cd; }
.tm-blog2-title { margin: 0 0 22px; font-size: 23px; line-height: 1.32; font-weight: 700; }
.tm-blog2-title a { color: #16323c; text-decoration: none; }
.tm-blog2-title a:hover { color: #17b3c6; }
.tm-blog2-btn { font-size: 15px; padding: 12px 26px; }
@media (max-width: 900px) { .tm-blog2-grid { grid-template-columns: 1fr 1fr; } .tm-blog2-grid > *:nth-child(3) { display: none; } }
@media (max-width: 620px) { .tm-blog2-grid { grid-template-columns: 1fr; } .tm-blog2-grid > *:nth-child(3) { display: block; } .tm-blog2-balloons { display: none; } }

/* Partners */
.tm-partners { border-top: 1px solid var(--tm-line); border-bottom: 1px solid var(--tm-line); padding: 34px 0; background: #fff; overflow: hidden; }
.tm-partners-marquee { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent); mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent); }
.tm-partners-track { display: flex; align-items: center; width: max-content; animation: tm-marquee 34s linear infinite; }
.tm-partners:hover .tm-partners-track { animation-play-state: paused; }
.tm-partner { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; padding: 0 clamp(26px, 4vw, 52px); text-decoration: none; }
.tm-partner img { height: 46px; width: auto; max-width: 180px; object-fit: contain; opacity: 1; transition: transform .25s ease; }
.tm-partner:hover img { transform: scale(1.06); }
.tm-partner-text { font-size: 24px; font-weight: 800; color: #c2ccd6; letter-spacing: .5px; white-space: nowrap; transition: color .2s; }
.tm-partner:hover .tm-partner-text { color: var(--tm-primary); }
@keyframes tm-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .tm-partners-track { animation: none; flex-wrap: wrap; justify-content: center; gap: 24px 40px; width: auto; } }

/* Destinations grid — intro + tall photo cards with a gradient caption */
.tm-destgrid { background: #fff; }
.tm-destgrid-head {
	position: relative; display: grid; grid-template-columns: minmax(0, 620px) 1fr;
	gap: 30px; align-items: start; margin-bottom: 54px;
}
.tm-destgrid-lead { margin: 22px 0 0; font-size: 17px; color: var(--tm-text); max-width: 56ch; }
.tm-destgrid .tm-title { margin-top: 14px; }
/* Faint compass rose, echoing the reference */
.tm-destgrid-compass {
	position: absolute; top: -18px; right: 0; width: clamp(180px, 22vw, 320px); height: auto;
	color: #e8946a; opacity: .16; pointer-events: none;
}
@media ( max-width: 900px ) { .tm-destgrid-compass { display: none; } }

.tm-destgrid-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
@media ( max-width: 980px ) { .tm-destgrid-grid { grid-template-columns: repeat(2, 1fr); } }
@media ( max-width: 560px ) { .tm-destgrid-grid { grid-template-columns: 1fr; } }
.tm-destgrid-cta { text-align: center; margin-top: clamp(38px, 5vw, 60px); }
.tm-destgrid-btn { background: #f2960b; color: #fff; box-shadow: 0 12px 26px -12px rgba(242, 150, 11, .8); }
.tm-destgrid-btn:hover { background: #c9720a; }

.tm-destcard {
	position: relative; display: block; border-radius: 20px; overflow: hidden;
	aspect-ratio: 3 / 4; text-decoration: none;
	box-shadow: 0 18px 40px rgba(9, 20, 33, .12);
	transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease;
}
.tm-destcard:hover { transform: translateY(-6px); box-shadow: 0 28px 56px rgba(9, 20, 33, .2); }
.tm-destcard-img {
	position: absolute; inset: 0; background-size: cover; background-position: center;
	transition: transform .8s cubic-bezier(.2,.7,.2,1);
}
.tm-destcard:hover .tm-destcard-img { transform: scale(1.06); }
.tm-destcard::after {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(to top, rgba(9, 20, 33, .82) 0%, rgba(9, 20, 33, .32) 32%, rgba(9, 20, 33, 0) 58%);
}
/* Unpacked Experiences: a stronger bottom-to-top gradient so the title + location read clearly over light images. */
.tm-explist .tm-destcard::after {
	background: linear-gradient(to top, rgba(9, 20, 33, .95) 0%, rgba(9, 20, 33, .72) 24%, rgba(9, 20, 33, .34) 48%, rgba(9, 20, 33, 0) 72%);
}
.tm-destcard-body {
	position: absolute; left: 0; right: 0; bottom: 0; z-index: 1;
	display: flex; flex-direction: column; gap: 6px; padding: 22px 22px 24px; text-align: center;
}
.tm-destcard-name { font-size: 16px; font-weight: 600; color: rgba(255, 255, 255, .96); letter-spacing: .2px; line-height: 1.35; }
.tm-destcard-tag { font-size: 24px; font-weight: 800; color: #fff; line-height: 1.2; }
/* Experiences, Destinations list + home Destinations grid: emphasise the top line, shrink the bottom line. */
.tm-explist .tm-destcard-name,
.tm-destpage .tm-destcard-name,
.tm-destgrid .tm-destcard-name { font-size: clamp(20px, 2.1vw, 25px); font-weight: 500; line-height: 1.22; }
.tm-explist .tm-destcard-tag,
.tm-destpage .tm-destcard-tag,
.tm-destgrid .tm-destcard-tag { font-size: 18px; font-weight: 600; opacity: .9; letter-spacing: .2px; }

/* Keep the cursor-tilt on edge cards from creating a horizontal scrollbar. */
.tm-destlist { overflow-x: clip; }

/* 3D scroll-reveal for the card grid (progressive enhancement — the hidden
   state is only armed once JS adds .is-3d, so cards still show if JS is off).
   A one-shot keyframe (not a transition) keeps the hover lift untouched, and
   animation-delay lets JS stagger each row left-to-right. */
@media ( prefers-reduced-motion: no-preference ) {
	.tm-destgrid-grid.is-3d .tm-destcard { opacity: 0; }
	.tm-destgrid-grid.is-3d .tm-destcard.is-in {
		opacity: 1;
		animation: tm-destcard-3d-in .9s cubic-bezier(.19, .78, .24, 1) backwards;
	}
}
@keyframes tm-destcard-3d-in {
	from { opacity: 0; transform: perspective(900px) rotateX(15deg) translateY(52px) translateZ(-80px); }
	to   { opacity: 1; transform: perspective(900px) rotateX(0deg) translateY(0) translateZ(0); }
}

/* Reversible fade-in / fade-out on scroll. The hidden state is armed only once
   JS adds .is-fade (so cards still show if JS is off), and each card toggles
   .is-visible as it enters/leaves the viewport — a transition (not a one-shot
   animation) so it fades both ways. */
@media ( prefers-reduced-motion: no-preference ) {
	.tm-destgrid-grid.is-fade .tm-destcard {
		opacity: 0; transform: translateY(42px) scale(.97);
		transition: opacity .7s ease, transform .7s cubic-bezier(.2, .7, .2, 1);
		will-change: opacity, transform;
	}
	.tm-destgrid-grid.is-fade .tm-destcard.is-visible { opacity: 1; transform: none; }
}

/* Newsletter */
.tm-newsletter { background: var(--tm-navy); color: #fff; padding: 70px 0; }
.tm-newsletter-inner { display: flex; align-items: center; justify-content: space-between; gap: 40px; flex-wrap: wrap; }
.tm-newsletter h2 { margin: 6px 0 8px; font-size: clamp(26px, 3.5vw, 36px); font-weight: 800; }
.tm-newsletter p { margin: 0; color: #b9c4d0; }
.tm-newsletter-form { display: flex; gap: 12px; background: #fff; padding: 8px; border-radius: 40px; min-width: 340px; }
.tm-newsletter-form input { border: 0; outline: 0; padding: 0 18px; font-size: 15px; border-radius: 40px; flex: 1; color: var(--tm-navy); }

/* Footer (light, Tourm-style) */
.tm-footer2 { background: #ebe0cd; color: #6b7885; display: flow-root; }
.tm-footer2 > .tm-container { padding-top: 0; }

/* Newsletter — a highlighted subscribe panel */
.tm-foot-news {
	display: flex; align-items: center; justify-content: space-between; gap: 44px; flex-wrap: wrap;
	position: relative; overflow: hidden;
	background: linear-gradient(120deg, #f1fafb, #e8f5f7);
	border: 1px solid #d8edf0; border-radius: 26px; padding: 44px 48px;
}
.tm-foot-news::after {
	content: ""; position: absolute; right: -70px; top: -70px; width: 240px; height: 240px; border-radius: 50%;
	background: radial-gradient(circle, rgba(22, 182, 207, .16), rgba(22, 182, 207, 0) 70%); pointer-events: none;
}
.tm-foot-news-copy { position: relative; }
.tm-foot-news-kicker {
	display: inline-flex; align-items: center; gap: 9px; margin-bottom: 12px;
	font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .14em; color: #0e93a9;
}
.tm-foot-news-kicker::before { content: ""; width: 22px; height: 2px; border-radius: 2px; background: linear-gradient(90deg, #107c6d, #16b6cf); }
.tm-foot-news-title { margin: 0; font-size: clamp(26px, 3vw, 38px); font-weight: 800; color: #0e2b33; line-height: 1.16; letter-spacing: -.01em; }
.tm-foot-news-form { position: relative; display: flex; align-items: center; gap: 14px; flex: 1; min-width: 320px; max-width: 640px; }
.tm-foot-news-form input {
	flex: 1; border: 1px solid #cfe0e5; border-radius: 40px; padding: 17px 26px; font-size: 16px;
	color: var(--tm-navy); outline: none; background: #fff; transition: border-color .2s ease, box-shadow .2s ease;
}
.tm-foot-news-form input:focus { border-color: #16b6cf; box-shadow: 0 0 0 4px rgba(22, 182, 207, .14); }
.tm-foot-subscribe {
	display: inline-flex; align-items: center; gap: 10px;
	background: linear-gradient(120deg, #0f8a7d, #16b6cf); color: #fff;
	border: 0; border-radius: 40px; padding: 17px 30px; font-size: 15.5px; font-weight: 700; cursor: pointer; white-space: nowrap;
	box-shadow: 0 12px 24px rgba(16, 124, 109, .28);
	transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
.tm-foot-subscribe:hover { transform: translateY(-2px); box-shadow: 0 16px 30px rgba(16, 124, 109, .36); filter: brightness(1.05); }
.tm-foot-subscribe svg { width: 18px; height: 18px; transition: transform .25s ease; }
.tm-foot-subscribe:hover svg { transform: translateX(3px) rotate(8deg); }
.tm-foot-divider { border: 0; border-top: 1px solid #e7ecf1; margin: 56px 0 0; }

/* Columns */
.tm-foot-cols { display: grid; grid-template-columns: 1.7fr 1fr 1.3fr 1.2fr; gap: 44px; padding: 48px 0 60px; }
.tm-foot-title { position: relative; color: #0e2b33; font-size: 19px; font-weight: 800; margin: 0 0 26px; padding-bottom: 13px; }
.tm-foot-title::after { content: ""; position: absolute; left: 0; bottom: 0; width: 30px; height: 3px; border-radius: 3px; background: linear-gradient(90deg, #107c6d, #16b6cf); }
.tm-foot-brand .tm-logo { margin-bottom: 20px; }
.tm-foot-brand p { margin: 0 0 22px; font-size: 15.5px; line-height: 1.7; max-width: 340px; }
.tm-foot-social { display: flex; gap: 12px; }
.tm-foot-social a {
	width: 42px; height: 42px; border-radius: 50%; background: #e8f4fb; color: #16b6cf;
	display: inline-flex; align-items: center; justify-content: center;
	transition: background .2s ease, color .2s ease, transform .2s ease;
}
.tm-foot-social a svg { width: 18px; height: 18px; }
.tm-foot-social a:hover { background: linear-gradient(120deg, #0f8a7d, #16b6cf); color: #fff; transform: translateY(-3px); }
.tm-foot-links { list-style: none; margin: 0; padding: 0; display: grid; gap: 15px; }
.tm-foot-links a { position: relative; color: #6b7885; text-decoration: none; font-size: 15.5px; padding-left: 20px; transition: color .2s ease, padding .2s ease; }
.tm-foot-links a::before { content: "\203A"; position: absolute; left: 0; color: #16b6cf; font-weight: 700; transition: transform .2s ease; }
.tm-foot-links a:hover { color: #0e93a9; padding-left: 26px; }
.tm-foot-links a:hover::before { transform: translateX(3px); }
.tm-foot-contact { list-style: none; margin: 0; padding: 0; display: grid; gap: 22px; }
.tm-foot-contact li { display: flex; gap: 14px; align-items: flex-start; font-size: 15.5px; line-height: 1.5; }
.tm-foot-contact a { color: #6b7885; text-decoration: none; transition: color .2s ease; }
.tm-foot-contact a:hover { color: #0e93a9; }
.tm-foot-ico { flex: 0 0 auto; width: 42px; height: 42px; border-radius: 50%; background: #e8f4fb; color: #16b6cf; display: inline-flex; align-items: center; justify-content: center; transition: background .2s ease, color .2s ease; }
.tm-foot-contact li:hover .tm-foot-ico { background: linear-gradient(120deg, #0f8a7d, #16b6cf); color: #fff; }
.tm-foot-ico svg { width: 18px; height: 18px; }
.tm-foot-insta { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; }
.tm-foot-insta-item { position: relative; display: block; aspect-ratio: 1 / 1; border-radius: 11px; background-size: cover; background-position: center; overflow: hidden; transition: transform .25s ease, box-shadow .25s ease; }
.tm-foot-insta-item::after { content: ""; position: absolute; inset: 0; background: linear-gradient(160deg, rgba(15,138,125,0), rgba(15,138,125,.45)); opacity: 0; transition: opacity .25s ease; }
.tm-foot-insta-item:hover { transform: translateY(-3px) scale(1.03); box-shadow: 0 12px 24px rgba(9, 20, 33, .2); }
.tm-foot-insta-item:hover::after { opacity: 1; }

/* Bottom bar */
.tm-foot-bottom { background-size: cover; background-position: center; color: #cfd8e2; }
.tm-foot-bottom-inner { display: flex; justify-content: space-between; align-items: center; padding: 22px 0; flex-wrap: wrap; gap: 14px; font-size: 14.5px; }
.tm-foot-bottom p { margin: 0; }
.tm-foot-pay { display: flex; align-items: center; gap: 10px; }
.tm-foot-pay > span:first-child { margin-right: 4px; opacity: .85; }
.tm-pay-chip { background: rgba(255, 255, 255, .96); color: #1c2b33; font-size: 11.5px; font-weight: 800; padding: 7px 12px; border-radius: 7px; letter-spacing: .02em; transition: transform .2s ease; }
.tm-pay-chip:hover { transform: translateY(-2px); }

/* Scroll-reveal for footer blocks */
.tm-foot-news, .tm-foot-cols > * { opacity: 0; transform: translateY(22px); transition: opacity .6s ease, transform .6s ease; }
.tm-foot-news.is-in, .tm-foot-cols > *.is-in { opacity: 1; transform: none; }
.tm-foot-cols > *:nth-child(2) { transition-delay: .08s; }
.tm-foot-cols > *:nth-child(3) { transition-delay: .16s; }
.tm-foot-cols > *:nth-child(4) { transition-delay: .24s; }
@media ( prefers-reduced-motion: reduce ) {
	.tm-foot-news, .tm-foot-cols > * { opacity: 1; transform: none; transition: none; }
}

@media (max-width: 1024px) { .tm-foot-cols { grid-template-columns: 1fr 1fr; row-gap: 44px; } }
@media (max-width: 620px) {
	.tm-foot-news { flex-direction: column; align-items: flex-start; padding: 32px 24px; }
	.tm-foot-news-form { min-width: 0; width: 100%; flex-direction: column; align-items: stretch; }
	.tm-foot-cols { grid-template-columns: 1fr; }
	.tm-foot-bottom-inner { flex-direction: column; text-align: center; }
}

/* Back to top */
.tm-totop { position: fixed; right: 24px; bottom: 24px; width: 48px; height: 48px; border-radius: 50%; border: 0; background: #f2960b; color: #fff; font-size: 22px; cursor: pointer; opacity: 0; visibility: hidden; transform: translateY(12px); transition: .3s; z-index: 400; box-shadow: var(--tm-shadow); }
.tm-totop:hover { background: #c9720a; }
.tm-totop.is-visible { opacity: 1; visibility: visible; transform: none; }

/* Responsive */
@media (max-width: 1024px) {
	.tm-cat-grid { grid-template-columns: repeat(3, 1fr); }
	.tm-feat-grid, .tm-stats-grid, .tm-team-grid { grid-template-columns: repeat(2, 1fr); }
	.tm-tour-grid, .tm-blog-grid, .tm-dest-grid { grid-template-columns: repeat(2, 1fr); }
	.tm-dest-card-lg { grid-row: span 1; }
	.tm-search { grid-template-columns: repeat(2, 1fr); }
	.tm-search-btn { grid-column: 1 / -1; }
}
@media (max-width: 980px) {
	.tm-topbar-loc, .tm-header-cta { display: none; }
	.tm-brand-shape { width: 190px; }
	.tm-nav-toggle { display: flex; }
	.tm-nav { position: absolute; top: 92px; left: 0; right: 0; background: #fff; box-shadow: var(--tm-shadow); max-height: 0; overflow: hidden; transition: max-height .3s ease; }
	.tm-nav.is-open { max-height: 80vh; overflow-y: auto; }
	.tm-nav .tm-menu { flex-direction: column; gap: 0; padding: 10px 24px; align-items: stretch; }
	.tm-nav .tm-menu > li { border-bottom: 1px solid var(--tm-line); }
	.tm-nav .tm-menu > li > a { display: flex; justify-content: space-between; padding: 14px 0; }
	/* Legible dark text on the white mobile panel (override the overlay white). */
	.tm-home.is-overlay .tm-nav .tm-menu > li > a,
	.tm-nav .tm-menu > li > a { color: var(--tm-navy); text-shadow: none; }
	.tm-home.is-overlay .tm-nav .tm-menu > li > a:hover,
	.tm-nav .tm-menu > li > a:hover,
	.tm-nav .tm-menu > .current-menu-item > a { color: #c9720a; }
	/* Sub-menus become tap-to-expand accordions (were hidden before). */
	.tm-dd, .tm-dd-sub {
		display: none; position: static; opacity: 1; visibility: visible; transform: none;
		box-shadow: none; min-width: 0; padding: 0; margin: 0; background: transparent; border-radius: 0;
	}
	.tm-has-dd.is-open > .tm-dd,
	.tm-has-sub.is-open > .tm-dd-sub { display: block; }
	.tm-dd li + li { border-top: 1px solid var(--tm-line); }
	.tm-dd a { padding: 12px 0 12px 18px; color: #45505f; font-weight: 600; }
	.tm-dd a:hover { color: #c9720a; }
	.tm-dd-sub a { padding-left: 34px; font-weight: 500; }
	.tm-nav .tm-caret { transition: transform .25s ease; }
	.tm-has-dd.is-open > a > .tm-caret,
	.tm-has-sub.is-open > a > .tm-caret { transform: rotate(180deg); }
	.tm-footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 620px) {
	.tm-section { padding: 60px 0; }
	.tm-cat-grid { grid-template-columns: repeat(2, 1fr); }
	.tm-feat-grid, .tm-stats-grid, .tm-team-grid, .tm-tour-grid, .tm-blog-grid, .tm-dest-grid, .tm-search { grid-template-columns: 1fr; }
	.tm-topbar { display: none; }
	.tm-newsletter-form { min-width: 0; width: 100%; }
	.tm-footer-grid { grid-template-columns: 1fr; }
	.tm-cta-inner, .tm-newsletter-inner { flex-direction: column; text-align: center; align-items: center; }
	.tm-hero { min-height: 82vh; }
	.tm-hero-kicker { font-size: 27px; }
	.tm-hero-nav { right: 14px; gap: 12px; }
	.tm-hero-arrow { width: 42px; height: 42px; font-size: 17px; }
	.tm-hero-progress { height: 80px; }
}

/* ==========================================================================
   PACKAGES LISTINGS TEMPLATE
   ========================================================================== */
.tm-packages { padding: 0 0 90px; }

/* Banner */
.tm-pkg-banner {
	position: relative; overflow: hidden;
	background-size: cover; background-position: center;
	border-bottom: 5px solid #16b6cf;
	color: #fff;
	padding: 96px 0 104px;
	min-height: clamp(560px, 74vh, 800px);
	display: grid; align-content: center;
}
/* Shine sweep across the banner, like the CTA button. */
.tm-pkg-banner::before {
	content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
	background: linear-gradient(115deg, transparent 35%, rgba(255, 255, 255, .16) 48%, rgba(255, 255, 255, .04) 56%, transparent 68%);
	background-size: 220% 100%; background-repeat: no-repeat;
}
@media ( prefers-reduced-motion: no-preference ) {
	.tm-pkg-banner::before { animation: tm-banner-shine 7s ease-in-out .6s infinite; }
}
@keyframes tm-banner-shine { 0% { background-position: 200% 0; } 42%, 100% { background-position: -100% 0; } }
/* Centred content with a breadcrumb pill above the title. */
.tm-pkg-banner .tm-container { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; text-align: center; }
.tm-pkg-banner-sub {
	max-width: 560px; margin: 0; font-size: 16px; line-height: 1.7;
	color: rgba(255, 255, 255, .9); text-shadow: 0 1px 12px rgba(9, 20, 33, .5);
}
.tm-pkg-banner-title {
	margin: 0 0 16px;
	font-family: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
	font-size: clamp(34px, 5vw, 62px); font-weight: 600; letter-spacing: .005em;
	line-height: 1.08; text-shadow: 0 2px 26px rgba(9, 20, 33, .5);
}
.tm-pkg-crumb {
	order: -1; margin-bottom: 20px;
	display: inline-flex; align-items: center; gap: 11px;
	padding: 9px 20px; border-radius: 40px;
	background: rgba(255, 255, 255, .13); border: 1px solid rgba(255, 255, 255, .24);
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
	font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .12em;
}
.tm-pkg-crumb a { color: #fff; text-decoration: none; }
.tm-pkg-crumb a:hover { color: #ffd8a1; }
.tm-pkg-crumb-sep { color: rgba(255, 255, 255, .55); font-size: 10px; }
.tm-pkg-crumb-current { color: rgba(255, 255, 255, .82); }

/* 3D unfold entrance for the banner content on page load. */
@media ( prefers-reduced-motion: no-preference ) {
	.tm-pkg-banner .tm-container { perspective: 1100px; }
	.tm-pkg-crumb { animation: tm-crumb-in .7s cubic-bezier(.2, .7, .2, 1) both; transform-origin: 50% 0; }
	.tm-pkg-banner-title { animation: tm-btitle-in .95s cubic-bezier(.2, .7, .2, 1) .14s both; transform-origin: 50% 100%; }
	.tm-pkg-banner-sub { animation: tm-crumb-in .8s cubic-bezier(.2, .7, .2, 1) .28s both; }
}
@keyframes tm-crumb-in { from { opacity: 0; transform: perspective(1000px) rotateX(-32deg) translateY(-18px); } to { opacity: 1; transform: none; } }
@keyframes tm-btitle-in { from { opacity: 0; transform: perspective(1000px) rotateX(34deg) translateY(46px) scale(.94); } to { opacity: 1; transform: none; } }

/* Grid */
.tm-pkg-list { padding-top: 70px; }
.tm-pkg-grid {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 34px;
}
.tm-pkg-card {
	background: #fff; border-radius: 14px; overflow: hidden;
	box-shadow: 0 14px 34px rgba(9, 20, 33, .08);
	transition: transform .25s ease, box-shadow .25s ease;
}
.tm-pkg-card:hover { transform: translateY(-6px); box-shadow: 0 22px 46px rgba(9, 20, 33, .14); }
.tm-pkg-card-img { height: 300px; background-size: cover; background-position: center; }
.tm-pkg-card-body { padding: 26px 26px 30px; }
.tm-pkg-card-title {
	margin: 0 0 22px; font-size: 22px; font-weight: 400; color: #1c2b33;
}
.tm-pkg-card-btn {
	display: block; text-align: center; text-decoration: none;
	background: #16b6cf; color: #fff; font-weight: 700; font-size: 16px;
	padding: 15px 20px; border-radius: 40px;
	transition: background .2s ease, box-shadow .2s ease;
}
.tm-pkg-card-btn:hover { background: #0e93a9; box-shadow: 0 12px 26px rgba(22, 182, 207, .38); }

@media ( max-width: 960px ) {
	.tm-pkg-grid { grid-template-columns: repeat(2, 1fr); gap: 26px; }
	.tm-pkg-banner { padding: 72px 0 78px; }
}
@media ( max-width: 600px ) {
	.tm-pkg-grid { grid-template-columns: 1fr; }
	.tm-pkg-list { padding-top: 50px; }
}

/* ==========================================================================
   DETAILED PACKAGE DESCRIPTION TEMPLATE
   ========================================================================== */
.tm-pd { padding: 0 0 90px; }
.tm-pd-wrap { max-width: 1320px; }

/* Gallery mosaic: narrow-wide-narrow, 2 stacked images either side of a tall centre */
.tm-pd-gallery {
	display: grid;
	grid-template-columns: 1fr 2.15fr 1fr;
	grid-template-rows: 1fr 1fr;
	grid-template-areas:
		"lt c rt"
		"lb c rb";
	gap: 18px; margin: 60px 0 48px; height: 564px;
}
.tm-pd-gallery-cell {
	position: relative; overflow: hidden; border-radius: 20px;
	background-size: cover; background-position: center;
	box-shadow: 0 18px 40px -18px rgba(9, 20, 33, .38), inset 0 0 0 1px rgba(255, 255, 255, .05);
	transition: transform .3s cubic-bezier(.2, .7, .2, 1), box-shadow .4s ease;
	will-change: transform;
}
/* Cursor-following light glare — reinforces the 3D surface on hover */
.tm-pd-gallery-cell::before {
	content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
	opacity: 0; transition: opacity .35s ease; mix-blend-mode: soft-light;
	background: radial-gradient(240px circle at var(--mx, 50%) var(--my, 50%), rgba(255, 255, 255, .6), rgba(255, 255, 255, 0) 62%);
}
.tm-pd-gallery-cell:hover::before { opacity: 1; }
/* Zoom-in overlay + magnifier on hover (signals the lightbox) */
.tm-pd-gallery-cell.is-zoomable::after {
	content: ""; position: absolute; inset: 0; opacity: 0; z-index: 2;
	background:
		linear-gradient(rgba(9, 20, 33, .04), rgba(9, 20, 33, .34)),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3Cline x1='11' y1='8' x2='11' y2='14'/%3E%3Cline x1='8' y1='11' x2='14' y2='11'/%3E%3C/svg%3E") no-repeat center;
	transition: opacity .3s ease;
}
.tm-pd-gallery-cell.is-zoomable:hover::after { opacity: 1; }
.tm-pd-gallery-cell:hover { box-shadow: 0 42px 72px -24px rgba(9, 20, 33, .52), inset 0 0 0 1px rgba(255, 255, 255, .14); }
/* Fallback lift when the JS 3D tilt is not active. */
.tm-pd-gallery:not(.is-3d) .tm-pd-gallery-cell:hover { transform: translateY(-6px) scale(1.015); }
/* 3D scroll-in reveal — hidden state armed by JS via .is-3d, so cells still
   show if JS is off; a one-shot keyframe keeps the hover/tilt transform free. */
@media ( prefers-reduced-motion: no-preference ) {
	.tm-pd-gallery.is-3d .tm-pd-gallery-cell { opacity: 0; }
	.tm-pd-gallery.is-3d .tm-pd-gallery-cell.is-in {
		opacity: 1;
		animation: tm-gallery-3d-in 1s cubic-bezier(.19, .78, .24, 1) backwards;
	}
}
@keyframes tm-gallery-3d-in {
	from { opacity: 0; transform: perspective(1400px) rotateX(13deg) translateY(46px) translateZ(-90px); }
	to   { opacity: 1; transform: perspective(1400px) rotateX(0) translateY(0) translateZ(0); }
}
.g-lt { grid-area: lt; }
.g-lb { grid-area: lb; }
.g-c  { grid-area: c; }
.g-rt { grid-area: rt; }
.g-rb { grid-area: rb; }

/* Title + duration */
.tm-pd-titlebar {
	display: flex; align-items: flex-start; justify-content: space-between; gap: 24px;
	margin-bottom: 22px;
}
.tm-pd-title {
	margin: 0; font-size: 32px; font-weight: 800; letter-spacing: -.02em;
	color: #10707a; line-height: 1.12; text-wrap: balance;
}
.tm-pd-lead { display: flex; flex-wrap: wrap; align-items: center; gap: 9px 14px; margin: 16px 0 0; max-width: 72ch; }
.tm-pd-lead-dur {
	display: inline-flex; align-items: center; flex: 0 0 auto;
	font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
	color: #a85f08; background: rgba(242, 150, 11, .12); border: 1px solid rgba(242, 150, 11, .3);
	padding: 6px 14px; border-radius: 30px; white-space: nowrap;
}
.tm-pd-lead-tag {
	font-family: var(--pd-serif, Georgia, serif); font-style: italic;
	font-size: clamp(16px, 1.7vw, 19px); line-height: 1.5; color: #6a6152;
}
.tm-pd-duration {
	flex: 0 0 auto; text-align: center; color: #fff; line-height: 1;
	background: linear-gradient(158deg, #12a6ac, #0b6f77);
	border-radius: 16px; padding: 12px 18px; min-width: 74px;
	box-shadow: 0 12px 24px rgba(11, 111, 119, .30);
	transition: transform .3s ease, box-shadow .3s ease;
}
.tm-pd-duration:hover { transform: translateY(-2px); box-shadow: 0 16px 30px rgba(11, 111, 119, .38); }
.tm-pd-duration strong { display: block; font-size: 26px; font-weight: 800; }
.tm-pd-duration span { display: block; margin-top: 3px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; color: rgba(255, 255, 255, .85); }

/* Route overview — a compact journey stepper */
.tm-pd-route {
	display: flex; align-items: center; flex-wrap: wrap; gap: 10px 16px;
	background: linear-gradient(120deg, #f0fafb, #eaf6f8);
	border: 1px solid #d3ecf1; border-radius: 14px;
	padding: 15px 20px; margin-bottom: 30px;
}
.tm-pd-route-label {
	display: inline-flex; align-items: center; gap: 7px; flex: 0 0 auto;
	background: linear-gradient(158deg, #12a6ac, #0b6f77); color: #fff;
	font-size: 11.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em;
	padding: 7px 14px 7px 12px; border-radius: 30px;
	box-shadow: 0 6px 14px rgba(11, 111, 119, .26);
}
.tm-pd-route-label svg { width: 14px; height: 14px; flex: 0 0 auto; }
.tm-pd-route-flow {
	list-style: none; margin: 0; padding: 0;
	display: flex; align-items: center; flex-wrap: wrap; gap: 6px 4px;
}
.tm-pd-route-stop {
	display: inline-flex; align-items: center; gap: 8px;
	font-size: 14.5px; font-weight: 700; color: var(--tm-navy); white-space: nowrap;
	opacity: 0; transform: translateY(6px);
	animation: tm-route-in .45s ease forwards; animation-delay: calc(var(--i, 0) * 70ms + 100ms);
}
.tm-pd-route-dot {
	width: 11px; height: 11px; border-radius: 50%; flex: 0 0 auto;
	background: radial-gradient(circle at 35% 30%, #29c7d4, #0b6f77);
	box-shadow: 0 0 0 4px rgba(18, 166, 172, .14);
}
.tm-pd-route-stop:not(:last-child)::after {
	content: ""; width: 22px; height: 2px; margin: 0 4px; border-radius: 2px; flex: 0 0 auto;
	background: linear-gradient(90deg, #9fd6dd, #cfe8ec);
}
@keyframes tm-route-in { to { opacity: 1; transform: none; } }
@media ( prefers-reduced-motion: reduce ) {
	.tm-pd-route-stop { opacity: 1; transform: none; animation: none; }
}
.tm-pd-route-line { margin: 0; font-size: 15px; font-weight: 600; color: var(--tm-navy); line-height: 1.6; }

/* Shared card shell */
.tm-pd-card {
	background: #fff; border: 1px solid #e7eef3; border-radius: 12px;
	padding: 34px 34px 38px; margin-bottom: 30px;
}
.tm-pd-card-title { margin: 0 0 24px; font-size: 22px; font-weight: 700; color: var(--tm-navy); }

/* Itinerary section heading */
.tm-pd-panel-title {
	margin: 0 0 26px; font-size: 23px; font-weight: 800; color: var(--tm-navy);
	letter-spacing: -.01em; display: flex; align-items: center; gap: 13px;
}
.tm-pd-panel-title::before {
	content: ""; width: 34px; height: 3px; border-radius: 3px; flex: 0 0 auto;
	background: linear-gradient(90deg, #0e9aa3, #16c0d4);
}

/* Itinerary timeline
   Local accent tokens keep the whole component easy to re-tint. */
.tm-pd-itin-section { --itin-a: #12a6ac; --itin-b: #16c0d4; --itin-deep: #0b6f77; }
.tm-itin { position: relative; }
.tm-itin-item {
	position: relative; display: grid; grid-template-columns: 84px 1fr; align-items: start;
	column-gap: 30px; padding-bottom: 20px;
	opacity: 0; transform: translateY(16px);
	transition: opacity .55s ease, transform .55s ease;
}
.tm-itin-item.is-visible { opacity: 1; transform: none; }
@media ( prefers-reduced-motion: reduce ) {
	.tm-itin-item { opacity: 1; transform: none; transition: none; }
}
/* Vertical connector line — fills teal as you scroll past (JS sets --fill) */
.tm-itin-item::before {
	content: ""; position: absolute; left: 92px; top: 6px; bottom: -6px; width: 2px;
	background: linear-gradient(var(--itin-a), var(--itin-b)) top / 100% var(--fill, 0%) no-repeat, #e2e8f0;
	transition: background-size .12s linear;
}
.tm-itin-item:last-child::before { display: none; }

/* Day badge — stacked "Day / N" */
.tm-itin-day {
	justify-self: start; margin-top: 2px;
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	width: 60px; min-height: 58px; padding: 8px 0; border-radius: 16px;
	background: linear-gradient(158deg, var(--itin-a), var(--itin-deep));
	box-shadow: 0 10px 20px rgba(11, 111, 119, .30); white-space: nowrap;
	transition: transform .3s ease, box-shadow .3s ease;
}
.tm-itin-day-word { font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: rgba(255, 255, 255, .82); }
.tm-itin-day-num { font-size: 24px; font-weight: 800; line-height: 1; color: #fff; margin-top: 1px; }
.tm-itin-item.is-open .tm-itin-day { transform: translateY(-1px); box-shadow: 0 14px 26px rgba(11, 111, 119, .40); }

/* Node on the connector line — hollow ring that fills on scroll-reach */
.tm-itin-node {
	position: absolute; left: 85px; top: 8px; width: 16px; height: 16px; z-index: 1;
	background: #fff; border: 3px solid #cdd8e0; border-radius: 50%;
	transition: border-color .35s ease, box-shadow .35s ease, transform .35s ease;
}
.tm-itin-node::after {
	content: ""; position: absolute; inset: 2px; border-radius: 50%; background: transparent;
	transition: background .35s ease;
}
.tm-itin-item.is-reached .tm-itin-node {
	border-color: var(--itin-a); box-shadow: 0 0 0 5px rgba(18, 166, 172, .16); transform: scale(1.06);
}
.tm-itin-item.is-reached .tm-itin-node::after { background: linear-gradient(158deg, var(--itin-b), var(--itin-deep)); }

/* Card */
.tm-itin-card {
	position: relative; border: 1px solid #e7eef3; border-radius: 14px; background: #fff;
	box-shadow: 0 6px 18px rgba(9, 20, 33, .05); overflow: hidden;
	transition: box-shadow .28s ease, border-color .28s ease;
}
.tm-itin-card::before {
	content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
	background: linear-gradient(var(--itin-b), var(--itin-deep));
	transform: scaleY(0); transform-origin: top; transition: transform .32s ease;
}
.tm-itin-card:hover { box-shadow: 0 12px 30px rgba(9, 20, 33, .10); }
.tm-itin-item.is-open .tm-itin-card { box-shadow: 0 14px 34px rgba(9, 20, 33, .10); border-color: #d7e6ea; }
.tm-itin-item.is-open .tm-itin-card::before { transform: scaleY(1); }

.tm-itin-head {
	width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 16px;
	background: none; border: 0; cursor: pointer; text-align: left;
	padding: 17px 20px; font-family: inherit; transition: background .2s ease;
}
.tm-itin-item.is-open .tm-itin-head { background: linear-gradient(90deg, rgba(18, 166, 172, .07), rgba(18, 166, 172, 0)); }
.tm-itin-title { font-size: 17px; font-weight: 700; color: var(--tm-navy); line-height: 1.32; letter-spacing: -.01em; }
.tm-itin-chev {
	width: 30px; height: 30px; padding: 6px; flex: 0 0 auto; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	color: var(--itin-deep); background: #eef7f8;
	transition: transform .28s ease, background .2s ease;
}
.tm-itin-chev svg { width: 100%; height: 100%; }
.tm-itin-head:hover .tm-itin-chev { background: #dff1f3; }
.tm-itin-item.is-open .tm-itin-chev { transform: rotate(180deg); }

/* Collapsible body */
.tm-itin-body { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .3s ease; }
.tm-itin-inner { overflow: hidden; min-height: 0; }
.tm-itin-item.is-open .tm-itin-body { grid-template-rows: 1fr; }
.tm-itin-desc { margin: 0; padding: 4px 22px 2px; }
.tm-itin-desc p { margin: 0 0 13px; color: var(--tm-text); font-size: 14.5px; line-height: 1.72; }
.tm-itin-desc p:last-child { margin-bottom: 0; }
.tm-itin-desc strong { color: var(--itin-deep); font-weight: 700; }

/* Overnight pill */
.tm-itin-stay {
	display: inline-flex; align-items: center; gap: 8px; margin: 16px 22px 20px;
	padding: 7px 15px 7px 11px; border-radius: 30px;
	background: #f2f8f9; border: 1px solid #e0eef0;
	color: var(--itin-deep); font-size: 13.5px; font-weight: 700;
}
.tm-itin-stay svg { width: 16px; height: 16px; flex: 0 0 auto; color: var(--itin-a); }
.tm-itin-stay-word { color: var(--tm-muted); font-weight: 700; text-transform: uppercase; font-size: 11px; letter-spacing: .09em; }

/* Closing note */
.tm-itin-closing {
	position: relative; margin: 30px 0 0; padding: 24px 26px 24px 32px;
	background: linear-gradient(120deg, #f3fafb, #eef7f8);
	border: 1px solid #e0eef0; border-radius: 14px; overflow: hidden;
	font-size: 16px; font-style: italic; line-height: 1.72; color: #3f5560;
}
.tm-itin-closing::before {
	content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
	background: linear-gradient(var(--itin-b), var(--itin-deep));
}

/* Related trips */
.tm-pd-related { margin-top: 46px; }
.tm-pd-related-title { margin: 0 0 24px; font-size: 24px; font-weight: 700; color: var(--tm-navy); }
.tm-pd-related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.tm-pd-rel-card {
	background: #fff; border: 1px solid #e7eef3; border-radius: 14px; overflow: hidden;
	box-shadow: 0 12px 30px rgba(9, 20, 33, .07);
	transition: transform .25s ease, box-shadow .25s ease;
}
.tm-pd-rel-card:hover { transform: translateY(-5px); box-shadow: 0 20px 42px rgba(9, 20, 33, .13); }
.tm-pd-rel-img { position: relative; height: 190px; background-size: cover; background-position: center; }
.tm-pd-rel-fav {
	position: absolute; top: 12px; right: 12px; width: 30px; height: 30px; border: 0;
	border-radius: 50%; background: rgba(255, 255, 255, .9); color: var(--tm-navy);
	display: inline-flex; align-items: center; justify-content: center; cursor: pointer;
}
.tm-pd-rel-fav svg { width: 15px; height: 15px; }
.tm-pd-rel-fav:hover { background: #16b6cf; color: #fff; }
.tm-pd-rel-body { padding: 16px 18px 20px; }
.tm-pd-rel-tags { margin: 0 0 18px; line-height: 1.45; }
.tm-pd-rel-dur {
	display: inline-block; margin-bottom: 9px;
	font-size: 10.5px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase;
	color: #a85f08; background: rgba(242, 150, 11, .12); border: 1px solid rgba(242, 150, 11, .3);
	padding: 4px 12px; border-radius: 20px;
}
.tm-pd-rel-tag { display: block; font-size: 14.5px; color: #57503f; line-height: 1.55; }
.tm-pd-rel-name { margin: 0 0 10px; font-size: 19px; font-weight: 700; }
.tm-pd-rel-name a { color: var(--tm-navy); text-decoration: none; }
.tm-pd-rel-name a:hover { color: #16b6cf; }
.tm-pd-rel-btn {
	display: block; text-align: center; text-decoration: none;
	background: #16b6cf; color: #fff; font-weight: 700; font-size: 15px;
	padding: 12px 18px; border-radius: 40px;
	transition: background .2s ease, box-shadow .2s ease;
}
.tm-pd-rel-btn:hover { background: #0e93a9; box-shadow: 0 10px 22px rgba(22, 182, 207, .34); }

@media ( max-width: 900px ) {
	.tm-pd-related-grid { grid-template-columns: 1fr; }
}
@media ( max-width: 680px ) {
	.tm-pd-gallery {
		grid-template-columns: 1fr 1fr;
		grid-template-rows: 220px 150px 150px;
		grid-template-areas:
			"c  c"
			"lt rt"
			"lb rb";
		height: auto;
	}
	.tm-pd-card { padding: 24px 20px 28px; }
	.tm-pd-title { font-size: 24px; }
	.tm-pd-duration { padding: 9px 13px; min-width: 62px; border-radius: 13px; }
	.tm-pd-duration strong { font-size: 21px; }
	.tm-pd-route { padding: 13px 15px; }
	/* Itinerary: tighten the day column and re-anchor the connector line */
	.tm-itin-item { grid-template-columns: 52px 1fr; column-gap: 16px; }
	.tm-itin-day { width: 50px; min-height: 50px; border-radius: 13px; }
	.tm-itin-day-num { font-size: 21px; }
	.tm-itin-day-word { font-size: 9px; }
	.tm-itin-item::before { left: 59px; }
	.tm-itin-node { left: 52px; }
	.tm-itin-title { font-size: 15.5px; }
	.tm-itin-desc { padding-left: 18px; padding-right: 18px; }
	.tm-itin-stay { margin-left: 18px; margin-right: 18px; }
}


/* ==========================================================================
   ABOUT US TEMPLATE
   ========================================================================== */
.tm-about { padding: 0 0 96px; }

/* Highlighted word, echoing the reference's boxed accent */
.tm-about .tm-mark {
	background: #16b6cf; color: #fff; padding: 0 .28em; border-radius: 6px;
	box-decoration-break: clone; -webkit-box-decoration-break: clone;
}
.tm-script-light { color: #7fe0ef; }

/* Solid teal button (used across the About page) */
.tm-btn-solid {
	background: #f2960b; color: #fff; border-color: #f2960b;
	box-shadow: 0 12px 26px -12px rgba(242, 150, 11, .8);
}
.tm-btn-solid:hover { background: #c9720a; border-color: #c9720a; color: #fff; }

/* --- Intro ---------------------------------------------------------------- */
.tm-about-intro { padding: clamp(56px, 8vw, 100px) 0 clamp(40px, 6vw, 72px); }
.tm-about-intro-grid {
	display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(30px, 5vw, 72px);
	align-items: center;
}
.tm-about-intro-copy { display: flex; flex-direction: column; gap: 20px; align-items: flex-start; }
.tm-about-intro-copy p { color: var(--tm-text); font-size: 16.5px; line-height: 1.8; margin: 0; }
.tm-about-intro-copy .tm-btn { margin-top: 8px; }

.tm-about-intro-media { position: relative; min-height: 460px; }
.tm-about-img { position: absolute; background-size: cover; background-position: center; border-radius: 20px; box-shadow: 0 24px 50px rgba(9, 20, 33, .2); }
.tm-about-img-main { top: 0; right: 0; width: 74%; height: 100%; }
.tm-about-img-sub  { left: 0; bottom: 34px; width: 46%; height: 56%; border: 6px solid #fff; }
.tm-about-badge {
	position: absolute; left: -6px; top: 30px; z-index: 2;
	background: var(--tm-navy); color: #fff; border-radius: 16px;
	padding: 16px 20px; display: flex; align-items: center; gap: 12px; line-height: 1.1;
	box-shadow: 0 18px 40px rgba(9, 20, 33, .28);
}
.tm-about-badge strong { font-size: 30px; color: #16b6cf; }
.tm-about-badge span { font-size: 12.5px; color: #cdd7e0; }

@media ( max-width: 900px ) {
	.tm-about-intro-grid { grid-template-columns: 1fr; }
	.tm-about-intro-media { min-height: 380px; max-width: 520px; }
}

/* --- Stats ---------------------------------------------------------------- */
.tm-about-stats { padding: clamp(28px, 4vw, 44px) 0; }
.tm-about-stats-row {
	display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px;
	background: var(--tm-navy); border-radius: 20px; padding: clamp(26px, 4vw, 40px);
}
.tm-about-stat { text-align: center; color: #fff; position: relative; }
.tm-about-stat + .tm-about-stat::before {
	content: ""; position: absolute; left: -10px; top: 50%; transform: translateY(-50%);
	width: 1px; height: 46px; background: rgba(255, 255, 255, .14);
}
.tm-about-stat strong { display: block; font-size: clamp(28px, 3.4vw, 40px); font-weight: 800; color: #16b6cf; letter-spacing: -.5px; font-variant-numeric: tabular-nums; }
.tm-about-stat span { font-size: 14px; color: #c3cdd7; }
@media ( max-width: 620px ) {
	.tm-about-stats-row { grid-template-columns: repeat(2, 1fr); gap: 28px 20px; }
	.tm-about-stat:nth-child(odd)::before { display: none; }
}

/* --- What we do ----------------------------------------------------------- */
.tm-about-feats { padding: clamp(56px, 8vw, 96px) 0 clamp(30px, 5vw, 60px); }
.tm-about-feats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
@media ( max-width: 900px ) { .tm-about-feats-grid { grid-template-columns: repeat(2, 1fr); } }
@media ( max-width: 560px ) { .tm-about-feats-grid { grid-template-columns: 1fr; } }
.tm-about-feat {
	background: #fff; border: 1px solid #e7eef3; border-radius: 18px; padding: 30px 28px 32px;
	transition: transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s ease, border-color .3s ease;
}
.tm-about-feat:hover { transform: translateY(-6px); box-shadow: 0 24px 46px rgba(9, 20, 33, .1); border-color: #cdeaf1; }
.tm-about-feat-ico {
	display: inline-flex; align-items: center; justify-content: center;
	width: 58px; height: 58px; border-radius: 15px; margin-bottom: 20px;
	background: #eaf8fb; color: #0e93a9;
	transition: background .3s ease, color .3s ease;
}
.tm-about-feat:hover .tm-about-feat-ico { background: #16b6cf; color: #fff; }
.tm-about-feat-ico svg { width: 28px; height: 28px; }
.tm-about-feat-title { margin: 0 0 10px; font-size: 20px; font-weight: 700; color: var(--tm-navy); }
.tm-about-feat-text { margin: 0; font-size: 15px; line-height: 1.7; color: var(--tm-muted); }

/* --- CTA band ------------------------------------------------------------- */
.tm-about-cta {
	background-size: cover; background-position: center; border-radius: 0;
	margin: clamp(40px, 6vw, 72px) 0;
}
.tm-about-cta-in {
	display: flex; align-items: center; justify-content: space-between; gap: 30px; flex-wrap: wrap;
	padding: clamp(44px, 6vw, 72px) 0;
}
.tm-about-cta-copy { display: flex; flex-direction: column; gap: 10px; max-width: 640px; }
.tm-about-cta-copy h2 { margin: 0; color: #fff; font-size: clamp(26px, 3.6vw, 40px); font-weight: 800; letter-spacing: -.5px; }
.tm-about-cta-copy p { margin: 0; color: #cdd7e0; font-size: 17px; }

/* --- Stories -------------------------------------------------------------- */
.tm-about-stories { padding: clamp(30px, 5vw, 60px) 0 0; }
.tm-about-stories-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
@media ( max-width: 900px ) { .tm-about-stories-grid { grid-template-columns: 1fr; max-width: 620px; margin-inline: auto; } }
.tm-about-story {
	position: relative; margin: 0; background: #fff; border: 1px solid #e7eef3;
	border-radius: 18px; padding: 34px 28px 28px; box-shadow: 0 14px 34px rgba(9, 20, 33, .06);
}
.tm-about-quote { position: absolute; top: 10px; right: 24px; font-family: Georgia, serif; font-size: 72px; line-height: 1; color: #d7eef4; }
.tm-about-story blockquote { margin: 0 0 22px; font-size: 16px; line-height: 1.75; color: #33424d; position: relative; z-index: 1; }
.tm-about-story figcaption { display: flex; flex-direction: column; gap: 2px; border-top: 1px solid #eef2f5; padding-top: 16px; }
.tm-about-story figcaption strong { font-size: 16px; font-weight: 700; color: var(--tm-navy); }
.tm-about-story figcaption span { font-size: 13.5px; color: var(--tm-muted); }

/* ==========================================================================
   CONTACT US TEMPLATE
   ========================================================================== */
.tm-contact { padding: 0 0 0; }
.tm-contact .tm-script { color: #c9720a; }
.tm-contact .tm-mark {
	background: #f2960b; color: #fff; padding: 0 .28em; border-radius: 6px;
	box-decoration-break: clone; -webkit-box-decoration-break: clone;
}

/* --- Info columns --------------------------------------------------------- */
.tm-contact-info { position: relative; padding: clamp(56px, 8vw, 96px) 0; }
/* Faint dotted-globe texture, a nod to the reference's world map */
.tm-contact-info::before {
	content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; opacity: .5;
	background-image: radial-gradient(rgba(242, 150, 11, .16) 1.1px, transparent 1.3px);
	background-size: 18px 18px;
	-webkit-mask-image: radial-gradient(ellipse 60% 70% at 50% 45%, #000 30%, transparent 72%);
	mask-image: radial-gradient(ellipse 60% 70% at 50% 45%, #000 30%, transparent 72%);
}
.tm-contact-info-grid {
	position: relative; z-index: 1;
	display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(28px, 5vw, 64px);
}
@media ( max-width: 860px ) { .tm-contact-info-grid { grid-template-columns: 1fr; max-width: 460px; margin-inline: auto; } }

.tm-contact-col { display: flex; flex-direction: column; gap: 16px; }
.tm-contact-ico {
	display: inline-flex; align-items: center; justify-content: center;
	width: 54px; height: 54px; border-radius: 50%;
}
.tm-contact-ico svg { width: 24px; height: 24px; }
.tm-contact-ico-teal  { background: #fbeece; color: #c9720a; }
.tm-contact-ico-amber { background: #f2960b; color: #fff; }
.tm-contact-ico-navy  { background: var(--tm-navy); color: #fff; }
.tm-contact-col-title { margin: 0; font-size: 22px; font-weight: 700; color: var(--tm-navy); }
.tm-contact-item { display: flex; flex-direction: column; gap: 4px; }
.tm-contact-label { font-size: 13px; font-weight: 700; letter-spacing: .04em; color: var(--tm-navy); }
.tm-contact-item p { margin: 0; font-size: 15px; line-height: 1.6; color: var(--tm-muted); }
.tm-contact-item a { color: var(--tm-muted); text-decoration: none; transition: color .2s ease; }
.tm-contact-item a:hover { color: #c9720a; }

/* --- Form ----------------------------------------------------------------- */
.tm-contact-form-wrap { padding: 0 0 clamp(72px, 10vw, 120px); }
.tm-contact-form-card {
	max-width: 780px; margin-inline: auto;
	background: var(--tm-bg-soft); border: 1px solid #eaddc8; border-radius: 22px;
	padding: clamp(34px, 5vw, 60px) clamp(24px, 5vw, 64px);
	box-shadow: 0 30px 60px -30px rgba(9, 20, 33, .3);
}
.tm-contact-form-card .tm-head { margin-bottom: 34px; }
.tm-contact-form-lead { margin: 16px auto 0; max-width: 52ch; color: var(--tm-text); font-size: 16px; line-height: 1.7; }

.tm-contact-form { display: flex; flex-direction: column; gap: 18px; }
.tm-contact-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
@media ( max-width: 560px ) { .tm-contact-row { grid-template-columns: 1fr; } }
.tm-cf-field { display: flex; flex-direction: column; gap: 8px; }
.tm-cf-field label { font-size: 13.5px; font-weight: 600; color: var(--tm-navy); }
.tm-cf-field input, .tm-cf-field textarea {
	width: 100%; padding: 14px 16px; border: 1px solid #d9e2e8; border-radius: 10px;
	font-family: inherit; font-size: 15px; color: var(--tm-navy); background: #fff;
	transition: border-color .2s ease, box-shadow .2s ease;
}
.tm-cf-field textarea { resize: vertical; min-height: 120px; }
.tm-cf-field input:focus, .tm-cf-field textarea:focus {
	outline: 0; border-color: #f2960b; box-shadow: 0 0 0 3px rgba(242, 150, 11, .16);
}
.tm-cf-submit { align-self: flex-start; margin-top: 6px; }
.tm-cf-note {
	margin: 4px 0 0; font-size: 14.5px; padding: 12px 16px; border-radius: 10px;
}
.tm-cf-note.is-ok { background: #e7f7ec; color: #1c7a43; border: 1px solid #bfe6cc; }

/* ==========================================================================
   BLOG LISTING TEMPLATE
   ========================================================================== */
.tm-bloglist { padding: 0 0 clamp(72px, 10vw, 120px); }
.tm-bloglist-body { padding-top: clamp(56px, 8vw, 96px); }

.tm-bloglist-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 4vw, 48px); }
@media ( max-width: 780px ) { .tm-bloglist-grid { grid-template-columns: 1fr; max-width: 560px; margin-inline: auto; } }

.tm-blogcard { display: flex; flex-direction: column; }
.tm-blogcard-media {
	position: relative; display: block; border-radius: 16px; overflow: hidden;
	aspect-ratio: 16 / 11; box-shadow: 0 18px 40px rgba(9, 20, 33, .12);
}
.tm-blogcard-img {
	width: 100%; height: 100%; object-fit: cover; display: block;
	transition: transform .8s cubic-bezier(.2,.7,.2,1);
}
.tm-blogcard-media:hover .tm-blogcard-img { transform: scale(1.05); }
.tm-blogcard-date {
	position: absolute; left: 14px; bottom: 14px;
	background: var(--tm-navy); color: #fff; font-size: 12.5px; font-weight: 700;
	padding: 6px 14px; border-radius: 6px; letter-spacing: .02em;
}
.tm-blogcard-body { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: 22px 4px 0; }
.tm-blogcard-title { margin: 0; font-size: clamp(20px, 2vw, 24px); font-weight: 700; line-height: 1.25; }
.tm-blogcard-title a { color: var(--tm-navy); text-decoration: none; transition: color .2s ease; }
.tm-blogcard-title a:hover { color: #16b6cf; }
.tm-blogcard-excerpt { margin: 0; font-size: 15.5px; line-height: 1.7; color: var(--tm-muted); }
.tm-blogcard-btn { margin-top: 6px; }

/* Empty state */
.tm-bloglist-empty { text-align: center; padding: 40px 0 20px; }
.tm-bloglist-empty p { margin: 14px auto 0; max-width: 44ch; color: var(--tm-muted); }
.tm-bloglist-empty a { color: #16b6cf; }

/* Pagination */
.tm-bloglist-pager { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: clamp(44px, 6vw, 72px); }
.tm-bloglist-pager .page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 44px; height: 44px; padding: 0 14px; border-radius: 10px;
	border: 1px solid #dbe4ea; background: #fff; color: var(--tm-navy);
	font-size: 15px; font-weight: 600; text-decoration: none;
	transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.tm-bloglist-pager a.page-numbers:hover { border-color: #16b6cf; color: #16b6cf; }
.tm-bloglist-pager .page-numbers.current { background: #16b6cf; border-color: #16b6cf; color: #fff; }
.tm-bloglist-pager .page-numbers.dots { border: 0; background: transparent; }

/* ==========================================================================
   FESTIVALS TEMPLATE — wide horizontal cards
   ========================================================================== */
.tm-fest { padding: 0 0 clamp(72px, 10vw, 120px); background: #f5f1e5; }
.tm-fest .tm-pkg-banner { border-bottom-color: #f2960b; }
.tm-fest .tm-pkg-crumb-sep,
.tm-fest .tm-pkg-crumb a:hover { color: #f2960b; }
.tm-fest-body { padding-top: clamp(56px, 8vw, 96px); }
.tm-fest .tm-script { color: #c9720a; }
.tm-fest .tm-mark {
	background: #f2960b; color: #fff; padding: 0 .28em; border-radius: 6px;
	box-decoration-break: clone; -webkit-box-decoration-break: clone;
}
.tm-fest-lead { margin: 16px auto 0; max-width: 60ch; color: var(--tm-text); font-size: 16.5px; line-height: 1.7; }

.tm-fest-list { display: flex; flex-direction: column; gap: clamp(30px, 4vw, 46px); margin-top: clamp(44px, 5vw, 64px); }

.tm-fest-card {
	display: grid; grid-template-columns: 42% 1fr; align-items: stretch;
	background: #fff; border: 1px solid #edf2f5; border-radius: 24px; overflow: hidden;
	box-shadow: 0 2px 4px rgba(9, 20, 33, .03), 0 22px 50px -26px rgba(9, 20, 33, .3);
	transition: transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s ease;
}
.tm-fest-card:hover { transform: translateY(-5px); box-shadow: 0 4px 8px rgba(9, 20, 33, .04), 0 40px 70px -30px rgba(9, 20, 33, .4); }
@media ( max-width: 780px ) { .tm-fest-card { grid-template-columns: 1fr; } }

.tm-fest-media { position: relative; overflow: hidden; min-height: 260px; }
@media ( max-width: 780px ) { .tm-fest-media { min-height: 220px; } }

/* Image slider inside the card */
.tm-fest-slider { position: absolute; inset: 0; }
.tm-fest-slides { position: absolute; inset: 0; }
.tm-fest-slide {
	position: absolute; inset: 0; background-size: cover; background-position: center;
	opacity: 0; visibility: hidden; transform: scale(1.04);
	transition: opacity .7s ease, visibility .7s, transform 5s ease;
}
.tm-fest-slide.is-active { opacity: 1; visibility: visible; transform: scale(1); }

/* Arrows */
.tm-fest-arw {
	position: absolute; top: 50%; transform: translateY(-50%); z-index: 2;
	width: 42px; height: 42px; border: 0; border-radius: 50%; cursor: pointer;
	background: rgba(255, 255, 255, .92); color: var(--tm-navy);
	font-size: 22px; line-height: 1; display: inline-flex; align-items: center; justify-content: center;
	box-shadow: 0 6px 16px rgba(9, 20, 33, .28);
	opacity: 1; transition: background .2s ease, color .2s ease, transform .2s ease, opacity .3s ease;
}
.tm-fest-prev { left: 14px; }
.tm-fest-next { right: 14px; }
.tm-fest-arw:hover { background: #f2960b; color: #fff; transform: translateY(-50%) scale(1.08); }
.tm-fest-arw:active { transform: translateY(-50%) scale(.96); }

/* Dots */
.tm-fest-dots { position: absolute; left: 0; right: 0; bottom: 14px; z-index: 2; display: flex; justify-content: center; gap: 8px; }
.tm-fest-dot {
	width: 9px; height: 9px; border-radius: 50%; border: 0; padding: 0; cursor: pointer;
	background: rgba(255, 255, 255, .55); box-shadow: 0 1px 3px rgba(0,0,0,.3);
	transition: background .2s ease, transform .2s ease;
}
.tm-fest-dot:hover { background: rgba(255, 255, 255, .85); }
.tm-fest-dot.is-active { background: #fff; transform: scale(1.25); }
@media ( prefers-reduced-motion: reduce ) { .tm-fest-slide { transition: opacity .3s ease, visibility .3s; transform: none; } }

.tm-fest-content {
	padding: clamp(30px, 3.6vw, 56px) clamp(28px, 3.4vw, 54px);
	display: flex; flex-direction: column; justify-content: center;
}

/* Header: serif title + italic tagline + accent rule */
.tm-fest-head { margin-bottom: 4px; }
.tm-fest-name {
	margin: 0;
	font-family: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
	font-size: clamp(26px, 2.9vw, 38px); font-weight: 600; line-height: 1.12;
	letter-spacing: -.01em; color: var(--tm-navy);
}
.tm-fest-tagline {
	margin: 13px 0 0;
	font-family: "Iowan Old Style", Palatino, Georgia, serif; font-style: italic;
	font-size: clamp(16px, 1.5vw, 19px); line-height: 1.45; color: #c9720a;
}
.tm-fest-rule {
	display: block; width: 54px; height: 3px; border-radius: 3px; margin: 24px 0 28px;
	background: linear-gradient(90deg, #f2960b, #f2960b 55%, rgba(242, 150, 11, 0));
}

/* Body */
.tm-fest-desc { font-size: 16px; line-height: 1.85; color: var(--tm-text); max-width: 66ch; }
.tm-fest-desc > :last-child { margin-bottom: 0; }
.tm-fest-desc p { margin: 0 0 18px; }
.tm-fest-desc strong { color: var(--tm-navy); font-weight: 700; }

/* Section subheadings (migrated from the inline labels) */
.tm-fest-sub {
	margin: 30px 0 14px; font-family: inherit; font-size: 12.5px; font-weight: 700;
	letter-spacing: .15em; text-transform: uppercase; color: var(--tm-navy);
	display: flex; align-items: center; gap: 14px;
}
.tm-fest-sub::after {
	content: ""; flex: 1; height: 1px;
	background: linear-gradient(90deg, #dfeaef, rgba(223, 234, 239, 0));
}
.tm-fest-desc > .tm-fest-sub:first-child { margin-top: 0; }

/* Destinations list — elegant map-pin cards */
.tm-fest-desc ul {
	margin: 6px 0 22px; padding: 0; list-style: none;
	display: grid; gap: 12px;
}
.tm-fest-desc ul li {
	position: relative; padding: 15px 20px 15px 54px;
	line-height: 1.62; color: var(--tm-text);
	background: linear-gradient(180deg, #fffdf9, #fdf5e7);
	border: 1px solid rgba(242, 150, 11, .18);
	border-radius: 14px;
	box-shadow: 0 8px 20px -15px rgba(201, 114, 10, .4);
	transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.tm-fest-desc ul li:hover {
	transform: translateX(4px);
	border-color: rgba(242, 150, 11, .42);
	box-shadow: 0 14px 28px -16px rgba(201, 114, 10, .5);
}
.tm-fest-desc ul li::before {
	content: ""; position: absolute; left: 15px; top: 14px;
	width: 25px; height: 25px; border-radius: 50%;
	border: 1px solid rgba(242, 150, 11, .42);
	background:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23c9720a'%3E%3Cpath d='M12 2C7.9 2 4.5 5.4 4.5 9.5c0 5.3 6.6 11.6 7 12 .3.3.7.3 1 0 .4-.4 7-6.7 7-12C19.5 5.4 16.1 2 12 2zm0 10.2a2.7 2.7 0 110-5.4 2.7 2.7 0 010 5.4z'/%3E%3C/svg%3E") 50% 54% / 13px no-repeat,
		radial-gradient(circle at 50% 38%, #ffffff, #fde2c9 120%);
	box-shadow: 0 3px 8px -3px rgba(201, 114, 10, .5);
}
.tm-fest-desc ul li strong {
	color: #c9720a; font-weight: 700; font-size: 1.05em; letter-spacing: .005em;
	font-family: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
}

.tm-fest-empty { text-align: center; padding: 40px 0; color: var(--tm-muted); }

/* ==========================================================================
   UNPACKING THE WILD HEART TEMPLATE
   A warm, earthy conservation section (its own palette by design).
   ========================================================================== */
.tm-wild {
	--wild-cream: #f5f1e5;
	--wild-ink: #201d16;
	--wild-muted: #5f5a4d;
	--wild-orange: #f2960b;
	--wild-orange-dark: #d97e00;
	padding: 0;
	background: var(--wild-cream);
	color: var(--wild-ink);
}
/* A vertical list of alternating image / content rows. */
.tm-wild-list {
	display: flex; flex-direction: column; gap: clamp(48px, 8vw, 110px);
	padding: clamp(48px, 7vw, 96px) 24px;
}
.tm-wild-row {
	display: grid; grid-template-columns: 0.72fr 1.4fr; gap: clamp(30px, 4vw, 64px);
	align-items: start;
}
/* Image keeps the same (narrow) column in every row; alternate rows only
   swap the left/right side, so every section's image is the same width. */
.tm-wild-media   { grid-column: 1; grid-row: 1; }
.tm-wild-content { grid-column: 2; grid-row: 1; }
.tm-wild-row--flip { grid-template-columns: 1.4fr 0.72fr; }
.tm-wild-row--flip .tm-wild-content { grid-column: 1; }
.tm-wild-row--flip .tm-wild-media   { grid-column: 2; }
@media ( max-width: 900px ) {
	.tm-wild-row,
	.tm-wild-row--flip { grid-template-columns: 1fr; }
	.tm-wild-media, .tm-wild-content,
	.tm-wild-row--flip .tm-wild-media,
	.tm-wild-row--flip .tm-wild-content { grid-column: auto; grid-row: auto; }
}

/* ---- 3D scroll-reveal (progressive enhancement — the hidden state is only
   armed once JS adds .is-3d, so content still shows if JS is off) ---- */
.tm-wild { overflow-x: clip; }
.tm-wild-row { perspective: 1200px; perspective-origin: 50% 42%; }
@media ( prefers-reduced-motion: no-preference ) {
	.tm-wild-list.is-3d .tm-wild-media,
	.tm-wild-list.is-3d .tm-wild-content {
		opacity: 0; backface-visibility: hidden; will-change: transform, opacity;
		transition: transform 1.05s cubic-bezier(.19,.78,.24,1), opacity .8s ease;
	}
	/* Default rows: image swings in from the left, card from the right. */
	.tm-wild-list.is-3d .tm-wild-media {
		transform: rotateY(22deg) translateZ(-100px) translateX(-40px);
		transform-origin: left center;
	}
	.tm-wild-list.is-3d .tm-wild-content {
		transform: rotateY(-17deg) translateZ(-72px) translateX(46px);
		transform-origin: right center; transition-delay: .12s;
	}
	/* Flipped rows mirror the geometry (image on the right). */
	.tm-wild-list.is-3d .tm-wild-row--flip .tm-wild-media {
		transform: rotateY(-22deg) translateZ(-100px) translateX(40px);
		transform-origin: right center;
	}
	.tm-wild-list.is-3d .tm-wild-row--flip .tm-wild-content {
		transform: rotateY(17deg) translateZ(-72px) translateX(-46px);
		transform-origin: left center;
	}
	/* Revealed state — settle flat. */
	.tm-wild-list.is-3d .tm-wild-row.is-in .tm-wild-media,
	.tm-wild-list.is-3d .tm-wild-row.is-in .tm-wild-content {
		opacity: 1; transform: rotateY(0) translateZ(0) translateX(0);
	}
}

/* Image */
.tm-wild-media { margin: 0; }
.tm-wild-media img {
	width: 100%; height: 100%; object-fit: cover;
	border-radius: 34px; aspect-ratio: 88 / 104;
	box-shadow: 0 30px 60px -28px rgba(32, 29, 22, .5);
	transition: transform .6s cubic-bezier(.2,.7,.2,1), box-shadow .6s ease;
}
/* Gentle continuous 3D lift when hovering the image. */
.tm-wild-media:hover img {
	transform: scale(1.03) rotate(-.4deg);
	box-shadow: 0 44px 84px -26px rgba(32, 29, 22, .62);
}

/* Content */
.tm-wild-content {
	display: flex; flex-direction: column;
	background: #fffdf8; border-radius: 32px; padding: clamp(34px, 3.8vw, 60px);
	box-shadow: 0 40px 80px -42px rgba(32, 29, 22, .45);
}

/* Eyebrow: index number + region label */
.tm-wild-eyebrow { display: flex; align-items: center; gap: 16px; margin-bottom: 20px; }
.tm-wild-num {
	font-family: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
	font-size: 20px; font-weight: 600; color: var(--wild-orange-dark);
	font-variant-numeric: tabular-nums; line-height: 1;
}
.tm-wild-num::after {
	content: ""; display: inline-block; width: 34px; height: 2px; margin: 0 0 5px 14px;
	background: var(--wild-orange); border-radius: 2px; vertical-align: middle;
}
.tm-wild-region {
	display: inline-flex; align-items: center; gap: 7px;
	font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
	color: var(--wild-muted);
}
.tm-wild-region svg { width: 15px; height: 15px; color: var(--wild-orange-dark); flex: 0 0 auto; }

.tm-wild-title {
	margin: 0;
	font-family: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
	font-size: clamp(28px, 3.2vw, 42px); font-weight: 600; line-height: 1.12;
	letter-spacing: -.01em; color: var(--wild-ink); text-wrap: balance;
}
.tm-wild-rule {
	display: block; width: 56px; height: 3px; border-radius: 3px; margin: 24px 0 0;
	background: linear-gradient(90deg, var(--wild-orange), var(--wild-orange) 55%, rgba(242, 150, 11, 0));
}
.tm-wild-empty { text-align: center; padding: 40px 0; color: var(--wild-muted); }

/* Nested cream panel inside the white content card */
.tm-wild-card {
	position: relative; margin-top: clamp(26px, 3.2vw, 40px);
	background: var(--wild-cream); border-radius: 22px;
	padding: clamp(28px, 3vw, 40px) clamp(28px, 3vw, 40px) clamp(28px, 3vw, 40px) clamp(30px, 3.2vw, 44px);
}
/* Slim accent spine on the left edge */
.tm-wild-card::before {
	content: ""; position: absolute; left: 0; top: 22px; bottom: 22px; width: 4px;
	border-radius: 0 4px 4px 0; background: var(--wild-orange); opacity: .55;
}
.tm-wild-card-desc { font-size: 16px; line-height: 1.8; color: var(--wild-muted); }
.tm-wild-card-desc p { margin: 0 0 16px; }
.tm-wild-card-desc > :last-child { margin-bottom: 0; }
/* Drop cap on the opening paragraph (direct child only, so it never leaks
   into paragraphs nested inside a blockquote/pull-quote) */
.tm-wild-card-desc > p:first-of-type::first-letter {
	float: left; font-family: "Iowan Old Style", Palatino, Georgia, serif;
	font-size: 3.1em; line-height: .82; font-weight: 600;
	color: var(--wild-ink); margin: 6px 12px 0 0;
}
/* Founder's insight / pull quote */
.tm-wild-quote {
	position: relative; margin: 22px 0 0; padding: 20px 0 4px 26px;
	border-top: 1px solid rgba(32, 29, 22, .12);
	font-family: "Iowan Old Style", Palatino, Georgia, serif; font-style: italic;
	font-size: 17px; line-height: 1.6; color: var(--wild-ink);
}
.tm-wild-quote::before {
	content: "\201C"; position: absolute; left: -6px; top: 12px;
	font-family: Georgia, serif; font-style: normal; font-size: 46px; line-height: 1;
	color: var(--wild-orange);
}
.tm-wild-quote-label {
	display: block; margin-bottom: 8px; font-family: inherit; font-style: normal;
	font-size: 11.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
	color: var(--wild-orange-dark);
}
/* Rich destination-profile entries: section headings, bold labels, highlights */
.tm-wild-card-desc h4 {
	margin: 32px 0 15px; font-family: "Iowan Old Style", Palatino, Georgia, serif;
	font-size: 13px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
	color: var(--wild-orange-dark); padding-bottom: 9px; border-bottom: 1px solid rgba(32, 29, 22, .1);
}
.tm-wild-card-desc strong { color: var(--wild-ink); font-weight: 700; }
.tm-wild-card-desc em { color: var(--wild-orange-dark); font-style: italic; font-size: .92em; }

/* ==========================================================================
   PACKAGE DETAIL — WARM "EXPERIENCES" SKIN
   Reskins the detailed-package pages with the cream / editorial palette used
   by the Unpacking Experiences template. Scoped to .tm-pd so it never leaks
   to other templates. Remove this block to restore the teal look.
   ========================================================================== */
.tm-pd {
	--wild-cream: #f5f1e5;
	--wild-cream-2: #efe8d7;
	--wild-card: #fffdf8;
	--wild-ink: #241f17;
	--wild-muted: #5f5a4d;
	--wild-orange: #f2960b;
	--wild-orange-dark: #c9720a;
	--wild-line: #ece2cd;
	--pd-serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
	background: var(--wild-cream);
}

/* Retint the itinerary accent tokens (declared on .tm-pd-itin-section). */
.tm-pd .tm-pd-itin-section { --itin-a: #ea8b08; --itin-b: #f4a52a; --itin-deep: #b96700; }

/* Title + summary */
.tm-pd .tm-pd-title { font-family: var(--pd-serif); font-weight: 600; letter-spacing: -.01em; color: var(--wild-ink); }
.tm-pd .tm-pd-lead { color: var(--wild-muted); }

/* Duration badge */
.tm-pd .tm-pd-duration {
	background: linear-gradient(158deg, var(--wild-orange), var(--wild-orange-dark));
	box-shadow: 0 12px 24px rgba(201, 114, 10, .30);
}
.tm-pd .tm-pd-duration:hover { box-shadow: 0 16px 30px rgba(201, 114, 10, .40); }

/* Route stepper */
.tm-pd .tm-pd-route { background: linear-gradient(120deg, #fbf4e5, #f5ecd7); border-color: var(--wild-line); }
.tm-pd .tm-pd-route-label {
	background: linear-gradient(158deg, var(--wild-orange), var(--wild-orange-dark));
	box-shadow: 0 6px 14px rgba(201, 114, 10, .26);
}
.tm-pd .tm-pd-route-stop { color: var(--wild-ink); }
.tm-pd .tm-pd-route-dot {
	background: radial-gradient(circle at 35% 30%, #f7b64a, #b96700);
	box-shadow: 0 0 0 4px rgba(242, 150, 11, .16);
}
.tm-pd .tm-pd-route-stop:not(:last-child)::after { background: linear-gradient(90deg, #e6c68f, #f0dcb2); }

/* Section headings */
.tm-pd .tm-pd-panel-title,
.tm-pd .tm-pd-related-title { font-family: var(--pd-serif); font-weight: 600; color: var(--wild-ink); }
.tm-pd .tm-pd-panel-title::before { background: linear-gradient(90deg, var(--wild-orange), #f7a827); }

/* Cards → warm white on cream */
.tm-pd .tm-pd-card,
.tm-pd .tm-itin-card,
.tm-pd .tm-pd-rel-card { background: var(--wild-card); border-color: var(--wild-line); }

/* Itinerary */
.tm-pd .tm-itin-title { font-family: var(--pd-serif); font-weight: 600; font-size: 18.5px; color: var(--wild-ink); }
.tm-pd .tm-itin-desc p { color: var(--wild-muted); }
.tm-pd .tm-itin-chev { background: #f8efdc; }
.tm-pd .tm-itin-head:hover .tm-itin-chev { background: #f2e6cd; }
.tm-pd .tm-itin-item.is-open .tm-itin-head { background: linear-gradient(90deg, rgba(242, 150, 11, .08), rgba(242, 150, 11, 0)); }
.tm-pd .tm-itin-item.is-open .tm-itin-card { border-color: #e8d8b8; }
.tm-pd .tm-itin-item.is-reached .tm-itin-node { box-shadow: 0 0 0 5px rgba(242, 150, 11, .17); }
.tm-pd .tm-itin-stay { background: #faf3e5; border-color: var(--wild-line); }

/* Closing note → editorial pull-quote feel */
.tm-pd .tm-itin-closing {
	background: linear-gradient(120deg, #fbf4e5, #f5ecd7); border-color: var(--wild-line);
	font-family: var(--pd-serif); color: #4a4335;
}

/* Related trips */
.tm-pd .tm-pd-rel-name { font-family: var(--pd-serif); font-weight: 600; letter-spacing: -.01em; }
.tm-pd .tm-pd-rel-name a { color: var(--wild-ink); }
.tm-pd .tm-pd-rel-name a:hover,
.tm-pd .tm-pd-rel-tags { color: var(--wild-orange-dark); }
.tm-pd .tm-pd-rel-tags { color: var(--wild-muted); }
.tm-pd .tm-pd-rel-btn { background: var(--wild-orange); }
.tm-pd .tm-pd-rel-btn:hover { background: var(--wild-orange-dark); box-shadow: 0 10px 22px rgba(242, 150, 11, .34); }
.tm-pd .tm-pd-rel-fav:hover { background: var(--wild-orange); }

/* Banner underline + breadcrumb accents → warm */
.tm-pd .tm-pkg-banner { border-bottom-color: var(--wild-orange); }
.tm-pd .tm-pkg-crumb-sep,
.tm-pd .tm-pkg-crumb a:hover { color: var(--wild-orange); }

/* Decorative drop cap on each day's opening paragraph */
.tm-pd .tm-itin-desc p:first-child::first-letter {
	float: left; font-family: var(--pd-serif);
	font-size: 2.9em; line-height: .78; font-weight: 700;
	color: var(--wild-orange-dark); margin: 7px 10px -2px 0;
}
@media ( max-width: 680px ) {
	.tm-pd .tm-itin-desc p:first-child::first-letter { font-size: 2.5em; margin-right: 8px; }
}

/* ==========================================================================
   FOOTER — WARM SKIN (GLOBAL)
   Scoped to the package template body class so the footer matches the warm
   "Experiences" palette on those pages, while staying teal everywhere else.
   ========================================================================== */
:root {
	--wf-orange: #f2960b;
	--wf-orange-dark: #c9720a;
	--wf-serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
}
/* Newsletter panel */
.tm-foot-news { background: linear-gradient(120deg, #fbf4e5, #f4ecd6); border-color: #e8d8b8; }
.tm-foot-news::after { background: radial-gradient(circle, rgba(242, 150, 11, .16), rgba(242, 150, 11, 0) 70%); }
.tm-foot-news-kicker { color: var(--wf-orange-dark); }
.tm-foot-news-kicker::before { background: linear-gradient(90deg, var(--wf-orange), #f7a827); }
.tm-foot-news-title { font-family: var(--wf-serif); font-weight: 600; color: #241f17; }
.tm-foot-news-form input:focus { border-color: var(--wf-orange); box-shadow: 0 0 0 4px rgba(242, 150, 11, .14); }
/* Subscribe button */
.tm-foot-subscribe { background: linear-gradient(120deg, var(--wf-orange), var(--wf-orange-dark)); box-shadow: 0 12px 24px rgba(201, 114, 10, .28); }
.tm-foot-subscribe:hover { box-shadow: 0 16px 30px rgba(201, 114, 10, .38); }
/* Column headings */
.tm-foot-title { font-family: var(--wf-serif); font-weight: 600; color: #241f17; }
.tm-foot-title::after { background: linear-gradient(90deg, var(--wf-orange), #f7a827); }
/* Social + link + contact accents */
.tm-foot-social a { background: #fbeece; color: var(--wf-orange-dark); }
.tm-foot-social a:hover { background: linear-gradient(120deg, var(--wf-orange), var(--wf-orange-dark)); color: #fff; }
.tm-foot-links a::before { color: var(--wf-orange); }
.tm-foot-links a:hover { color: var(--wf-orange-dark); }
.tm-foot-contact a:hover { color: var(--wf-orange-dark); }
.tm-foot-ico { background: #fbeece; color: var(--wf-orange-dark); }
.tm-foot-contact li:hover .tm-foot-ico { background: linear-gradient(120deg, var(--wf-orange), var(--wf-orange-dark)); color: #fff; }
.tm-foot-insta-item::after { background: linear-gradient(160deg, rgba(201, 114, 10, 0), rgba(201, 114, 10, .45)); }

/* ==========================================================================
   HEADER — WARM SKIN (GLOBAL)
   Retints the top bar accent, brand shape, nav accents and CTA to the warm
   "Experiences" palette on package-template pages; teal everywhere else.
   ========================================================================== */
:root {
	--wh-orange: #f2960b;
	--wh-orange-dark: #c9720a;
}
/* Top bar accent + icons */
.tm-topbar::before { background: linear-gradient(90deg, var(--wh-orange), #f7a827); }
.tm-tb-item svg { color: var(--wh-orange-dark); }
/* Brand diagonal shape + logo tagline */
.tm-brand-shape { background: linear-gradient(158deg, #f7a827, #e07f00); }
.tm-logo-text em { color: var(--wh-orange-dark); }
/* Nav links: hover / current + sliding underline */
.tm-nav .tm-menu > li > a:hover,
.tm-nav .tm-menu > .current-menu-item > a { color: var(--wh-orange-dark); }
.tm-nav .tm-menu > li > a::after { background: linear-gradient(90deg, var(--wh-orange), #f7a827); }
/* Dropdown active edge */
.tm-dd li:hover > a,
.tm-dd li.is-open > a { border-left-color: var(--wh-orange); }
/* CTA */
.tm-quote:hover { background: linear-gradient(120deg, var(--wh-orange), var(--wh-orange-dark)); box-shadow: 0 14px 28px rgba(242, 150, 11, .40); }
.tm-lang:hover { border-color: var(--wh-orange); }

/* ==========================================================================
   ABOUT PAGE — WARM ACCENTS + REFERENCE-STYLE SECTIONS
   ========================================================================== */
/* Warm the teal accents to orange, matching the reference and the site skin */
.tm-about .tm-mark { background: #f2960b; }
.tm-about .tm-script { color: #c9720a; }
.tm-about .tm-script-light { color: #f7c777; }
.tm-about .tm-btn-solid { background: #f2960b; border-color: #f2960b; box-shadow: 0 12px 26px -12px rgba(242, 150, 11, .8); }
.tm-about .tm-btn-solid:hover { background: #c9720a; border-color: #c9720a; }
.tm-about-badge strong { color: #f7a827; }
.tm-about-stat strong { color: #f7a827; }
.tm-about-feat-ico { background: #fbeece; color: #c9720a; }
.tm-about-feat:hover .tm-about-feat-ico { background: #f2960b; color: #fff; }
.tm-about-feat:hover { border-color: #f6d9a8; }
.tm-about-quote { color: #f4dcb0; }

/* Full-width scenic banner between the intro and the stats */
.tm-about-wide {
	width: 100vw; margin-left: calc(50% - 50vw);
	height: clamp(260px, 34vw, 440px);
	background-size: cover; background-position: center;
	margin-top: clamp(18px, 3vw, 34px);
}

/* Latest travel stories — full-bleed image cards with overlaid text */
.tm-about-blog { padding: clamp(50px, 7vw, 90px) 0 clamp(18px, 3vw, 36px); }
.tm-about-blog-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
@media ( max-width: 760px ) { .tm-about-blog-grid { grid-template-columns: 1fr; } }
.tm-about-post {
	position: relative; min-height: 400px; display: flex; align-items: flex-end;
	border-radius: 20px; overflow: hidden; text-decoration: none;
	background-size: cover; background-position: center; background-color: #241f17;
	box-shadow: 0 18px 40px rgba(9, 20, 33, .15);
	transition: transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s ease;
}
.tm-about-post::before {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(to top, rgba(9, 20, 33, .92) 4%, rgba(9, 20, 33, .5) 40%, rgba(9, 20, 33, 0) 74%);
}
.tm-about-post::after {
	content: ""; position: absolute; inset: 0; opacity: 0;
	background: linear-gradient(to top, rgba(201, 114, 10, .55), rgba(9, 20, 33, 0) 60%);
	transition: opacity .3s ease;
}
.tm-about-post:hover { transform: translateY(-6px); box-shadow: 0 28px 58px rgba(9, 20, 33, .26); }
.tm-about-post:hover::after { opacity: 1; }
.tm-about-post-body { position: relative; z-index: 1; padding: 32px 34px 34px; }
.tm-about-post-date {
	display: inline-block; margin-bottom: 16px; background: #f2960b; color: #fff;
	font-size: 13px; font-weight: 700; padding: 7px 16px; border-radius: 22px;
	box-shadow: 0 6px 16px rgba(242, 150, 11, .4);
}
.tm-about-post-title { margin: 0 0 12px; font-size: clamp(21px, 2.3vw, 26px); font-weight: 800; line-height: 1.18; letter-spacing: -.01em; color: #fff; }
.tm-about-post:hover .tm-about-post-title { color: #ffd79a; }
.tm-about-post-excerpt { display: block; margin: 0; font-size: 15px; line-height: 1.6; color: rgba(255, 255, 255, .86); max-width: 44ch; }
@media ( max-width: 560px ) { .tm-about-post { min-height: 320px; } .tm-about-post-body { padding: 24px 24px 26px; } }

/* ==========================================================================
   DESTINATION TEMPLATE — editorial article (drop cap, ruled headings, quote)
   ========================================================================== */
/* Banner subtitle */
.tm-dest .tm-pkg-banner-sub {
	max-width: 640px; margin: 2px auto 20px; color: rgba(255, 255, 255, .92);
	font-size: clamp(16px, 1.6vw, 20px); font-weight: 400; line-height: 1.5;
}

/* Article shell — full-width warm frame around a white content panel */
.tm-dest-article {
	position: relative; max-width: none; margin: 22px 0 0;
	background: #faf4e8; border: 1px solid #efe3cd; border-radius: 26px;
	padding: clamp(16px, 2.4vw, 34px);
	box-shadow: 0 24px 60px -26px rgba(9, 20, 33, .28);
}

/* Body typography — white inner panel */
.tm-dest-body {
	background: #fff; border-radius: 18px;
	padding: clamp(30px, 4vw, 66px) clamp(24px, 4vw, 72px);
	font-size: 17.5px; line-height: 1.85; color: #414b58;
}
.tm-dest-body p { margin: 0 0 1.25em; }
.tm-dest-body strong { color: #17324a; font-weight: 700; }
/* Run-in moment title (the bold lead-in that opens a paragraph) */
.tm-dest-body p > strong:first-child { font-size: 1.03em; font-weight: 800; color: #10283b; letter-spacing: -.005em; }
.tm-dest-body a { color: #c9720a; text-decoration: underline; text-underline-offset: 2px; }
.tm-dest-body ul, .tm-dest-body ol { margin: 0 0 1.25em; padding-left: 1.4em; }
.tm-dest-body li { margin: 0 0 .5em; }
.tm-dest-body img { max-width: 100%; height: auto; border-radius: 16px; margin: 8px 0; }
.tm-dest-body > *:last-child { margin-bottom: 0; }

/* Opening paragraph: larger lead + drop cap */
.tm-dest-body > p:first-of-type { font-size: 20px; line-height: 1.72; color: #2f3947; }
.tm-dest-body > p:first-of-type::first-letter {
	float: left; font-family: Georgia, "Times New Roman", serif;
	font-size: 4.6em; line-height: .72; font-weight: 700; color: #c9720a;
	margin: 8px 16px 0 0;
}

/* Main title */
.tm-dest-body h2 {
	margin: 0 0 24px; font-size: clamp(30px, 3.6vw, 42px); font-weight: 800;
	line-height: 1.1; letter-spacing: -.015em; color: #101a2a;
}
.tm-dest-body h2::after {
	content: ""; display: block; width: 72px; height: 4px; border-radius: 4px;
	background: linear-gradient(90deg, #f2960b, #f6b53f); margin-top: 18px;
}

/* Section headings — orange label followed by a fading rule */
.tm-dest-body h3 {
	display: flex; align-items: center; gap: 16px; margin: 58px 0 26px; padding: 0; border: 0;
	font-family: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
	font-size: 21px; font-weight: 800; text-transform: uppercase; letter-spacing: .2em;
	color: #c9720a;
	background: linear-gradient(90deg, #f2960b, #d97e08);
	-webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.tm-dest-body h3::before {
	content: ""; flex: 0 0 auto; width: 30px; height: 3px; border-radius: 3px;
	background: linear-gradient(90deg, #f2960b, #f6b53f);
	-webkit-text-fill-color: initial;
}
.tm-dest-body h3::after {
	content: ""; flex: 1 1 auto; height: 1px;
	background: linear-gradient(90deg, #e7d3ab, rgba(231, 211, 171, 0));
}

/* Inline emphasis (author fallback for highlights) */
.tm-dest-body em, .tm-dest-body i { color: #c9720a; font-style: italic; }

/* Highlight chips */
.tm-dest-body .tm-dest-tags {
	display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: -.1em 0 1.9em;
}
.tm-dest-tags-label {
	display: inline-flex; align-items: center; gap: 8px;
	font-size: 11.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .14em;
	color: #b06508; margin-right: 2px;
}
.tm-dest-tags-label::before {
	content: ""; width: 16px; height: 2px; border-radius: 2px; background: #e6a651;
}
.tm-dest-tag {
	font-size: 13.5px; font-weight: 600; color: #9c5806; line-height: 1;
	background: rgba(242, 150, 11, .10); border: 1px solid rgba(242, 150, 11, .26);
	padding: 7px 14px; border-radius: 30px;
	transition: background .2s ease, border-color .2s ease, transform .2s ease;
}
.tm-dest-tag:hover { background: rgba(242, 150, 11, .18); border-color: rgba(242, 150, 11, .42); transform: translateY(-1px); }

/* Founder's-insight quote card */
.tm-dest-body blockquote {
	position: relative; overflow: hidden; margin: 56px 0 0; padding: 34px 36px 26px;
	background: #fff7ea; border: 1px solid #f0e2c6; border-radius: 20px;
	box-shadow: 0 16px 36px -20px rgba(201, 114, 10, .45);
}
.tm-dest-body blockquote::before {
	content: "\201C"; position: absolute; top: 6px; right: 26px;
	font-family: Georgia, serif; font-size: 92px; line-height: 1; color: rgba(242, 150, 11, .16);
}
.tm-dest-body blockquote p {
	position: relative; font-family: Georgia, "Times New Roman", serif; font-style: italic;
	color: #4a4236; font-size: 18px; line-height: 1.75; margin: 0 0 1em;
}
.tm-dest-body blockquote p:last-child { margin-bottom: 0; }
.tm-dest-body blockquote .tm-dest-quote-label,
.tm-dest-quote-label {
	display: inline-flex; align-items: center; gap: 10px; margin: 0 0 14px; padding: 0;
	font-family: inherit; font-style: normal; font-size: 13px; font-weight: 800;
	color: #c9720a; text-transform: uppercase; letter-spacing: .16em;
}
.tm-dest-quote-label::before {
	content: ""; width: 26px; height: 2px; border-radius: 2px; background: #f2960b;
}

@media ( max-width: 620px ) {
	.tm-dest-body { font-size: 16px; padding: 26px 20px; }
	.tm-dest-body > p:first-of-type { font-size: 18px; }
	.tm-dest-body > p:first-of-type::first-letter { font-size: 3.6em; }
	.tm-dest-article { padding: 10px; }
	.tm-dest-body blockquote { padding: 26px 22px 20px; }
}

/* ==========================================================================
   DESTINATION LIST TEMPLATE
   ========================================================================== */
.tm-destlist-body { padding-top: clamp(48px, 7vw, 84px); }
.tm-destlist-group { margin-bottom: clamp(44px, 6vw, 80px); }
.tm-destlist-group:last-child { margin-bottom: 0; }
.tm-destlist .tm-script { color: #c9720a; }
.tm-destlist-empty { text-align: center; padding: 48px 0; }
.tm-destlist-empty p { margin-top: 12px; color: var(--tm-muted); }

/* "Keep exploring" — more pages in the same category, at the foot of a destination page */
.tm-destmore { margin-top: clamp(52px, 7vw, 96px); }
.tm-destmore .tm-script { color: #c9720a; }

/* Contact Form 7 in the "Get in Touch" card — keep the theme's field layout */
.tm-contact-form .wpcf7-form-control-wrap { display: block; }
.tm-contact-form input.wpcf7-not-valid,
.tm-contact-form textarea.wpcf7-not-valid { border-color: #c0392b; }
.tm-contact-form .wpcf7-not-valid-tip { color: #c0392b; font-size: 13px; margin-top: 5px; }
.tm-contact-form .wpcf7-response-output {
	margin: 4px 0 0; padding: 12px 16px; border-radius: 10px; font-size: 14.5px;
	border: 1px solid #e7eef3; background: #fff;
}
.tm-contact-form .wpcf7-spinner { margin-left: 12px; }

/* Contact Form 7 in the footer newsletter — keep the pill input + orange button */
.tm-foot-news-form { flex-wrap: wrap; }
.tm-foot-news-form .hidden-fields-container { display: none; }
.tm-foot-news-form .wpcf7-form-control-wrap { flex: 1 1 220px; display: block; min-width: 0; }
.tm-foot-news-form .wpcf7-form-control-wrap .wpcf7-form-control { width: 100%; }
.tm-foot-news-form .wpcf7-submit.tm-foot-subscribe {
	padding-right: 54px;
	background:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 2L11 13M22 2l-7 20-4-9-9-4 20-7z'/%3E%3C/svg%3E") no-repeat right 28px center,
		linear-gradient(120deg, #f2960b, #c9720a);
}
.tm-foot-news-form .wpcf7-not-valid-tip { color: #b23b18; font-size: 13px; margin-top: 6px; }
.tm-foot-news-form .wpcf7-response-output {
	flex-basis: 100%; order: 9; width: 100%; margin: 12px 0 0; padding: 10px 16px;
	font-size: 14px; border-radius: 12px;
}
.tm-foot-news-form .wpcf7-response-output[aria-hidden="true"] { display: none; }
.tm-foot-news-form .wpcf7-spinner { flex: 0 0 auto; }

/* Itinerary "car" that drives along the timeline as you scroll */
.tm-itin-car {
	position: absolute; left: 93px; top: 0; z-index: 3; pointer-events: none;
	transform: translate(-50%, -50%) rotate(var(--lean, 0deg));
	transition: top .18s ease-out, transform .4s ease;
	will-change: top, transform;
}
.tm-itin-car-badge {
	position: relative;
	display: flex; align-items: center; justify-content: center;
	width: 46px; height: 46px; color: var(--itin-a, #ea8b08);
	filter: drop-shadow(0 3px 6px rgba(9, 20, 33, .3));
	animation: tm-itin-car-idle .14s steps(2, end) infinite;   /* idle engine shake when stopped */
}
.tm-itin-car-badge svg { width: 42px; height: 42px; }
/* Headlight beam projecting from the front (top in the car's local frame). */
.tm-itin-car-badge::before {
	content: ""; position: absolute; left: 50%; bottom: 100%; width: 42px; height: 32px;
	transform: translateX(-50%);
	background: linear-gradient(to top, rgba(214, 138, 28, .95), rgba(214, 138, 28, 0) 80%);
	clip-path: polygon(40% 100%, 60% 100%, 100% 0, 0 0);
	filter: blur(.6px); opacity: .92; pointer-events: none;
}
/* Exhaust smoke from the back (bottom in local frame) — only while moving. */
.tm-itin-smoke { position: absolute; left: 50%; top: 100%; width: 18px; height: 0; transform: translateX(-50%); pointer-events: none; }
.tm-itin-smoke i { position: absolute; left: 50%; top: 2px; width: 9px; height: 9px; border-radius: 50%; background: rgba(60, 60, 60, .62); opacity: 0; transform: translate(-50%, 0) scale(.4); }
/* When the car is moving: smooth bob instead of shake, and puff smoke. */
.tm-itin.is-moving .tm-itin-car-badge { animation: tm-itin-car-bob 1.4s ease-in-out infinite; }
.tm-itin.is-moving .tm-itin-smoke i { animation: tm-itin-smoke 1s ease-out infinite; }
.tm-itin.is-moving .tm-itin-smoke i:nth-child(2) { animation-delay: .33s; }
.tm-itin.is-moving .tm-itin-smoke i:nth-child(3) { animation-delay: .66s; }
@keyframes tm-itin-car-idle {
	0%   { transform: translate(0, 0) rotate(0deg); }
	50%  { transform: translate(.5px, -.6px) rotate(.5deg); }
	100% { transform: translate(-.5px, .5px) rotate(-.5deg); }
}
@keyframes tm-itin-smoke {
	0%   { opacity: 0; transform: translate(-50%, 0) scale(.4); }
	18%  { opacity: .5; }
	100% { opacity: 0; transform: translate(-50%, 28px) scale(1.9); }
}
@keyframes tm-itin-car-bob {
	0%, 100% { transform: translateY(0); }
	50%      { transform: translateY(-3px); }
}
@media ( max-width: 640px ) { .tm-itin-car { left: 60px; } }
@media ( prefers-reduced-motion: reduce ) {
	.tm-itin-car-badge, .tm-itin.is-moving .tm-itin-car-badge { animation: none; }
	.tm-itin-smoke i { animation: none; }
	.tm-itin-car { transition: none; }
}

/* Gallery lightbox slider (package detail) */
.tm-pd-gallery-cell.is-zoomable { cursor: zoom-in; }
.tm-pd-gallery-cell.is-zoomable:focus-visible { outline: 3px solid #f2960b; outline-offset: 3px; }
.tm-lightbox {
	position: fixed; inset: 0; z-index: 9999; display: none;
	flex-direction: column; align-items: center; justify-content: center; gap: 14px; padding: 40px 44px 22px;
	background: rgba(9, 14, 22, .93); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
}
.tm-lightbox.is-open { display: flex; animation: tm-lb-fade .25s ease; }
@keyframes tm-lb-fade { from { opacity: 0; } to { opacity: 1; } }
.tm-lightbox-stage { margin: 0; display: flex; align-items: center; justify-content: center; max-width: min(1120px, 92vw); }
.tm-lightbox-img {
	max-width: 100%; max-height: 72vh; object-fit: contain; border-radius: 12px;
	box-shadow: 0 30px 80px rgba(0, 0, 0, .6);
	transition: opacity .22s ease, transform .22s ease;
}
.tm-lightbox-img.is-swapping { opacity: 0; transform: scale(.97); }
.tm-lightbox-close, .tm-lightbox-nav {
	position: absolute; z-index: 2; border: 0; cursor: pointer; color: #fff; line-height: 1;
	background: rgba(255, 255, 255, .14); border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	transition: background .2s ease, transform .2s ease;
}
.tm-lightbox-close { top: 22px; right: 26px; width: 46px; height: 46px; font-size: 30px; }
.tm-lightbox-nav { top: 50%; transform: translateY(-50%); width: 56px; height: 56px; font-size: 34px; }
.tm-lightbox-prev { left: 24px; }
.tm-lightbox-next { right: 24px; }
.tm-lightbox-close:hover { background: #f2960b; transform: rotate(90deg); }
.tm-lightbox-nav:hover { background: #f2960b; transform: translateY(-50%) scale(1.08); }
.tm-lightbox-count {
	color: rgba(255, 255, 255, .85); font-size: 14px; font-weight: 600; letter-spacing: .06em;
}
.tm-lightbox-thumbs {
	display: flex; gap: 8px; max-width: 92vw; overflow-x: auto; padding: 4px 2px; scrollbar-width: thin;
}
.tm-lightbox-thumb {
	flex: 0 0 auto; width: 64px; height: 46px; padding: 0; border: 2px solid transparent; border-radius: 8px;
	background-size: cover; background-position: center; cursor: pointer; opacity: .5;
	transition: opacity .2s ease, border-color .2s ease, transform .2s ease;
}
.tm-lightbox-thumb:hover { opacity: .85; }
.tm-lightbox-thumb.is-active { opacity: 1; border-color: #f2960b; transform: translateY(-2px); }
@media ( max-width: 600px ) {
	.tm-lightbox { padding: 14px; }
	.tm-lightbox-nav { width: 44px; height: 44px; font-size: 28px; }
	.tm-lightbox-prev { left: 8px; }
	.tm-lightbox-next { right: 8px; }
	.tm-lightbox-close { top: 12px; right: 12px; width: 42px; height: 42px; }
}

/* ==========================================================================
   DESTINATION ARTICLE — "journey" timeline for the moments + scroll reveal
   ========================================================================== */
.tm-dest-lead-line { margin: 0 0 22px; font-size: 16px; color: #5a5346; line-height: 1.65; }

.tm-dest-journey { list-style: none; margin: 10px 0 24px; padding: 0; }
.tm-dest-stop { position: relative; padding: 0 0 clamp(22px, 3vw, 34px) 44px; }
.tm-dest-stop:last-child { padding-bottom: 4px; }
/* connector line between stops */
.tm-dest-stop::before {
	content: ""; position: absolute; left: 10px; top: 10px; bottom: -4px; width: 2px;
	background: linear-gradient(#f2960b, #ecd6ae);
}
.tm-dest-stop:last-child::before { display: none; }
/* node marker */
.tm-dest-stop-node {
	position: absolute; left: 1px; top: 6px; width: 20px; height: 20px; border-radius: 50%;
	background: #fff; border: 3px solid #f2960b; box-shadow: 0 0 0 4px rgba(242, 150, 11, .14); z-index: 1;
}
.tm-dest-stop-node::after {
	content: ""; position: absolute; inset: 4px; border-radius: 50%; background: #f2960b;
	transform: scale(0); transition: transform .35s ease .15s;
}
.tm-dest-stop.is-in .tm-dest-stop-node::after { transform: scale(1); }
.tm-dest-stop.is-in .tm-dest-stop-node { animation: tm-stop-pop .5s ease; }
@keyframes tm-stop-pop { 0% { transform: scale(.5); } 55% { transform: scale(1.18); } 100% { transform: scale(1); } }
/* stop card */
.tm-dest-stop-card {
	background: #fdf9f1; border: 1px solid #f0e4cd; border-radius: 16px; padding: 16px 20px;
	box-shadow: 0 12px 30px -20px rgba(9, 20, 33, .28);
	transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.tm-dest-stop-card:hover { transform: translateY(-3px); box-shadow: 0 22px 46px -22px rgba(9, 20, 33, .4); border-color: #e7cfa0; }
.tm-dest-stop-title {
	margin: 0 0 8px; font-family: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
	font-size: 19px; font-weight: 700; color: #10283b; letter-spacing: -.005em; line-height: 1.25;
}
.tm-dest-stop-desc { margin: 0; font-size: 15.5px; line-height: 1.7; color: #514a3d; }
.tm-dest-stop .tm-dest-tags { margin: 14px 0 0; }

/* Scroll-reveal (only active once JS adds .is-reveal, so no-JS shows everything) */
.tm-dest-body.is-reveal .tm-dest-stop,
.tm-dest-body.is-reveal h3,
.tm-dest-body.is-reveal blockquote,
.tm-dest-body.is-reveal .tm-dest-lead-line {
	opacity: 0; transform: translateY(24px);
	transition: opacity .6s ease, transform .6s cubic-bezier(.2, .7, .2, 1);
}
.tm-dest-body.is-reveal .is-in { opacity: 1; transform: none; }
@media ( prefers-reduced-motion: reduce ) {
	.tm-dest-body.is-reveal .tm-dest-stop,
	.tm-dest-body.is-reveal h3,
	.tm-dest-body.is-reveal blockquote,
	.tm-dest-body.is-reveal .tm-dest-lead-line { opacity: 1; transform: none; transition: none; }
	.tm-dest-stop.is-in .tm-dest-stop-node { animation: none; }
}
@media ( max-width: 620px ) { .tm-dest-stop { padding-left: 36px; } }

/* ==========================================================================
   Request a Quote page + Contact Form 7 form
   ========================================================================== */
.tm-quote-wrap { background: var(--tm-bg-soft, #f4efe4); padding: clamp(48px, 7vw, 92px) 0; }
.tm-quote-card {
	background: #fff; border: 1px solid #efe3cd; border-radius: 26px;
	padding: clamp(26px, 4vw, 58px); max-width: 1000px; margin: 0 auto;
	box-shadow: 0 30px 70px -34px rgba(9, 20, 33, .28);
}
.tm-quote-lead { max-width: 640px; margin: 12px auto 0; color: #5b6572; font-size: 16px; line-height: 1.7; }

.tm-quote-form .tm-qf { margin-top: 30px; display: flex; flex-direction: column; gap: 22px; }
.tm-qf-grid { display: grid; gap: 18px; }
.tm-qf-3 { grid-template-columns: repeat(3, 1fr); }
.tm-qf-4 { grid-template-columns: repeat(4, 1fr); }
.tm-qf-field > label { display: block; font-weight: 700; font-size: 13.5px; color: var(--tm-navy); letter-spacing: .01em; }
.tm-qf-req { color: #e0533a; }
.tm-quote-form input[type="text"],
.tm-quote-form input[type="email"],
.tm-quote-form input[type="tel"],
.tm-quote-form input[type="date"],
.tm-quote-form input[type="number"],
.tm-quote-form select,
.tm-quote-form textarea {
	width: 100%; margin-top: 7px; padding: 12px 14px; font-size: 15px; color: var(--tm-navy);
	font-family: inherit; background: #fbf9f4; border: 1px solid #e4dcc9; border-radius: 12px; outline: none;
	transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.tm-quote-form select {
	-webkit-appearance: none; -moz-appearance: none; appearance: none; cursor: pointer;
	padding-right: 42px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23c9720a' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 16px center;
}
.tm-quote-form input:focus, .tm-quote-form select:focus, .tm-quote-form textarea:focus {
	border-color: #f2960b; background-color: #fff; box-shadow: 0 0 0 3px rgba(242, 150, 11, .14);
}
.tm-quote-form textarea { min-height: 120px; resize: vertical; }

/* Radio / checkbox groups */
.tm-qf-block { border: 0; padding: 0; margin: 0; min-width: 0; }
.tm-qf-block legend { padding: 0; font-weight: 800; font-size: 15px; color: var(--tm-navy); margin-bottom: 12px; }
.tm-qf-block legend span { font-weight: 500; font-size: 13px; color: #7a828d; }
.tm-quote-form .wpcf7-form-control.wpcf7-radio,
.tm-quote-form .wpcf7-form-control.wpcf7-checkbox { display: grid; gap: 10px; }
.tm-qf-block .wpcf7-radio { grid-template-columns: repeat(3, 1fr); }
.tm-qf-block .wpcf7-checkbox { grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); }
.tm-quote-form .wpcf7-list-item { margin: 0; }
.tm-quote-form .wpcf7-list-item label {
	display: flex; align-items: center; gap: 10px; cursor: pointer; height: 100%;
	padding: 11px 14px; border: 1px solid #e4dcc9; border-radius: 12px; background: #fbf9f4;
	font-weight: 500; font-size: 14.5px; color: #3b4552;
	transition: border-color .2s ease, background .2s ease;
}
.tm-quote-form .wpcf7-list-item label:hover { border-color: #f2c07a; background: #fffdf8; }
.tm-quote-form .wpcf7-list-item input { width: 18px; height: 18px; accent-color: #f2960b; flex: 0 0 auto; }
.tm-quote-form .wpcf7-list-item input:checked ~ .wpcf7-list-item-label { color: var(--tm-navy); font-weight: 700; }

/* Submit */
.tm-qf-submit { margin-top: 4px; }
.tm-quote-form .wpcf7-submit {
	background: #f2960b; color: #1a1205; border: 0; border-radius: 40px; cursor: pointer;
	font-weight: 800; font-size: 15px; padding: 15px 42px; letter-spacing: .01em;
	box-shadow: 0 16px 34px -14px rgba(242, 150, 11, .6);
	transition: transform .2s ease, background .2s ease;
}
.tm-quote-form .wpcf7-submit:hover { transform: translateY(-2px); background: #ffa825; }
.tm-quote-form .wpcf7-spinner { margin: 0 0 0 12px; }

/* CF7 feedback + hidden fields */
.tm-quote-form .hidden-fields-container { display: none; }
.tm-quote-form .wpcf7-not-valid-tip { color: #d64026; font-size: 12.5px; margin-top: 5px; display: block; }
.tm-quote-form .wpcf7-not-valid { border-color: #e0533a !important; }
.tm-quote-form .wpcf7-response-output {
	margin: 22px 0 0 !important; padding: 14px 18px !important; border-radius: 12px !important;
	border-width: 1px !important; font-size: 14.5px;
}

@media ( max-width: 780px ) {
	.tm-qf-3, .tm-qf-4 { grid-template-columns: 1fr 1fr; }
	.tm-qf-block .wpcf7-radio { grid-template-columns: 1fr 1fr; }
}
@media ( max-width: 480px ) {
	.tm-qf-3, .tm-qf-4 { grid-template-columns: 1fr; }
	.tm-qf-block .wpcf7-radio, .tm-qf-block .wpcf7-checkbox { grid-template-columns: 1fr; }
}

/* Request a Quote — bottom-of-page CTA band */
/* Pre-footer CTA band + newsletter block hidden site-wide (remove to restore). */
.tm-quote-cta,
.tm-foot-news { display: none; }
/* Newsletter is hidden, so its divider is orphaned at the top of the footer;
   its top margin was collapsing out as an empty white band above the footer. */
.tm-foot-divider { display: none; }

.tm-quote-cta {
	background: linear-gradient(120deg, #12202f, #1d3247);
	color: #fff; padding: clamp(40px, 6vw, 74px) 0;
}
.tm-quote-cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 32px; flex-wrap: wrap; }
.tm-quote-cta-text { max-width: 640px; }
.tm-quote-cta-kicker {
	display: inline-block; font-size: 12.5px; font-weight: 700; letter-spacing: .2em;
	text-transform: uppercase; color: #f2b45a; margin-bottom: 10px;
}
.tm-quote-cta-title {
	margin: 0 0 10px;
	font-family: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
	font-size: clamp(26px, 3.4vw, 42px); font-weight: 700; line-height: 1.08;
}
.tm-quote-cta-sub { margin: 0; color: rgba(255, 255, 255, .82); font-size: 16px; line-height: 1.65; }
.tm-quote-cta-btn {
	flex: 0 0 auto; display: inline-flex; align-items: center; gap: 10px;
	background: #f2960b; color: #1a1205; border: 0; border-radius: 40px; cursor: pointer;
	font-weight: 800; font-size: 16px; padding: 17px 40px; letter-spacing: .01em;
	box-shadow: 0 18px 40px -14px rgba(242, 150, 11, .7);
	transition: transform .2s ease, background .2s ease;
}
.tm-quote-cta-btn:hover { transform: translateY(-2px); background: #ffa825; }
@media ( max-width: 700px ) {
	.tm-quote-cta-inner { flex-direction: column; align-items: flex-start; }
	.tm-quote-cta-btn { width: 100%; justify-content: center; }
}

/* Request a Quote — popup modal */
.tm-modal-lock { overflow: hidden; }
.tm-modal { position: fixed; inset: 0; z-index: 2000; display: none; }
.tm-modal.is-open { display: block; }
.tm-modal-overlay {
	position: absolute; inset: 0; background: rgba(9, 20, 33, .62);
	-webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px);
	animation: tm-modal-fade .25s ease;
}
.tm-modal-dialog {
	position: relative; z-index: 1; display: flex; flex-direction: column;
	width: calc(100% - 32px); max-width: 900px; max-height: 92vh; margin: 4vh auto;
	background: #fff; border-radius: 22px; overflow: hidden;
	box-shadow: 0 44px 100px -30px rgba(0, 0, 0, .6);
	animation: tm-modal-in .32s cubic-bezier(.2, .7, .2, 1);
}
.tm-modal-scroll { overflow-y: auto; padding: clamp(26px, 4vw, 50px); }
.tm-modal-close {
	position: absolute; top: 14px; right: 14px; z-index: 3; width: 40px; height: 40px;
	border: 0; border-radius: 50%; background: #f4efe4; color: var(--tm-navy);
	font-size: 26px; line-height: 1; cursor: pointer; transition: background .2s ease, color .2s ease;
}
.tm-modal-close:hover { background: #f2960b; color: #fff; }
.tm-modal-head { margin-bottom: 8px; }
@keyframes tm-modal-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes tm-modal-in { from { opacity: 0; transform: translateY(26px) scale(.98); } to { opacity: 1; transform: none; } }

/* ==========================================================================
   Blog — masonry cards (tag + meta + title)
   ========================================================================== */
.tm-blog-wrap { padding: clamp(48px, 7vw, 88px) 0; background: var(--tm-bg-soft, #f4efe4); }
.tm-blogmasonry { display: grid; grid-template-columns: repeat(3, 1fr); gap: 42px 30px; align-items: start; }
@media ( max-width: 780px ) { .tm-blogmasonry { grid-template-columns: repeat(2, 1fr); } }
@media ( max-width: 520px ) { .tm-blogmasonry { grid-template-columns: 1fr; } }

.tm-blogcard { display: block; }
.tm-blogcard-media {
	position: relative; display: block; overflow: hidden; border-radius: 5px;
	aspect-ratio: 3 / 2; box-shadow: 0 20px 44px -24px rgba(9, 20, 33, .4);
}
.tm-blogcard-media img {
	display: block; width: 100%; height: 100%; object-fit: cover;
	transition: transform .6s cubic-bezier(.2, .7, .2, 1);
}
.tm-blogcard-media:hover img { transform: scale(1.05); }

/* Folded category tag */
.tm-blogcard-tag {
	position: absolute; top: 18px; left: 0; z-index: 2;
	display: inline-flex; align-items: center; gap: 8px;
	padding: 7px 18px 7px 22px;
	background: #f2ece1; color: #4a4a4a; font-size: 14px; font-weight: 500; font-style: italic;
	font-family: Georgia, "Times New Roman", serif; letter-spacing: .01em;
	clip-path: polygon(12px 0, 100% 0, 100% 100%, 12px 100%, 0 50%);
	box-shadow: 0 8px 18px rgba(0, 0, 0, .18);
}
.tm-blogcard-tag svg { width: 15px; height: 15px; color: #c9720a; flex: 0 0 auto; }

/* Meta + title */
.tm-blogcard-body { padding: 16px 2px 0; }
.tm-blogcard-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; margin-bottom: 11px; }
.tm-blogcard-metaitem {
	display: inline-flex; align-items: center; gap: 7px; font-style: italic;
	font-size: 13.5px; color: #6b7280; font-family: Georgia, "Times New Roman", serif;
}
.tm-blogcard-metaitem svg { width: 15px; height: 15px; color: #a2a9b3; flex: 0 0 auto; }
.tm-blogcard-title { margin: 0; font-size: 21px; line-height: 1.18; font-weight: 800; letter-spacing: .01em; text-transform: uppercase; }
.tm-blogcard-title a { color: #14202e; text-decoration: none; transition: color .2s ease; }
.tm-blogcard-title a:hover { color: #c9720a; }

/* Home "Latest travel stories" — Read More button */
.tm-blog2-cta { display: flex; justify-content: center; margin-top: clamp(36px, 5vw, 56px); }
.tm-blog2-cta-btn {
	display: inline-flex; align-items: center; gap: 10px;
	background: #f2960b; color: #1a1205; text-decoration: none;
	font-weight: 800; font-size: 15px; padding: 15px 40px; border-radius: 40px; letter-spacing: .01em;
	box-shadow: 0 18px 38px -14px rgba(242, 150, 11, .7);
	transition: transform .2s ease, background .2s ease;
}
.tm-blog2-cta-btn:hover { transform: translateY(-2px); background: #ffa825; }
.tm-blog2-cta-btn span { transition: transform .2s ease; }
.tm-blog2-cta-btn:hover span { transform: translateX(4px); }

/* ==========================================================================
   Single post
   ========================================================================== */
/* Cancel the default .tm-page top padding so the banner sits behind the
   overlaid header (no white gap at the top). */
.tm-single { padding: 0; }
.tm-single-cat {
	display: inline-flex; align-items: center; margin-bottom: 16px; text-decoration: none;
	padding: 7px 18px; border-radius: 40px; background: #f2960b; color: #1a1205;
	font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .12em;
	box-shadow: 0 10px 24px -10px rgba(242, 150, 11, .7); transition: background .2s ease;
}
.tm-single-cat:hover { background: #ffa825; }
.tm-single-meta { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 22px; margin-top: 18px; }
.tm-single-metaitem { display: inline-flex; align-items: center; gap: 8px; color: rgba(255, 255, 255, .9); font-size: 14.5px; font-style: italic; font-family: Georgia, "Times New Roman", serif; }
.tm-single-metaitem svg { width: 16px; height: 16px; color: #f2b45a; flex: 0 0 auto; }

.tm-single-body { padding: clamp(44px, 6vw, 78px) 0; }
.tm-single-article { max-width: 780px; margin: 0 auto; }
.tm-single-content { font-size: 18px; line-height: 1.85; color: #3d4653; }
.tm-single-content > * { margin: 0 0 1.35em; }
.tm-single-content > :last-child { margin-bottom: 0; }
.tm-single-content h2 { font-family: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif; font-size: clamp(26px, 3vw, 34px); font-weight: 700; color: #101a2a; line-height: 1.2; margin: 1.5em 0 .55em; }
.tm-single-content h3 { font-size: 22px; font-weight: 800; color: #14202e; margin: 1.4em 0 .5em; }
.tm-single-content a { color: #c9720a; text-decoration: underline; text-underline-offset: 2px; }
.tm-single-content img { max-width: 100%; height: auto; border-radius: 14px; }
.tm-single-content blockquote { margin: 1.5em 0; padding: 4px 0 4px 26px; border-left: 4px solid #f2960b; font-family: "Iowan Old Style", Palatino, Georgia, serif; font-size: 22px; font-style: italic; color: #22303f; }
.tm-single-content ul, .tm-single-content ol { padding-left: 1.4em; }
.tm-single-content li { margin: 0 0 .5em; }

.tm-single-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 40px; padding-top: 26px; border-top: 1px solid #ece3d3; }
.tm-single-chips-label { font-size: 12.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; color: #8a929c; margin-right: 4px; }
.tm-single-chip { text-decoration: none; padding: 8px 16px; border-radius: 40px; background: #f4efe4; color: #3b4552; font-size: 13.5px; font-weight: 600; transition: background .2s ease, color .2s ease; }
.tm-single-chip:hover { background: #f2960b; color: #1a1205; }
.tm-single-chip-tag { background: transparent; border: 1px solid #e0d7c5; }

.tm-single-nav { max-width: 900px; margin: clamp(40px, 6vw, 60px) auto 0; display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.tm-single-navcard {
	display: flex; flex-direction: column; gap: 8px; text-decoration: none;
	padding: 22px 26px; border-radius: 16px; background: #fff; border: 1px solid #ece3d3;
	box-shadow: 0 16px 40px -26px rgba(9, 20, 33, .3);
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.tm-single-navcard:hover { transform: translateY(-4px); border-color: #f2c07a; box-shadow: 0 26px 50px -26px rgba(9, 20, 33, .42); }
.tm-single-navnext { text-align: right; align-items: flex-end; }
.tm-single-navlabel { font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; color: #c9720a; }
.tm-single-navtitle { font-size: 18px; font-weight: 800; color: #14202e; line-height: 1.25; }
@media ( max-width: 620px ) { .tm-single-nav { grid-template-columns: 1fr; } .tm-single-navnext { text-align: left; align-items: flex-start; } }

.tm-single-related { background: var(--tm-bg-soft, #f4efe4); padding: clamp(50px, 7vw, 88px) 0; }
.tm-single-related .tm-head { margin-bottom: clamp(32px, 5vw, 50px); }

/* Blog listing + "More stories" cards — elevated white panels with excerpt + CTA, equal height. */
.tm-blogmasonry { align-items: stretch; }
.tm-blogmasonry .tm-blogcard {
	background: #fff; border: 1px solid rgba(9, 20, 33, .07); border-radius: 18px; overflow: hidden;
	box-shadow: 0 14px 34px -22px rgba(9, 20, 33, .45);
	height: 100%; display: flex; flex-direction: column;
	transition: transform .3s ease, box-shadow .3s ease;
}
.tm-blogmasonry .tm-blogcard:hover { transform: translateY(-6px); box-shadow: 0 30px 54px -26px rgba(9, 20, 33, .5); }
.tm-blogmasonry .tm-blogcard-media { border-radius: 0; box-shadow: none; aspect-ratio: 16 / 10; }
.tm-blogmasonry .tm-blogcard-tag { top: 16px; }
.tm-blogmasonry .tm-blogcard-body { flex: 1; display: flex; flex-direction: column; align-items: flex-start; padding: 20px 22px 22px; }
.tm-blogmasonry .tm-blogcard-meta { margin-bottom: 12px; }
.tm-blogmasonry .tm-blogcard-title { font-size: 19px; line-height: 1.3; text-transform: none; letter-spacing: 0; margin-bottom: 10px; }
.tm-blogmasonry .tm-blogcard-excerpt {
	margin: 0 0 18px; font-size: 14.5px; line-height: 1.65; color: #5b6572;
	display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.tm-blogmasonry .tm-relcard-more {
	margin-top: auto; display: inline-flex; align-items: center; gap: 7px;
	font-size: 12.5px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase;
	color: #c9720a; text-decoration: none;
}
.tm-blogmasonry .tm-relcard-more span { transition: transform .2s ease; }
.tm-blogmasonry .tm-blogcard:hover .tm-relcard-more span { transform: translateX(4px); }

/* ==========================================================================
   About Us (detailed)
   ========================================================================== */
.tm-ab2-story { padding: clamp(52px, 7vw, 92px) 0 clamp(28px, 4vw, 48px); }
.tm-ab2-prose { max-width: 820px; margin: 0 auto; }
.tm-ab2-prose p { margin: 0 0 1.3em; font-size: 17.5px; line-height: 1.9; color: #3d4653; }
.tm-ab2-prose p:last-child { margin-bottom: 0; }
.tm-ab2-prose strong { color: var(--tm-navy); font-weight: 700; }

.tm-ab2-adv { padding: 0 0 clamp(50px, 7vw, 90px); }
.tm-ab2-adv-grid, .tm-ab2-why-grid, .tm-ab2-layers-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.tm-ab2-card {
	background: #fff; border: 1px solid #efe3cd; border-radius: 20px; padding: clamp(26px, 3vw, 38px);
	box-shadow: 0 22px 50px -30px rgba(9, 20, 33, .28); transition: transform .25s ease, box-shadow .25s ease;
}
.tm-ab2-card:hover { transform: translateY(-5px); box-shadow: 0 32px 60px -30px rgba(9, 20, 33, .4); }
.tm-ab2-ico {
	display: inline-flex; align-items: center; justify-content: center; width: 54px; height: 54px;
	border-radius: 15px; background: linear-gradient(150deg, #fde7c6, #f7cf9a); color: #b4650a; margin-bottom: 18px;
}
.tm-ab2-ico svg { width: 26px; height: 26px; }
.tm-ab2-card-title { margin: 0 0 10px; font-size: 20px; font-weight: 800; color: var(--tm-navy); line-height: 1.25; }
.tm-ab2-card p { margin: 0; font-size: 15.5px; line-height: 1.7; color: #5b6572; }

.tm-ab2-sustain { max-width: 900px; margin: clamp(36px, 5vw, 54px) auto 0; text-align: center; font-size: 17px; line-height: 1.75; color: #4a5560; }
.tm-ab2-sustain-mark { color: #c9720a; font-weight: 800; }

.tm-ab2-note { background-size: cover; background-position: center; color: #fff; padding: clamp(56px, 8vw, 96px) 0; text-align: center; }
.tm-ab2-note-in { max-width: 900px; margin: 0 auto; }
.tm-ab2-quote {
	margin: 18px auto 0; max-width: 820px; border: 0; padding: 0;
	font-family: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
	font-size: clamp(21px, 2.6vw, 30px); line-height: 1.5; font-style: italic; color: #fff;
}
.tm-ab2-note-by { display: block; margin-top: 22px; font-weight: 700; letter-spacing: .04em; color: #f2b45a; }

.tm-ab2-why { padding: clamp(56px, 8vw, 96px) 0; }
.tm-ab2-layers { padding: 0 0 clamp(56px, 8vw, 96px); }
.tm-ab2-layer { position: relative; background: #fff; border: 1px solid #efe3cd; border-radius: 20px; padding: clamp(28px, 3vw, 40px); box-shadow: 0 22px 50px -30px rgba(9, 20, 33, .28); overflow: hidden; }
.tm-ab2-layer-num { position: absolute; top: 8px; right: 18px; font-family: Georgia, serif; font-size: 64px; font-weight: 800; color: #f6ead3; line-height: 1; }
.tm-ab2-layer .tm-ab2-ico, .tm-ab2-layer .tm-ab2-card-title, .tm-ab2-layer p { position: relative; z-index: 1; }

.tm-ab2-cta { background-size: cover; color: #fff; padding: clamp(44px, 6vw, 74px) 0; }
.tm-ab2-cta-in { display: flex; align-items: center; justify-content: space-between; gap: 30px; flex-wrap: wrap; }
.tm-ab2-cta-kicker { display: inline-block; font-size: 12.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: #f2b45a; margin-bottom: 10px; }
.tm-ab2-cta-title { margin: 0 0 8px; font-family: "Iowan Old Style", Palatino, Georgia, serif; font-size: clamp(24px, 3vw, 36px); font-weight: 700; }
.tm-ab2-cta-sub { margin: 0; max-width: 560px; color: rgba(255, 255, 255, .82); font-size: 16px; }
.tm-ab2-cta-btn { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 10px; background: #f2960b; color: #1a1205; border: 0; border-radius: 40px; cursor: pointer; font-weight: 800; font-size: 16px; padding: 17px 40px; box-shadow: 0 18px 40px -14px rgba(242, 150, 11, .7); transition: transform .2s ease, background .2s ease; }
.tm-ab2-cta-btn:hover { transform: translateY(-2px); background: #ffa825; }

.tm-ab2-standard { padding: clamp(56px, 8vw, 96px) 0; background: var(--tm-bg-soft, #f4efe4); }
.tm-ab2-standard-lead { max-width: 820px; margin: 0 auto clamp(40px, 5vw, 56px); text-align: center; font-size: 17px; line-height: 1.8; color: #4a5560; }
.tm-ab2-std-list { max-width: 920px; margin: 0 auto; display: flex; flex-direction: column; gap: 22px; }
.tm-ab2-std { background: #fff; border: 1px solid #efe3cd; border-radius: 20px; padding: clamp(24px, 3vw, 36px); box-shadow: 0 20px 46px -30px rgba(9, 20, 33, .26); }
.tm-ab2-std-head { display: flex; align-items: center; gap: 18px; margin-bottom: 16px; }
.tm-ab2-std-num { flex: 0 0 auto; width: 44px; height: 44px; border-radius: 50%; background: #f2960b; color: #1a1205; display: inline-flex; align-items: center; justify-content: center; font-weight: 800; font-size: 18px; }
.tm-ab2-std-head .tm-ab2-ico { margin: 0; width: 46px; height: 46px; }
.tm-ab2-std-head .tm-ab2-ico svg { width: 24px; height: 24px; }
.tm-ab2-std-title { margin: 0; font-size: 20px; font-weight: 800; color: var(--tm-navy); line-height: 1.2; }
.tm-ab2-std-sub { font-size: 14px; color: #c9720a; font-weight: 600; font-style: italic; }
.tm-ab2-std-points { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.tm-ab2-std-points li { position: relative; padding-left: 22px; font-size: 15.5px; line-height: 1.7; color: #4a5560; }
.tm-ab2-std-points li::before { content: ""; position: absolute; left: 2px; top: 9px; width: 8px; height: 8px; border-radius: 50%; background: #f2960b; }
.tm-ab2-std-points strong { color: var(--tm-navy); font-weight: 800; }

/* ==========================================================================
   Journey category page — "other journeys" band
   ========================================================================== */
.tm-journeycat-other { background: var(--tm-bg-soft, #f4efe4); padding: clamp(52px, 7vw, 90px) 0; margin-top: clamp(20px, 3vw, 40px); }
.tm-journeycat-other .tm-head { margin-bottom: clamp(30px, 5vw, 48px); }
.tm-journeycat-catcard .tm-destcard-name { color: #f2c07a; font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }

/* ==========================================================================
   Home — About Us section
   ========================================================================== */
.tm-homeabout { background: #fff; padding: clamp(56px, 8vw, 100px) 0; }
.tm-homeabout-grid { display: grid; grid-template-columns: 1fr 1.05fr; gap: clamp(34px, 5vw, 72px); align-items: center; }
.tm-homeabout-media { position: relative; }
.tm-homeabout-img {
	display: block; width: 100%; aspect-ratio: 4 / 3.3; border-radius: 26px;
	background-size: cover; background-position: center; box-shadow: 0 40px 84px -42px rgba(9, 20, 33, .55);
}
.tm-homeabout-badge {
	position: absolute; left: 22px; bottom: 22px; display: flex; flex-direction: column; line-height: 1.2;
	background: #f2960b; color: #1a1205; padding: 14px 22px; border-radius: 16px;
	box-shadow: 0 20px 40px -16px rgba(242, 150, 11, .7);
}
.tm-homeabout-badge strong { font-family: "Iowan Old Style", Palatino, Georgia, serif; font-size: 21px; font-weight: 700; }
.tm-homeabout-badge span { font-size: 12.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; opacity: .85; }
.tm-homeabout-copy .tm-script { color: #c9720a; }
.tm-homeabout-copy .tm-title { margin: 6px 0 20px; text-align: left; }
.tm-homeabout-copy > p { margin: 0 0 1.2em; font-size: 17px; line-height: 1.85; color: #4a5560; }
.tm-homeabout-copy > p:first-of-type { font-size: 18.5px; color: #333d49; }
.tm-homeabout-btn {
	display: inline-flex; align-items: center; gap: 10px; margin-top: 10px; text-decoration: none;
	background: #f2960b; color: #1a1205; font-weight: 800; font-size: 15px; padding: 15px 36px; border-radius: 40px;
	box-shadow: 0 18px 38px -14px rgba(242, 150, 11, .7); transition: transform .2s ease, background .2s ease;
}
.tm-homeabout-btn:hover { transform: translateY(-2px); background: #ffa825; }
.tm-homeabout-btn span { transition: transform .2s ease; }
.tm-homeabout-btn:hover span { transform: translateX(4px); }
@media ( max-width: 860px ) {
	.tm-homeabout-grid { grid-template-columns: 1fr; gap: 30px; max-width: 620px; margin-inline: auto; }
	.tm-homeabout-copy .tm-title { text-align: center; }
	.tm-homeabout-copy { text-align: center; }
	.tm-homeabout-copy > p { text-align: left; }
}

/* Welcome / founders intro (top of About) */
.tm-ab2-welcome { padding: clamp(50px, 7vw, 88px) 0 clamp(16px, 3vw, 32px); }
.tm-ab2-wcopy { max-width: 800px; margin: 0 auto; }
.tm-ab2-wcopy p { margin: 0 0 1.3em; font-size: 17.5px; line-height: 1.9; color: #3d4653; }
.tm-ab2-wcopy p:last-child { margin-bottom: 0; }
.tm-ab2-wcopy > p:first-of-type { font-size: 20px; line-height: 1.78; color: #2b3542; }
.tm-ab2-wcopy strong { color: var(--tm-navy); font-weight: 700; }

@media ( max-width: 900px ) {
	.tm-ab2-adv-grid, .tm-ab2-why-grid, .tm-ab2-layers-grid { grid-template-columns: 1fr 1fr; }
}
@media ( max-width: 620px ) {
	.tm-ab2-adv-grid, .tm-ab2-why-grid, .tm-ab2-layers-grid { grid-template-columns: 1fr; }
	.tm-ab2-cta-in { flex-direction: column; align-items: flex-start; }
	.tm-ab2-cta-btn { width: 100%; justify-content: center; }
	.tm-ab2-std-head { flex-wrap: wrap; }
}

/* ==========================================================================
   Contact — begin with a conversation
   ========================================================================== */
.tm-ct2 { padding: clamp(50px, 7vw, 90px) 0 clamp(20px, 3vw, 40px); }
.tm-ct2-lead { max-width: 680px; margin: 0 auto; text-align: center; font-size: 18px; line-height: 1.75; color: #4a5560; }
.tm-ct2-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; max-width: 920px; margin: clamp(36px, 5vw, 54px) auto 0; }
.tm-ct2-card {
	background: #fff; border: 1px solid #efe3cd; border-radius: 20px; padding: clamp(28px, 3vw, 40px);
	box-shadow: 0 22px 50px -30px rgba(9, 20, 33, .28);
}
.tm-ct2-ico {
	display: inline-flex; align-items: center; justify-content: center; width: 54px; height: 54px;
	border-radius: 15px; background: linear-gradient(150deg, #fde7c6, #f7cf9a); color: #b4650a; margin-bottom: 16px;
}
.tm-ct2-ico svg { width: 26px; height: 26px; }
.tm-ct2-card-title {
	margin: 0 0 16px; font-family: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
	font-size: 22px; font-weight: 700; color: var(--tm-navy); line-height: 1.2;
}
.tm-ct2-line { display: flex; align-items: center; gap: 14px; text-decoration: none; color: var(--tm-navy); padding: 12px 0; transition: color .2s ease; }
.tm-ct2-line + .tm-ct2-line { border-top: 1px solid #f0e8d8; }
.tm-ct2-line svg { width: 20px; height: 20px; color: #c9720a; flex: 0 0 auto; transition: transform .2s ease; }
.tm-ct2-line:hover { color: #c9720a; }
.tm-ct2-line:hover svg { transform: scale(1.1); }
.tm-ct2-line > span { display: flex; flex-direction: column; font-weight: 700; font-size: 17px; }
.tm-ct2-line-label { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #9aa2ac; margin-bottom: 2px; }
.tm-ct2-card p { margin: 0 0 12px; font-size: 15.5px; line-height: 1.72; color: #5b6572; }
.tm-ct2-card p:last-child { margin-bottom: 0; }
.tm-ct2-card strong { color: #c9720a; font-weight: 700; }
.tm-ct2-quote {
	max-width: 760px; margin: clamp(42px, 5vw, 62px) auto 0; text-align: center; border: 0; padding: 0;
	font-family: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
	font-size: clamp(21px, 2.6vw, 28px); font-style: italic; line-height: 1.5; color: #22303f;
}
.tm-ct2-quote::before { content: "\201C"; display: block; font-family: Georgia, serif; font-size: 58px; color: #f2c07a; line-height: .5; margin-bottom: 12px; }
@media ( max-width: 720px ) { .tm-ct2-grid { grid-template-columns: 1fr; } }

/* Honeypot spam trap — visually hidden, off-screen (real users never see or fill it). */
.tm-hp { position: absolute !important; left: -9999px !important; top: auto; width: 1px; height: 1px; overflow: hidden; }

/* CF7 image CAPTCHA */
.tm-qf-captcha .wpcf7-captchac { display: block; height: auto; margin: 8px 0 10px; padding: 6px 8px; background: #fff; border: 1px solid #e4dcc9; border-radius: 8px; }
.tm-qf-captcha input.wpcf7-captchar { max-width: 240px; letter-spacing: .25em; }

/* Floating "Request a Quote" side tab (all pages, slides in on scroll) */
.tm-quote-float {
	position: fixed; right: 0; top: 50%; z-index: 80;
	transform: translate(100%, -50%);        /* parked off-screen to the right */
	display: inline-flex; align-items: center; justify-content: center;
	writing-mode: vertical-rl; text-orientation: mixed;
	padding: 20px 12px; border-radius: 14px 0 0 14px;
	background: linear-gradient(180deg, #f2960b, #c9720a); color: #fff; text-decoration: none;
	font: 700 13px/1 "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
	letter-spacing: .14em; text-transform: uppercase;
	box-shadow: -6px 8px 22px rgba(201, 114, 10, .35);
	opacity: 0; visibility: hidden; cursor: pointer;
	transition: transform .45s cubic-bezier(.22, 1, .36, 1), opacity .35s ease, box-shadow .25s ease, background .25s ease;
}
.tm-quote-float.is-visible { transform: translate(0, -50%); opacity: 1; visibility: visible; }
.tm-quote-float:hover { background: linear-gradient(180deg, #ffa724, #d67d12); box-shadow: -9px 10px 28px rgba(201, 114, 10, .5); }
.tm-quote-float:focus-visible { outline: 3px solid #0e2b33; outline-offset: 3px; }
.tm-quote-float-txt { display: inline-block; }
@media ( max-width: 640px ) {
	.tm-quote-float { padding: 16px 9px; font-size: 11px; letter-spacing: .1em; border-radius: 11px 0 0 11px; }
}
@media ( prefers-reduced-motion: reduce ) {
	.tm-quote-float { transition: opacity .3s ease; }
	.tm-quote-float.is-visible { transform: translate(0, -50%); }
}

/* ============================================================
   Justified body text across all pages
   Applies to the main reading paragraphs; hyphenation keeps the
   word-spacing even. Short / narrow utility text is kept left-
   aligned below so justify never opens up ugly gaps.
   ============================================================ */
.tm-page p,
.tm-section p,
.entry-content p,
.tm-post-body p,
article p {
	text-align: justify;
	text-justify: inter-word;
	-webkit-hyphens: auto;
	hyphens: auto;
}

/* Exceptions: keep these left-aligned (too short / narrow to justify well) */
.tm-plan-feats p,
.tm-plan-lead + .tm-plan-feats p,
.tm-ab2-card p,
.tm-ab2-std-sub,
.tm-ab2-std-points li,
.tm-ab2-cta-sub,
.tm-ab2-wel-sign,
.tm-destcard p, .tm-destcard-name, .tm-destcard-tag,
.tm-blogcard p, .tm-blogmasonry p,
.tm-footer2 p, .tm-footer p,
.tm-pkg-crumb, .tm-pkg-crumb *,
.tm-qf-field p, .wpcf7 p,
figcaption {
	text-align: left;
	-webkit-hyphens: manual;
	hyphens: manual;
}
