/* =========================================================
   Travel Monk — Design System
   Editorial / adventure-journal aesthetic. Earthy palette,
   torn-paper dividers, Polaroid cards, handwritten accents.
   ========================================================= */

:root {
	/* Palette (overridable via Customizer, see inc/customizer.php) */
	--tm-primary: #C96B2C;
	--tm-secondary: #D4A017;
	--tm-forest: #556B2F;
	--tm-cream: #F5E6C8;
	--tm-dark-brown: #3E2C20;
	--tm-light-beige: #EFE3CE;
	--tm-muted-olive: #7C7C4A;
	--tm-soft-terracotta: #E2A377;
	--tm-paper: #FBF7EE;
	--tm-white: #FFFDF8;

	/* Type */
	--tm-font-heading: 'Bricolage Grotesque', 'DM Serif Display', serif;
	--tm-font-accent: 'Caveat', cursive;
	--tm-font-body: 'Manrope', 'Poppins', sans-serif;

	/* Layout */
	--tm-max-width: 1440px;
	--tm-content-width: 1280px;
	--tm-radius-sm: 10px;
	--tm-radius-md: 18px;
	--tm-radius-lg: 32px;
	--tm-space-section: clamp(4rem, 8vw, 8rem);

	--tm-shadow-soft: 0 12px 30px rgba(62, 44, 32, 0.12);
	--tm-shadow-card: 0 18px 40px rgba(62, 44, 32, 0.16);
}

/* ---------------- Reset & base ---------------- */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
	margin: 0;
	background: var(--tm-paper);
	color: var(--tm-dark-brown);
	font-family: var(--tm-font-body);
	font-size: 1.05rem;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
}

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

a { color: var(--tm-primary); text-decoration: none; transition: color .25s ease; }
a:hover, a:focus { color: var(--tm-forest); }

h1, h2, h3, h4, h5, h6 {
	font-family: var(--tm-font-heading);
	color: var(--tm-dark-brown);
	line-height: 1.15;
	margin: 0 0 .6em;
	letter-spacing: -0.01em;
}

p { margin: 0 0 1.2em; }

.tm-handwritten { font-family: var(--tm-font-accent); font-weight: 600; }

button { font-family: inherit; cursor: pointer; }

:focus-visible {
	outline: 3px solid var(--tm-secondary);
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
		scroll-behavior: auto !important;
	}
}

.tm-container {
	max-width: var(--tm-content-width);
	margin-inline: auto;
	padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}

.tm-section { position: relative; padding-block: var(--tm-space-section); overflow: hidden; }

.tm-eyebrow {
	font-family: var(--tm-font-heading);
	text-transform: uppercase;
	letter-spacing: .18em;
	font-size: .78rem;
	color: var(--tm-primary);
	font-weight: 700;
	margin-bottom: .75em;
}

.tm-section-header { max-width: 720px; margin: 0 auto 3rem; text-align: center; }
.tm-section-title { font-size: clamp(1.9rem, 3vw, 2.75rem); }

.tm-section-cta { text-align: center; margin-top: 3rem; }

.tm-empty-note {
	text-align: center;
	color: var(--tm-muted-olive);
	font-style: italic;
	padding: 2rem 0;
}

/* ---------------- Buttons ---------------- */
.tm-btn {
	display: inline-flex;
	align-items: center;
	gap: .5em;
	padding: .9em 1.9em;
	border-radius: 999px;
	font-weight: 700;
	font-size: .95rem;
	border: 2px solid transparent;
	transition: transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease;
}
.tm-btn:hover { transform: translateY(-2px); }

.tm-btn-primary { background: var(--tm-primary); color: var(--tm-white); box-shadow: var(--tm-shadow-soft); }
.tm-btn-primary:hover { background: var(--tm-forest); color: var(--tm-white); }

.tm-btn-secondary { background: transparent; border-color: var(--tm-dark-brown); color: var(--tm-dark-brown); }
.tm-btn-secondary:hover { background: var(--tm-dark-brown); color: var(--tm-cream); }

.tm-btn-outline { background: transparent; border-color: var(--tm-primary); color: var(--tm-primary); }
.tm-btn-outline:hover { background: var(--tm-primary); color: var(--tm-white); }

