/*
Theme Name: Sahara Fossils
Theme URI: https://example.com/
Author: Sahara Fossils
Author URI: https://example.com/
Description: Custom theme for Sahara Fossils website and Tours CPT.
Version: 0.1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: sahara-fossils
*/

/* Fonts */
@font-face { font-family: 'Inlander Rough'; src: url('assets/fonts/Inlander Rough.woff2') format('woff2'), url('assets/fonts/Inlander Rough.ttf') format('truetype'); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'Six Hands Brush'; src: url('assets/fonts/six-hands-brush.woff2') format('woff2'), url('assets/fonts/six-hands-brush.ttf') format('truetype'); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'Six Hands Web Black'; src: url('assets/fonts/Six Hands Web Black.woff2') format('woff2'), url('assets/fonts/Six Hands Web Black.ttf') format('truetype'); font-weight: 900; font-style: normal; font-display: swap; }
@font-face { font-family: 'Bricolage Grotesque'; src: url('assets/fonts/BricolageGrotesque-VariableFont_opsz,wdth,wght.woff2') format('woff2'), url('assets/fonts/BricolageGrotesque-VariableFont_opsz,wdth,wght.ttf') format('truetype'); font-weight: 100 900; font-style: normal; font-display: swap; }
@font-face { font-family: 'Nothing You Could Do'; src: url('assets/fonts/NothingYouCouldDo-Regular.woff2') format('woff2'), url('assets/fonts/NothingYouCouldDo-Regular.ttf') format('truetype'); font-weight: 400; font-style: normal; font-display: swap; }

:root {
  --sf-yellow-light-pastel: #F3E89D;
  --sf-yellow-darker-pastel: #FFF468;
  --sf-yellow: #FFD52D;
  --sf-brown-effect: #7F4C07;
  --sf-brown-dark: #8E4E21;
  --sf-brown-light: #A85126;
  --sf-orange-light-bg: #FFF3E7;
  --sf-header-green: #413C28;

  --sf-text: #2b2b2b;
  --sf-container: min(1200px, 92%);
}

