/*
 * Block and component styles for the travel theme.
 *
 * These lived in wp_add_inline_style() calls across functions.php and inc/. That was
 * fine while they were small, but they had grown to 137 KB and production has
 * Autoptimize set to inline all CSS — so every page carried the lot, 82% of its own
 * HTML, uncacheable and re-sent on every view.
 *
 * Generated by bin/extract-inline-css.py in hook-priority order, which is the order
 * the browser used to receive them. Do not hand-edit: edit the source and re-run.
 */

/* ---- functions.php:264 travel_scripts (priority 10) ---- */
		*, *::before, *::after { box-sizing: border-box; }
		html.no-transitions *, html.no-transitions *::before, html.no-transitions *::after { transition: none !important; }
		html { scroll-behavior: smooth; }
		body { font-family: 'Inter', sans-serif; background: #f9fafb; color: #111827; }
		html.dark body { background: #050505; color: #f9fafb; }
		h1, h2, h3, h4, h5, h6, .font-display { font-family: 'Space Grotesk', sans-serif; }

		/* Header. The sticky lives on the <header> the template-part block renders, not on
		   .travel-header inside it: a sticky element whose containing block is exactly as tall
		   as itself has no range to stick in, which is why 'sticky top-0 z-50' on the inner
		   element never actually held the header in place. */
		header.wp-block-template-part { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 50; }
		.travel-header { background: rgba(255,255,255,0.85); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom: 1px solid #e5e7eb; }
		html.dark .travel-header { background: rgba(17,17,17,0.85); border-bottom-color: rgba(255,255,255,0.08); }

		/* Line clamp utilities */
		.line-clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
		.line-clamp-3 { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

		/* Prose / post content */
		.wp-block-post-content { font-size: 1.125rem; line-height: 1.8; color: #374151; }
		html.dark .wp-block-post-content { color: #d1d5db; }
		.wp-block-post-content h2, .wp-block-post-content h3, .wp-block-post-content h4 { font-family: 'Space Grotesk', sans-serif; font-weight: 700; color: #111827; margin-top: 2rem; margin-bottom: 0.75rem; }
		html.dark .wp-block-post-content h2, html.dark .wp-block-post-content h3, html.dark .wp-block-post-content h4 { color: #f9fafb; }
		.wp-block-post-content p { margin-bottom: 1.5rem; }
		.wp-block-post-content a { color: #4d7c0f; text-decoration: underline; }
		.wp-block-post-content a:hover { color: #3f6212; }
		html.dark .wp-block-post-content a { color: #ccff00; }
		html.dark .wp-block-post-content a:hover { color: #e5ff66; }
		.wp-block-post-content img { border-radius: 1rem; max-width: 100%; height: auto; }
		.wp-block-post-content ul, .wp-block-post-content ol { padding-left: 1.5rem; margin-bottom: 1.5rem; }
		.wp-block-post-content li { margin-bottom: 0.5rem; }
		.wp-block-post-content blockquote { border-left: 4px solid #ccff00; padding-left: 1.5rem; margin: 2rem 0; font-style: italic; color: #6b7280; }
		html.dark .wp-block-post-content blockquote { color: #9ca3af; }

		/* Post tag pills */
		.wp-block-post-terms.flex a { display: inline-block; padding: 0.25rem 0.75rem; border-radius: 9999px; border: 1px solid #e5e7eb; background: #f9fafb; color: #374151; font-size: 0.8rem; font-weight: 500; text-decoration: none; transition: all 0.2s; }
		html.dark .wp-block-post-terms.flex a { background: #1a1a1a; border-color: rgba(255,255,255,0.1); color: #d1d5db; }
		.wp-block-post-terms.flex a:hover { border-color: #4d7c0f; color: #4d7c0f; }
		html.dark .wp-block-post-terms.flex a:hover { color: #ccff00; }

		/* Glass panel card style */
		.glass-panel { background: #ffffff; border: 1px solid #e5e7eb; transition: all 0.3s ease; }
		html.dark .glass-panel { background: #1a1a1a; border: 1px solid #333; }
		.glass-panel:hover { border-color: #d1d5db; transform: translateY(-4px); box-shadow: 0 10px 30px rgba(0,0,0,0.05); }
		html.dark .glass-panel:hover { border-color: rgba(204,255,0,0.3); box-shadow: 0 10px 30px rgba(0,0,0,0.5); }

  /* Global button default */
  .wp-block-button__link, .wp-element-button { background: #84cc16 !important; color: #000 !important; font-weight: 700; border-radius: 0.75rem; text-decoration: none; transition: all 0.2s; }
  .wp-block-button__link:hover, .wp-element-button:hover { background: #a3e635 !important; color: #000 !important; }

  /* Primary button */
		.btn-primary, .wp-block-button.btn-primary .wp-block-button__link { background: #ccff00 !important; color: #000 !important; font-weight: 700; transition: all 0.2s; box-shadow: 0 4px 20px rgba(204,255,0,0.3); border-radius: 9999px; }
		.btn-primary:hover, .wp-block-button.btn-primary .wp-block-button__link:hover { transform: scale(1.02); background: #d4ff33 !important; box-shadow: 0 4px 30px rgba(204,255,0,0.5); }

		/* Image zoom on hover */
		.img-zoom-container { overflow: hidden; }
		.img-zoom-container img { transition: transform 0.5s ease; }
		.group:hover .img-zoom-container img { transform: scale(1.05); }

		/* Scrollbar */
		::-webkit-scrollbar { width: 8px; height: 8px; }
		::-webkit-scrollbar-track { background: transparent; }
		::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 4px; }
		.dark ::-webkit-scrollbar-thumb { background: #334155; }

		/* Navigation block styles */
		.wp-block-navigation a { color: inherit; text-decoration: none; transition: color 0.2s; }
		.wp-block-navigation a:hover { color: #4d7c0f; }
		html.dark .wp-block-navigation a:hover { color: #ccff00; }
		.wp-block-navigation__responsive-container-open,
		.wp-block-navigation__responsive-container-close { color: inherit; }

		/* Site title */
  .wp-block-site-title, .wp-block-site-title a { text-decoration: none; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 1.5rem; letter-spacing: -0.025em; color: rgb(132 204 22) !important; }
  .wp-block-site-title a:hover { opacity: 0.8; }

		/* Categories block */
		.wp-block-categories a { display: inline-block; padding: 0.375rem 1rem; border-radius: 9999px; border: 1px solid #e5e7eb; background: #fff; color: #374151; font-size: 0.875rem; font-weight: 500; text-decoration: none; transition: all 0.2s; }
		html.dark .wp-block-categories a { background: #1a1a1a; border-color: rgba(255,255,255,0.1); color: #d1d5db; }
		.wp-block-categories a:hover { border-color: #4d7c0f; color: #4d7c0f; }
		html.dark .wp-block-categories a:hover { border-color: #ccff00; color: #ccff00; }

		/* Tag cloud */
		.wp-block-tag-cloud a { display: inline-block; padding: 0.375rem 1rem; border-radius: 9999px; border: 1px solid #e5e7eb; background: #fff; color: #374151; font-size: 0.875rem !important; font-weight: 500; text-decoration: none; transition: all 0.2s; margin: 0.25rem; }
		html.dark .wp-block-tag-cloud a { background: #1a1a1a; border-color: rgba(255,255,255,0.1); color: #d1d5db; }
		.wp-block-tag-cloud a:hover { border-color: #4d7c0f; color: #4d7c0f; }
		html.dark .wp-block-tag-cloud a:hover { border-color: #ccff00; color: #ccff00; }

		/* Query pagination — square buttons matching blog_list.html reference */
		.wp-block-query-pagination { display: flex; justify-content: center; align-items: center; gap: 0.5rem; margin-top: 3rem; margin-bottom: 4rem; }
		.wp-block-query-pagination a, .wp-block-query-pagination-numbers .page-numbers { display: inline-flex !important; align-items: center !important; justify-content: center !important; width: 2.5rem !important; height: 2.5rem !important; border-radius: 0.75rem !important; border: 1px solid #e5e7eb !important; background: #fff !important; color: #374151 !important; font-size: 0.875rem !important; font-weight: 700 !important; text-decoration: none !important; transition: border-color 0.2s, color 0.2s !important; padding: 0 !important; }
		.wp-block-query-pagination a:hover, .wp-block-query-pagination-numbers a:hover { border-color: #4d7c0f !important; color: #4d7c0f !important; }
		.wp-block-query-pagination-numbers .page-numbers.current { background: #84cc16 !important; color: #000 !important; border: none !important; box-shadow: 0 4px 12px rgba(132,204,22,0.4) !important; }
		.wp-block-query-pagination-numbers .page-numbers.dots { background: transparent !important; border: none !important; color: #6b7280 !important; width: auto !important; }
		html.dark .wp-block-query-pagination a, html.dark .wp-block-query-pagination-numbers .page-numbers { background: #1a1a1a !important; border-color: rgba(255,255,255,0.1) !important; color: #d1d5db !important; }
		html.dark .wp-block-query-pagination a:hover, html.dark .wp-block-query-pagination-numbers a:hover { border-color: #ccff00 !important; color: #ccff00 !important; }
		html.dark .wp-block-query-pagination-numbers .page-numbers.current { background: #ccff00 !important; color: #000 !important; border: none !important; box-shadow: 0 4px 12px rgba(204,255,0,0.4) !important; }
		html.dark .wp-block-query-pagination-numbers .page-numbers.dots { background: transparent !important; border: none !important; color: #9ca3af !important; }

		/* Post terms (categories/tags in posts) */
		.wp-block-post-terms a { text-decoration: none; color: inherit; }
		.wp-block-post-terms a:hover { text-decoration: underline; }

		/* Read more link */
		.wp-block-read-more { text-decoration: none; }
		.wp-block-read-more:hover { text-decoration: underline; }

		/* Post navigation */
		.wp-block-post-navigation-link a { text-decoration: none; }
		.wp-block-post-navigation-link a:hover { text-decoration: underline; }

		/* Post nav link styled */
		.post-nav-link a { display: inline-flex; flex-direction: column; gap: 0.25rem; text-decoration: none; font-size: 0.875rem; font-weight: 700; color: #4d7c0f; transition: color 0.2s; }
		html.dark .post-nav-link a { color: #ccff00; }
		.post-nav-link a:hover { text-decoration: underline; }

		/* Category badge pill on single post */
		.post-category-badge a { display: inline-block; background: #f0fdf4; color: #15803d; border: 1px solid #bbf7d0; padding: 0.25rem 0.875rem; border-radius: 9999px; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; text-decoration: none; margin-bottom: 1.25rem; }
		html.dark .post-category-badge a { background: rgba(255,255,255,0.08); color: #ccff00; border-color: rgba(204,255,0,0.2); }

		/* Author avatar */
		.post-author-avatar img { width: 40px; height: 40px; border-radius: 9999px; border: 2px solid #e5e7eb; object-fit: cover; }
		html.dark .post-author-avatar img { border-color: rgba(255,255,255,0.2); }

		/* Post content area — full rich styles */
		.post-content-area { font-size: 1.125rem; line-height: 1.8; color: #374151; }
		html.dark .post-content-area { color: #d1d5db; }

		.post-content-area h2 { font-family: 'Space Grotesk', sans-serif; font-size: 1.875rem; font-weight: 700; color: #111827; border-bottom: 1px solid #e5e7eb; padding-bottom: 1rem; margin-top: 3rem; margin-bottom: 1.5rem; }
		html.dark .post-content-area h2 { color: #f9fafb; border-bottom-color: rgba(255,255,255,0.1); }
		/* A heading travel_demote_content_h1() turned into an h2 keeps the look it had as an
		   h1 — nothing styled content h1s, so they inherited from the container. Without this
		   the About page's banner caption would suddenly grow a rule across the photo. */
		.post-content-area h2[data-travel-demoted] { font: inherit; color: inherit; border-bottom: 0; padding-bottom: 0; margin-top: 0; margin-bottom: 0; }
		.post-content-area h3 { font-family: 'Space Grotesk', sans-serif; font-size: 1.5rem; font-weight: 700; color: #111827; margin-top: 2.5rem; margin-bottom: 1rem; }
		html.dark .post-content-area h3 { color: #f9fafb; }
		.post-content-area h4 { font-family: 'Space Grotesk', sans-serif; font-size: 1.125rem; font-weight: 700; color: #111827; margin-top: 2rem; margin-bottom: 0.75rem; }
		html.dark .post-content-area h4 { color: #f9fafb; }

		.post-content-area p { margin-bottom: 1.5rem; }
		.post-content-area strong { color: #111827; font-weight: 700; }
		html.dark .post-content-area strong { color: #f9fafb; }
		.post-content-area a { color: #4d7c0f; text-decoration: underline; }
		.post-content-area a:hover { color: #3f6212; }
		html.dark .post-content-area a:hover { color: #e5ff66; }
		html.dark .post-content-area a { color: #ccff00; }

		/* Images */
		.post-content-area img { border-radius: 1rem; max-width: 100%; height: auto; }
		.post-content-area figure { margin: 2rem 0; border-radius: 1rem; overflow: hidden; border: 1px solid #e5e7eb; background: #f3f4f6; box-shadow: 0 4px 20px rgba(0,0,0,0.08); }
		html.dark .post-content-area figure { border-color: rgba(255,255,255,0.1); background: #000; box-shadow: 0 4px 30px rgba(0,0,0,0.5); }
		.post-content-area figcaption { padding: 0.75rem 1rem; text-align: center; font-size: 0.875rem; color: #6b7280; background: #fff; border-top: 1px solid #e5e7eb; }
		html.dark .post-content-area figcaption { background: #1a1a1a; border-top-color: rgba(255,255,255,0.05); color: #9ca3af; }

		/* Lists */
		.post-content-area ul { list-style: disc; padding-left: 1.5rem; margin-bottom: 1.5rem; }
		.post-content-area ol { list-style: decimal; padding-left: 1.5rem; margin-bottom: 1.5rem; }
		.post-content-area li { margin-bottom: 0.5rem; color: #374151; }
		html.dark .post-content-area li { color: #d1d5db; }
		.post-content-area ul li::marker { color: #4d7c0f; font-weight: 700; }
		html.dark .post-content-area ul li::marker { color: #ccff00; }
		.post-content-area ol li::marker { color: #4d7c0f; font-weight: 700; }
		html.dark .post-content-area ol li::marker { color: #ccff00; }

		/* Styled list panels (glass-panel lists) */
		.post-content-area .wp-block-list { background: #fff; border: 1px solid #e5e7eb; border-radius: 0.75rem; padding: 2.0rem; box-shadow: 0 1px 4px rgba(0,0,0,0.05); }
		html.dark .post-content-area .wp-block-list { background: #1a1a1a; border-color: rgba(255,255,255,0.1); }

		/* Blockquote */
		.post-content-area blockquote, .post-content-area .wp-block-quote { border-left: 4px solid #84cc16; padding: 1rem 1.5rem; margin: 2rem 0; font-style: italic; font-size: 1.25rem; color: #1f2937; background: linear-gradient(to right, rgba(132,204,22,0.08), transparent); border-radius: 0 0.5rem 0.5rem 0; position: relative; }
		html.dark .post-content-area blockquote, html.dark .post-content-area .wp-block-quote { border-left-color: #ccff00; color: #e5e7eb; background: linear-gradient(to right, rgba(204,255,0,0.05), transparent); }
		.post-content-area blockquote cite, .post-content-area .wp-block-quote cite { display: block; font-size: 0.875rem; font-style: normal; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: #6b7280; margin-top: 1rem; }
		html.dark .post-content-area blockquote cite, html.dark .post-content-area .wp-block-quote cite { color: #9ca3af; }

		/* Separator / Divider */
		.post-content-area hr, .post-content-area .wp-block-separator { border: none; height: 1px; background: linear-gradient(to right, transparent, rgba(132,204,22,0.5), transparent); margin: 2.5rem 0; }
		html.dark .post-content-area hr, html.dark .post-content-area .wp-block-separator { background: linear-gradient(to right, transparent, rgba(204,255,0,0.4), transparent); }

		/* Code block */
		.post-content-area pre, .post-content-area .wp-block-code { background: #111827; color: #e5e7eb; border-radius: 0.75rem; overflow: hidden; border: 1px solid rgba(255,255,255,0.1); margin: 2rem 0; }
		html.dark .post-content-area pre, html.dark .post-content-area .wp-block-code { background: #0a0a0a; }
		.post-content-area pre code { display: block; padding: 1.5rem; font-family: 'Fira Code', 'Courier New', monospace; font-size: 0.875rem; line-height: 1.7; overflow-x: auto; }
		.post-content-area code:not(pre code) { background: #f3f4f6; color: #dc2626; padding: 0.125rem 0.375rem; border-radius: 0.25rem; font-size: 0.875em; font-family: monospace; }
		html.dark .post-content-area code:not(pre code) { background: rgba(255,255,255,0.1); color: #f87171; }

		/* Table */
		.post-content-area .wp-block-table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: 0.75rem; border: 1px solid #e5e7eb; box-shadow: 0 1px 2px rgba(0,0,0,0.05); margin: 2rem 0; padding: 0; }
		html.dark .post-content-area .wp-block-table { border-color: rgba(255,255,255,0.1); box-shadow: none; }
		.post-content-area .wp-block-table table { min-width: 500px; width: 100%; border-collapse: collapse; font-size: 0.875rem; text-align: left; color: #374151; margin: 0; }
		html.dark .post-content-area .wp-block-table table { color: #d1d5db; }
		.post-content-area .wp-block-table thead { font-size: 0.75rem; text-transform: uppercase; color: #4b5563; background: #f3f4f6; border-bottom: 1px solid #e5e7eb; }
		html.dark .post-content-area .wp-block-table thead { color: #9ca3af; background: #1a1a1a; border-bottom-color: rgba(255,255,255,0.1); }
		.post-content-area .wp-block-table th, .post-content-area .wp-block-table td { border: none; }
		.post-content-area .wp-block-table th { padding: 1.25rem 1.5rem; font-weight: 700; }
		.post-content-area .wp-block-table td { padding: 1rem 1.5rem; border-bottom: 1px solid #f3f4f6; transition: background-color 0.15s; }
		html.dark .post-content-area .wp-block-table td { border-bottom-color: rgba(255,255,255,0.05); }
		.post-content-area .wp-block-table tbody tr:last-child td { border-bottom: none; }
		.post-content-area .wp-block-table tbody tr:nth-child(odd) td { background: #ffffff; }
		.post-content-area .wp-block-table tbody tr:nth-child(even) td { background: #f9fafb; }
		html.dark .post-content-area .wp-block-table tbody tr:nth-child(odd) td { background: #000000; }
		html.dark .post-content-area .wp-block-table tbody tr:nth-child(even) td { background: #0a0a0a; }
		.post-content-area .wp-block-table tbody tr:nth-child(odd):hover td { background: #f9fafb; }
		.post-content-area .wp-block-table tbody tr:nth-child(even):hover td { background: #f3f4f6; }
		html.dark .post-content-area .wp-block-table tbody tr:hover td { background: rgba(255,255,255,0.05); }
		.post-content-area .wp-block-table tbody td:first-child { font-weight: 700; font-size: 1rem; color: #111827; }
		html.dark .post-content-area .wp-block-table tbody td:first-child { color: #ffffff; }
		.post-content-area .wp-block-table tbody td:nth-child(2) { color: #4d7c0f; font-weight: 500; }
		html.dark .post-content-area .wp-block-table tbody td:nth-child(2) { color: #ccff00; }

		/* Callout / Notice blocks (wp:group with notice class) */
		.post-content-area .wp-block-group.is-style-notice,
		.post-content-area .notice-info { background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 0.75rem; padding: 1.5rem; margin: 2rem 0; display: flex; gap: 1.25rem; position: relative; overflow: hidden; }
		html.dark .post-content-area .notice-info { background: rgba(59,130,246,0.1); border-color: rgba(59,130,246,0.3); }
		.post-content-area .notice-warning { background: #fef2f2; border: 1px solid #fecaca; border-radius: 0.75rem; padding: 1.5rem; margin: 2rem 0; display: flex; gap: 1.25rem; }
		html.dark .post-content-area .notice-warning { background: rgba(255,51,51,0.1); border-color: rgba(255,51,51,0.3); }

		/* Accordion / Details */
		@keyframes travel-sweep { 0% { opacity: 0; margin-top: -8px; } 100% { opacity: 1; margin-top: 0; } }
		.post-content-area details { background: #ffffff; border: 1px solid #e5e7eb; border-radius: 0.75rem; margin-bottom: 1rem; overflow: hidden; box-shadow: 0 1px 2px rgba(0,0,0,0.05); transition: all 0.3s ease; }
		html.dark .post-content-area details { background: #1a1a1a; border: 1px solid #333; box-shadow: none; }
		.post-content-area details:hover { border-color: #d1d5db; transform: translateY(-4px); box-shadow: 0 10px 30px rgba(0,0,0,0.05); }
		html.dark .post-content-area details:hover { border-color: rgba(204,255,0,0.3); box-shadow: 0 10px 30px rgba(0,0,0,0.5); }
		.post-content-area details summary { padding: 1.25rem; font-weight: 700; font-size: 1.125rem; color: #111827; cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; user-select: none; }
		html.dark .post-content-area details summary { color: #f9fafb; }
		.post-content-area details summary::-webkit-details-marker { display: none; }
		.post-content-area details summary::after { content: ''; width: 0.8rem; height: 0.8rem; flex-shrink: 0; transition: transform 0.2s; background-color: #4d7c0f; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center/contain no-repeat; }
		html.dark .post-content-area details summary::after { background-color: #ccff00; }
		.post-content-area details[open] summary::after { transform: rotate(180deg); }
		.post-content-area details[open] summary { border-bottom: 1px solid #e5e7eb; }
		html.dark .post-content-area details[open] summary { border-bottom-color: rgba(255,255,255,0.05); }
		.post-content-area details > div, .post-content-area details > p { padding: 1rem 1.25rem 1.25rem; color: #374151; font-size: 1rem; line-height: 1.7; animation: travel-sweep 0.2s ease-in-out; }
		html.dark .post-content-area details > div, html.dark .post-content-area details > p { color: #d1d5db; }

		/* UAGB FAQ Block — styled to match accordion design */
		.post-content-area .wp-block-uagb-faq { display: flex; flex-direction: column; gap: 1rem; }
		.post-content-area .uagb-faq-item { background: #ffffff; border: 1px solid #e5e7eb !important; border-radius: 0.75rem !important; overflow: hidden; box-shadow: 0 1px 2px rgba(0,0,0,0.05); transition: all 0.3s ease; margin: 0 !important; }
		html.dark .post-content-area .uagb-faq-item { background: #1a1a1a !important; border: 1px solid #333 !important; box-shadow: none; }
		.post-content-area .uagb-faq-item:hover { border-color: #d1d5db !important; transform: translateY(-4px); box-shadow: 0 10px 30px rgba(0,0,0,0.05); }
		html.dark .post-content-area .uagb-faq-item:hover { border-color: rgba(204,255,0,0.3) !important; box-shadow: 0 10px 30px rgba(0,0,0,0.5); }
		.post-content-area .uagb-faq-questions-button { padding: 1.25rem !important; display: flex; justify-content: space-between; align-items: center; cursor: pointer; user-select: none; width: 100%; }
		.post-content-area .uagb-question { font-weight: 700 !important; font-size: 1.125rem !important; color: #111827 !important; flex: 1; }
		html.dark .post-content-area .uagb-question { color: #f9fafb !important; }
		.post-content-area .uagb-faq-item-active .uagb-faq-questions-button { border-bottom: 1px solid #e5e7eb; }
		html.dark .post-content-area .uagb-faq-item-active .uagb-faq-questions-button { border-bottom-color: rgba(255,255,255,0.05); }
		/* Hide UAGB +/- SVG icons, replace with CSS chevron */
		.post-content-area .uagb-faq-icon-wrap { display: none !important; }
		.post-content-area .uagb-faq-questions-button::after { content: ''; width: 0.8rem; height: 0.8rem; flex-shrink: 0; transition: transform 0.2s; background-color: #4d7c0f; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center/contain no-repeat; }
		html.dark .post-content-area .uagb-faq-questions-button::after { background-color: #ccff00; }
		.post-content-area .uagb-faq-item-active .uagb-faq-questions-button::after { transform: rotate(180deg); }
		.post-content-area .uagb-faq-content { padding: 1rem 1.25rem 1.25rem !important; color: #374151 !important; font-size: 1rem !important; line-height: 1.7 !important; animation: travel-sweep 0.2s ease-in-out; }
		html.dark .post-content-area .uagb-faq-content { color: #d1d5db !important; }
		.post-content-area .uagb-faq-content p { margin-bottom: 0; }

		/* Columns block */
		.post-content-area .wp-block-columns { display: flex; gap: 1.5rem; flex-wrap: wrap; margin: 2rem 0; }
		.post-content-area .wp-block-column { flex: 1 1 200px; }

		/* Embed / iframe */
		.post-content-area .wp-block-embed, .post-content-area .wp-block-video { margin: 2rem 0; border-radius: 1rem; overflow: hidden; }
		.post-content-area iframe { width: 100%; border-radius: 0.75rem; border: 1px solid #e5e7eb; }
		html.dark .post-content-area iframe { border-color: rgba(255,255,255,0.1); }
		.post-content-area .wp-block-embed__wrapper { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; border-radius: 1rem; }
		.post-content-area .wp-block-embed__wrapper iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; }

		/* File block */
		.post-content-area .wp-block-file { display: flex; align-items: center; justify-content: space-between; background: #fff; border: 1px solid #e5e7eb; border-radius: 0.75rem; padding: 1.25rem 1.5rem; margin: 2rem 0; transition: border-color 0.2s; }
		html.dark .post-content-area .wp-block-file { background: #1a1a1a; border-color: rgba(255,255,255,0.1); }
		.post-content-area .wp-block-file:hover { border-color: #84cc16; }
		html.dark .post-content-area .wp-block-file:hover { border-color: rgba(204,255,0,0.4); }
		.post-content-area .wp-block-file a { color: #111827; font-weight: 700; text-decoration: none; }
		html.dark .post-content-area .wp-block-file a { color: #f9fafb; }
		.post-content-area .wp-block-file .wp-block-file__button { background: #f3f4f6; color: #374151; border: 1px solid #e5e7eb; border-radius: 9999px; padding: 0.375rem 1rem; font-size: 0.8rem; font-weight: 600; text-decoration: none; transition: all 0.2s; }
		html.dark .post-content-area .wp-block-file .wp-block-file__button { background: rgba(255,255,255,0.08); color: #d1d5db; border-color: rgba(255,255,255,0.1); }
		.post-content-area .wp-block-file .wp-block-file__button:hover { background: #ccff00; color: #000; border-color: #ccff00; }

 	/* Button block */
 	.post-content-area .wp-block-buttons { margin: 2rem 0; }
 	.post-content-area .wp-block-button__link { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.875rem 2rem; border-radius: 0.75rem; font-weight: 700; font-size: 1rem; text-decoration: none; transition: all 0.2s; background: #ccff00; color: #000; }
 	.post-content-area .wp-block-button__link:hover { background: #d4ff33; transform: scale(1.02); }
 	.post-content-area .wp-block-button.is-style-outline .wp-block-button__link { background: transparent; border: 2px solid #e5e7eb; color: #374151; }
 	html.dark .post-content-area .wp-block-button.is-style-outline .wp-block-button__link { border-color: rgba(255,255,255,0.2); color: #d1d5db; }

 	/* ===== TABLE OF CONTENTS BLOCK ===== */
 	.wp-block-table-of-content-block-table-of-content {
 		background: #fff;
 		border: 1px solid #e5e7eb;
 		border-radius: 1rem;
 		margin: 2rem 0;
 		overflow: hidden;
 		font-family: 'Space Grotesk', 'Inter', sans-serif;
 	}
 	html.dark .wp-block-table-of-content-block-table-of-content {
 		background: #111;
 		border-color: rgba(255,255,255,0.1);
 	}

 	/* Accordion header */
 	.wp-block-table-of-content-block-table-of-content .tbcn-accordion {
 		background: transparent;
 		border: none;
 		width: 100%;
 	}
 	.wp-block-table-of-content-block-table-of-content .tbcn-accordion .tbcn-accordion-title {
 		padding: 1rem 1.5rem;
 		font-size: 0.875rem;
 		font-weight: 700;
 		text-transform: uppercase;
 		letter-spacing: 0.08em;
 		color: #6b7280;
 		background: #f9fafb;
 		border-bottom: 1px solid #e5e7eb;
 	}
 	html.dark .wp-block-table-of-content-block-table-of-content .tbcn-accordion .tbcn-accordion-title {
 		background: #1a1a1a;
 		border-bottom-color: rgba(255,255,255,0.08);
 		color: #9ca3af;
 	}
 	.wp-block-table-of-content-block-table-of-content .tbcn-accordion .tbcn-accordion-title svg,
 	.wp-block-table-of-content-block-table-of-content .tbcn-accordion .tbcn-accordion-title .icon {
 		color: #84cc16;
 	}
 	html.dark .wp-block-table-of-content-block-table-of-content .tbcn-accordion .tbcn-accordion-title svg,
 	html.dark .wp-block-table-of-content-block-table-of-content .tbcn-accordion .tbcn-accordion-title .icon {
 		color: #ccff00;
 	}

 	/* Panel / list area */
 	.wp-block-table-of-content-block-table-of-content .tbcn-accordion .tbcn-panel {
 		padding: 0.5rem 0;
 	}
 	.wp-block-table-of-content-block-table-of-content .tbcn-accordion .tbcn-panel .tbcn-panel-table-container-order-list {
 		padding: 0.5rem 1.5rem 1rem;
 		list-style: none;
 	}
 	.wp-block-table-of-content-block-table-of-content .tbcn-accordion .tbcn-panel .tbcn-panel-table-container-order-list .tbcn-panel-table-list-items {
 		margin-bottom: 0.25rem;
 	}
 	.wp-block-table-of-content-block-table-of-content .tbcn-accordion .tbcn-panel .tbcn-panel-table-container-order-list .tbcn-panel-table-list-items::marker {
 		font-size: 1rem;
 		color: #84cc16;
 	}
 	html.dark .wp-block-table-of-content-block-table-of-content .tbcn-accordion .tbcn-panel .tbcn-panel-table-container-order-list .tbcn-panel-table-list-items::marker {
 		color: #ccff00;
 	}

 	/* TOC links */
 	.wp-block-table-of-content-block-table-of-content .tbcn-table-content-anchor-list,
 	.wp-block-table-of-content-block-table-of-content .tbcn-list-container .tbcn-list-items .tbcn-list-item > a,
 	.wp-block-table-of-content-block-table-of-content .tbcn-timeline-container .tbcn-timeline-list-items .tbcn-timeline-list > a {
 		color: #374151;
 		text-decoration: none;
 		font-size: 0.9375rem;
 		line-height: 1.8;
 		transition: color 0.2s ease;
 	}
 	html.dark .wp-block-table-of-content-block-table-of-content .tbcn-table-content-anchor-list,
 	html.dark .wp-block-table-of-content-block-table-of-content .tbcn-list-container .tbcn-list-items .tbcn-list-item > a,
 	html.dark .wp-block-table-of-content-block-table-of-content .tbcn-timeline-container .tbcn-timeline-list-items .tbcn-timeline-list > a {
 		color: #d1d5db;
 	}
 	.wp-block-table-of-content-block-table-of-content .tbcn-table-content-anchor-list:hover,
 	.wp-block-table-of-content-block-table-of-content .tbcn-list-container .tbcn-list-items .tbcn-list-item > a:hover,
 	.wp-block-table-of-content-block-table-of-content .tbcn-timeline-container .tbcn-timeline-list-items .tbcn-timeline-list > a:hover {
 		color: #84cc16;
 	}
 	html.dark .wp-block-table-of-content-block-table-of-content .tbcn-table-content-anchor-list:hover,
 	html.dark .wp-block-table-of-content-block-table-of-content .tbcn-list-container .tbcn-list-items .tbcn-list-item > a:hover,
 	html.dark .wp-block-table-of-content-block-table-of-content .tbcn-timeline-container .tbcn-timeline-list-items .tbcn-timeline-list > a:hover {
 		color: #ccff00;
 	}

 	/* List style variant */
 	.wp-block-table-of-content-block-table-of-content .tbcn-list-container {
 		padding: 1rem 1.5rem;
 	}
 	.wp-block-table-of-content-block-table-of-content .tbcn-list-container .tbcn-list-title .tbcn-list-title-heading {
 		font-size: 0.875rem;
 		font-weight: 700;
 		text-transform: uppercase;
 		letter-spacing: 0.08em;
 		color: #6b7280;
 		margin-bottom: 0.75rem;
 	}
 	html.dark .wp-block-table-of-content-block-table-of-content .tbcn-list-container .tbcn-list-title .tbcn-list-title-heading {
 		color: #9ca3af;
 	}
 	.wp-block-table-of-content-block-table-of-content .tbcn-list-container .tbcn-list-items .tbcn-list-item > a:before {
 		background: #84cc16;
 		border-radius: 2px;
 	}
 	html.dark .wp-block-table-of-content-block-table-of-content .tbcn-list-container .tbcn-list-items .tbcn-list-item > a:before {
 		background: #ccff00;
 	}

 	/* Timeline style variant */
 	.wp-block-table-of-content-block-table-of-content .tbcn-timeline-container {
 		padding: 1rem 1.5rem;
 	}
 	.wp-block-table-of-content-block-table-of-content .tbcn-timeline-container .tbcn-timeline-list-items .tbcn-timeline-list > a:before {
 		background-color: #84cc16;
 		border-color: #f0fdf4;
 	}
 	html.dark .wp-block-table-of-content-block-table-of-content .tbcn-timeline-container .tbcn-timeline-list-items .tbcn-timeline-list > a:before {
 		background-color: #ccff00;
 		border-color: #111;
 	}

 	/* Slide style variant */
 	.wp-block-table-of-content-block-table-of-content .slide-container .slide-titleSubWrapper .slide-title:after,
 	.wp-block-table-of-content-block-table-of-content .slide-container .slide-list-items .slide-list:after {
 		background: #84cc16;
 	}
 	html.dark .wp-block-table-of-content-block-table-of-content .slide-container .slide-titleSubWrapper .slide-title:after,
 	html.dark .wp-block-table-of-content-block-table-of-content .slide-container .slide-list-items .slide-list:after {
 		background: #ccff00;
 	}
 	.wp-block-table-of-content-block-table-of-content .slide-container .slide-list-items .slide-list a {
 		color: #374151;
 	}
 	html.dark .wp-block-table-of-content-block-table-of-content .slide-container .slide-list-items .slide-list a {
 		color: #d1d5db;
 	}
 	.wp-block-table-of-content-block-table-of-content .slide-container:hover .slide-list-items .slide-list a {
 		color: #111827;
 	}
 	html.dark .wp-block-table-of-content-block-table-of-content .slide-container:hover .slide-list-items .slide-list a {
 		color: #f9fafb;
 	}
 	

/* ---- functions.php:133 travel_search_form_styles (priority 20) ---- */
		/* The desktop header search expands the field out of the button. With no gap the
		   input's rounded edge and its focus ring ran straight into the button. Applied
		   only while expanded, so the collapsed header icons keep their spacing.
		   Single quotes in the selector on purpose: this CSS lives in a PHP double-quoted
		   string (see bin/check-inline-css.py). */
		.travel-header-search .wp-block-search__button[aria-expanded='true'] { margin-left: 0.5rem; }

		.travel-search-form .wp-block-search__inside-wrapper {
			border: 1px solid #e5e7eb; background: #ffffff; border-radius: 9999px;
			padding: 0.25rem 0.25rem 0.25rem 1.25rem; overflow: hidden;
		}
		html.dark .travel-search-form .wp-block-search__inside-wrapper {
			border-color: rgba(255,255,255,0.1); background: #1a1a1a;
		}
		.travel-search-form .wp-block-search__inside-wrapper:focus-within {
			border-color: #4d7c0f;
		}
		html.dark .travel-search-form .wp-block-search__inside-wrapper:focus-within {
			border-color: #ccff00;
		}
		.travel-search-form .wp-block-search__input {
			border: none; background: transparent; outline: none; box-shadow: none;
			padding: 0.75rem 0; font-size: 1rem; color: #111827;
		}
		html.dark .travel-search-form .wp-block-search__input { color: #f9fafb; }
		/* !important: the global .wp-element-button rule in travel_scripts() is !important and
		   would otherwise paint these #84cc16, which is 2.2:1 against white label text. */
		.travel-search-form .wp-block-search__button {
			background: #4d7c0f !important; color: #ffffff !important; border: none; border-radius: 9999px;
			padding: 0.75rem 1.75rem; font-weight: 700; cursor: pointer;
			transition: background 0.2s; margin: 0;
		}
		.travel-search-form .wp-block-search__button:hover { background: #3f6212 !important; }
		html.dark .travel-search-form .wp-block-search__button { background: #ccff00 !important; color: #050505 !important; }
		html.dark .travel-search-form .wp-block-search__button:hover { background: #b8e600 !important; }
		.travel-search-form .wp-block-search__button.has-icon { padding: 0.625rem; }
		.travel-search-form .wp-block-search__button svg { width: 1.5rem; height: 1.5rem; fill: currentColor; }

		/* Header search — core's 'button-only' expand-on-click variant. The magnifier is a
		   plain icon button in the header row; core swaps .wp-block-search__searchfield-hidden
		   on click and animates the field open itself. */
		.travel-header-search { margin: 0; flex-shrink: 0; }
		.travel-header-search .wp-block-search__inside-wrapper { border: none; background: transparent; padding: 0; }
		/* The global .wp-element-button rule above is !important, so these have to be too —
		   otherwise the magnifier renders as a solid lime pill next to the dark-mode toggle. */
		.travel-header-search .wp-block-search__button {
			background: #e5e7eb !important; color: #374151 !important; border: none; margin: 0; padding: 0;
			width: 2.5rem; height: 2.5rem; border-radius: 9999px; flex-shrink: 0;
			align-items: center; justify-content: center; cursor: pointer; transition: background 0.2s;
		}
		.travel-header-search .wp-block-search__button:hover { background: #d1d5db !important; }
		html.dark .travel-header-search .wp-block-search__button { background: rgba(255,255,255,0.1) !important; color: #ccff00 !important; }
		html.dark .travel-header-search .wp-block-search__button:hover { background: rgba(255,255,255,0.2) !important; }
		.travel-header-search .wp-block-search__button svg { width: 1.25rem; height: 1.25rem; fill: currentColor; }
		.travel-header-search .wp-block-search__input {
			width: 11rem; border: 1px solid #e5e7eb; border-radius: 9999px; background: #ffffff;
			padding: 0.5rem 0.875rem; font-size: 0.9375rem; color: #111827; outline-offset: 2px;
		}
		html.dark .travel-header-search .wp-block-search__input { background: #1a1a1a; border-color: rgba(255,255,255,0.1); color: #f9fafb; }
	

/* ---- functions.php:804 travel_sidebar_styles (priority 20) ---- */
		/* Hide the sidebar aside element completely */
		body.no-sidebar aside.wp-block-group {
			display: none !important;
		}
		
		/* Expand the article to full width */
		body.no-sidebar article.wp-block-group {
			width: 100% !important;
			max-width: 100% !important;
			flex: none !important;
		}
	

/* ---- inc/prep-planner.php:1089 travel_prep_styles (priority 20) ---- */
		.travel-prep { margin: 0 0 3rem; }
		.travel-prep__intro { margin-bottom: 1.75rem; }
		.travel-prep__heading { margin: 0 0 0.6rem; font-family: Space Grotesk, sans-serif; font-weight: 700; font-size: clamp(1.75rem, 4vw, 2.5rem); line-height: 1.15; color: #111827; }
		html.dark .travel-prep__heading { color: #f9fafb; }
		.travel-prep__lead { margin: 0; max-width: 46rem; font-size: 1.0625rem; line-height: 1.65; color: #4b5563; }
		html.dark .travel-prep__lead { color: #d1d5db; }

		/* ---- destination picker */
		.travel-prep__picker { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-bottom: 1.5rem; }
		.travel-prep__chip {
			display: inline-flex; align-items: center; gap: 0.5rem; min-height: 48px;
			padding: 0.6rem 1.1rem; font-size: 0.9375rem; font-weight: 700; font-family: inherit;
			color: #374151; background: #ffffff; border: 1.5px solid #e5e7eb; border-radius: 9999px;
			cursor: pointer; transition: border-color 0.18s, color 0.18s, transform 0.18s, box-shadow 0.18s;
		}
		.travel-prep__chip:hover { border-color: #4d7c0f; color: #4d7c0f; transform: translateY(-1px); box-shadow: 0 4px 14px rgba(77,124,15,0.12); }
		.travel-prep__chip:focus-visible { outline: 3px solid #4d7c0f; outline-offset: 2px; }
		.travel-prep__chip.is-active { color: #ffffff; background: #4d7c0f; border-color: #4d7c0f; }
		.travel-prep__flag { font-size: 1.25rem; line-height: 1; }
		html.dark .travel-prep__chip { color: #d1d5db; background: #1a1a1a; border-color: rgba(255,255,255,0.14); }
		html.dark .travel-prep__chip:hover { border-color: #ccff00; color: #ccff00; box-shadow: 0 4px 14px rgba(204,255,0,0.1); }
		html.dark .travel-prep__chip:focus-visible { outline-color: #ccff00; }
		html.dark .travel-prep__chip.is-active { color: #111111; background: #ccff00; border-color: #ccff00; }

		/* ---- date + progress */
		.travel-prep__datebar { display: flex; flex-wrap: wrap; gap: 0.75rem 1.25rem; align-items: flex-end; margin-bottom: 0.75rem; }
		.travel-prep__fields { display: flex; flex-wrap: wrap; gap: 0.75rem 1rem; align-items: flex-end; }
		.travel-prep__actions { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: flex-end; }
		.travel-prep__datefield { display: flex; flex-direction: column; gap: 0.35rem; font-size: 0.8125rem; font-weight: 700; color: #4b5563; }
		html.dark .travel-prep__datefield { color: #d1d5db; }
		.travel-prep__datefield input[data-field=days] { max-width: 6.5rem; }
		.travel-prep__datefield select[data-field=tier] {
			min-height: 48px; padding: 0.6rem 2.1rem 0.6rem 0.75rem; font-size: 1rem; font-family: inherit;
			color: #111827; background-color: #ffffff; border: 1px solid #d1d5db; border-radius: 0.6rem;
			appearance: none; -webkit-appearance: none; background-repeat: no-repeat;
			background-position: right 0.6rem center; background-size: 1.05rem;
			background-image: url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236b7280%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%209l6%206%206-6%22%2F%3E%3C%2Fsvg%3E);
		}
		html.dark .travel-prep__datefield select[data-field=tier] { color: #f9fafb; background-color: #050505; border-color: rgba(255,255,255,0.15);
			background-image: url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23d1d5db%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%209l6%206%206-6%22%2F%3E%3C%2Fsvg%3E); }
		.travel-prep__datefield select[data-field=tier]:focus-visible { outline: 3px solid #4d7c0f; outline-offset: 1px; }
		html.dark .travel-prep__datefield select[data-field=tier]:focus-visible { outline-color: #ccff00; }
		.travel-prep__datefield input {
			min-height: 48px; padding: 0.6rem 0.75rem; font-size: 1rem; font-weight: 400; font-family: inherit;
			color: #111827; background: #ffffff; border: 1px solid #d1d5db; border-radius: 0.6rem;
		}
		html.dark .travel-prep__datefield input { background-color: #050505; border-color: rgba(255,255,255,0.15); color: #f9fafb;
			/* the calendar glyph is browser-drawn; without this it stays dark on dark */
			color-scheme: dark; }
		.travel-prep__datefield input:focus-visible { outline: 3px solid #4d7c0f; outline-offset: 1px; }
		html.dark .travel-prep__datefield input:focus-visible { outline-color: #ccff00; }
		.travel-prep__ics {
			min-height: 48px; padding: 0.6rem 1.25rem; font-size: 0.9375rem; font-weight: 700; font-family: inherit;
			color: #ffffff; background: #4d7c0f; border: none; border-radius: 9999px; cursor: pointer;
		}
		.travel-prep__ics:hover { background: #3f6212; }
		.travel-prep__ics:focus-visible { outline: 3px solid #4d7c0f; outline-offset: 2px; }
		html.dark .travel-prep__ics { color: #111111; background: #ccff00; }
		html.dark .travel-prep__ics:hover { background: #d4ff33; }
		html.dark .travel-prep__ics:focus-visible { outline-color: #ccff00; }
		.travel-prep__progresswrap { margin: 0 0 2rem; }
		.travel-prep__progress { margin: 0 0 0.35rem; text-align: right; font-size: 0.8125rem; font-weight: 700; color: #4b5563; }
		.travel-prep__progress:empty { display: none; }
		html.dark .travel-prep__progress { color: #d1d5db; }
		.travel-prep__bar { height: 6px; margin: 0; border-radius: 9999px; background: #e5e7eb; overflow: hidden; }
		html.dark .travel-prep__bar { background: rgba(255,255,255,0.12); }
		.travel-prep__bar span { display: block; width: 0; height: 100%; border-radius: 9999px; background: #4d7c0f; transition: width 0.25s ease; }
		html.dark .travel-prep__bar span { background: #ccff00; }

		/* ---- panel */
		.travel-prep__country { margin: 0 0 1.25rem; font-family: Space Grotesk, sans-serif; font-weight: 700; font-size: 1.5rem; color: #111827; }
		html.dark .travel-prep__country { color: #f9fafb; }
		/* Five cards: auto-fit left a 4 + 1 orphan row at article width, so pin the count per
		   breakpoint instead and let the type shrink a touch to fit one clean row. */
		.travel-prep__facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.6rem; margin-bottom: 1.5rem; }
		.travel-prep__fact { padding: 1rem; border: 1px solid #e5e7eb; border-radius: 0.9rem; background: #ffffff; }
		html.dark .travel-prep__fact { background: #1a1a1a; border-color: rgba(255,255,255,0.1); }
		.travel-prep__fact-label { margin: 0 0 0.35rem; font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #6b7280; }
		html.dark .travel-prep__fact-label { color: #9ca3af; }
		.travel-prep__fact-value { margin: 0; font-weight: 700; font-size: 0.9375rem; line-height: 1.35; color: #111827; }
		html.dark .travel-prep__fact-value { color: #f9fafb; }
		.travel-prep__fact-sub { margin: 0.25rem 0 0; font-size: 0.75rem; line-height: 1.35; color: #6b7280; }
		html.dark .travel-prep__fact-sub { color: #9ca3af; }

		/* ---- checklist */
		.post-content-area .travel-prep__list,
		.travel-prep__list { list-style: none; margin: 0 0 2rem; padding: 0; display: flex; flex-direction: column; gap: 0.5rem; }
		.travel-prep__task { display: flex; align-items: flex-start; gap: 0.75rem; padding: 0.9rem 1rem; border: 1px solid #e5e7eb; border-left: 4px solid #e5e7eb; border-radius: 0.75rem; background: #ffffff; transition: border-color 0.18s; }
		html.dark .travel-prep__task { background: #1a1a1a; border-color: rgba(255,255,255,0.1); border-left-color: rgba(255,255,255,0.12); }
		.travel-prep__task.is-soon { border-left-color: #b45309; }
		.travel-prep__task.is-overdue { border-left-color: #b91c1c; }
		html.dark .travel-prep__task.is-soon { border-left-color: #fbbf24; }
		html.dark .travel-prep__task.is-overdue { border-left-color: #fca5a5; }
		.travel-prep__task input[type=checkbox] { width: 1.5rem; height: 1.5rem; margin-top: 0.1rem; accent-color: #4d7c0f; flex-shrink: 0; }
		html.dark .travel-prep__task input[type=checkbox] { accent-color: #ccff00; }
		.travel-prep__task label { display: flex; flex-direction: column; gap: 0.15rem; cursor: pointer; }
		.travel-prep__when { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: #4d7c0f; }
		html.dark .travel-prep__when { color: #ccff00; }
		.travel-prep__task.is-soon .travel-prep__when { color: #b45309; }
		.travel-prep__task.is-overdue .travel-prep__when { color: #b91c1c; }
		html.dark .travel-prep__task.is-soon .travel-prep__when { color: #fbbf24; }
		html.dark .travel-prep__task.is-overdue .travel-prep__when { color: #fca5a5; }
		.travel-prep__what { font-weight: 700; font-size: 1rem; color: #111827; }
		html.dark .travel-prep__what { color: #f9fafb; }
		.travel-prep__note { font-size: 0.875rem; line-height: 1.5; color: #4b5563; }
		html.dark .travel-prep__note { color: #d1d5db; }
		.travel-prep__task input:checked ~ label .travel-prep__what { color: #6b7280; text-decoration: line-through; }
		html.dark .travel-prep__task input:checked ~ label .travel-prep__what { color: #9ca3af; }

		/* ---- tips + links */
		.travel-prep__tips { padding: 1.1rem 1.25rem; margin-bottom: 1.5rem; border-left: 4px solid #4d7c0f; border-radius: 0.75rem; background: #f3f4f6; }
		html.dark .travel-prep__tips { background: #1a1a1a; border-left-color: #ccff00; }
		.travel-prep__tips-title { margin: 0 0 0.6rem; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #4d7c0f; }
		html.dark .travel-prep__tips-title { color: #ccff00; }
		.post-content-area .travel-prep__tips ul,
		.travel-prep__tips ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.55rem; }
		.travel-prep__tips li { font-size: 0.9375rem; line-height: 1.6; color: #374151; }
		html.dark .travel-prep__tips li { color: #d1d5db; }
		.travel-prep__more { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-bottom: 1rem; }
		.post-content-area .travel-prep__more-link,
		.travel-prep__more-link { display: inline-flex; align-items: center; min-height: 44px; padding: 0.5rem 1.1rem; font-size: 0.9375rem; font-weight: 700; color: #4d7c0f; text-decoration: none; border: 1.5px solid #4d7c0f; border-radius: 9999px; }
		.travel-prep__more-link:hover { background: #4d7c0f; color: #ffffff; }
		html.dark .post-content-area .travel-prep__more-link,
		html.dark .travel-prep__more-link { color: #ccff00; border-color: #ccff00; }
		html.dark .travel-prep__more-link:hover { background: #ccff00; color: #111111; }
		.post-content-area .travel-prep__cta,
		.travel-prep__cta { display: inline-flex; align-items: center; min-height: 44px; padding: 0.5rem 1.25rem; font-size: 0.9375rem; font-weight: 700; color: #ffffff; text-decoration: none; background: #4d7c0f; border-radius: 9999px; }
		.travel-prep__cta:hover { background: #3f6212; color: #ffffff; }
		html.dark .post-content-area .travel-prep__cta,
		html.dark .travel-prep__cta { color: #111111; background: #ccff00; }
		html.dark .travel-prep__cta:hover { background: #d4ff33; color: #111111; }
		.travel-prep__source { margin: 0 0 1rem; font-size: 0.8125rem; color: #6b7280; }
		html.dark .travel-prep__source { color: #9ca3af; }
		.travel-prep__disclaimer { margin: 1.5rem 0 0; padding-top: 1.25rem; border-top: 1px solid #e5e7eb; font-size: 0.8125rem; font-style: italic; color: #6b7280; }
		html.dark .travel-prep__disclaimer { border-top-color: rgba(255,255,255,0.1); color: #9ca3af; }

		/* ---- filters */
		.travel-prep__filters { display: flex; flex-wrap: wrap; gap: 0.75rem 1rem; align-items: flex-end; margin-bottom: 1.25rem; padding: 1rem 1.1rem; border: 1px solid #e5e7eb; border-radius: 0.9rem; background: #ffffff; }
		html.dark .travel-prep__filters { background: #1a1a1a; border-color: rgba(255,255,255,0.1); }
		.travel-prep__filter { display: flex; flex-direction: column; gap: 0.3rem; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: #6b7280; }
		html.dark .travel-prep__filter { color: #9ca3af; }
		.travel-prep__filter select {
			min-height: 44px; padding: 0.45rem 2.1rem 0.45rem 0.7rem; font-size: 0.9375rem; font-weight: 400;
			font-family: inherit; text-transform: none; letter-spacing: 0; color: #111827; background-color: #ffffff;
			border: 1px solid #d1d5db; border-radius: 0.6rem; appearance: none; -webkit-appearance: none;
			background-repeat: no-repeat; background-position: right 0.6rem center; background-size: 1.05rem;
			background-image: url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236b7280%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%209l6%206%206-6%22%2F%3E%3C%2Fsvg%3E);
		}
		html.dark .travel-prep__filter select { color: #f9fafb; background-color: #050505; border-color: rgba(255,255,255,0.15);
			background-image: url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23d1d5db%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%209l6%206%206-6%22%2F%3E%3C%2Fsvg%3E); }
		.travel-prep__filter select:focus-visible { outline: 3px solid #4d7c0f; outline-offset: 1px; }
		html.dark .travel-prep__filter select:focus-visible { outline-color: #ccff00; }
		.travel-prep__reset { min-height: 44px; padding: 0.4rem 1rem; font-size: 0.875rem; font-weight: 700; font-family: inherit; color: #4d7c0f; background: none; border: 1.5px solid #4d7c0f; border-radius: 9999px; cursor: pointer; }
		.travel-prep__reset:hover { background: #4d7c0f; color: #ffffff; }
		html.dark .travel-prep__reset { color: #ccff00; border-color: #ccff00; }
		html.dark .travel-prep__reset:hover { background: #ccff00; color: #111111; }
		.travel-prep__matches { margin: 0 0 0 auto; font-size: 0.8125rem; font-weight: 700; color: #4b5563; }
		html.dark .travel-prep__matches { color: #d1d5db; }
		.travel-prep__chip[hidden] { display: none; }

		/* ---- photo */
		/* A fixed height, not aspect-ratio plus max-height: that pair shrinks the width to
		   match and the photo stopped spanning the content. object-fit crops instead. */
		.travel-prep__photo { margin: 0 0 1.5rem; border-radius: 1rem; overflow: hidden; width: 100%; height: 220px; background: #f3f4f6; }
		html.dark .travel-prep__photo { background: #1a1a1a; }
		.travel-prep__photo-img { width: 100%; height: 100%; object-fit: cover; display: block; }

		/* ---- month strip */
		.post-content-area .travel-prep__months,
		.travel-prep__months { list-style: none; display: grid; grid-template-columns: repeat(12, 1fr); gap: 2px; margin: 0 0 0.5rem; padding: 0; border-radius: 0.6rem; overflow: hidden; }
		.travel-prep__month { display: flex; flex-direction: column; align-items: center; gap: 0.1rem; padding: 0.5rem 0.1rem; font-size: 0.6875rem; }
		.travel-prep__month-name { font-weight: 700; color: #4b5563; }
		html.dark .travel-prep__month-name { color: #d1d5db; }
		.travel-prep__month-dot { font-size: 0.8125rem; line-height: 1; }
		.travel-prep__month.is-good { background: #dcfce7; } .travel-prep__month.is-good .travel-prep__month-dot { color: #166534; }
		.travel-prep__month.is-ok { background: #fef9c3; } .travel-prep__month.is-ok .travel-prep__month-dot { color: #854d0e; }
		.travel-prep__month.is-poor { background: #fee2e2; } .travel-prep__month.is-poor .travel-prep__month-dot { color: #991b1b; }
		html.dark .travel-prep__month.is-good { background: rgba(34,197,94,0.16); } html.dark .travel-prep__month.is-good .travel-prep__month-dot { color: #86efac; }
		html.dark .travel-prep__month.is-ok { background: rgba(234,179,8,0.16); } html.dark .travel-prep__month.is-ok .travel-prep__month-dot { color: #fde047; }
		html.dark .travel-prep__month.is-poor { background: rgba(239,68,68,0.16); } html.dark .travel-prep__month.is-poor .travel-prep__month-dot { color: #fca5a5; }
		.travel-prep__months-legend { margin: 0 0 2rem; font-size: 0.75rem; color: #6b7280; }
		html.dark .travel-prep__months-legend { color: #9ca3af; }

		/* ---- drop / add */
		.travel-prep__task { position: relative; }
		.travel-prep__task label { flex: 1; }
		.travel-prep__drop { flex-shrink: 0; width: 32px; height: 32px; padding: 0; font-size: 1.25rem; line-height: 1; font-family: inherit; color: #9ca3af; background: none; border: none; border-radius: 9999px; cursor: pointer; opacity: 0; transition: opacity 0.15s, color 0.15s; }
		.travel-prep__task:hover .travel-prep__drop, .travel-prep__drop:focus-visible { opacity: 1; }
		.travel-prep__drop:hover { color: #b91c1c; }
		.travel-prep__drop:focus-visible { outline: 3px solid #4d7c0f; outline-offset: 2px; }
		html.dark .travel-prep__drop:focus-visible { outline-color: #ccff00; }
		@media (hover: none) { .travel-prep__drop { opacity: 1; } }
		.travel-prep__task.is-own { border-left-style: dashed; }
		.travel-prep__add { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 2rem; }
		.travel-prep__add input[type=text] { flex: 1 1 14rem; min-width: 0; min-height: 48px; padding: 0.6rem 0.9rem; font-size: 0.9375rem; font-family: inherit; color: #111827; background: #ffffff; border: 1px solid #d1d5db; border-radius: 0.6rem; }
		.travel-prep__add input[type=number] { width: 5.5rem; min-height: 48px; padding: 0.6rem 0.5rem; font-size: 0.9375rem; font-family: inherit; color: #111827; background: #ffffff; border: 1px solid #d1d5db; border-radius: 0.6rem; }
		html.dark .travel-prep__add input { background-color: #050505; border-color: rgba(255,255,255,0.15); color: #f9fafb; }
		.travel-prep__add input::placeholder { color: #6b7280; opacity: 1; }
		html.dark .travel-prep__add input::placeholder { color: #9ca3af; }
		.travel-prep__add input:focus-visible { outline: 3px solid #4d7c0f; outline-offset: 1px; }
		html.dark .travel-prep__add input:focus-visible { outline-color: #ccff00; }
		.travel-prep__add button { min-height: 48px; padding: 0.5rem 1.1rem; font-size: 0.9375rem; font-weight: 700; font-family: inherit; color: #374151; background: #f3f4f6; border: 1px solid #e5e7eb; border-radius: 9999px; cursor: pointer; }
		.travel-prep__add button:hover { border-color: #4d7c0f; color: #4d7c0f; }
		html.dark .travel-prep__add button { color: #d1d5db; background: #050505; border-color: rgba(255,255,255,0.15); }
		html.dark .travel-prep__add button:hover { border-color: #ccff00; color: #ccff00; }
		.travel-prep__add button:focus-visible { outline: 3px solid #4d7c0f; outline-offset: 2px; }
		html.dark .travel-prep__add button:focus-visible { outline-color: #ccff00; }

		.travel-prep__print { min-height: 48px; padding: 0.6rem 1.1rem; font-size: 0.9375rem; font-weight: 700; font-family: inherit; color: #374151; background: #f3f4f6; border: 1px solid #e5e7eb; border-radius: 9999px; cursor: pointer; }
		.travel-prep__print:hover { border-color: #4d7c0f; color: #4d7c0f; }
		html.dark .travel-prep__print { color: #d1d5db; background: #050505; border-color: rgba(255,255,255,0.15); }
		html.dark .travel-prep__print:hover { border-color: #ccff00; color: #ccff00; }
		.travel-prep__print:focus-visible { outline: 3px solid #4d7c0f; outline-offset: 2px; }
		html.dark .travel-prep__print:focus-visible { outline-color: #ccff00; }

		/* ---- comparison */
		.travel-prep__compare { margin: 0 0 2rem; border: 1px solid #e5e7eb; border-radius: 0.9rem; background: #ffffff; }
		html.dark .travel-prep__compare { background: #1a1a1a; border-color: rgba(255,255,255,0.1); }
		.post-content-area .travel-prep__compare summary,
		.travel-prep__compare summary { padding: 0.85rem 1.1rem; min-height: 48px; display: flex; align-items: center; font-weight: 700; font-size: 0.9375rem; color: #4d7c0f; cursor: pointer; list-style: revert; }
		html.dark .travel-prep__compare summary { color: #ccff00; }
		.travel-prep__compare summary:focus-visible { outline: 3px solid #4d7c0f; outline-offset: -3px; }
		html.dark .travel-prep__compare summary:focus-visible { outline-color: #ccff00; }
		.travel-prep__compare-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
		.travel-prep__compare-scroll:focus-visible { outline: 3px solid #4d7c0f; outline-offset: -3px; }
		html.dark .travel-prep__compare-scroll:focus-visible { outline-color: #ccff00; }
		.travel-prep__compare-table { border-collapse: collapse; width: 100%; min-width: 620px; font-size: 0.875rem; }
		.travel-prep__compare-table th, .travel-prep__compare-table td { padding: 0.6rem 0.9rem; text-align: left; border-top: 1px solid #f3f4f6; vertical-align: top; }
		html.dark .travel-prep__compare-table th, html.dark .travel-prep__compare-table td { border-top-color: rgba(255,255,255,0.08); }
		.travel-prep__compare-table thead th { font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #6b7280; background: #f9fafb; border-top: none; }
		html.dark .travel-prep__compare-table thead th { color: #9ca3af; background: #050505; }
		.travel-prep__compare-table tbody td { color: #4b5563; }
		html.dark .travel-prep__compare-table tbody td { color: #d1d5db; }
		.travel-prep__compare-table tr[hidden] { display: none; }
		.travel-prep__compare-pick span { margin-right: 0.4rem; }
		.travel-prep__compare-pick { min-height: 44px; padding: 0.2rem 0; font-family: inherit; font-size: 0.9375rem; font-weight: 700; text-align: left; color: #111827; background: none; border: none; cursor: pointer; }
		html.dark .travel-prep__compare-pick { color: #f9fafb; }
		.travel-prep__compare-pick:hover { color: #4d7c0f; text-decoration: underline; }
		html.dark .travel-prep__compare-pick:hover { color: #ccff00; }
		.travel-prep__compare-pick:focus-visible { outline: 3px solid #4d7c0f; outline-offset: 2px; }
		html.dark .travel-prep__compare-pick:focus-visible { outline-color: #ccff00; }
		.travel-prep__compare-note { margin: 0; padding: 0.5rem 1.1rem 0.9rem; font-size: 0.75rem; color: #6b7280; }
		html.dark .travel-prep__compare-note { color: #9ca3af; }

		/* ---- season warning */
		.travel-prep__seasonwarn { margin: 0 0 1.25rem; padding: 0.7rem 1rem; font-size: 0.875rem; font-weight: 700; border-radius: 0.7rem; border-left: 4px solid; }
		.travel-prep__seasonwarn.is-poor { color: #991b1b; background: #fee2e2; border-left-color: #b91c1c; }
		.travel-prep__seasonwarn.is-ok { color: #854d0e; background: #fef9c3; border-left-color: #b45309; }
		html.dark .travel-prep__seasonwarn.is-poor { color: #fca5a5; background: rgba(239,68,68,0.12); border-left-color: #fca5a5; }
		html.dark .travel-prep__seasonwarn.is-ok { color: #fde047; background: rgba(234,179,8,0.12); border-left-color: #fbbf24; }

		/* ---- next up */
		.travel-prep__nextup { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.3rem 0.75rem; margin: 0 0 1.5rem; padding: 0.85rem 1.1rem; border: 1px solid #e5e7eb; border-left: 4px solid #4d7c0f; border-radius: 0.75rem; background: #ffffff; }
		html.dark .travel-prep__nextup { background: #1a1a1a; border-color: rgba(255,255,255,0.1); border-left-color: #ccff00; }
		.travel-prep__nextup.is-overdue { border-left-color: #b91c1c; }
		html.dark .travel-prep__nextup.is-overdue { border-left-color: #fca5a5; }
		.travel-prep__nextup.is-done { border-left-color: #4d7c0f; }
		.travel-prep__nextup-label { font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #4d7c0f; }
		html.dark .travel-prep__nextup-label { color: #ccff00; }
		.travel-prep__nextup.is-overdue .travel-prep__nextup-label { color: #b91c1c; }
		html.dark .travel-prep__nextup.is-overdue .travel-prep__nextup-label { color: #fca5a5; }
		.travel-prep__nextup-task { font-size: 0.9375rem; font-weight: 700; color: #111827; }
		html.dark .travel-prep__nextup-task { color: #f9fafb; }

		/* ---- per-task official link */
		.post-content-area .travel-prep__tasklink,
		.travel-prep__tasklink { flex-shrink: 0; align-self: center; min-height: 32px; display: inline-flex; align-items: center; padding: 0.25rem 0.7rem; font-size: 0.75rem; font-weight: 700; color: #4d7c0f; text-decoration: none; border: 1px solid #4d7c0f; border-radius: 9999px; }
		.travel-prep__tasklink:hover { background: #4d7c0f; color: #ffffff; }
		.travel-prep__tasklink:focus-visible { outline: 3px solid #4d7c0f; outline-offset: 2px; }
		html.dark .post-content-area .travel-prep__tasklink,
		html.dark .travel-prep__tasklink { color: #ccff00; border-color: #ccff00; }
		html.dark .travel-prep__tasklink:hover { background: #ccff00; color: #111111; }
		html.dark .travel-prep__tasklink:focus-visible { outline-color: #ccff00; }

		/* the packing list is a travel/checklist, so it only needs spacing here */
		.travel-prep__panel .travel-checklist { margin: 0 0 2rem; }

		/* ---- two tiers, told apart at a glance */
		.travel-prep__badge { display: inline-block; vertical-align: middle; margin-left: 0.5rem; padding: 0.2rem 0.6rem; font-family: system-ui, sans-serif; font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; border-radius: 9999px; }
		.travel-prep__badge.is-researched { color: #3f6212; background: #ecfccb; }
		html.dark .travel-prep__badge.is-researched { color: #ccff00; background: rgba(204,255,0,0.12); }
		.travel-prep__badge.is-general { color: #4b5563; background: #f3f4f6; }
		html.dark .travel-prep__badge.is-general { color: #d1d5db; background: rgba(255,255,255,0.08); }

		.travel-prep__chip--other { border-style: dashed; }
		.travel-prep__other { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: -0.75rem 0 1.5rem; }
		.travel-prep__other input {
			flex: 1 1 14rem; min-width: 0; min-height: 48px; padding: 0.6rem 0.9rem; font-size: 0.9375rem;
			font-family: inherit; color: #111827; background: #ffffff; border: 1px solid #d1d5db; border-radius: 0.6rem;
		}
		html.dark .travel-prep__other input { background-color: #050505; border-color: rgba(255,255,255,0.15); color: #f9fafb; }
		.travel-prep__other input::placeholder { color: #6b7280; opacity: 1; }
		html.dark .travel-prep__other input::placeholder { color: #9ca3af; }
		.travel-prep__other input:focus-visible { outline: 3px solid #4d7c0f; outline-offset: 1px; }
		html.dark .travel-prep__other input:focus-visible { outline-color: #ccff00; }
		.travel-prep__other button {
			min-height: 48px; padding: 0.5rem 1.25rem; font-size: 0.9375rem; font-weight: 700; font-family: inherit;
			color: #ffffff; background: #4d7c0f; border: none; border-radius: 9999px; cursor: pointer;
		}
		.travel-prep__other button:hover { background: #3f6212; }
		html.dark .travel-prep__other button { color: #111111; background: #ccff00; }
		.travel-prep__other button:focus-visible { outline: 3px solid #4d7c0f; outline-offset: 2px; }
		html.dark .travel-prep__other button:focus-visible { outline-color: #ccff00; }

		.travel-prep__general-note { margin: 0 0 1.5rem; padding: 0.85rem 1.1rem; font-size: 0.875rem; line-height: 1.6; color: #854d0e; background: #fef9c3; border-left: 4px solid #b45309; border-radius: 0.7rem; }
		html.dark .travel-prep__general-note { color: #fde047; background: rgba(234,179,8,0.1); border-left-color: #fbbf24; }

		.travel-prep__signup { margin: 2.5rem 0 0; }

		/* ---- print: just the plan for the chosen destination */
		@media print {
			body.travel-printing-prep > *:not(.wp-site-blocks),
			body.travel-printing-prep header, body.travel-printing-prep footer,
			body.travel-printing-prep .travel-prep__filters, body.travel-printing-prep .travel-prep__picker,
			body.travel-printing-prep .travel-prep__ics, body.travel-printing-prep .travel-prep__print,
			body.travel-printing-prep .travel-prep__add, body.travel-printing-prep .travel-prep__drop,
			body.travel-printing-prep .travel-prep__signup, body.travel-printing-prep .travel-prep__photo,
			body.travel-printing-prep .travel-prep__more,
			body.travel-printing-prep .travel-prep__compare,
			body.travel-printing-prep .travel-prep__tasklink { display: none !important; }
			body.travel-printing-prep .travel-prep__task { break-inside: avoid; border-color: #999; }
			body.travel-printing-prep .travel-prep__bar { display: none; }
		}

		@media (max-width: 520px) {
			.travel-prep__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
			.post-content-area .travel-prep__months,
			.travel-prep__month-name { font-size: 0.625rem; }
			.post-content-area .travel-prep__months,
			.travel-prep__months { grid-template-columns: repeat(6, 1fr); }
			.travel-prep__photo { height: 160px; }
			.travel-prep__matches { margin-left: 0; }
			.travel-prep__progress { text-align: left; }
			.travel-prep__datefield, .travel-prep__datefield input, .travel-prep__ics { width: 100%; }
			.travel-prep__datefield input[data-field=days] { width: 100%; }
			.travel-prep__datefield select[data-field=tier] { width: 100%; }
		}
		@media (prefers-reduced-motion: reduce) {
			.travel-prep__chip, .travel-prep__bar span, .travel-prep__task { transition: none; }
			.travel-prep__chip:hover { transform: none; }
		}
	

/* ---- functions.php:3013 travel_component_styles (priority 21) ---- */
		/* ===== In-content featured product (woocommerce/featured-product) → horizontal product card =====
		   The block ships as a 500px hero with the product cover as a non-scaled background image
		   (object-fit:none). Our covers are portrait, so on desktop that showed a thin image strip
		   between black bars. Rendered as a card instead: cover left, title/summary/price/button right. */
		.post-content-area .wc-block-featured-product { display: block; min-height: 0 !important; margin: 2.5rem 0; padding: 0; background: #ffffff; border: 2px solid #a3e635; border-radius: 1rem; overflow: hidden; box-shadow: 0 10px 30px rgba(0,0,0,0.06); color: #111827; text-align: left; }
		html.dark .post-content-area .wc-block-featured-product { background: #1a1a1a; border-color: #ccff00; box-shadow: 0 0 30px rgba(204,255,0,0.08); color: #f9fafb; }
		.post-content-area .wc-block-featured-product__wrapper { display: grid; grid-template-columns: 240px minmax(0, 1fr); align-items: stretch; height: auto; overflow: visible; }
		.post-content-area .wc-block-featured-product .background-dim__overlay { display: none; }
		.post-content-area .wc-block-featured-product__background-image { position: static !important; display: block; width: 100% !important; height: 100% !important; min-height: 340px; object-fit: cover !important; border-radius: 0 !important; margin: 0 !important; }
		.post-content-area .wc-block-featured-product__inner-blocks { display: flex; flex-direction: column; justify-content: center; gap: 0.75rem; width: auto !important; padding: 1.75rem 2rem !important; color: inherit; }
		.post-content-area .wc-block-featured-product__inner-blocks > * { width: auto !important; margin: 0 !important; padding: 0 !important; text-align: left !important; }
		.post-content-area .wc-block-featured-product .wp-block-post-title { font-family: 'Space Grotesk', sans-serif; font-size: 1.375rem; line-height: 1.3; font-weight: 700; border: 0 !important; }
		.post-content-area .wc-block-featured-product .wp-block-post-title a { color: #111827 !important; text-decoration: none !important; }
		html.dark .post-content-area .wc-block-featured-product .wp-block-post-title a { color: #ffffff !important; }
		.post-content-area .wc-block-featured-product .wp-block-post-title a:hover { color: #3f6212 !important; }
		html.dark .post-content-area .wc-block-featured-product .wp-block-post-title a:hover { color: #ccff00 !important; }
		.post-content-area .wc-block-featured-product .wc-block-components-product-summary,
		.post-content-area .wc-block-featured-product .wc-block-components-product-summary p { color: #4b5563; font-size: 0.95rem; line-height: 1.6; margin: 0; text-align: left !important; }
		html.dark .post-content-area .wc-block-featured-product .wc-block-components-product-summary,
		html.dark .post-content-area .wc-block-featured-product .wc-block-components-product-summary p { color: #d1d5db; }
		.post-content-area .wc-block-featured-product .wc-block-components-product-price { display: flex; align-items: baseline; gap: 0.5rem; font-size: 1.5rem; font-weight: 900; color: #111827; text-align: left !important; }
		html.dark .post-content-area .wc-block-featured-product .wc-block-components-product-price { color: #ffffff; }
		.post-content-area .wc-block-featured-product .wc-block-components-product-price del { color: #6b7280; font-size: 0.9rem; font-weight: 500; }
		html.dark .post-content-area .wc-block-featured-product .wc-block-components-product-price del { color: #9ca3af; }
		.post-content-area .wc-block-featured-product .wc-block-components-product-price ins { text-decoration: none; }
		.post-content-area .wc-block-featured-product .wp-block-buttons { justify-content: flex-start !important; margin-top: 0.5rem !important; }
		@media (max-width: 640px) {
			.post-content-area .wc-block-featured-product__wrapper { grid-template-columns: 1fr; }
			.post-content-area .wc-block-featured-product__background-image { min-height: 0; height: 220px !important; }
			.post-content-area .wc-block-featured-product__inner-blocks { padding: 1.5rem !important; }
		}

		/* ===== Comments (core/comments in templates/single.html) ===== */
		.post-comments .wp-block-comments-title { font-family: 'Space Grotesk', sans-serif; font-size: 1.5rem; font-weight: 700; color: #111827; margin: 0 0 1.5rem; }
		html.dark .post-comments .wp-block-comments-title { color: #f9fafb; }
		.post-comments ol.wp-block-comment-template, .post-comments .wp-block-comment-template ol { list-style: none; padding: 0; margin: 0; }
		.post-comments .wp-block-comment-template > li { margin: 0 0 1rem; }
		.post-comments .wp-block-comment-template ol { padding-left: 2.5rem; margin-top: 1rem; }
		.post-comments .comment-item { background: #ffffff; border: 1px solid #e5e7eb; border-radius: 0.75rem; padding: 1.25rem 1.5rem; }
		html.dark .post-comments .comment-item { background: #1a1a1a; border-color: rgba(255,255,255,0.1); }
		.post-comments .wp-block-avatar img { width: 40px; height: 40px; border-radius: 9999px; object-fit: cover; }
		.post-comments .wp-block-comment-author-name { font-weight: 700; color: #111827; font-size: 0.95rem; }
		html.dark .post-comments .wp-block-comment-author-name { color: #f9fafb; }
		.post-comments .wp-block-comment-author-name a { color: inherit; text-decoration: none; }
		.post-comments .wp-block-comment-date { font-size: 0.8rem; color: #6b7280; }
		.post-comments .wp-block-comment-date a { color: inherit; text-decoration: none; }
		.post-comments .wp-block-comment-content { margin-top: 0.75rem; color: #374151; font-size: 1rem; line-height: 1.7; }
		html.dark .post-comments .wp-block-comment-content { color: #d1d5db; }
		.post-comments .wp-block-comment-content p { margin: 0 0 0.75rem; }
		.post-comments .wp-block-comment-content p:last-child { margin-bottom: 0; }
		.post-comments .wp-block-comment-reply-link, .post-comments .wp-block-comment-edit-link { margin-top: 0.75rem; font-size: 0.8rem; font-weight: 700; }
		.post-comments .wp-block-comment-reply-link a, .post-comments .wp-block-comment-edit-link a { color: #4d7c0f; text-decoration: none; }
		html.dark .post-comments .wp-block-comment-reply-link a, html.dark .post-comments .wp-block-comment-edit-link a { color: #ccff00; }
		.post-comments .wp-block-comment-reply-link a:hover, .post-comments .wp-block-comment-edit-link a:hover { text-decoration: underline; }
		.post-comments .wp-block-comments-pagination { margin: 1rem 0 2rem; }
		.post-comments .comment-respond { margin-top: 2rem; }
		.post-comments .comment-reply-title { font-family: 'Space Grotesk', sans-serif; font-size: 1.25rem; font-weight: 700; color: #111827; margin: 0 0 0.5rem; }
		html.dark .post-comments .comment-reply-title { color: #f9fafb; }
		.post-comments .comment-reply-title small a { font-size: 0.8rem; font-weight: 600; color: #6b7280; margin-left: 0.75rem; text-decoration: none; }
		.post-comments .comment-notes, .post-comments .logged-in-as { font-size: 0.875rem; color: #6b7280; margin: 0 0 1rem; }
		html.dark .post-comments .comment-notes, html.dark .post-comments .logged-in-as, html.dark .post-comments .required-field-message, html.dark .post-comments .required { color: #9ca3af; }
		.post-comments .comment-form p { margin: 0 0 1rem; }
		.post-comments .comment-form label { display: block; font-size: 0.875rem; font-weight: 600; color: #111827; margin-bottom: 0.35rem; }
		html.dark .post-comments .comment-form label { color: #f9fafb; }
		.post-comments .comment-form input[type=text], .post-comments .comment-form input[type=email], .post-comments .comment-form input[type=url], .post-comments .comment-form textarea { width: 100%; background: #ffffff; color: #111111; border: 1.5px solid #d1d5db; border-radius: 0.5rem; padding: 0.65rem 0.9rem; font-size: 1rem; font-family: inherit; line-height: 1.5; transition: border-color 0.2s, box-shadow 0.2s; }
		html.dark .post-comments .comment-form input[type=text], html.dark .post-comments .comment-form input[type=email], html.dark .post-comments .comment-form input[type=url], html.dark .post-comments .comment-form textarea { background: #0a0a0a; color: #ffffff; border-color: #374151; }
		.post-comments .comment-form input:focus, .post-comments .comment-form textarea:focus { outline: none; border-color: #84cc16; box-shadow: 0 0 0 3px rgba(132,204,22,0.2); }
		.post-comments .comment-form .comment-form-cookies-consent { display: flex; align-items: center; gap: 0.5rem; }
		.post-comments .comment-form .comment-form-cookies-consent label { display: inline; margin: 0; font-weight: 500; color: #4b5563; }
		html.dark .post-comments .comment-form .comment-form-cookies-consent label { color: #d1d5db; }
		.post-comments .comment-form .form-submit { margin: 0; }
		.post-comments .comment-form input[type=submit] { background: #84cc16; color: #000000; font-weight: 700; font-size: 1rem; border: none; border-radius: 0.75rem; padding: 0.85rem 1.75rem; cursor: pointer; transition: background 0.2s; }
		.post-comments .comment-form input[type=submit]:hover { background: #a3e635; }
		html.dark .post-comments .comment-form input[type=submit] { background: #ccff00; }
		html.dark .post-comments .comment-form input[type=submit]:hover { background: #d4ff33; }

		/* ===== Category pills (core/categories) — safety reset outside Tailwind preflight ===== */
		.wp-block-categories-list { list-style: none; padding: 0; margin: 0; }
		.wp-block-categories-list li { margin: 0; }

		/* The footer stacks its categories in a column beside plain text links, so the pill
		   treatment turns that column into five buttons and stretches the whole footer.
		   Only the wrapped, horizontal lists (home hero, archive, search, 404) are chips. */
		.wp-block-categories.flex-col a { display: block; padding: 0; border: 0; border-radius: 0; background: none; color: inherit; font-weight: 400; }
		.wp-block-categories.flex-col a:hover { background: none; border-color: transparent; color: #4d7c0f; }
		html.dark .wp-block-categories.flex-col a { background: none; border: 0; color: inherit; }
		html.dark .wp-block-categories.flex-col a:hover { color: #ccff00; }

		/* ===== Breadcrumbs (travel_breadcrumbs_html) ===== */
		.travel-breadcrumbs { margin: 0 0 1.25rem; font-size: 0.8125rem; line-height: 1.5; }
		.travel-breadcrumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 0; list-style: none; margin: 0; padding: 0; }
		.travel-breadcrumbs li { display: flex; align-items: center; min-width: 0; margin: 0; }
		.travel-breadcrumbs__sep { margin: 0 0.5rem; color: #6b7280; }
		html.dark .travel-breadcrumbs__sep { color: #9ca3af; }
		.travel-breadcrumbs a { color: #4d7c0f; text-decoration: none; font-weight: 600; }
		.travel-breadcrumbs a:hover { text-decoration: underline; }
		html.dark .travel-breadcrumbs a { color: #ccff00; }
		/* The last crumb is an article title — let it shrink rather than wrap to three lines. */
		.travel-breadcrumbs__current { color: #6b7280; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 46ch; }
		html.dark .travel-breadcrumbs__current { color: #9ca3af; }
		@media (max-width: 640px) { .travel-breadcrumbs__current { max-width: 20ch; } }

		/* ===== Dark-mode link colour =====
		   theme.json's global link colour is tuned for light backgrounds (#4d7c0f, 4.99:1 on
		   white). On near-black that same value is only 4.08:1, so the containers whose links
		   have no colour class of their own get an explicit dark value. Scoped deliberately:
		   a blanket html.dark rule would also repaint the Tailwind-coloured nav and footer links. */
		html.dark .wp-block-categories-list a,
		html.dark .post-comments a,
		html.dark .wp-block-post-excerpt a { color: #ccff00; }

		/* ===== Scrollable tables =====
		   53 articles carry price tables with min-width 500px. They scrolled, but nothing said
		   so — on a 390px screen readers simply never saw the right-hand columns. The figure is
		   now the positioned frame and .travel-table-scroll is the scroller, so the fade can sit
		   on the frame and stay put while the table moves under it. */
		.post-content-area .wp-block-table { position: relative; display: block; overflow: visible; }
		.post-content-area .travel-table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: 0.75rem; }
		.post-content-area .travel-table-scroll:focus-visible { outline: 3px solid #4d7c0f; outline-offset: 2px; }
		html.dark .post-content-area .travel-table-scroll:focus-visible { outline-color: #ccff00; }
		/* The fade is added by assets/js/theme.js only while the table actually overflows. */
		.post-content-area .wp-block-table.is-scrollable::after {
			content: ''; position: absolute; top: 1px; right: 1px; bottom: 1px; width: 2.5rem;
			pointer-events: none; border-radius: 0 0.75rem 0.75rem 0;
			background: linear-gradient(to right, rgba(255,255,255,0), rgba(255,255,255,0.92));
		}
		html.dark .post-content-area .wp-block-table.is-scrollable::after {
			background: linear-gradient(to right, rgba(10,10,10,0), rgba(10,10,10,0.92));
		}
		.post-content-area .wp-block-table.is-scrolled-end::after { opacity: 0; }
		.post-content-area .wp-block-table.is-scrollable .travel-table-scroll::after { content: none; }
		.travel-table-hint { margin: 0.5rem 0 0; font-size: 0.8125rem; color: #6b7280; }
		html.dark .travel-table-hint { color: #9ca3af; }

		/* ===== Visa box ===== */
		.travel-visa { margin: 2.5rem 0; padding: 1.25rem 1.5rem; border: 1px solid #e5e7eb; border-left-width: 4px; border-radius: 0.75rem; background: #fff; }
		html.dark .travel-visa { background: #1a1a1a; border-color: rgba(255,255,255,0.1); }
		.travel-visa.is-ok { border-left-color: #4d7c0f; }
		.travel-visa.is-warn { border-left-color: #b45309; }
		html.dark .travel-visa.is-ok { border-left-color: #ccff00; }
		html.dark .travel-visa.is-warn { border-left-color: #fbbf24; }
		.travel-visa__head { display: flex; flex-wrap: wrap; gap: 0.5rem 0.75rem; align-items: baseline; margin: 0 0 0.75rem; }
		.travel-visa__country { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 1.125rem; color: #111827; }
		html.dark .travel-visa__country { color: #f9fafb; }
		.travel-visa__state { padding: 0.15rem 0.6rem; border-radius: 9999px; font-size: 0.75rem; font-weight: 700; background: #f3f4f6; color: #374151; }
		.travel-visa.is-ok .travel-visa__state { background: #dcfce7; color: #14532d; }
		.travel-visa.is-warn .travel-visa__state { background: #fef3c7; color: #78350f; }
		html.dark .travel-visa.is-ok .travel-visa__state { background: rgba(132,204,22,0.2); color: #d9f99d; }
		html.dark .travel-visa.is-warn .travel-visa__state { background: rgba(251,191,36,0.18); color: #fde68a; }
		.travel-visa dl { margin: 0; }
		.travel-visa__row { display: grid; grid-template-columns: minmax(8rem, 12rem) 1fr; gap: 0.2rem 1rem; padding: 0.4rem 0; border-top: 1px solid #f3f4f6; }
		html.dark .travel-visa__row { border-top-color: rgba(255,255,255,0.06); }
		.travel-visa dt { margin: 0; font-size: 0.8125rem; font-weight: 700; color: #4b5563; }
		html.dark .travel-visa dt { color: #9ca3af; }
		.travel-visa dd { margin: 0; font-size: 0.9375rem; color: #111827; }
		html.dark .travel-visa dd { color: #f9fafb; }
		@media (max-width: 480px) { .travel-visa__row { grid-template-columns: 1fr; } }
		.travel-visa__foot { margin: 0.75rem 0 0; font-size: 0.8125rem; color: #6b7280; }
		html.dark .travel-visa__foot { color: #9ca3af; }
		.travel-visa__foot a { color: #4d7c0f; }
		html.dark .travel-visa__foot a { color: #ccff00; }
		.travel-visa__warn { margin: 0.35rem 0 0; font-size: 0.75rem; font-style: italic; color: #6b7280; }
		html.dark .travel-visa__warn { color: #9ca3af; }

		/* ===== Step by step ===== */
		.travel-howto { margin: 2.5rem 0; }
		.travel-howto__title { margin: 0 0 0.75rem; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 1.125rem; color: #111827; }
		html.dark .travel-howto__title { color: #f9fafb; }
		.post-content-area .travel-howto ol,
		.travel-howto ol { margin: 0; padding-left: 1.6rem; display: flex; flex-direction: column; gap: 1rem; }
		.travel-howto__step { margin: 0; padding-left: 0.3rem; }
		.travel-howto__step::marker { font-weight: 700; color: #4d7c0f; }
		html.dark .travel-howto__step::marker { color: #ccff00; }
		.travel-howto__what { margin: 0; font-weight: 700; font-size: 1rem; color: #111827; }
		html.dark .travel-howto__what { color: #f9fafb; }
		.travel-howto__detail { margin: 0.25rem 0 0; font-size: 0.9375rem; line-height: 1.6; color: #374151; }
		html.dark .travel-howto__detail { color: #d1d5db; }
		.travel-howto__note { margin: 0.25rem 0 0; font-size: 0.8125rem; color: #6b7280; }
		html.dark .travel-howto__note { color: #9ca3af; }

		/* ===== What to eat ===== */
		.travel-food { margin: 2.5rem 0; }
		.travel-food__title { margin: 0 0 0.75rem; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 1.125rem; color: #111827; }
		html.dark .travel-food__title { color: #f9fafb; }
		.post-content-area .travel-food ul,
		.travel-food ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.6rem; }
		.travel-food__dish { margin: 0; padding: 0.85rem 1.1rem; border: 1px solid #e5e7eb; border-radius: 0.75rem; background: #fff; }
		html.dark .travel-food__dish { background: #1a1a1a; border-color: rgba(255,255,255,0.1); }
		.travel-food__name { margin: 0; font-weight: 700; color: #111827; }
		html.dark .travel-food__name { color: #f9fafb; }
		.travel-food__veg { display: inline-block; margin-left: 0.35rem; padding: 0.05rem 0.4rem; border-radius: 9999px; background: #dcfce7; color: #14532d; font-size: 0.625rem; font-weight: 700; text-transform: uppercase; }
		html.dark .travel-food__veg { background: rgba(132,204,22,0.2); color: #d9f99d; }
		.travel-food__what { margin: 0.2rem 0 0; font-size: 0.9375rem; color: #374151; }
		html.dark .travel-food__what { color: #d1d5db; }
		.travel-food__meta { margin: 0.2rem 0 0; font-size: 0.8125rem; color: #6b7280; }
		html.dark .travel-food__meta { color: #9ca3af; }

		/* ===== Pros and cons ===== */
		.travel-proscons { margin: 2.5rem 0; }
		.travel-proscons__title { margin: 0 0 0.75rem; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 1.125rem; color: #111827; }
		html.dark .travel-proscons__title { color: #f9fafb; }
		.travel-proscons__cols { display: grid; gap: 1rem; grid-template-columns: 1fr; }
		@media (min-width: 640px) { .travel-proscons__cols { grid-template-columns: 1fr 1fr; } }
		.travel-proscons__col { padding: 1.1rem 1.25rem; border-radius: 0.75rem; border: 1px solid #e5e7eb; background: #fff; }
		html.dark .travel-proscons__col { background: #1a1a1a; border-color: rgba(255,255,255,0.1); }
		.travel-proscons__col.is-pros { border-left: 4px solid #4d7c0f; }
		.travel-proscons__col.is-cons { border-left: 4px solid #b91c1c; }
		html.dark .travel-proscons__col.is-pros { border-left-color: #ccff00; }
		html.dark .travel-proscons__col.is-cons { border-left-color: #fca5a5; }
		.travel-proscons__label { margin: 0 0 0.6rem; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #4b5563; }
		html.dark .travel-proscons__label { color: #9ca3af; }
		.post-content-area .travel-proscons ul,
		.travel-proscons ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.45rem; }
		.travel-proscons li { display: flex; gap: 0.6rem; font-size: 0.9375rem; line-height: 1.5; color: #374151; margin: 0; }
		html.dark .travel-proscons li { color: #d1d5db; }
		.travel-proscons li span { flex-shrink: 0; font-weight: 700; width: 0.9rem; }
		.travel-proscons .is-pros li span { color: #4d7c0f; }
		.travel-proscons .is-cons li span { color: #b91c1c; }
		html.dark .travel-proscons .is-pros li span { color: #ccff00; }
		html.dark .travel-proscons .is-cons li span { color: #fca5a5; }
		.travel-proscons__verdict { margin: 0.9rem 0 0; font-size: 0.9375rem; font-weight: 600; color: #111827; }
		html.dark .travel-proscons__verdict { color: #f9fafb; }

		/* ===== Callout ===== */
		.travel-callout { margin: 2rem 0; padding: 1rem 1.25rem; border-radius: 0.75rem; border-left: 4px solid #4d7c0f; background: #f3f4f6; }
		html.dark .travel-callout { background: #1a1a1a; border-left-color: #ccff00; }
		.travel-callout.is-warning { border-left-color: #b91c1c; background: #fef2f2; }
		html.dark .travel-callout.is-warning { background: rgba(185,28,28,0.12); border-left-color: #fca5a5; }
		.travel-callout.is-personal { border-left-color: #4b5563; }
		html.dark .travel-callout.is-personal { border-left-color: #9ca3af; }
		.travel-callout__title { display: flex; align-items: center; gap: 0.45rem; margin: 0 0 0.35rem; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #4b5563; }
		html.dark .travel-callout__title { color: #9ca3af; }
		.travel-callout.is-warning .travel-callout__title { color: #b91c1c; }
		html.dark .travel-callout.is-warning .travel-callout__title { color: #fca5a5; }
		.travel-callout__text { margin: 0; font-size: 0.9375rem; line-height: 1.65; color: #374151; }
		html.dark .travel-callout__text { color: #d1d5db; }

		/* ===== Where to stay ===== */
		.travel-stay { margin: 2.5rem 0; }
		.travel-stay__title { margin: 0 0 0.75rem; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 1.125rem; color: #111827; }
		html.dark .travel-stay__title { color: #f9fafb; }
		.post-content-area .travel-stay ul,
		.travel-stay ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.75rem; }
		.travel-stay__item { margin: 0; padding: 1rem 1.25rem; border: 1px solid #e5e7eb; border-radius: 0.75rem; background: #fff; }
		html.dark .travel-stay__item { background: #1a1a1a; border-color: rgba(255,255,255,0.1); }
		.travel-stay__item.is-mine { border-color: #4d7c0f; }
		html.dark .travel-stay__item.is-mine { border-color: #ccff00; }
		.travel-stay__name { margin: 0; font-weight: 700; font-size: 1rem; color: #111827; }
		html.dark .travel-stay__name { color: #f9fafb; }
		.travel-stay__badge { display: inline-block; margin-left: 0.4rem; padding: 0.1rem 0.5rem; border-radius: 9999px; background: #4d7c0f; color: #fff; font-size: 0.625rem; text-transform: uppercase; letter-spacing: 0.06em; }
		html.dark .travel-stay__badge { background: #ccff00; color: #050505; }
		.travel-stay__meta { margin: 0.3rem 0 0; font-size: 0.875rem; color: #4b5563; }
		html.dark .travel-stay__meta { color: #d1d5db; }
		.travel-stay__note { margin: 0.3rem 0 0; font-size: 0.8125rem; color: #6b7280; }
		html.dark .travel-stay__note { color: #9ca3af; }

		/* ===== Cost summary ===== */
		.travel-cost { margin: 2.5rem 0; padding: 1.25rem 1.5rem; border: 1px solid #e5e7eb; border-radius: 1rem; background: #fff; }
		html.dark .travel-cost { background: #1a1a1a; border-color: rgba(255,255,255,0.1); }
		.travel-cost__title { margin: 0 0 0.75rem; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 1.125rem; color: #111827; }
		html.dark .travel-cost__title { color: #f9fafb; }
		.post-content-area .travel-cost ul,
		.travel-cost ul { list-style: none; margin: 0; padding: 0; }
		.travel-cost__row { display: flex; justify-content: space-between; gap: 1rem; margin: 0; padding: 0.5rem 0; border-bottom: 1px solid #f3f4f6; font-size: 0.9375rem; }
		html.dark .travel-cost__row { border-bottom-color: rgba(255,255,255,0.06); }
		.travel-cost__label { color: #374151; }
		html.dark .travel-cost__label { color: #d1d5db; }
		.travel-cost__note { display: block; font-size: 0.8125rem; color: #6b7280; }
		html.dark .travel-cost__note { color: #9ca3af; }
		.travel-cost__amount { white-space: nowrap; font-variant-numeric: tabular-nums; color: #111827; }
		html.dark .travel-cost__amount { color: #f9fafb; }
		.travel-cost__total { display: flex; justify-content: space-between; gap: 1rem; margin: 0.75rem 0 0; padding-top: 0.75rem; border-top: 2px solid #4d7c0f; font-weight: 700; font-size: 1.0625rem; color: #111827; }
		html.dark .travel-cost__total { border-top-color: #ccff00; color: #f9fafb; }
		.travel-cost__per { font-weight: 400; font-size: 0.8125rem; color: #6b7280; }
		html.dark .travel-cost__per { color: #9ca3af; }
		.travel-cost__sum { white-space: nowrap; font-variant-numeric: tabular-nums; }

		/* ===== Photo with place and date ===== */
		.travel-photo { margin: 2.5rem 0; }
		.travel-photo img { display: block; width: 100%; height: auto; border-radius: 1rem; }
		.travel-photo figcaption { margin-top: 0.6rem; font-size: 0.875rem; line-height: 1.5; color: #4b5563; }
		html.dark .travel-photo figcaption { color: #9ca3af; }
		.travel-photo__caption { display: block; }
		.travel-photo__meta { display: block; margin-top: 0.15rem; font-size: 0.8125rem; color: #6b7280; }
		html.dark .travel-photo__meta { color: #9ca3af; }
		.travel-photo__meta a { color: #4d7c0f; }
		html.dark .travel-photo__meta a { color: #ccff00; }

		/* ===== Key facts (the 'Trumpai' box) ===== */
		.travel-facts { margin: 2rem 0; padding: 1.25rem 1.5rem; border-left: 4px solid #4d7c0f; border-radius: 0 0.75rem 0.75rem 0; background: #f3f4f6; }
		html.dark .travel-facts { background: #1a1a1a; border-left-color: #ccff00; }
		.travel-facts__title { margin: 0 0 0.75rem; font-family: 'Space Grotesk', sans-serif; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: #4b5563; }
		html.dark .travel-facts__title { color: #9ca3af; }
		.travel-facts dl { margin: 0; }
		.travel-facts__row { display: grid; grid-template-columns: minmax(7rem, 11rem) 1fr; gap: 0.25rem 1rem; padding: 0.4rem 0; border-top: 1px solid #e5e7eb; }
		.travel-facts__row:first-child { border-top: 0; }
		html.dark .travel-facts__row { border-top-color: rgba(255,255,255,0.08); }
		.travel-facts dt { margin: 0; font-size: 0.8125rem; font-weight: 700; color: #4b5563; }
		html.dark .travel-facts dt { color: #9ca3af; }
		.travel-facts dd { margin: 0; font-size: 0.9375rem; line-height: 1.5; color: #111827; }
		html.dark .travel-facts dd { color: #f9fafb; }
		@media (max-width: 480px) { .travel-facts__row { grid-template-columns: 1fr; } }

		/* ===== Day-by-day itinerary ===== */
		.travel-itinerary { margin: 2.5rem 0; }
		.travel-itinerary__title { margin: 0 0 1rem; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 1.125rem; color: #111827; }
		html.dark .travel-itinerary__title { color: #f9fafb; }
		/* .post-content-area ol sets list-style: decimal, which would print 1. 2. 3.
		   next to the day dots — hence the extra specificity here and below. */
		.post-content-area .travel-itinerary__list,
		.travel-itinerary__list { list-style: none; margin: 0; padding: 0 0 0 1.5rem; border-left: 2px solid #d1d5db; display: flex; flex-direction: column; gap: 1.5rem; }
		html.dark .travel-itinerary__list { border-left-color: rgba(255,255,255,0.12); }
		.travel-itinerary__day { position: relative; }
		.travel-itinerary__day::before { content: ''; position: absolute; left: -1.9rem; top: 0.35rem; width: 0.7rem; height: 0.7rem; border-radius: 9999px; background: #4d7c0f; }
		html.dark .travel-itinerary__day::before { background: #ccff00; }
		.travel-itinerary__label { margin: 0; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #4d7c0f; }
		html.dark .travel-itinerary__label { color: #ccff00; }
		.travel-itinerary__route { margin: 0.15rem 0 0; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 1.0625rem; color: #111827; }
		html.dark .travel-itinerary__route { color: #f9fafb; }
		.travel-itinerary__detail { margin: 0.35rem 0 0; font-size: 0.9375rem; line-height: 1.6; color: #4b5563; }
		html.dark .travel-itinerary__detail { color: #d1d5db; }
		.travel-itinerary__meta { display: flex; flex-wrap: wrap; gap: 0.35rem 1rem; align-items: center; margin: 0.5rem 0 0; font-size: 0.8125rem; color: #6b7280; }
		html.dark .travel-itinerary__meta { color: #9ca3af; }
		.travel-itinerary__meta svg { display: inline-block; vertical-align: -0.2em; margin-right: 0.3rem; }

		/* ===== Comparison ===== */
		.travel-compare { margin: 2.5rem 0; }
		.travel-compare__title { margin: 0 0 0.75rem; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 1.125rem; color: #111827; }
		html.dark .travel-compare__title { color: #f9fafb; }
		.travel-compare__scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid #e5e7eb; border-radius: 0.75rem; }
		html.dark .travel-compare__scroll { border-color: rgba(255,255,255,0.1); }
		.travel-compare__table { width: 100%; border-collapse: collapse; font-size: 0.9375rem; }
		.travel-compare__table th, .travel-compare__table td { padding: 0.75rem 1rem; text-align: left; border-bottom: 1px solid #f3f4f6; vertical-align: top; }
		html.dark .travel-compare__table th, html.dark .travel-compare__table td { border-bottom-color: rgba(255,255,255,0.06); }
		.travel-compare__table thead th { font-size: 0.8125rem; text-transform: uppercase; letter-spacing: 0.04em; color: #4b5563; background: #f3f4f6; }
		html.dark .travel-compare__table thead th { color: #d1d5db; background: #1a1a1a; }
		.travel-compare__table tbody th { font-weight: 700; color: #4b5563; white-space: nowrap; }
		html.dark .travel-compare__table tbody th { color: #9ca3af; }
		.travel-compare__table .is-pick { background: rgba(132,204,22,0.12); }
		.travel-compare__badge { display: inline-block; margin-left: 0.4rem; padding: 0.1rem 0.5rem; border-radius: 9999px; background: #4d7c0f; color: #fff; font-size: 0.625rem; letter-spacing: 0.06em; }
		html.dark .travel-compare__badge { background: #ccff00; color: #050505; }
		.travel-compare__note { margin: 0.5rem 0 0; font-size: 0.8125rem; color: #6b7280; }
		html.dark .travel-compare__note { color: #9ca3af; }
		/* One card per option on a phone: a side-scrolling comparison loses the column
		   heading, which is the one thing that makes the numbers mean anything. */
		@media (max-width: 640px) {
			.travel-compare__scroll { overflow-x: visible; border: 0; }
			.travel-compare__table, .travel-compare__table tbody, .travel-compare__table tr, .travel-compare__table td, .travel-compare__table th { display: block; }
			.travel-compare__table thead { display: none; }
			.travel-compare__table tr { margin-bottom: 1rem; border: 1px solid #e5e7eb; border-radius: 0.75rem; overflow: hidden; }
			html.dark .travel-compare__table tr { border-color: rgba(255,255,255,0.1); }
			.travel-compare__table tbody th { background: #f3f4f6; }
			html.dark .travel-compare__table tbody th { background: #1a1a1a; }
			.travel-compare__table td::before { content: attr(data-label); display: block; font-size: 0.6875rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: #6b7280; margin-bottom: 0.15rem; }
			html.dark .travel-compare__table td::before { color: #9ca3af; }
		}

		/* ===== Transport options ===== */
		.travel-transport { margin: 2.5rem 0; }
		.travel-transport__title { margin: 0 0 0.75rem; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 1.125rem; color: #111827; }
		html.dark .travel-transport__title { color: #f9fafb; }
		.post-content-area .travel-transport__list,
		.travel-transport__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.75rem; }
		.travel-transport__option { padding: 1rem 1.25rem; border: 1px solid #e5e7eb; border-radius: 0.75rem; background: #fff; }
		html.dark .travel-transport__option { background: #1a1a1a; border-color: rgba(255,255,255,0.1); }
		.travel-transport__option.is-best { border-color: #4d7c0f; }
		html.dark .travel-transport__option.is-best { border-color: #ccff00; }
		.travel-transport__mode { margin: 0; font-weight: 700; font-size: 1rem; color: #111827; }
		html.dark .travel-transport__mode { color: #f9fafb; }
		.travel-transport__badge { display: inline-block; margin-left: 0.4rem; padding: 0.1rem 0.5rem; border-radius: 9999px; background: #4d7c0f; color: #fff; font-size: 0.625rem; text-transform: uppercase; letter-spacing: 0.06em; }
		html.dark .travel-transport__badge { background: #ccff00; color: #050505; }
		.travel-transport__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem; margin: 0.4rem 0 0; font-size: 0.875rem; color: #4b5563; }
		html.dark .travel-transport__meta { color: #d1d5db; }
		.travel-transport__meta svg { vertical-align: -0.2em; margin-right: 0.3rem; }
		.travel-transport__price { font-weight: 700; color: #111827; }
		html.dark .travel-transport__price { color: #f9fafb; }
		.travel-transport__sep { color: #6b7280; }
		html.dark .travel-transport__sep { color: #9ca3af; }
		.travel-transport__note { margin: 0.35rem 0 0; font-size: 0.8125rem; color: #6b7280; }
		html.dark .travel-transport__note { color: #9ca3af; }

		/* ===== Trip countdown planner ===== */
		.travel-planner { margin: 2.5rem 0; padding: 1.5rem; border: 2px solid #a3e635; border-radius: 1rem; background: #ffffff; }
		html.dark .travel-planner { background: #1a1a1a; border-color: #ccff00; }
		.travel-planner__heading { margin: 0 0 1rem; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 1.25rem; color: #111827; }
		html.dark .travel-planner__heading { color: #f9fafb; }
		.travel-planner__field { display: flex; flex-direction: column; gap: 0.35rem; max-width: 16rem; font-size: 0.8125rem; font-weight: 700; color: #4b5563; }
		html.dark .travel-planner__field { color: #d1d5db; }
		.travel-planner__field input { padding: 0.6rem 0.75rem; font-size: 1rem; font-weight: 400; color: #111827; border: 1px solid #d1d5db; border-radius: 0.6rem; background: #fff; }
		html.dark .travel-planner__field input { background-color: #050505; border-color: rgba(255,255,255,0.15); color: #f9fafb; color-scheme: dark; }
		.travel-planner__field input:focus-visible { outline: 3px solid #4d7c0f; outline-offset: 1px; }
		html.dark .travel-planner__field input:focus-visible { outline-color: #ccff00; }
		.travel-planner__list { list-style: none; margin: 1.25rem 0 0; padding: 0; display: flex; flex-direction: column; gap: 0.6rem; }
		.travel-planner__list:empty { display: none; }
		.travel-planner__item { display: flex; flex-wrap: wrap; gap: 0.25rem 0.75rem; align-items: baseline; padding: 0.6rem 0.85rem; border-radius: 0.6rem; background: #f9fafb; border-left: 4px solid #d1d5db; }
		html.dark .travel-planner__item { background: #050505; border-left-color: #374151; }
		.travel-planner__item.is-overdue { border-left-color: #b91c1c; }
		.travel-planner__item.is-soon { border-left-color: #4d7c0f; }
		html.dark .travel-planner__item.is-soon { border-left-color: #ccff00; }
		.travel-planner__when { font-weight: 700; color: #111827; }
		html.dark .travel-planner__when { color: #f9fafb; }
		.travel-planner__task { color: #374151; }
		html.dark .travel-planner__task { color: #d1d5db; }
		.travel-planner__meta { font-size: 0.8125rem; color: #6b7280; }
		html.dark .travel-planner__meta { color: #9ca3af; }
		.travel-planner__item.is-overdue .travel-planner__meta { color: #b91c1c; font-weight: 700; }
		.travel-planner__ics { margin-top: 1rem; padding: 0.55rem 1.1rem; font-size: 0.875rem; font-weight: 700; color: #ffffff; background: #4d7c0f; border: none; border-radius: 9999px; cursor: pointer; }
		.travel-planner__ics:hover { background: #3f6212; }
		.travel-planner__ics:focus-visible { outline: 3px solid #4d7c0f; outline-offset: 2px; }
		html.dark .travel-planner__ics { background: #ccff00; color: #050505; }
		.travel-planner__static { margin: 1rem 0 0; padding-left: 1.25rem; font-size: 0.9375rem; color: #4b5563; }
		html.dark .travel-planner__static { color: #9ca3af; }
		/* Once the dated list exists the plain fallback is redundant. */
		.travel-planner.is-live .travel-planner__static { display: none; }

		/* ===== When-to-travel matrix ===== */
		.travel-climate { margin: 2.5rem 0; }
		.travel-climate__heading { margin: 0 0 0.75rem; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 1.125rem; color: #111827; }
		html.dark .travel-climate__heading { color: #f9fafb; }
		.travel-climate__scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid #e5e7eb; border-radius: 0.75rem; }
		html.dark .travel-climate__scroll { border-color: rgba(255,255,255,0.1); }
		/* These two tables scroll sideways on a phone, so they carry tabindex=0. Give them the
		   same focus ring the core-table scroller gets, or the focus stop is invisible. */
		.travel-climate__scroll:focus-visible, .travel-compare__scroll:focus-visible,
		.travel-preview__strip:focus-visible { outline: 3px solid #4d7c0f; outline-offset: 2px; }
		html.dark .travel-climate__scroll:focus-visible, html.dark .travel-compare__scroll:focus-visible,
		html.dark .travel-preview__strip:focus-visible { outline-color: #ccff00; }
		/* Leaflet ships 30px zoom buttons; on a touch screen that is under the 44px minimum. */
		@media (pointer: coarse) {
			.post-content-area .leaflet-control-zoom a { width: 44px; height: 44px; line-height: 44px; font-size: 1.4rem; }
		}
		.travel-climate__table { border-collapse: collapse; width: 100%; min-width: 520px; font-size: 0.875rem; }
		.travel-climate__table th, .travel-climate__table td { padding: 0.5rem 0.4rem; text-align: center; border-bottom: 1px solid #f3f4f6; }
		html.dark .travel-climate__table th, html.dark .travel-climate__table td { border-bottom-color: rgba(255,255,255,0.06); }
		.travel-climate__table thead th { font-size: 0.75rem; text-transform: uppercase; color: #4b5563; background: #f3f4f6; }
		html.dark .travel-climate__table thead th { color: #d1d5db; background: #1a1a1a; }
		.travel-climate__table tbody th { text-align: left; font-weight: 700; white-space: nowrap; padding-right: 1rem; color: #111827; }
		html.dark .travel-climate__table tbody th { color: #f9fafb; }
		.travel-climate__table abbr { text-decoration: none; }
		.travel-climate__table td.is-good { background: #dcfce7; color: #14532d; }
		.travel-climate__table td.is-ok { background: #fef9c3; color: #713f12; }
		.travel-climate__table td.is-poor { background: #fee2e2; color: #7f1d1d; }
		html.dark .travel-climate__table td.is-good { background: rgba(132,204,22,0.18); color: #d9f99d; }
		html.dark .travel-climate__table td.is-ok { background: rgba(234,179,8,0.16); color: #fde68a; }
		html.dark .travel-climate__table td.is-poor { background: rgba(239,68,68,0.16); color: #fecaca; }
		.travel-climate__key { display: flex; flex-wrap: wrap; gap: 1rem; margin: 0.75rem 0 0; font-size: 0.8125rem; color: #4b5563; }
		html.dark .travel-climate__key { color: #9ca3af; }
		.travel-climate__note { margin: 0.5rem 0 0; font-size: 0.8125rem; color: #6b7280; }
		html.dark .travel-climate__note { color: #9ca3af; }

		/* ===== Guide preview strip ===== */
		.travel-preview { margin: 2.5rem 0; }
		.travel-preview__heading { margin: 0 0 0.75rem; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 1.125rem; color: #111827; }
		html.dark .travel-preview__heading { color: #f9fafb; }
		.post-content-area .travel-preview__strip,
		.travel-preview__strip { list-style: none; margin: 0; padding: 0 0 0.5rem; display: flex; gap: 0.75rem; overflow-x: auto; -webkit-overflow-scrolling: touch; }
		.travel-preview__strip li { flex: 0 0 auto; }
		.travel-preview__thumb { padding: 0; border: 1px solid #e5e7eb; border-radius: 0.75rem; background: none; cursor: zoom-in; overflow: hidden; display: block; line-height: 0; }
		.travel-preview__thumb:hover { border-color: #4d7c0f; }
		.travel-preview__thumb:focus-visible { outline: 3px solid #4d7c0f; outline-offset: 2px; }
		html.dark .travel-preview__thumb { border-color: rgba(255,255,255,0.12); }
		html.dark .travel-preview__thumb:hover { border-color: #ccff00; }
		html.dark .travel-preview__thumb:focus-visible { outline-color: #ccff00; }
		.travel-preview__thumb img { display: block; width: auto; height: 220px; }
		.travel-preview__note { margin: 0.5rem 0 0; font-size: 0.8125rem; color: #6b7280; }
		html.dark .travel-preview__note { color: #9ca3af; }

		/* ===== Series navigation ===== */
		.travel-series { margin: 0 0 3rem; padding: 1.5rem; border: 1px solid #e5e7eb; border-radius: 1rem; background: #ffffff; }
		html.dark .travel-series { background: #1a1a1a; border-color: rgba(255,255,255,0.1); }
		.travel-series__title { margin: 0 0 1rem; font-family: 'Space Grotesk', sans-serif; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #6b7280; }
		html.dark .travel-series__title { color: #9ca3af; }
		.post-content-area .travel-series__list,
		.travel-series__list { list-style: none; counter-reset: step; margin: 0 0 1.25rem; padding: 0; display: flex; flex-direction: column; gap: 0.5rem; }
		.travel-series__item { counter-increment: step; display: flex; gap: 0.75rem; align-items: baseline; font-size: 0.9375rem; line-height: 1.5; }
		.travel-series__item::before {
			content: counter(step); flex-shrink: 0; width: 1.5rem; height: 1.5rem; border-radius: 9999px;
			display: inline-flex; align-items: center; justify-content: center;
			font-size: 0.75rem; font-weight: 700; background: #f3f4f6; color: #4b5563;
		}
		html.dark .travel-series__item::before { background: rgba(255,255,255,0.08); color: #d1d5db; }
		.travel-series__item.is-done::before { background: #4d7c0f; color: #ffffff; }
		html.dark .travel-series__item.is-done::before { background: #ccff00; color: #050505; }
		.travel-series__item.is-current::before { background: #111827; color: #ffffff; }
		html.dark .travel-series__item.is-current::before { background: #f9fafb; color: #050505; }
		.travel-series__item a { color: #374151; text-decoration: none; }
		.travel-series__item a:hover { color: #4d7c0f; text-decoration: underline; }
		html.dark .travel-series__item a { color: #d1d5db; }
		html.dark .travel-series__item a:hover { color: #ccff00; }
		.travel-series__item.is-current span { font-weight: 700; color: #111827; }
		html.dark .travel-series__item.is-current span { color: #f9fafb; }
		.travel-series__next { display: inline-block; font-weight: 700; font-size: 0.9375rem; color: #4d7c0f; text-decoration: none; }
		.travel-series__next:hover { text-decoration: underline; }
		html.dark .travel-series__next { color: #ccff00; }

		/* ===== Currency hint ===== */
		.travel-eur { white-space: nowrap; font-size: 0.9em; color: #6b7280; cursor: help; }
		html.dark .travel-eur { color: #9ca3af; }

		/* ===== Newsletter ===== */
		.travel-newsletter { margin: 2.5rem 0; padding: 1.75rem; border: 2px solid #a3e635; border-radius: 1rem; background: #ffffff; }
		html.dark .travel-newsletter { background: #1a1a1a; border-color: #ccff00; }
		.travel-newsletter__heading { margin: 0 0 0.5rem; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 1.25rem; line-height: 1.3; color: #111827; }
		html.dark .travel-newsletter__heading { color: #f9fafb; }
		.travel-newsletter__text { margin: 0 0 1.25rem; font-size: 0.9375rem; line-height: 1.6; color: #4b5563; }
		html.dark .travel-newsletter__text { color: #d1d5db; }
		.travel-newsletter__row { display: flex; flex-wrap: wrap; gap: 0.5rem; }
		.travel-newsletter__row input[type=email] {
			flex: 1 1 14rem; min-width: 0; padding: 0.75rem 1rem; font-size: 1rem; color: #111827;
			background: #ffffff; border: 1px solid #d1d5db; border-radius: 0.75rem;
		}
		html.dark .travel-newsletter__row input[type=email] { background: #050505; border-color: rgba(255,255,255,0.15); color: #f9fafb; }
		.travel-newsletter__row input[type=email]:focus-visible { outline: 3px solid #4d7c0f; outline-offset: 1px; }
		html.dark .travel-newsletter__row input[type=email]:focus-visible { outline-color: #ccff00; }
		/* The default placeholder grey is #9ca3af — 2.54:1 on white. A placeholder is read by
		   sighted users like any other text, and a contrast audit that walks text nodes never
		   sees it, so set it explicitly. */
		.travel-budget__field input::placeholder, .travel-planner__field input::placeholder,
		.travel-newsletter__row input[type=email]::placeholder { color: #6b7280; opacity: 1; }
		html.dark .travel-budget__field input::placeholder, html.dark .travel-planner__field input::placeholder,
		html.dark .travel-newsletter__row input[type=email]::placeholder { color: #9ca3af; opacity: 1; }
		.travel-newsletter__row button {
			padding: 0.75rem 1.5rem; font-size: 1rem; font-weight: 700; color: #ffffff;
			background: #4d7c0f; border: none; border-radius: 0.75rem; cursor: pointer; transition: background 0.2s;
		}
		.travel-newsletter__row button:hover { background: #3f6212; }
		.travel-newsletter__row button:disabled { opacity: 0.6; cursor: progress; }
		.travel-newsletter__row button:focus-visible { outline: 3px solid #4d7c0f; outline-offset: 2px; }
		html.dark .travel-newsletter__row button { background: #ccff00; color: #050505; }
		html.dark .travel-newsletter__row button:hover { background: #b8e600; }
		.travel-newsletter__consent { display: flex; gap: 0.6rem; align-items: flex-start; margin-top: 0.9rem; font-size: 0.8125rem; line-height: 1.5; color: #4b5563; }
		html.dark .travel-newsletter__consent { color: #9ca3af; }
		.travel-newsletter__consent input { margin-top: 0.1rem; width: 1.5rem; height: 1.5rem; accent-color: #4d7c0f; flex-shrink: 0; }
		html.dark .travel-newsletter__consent input { accent-color: #ccff00; }
		/* Colour alone is not enough to mark a link inside a sentence (WCAG 1.4.1). In
		   content this is inherited from .post-content-area a, but the footer form sits
		   outside it and was relying on the green alone. */
		.travel-newsletter__consent a { color: #4d7c0f; text-decoration: underline; }
		.travel-bundle-note { margin: 0.75rem 0 0; padding: 0.6rem 0.9rem; font-size: 0.875rem; font-weight: 700; color: #3f6212; background: #f0fdf4; border-left: 4px solid #4d7c0f; border-radius: 0.5rem; }
		html.dark .travel-bundle-note { color: #ccff00; background: rgba(204,255,0,0.08); border-left-color: #ccff00; }

		/* ---- article print: the page as a reader would want it on paper */
		@media print {
			body.single header, body.single footer, body.single aside,
			body.single .travel-share, body.single .travel-toc, body.single .post-comments,
			body.single .travel-newsletter, body.single .wp-block-post-navigation-link,
			body.single #pdf-guide-widget, body.single .travel-series,
			body.single .travel-prep__compare { display: none !important; }
			body.single .wp-block-post-content a[href^='http']::after { content: ' (' attr(href) ')'; font-size: 0.75em; word-break: break-all; }
			body.single .post-content-area { max-width: none; }
			body.single .travel-facts, body.single .travel-callout, body.single .travel-visa,
			body.single .travel-prep__task, body.single .travel-itinerary__day { break-inside: avoid; }
		}

		/* ---- tap targets and placeholder contrast found by bin/ux-scan
		   Core's search placeholder is the browser grey, 2.54:1 on white, and it appears in
		   the header, the 404 page, the shop and the footer. The block inputs were fixed
		   earlier; this is the same problem everywhere else. */
		.wp-block-search__input::placeholder,
		form[role=search] input[type=search]::placeholder { color: #6b7280; opacity: 1; }
		html.dark .wp-block-search__input::placeholder,
		html.dark form[role=search] input[type=search]::placeholder { color: #9ca3af; opacity: 1; }

		/* WCAG 2.5.8 asks for 24x24. These were 14-22px tall: padding grows the hit area
		   without moving anything, since the links already sit in their own rows. */
		.travel-breadcrumbs a, .travel-breadcrumbs__current { display: inline-block; padding: 0.25rem 0; }
		.post-nav-link a { display: inline-block; padding: 0.2rem 0; }
		/* Card category badges were 14px tall and card titles 22px. Both are standalone
		   links, so the inline exception does not apply to them. */
		.wp-block-post-terms a { display: inline-block; padding: 0.3rem 0; }
		.wp-block-post-title a { display: inline-block; padding: 0.15rem 0; }
		/* A see-all link that is the whole paragraph, e.g. the section headers on the
		   front page. 16px tall as shipped. */
		.wp-block-group > p > a:only-child { display: inline-block; padding: 0.25rem 0; }

		/* Footer social icons were 20x20. The negative margin keeps the row looking the
		   same while the tappable box grows to 44px. */
		footer a[aria-label]:has(svg) {
			display: inline-flex; align-items: center; justify-content: center;
			width: 44px; height: 44px; margin: -12px;
		}

		/* ---- blog facets */
		.travel-facets { display: flex; flex-direction: column; gap: 0.6rem; }
		.travel-facets__label { margin: 0; font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #6b7280; }
		html.dark .travel-facets__label { color: #9ca3af; }
		.travel-facets__row { display: flex; flex-wrap: wrap; gap: 0.4rem; }
		.travel-facets__chip { display: inline-flex; align-items: center; gap: 0.35rem; min-height: 40px; padding: 0.4rem 0.85rem; font-size: 0.8125rem; font-weight: 700; color: #374151; text-decoration: none; background: #ffffff; border: 1px solid #e5e7eb; border-radius: 9999px; }
		.travel-facets__chip:hover { border-color: #4d7c0f; color: #4d7c0f; }
		.travel-facets__chip:focus-visible { outline: 3px solid #4d7c0f; outline-offset: 2px; }
		.travel-facets__chip.is-active { color: #ffffff; background: #4d7c0f; border-color: #4d7c0f; }
		.travel-facets__count { font-size: 0.6875rem; font-weight: 400; opacity: 0.75; }
		html.dark .travel-facets__chip { color: #d1d5db; background: #1a1a1a; border-color: rgba(255,255,255,0.12); }
		html.dark .travel-facets__chip:hover { border-color: #ccff00; color: #ccff00; }
		html.dark .travel-facets__chip:focus-visible { outline-color: #ccff00; }
		html.dark .travel-facets__chip.is-active { color: #111111; background: #ccff00; border-color: #ccff00; }

		/* ---- search suggestions */
		.travel-suggest { position: absolute; top: calc(100% + 0.4rem); left: 0; right: 0; z-index: 60; max-height: 22rem; overflow-y: auto; background: #ffffff; border: 1px solid #e5e7eb; border-radius: 0.75rem; box-shadow: 0 12px 32px rgba(0,0,0,0.12); }
		html.dark .travel-suggest { background: #111111; border-color: rgba(255,255,255,0.14); box-shadow: 0 12px 32px rgba(0,0,0,0.6); }
		.travel-suggest__item { display: flex; flex-direction: column; gap: 0.15rem; padding: 0.6rem 0.9rem; text-decoration: none; border-bottom: 1px solid #f3f4f6; }
		html.dark .travel-suggest__item { border-bottom-color: rgba(255,255,255,0.07); }
		.travel-suggest__item:last-child { border-bottom: none; }
		.travel-suggest__item:hover, .travel-suggest__item.is-active { background: #f3f4f6; }
		html.dark .travel-suggest__item:hover, html.dark .travel-suggest__item.is-active { background: #1a1a1a; }
		.travel-suggest__title { font-size: 0.875rem; font-weight: 700; line-height: 1.35; color: #111827; }
		html.dark .travel-suggest__title { color: #f9fafb; }
		.travel-suggest__cat { font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: #4d7c0f; }
		html.dark .travel-suggest__cat { color: #ccff00; }
		.travel-suggest__empty { margin: 0; padding: 0.8rem 0.9rem; font-size: 0.875rem; color: #6b7280; }
		html.dark .travel-suggest__empty { color: #9ca3af; }

		.travel-share__offline { min-height: 44px; padding: 0.5rem 1rem; margin-left: 0.25rem; font-family: inherit; font-size: 0.8125rem; font-weight: 700; color: #374151; background: #f3f4f6; border: 1px solid #e5e7eb; border-radius: 9999px; cursor: pointer; }
		.travel-share__offline:hover { border-color: #4d7c0f; color: #4d7c0f; }
		.travel-share__offline:focus-visible { outline: 3px solid #4d7c0f; outline-offset: 2px; }
		.travel-share__offline.is-saved { color: #ffffff; background: #4d7c0f; border-color: #4d7c0f; }
		html.dark .travel-share__offline { color: #d1d5db; background: #050505; border-color: rgba(255,255,255,0.15); }
		html.dark .travel-share__offline:hover { border-color: #ccff00; color: #ccff00; }
		html.dark .travel-share__offline:focus-visible { outline-color: #ccff00; }
		html.dark .travel-share__offline.is-saved { color: #111111; background: #ccff00; border-color: #ccff00; }
		html.dark .travel-newsletter__consent a { color: #ccff00; }
		/* Honeypot: off-screen rather than display:none, which some bots detect. */
		.travel-newsletter__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
		.travel-newsletter__status:empty { display: none; }
		.travel-newsletter__status { margin: 0.9rem 0 0; font-size: 0.875rem; font-weight: 600; color: #4b5563; }
		.travel-newsletter.is-ok .travel-newsletter__status { color: #3f6212; }
		html.dark .travel-newsletter.is-ok .travel-newsletter__status { color: #ccff00; }
		.travel-newsletter.is-error .travel-newsletter__status { color: #b91c1c; }
		html.dark .travel-newsletter.is-error .travel-newsletter__status { color: #fca5a5; }
		.travel-newsletter--compact { padding: 1.25rem; }
		.travel-newsletter--compact .travel-newsletter__heading { font-size: 1rem; }
		.travel-newsletter--compact .travel-newsletter__text { font-size: 0.8125rem; margin-bottom: 1rem; }
		.travel-newsletter--compact .travel-newsletter__row { flex-direction: column; }
		.travel-newsletter--compact .travel-newsletter__row button { width: 100%; }

		/* ===== Theme blocks: map ===== */
		.travel-map { margin: 2.5rem 0; }
		.travel-map__title { margin: 0 0 0.75rem; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 1.125rem; color: #111827; }
		html.dark .travel-map__title { color: #f9fafb; }
		.travel-map__canvas { width: 100%; border-radius: 1rem; overflow: hidden; border: 1px solid #e5e7eb; background: #f3f4f6; z-index: 0; }
		html.dark .travel-map__canvas { border-color: rgba(255,255,255,0.1); background: #1a1a1a; }
		.travel-map__places { margin-top: 0.75rem; font-size: 0.875rem; }
		.travel-map__places summary { cursor: pointer; font-weight: 700; color: #4d7c0f; }
		html.dark .travel-map__places summary { color: #ccff00; }

		/* Leaflet's own UI (zoom buttons, attribution) lives inside .post-content-area, so the
		   article link styling was repainting it: olive + underlined in light, and #ccff00 on
		   Leaflet's white buttons in dark — 1.18:1, i.e. invisible zoom controls. Opt the map
		   chrome out and keep Leaflet's defaults, which are legible on its own backgrounds.
		   Popup links are left themed on purpose: those are our content. */
		.post-content-area .leaflet-control a,
		.post-content-area .leaflet-control-attribution a,
		html.dark .post-content-area .leaflet-control a,
		html.dark .post-content-area .leaflet-control-attribution a { text-decoration: none; }
		.post-content-area .leaflet-control-zoom a,
		html.dark .post-content-area .leaflet-control-zoom a { color: #1f2937; }
		.post-content-area .leaflet-control-zoom a:hover,
		html.dark .post-content-area .leaflet-control-zoom a:hover { color: #000; }
		.post-content-area .leaflet-control-attribution a,
		html.dark .post-content-area .leaflet-control-attribution a { color: #0b61a4; }
		.post-content-area .leaflet-control-attribution,
		html.dark .post-content-area .leaflet-control-attribution { color: #3d3d3d; background: rgba(255,255,255,0.9); }
		.travel-map__list { margin: 0.75rem 0 0; padding-left: 1.25rem; }
		.travel-map__list li { margin-bottom: 0.4rem; }
		.leaflet-container { font: inherit; }

		/* ===== Theme blocks: budget calculator ===== */
		.travel-budget { margin: 2.5rem 0; padding: 1.5rem; border: 2px solid #a3e635; border-radius: 1rem; background: #ffffff; }
		html.dark .travel-budget { background: #1a1a1a; border-color: #ccff00; }
		.travel-budget__title { margin: 0 0 1rem; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 1.25rem; color: #111827; }
		html.dark .travel-budget__title { color: #f9fafb; }
		.travel-budget__controls { display: flex; flex-wrap: wrap; gap: 1rem; }
		.travel-budget__field { display: flex; flex-direction: column; gap: 0.35rem; flex: 1 1 8rem; font-size: 0.8125rem; font-weight: 700; color: #4b5563; }
		html.dark .travel-budget__field { color: #d1d5db; }
		.travel-budget__field input, .travel-budget__field select {
			padding: 0.6rem 0.75rem; font-size: 1rem; font-weight: 400; color: #111827;
			border: 1px solid #d1d5db; border-radius: 0.6rem; background: #ffffff; width: 100%;
		}
		html.dark .travel-budget__field input, html.dark .travel-budget__field select { background-color: #050505; border-color: rgba(255,255,255,0.15); color: #f9fafb; }
		.travel-budget__field input:focus-visible, .travel-budget__field select:focus-visible { outline: 3px solid #4d7c0f; outline-offset: 1px; }
		html.dark .travel-budget__field input:focus-visible, html.dark .travel-budget__field select:focus-visible { outline-color: #ccff00; }

		/* Shared baseline for the interactive blocks' form controls. A native <select> ignores the
		   padding its sibling <input>s get, so budget rendered a 41.7px select beside 50px inputs:
		   visibly misaligned, and under the 44px minimum touch target. Fix the height once and give
		   the select our own chevron so both controls match in either theme. */
		.travel-budget__field input, .travel-budget__field select,
		.travel-planner__field input, .travel-newsletter__row input[type=email],
		.travel-newsletter__row button { min-height: 48px; }
		.travel-budget__field select {
			appearance: none; -webkit-appearance: none; padding-right: 2.25rem;
			background-repeat: no-repeat; background-position: right 0.7rem center; background-size: 1.1rem;
			background-image: url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236b7280%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%209l6%206%206-6%22%2F%3E%3C%2Fsvg%3E);
		}
		html.dark .travel-budget__field select { background-image: url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23d1d5db%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%209l6%206%206-6%22%2F%3E%3C%2Fsvg%3E); }
		.travel-budget__total { margin: 1.25rem 0 0.25rem; font-family: 'Space Grotesk', sans-serif; font-size: 2rem; font-weight: 700; line-height: 1.1; color: #111827; }
		html.dark .travel-budget__total { color: #ccff00; }
		.travel-budget__breakdown { margin: 0; font-size: 0.875rem; color: #4b5563; }
		html.dark .travel-budget__breakdown { color: #9ca3af; }
		.travel-budget__note { margin: 0.75rem 0 0; font-size: 0.8125rem; color: #6b7280; }
		html.dark .travel-budget__note { color: #9ca3af; }

		/* ===== Theme blocks: packing checklist ===== */
		.travel-checklist { margin: 2.5rem 0; padding: 1.5rem; border: 1px solid #e5e7eb; border-radius: 1rem; background: #ffffff; }
		html.dark .travel-checklist { background: #1a1a1a; border-color: rgba(255,255,255,0.1); }
		.travel-checklist__head { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
		.travel-checklist__title { margin: 0; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 1.125rem; color: #111827; }
		html.dark .travel-checklist__title { color: #f9fafb; }
		.travel-checklist__actions { display: flex; align-items: center; gap: 0.5rem; }
		.travel-checklist__count { font-size: 0.8125rem; font-weight: 700; color: #6b7280; }
		html.dark .travel-checklist__count { color: #9ca3af; }
		.travel-checklist.is-complete .travel-checklist__count { color: #4d7c0f; }
		html.dark .travel-checklist.is-complete .travel-checklist__count { color: #ccff00; }
		.travel-checklist__btn { min-height: 44px; padding: 0.4rem 0.9rem; font-size: 0.8125rem; font-weight: 700; color: #374151; background: #f3f4f6; border: 1px solid #e5e7eb; border-radius: 9999px; cursor: pointer; }
		.travel-checklist__btn:hover { border-color: #4d7c0f; color: #4d7c0f; }
		.travel-checklist__btn:focus-visible { outline: 3px solid #4d7c0f; outline-offset: 2px; }
		html.dark .travel-checklist__btn { background: #050505; border-color: rgba(255,255,255,0.15); color: #d1d5db; }
		html.dark .travel-checklist__btn:hover { border-color: #ccff00; color: #ccff00; }
		.travel-checklist__group { margin: 1.25rem 0 0.5rem; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #6b7280; }
		html.dark .travel-checklist__group { color: #9ca3af; }
		.post-content-area .travel-checklist__list,
		.travel-checklist__list { list-style: none; margin: 0; padding: 0; }
		.travel-checklist__list li { display: flex; align-items: flex-start; gap: 0.6rem; padding: 0.3rem 0; }
		.travel-checklist__list input { width: 1.5rem; height: 1.5rem; margin-top: 0.05rem; accent-color: #4d7c0f; flex-shrink: 0; }
		html.dark .travel-checklist__list input { accent-color: #ccff00; }
		.travel-checklist__list label { font-size: 0.9375rem; line-height: 1.5; color: #374151; cursor: pointer; }
		html.dark .travel-checklist__list label { color: #d1d5db; }
		/* #9ca3af on white is 2.54:1 — a state the static contrast audit never reaches, because
		   it only exists once someone ticks a box. #6b7280 keeps the done-item look at 4.83:1. */
		.travel-checklist__list input:checked + label { color: #6b7280; text-decoration: line-through; }
		html.dark .travel-checklist__list input:checked + label { color: #9ca3af; }
		.travel-checklist__bar { height: 6px; margin: 0 0 1rem; border-radius: 9999px; background: #e5e7eb; overflow: hidden; }
		html.dark .travel-checklist__bar { background: rgba(255,255,255,0.12); }
		.travel-checklist__bar span { display: block; width: 0; height: 100%; border-radius: 9999px; background: #4d7c0f; transition: width 0.25s ease; }
		html.dark .travel-checklist__bar span { background: #ccff00; }
		@media (prefers-reduced-motion: reduce) { .travel-checklist__bar span { transition: none; } }

		/* Print just the list. Hiding body's children would hide the checklist's own
		   ancestors too, so this hides everything by visibility and re-shows the subtree. */
		@media print {
			body.travel-printing-checklist * { visibility: hidden; }
			body.travel-printing-checklist .travel-checklist.is-printing,
			body.travel-printing-checklist .travel-checklist.is-printing * { visibility: visible; }
			body.travel-printing-checklist .travel-checklist.is-printing {
				position: absolute; inset: 0 auto auto 0; width: 100%; border: 0; padding: 0; margin: 0;
			}
			body.travel-printing-checklist .travel-checklist.is-printing .travel-checklist__actions { display: none; }
			body.travel-printing-checklist .travel-checklist.is-printing input:checked + label { text-decoration: none; color: #000; }
		}

		/* ===== Reading progress ===== */
		.travel-progress { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 60; background: transparent; pointer-events: none; }
		.travel-progress__fill { height: 100%; transform-origin: 0 50%; transform: scaleX(0); background: #4d7c0f; }
		html.dark .travel-progress__fill { background: #ccff00; }

		/* ===== Sidebar fallback card (destinations without a PDF guide) ===== */
		.travel-more-card { padding: 1.25rem; border: 1px solid #e5e7eb; border-radius: 1rem; background: #ffffff; }
		html.dark .travel-more-card { background: #1a1a1a; border-color: rgba(255,255,255,0.1); }
		.travel-more-card__title { margin: 0 0 0.75rem; font-family: 'Space Grotesk', sans-serif; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: #6b7280; }
		html.dark .travel-more-card__title { color: #9ca3af; }
		.travel-more-card__list { list-style: none; margin: 0 0 1rem; padding: 0; display: flex; flex-direction: column; gap: 0.6rem; }
		.travel-more-card__list a { font-size: 0.875rem; line-height: 1.45; color: #374151; text-decoration: none; }
		.travel-more-card__list a:hover { color: #4d7c0f; text-decoration: underline; }
		html.dark .travel-more-card__list a { color: #d1d5db; }
		html.dark .travel-more-card__list a:hover { color: #ccff00; }
		.travel-more-card__all { font-size: 0.8125rem; font-weight: 700; color: #4d7c0f; text-decoration: none; }
		.travel-more-card__all:hover { text-decoration: underline; }
		html.dark .travel-more-card__all { color: #ccff00; }

		/* ===== Affiliate disclosure ===== */
		.travel-affiliate-note { margin: 1.5rem 0; padding: 0.75rem 1rem; border-left: 3px solid #4d7c0f; background: #f3f4f6; border-radius: 0 0.5rem 0.5rem 0; font-size: 0.875rem; line-height: 1.6; color: #4b5563; }
		html.dark .travel-affiliate-note { background: #1a1a1a; border-left-color: #ccff00; color: #9ca3af; }

		/* ===== Table of contents ===== */
		.post-content-area .travel-toc__list,
		.travel-toc__list { list-style: none; margin: 0; padding: 0; }
		.travel-toc__item { margin: 0; }
		.travel-toc__item a { display: block; padding: 0.3rem 0; font-size: 0.875rem; line-height: 1.45; color: #4b5563; text-decoration: none; border-left: 2px solid transparent; padding-left: 0.75rem; transition: color 0.15s, border-color 0.15s; }
		.travel-toc__item a:hover { color: #4d7c0f; border-left-color: #4d7c0f; }
		.travel-toc__item a:focus-visible { outline: 2px solid #4d7c0f; outline-offset: 2px; }
		html.dark .travel-toc__item a { color: #d1d5db; }
		html.dark .travel-toc__item a:hover { color: #ccff00; border-left-color: #ccff00; }
		html.dark .travel-toc__item a:focus-visible { outline-color: #ccff00; }
		.travel-toc__item--h3 a { padding-left: 1.6rem; font-size: 0.8125rem; color: #6b7280; }
		html.dark .travel-toc__item--h3 a { color: #9ca3af; }
		.travel-toc__item.is-active > a { color: #4d7c0f; border-left-color: #4d7c0f; font-weight: 600; }
		html.dark .travel-toc__item.is-active > a { color: #ccff00; border-left-color: #ccff00; }

		.travel-toc--sidebar { padding: 1.25rem; border: 1px solid #e5e7eb; border-radius: 1rem; background: #ffffff; max-height: calc(100vh - 8rem); overflow-y: auto; }
		html.dark .travel-toc--sidebar { background: #1a1a1a; border-color: rgba(255,255,255,0.1); }
		.travel-toc__title { margin: 0 0 0.75rem; font-family: 'Space Grotesk', sans-serif; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: #6b7280; }
		html.dark .travel-toc__title { color: #9ca3af; }

		.travel-toc--inline { margin: 2rem 0; padding: 1rem 1.25rem; border: 1px solid #e5e7eb; border-radius: 1rem; background: #ffffff; }
		html.dark .travel-toc--inline { background: #1a1a1a; border-color: rgba(255,255,255,0.1); }
		.travel-toc__summary { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 0.9375rem; color: #111827; cursor: pointer; list-style: revert; }
		html.dark .travel-toc__summary { color: #f9fafb; }
		.travel-toc__summary:focus-visible { outline: 3px solid #4d7c0f; outline-offset: 2px; }
		.travel-toc--inline .travel-toc__list { margin-top: 0.75rem; }

		/* ===== Article meta line (date · reading time · updated) ===== */
		.travel-post-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; font-size: 0.875rem; color: #6b7280; }
		html.dark .travel-post-meta { color: #9ca3af; }
		.travel-post-meta__sep { color: #6b7280; }
		html.dark .travel-post-meta__sep { color: #9ca3af; }
		.travel-post-meta__updated { font-weight: 600; color: #4d7c0f; }
		html.dark .travel-post-meta__updated { color: #ccff00; }

		/* ===== Share row ===== */
		.travel-share { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; margin: 0 0 3rem; }
		.travel-share__label { margin: 0; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #6b7280; }
		html.dark .travel-share__label { color: #9ca3af; }
		.travel-share__row { display: flex; flex-wrap: wrap; gap: 0.5rem; }
		.travel-share__btn {
			display: inline-flex; align-items: center; justify-content: center;
			width: 2.75rem; height: 2.75rem; border-radius: 9999px;
			border: 1px solid #e5e7eb; background: #ffffff; color: #374151;
			cursor: pointer; transition: border-color 0.2s, color 0.2s, background 0.2s;
		}
		.travel-share__btn:hover { border-color: #4d7c0f; color: #4d7c0f; }
		.travel-share__btn:focus-visible { outline: 3px solid #4d7c0f; outline-offset: 2px; }
		html.dark .travel-share__btn { background: #1a1a1a; border-color: rgba(255,255,255,0.1); color: #d1d5db; }
		html.dark .travel-share__btn:hover { border-color: #ccff00; color: #ccff00; }
		html.dark .travel-share__btn:focus-visible { outline-color: #ccff00; }
		.travel-share__copy.is-copied { border-color: #4d7c0f; color: #4d7c0f; }
		html.dark .travel-share__copy.is-copied { border-color: #ccff00; color: #ccff00; }

		/* ===== Author box ===== */
		.travel-author-box { display: flex; gap: 1.25rem; align-items: flex-start; padding: 1.5rem; margin: 0 0 3rem; border: 1px solid #e5e7eb; border-radius: 1rem; background: #ffffff; }
		html.dark .travel-author-box { background: #1a1a1a; border-color: rgba(255,255,255,0.1); }
		.travel-author-box__avatar { border-radius: 9999px; flex-shrink: 0; }
		.travel-author-box__name { margin: 0 0 0.35rem; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 1.125rem; color: #111827; }
		html.dark .travel-author-box__name { color: #f9fafb; }
		.travel-author-box__bio { margin: 0 0 0.75rem; font-size: 0.9375rem; line-height: 1.65; color: #4b5563; }
		html.dark .travel-author-box__bio { color: #d1d5db; }
		.travel-author-box__link { font-size: 0.875rem; font-weight: 700; color: #4d7c0f; text-decoration: none; }
		.travel-author-box__link:hover { text-decoration: underline; }
		html.dark .travel-author-box__link { color: #ccff00; }

		/* ===== Mini-cart drawer in dark mode =====
		   The drawer markup sits on every page and WooCommerce paints it white, while
		   html.dark body turns its text #f9fafb — so opening the cart in dark mode showed
		   near-white text on a white panel. Measured 1.05:1. */
		html.dark .wc-block-components-drawer__content,
		html.dark .wc-block-mini-cart__template-part,
		html.dark .wp-block-woocommerce-mini-cart-contents { background: #111111; color: #f9fafb; }
		html.dark .wc-block-mini-cart__footer { background: #1a1a1a; border-top-color: rgba(255,255,255,0.1); }
		html.dark .wc-block-components-drawer__close { color: #f9fafb; }
		html.dark .wc-block-mini-cart__items,
		html.dark .wc-block-components-totals-item__label,
		html.dark .wc-block-components-totals-item__description,
		html.dark .wc-block-formatted-money-amount { color: #f9fafb; }

		/* ===== Reduced motion =====
		   The theme ships smooth scrolling, a 1.05 image zoom, a -4px card lift and a button
		   scale. Honour the OS preference instead of overriding it. */
		@media (prefers-reduced-motion: reduce) {
			html { scroll-behavior: auto; }
			*, *::before, *::after {
				animation-duration: 0.01ms !important;
				animation-iteration-count: 1 !important;
				transition-duration: 0.01ms !important;
				scroll-behavior: auto !important;
			}
			.group:hover .img-zoom-container img,
			.glass-panel:hover,
			.btn-primary:hover,
			.wp-block-button.btn-primary .wp-block-button__link:hover { transform: none !important; }
		}
	

/* ---- functions.php:3900 travel_language_switcher_styles (priority 22) ---- */
		/* ===== Header language switcher → segmented control (40px tall, matches #theme-toggle) ===== */
		/* Polylang changed this block's markup. It used to put the class straight on the <ul>;
		   newer versions wrap that list in a <div class="pll-switcher"> carrying width:100%.
		   In the header's flex row that width starves whatever sits beside it — on production
		   it squeezed the search button from 40px down to 14 and stacked EN above LT. So the
		   wrapper is put back to its own size and the pill is drawn on whichever element
		   actually holds the items, which keeps both markups working. */
		.travel-header div.wp-block-polylang-language-switcher { display: inline-flex; width: auto; flex-shrink: 0; margin: 0; padding: 0; background: none; }
		.travel-header ul.wp-block-polylang-language-switcher,
		.travel-header div.wp-block-polylang-language-switcher > ul { display: inline-flex; flex-direction: row; align-items: center; gap: 2px; list-style: none; margin: 0; padding: 3px; height: 2.5rem; background: #e5e7eb; border-radius: 9999px; }
		html.dark .travel-header ul.wp-block-polylang-language-switcher,
		html.dark .travel-header div.wp-block-polylang-language-switcher > ul { background: rgba(255,255,255,0.1); }
		.travel-header .wp-block-polylang-language-switcher li { display: flex; margin: 0; padding: 0; height: 100%; }
		.travel-header .wp-block-polylang-language-switcher a { display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem; height: 100%; min-width: 3.5rem; padding: 0 0.8rem; border-radius: 9999px; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.04em; line-height: 1; color: #4b5563; text-decoration: none; transition: background 0.2s, color 0.2s; }
		html.dark .travel-header .wp-block-polylang-language-switcher a { color: #d1d5db; }
		.travel-header .wp-block-polylang-language-switcher a:hover { color: #111827; background: rgba(255,255,255,0.75); }
		html.dark .travel-header .wp-block-polylang-language-switcher a:hover { color: #ffffff; background: rgba(255,255,255,0.12); }
		/* WPCode snippet #3960 fades the active language to opacity .45, which predates this
		   segmented control and both fights it (the current language should read as selected,
		   not disabled) and drops the label to 3.08:1. Overridden here so the theme owns it. */
		.travel-header .wp-block-polylang-language-switcher li.current-lang { opacity: 1; }
		.travel-header .wp-block-polylang-language-switcher li.current-lang a { background: #ffffff; color: #111827; box-shadow: 0 1px 3px rgba(0,0,0,0.12); cursor: default; }
		html.dark .travel-header .wp-block-polylang-language-switcher li.current-lang a { background: #ccff00; color: #000000; box-shadow: none; }
		/* The flag is a bare <img> in the old markup and an <img> inside .pll-switcher-flag in
		   the new one; size both so the row keeps its 18px column either way. */
		.travel-header .wp-block-polylang-language-switcher img { width: 18px !important; height: auto !important; border-radius: 2px; flex-shrink: 0; }
		.travel-header .wp-block-polylang-language-switcher .pll-switcher-flag { width: 18px; flex-shrink: 0; border-radius: 2px; overflow: hidden; }
		.travel-header .wp-block-polylang-language-switcher .lang-code { display: inline-block; }
		/* !important because Polylang writes display:inline-block onto the flag as an inline
		   style, and an inline style outranks a stylesheet. Without it the flags stay on a
		   phone and the header row pushes the page sideways: 54px of horizontal scroll at
		   320px, 14px at 360px. */
		@media (max-width: 480px) {
			.travel-header .wp-block-polylang-language-switcher img,
			.travel-header .wp-block-polylang-language-switcher .pll-switcher-flag { display: none !important; }
			.travel-header .wp-block-polylang-language-switcher a { min-width: 2.75rem; padding: 0 0.65rem; }
		}
		/* The narrowest phones still need the last few pixels; 34x34 stays well over the 24px
		   minimum target size. */
		@media (max-width: 360px) {
			.travel-header .wp-block-polylang-language-switcher a { min-width: 2.1rem; padding: 0 0.4rem; }
		}

		/* The desktop header row needs about 880px for logo, four menu items, search, the
		   language switcher, account, cart and the theme toggle. Tailwind switches it on at
		   md (768px), where it ran up to 95px past the viewport and the whole page scrolled
		   sideways on a tablet. Below 880px the burger stays in charge — it is already in the
		   markup and already clones these same links into its panel. */
		@media (max-width: 879px) {
			.travel-header .wp-block-navigation { display: none !important; }
			.travel-header #mobile-menu-btn { display: flex !important; }
			/* The panel itself carries md:hidden, which would keep it invisible when opened here. */
			.travel-header #mobile-menu:not(.hidden) { display: block !important; }
		}
	

/* ---- inc/discovery.php:461 travel_destmap_styles (priority 22) ---- */
		.travel-destmap { margin: 2rem 0; }
		.travel-destmap__title { margin: 0 0 0.75rem; font-family: Space Grotesk, sans-serif; font-weight: 700; font-size: 1.125rem; color: #111827; }
		html.dark .travel-destmap__title { color: #f9fafb; }
		.travel-destmap__canvas { width: 100%; height: 460px; border-radius: 1rem; overflow: hidden; border: 1px solid #e5e7eb; background: #f3f4f6; z-index: 0; }
		html.dark .travel-destmap__canvas { border-color: rgba(255,255,255,0.1); background: #1a1a1a; }
		.post-content-area .travel-destmap__list,
		.travel-destmap__list { list-style: none; margin: 1rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
		.travel-destmap__list li { display: flex; align-items: baseline; gap: 0.35rem; padding: 0.45rem 0.85rem; font-size: 0.875rem; background: #ffffff; border: 1px solid #e5e7eb; border-radius: 9999px; }
		html.dark .travel-destmap__list li { background: #1a1a1a; border-color: rgba(255,255,255,0.12); }
		.post-content-area .travel-destmap__list a,
		.travel-destmap__list a { font-weight: 700; color: #4d7c0f; text-decoration: none; }
		.travel-destmap__list a:hover { text-decoration: underline; }
		html.dark .post-content-area .travel-destmap__list a,
		html.dark .travel-destmap__list a { color: #ccff00; }
		.travel-destmap__list span { font-size: 0.75rem; color: #6b7280; }
		html.dark .travel-destmap__list span { color: #9ca3af; }
		@media (max-width: 520px) { .travel-destmap__canvas { height: 320px; } }
	

/* ---- functions.php:3930 travel_site_title_dark_mode (priority 23) ---- */
		html.dark .wp-block-site-title, html.dark .wp-block-site-title a { color: #f9fafb !important; }
	