/* ---------------- Icons (inline mask-based, no icon font dependency) ---------------- */
.tm-icon { display: inline-block; width: 1.5em; height: 1.5em; background-color: currentColor; }

/* ---------------- Header ---------------- */
.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: rgba(251, 247, 238, 0.92);
	backdrop-filter: blur(8px);
	border-bottom: 1px solid rgba(62, 44, 32, 0.08);
}

.tm-header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
	padding-block: .9rem;
	max-width: var(--tm-max-width);
}

.site-title-link { display: flex; flex-direction: column; line-height: 1.1; }
.site-title { font-family: var(--tm-font-heading); font-weight: 800; font-size: 1.4rem; color: var(--tm-dark-brown); }
.site-tagline { font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; color: var(--tm-muted-olive); }
.custom-logo { max-height: 64px; width: auto; }

.main-navigation ul { display: flex; gap: 2rem; list-style: none; margin: 0; padding: 0; }
.main-navigation a { font-weight: 600; color: var(--tm-dark-brown); }
.main-navigation a:hover { color: var(--tm-primary); }
.main-navigation .current-menu-item > a { color: var(--tm-primary); border-bottom: 2px solid var(--tm-primary); }

.tm-header-actions { display: flex; align-items: center; gap: .75rem; }
.tm-icon-btn {
	background: transparent; border: none; width: 40px; height: 40px;
	display: grid; place-items: center; border-radius: 50%; color: var(--tm-dark-brown);
	transition: background .2s ease;
}
.tm-icon-btn:hover { background: var(--tm-light-beige); }
.menu-toggle { display: none; }

.tm-search-panel { max-height: 0; overflow: hidden; transition: max-height .3s ease; background: var(--tm-cream); }
.tm-search-panel:not([hidden]) { max-height: 120px; padding-block: 1rem; }
.tm-search-panel[hidden] { display: block; }

.search-form { display: flex; gap: .5rem; }
.search-form input[type="search"] {
	flex: 1; padding: .8em 1.2em; border-radius: 999px; border: 1px solid var(--tm-muted-olive);
	font-family: var(--tm-font-body); background: var(--tm-white);
}
.search-form button {
	padding: .8em 1.6em; border-radius: 999px; border: none; background: var(--tm-primary); color: #fff; font-weight: 700;
}

.tm-breadcrumbs-wrap { padding-block: 1rem; font-size: .85rem; color: var(--tm-muted-olive); }
.tm-breadcrumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; padding: 0; }
.tm-breadcrumbs li:not(:last-child)::after { content: '/'; margin-left: .4rem; color: var(--tm-soft-terracotta); }

/* ---------------- Hero ---------------- */
.tm-hero {
	position: relative;
	min-height: 100svh;
	display: flex;
	align-items: center;
	background: linear-gradient(180deg, #4a3524 0%, var(--tm-primary) 55%, var(--tm-soft-terracotta) 100%);
	background-size: cover;
	background-position: center;
	color: var(--tm-white);
	overflow: hidden;
}

.tm-hero-overlay {
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(20,14,8,.55) 0%, rgba(20,14,8,.25) 45%, rgba(20,14,8,.65) 100%);
}

.tm-hero-parallax { position: absolute; inset: 0; pointer-events: none; }
.tm-hero-sun { position: absolute; top: 12%; right: 14%; width: 70px; height: 70px; border-radius: 50%; background: radial-gradient(circle, var(--tm-secondary), transparent 70%); }
.tm-hero-bird, .tm-hero-leaf { position: absolute; opacity: .8; width: 24px; height: 24px; }
.tm-hero-bird-1 { top: 20%; left: 20%; }
.tm-hero-bird-2 { top: 28%; left: 30%; }
.tm-hero-leaf-1 { bottom: 15%; left: 8%; }
.tm-hero-leaf-2 { bottom: 25%; right: 10%; }

.tm-hero-content { position: relative; z-index: 2; text-align: left; max-width: 720px; }
.tm-hero-heading {
	font-size: clamp(2.5rem, 6vw, 4.5rem);
	color: var(--tm-white);
	text-shadow: 0 4px 20px rgba(0,0,0,.35);
}
.tm-hero-subheading { font-size: 1.15rem; max-width: 32em; color: rgba(255,255,255,.9); margin-bottom: 2em; }
.tm-hero-actions { display: flex; flex-wrap: wrap; gap: 1rem; }
.tm-hero .tm-btn-secondary { border-color: var(--tm-white); color: var(--tm-white); }
.tm-hero .tm-btn-secondary:hover { background: var(--tm-white); color: var(--tm-dark-brown); }

