/* Shared typography and navigation for every page. */
:root { --site-ink: #0b2931; --site-gutter: clamp(24px, 5.2vw, 100px); }
body, button, input, select, textarea { font-family: var(--font-body); }
h1, h2, h3, h4, h5, h6 { font-family: var(--font-head); }
.escape-copy h1, .trip-planner h2, .planner-result h3 { font-family: var(--font-head); }
.escape-copy h1 { font-family: 'Playfair Display', serif; font-weight: 400; line-height: 1.08; }
.site-nav { position: relative; height: 76px; padding: 0 var(--site-gutter); gap: 24px; background: #faf9f7; border: 0; color: var(--site-ink); }
.site-nav.scrolled { box-shadow: none; }
.home-page .site-nav { position: absolute; inset: 0 0 auto; background: transparent; }
.site-brand { display: flex; align-items: center; gap: 10px; flex-shrink: 0; color: var(--site-ink); }
.site-brand svg { width: 34px; height: 27px; fill: none; stroke: #225950; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.site-brand span { font: 400 clamp(21px, 2.25vw, 30px)/1.2 var(--font-head); letter-spacing: -.8px; }
.site-links { gap: clamp(20px, 3.3vw, 50px); }
.site-links a, .site-nav-actions a { color: var(--site-ink); font-size: 12px; font-weight: 400; white-space: nowrap; }
.site-nav-actions { display: flex; align-items: center; gap: 24px; }
.site-nav-actions .site-plan-link { padding: 12px 23px; border-radius: 28px; background: #193d2d; color: white; }
.site-links a:hover, .site-nav-actions > a:not(.site-plan-link):hover { color: #286963; }
.site-plan-link:hover { background: #28543f; }
.mobile-nav-header { gap: 8px; }
.mobile-nav-header .site-brand { gap: 6px; }
.mobile-nav-header .site-brand span { font-size: 21px; }
.mobile-nav-header .site-brand svg { width: 25px; }
.mobile-nav-close { flex-shrink: 0; }
.mobile-nav-cta .btn-dark { background: #193d2d; }
.mobile-nav:not(.open) { visibility: hidden; }
.footer-brand .site-brand { color: white; margin-bottom: 16px; }
.footer-brand .site-brand svg { stroke: #a9cbc1; }
.footer-brand .site-brand span { font-size: 22px; }
.footer-brand p { color: #aab4b0; }
.footer-col h5 { font-family: var(--font-head); font-size: 16px; font-weight: 600; text-transform: none; letter-spacing: 0; }
.footer-inner { grid-template-columns: minmax(245px, 1.5fr) repeat(4, minmax(0, 1fr)); gap: 28px; }
:is(a, button, select, input, textarea):focus-visible { outline: 2px solid #2b777a; outline-offset: 5px; }
@media (max-width: 1150px) {
  .site-nav { height: 62px; gap: 18px; }
  .site-brand span { font-size: 23px; }
  .site-brand svg { width: 30px; }
  .site-links { gap: 23px; }
  .site-links a, .site-nav-actions a { font-size: 10px; }
  .site-nav-actions { gap: 20px; }
  .site-nav-actions .site-plan-link { padding: 11px 19px; }
}
@media (max-width: 1000px) {
  .site-links { display: none !important; }
  .site-nav .nav-hamburger { display: flex; }
  .site-nav-actions { margin-left: auto; }
  .site-nav-actions > a:not(.site-plan-link) { display: none; }
  .footer-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) { .footer-inner { grid-template-columns: 1fr; } }
@media (max-width: 540px) {
  :root { --site-gutter: 22px; }
  .site-brand { gap: 7px; }
  .site-brand span { font-size: 21px; }
  .site-brand svg { width: 27px; }
  .site-nav-actions { display: none; }
}

/* One primary accent shared by links, buttons, filters and calls to action. */
a { color: var(--accent); }
.site-links a, .site-nav-actions a, .mobile-nav-links a,
.mobile-tour-link, .btn-ghost, .btn-white, .planner-browse,
.mega-view-all, .mega-all-link { color: var(--accent); }
.site-links a:hover, .site-nav-actions > a:not(.site-plan-link):hover,
.mobile-nav-links a:hover, .btn-ghost:hover { color: var(--accent-hover); }
.btn-dark, .btn-green, .site-nav-actions .site-plan-link,
.mobile-nav-cta .btn-dark, .enquiry-card .btn-submit,
.escape-primary, .find-trip, .btn-ghost .arrow { background: var(--accent); color: white; }
.btn-dark:hover, .btn-green:hover, .site-nav-actions .site-plan-link:hover,
.mobile-nav-cta .btn-dark:hover, .enquiry-card .btn-submit:hover,
.escape-primary:hover, .find-trip:hover { background: var(--accent-hover); color: white; }
.btn-outline, .escape-secondary { border-color: var(--accent); color: var(--accent); }
.btn-outline:hover, .escape-secondary:hover { background: var(--accent); color: white; }
.tours-activity-filter .filter-btn.active,
.tours-activity-filter .filter-btn:hover { background: var(--accent); border-color: var(--accent); color: white; }
.cta-inner { background: var(--accent); }
.footer-col a { color: #a9cbc1; }
.footer-col a:hover { color: white; }
.tour-card, .blog-card { color: var(--black); }
.tour-card .btn-ghost, .blog-card .btn-ghost { color: var(--accent); }
.tour-card:hover h4, .blog-card:hover h3 { color: var(--accent); }
.wa-float, .wa-float:hover { background: var(--accent); }
.tour-card-img { height: 280px; }
.tour-card-body { padding: 24px; }
.tour-card-body h4 { font-size: 1.25rem; line-height: 1.35; }
.tours-category-grid { gap: 24px; }
@media (max-width: 900px) { .tour-card-img { height: 250px; } }
@media (max-width: 600px) { .tour-card-img { height: 240px; } }

/* Headlines share the homepage hero's regular Playfair weight. */
h1, h2, h3, h4, h5, h6,
h1 *, h2 *, h3 *, h4 *, h5 *, h6 * { font-weight: 400 !important; }
.lucide { display: inline-block; width: 1.15em; height: 1.15em; vertical-align: -.18em; flex-shrink: 0; fill: none; stroke: currentColor; }
.nav-hamburger .lucide { width: 24px; height: 24px; }
.mobile-nav-close .lucide { width: 20px; height: 20px; }
.wa-float .lucide { width: 28px; height: 28px; fill: none; stroke: white; }
.star .lucide, .review-stars .lucide { fill: currentColor; }
.tips-icon .lucide, .custom-idea-icon .lucide, .accom-icon .lucide, .amenity-icon .lucide { width: 1em; height: 1em; }
.btn-ghost .arrow .lucide { width: 16px; height: 16px; }
.video-play-btn .lucide { width: 24px; height: 24px; }
.escape-button .lucide { width: 16px; height: 16px; }
.planner-field > .lucide { width: 19px; height: 19px; }
button.faq-question::after { content: ""; width: 18px; height: 18px; background: currentColor; mask: url('../assets/icons/lucide/plus.svg') center / contain no-repeat; }
.faq-item.open button.faq-question::after { content: ""; transform: rotate(45deg); }
.tour-highlights li.hi-check::before { content: ""; mask: url('../assets/icons/lucide/check.svg') center / contain no-repeat; border-radius: 0; background: var(--accent); }