/* Base resets */
html, body { margin: 0; padding: 0; }
body { font-family: 'Bricolage Grotesque', system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; color: var(--sf-text); background:#fff; }
a { color: inherit; }
img { max-width: 100%; height: auto; display: block; }

/* Helpers */
.container { width: var(--sf-container); margin-left: auto; margin-right: auto; }
.section-title { font-family: 'Six Hands Brush', cursive; color: var(--sf-yellow); filter: drop-shadow(1px 2px 0 var(--sf-brown-effect)); margin: 0 0 0px; font-size: clamp(26px, 4vw, 44px); text-align: center; }
.badge { display: inline-block; padding: 4px 10px; border-radius: 999px; background: var(--sf-yellow-light-pastel); font-size: 12px; margin-right: 6px; }
.price { font-weight: 900; font-family: 'Six Hands Web Black', system-ui; }

/* Header */
header.site-header { padding: 12px 0; background: var(--sf-header-green); color: #fff; position: sticky; top: 0; z-index: 1000; }
.site-title { font-weight: 700; font-size: 20px; margin: 0; color:#fff; text-decoration:none; }
.site-brand img { max-height: 44px; width:auto; display:block; }
.menu-toggle { display:none; background:none; color:#fff; border:0; font-size:28px; line-height:1; }
nav.primary-nav a { color:#fff; text-decoration: none; }
nav.primary-nav ul { list-style:none; margin:0; padding:0; display:flex; gap:16px; align-items:center; }
nav.primary-nav{ display:block; }
@media (max-width: 840px){ nav.primary-nav{ display:none; } }

/* Primary nav styling */
nav.primary-nav .menu a{ color:#fff; text-decoration:none; font-weight:600; }
nav.primary-nav .menu li{ list-style:none; }
@media (min-width: 841px){
  nav.primary-nav .menu{ display:flex; gap:16px; align-items:center; margin:0; padding:0; }
}

/* Mobile nav enhanced styles */
@media (max-width: 840px){
  nav.primary-nav{ border-top-left-radius: 12px; border-bottom-left-radius: 12px; }
  nav.primary-nav .menu{ margin:0; padding:0; }
  nav.primary-nav .menu li + li a{ border-top:1px solid rgba(255,255,255,.08); }
  nav.primary-nav .menu a{ font-family:'Inlander Rough', serif; letter-spacing:.3px; }
  .nav-close{ position:absolute; top:14px; right:14px; background:transparent; border:0; color:#fff; font-size:28px; line-height:1; cursor:pointer; padding:6px; border-radius:8px; }
  .nav-close:focus-visible{ outline:2px dashed var(--sf-yellow); outline-offset:2px; }
}

/* Burger menu */
.burger{ display:none; width:30px; height:22px; position:relative; cursor:pointer; }
.burger span{ position:absolute; left:0; right:0; height:3px; background:#fff; border-radius:2px; transition:transform .2s ease, opacity .2s ease; }
.burger span:nth-child(1){ top:0; }
.burger span:nth-child(2){ top:9px; }
.burger span:nth-child(3){ top:18px; }
.burger.is-open span:nth-child(1){ transform:translateY(9px) rotate(45deg); }
.burger.is-open span:nth-child(2){ opacity:0; }
.burger.is-open span:nth-child(3){ transform:translateY(-9px) rotate(-45deg); }

/* Mobile nav panel and backdrop */
@media (max-width: 840px){
  .burger{ display:block; }
  nav.primary-nav{ position:fixed; top:0; right:0; bottom:0; width:70%; max-width:360px; background: var(--sf-header-green); padding:80px 24px 24px; display:none; box-shadow: -8px 0 24px rgba(0,0,0,.3); }
  nav.primary-nav.is-open{ display:block; }
  nav.primary-nav ul{ display:block; }
  nav.primary-nav a{ display:block; padding:14px 0; font-size:18px; }
  .nav-backdrop{ position:fixed; inset:0; background: rgba(0,0,0,.35); display:block; }
  .nav-backdrop[hidden]{ display:none; }
}

/* Buttons */
.btn, .hero__cta, button, input[type="button"], input[type="submit"], .wp-block-button__link, .button { display: inline-block; background: var(--sf-brown-dark); color: var(--sf-yellow); text-decoration: none; padding: 15px 19px; border-radius: 10px; border: 0; font-family: 'Inlander Rough', serif; font-size: 19px; line-height: 1; box-shadow: inset 0 -5px 0 var(--sf-brown-light); transition: transform 0.12s ease, box-shadow .12s ease, filter .12s ease; position: relative; z-index: 1; cursor: pointer; }
.btn:hover, .hero__cta:hover, button:hover, input[type="button"]:hover, input[type="submit"]:hover, .wp-block-button__link:hover, .button:hover { transform: translateY(-1px); filter: brightness(1.02); }
.btn:active, .hero__cta:active, button:active, input[type="button"]:active, input[type="submit"]:active, .wp-block-button__link:active, .button:active { transform: translateY(1px); box-shadow: inset 0 -3px 0 var(--sf-brown-light); }
.btn:focus-visible, .hero__cta:focus-visible, button:focus-visible, input[type="button"]:focus-visible, input[type="submit"]:focus-visible, .wp-block-button__link:focus-visible, .button:focus-visible { outline: 2px dashed var(--sf-yellow); outline-offset: 3px; }

/* Hero */
.hero { position: relative; min-height: 70vh; display: grid; place-items: center; text-align:center; isolation: isolate; }
.hero::after{ content:""; position:absolute; inset:0; background: rgba(0,0,0,.2); z-index:0; }
.hero .hero__bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-1; }
.hero__wrap { width: var(--sf-container); margin: 0 auto; padding: 14vh 0 14vh; position: relative; z-index: 1; }
.hero__eyebrow { font-family: 'Nothing You Could Do', cursive; font-size: clamp(18px, 2.2vw, 26px); color:#fff; margin:0 0 8px; text-shadow: 0 1px 6px rgba(0,0,0,.35); }
/* Separate hero titles */
.hero-title-sahara{ font-family:'Six Hands Brush', cursive; color: var(--sf-yellow-light-pastel); margin:0; line-height:.52; letter-spacing:1px; font-size: 71px; filter: drop-shadow(4px 4px 0 var(--sf-brown-effect)); white-space: nowrap; }
.hero-title-fossil{ font-family:'Inlander Rough', serif; color: var(--sf-yellow-darker-pastel); margin:0; line-height:.82; letter-spacing:1px; font-size: 100px; filter: drop-shadow(4px 4px 0 var(--sf-brown-effect)); white-space: nowrap; }
.hero-title-hunting{ font-family:'Inlander Rough', serif; color: var(--sf-yellow); margin:0; line-height:.82; letter-spacing:1px; font-size: 75px; filter: drop-shadow(4px 4px 0 var(--sf-brown-effect)); white-space: nowrap; }

.hero__subtitle { font-family: 'Six Hands Brush', cursive; color: #FFF; font-size: 43px; margin: -2px 0 12px; filter: drop-shadow(2px 2px 0 var(--sf-brown-effect)); }
.hero__desc { color: #fff; max-width: 780px; font-size: 19px; text-shadow: 0 1px 8px rgba(0,0,0,.45); margin-left: auto; margin-right: auto; filter: drop-shadow(1px 1px 0 var(--sf-brown-effect)); font-family: 'Bricolage Grotesque'; }

/* Explore section */
.explore{ padding: 28px 0 20px; background:#fff; }
.explore__grid{ display:grid; grid-template-columns: 1.2fr .8fr; grid-template-areas: 'title media' 'text media'; gap: 24px; align-items: center; }
.explore__title{ grid-area:title; }
.explore__text{ grid-area:text; }
.explore__media{ grid-area:media; display:flex; justify-content:flex-end; }
.explore__text p{ margin: 0 0 12px; font-size: 16px; line-height: 1.7; }
.explore__media img{ width:100%; max-width:520px; border-radius: 12px; box-shadow: 0 8px 24px rgba(0,0,0,.08); transform: rotate(180deg); transform-origin: center; }
@media (max-width: 960px){ .explore__grid{ grid-template-columns: 1fr; grid-template-areas: 'title' 'media' 'text'; } .explore__media{ justify-content:center; } .explore__media img{ transform:none; max-width: 100%;transform: rotate(180deg); } }

/* Cards for archive */
.tour-card { border: 1px solid #e6e6e6; border-radius: 8px; overflow: hidden; background: #fff; display: flex; flex-direction: column; }
.tour-card .tour-card__content { padding: 12px 14px; }
.tour-card .tour-card__title { font-size: 18px; margin: 8px 0; line-height: 1.3; }
.tour-card .tour-card__meta { font-size: 13px; color: #6b6b6b; }

/* Single */
.single-tour__header { padding: 28px 0; border-bottom: 1px solid #eee; }
.single-tour__gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.single-tour__meta { color: #6b6b6b; font-size: 14px; margin: 8px 0 16px; }
.booking-embed { margin-top: 24px; }

/* Responsive tweaks */
@media (max-width: 640px){
  .hero { min-height: 72vh; }
  .hero__wrap{ padding-top: 18vh; }
  .hero-title-sahara{ font-size: 48px; line-height:1.10; filter: drop-shadow(1px 3px 0 var(--sf-brown-effect));}
  .hero-title-fossil{ font-size: 70px; filter: drop-shadow(3px 4px 0 var(--sf-brown-effect)); }
  .hero-title-hunting{ font-size: 52px; line-height:.9; filter: drop-shadow(3px 4px 0 var(--sf-brown-effect)); }
  .hero__subtitle{ font-size: 30px;margin: -6px 0 12px; }
  .hero__desc{ margin-left: 20px; margin-right: 20px; font-size: 16px; }
  .btn, .hero__cta, button, input[type="button"], input[type="submit"], .wp-block-button__link, .button{ font-size: 18px; padding: 12px 18px; }
  .section-title{ font-size: 38px; }
}

/* About section */
.about{ padding: 32px 0; background:#fff; }
.about__grid{ display:grid; grid-template-columns: 1.1fr .9fr; grid-template-areas: 'title media' 'text media'; gap: 24px; align-items: center; }
.about__title{ grid-area:title; }
.about__text{ grid-area:text; }
.about__media{ grid-area:media; display:flex; justify-content:flex-end; }
.about__text p{ margin: 0 0 12px; font-size: 16px; line-height: 1.7; }
.about__media img{ width:100%; max-width:460px; border-radius: 12px; box-shadow: 0 8px 24px rgba(0,0,0,.08); transform: rotate(2.5deg); transform-origin: center; }
@media (max-width: 960px){ .about__grid{ grid-template-columns: 1fr; grid-template-areas: 'title' 'media' 'text'; } .about__media{ justify-content:center; } .about__media img{ transform:none; max-width: 100%; } }

/* Tour cards */
.tour-archive{ display:grid; grid-template-columns:repeat(12, 1fr); gap:18px; }
.tour-card{ position:relative; border-radius:14px; overflow:hidden; box-shadow: 0 8px 24px rgba(0,0,0,.08); grid-column: span 4; aspect-ratio: 2 / 2.5; }
.tour-card.is-wide{ grid-column: span 8; aspect-ratio: 2.5 / 2; }
.tour-card.is-tall{ grid-column: span 4; aspect-ratio: 2 / 2.5; }
@media (max-width: 860px){ .tour-archive{ grid-template-columns:repeat(6,1fr);} .tour-card, .tour-card.is-wide, .tour-card.is-tall{ grid-column: span 6; } }
@media (max-width: 640px){ .tour-archive{ grid-template-columns:repeat(2,1fr);} .tour-card, .tour-card.is-wide, .tour-card.is-tall{ grid-column: span 2; aspect-ratio: 2 / 2.5; } }

.tour-card a{ color:inherit; text-decoration:none; display:block; height:100%; position:relative; }
.tour-card__image{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
/* Overlay starts around the middle to avoid darkening the whole image */
.tour-card__overlay{ position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,0.00) 0%, rgba(0,0,0,0.00) 45%, rgba(0,0,0,0.45) 80%, rgba(0,0,0,0.85) 100%); }
.tour-card__content{ position:absolute; left:0; right:0; bottom:0; padding:14px 14px 12px; color:#fff; }
.tour-card__badges{ display:flex; flex-wrap:wrap; margin:0 0 6px; gap:0; }
.tour-card__badge{ background: #6e5a3b; color: #fff; padding:2px 8px; border-radius:999px; font-size:12px; }
.tour-card__badge--sticker{ position:absolute; right:10px; top:10px; background: var(--sf-yellow); color:#231c09; border-radius: 999px; font-weight:700; padding:6px 10px; box-shadow: 0 2px 0 var(--sf-brown-effect); z-index:2; }
.tour-card__title{ font-family:'Inlander Rough', serif; letter-spacing: .5px; font-size:14px; margin:8px 0; line-height:1.3; color:#fff; filter: drop-shadow(2px 2px 0 var(--sf-brown-effect)); }
.tour-card__foot{ display:flex; align-items:flex-end; justify-content:flex-end; margin-top:8px; }
.tour-card__price{ display:flex; align-items:flex-end; gap:2px; color:#fff; }
.tour-card__price .tour-card__from{ font-size:13px; opacity:.95; font-family:'Bricolage Grotesque', system-ui; }
.tour-card__price .tour-card__amount{ font-family:'Six Hands Web Black'; font-size:24px; line-height:1; color:#fff; }
@media (max-width:640px){ .tour-card__title{ font-size:12px; margin:8px 0; line-height:1.3; } }

/* Title size overrides to ensure mobile rules win over older styles */
.tour-card.tour-card .tour-card__title{ font-size:14px; margin:8px 0; line-height:1.3; }
@media (max-width:640px){
  .tour-card.tour-card .tour-card__title{ font-size:12px; margin:8px 0; line-height:1.3; }
}

/* Tour slider */
.tour-slider{ display:flex; gap:14px; overflow-x:auto; padding-bottom:6px; scroll-snap-type:x mandatory; margin-top: 8px; }
.tour-slider::-webkit-scrollbar{ height:8px; }
.tour-slider::-webkit-scrollbar-thumb{ background: rgba(0,0,0,.2); border-radius:99px; }
.tour-slider .tour-card{ flex: 0 0 220px; aspect-ratio: 2 / 2.5; scroll-snap-align:start; }
@media (min-width:641px){ .tour-slider .tour-card{ flex-basis: 260px; } }

/* Period badge colors */
.tour-card__badge[data-term="Devonian"]{ background: #89933C; color:#fff; }
.tour-card__badge[data-term="Cretaceous"]{ background: #77542C; color:#fff; }

/* Highlight cards (under hero) */
.feature-cards{ margin-top: -28px; margin-bottom: 10px; }
.highlight-cards{ display:flex; justify-content:center; align-items:flex-start; gap:0px; flex-wrap:nowrap; }
.highlight-card{ position:relative; border-radius:18px; width:150px; height:100px; padding:0; color: var(--sf-yellow); background: var(--main); box-shadow: inset 0 -5px 0 var(--accent); overflow:visible; transform: rotate(var(--rot)) translateY(var(--ty, 0)); }
/* tighten spacing between cards */
.highlight-card + .highlight-card{ margin-left: -8px; }
.highlight-card__inner{ height:100%; width:100%; display:grid; place-items:center; text-align:center; }
.highlight-card__title{ margin:0; font-family:'Six Hands Brush', cursive; font-size:24px; line-height:1.1; }
.highlight-amount{ font-family:'Six Hands Web Black'; font-size:45px; color:#fff; }
/* Color pairs via CSS variables + rotation per card + vertical offsets for staggered look */
.highlight-card.is-1{ --main:#635F00; --accent:#8E8A16; --rot:4deg; --ty:0px; }
.highlight-card.is-2{ --main:#8E4E21; --accent:#A85126; --rot:-3deg; --ty:0px; }
.highlight-card.is-3{ --main:#646728; --accent:#89933C; --rot:3deg; --ty:6px; }
.highlight-card.is-4{ --main:#484726; --accent:#706C32; --rot:-3deg; --ty:0px; }
@media (max-width:960px){ .highlight-cards{ flex-wrap:wrap; } .highlight-card{ width:180px; height:122px; } }
@media (max-width:640px){ .highlight-cards{ flex-wrap:nowrap; justify-content:center; gap:0; } .highlight-card{  height: 75px; transform: rotate(var(--rot)); } .highlight-card + .highlight-card{ margin-left:-6px; } .highlight-card__title{ font-size:17px; } .highlight-amount{ font-size:35px; } }

/* Reviews */
.reviews-header{ background:#fff; border:1px solid #f0eae3; border-radius:16px; padding:10px 14px; display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; box-shadow: 0 8px 24px rgba(0,0,0,.05); }
.reviews-header__left{ display:flex; align-items:center; gap:1px; }
.reviews-header__logo{ height:55px; width:auto; display:block; }
.reviews-header__title{ font-weight:800; font-size:18px; margin-right:8px; }
.reviews-header__score{ font-weight:800; font-size:18px; margin-left:6px; }
/* single green dot indicator */
.reviews-header__dot{ display:inline-block; width:13px; height:13px; border-radius:50%; background:#259729; margin-left:6px; }

.reviews-grid{ display:grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap:16px; }
.review-card{ background:#fff; border:1px solid #f0eae3; border-radius:16px; padding:14px; box-shadow: 0 8px 24px rgba(0,0,0,.05); }
.review-card__top{ display:flex; align-items:center; gap:10px; margin-bottom:6px; }
.review-card__avatar-wrap{ width:42px; height:42px; border-radius:50%; overflow:hidden; display:grid; place-items:center; }
.review-card__avatar{ width:100%; height:100%; object-fit:cover; border-radius:50%; }
.review-card__avatar.placeholder{ width:24px; height:24px; border-radius:50%; display:inline-block; }
/* Unique avatar placeholder colors per card */
.review-card--c1 .review-card__avatar-wrap{ background:#f3d0c9; }
.review-card--c2 .review-card__avatar-wrap{ background:#cfe7f3; }
.review-card--c3 .review-card__avatar-wrap{ background:#d9f3cf; }
.review-card--c4 .review-card__avatar-wrap{ background:#efe0f8; }

.review-card__author{ font-weight:800; font-size:14px; }
.review-card__subtitle{ font-size:12px; color:#6f6f6f; }
/* remove bullet */
.review-card__subtitle:before{ display:none; }
.review-card__dots{ margin:6px 0; }
/* requested dot sizes/colors */
.review-card__stars .dot.on{ background:#259729; }
.review-card__stars .dot{ display:inline-block; width:13px; height:13px; border-radius:50%; background:#d6e7c7; margin-right:2px; }

.review-card__title{ margin:6px 0; font-size:16px; font-weight:800; }
.review-card__text{ margin:0; font-size:14px; line-height:1.6; color:#3d3d3d; }
.reviews-cta{ text-align:center; margin-top:16px; }
@media (max-width:960px){ .reviews-header{ flex-direction:column; align-items:flex-start; gap:8px; } .reviews-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width:640px){ .reviews-grid{ grid-template-columns: 1fr; } }
@media (max-width:640px){
  .reviews-header{ flex-direction:row; align-items:center; gap:6px; padding:8px 10px; }
  .reviews-header__logo{ height:38px; }
  .reviews-header__title{ font-size:16px; margin-right:6px; }
  .reviews-header__score{ font-size:16px; }
  .reviews-header__right .btn{ padding:8px 12px; font-size:16px; }
  .reviews-grid{ grid-template-columns: 1fr; }
}

/* Mobile tweaks for reviews header button */
@media (max-width: 640px) {
  .reviews-header__right .btn { padding: 8px 12px; font-size: 13px; }
}

/* Mobile tweaks for title */
@media (max-width: 640px) {
  .reviews-header__title { font-size: 14px; margin-left: 2px; margin-right: 0px; }
}

/* Mobile logo height */
@media (max-width: 640px) {
  .reviews-header__logo { height: 40px; }
}

/* Single dot in header */
.reviews-header__dot { display: inline-block; width: 11px; height: 11px; border-radius: 50%; background: #259729; margin-left: 2px; }

/* Rating dots margin */
.review-card__dots { margin: 12px 0px; }

/* Top block spacing */
.review-card__top { display: flex; align-items: center; gap: 10px; margin-bottom: 19px; }

/* Tour filter bar */
.tour-filterbar{ display:flex; gap:8px; margin:8px 0 12px; }
.filter-btn{ background:#eee6d7; border:1px solid #e1d7c1; color:#413C28; padding:8px 12px; border-radius:999px; cursor:pointer; font-family:'Inlander Rough', serif; font-size:16px; box-shadow: inset 0 -2px 0 var(--sf-brown-light);}
.filter-btn.is-active{ background: var(--sf-brown-dark); color: var(--sf-yellow); box-shadow: inset 0 -4px 0 var(--sf-brown-light); }

/* Hide cards when filtered */
.tour-card[hidden]{ display:none !important; }

/* Balanced section spacings */
.feature-cards{ margin-top: -28px; margin-bottom: 10px; }
.explore{ padding: 28px 0 20px; background:#fff; }
.explore__grid{ gap: 24px; }
.home-tours{ padding: 24px 0 28px; background: var(--sf-orange-light-bg);}
.about{ padding: 32px 0; background:#fff; }
.about__grid{ gap: 24px; }
.home-testimonials{ padding: 28px 0 32px !important; }

/* Add slight margin under section headings without changing global title rule */
.explore .section-title, .home-tours .section-title, .about .section-title, .home-testimonials .section-title{ margin-bottom: 10px; }

/* Slight top spacing before sliders/grids */
.tour-slider{ margin-top: 8px; }

/* Full-card clickable link */
.tour-card{ position:relative; border-radius:14px; overflow:hidden; box-shadow: 0 8px 24px rgba(0,0,0,.08); grid-column: span 4; aspect-ratio: 2 / 2.5; }
.tour-card__link{ position:absolute; inset:0; z-index:3; text-indent:-9999px; }

/* Minimal close button overrides */
.nav-close{ display:inline; background:transparent; border:0; border-radius:0; padding:0; margin:0; box-shadow:none; color:#fff; font-size:22px; line-height:1; }
.nav-close:hover{ opacity:.9; }
@media (min-width: 841px){ .nav-close{ display:none; } }

/* Desktop primary menu styling */
@media (min-width: 841px){
  nav.primary-nav .menu a{ padding:10px 12px; border-radius:10px; font-family:'Inlander Rough', serif; color:#fff; }
  nav.primary-nav .menu a:hover{ background: rgba(255,255,255,.08); }
  nav.primary-nav .menu a:focus-visible{ outline:2px dashed var(--sf-yellow); outline-offset:3px; }
}

/* Native smooth scrolling fallback and sticky offset */
html{ scroll-behavior: smooth; scroll-padding-top: var(--sticky-offset, 72px); }
/* Ensure sections account for sticky header when using #hash navigation */
#explore, #tours, #about, #reviews{ scroll-margin-top: var(--sticky-offset, 72px); }

/* Lock body when menu is open */
body.menu-open{ overflow:hidden; }

/* Stronger stacking and click-through prevention for mobile drawer */
@media (max-width: 840px){
  nav.primary-nav{ z-index:9999; }
  .nav-backdrop{ z-index:9998; }
  body.menu-open .site-header,
  body.menu-open .site-main,
  body.menu-open .site-footer{ pointer-events: none; }
  body.menu-open nav.primary-nav,
  body.menu-open .nav-backdrop{ pointer-events: auto; }
}

/* Prevent jump-to-top when opening drawer: do not fix body position */
body.menu-open{ position: static !important; top: auto !important; width: auto !important; }

/* Tour fullscreen popup */
.tour-popup-overlay{ position:fixed; inset:0; background:rgba(55,47,28,.55); display:none; align-items:center; justify-content:center; z-index:10000; padding:24px; }
.tour-popup-overlay.is-open{ display:flex; }
.tour-popup-panel{ background:#fff; width:100%; max-width: 1100px; max-height: calc(100vh - 48px); overflow:auto; box-shadow: 0 20px 60px rgba(0,0,0,.35); position:relative; border-radius:16px; }
.tour-popup__close{ position:absolute; top:12px; right:12px; border:0; background:transparent; width:36px; height:36px; display:grid; place-items:center; cursor:pointer; z-index:20; padding:0; box-shadow:none; }
.tour-popup__close::before,.tour-popup__close::after{ content:none !important; }
.tour-popup__close svg{ width:22px; height:22px; stroke:#3b3b3b; stroke-width:2.2; stroke-linecap:round; fill:none; }
.tour-popup{ background:#FFF3E7; padding:70px; }

/* Ensure image never covers the close button */
.tour-popup__media{ position:relative; z-index:0; }

@media (max-width:960px){ .tour-popup{ padding:24px; } .tour-popup__close{ top:8px; right:8px; width:34px; height:34px; } }

/* Popup refined layout */
.tour-popup-overlay{ background: rgba(55,47,28,.55); }
.tour-popup-panel{ max-width: 1100px; }
.tour-popup{ background:#FFF3E7; }
.tour-popup__head{ border:0; padding-bottom:0; display:grid; grid-template-columns: 1fr 1fr; gap:18px; align-items:start; }
.tour-popup__badges{ display:flex; gap:6px; margin-bottom:6px; }
.tour-popup__subtitle{ color:#6b665a; margin:4px 0 10px; }
.tour-popup__facts{ list-style:none; padding:0; margin:8px 0 0; color:#2b2b2b; font-size:14px; }
.tour-popup__facts li{ margin:3px 0; }
.tour-popup__price{ font-family:'Six Hands Web Black'; font-size:28px; margin:8px 0; }
.tour-popup__cta .btn{ margin-top:6px; }
.tour-popup__media{ grid-column:1 / 2; }
.tour-popup__media img{ border-radius:14px; }
.tour-popup__body, .tour-popup__booking{ background:#fff; border-radius:14px; padding:14px; margin-top:16px; }
@media (max-width:860px){ .tour-popup__head{ grid-template-columns: 1fr; } }

/* Strict two-column hero for popup */
.tour-popup__head{ display:grid; grid-template-columns: 380px 1fr; gap:22px; align-items:start; }
.tour-popup__media{ grid-column:1; }
.tour-popup__media img{ display:block; width:100%; height:auto; border-radius:18px; box-shadow: 0 10px 24px rgba(0,0,0,.12); }
.tour-popup__info{ grid-column:2; }
.tour-popup__title{ font-size:26px; margin:6px 0; }
.tour-popup__desc{ color:#3e3b32; font-size:14px; margin:6px 0 10px; }
.tour-popup__facts{ display:block; margin:10px 0 12px; }
.tour-popup__price{ font-size:32px; margin:10px 0; }
@media (max-width:960px){ .tour-popup__head{ grid-template-columns: 1fr; } .tour-popup__media{ grid-column:auto; } .tour-popup__info{ grid-column:auto; } }

/* Popup spacing + image ratio like tour cards */
.tour-popup{ background:#FFF3E7; padding:70px; }
.tour-popup__head{ grid-template-columns: 380px 1fr; gap:26px; }
.tour-popup__media{ aspect-ratio: 2 / 2.5; overflow:hidden; border-radius:18px; box-shadow: 0 10px 24px rgba(0,0,0,.12); }
.tour-popup__media img{ width:100%; height:100%; object-fit:cover; border-radius:18px; box-shadow:none; }

/* Details/facts vertical list with icons */
.tour-popup__facts{ list-style:none; padding:0; margin:16px 0 12px; border:0; background:transparent; display:block; }
.tour-popup__facts li{ display:flex; align-items:center; gap:10px; padding:10px 0; border-bottom:1px solid #eadfce; }
.tour-popup__facts li:last-child{ border-bottom:0; }
.tour-popup__facts li::before{ content:""; display:inline-block; width:18px; height:18px; filter: drop-shadow(0 1px 0 rgba(0,0,0,.08)); }
.tour-popup__facts li.fact--duration::before{ content:"⏱"; }
.tour-popup__facts li.fact--departure::before{ content:"📍"; }
.tour-popup__facts li.fact--type::before{ content:"🏷"; }
.tour-popup__facts li.fact--max::before{ content:"👥"; }
.tour-popup__facts .fact-label{ font-weight:800; color:#3a3528; min-width:120px; }
.tour-popup__facts .fact-value{ font-weight:700; color:#3a3528; }

/* Price and CTA spacing */
.tour-popup__price{ font-size:34px; margin:14px 0 8px; }
.tour-popup__cta{ margin-top:8px; }

/* Section cards: remove white backgrounds */
.tour-popup__body, .tour-popup__booking{ background:transparent; border:0; padding:0; margin-top:22px; }
@media (max-width:960px){ .tour-popup{ padding:24px; } .tour-popup__head{ grid-template-columns:1fr; gap:18px; } }

/* Includes and FAQs */
.tour-popup__includes{ margin:8px 0 0; padding-left:18px; }
.tour-popup__includes li{ margin:4px 0; }
.tour-popup__faqs{ margin-top:6px; }
.tour-popup__faqs details{ border-top:1px solid #eadfce; padding:8px 0; }
.tour-popup__faqs details:first-child{ border-top:0; }
.tour-popup__faqs summary{ cursor:pointer; font-weight:800; list-style:none; }
.tour-popup__faqs .faq-body{ margin-top:6px; color:#3e3b32; }

/* Align badges and title area */
.tour-popup__badges{ display:flex; gap:6px; flex-wrap:nowrap; overflow:auto; padding-bottom:4px; }
.tour-popup__title{ margin-top:4px; }

/* Close button tweaks */
.tour-popup__close{ position:absolute; top:12px; right:12px; border:0; background:transparent; width:36px; height:36px; display:grid; place-items:center; cursor:pointer; z-index:20; padding:0; box-shadow:none; }
.tour-popup__close::before,.tour-popup__close::after{ content:none !important; }
.tour-popup__close svg{ width:22px; height:22px; stroke:#3b3b3b; stroke-width:2.2; stroke-linecap:round; fill:none; }
@media (max-width:640px){ .tour-popup__close{ top:10px; right:10px; width:34px; height:34px; } }

/* Prevent image/close collision on mobile by adding a little top gap */
@media (max-width:640px){ .tour-popup__head{ margin-top:26px; } }

/* Footer */
.site-footer{ padding: 20px 0px 0 0px; border-top:1px solid #eee2d3; background:#fff; color:#3a3528; }
.site-footer a{ color:#3a3528; text-decoration:none; }
.site-footer a:hover{ text-decoration:underline; }
@media (max-width:640px){
  .site-footer .footer__inner{ flex-direction: column-reverse !important; align-items:center !important; text-align:center; gap:10px; }
  .site-footer .footer-legal{ width:100%; display:flex !important; flex-direction:column; align-items:center; justify-content:center; gap:8px; }
  .site-footer .footer-legal a{ display:inline-block; color: var(--sf-brown-dark) !important; font-weight:700;  letter-spacing:.2px; }
  .site-footer .footer-legal a:hover{ filter:none; }
  .site-footer .footer-legal span{ display:none; }
}

/* Footer image banner */
.footer-image img{ width:100%; height:auto; display:block; object-fit:cover; }

/* Performance: avoid delaying the above-the-fold hero */
/* Removed content-visibility on hero to improve LCP */
/* Note: image lazy-loading is handled via HTML attributes where needed */