.tm-scroll-indicator {
	position: absolute; bottom: 2.5rem; left: 50%; transform: translateX(-50%);
	display: flex; flex-direction: column; align-items: center; gap: .4rem;
	background: transparent; border: none; color: var(--tm-white); z-index: 2;
}
.tm-scroll-sun {
	width: 42px; height: 42px; border-radius: 50%; border: 2px solid var(--tm-white);
	background: radial-gradient(circle, var(--tm-secondary) 0%, transparent 70%);
	animation: tm-pulse 2.4s ease-in-out infinite;
}
.tm-scroll-label { font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; }

@keyframes tm-pulse {
	0%, 100% { transform: scale(1); opacity: .85; }
	50% { transform: scale(1.12); opacity: 1; }
}

/* ---------------- Torn paper divider ---------------- */
.tm-paper-divider {
	height: 48px;
	background: var(--tm-paper);
	clip-path: polygon(0% 100%, 3% 40%, 7% 90%, 12% 30%, 18% 80%, 24% 20%, 31% 70%, 38% 10%, 45% 60%, 52% 15%, 59% 65%, 66% 5%, 73% 55%, 80% 20%, 87% 70%, 94% 25%, 100% 60%, 100% 100%);
}
.tm-paper-divider.is-flipped { transform: scaleY(-1); }

/* ---------------- Feature grid ---------------- */
.tm-why-section { background: var(--tm-light-beige); }
.tm-feature-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: 2.5rem;
	text-align: center;
}
.tm-feature-card { opacity: 0; transform: translateY(24px); transition: opacity .6s ease, transform .6s ease; }
.tm-feature-card.is-visible { opacity: 1; transform: none; }
.tm-feature-icon {
	width: 64px; height: 64px; margin-inline: auto 1rem; margin-bottom: 1rem;
	background: var(--tm-white); border-radius: 50%; padding: 16px;
	box-shadow: var(--tm-shadow-soft); color: var(--tm-primary);
}
.tm-feature-title { font-size: 1.05rem; margin-bottom: .4em; }
.tm-feature-text { font-size: .92rem; color: var(--tm-muted-olive); }

/* ---------------- Destinations / Polaroid cards ---------------- */
.tm-destinations-section { background: var(--tm-forest); color: var(--tm-cream); }
.tm-destinations-section .tm-section-title { color: var(--tm-cream); }

.tm-polaroid-row {
	display: flex;
	gap: 2rem;
	overflow-x: auto;
	padding: 2rem .5rem 3rem;
	scroll-snap-type: x proximity;
}
.tm-polaroid-row::-webkit-scrollbar { height: 6px; }
.tm-polaroid-row::-webkit-scrollbar-thumb { background: var(--tm-soft-terracotta); border-radius: 4px; }

.tm-polaroid-card {
	flex: 0 0 220px;
	scroll-snap-align: start;
	transform: rotate(var(--tm-rotate, 0deg));
	transition: transform .3s ease;
	opacity: 0;
}
.tm-polaroid-card.is-visible { opacity: 1; }
.tm-polaroid-card:hover { transform: rotate(0deg) translateY(-6px) scale(1.03); }

.tm-polaroid, .tm-card-media.tm-polaroid {
	background: var(--tm-white);
	padding: 12px 12px 0;
	border-radius: 4px;
	box-shadow: var(--tm-shadow-card);
	position: relative;
}
.tm-polaroid img, .tm-card-media.tm-polaroid img {
	aspect-ratio: 4 / 4.5;
	object-fit: cover;
	border-radius: 2px;
}
.tm-polaroid-caption {
	display: block;
	text-align: center;
	padding: .6em 0;
	font-size: 1.2rem;
	color: var(--tm-dark-brown);
	background: var(--tm-white);
	border-radius: 0 0 4px 4px;
}

.tm-tape {
	position: absolute;
	top: -14px; left: 50%; transform: translateX(-50%) rotate(-3deg);
	width: 70px; height: 26px;
	background: rgba(212, 160, 23, 0.55);
	box-shadow: 0 2px 4px rgba(0,0,0,.1);
	z-index: 2;
}

.tm-polaroid-card-caption-wrap { text-align: center; }

/* ---------------- Trip types ---------------- */
.tm-trip-type-row {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 2.5rem;
}
.tm-trip-type-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
	text-align: center;
	color: var(--tm-dark-brown);
	opacity: 0;
	transform: translateY(20px);
	transition: opacity .6s ease, transform .6s ease;
}
.tm-trip-type-card.is-visible { opacity: 1; transform: none; }
.tm-trip-type-circle {
	width: 140px; height: 140px; border-radius: 50%;
	overflow: hidden;
	border: 4px solid var(--tm-secondary);
	box-shadow: var(--tm-shadow-soft);
	display: block;
}
.tm-trip-type-circle img { width: 100%; height: 100%; object-fit: cover; }
.tm-trip-type-placeholder { background: linear-gradient(135deg, var(--tm-soft-terracotta), var(--tm-forest)); }
.tm-trip-type-label { font-weight: 700; }

/* ---------------- Journal / diary section ---------------- */
.tm-journal-section { background: var(--tm-cream); }
.tm-journal-diary {
	position: relative;
	background: var(--tm-white);
	border-radius: var(--tm-radius-lg);
	padding: clamp(2rem, 5vw, 4rem);
	box-shadow: var(--tm-shadow-card);
	background-image:
		linear-gradient(90deg, transparent 79px, rgba(197, 90, 17, 0.15) 79px, rgba(197, 90, 17, 0.15) 81px, transparent 81px),
		repeating-linear-gradient(rgba(62,44,32,0), rgba(62,44,32,0) 38px, rgba(62,44,32,.06) 39px);
}
.tm-coffee-stain {
	position: absolute;
	width: 90px; height: 90px;
	border-radius: 50%;
	border: 6px solid rgba(139, 94, 52, .18);
	background: rgba(139, 94, 52, .06);
}
.tm-coffee-stain-1 { top: -20px; right: 5%; }
.tm-coffee-stain-2 { bottom: -30px; left: 8%; width: 60px; height: 60px; }
.tm-journal-intro { max-width: 640px; margin: 0 auto; text-align: center; color: var(--tm-muted-olive); }

/* ---------------- Card grid (journal / generic / destinations) ---------------- */
.tm-card-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 2.5rem;
}

.tm-card {
	background: var(--tm-white);
	border-radius: var(--tm-radius-md);
	overflow: hidden;
	box-shadow: var(--tm-shadow-soft);
	transition: transform .3s ease, box-shadow .3s ease;
}
.tm-card:hover { transform: translateY(-6px); box-shadow: var(--tm-shadow-card); }
.tm-card-link { display: block; color: inherit; }
.tm-card-media { aspect-ratio: 4/3; overflow: hidden; }
.tm-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.tm-card:hover .tm-card-media img { transform: scale(1.06); }
.tm-card-body { padding: 1.5rem; }
.tm-card-title { font-size: 1.2rem; margin-bottom: .4em; }
.tm-card-excerpt { color: var(--tm-muted-olive); font-size: .95rem; }
.tm-card-readmore { color: var(--tm-primary); font-weight: 700; font-size: .9rem; }
.tm-card-label {
	display: inline-block;
	margin-top: .5rem;
	font-family: var(--tm-font-accent);
	color: var(--tm-primary);
	font-size: 1.1rem;
}

.tm-card-journal .tm-card-body { text-align: center; }
.tm-card-destination.tm-polaroid-card { flex: none; }

/* ---------------- Masonry gallery ---------------- */
.tm-gallery-section { background: var(--tm-light-beige); }
.tm-masonry {
	columns: 4 220px;
	column-gap: 1.75rem;
}
.tm-masonry-item {
	break-inside: avoid;
	margin: 0 0 1.75rem;
	background: var(--tm-white);
	padding: 10px 10px 0;
	border-radius: 4px;
	box-shadow: var(--tm-shadow-soft);
	transform: rotate(var(--tm-rotate, 0deg));
	transition: transform .3s ease;
	opacity: 0;
}
.tm-masonry-item.is-visible { opacity: 1; }
.tm-masonry-item:hover { transform: rotate(0deg) scale(1.03); z-index: 2; }
.tm-masonry-link { display: block; overflow: hidden; border-radius: 2px; }
.tm-masonry-link img { transition: transform .5s ease; }
.tm-masonry-link:hover img { transform: scale(1.08); }

/* ---------------- Testimonials / postcards ---------------- */
.tm-testimonials-section { background: var(--tm-paper); }
.tm-postcard-row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 2rem;
}
.tm-postcard {
	background: var(--tm-cream);
	border: 1px solid rgba(62,44,32,.1);
	border-radius: var(--tm-radius-sm);
	padding: 1.75rem;
	box-shadow: var(--tm-shadow-soft);
	opacity: 0;
	transform: translateY(20px);
	transition: opacity .6s ease, transform .6s ease;
}
.tm-postcard.is-visible { opacity: 1; transform: none; }
.tm-postcard-media { border-radius: var(--tm-radius-sm); overflow: hidden; margin-bottom: 1rem; aspect-ratio: 4/3; }
.tm-postcard-media img { width: 100%; height: 100%; object-fit: cover; }
.tm-postcard-text { font-style: italic; }
.tm-postcard-signature { font-size: 1.4rem; color: var(--tm-primary); margin-bottom: 0; }
.tm-postcard-trip { font-size: .85rem; color: var(--tm-muted-olive); }

/* ---------------- Instagram strip ---------------- */
.tm-instagram-section { background: var(--tm-dark-brown); color: var(--tm-cream); }
.tm-instagram-inner { display: flex; flex-wrap: wrap; align-items: center; gap: 2.5rem; }
.tm-instagram-feed { flex: 1 1 480px; }
.tm-instagram-handle { color: var(--tm-cream); }
.tm-instagram-grid { display: flex; gap: 1rem; flex-wrap: wrap; }
.tm-instagram-tile { width: 110px; height: 110px; border-radius: var(--tm-radius-sm); overflow: hidden; flex: 0 0 auto; }
.tm-instagram-tile img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.tm-instagram-tile:hover img { transform: scale(1.1); }
.tm-stay-wild-note {
	flex: 0 0 220px;
	background: var(--tm-cream);
	color: var(--tm-dark-brown);
	padding: 2rem;
	border-radius: var(--tm-radius-sm);
	font-size: 1.8rem;
	text-align: center;
	transform: rotate(-2deg);
	box-shadow: var(--tm-shadow-card);
}

/* ---------------- Footer ---------------- */
.site-footer { position: relative; background: var(--tm-forest); color: var(--tm-cream); padding-top: 3rem; }
.tm-footer-illustration { color: rgba(255,255,255,.08); line-height: 0; margin-top: -2px; }
.tm-mountain-line { width: 100%; height: 60px; display: block; }

.tm-footer-top {
	display: grid;
	grid-template-columns: 1.2fr 1fr 1.2fr;
	gap: 3rem;
	padding-block: 2rem 3rem;
	border-bottom: 1px solid rgba(255,255,255,.12);
}
.tm-footer-brand .site-title { color: var(--tm-cream); }
.tm-footer-tagline { font-family: var(--tm-font-accent); font-size: 1.3rem; color: var(--tm-secondary); }
.tm-compass { width: 44px; height: 44px; color: var(--tm-secondary); }

.tm-footer-columns { display: flex; gap: 2rem; flex-wrap: wrap; }
.widget-title { font-size: 1rem; text-transform: uppercase; letter-spacing: .08em; color: var(--tm-secondary); }
.tm-footer-col ul { list-style: none; margin: 0; padding: 0; }
.tm-footer-col li { margin-bottom: .5em; }
.tm-footer-col a { color: var(--tm-cream); opacity: .85; }
.tm-footer-col a:hover { opacity: 1; color: var(--tm-secondary); }

.footer-navigation ul { list-style: none; display: flex; flex-direction: column; gap: .6rem; margin: 0; padding: 0; }
.footer-navigation a { color: var(--tm-cream); }

.tm-newsletter-form { display: flex; gap: .5rem; margin-block: 1rem; flex-wrap: wrap; }
.tm-newsletter-form input {
	flex: 1; min-width: 180px; padding: .8em 1.1em; border-radius: 999px; border: none;
}
.tm-newsletter-form button {
	padding: .8em 1.6em; border-radius: 999px; border: none; background: var(--tm-secondary); color: var(--tm-dark-brown); font-weight: 700;
}

.tm-social-links { display: flex; gap: .75rem; list-style: none; margin: 1rem 0 0; padding: 0; }
.tm-social-link {
	width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center;
	background: rgba(255,255,255,.1); color: var(--tm-cream);
}
.tm-social-link:hover { background: var(--tm-secondary); color: var(--tm-dark-brown); }

.tm-footer-bottom {
	display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem;
	padding-block: 1.5rem; font-size: .85rem; color: rgba(255,255,255,.7);
}
.legal-navigation ul { list-style: none; display: flex; gap: 1.5rem; margin: 0; padding: 0; }
.legal-navigation a { color: rgba(255,255,255,.7); }

/* ---------------- Pages, single posts, archives ---------------- */
.tm-single-hero {
	height: 60vh; min-height: 380px; background-size: cover; background-position: center;
	display: flex; align-items: flex-end; position: relative;
}
.tm-single-hero-overlay {
	width: 100%; padding-block: 3rem 2.5rem;
	background: linear-gradient(0deg, rgba(20,14,8,.75), transparent);
	color: var(--tm-white);
}
.tm-single-hero-overlay .entry-title { color: var(--tm-white); }

.tm-single-body { padding-block: 3rem; max-width: 860px; }
.entry-meta { color: var(--tm-muted-olive); font-size: .9rem; margin-bottom: 1.5rem; }
.meta-sep { margin-inline: .5em; }
.tm-pull-quote { font-size: 1.8rem; color: var(--tm-primary); border-left: 4px solid var(--tm-secondary); padding-left: 1rem; margin: 2rem 0; }

.tm-destination-meta, .tm-trip-meta { display: flex; flex-wrap: wrap; gap: 1rem; margin-bottom: 2rem; }
.tm-meta-chip {
	background: var(--tm-cream); border-radius: var(--tm-radius-sm); padding: .75rem 1.25rem;
}
.tm-meta-label { display: block; font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; color: var(--tm-muted-olive); }
.tm-meta-value { font-weight: 700; color: var(--tm-dark-brown); }

.tm-archive-header { text-align: center; padding-block: 3rem 2rem; }
.tm-archive { padding-bottom: var(--tm-space-section); }
.tm-page { padding-block: 3rem; }
.tm-page-thumbnail { border-radius: var(--tm-radius-md); overflow: hidden; margin-bottom: 2rem; }

.tm-pagination { display: flex; justify-content: center; gap: 1rem; margin-top: 3rem; }
.tm-pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 40px; height: 40px; border-radius: 50%; background: var(--tm-cream); color: var(--tm-dark-brown); font-weight: 700;
}
.tm-pagination .page-numbers.current { background: var(--tm-primary); color: #fff; }

.tm-no-results { text-align: center; padding: 4rem 0; }
.tm-no-results .tm-icon { width: 56px; height: 56px; color: var(--tm-soft-terracotta); margin-bottom: 1rem; }

/* ---------------- 404 ---------------- */
.tm-404 { min-height: 70vh; display: flex; align-items: center; }
.tm-404-inner { text-align: center; max-width: 560px; margin: 0 auto; }
.tm-404-compass { width: 80px; height: 80px; color: var(--tm-secondary); margin-bottom: 1rem; }
.tm-404-title { font-size: 2.2rem; }
.tm-404-search { margin-top: 2rem; }

/* ---------------- Comments ---------------- */
.tm-comments { max-width: 860px; margin: 0 auto; padding-block: 3rem; }
.comment-list { list-style: none; margin: 0; padding: 0; }
.comment-list .children { list-style: none; margin-left: 2rem; padding: 0; }
.comment-body { background: var(--tm-cream); border-radius: var(--tm-radius-sm); padding: 1.5rem; margin-bottom: 1.5rem; }
.comment-form textarea, .comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"] {
	width: 100%; padding: .8em 1em; border-radius: var(--tm-radius-sm); border: 1px solid var(--tm-muted-olive); font-family: inherit; margin-bottom: 1rem;
}

/* ---------------- Sidebar ---------------- */
.tm-sidebar { max-width: 860px; margin: 0 auto 3rem; }
.widget { background: var(--tm-cream); border-radius: var(--tm-radius-md); padding: 1.5rem; margin-bottom: 1.5rem; }

/* ---------------- Icon set (CSS mask, no icon font/webfont request) ---------------- */
.tm-icon[data-icon] { mask-repeat: no-repeat; mask-position: center; mask-size: contain; -webkit-mask-repeat: no-repeat; -webkit-mask-position: center; -webkit-mask-size: contain; }
.tm-icon[data-icon="mountain"] { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 20 L9 8 L13 14 L16 9 L21 20 Z'/%3E%3C/svg%3E"); }
.tm-icon[data-icon="backpack"] { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='6' y='8' width='12' height='13' rx='3'/%3E%3Cpath d='M9 8V6a3 3 0 0 1 6 0v2' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E"); }
.tm-icon[data-icon="campfire"] { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2c2 4-2 5-1 9 3-1 3-4 3-4 2 3 1 7-2 9-4 2-8-1-8-5 0-3 2-4 3-6 0 2 1 3 2 2-1-2 0-4 3-5Z'/%3E%3C/svg%3E"); }
.tm-icon[data-icon="camera"] { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 8h3l2-2h6l2 2h3v11H4Z'/%3E%3Ccircle cx='12' cy='13' r='3.5' fill='%23fff'/%3E%3C/svg%3E"); }
.tm-icon[data-icon="leaf"] { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 4C10 4 4 10 4 20c10 0 16-6 16-16Z'/%3E%3C/svg%3E"); }
.tm-icon[data-icon="sun"] { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='5'/%3E%3Cg stroke='%23000' stroke-width='2'%3E%3Cpath d='M12 1v3M12 20v3M1 12h3M20 12h3M4 4l2 2M18 18l2 2M4 20l2-2M18 6l2-2'/%3E%3C/g%3E%3C/svg%3E"); }
.tm-icon[data-icon="bird"] { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M2 14c4-6 8-6 10-2 2-4 6-4 10 2-5-1-7 1-10-1-3 2-5 0-10 1Z'/%3E%3C/svg%3E"); }
.tm-icon[data-icon="compass"] { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10' fill='none' stroke='%23000' stroke-width='2'/%3E%3Cpath d='M15 9l-2 6-6 2 2-6Z'/%3E%3C/svg%3E"); }
.tm-icon[data-icon="search"] { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='10' cy='10' r='7' fill='none' stroke='%23000' stroke-width='2'/%3E%3Cpath d='M20 20l-5-5' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E"); }
.tm-icon[data-icon="menu"] { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect y='5' width='24' height='2.5'/%3E%3Crect y='11' width='24' height='2.5'/%3E%3Crect y='17' width='24' height='2.5'/%3E%3C/svg%3E"); }
.tm-icon[data-icon="instagram"] { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='2' y='2' width='20' height='20' rx='5' fill='none' stroke='%23000' stroke-width='2'/%3E%3Ccircle cx='12' cy='12' r='5' fill='none' stroke='%23000' stroke-width='2'/%3E%3Ccircle cx='17.5' cy='6.5' r='1.3'/%3E%3C/svg%3E"); }
.tm-icon[data-icon="facebook"] { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14 22v-8h3l1-4h-4V7c0-1 .5-2 2-2h2V1h-3c-3 0-5 2-5 5v3H7v4h3v8Z'/%3E%3C/svg%3E"); }
.tm-icon[data-icon="youtube"] { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='1' y='5' width='22' height='14' rx='4' fill='none' stroke='%23000' stroke-width='2'/%3E%3Cpath d='M10 9l6 3-6 3Z'/%3E%3C/svg%3E"); }
.tm-icon[data-icon="email"] { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='2' y='5' width='20' height='14' rx='2' fill='none' stroke='%23000' stroke-width='2'/%3E%3Cpath d='M3 6l9 7 9-7' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E"); }

/* ---------------- Responsive ---------------- */
@media (max-width: 960px) {
	.main-navigation { display: none; }
	.menu-toggle { display: grid; }
	.tm-footer-top { grid-template-columns: 1fr; }
	.tm-masonry { columns: 2 200px; }
}

@media (max-width: 600px) {
	.tm-hero-content { text-align: left; }
	.tm-hero-actions { flex-direction: column; align-items: flex-start; }
	.tm-polaroid-card { flex-basis: 180px; }
	.tm-masonry { columns: 1; }
	.tm-instagram-tile { width: 84px; height: 84px; }
}
