/* Wander in France - marketing site
   Brand: dark brown #432812 | sage-grey #59615F | cream #F7EADF
   Type:  Plus Jakarta Sans (brand sans) + Noto Serif (editorial display)
   Static, no build step. Edit copy directly in index.html.
   ---------------------------------------------------------------- */

:root {
  /* Brand palette */
  --brown:        #432812;
  --brown-mid:    #735238;
  --sage:         #59615F;
  --cream:        #F7EADF;
  --cream-soft:   #FBF4EC;
  --border:       #E0CEBF;
  --white:        #FFFFFF;
  --ink:          #2C1A0C;
  --muted:        #6B5947;

  /* Accent - warm terracotta, used sparingly for CTAs */
  --accent:       #B05C36;
  --accent-dark:  #95492A;

  --font-sans:  'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
  --font-serif: 'Noto Serif', Georgia, serif;

  --maxw: 1140px;
  --radius: 14px;
  --shadow: 0 18px 48px rgba(67, 40, 18, 0.12);
  --shadow-sm: 0 6px 20px rgba(67, 40, 18, 0.08);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
  font-family: var(--font-sans);
  color: var(--ink);
  background: var(--cream-soft);
  line-height: 1.6;
  font-size: 17px;
  -webkit-font-smoothing: antialiased;
}

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

a { color: var(--brown); text-decoration: none; }

.wrap { width: 100%; max-width: var(--maxw); margin: 0 auto; padding: 0 22px; }

.serif { font-family: var(--font-serif); }

/* ---- Buttons ---------------------------------------------------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-family: var(--font-sans); font-weight: 700; font-size: 16px;
  padding: 15px 28px; border-radius: 999px; border: 2px solid transparent;
  cursor: pointer; transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
  text-align: center; line-height: 1.1;
}
.btn-primary { background: var(--accent); color: var(--white); box-shadow: var(--shadow-sm); }
.btn-primary:hover { background: var(--accent-dark); transform: translateY(-2px); box-shadow: var(--shadow); }
.btn-ghost { background: transparent; color: var(--brown); border-color: var(--border); }
.btn-ghost:hover { background: var(--cream); border-color: var(--brown-mid); }
.btn-light { background: var(--cream); color: var(--brown); }
.btn-light:hover { background: var(--white); transform: translateY(-2px); }
.btn-lg { font-size: 17px; padding: 17px 34px; }

/* ---- Header ----------------------------------------------------- */
.site-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(251, 244, 236, 0.92);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--border);
}
.site-header .wrap { display: flex; align-items: center; justify-content: space-between; height: 70px; }
.brand { display: flex; align-items: center; gap: 10px; font-weight: 800; font-size: 19px; color: var(--brown); letter-spacing: -0.01em; }
.brand img { height: 34px; width: auto; }
/* Footer sits on dark brown: flip the dark V mark to cream */
.site-footer .brand img { filter: brightness(0) invert(1); opacity: .92; }
.nav { display: flex; align-items: center; gap: 28px; }
.nav a { font-weight: 600; font-size: 15px; color: var(--sage); transition: color .15s; }
.nav a:hover { color: var(--brown); }
.nav .btn { padding: 11px 22px; font-size: 15px; }
.nav-toggle { display: none; background: none; border: 0; cursor: pointer; padding: 8px; }
.nav-toggle span { display: block; width: 24px; height: 2px; background: var(--brown); margin: 5px 0; transition: .2s; }

/* ---- Hero ------------------------------------------------------- */
.hero {
  position: relative; color: var(--cream);
  min-height: 86vh; display: flex; align-items: flex-end;
  background: linear-gradient(180deg, rgba(40,22,8,.25) 0%, rgba(40,22,8,.30) 40%, rgba(40,22,8,.82) 100%),
              center / cover no-repeat var(--brown);
  background-image: linear-gradient(180deg, rgba(40,22,8,.25) 0%, rgba(40,22,8,.30) 40%, rgba(40,22,8,.82) 100%),
                    url('images/regions/main.jpg');
}
.hero__inner { padding: 0 0 64px; max-width: 760px; }
.hero__eyebrow {
  display: inline-block; font-weight: 700; font-size: 13px; letter-spacing: .14em;
  text-transform: uppercase; color: var(--cream);
  background: rgba(67,40,18,.45); border: 1px solid rgba(247,234,223,.3);
  padding: 7px 14px; border-radius: 999px; margin-bottom: 22px;
}
.hero h1 {
  font-family: var(--font-serif); font-weight: 600; line-height: 1.12;
  font-size: clamp(32px, 5.2vw, 56px); letter-spacing: -0.01em; margin-bottom: 22px;
  text-shadow: 0 2px 20px rgba(30,16,4,.4);
}
.hero h1 .accent { color: #F4C9A8; font-style: italic; }
.hero__lede { font-size: clamp(17px, 2.1vw, 21px); max-width: 620px; margin-bottom: 32px; color: #F2E4D6; }
.hero__cta { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }
.hero__note { font-size: 14px; color: #E8D6C5; margin-top: 18px; }

/* ---- Section scaffolding --------------------------------------- */
section { padding: 84px 0; }
.section-tag {
  font-weight: 700; font-size: 13px; letter-spacing: .12em; text-transform: uppercase;
  color: var(--accent); margin-bottom: 14px;
}
.section-head { max-width: 720px; margin-bottom: 48px; }
.section-head.center { margin-left: auto; margin-right: auto; text-align: center; }
h2 {
  font-family: var(--font-serif); font-weight: 600; line-height: 1.15;
  font-size: clamp(27px, 3.6vw, 40px); color: var(--brown); letter-spacing: -0.01em;
  margin-bottom: 16px;
}
h3 { font-family: var(--font-sans); font-weight: 700; font-size: 20px; color: var(--brown); margin-bottom: 8px; }
.lede { font-size: 19px; color: var(--sage); }

/* ---- Founder / problem ----------------------------------------- */
.founder { background: var(--cream); }
.founder__grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 56px; align-items: center; }
.founder blockquote {
  font-family: var(--font-serif); font-size: clamp(21px, 2.6vw, 27px); line-height: 1.45;
  color: var(--brown); font-style: italic; position: relative; padding-left: 26px;
  border-left: 3px solid var(--accent);
}
.founder cite { display: block; margin-top: 20px; font-style: normal; font-family: var(--font-sans); font-size: 15px; font-weight: 700; color: var(--sage); }
.founder__answer p { margin-bottom: 16px; color: var(--muted); }
.founder__answer p:last-child { margin-bottom: 0; }
.founder__answer strong { color: var(--brown); }

/* ---- Feature row (why different) ------------------------------- */
.features { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.feature {
  background: var(--white); border: 1px solid var(--border); border-radius: var(--radius);
  padding: 30px 26px; box-shadow: var(--shadow-sm);
}
.feature .ico { margin-bottom: 16px; display: block; color: var(--accent); }
.feature .ico svg { width: 34px; height: 34px; display: block; }
.feature p { color: var(--muted); font-size: 16px; }

/* ---- Regions ---------------------------------------------------- */
.regions { background: var(--cream); }
.region-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.region-card {
  position: relative; border-radius: var(--radius); overflow: hidden; aspect-ratio: 3/4;
  box-shadow: var(--shadow-sm); display: block;
}
.region-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.region-card:hover img { transform: scale(1.06); }
.region-card::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 35%, rgba(40,22,8,.78) 100%);
}
.region-card__label { position: absolute; left: 16px; bottom: 14px; z-index: 2; color: var(--cream); }
.region-card__name { display: block; font-family: var(--font-serif); font-size: 20px; font-weight: 600; line-height: 1.1; }
.region-card__sub { display: block; font-size: 13px; color: #EAD9C8; margin-top: 3px; }
.regions__foot { text-align: center; margin-top: 40px; color: var(--sage); }
.regions__foot strong { color: var(--brown); }

/* ---- What an itinerary looks like ------------------------------ */
.itin__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.itin__list { list-style: none; }
/* Direct children only, so nested .sublist items are not styled as timeline steps */
.itin__list > li { position: relative; padding: 0 0 22px 38px; }
.itin__list > li:not(:last-child)::before {
  content: ''; position: absolute; left: 12px; top: 28px; bottom: 0; width: 2px; background: var(--border);
}
.itin__list > li .dot {
  position: absolute; left: 0; top: 2px; width: 26px; height: 26px; border-radius: 50%;
  background: var(--accent); color: var(--white); font-weight: 700; font-size: 13px;
  display: flex; align-items: center; justify-content: center;
}
.itin__list > li > h3 { margin-bottom: 4px; }
.itin__list > li > p { color: var(--muted); font-size: 16px; }
.itin-card {
  background: var(--white); border: 1px solid var(--border); border-radius: var(--radius);
  box-shadow: var(--shadow); overflow: hidden;
}
.itin-card__head { background: var(--brown); color: var(--cream); padding: 18px 22px; }
.itin-card__head .day { font-size: 13px; letter-spacing: .1em; text-transform: uppercase; opacity: .8; }
.itin-card__head .place { font-family: var(--font-serif); font-size: 21px; }
.itin-card__body { padding: 8px 22px 18px; }
.itin-card__row { display: flex; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--border); }
.itin-card__row:last-child { border-bottom: 0; }
.itin-card__time { font-weight: 700; color: var(--accent); font-size: 14px; min-width: 64px; }
.itin-card__act h4 { font-size: 16px; font-weight: 700; color: var(--brown); margin-bottom: 2px; }
.itin-card__act p { font-size: 14px; color: var(--muted); }

/* ---- Walking tours --------------------------------------------- */
.tours { background: var(--brown); color: var(--cream); }
.tours h2 { color: var(--cream); }
.tours .section-tag { color: #F4C9A8; }
.tours__grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: 56px; align-items: center; }
.tours__lede { font-size: 19px; color: #ECDccb; margin-bottom: 24px; }
.tours__stats { display: flex; gap: 36px; margin: 28px 0 30px; }
.tours__stat .n { font-family: var(--font-serif); font-size: 34px; color: #F4C9A8; line-height: 1; }
.tours__stat .l { font-size: 14px; color: #D9C6B4; margin-top: 6px; }
.tours__media {
  border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow);
  aspect-ratio: 4/3; position: relative;
}
.tours__media img { width: 100%; height: 100%; object-fit: cover; }

/* ---- Get started ----------------------------------------------- */
.start__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.start-step { text-align: center; padding: 8px; }
.start-step .num {
  width: 48px; height: 48px; border-radius: 50%; background: var(--cream); color: var(--brown);
  font-family: var(--font-serif); font-size: 22px; font-weight: 600;
  display: flex; align-items: center; justify-content: center; margin: 0 auto 16px;
  border: 1px solid var(--border);
}
.start-step p { color: var(--muted); font-size: 16px; }

/* ---- Pricing strip --------------------------------------------- */
.pricing { background: var(--cream); }
.pricing__card {
  background: var(--white); border: 1px solid var(--border); border-radius: var(--radius);
  box-shadow: var(--shadow-sm); padding: 40px; max-width: 760px; margin: 0 auto; text-align: center;
}
.pricing__card h2 { margin-bottom: 12px; }
.pricing__card p { color: var(--muted); margin-bottom: 8px; }
.pricing__card .fine { font-size: 14px; color: var(--sage); margin-top: 18px; }

/* Transparent price points (homepage pricing strip) */
.price-points { display: flex; justify-content: center; flex-wrap: wrap; gap: 14px; margin: 26px 0 6px; }
.price-point {
  flex: 1 1 160px; max-width: 210px; border: 1px solid var(--border); border-radius: 12px;
  padding: 18px 16px; background: var(--cream-soft);
}
.price-point.featured { border: 2px solid var(--accent); }
.price-point .pp-name { display: block; font-weight: 700; font-size: 14px; color: var(--brown); }
.price-point .pp-price { display: block; font-family: var(--font-serif); font-size: 32px; color: var(--brown); line-height: 1.1; margin: 4px 0 3px; }
.price-point .pp-note { display: block; font-size: 13px; color: var(--muted); }

/* ---- Read next (blog) ------------------------------------------ */
.readnext__grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 24px; }
.post-card {
  border: 1px solid var(--border); border-radius: var(--radius); background: var(--white);
  padding: 30px; display: flex; flex-direction: column; justify-content: flex-end; min-height: 210px;
  transition: transform .15s ease, box-shadow .15s ease;
}
.post-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-sm); }
.post-card.feature-post { background: var(--brown); color: var(--cream); border-color: var(--brown); }
.post-card .kicker { font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--accent); margin-bottom: 10px; }
.post-card.feature-post .kicker { color: #F4C9A8; }
.post-card h3 { font-family: var(--font-serif); font-weight: 600; font-size: 22px; line-height: 1.2; }
.post-card.feature-post h3 { color: var(--cream); }
.post-card .arrow { margin-top: 14px; font-weight: 700; color: var(--accent); font-size: 15px; }
.post-card.feature-post .arrow { color: #F4C9A8; }

/* ---- Final CTA -------------------------------------------------- */
.final-cta { text-align: center; padding: 96px 0; }
.final-cta h2 { max-width: 680px; margin: 0 auto 18px; }
.final-cta p { color: var(--sage); font-size: 19px; max-width: 560px; margin: 0 auto 30px; }

/* ---- Footer ----------------------------------------------------- */
.site-footer { background: var(--brown); color: #E8D6C5; padding: 56px 0 36px; }
.site-footer .wrap { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 40px; }
.site-footer .brand { color: var(--cream); margin-bottom: 14px; }
.site-footer p { font-size: 15px; color: #CBB6A2; max-width: 320px; }
.site-footer h4 { font-size: 13px; letter-spacing: .1em; text-transform: uppercase; color: #F4C9A8; margin-bottom: 16px; }
.site-footer ul { list-style: none; }
.site-footer li { margin-bottom: 10px; }
.site-footer a { color: #E8D6C5; font-size: 15px; }
.site-footer a:hover { color: var(--cream); }
.site-footer__bar { border-top: 1px solid rgba(247,234,223,.16); margin-top: 40px; padding-top: 22px; font-size: 14px; color: #B49E8A; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 10px; }

/* Footer subscription band (injected by script.js on every page) */
.footer-sub { border-bottom: 1px solid rgba(247,234,223,.16); padding-bottom: 40px; margin-bottom: 40px; }
.footer-sub__inner { width: 100%; max-width: var(--maxw); margin: 0 auto; padding: 0 22px;
  display: grid; grid-template-columns: 1.4fr 1fr; gap: 40px; align-items: center; }
.footer-sub__text h4 { margin-bottom: 8px; }
.footer-sub__text p { color: #CBB6A2; max-width: 460px; margin: 0; }
.footer-sub__field { min-width: 0; }
.footer-sub .capture__form { display: flex; gap: 10px; flex-wrap: wrap; }
.footer-sub .capture__form input {
  flex: 1 1 200px; min-width: 0; font-family: var(--font-sans); font-size: 15px;
  padding: 12px 18px; border: 1px solid rgba(247,234,223,.24); border-radius: 999px;
  background: rgba(255,255,255,.06); color: var(--cream);
}
.footer-sub .capture__form input::placeholder { color: #B49E8A; }
.footer-sub .capture__form input:focus { outline: none; border-color: #F4C9A8; background: rgba(255,255,255,.1); }
.footer-sub .capture__msg { font-size: 14px; margin: 10px 0 0; min-height: 18px; color: #CBB6A2; }
.footer-sub .capture__msg.is-ok { color: #B7E0B0; }
.footer-sub .capture__msg.is-err { color: #F0B3A0; }

/* ================================================================
   Inner pages (About, etc.) — reusable beyond the homepage
   ================================================================ */

/* Compact page hero (not full-bleed) */
.page-hero { background: var(--cream); border-bottom: 1px solid var(--border); padding: 72px 0 64px; }
.page-hero .eyebrow {
  font-weight: 700; font-size: 13px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--accent); margin-bottom: 16px;
}
.page-hero h1 {
  font-family: var(--font-serif); font-weight: 600; line-height: 1.12;
  font-size: clamp(30px, 4.6vw, 50px); letter-spacing: -0.01em; color: var(--brown);
  max-width: 760px; margin-bottom: 18px;
}
.page-hero p { font-size: clamp(17px, 2vw, 20px); color: var(--sage); max-width: 640px; }

/* Story: prominent pull-quote + narrative */
.story__quote {
  font-family: var(--font-serif); font-style: italic; color: var(--brown);
  font-size: clamp(22px, 3vw, 31px); line-height: 1.4; max-width: 860px;
  margin: 0 auto 16px; text-align: center;
}
.story__cite { text-align: center; font-weight: 700; font-size: 15px; color: var(--sage); margin-bottom: 48px; }
.story__body { max-width: 720px; margin: 0 auto; }
.story__body p { margin-bottom: 20px; color: var(--muted); font-size: 18px; }
.story__body p:last-child { margin-bottom: 0; }
.story__body strong { color: var(--brown); }

/* Credibility: photo + knowledge */
.creds { background: var(--cream); }
.creds__grid { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 56px; align-items: center; }
.creds__photo {
  border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); background: var(--brown-mid);
  aspect-ratio: 4/5; display: flex; align-items: center; justify-content: center; color: var(--cream);
}
.creds__photo img { width: 100%; height: 100%; object-fit: cover; }
.creds__photo .placeholder { text-align: center; padding: 24px; font-size: 15px; opacity: .85; line-height: 1.5; }
.creds__list { list-style: none; margin-top: 24px; }
.creds__list li { position: relative; padding: 0 0 18px 32px; color: var(--muted); font-size: 17px; }
.creds__list li:last-child { padding-bottom: 0; }
.creds__list li::before {
  content: ''; position: absolute; left: 0; top: 9px; width: 12px; height: 12px;
  border-radius: 50%; background: var(--accent);
}
.creds__list strong { color: var(--brown); }

/* Process timeline sub-points (How it works) */
.how-steps { max-width: 760px; }
.sublist { list-style: none; margin-top: 12px; }
.sublist li { position: relative; padding: 5px 0 5px 22px; color: var(--muted); font-size: 16px; }
.sublist li::before {
  content: ''; position: absolute; left: 0; top: 13px; width: 9px; height: 2px; background: var(--accent);
}

/* Centred sample-day card */
.sample-wrap { max-width: 560px; margin: 0 auto; }
.sample-note { text-align: center; color: var(--sage); font-size: 15px; margin-top: 18px; }

.itin-screenshots { max-width: 780px; margin: 0 auto; border-radius: 12px; border: 1px solid var(--border); box-shadow: 0 4px 24px rgba(0,0,0,.10); overflow: hidden; }
.itin-screenshots__intro { width: 100%; display: block; }
.itin-screenshots__day-wrap { border-top: 1px solid var(--border); }
.itin-screenshots__day { width: 100%; display: block; }

/* FAQ accordion (no JS, native <details>) */
.faq { max-width: 760px; margin: 0 auto; }
.faq details { border-bottom: 1px solid var(--border); }
.faq details:first-of-type { border-top: 1px solid var(--border); }
.faq summary {
  list-style: none; cursor: pointer; padding: 22px 40px 22px 0;
  font-weight: 700; font-size: 18px; color: var(--brown); position: relative;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: '+'; position: absolute; right: 4px; top: 17px;
  font-size: 27px; font-weight: 400; line-height: 1; color: var(--accent);
}
.faq details[open] summary::after { content: '\2212'; }
.faq details > p { padding: 0 40px 22px 0; margin: 0; color: var(--muted); font-size: 17px; }
.faq details > p a { color: var(--accent); font-weight: 700; }

/* ---- Blog index ------------------------------------------------ */
.blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.blog-card {
  display: flex; flex-direction: column; background: var(--white);
  border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden;
  box-shadow: var(--shadow-sm); transition: transform .15s ease, box-shadow .15s ease;
}
.blog-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); }
.blog-card__img { aspect-ratio: 16 / 10; overflow: hidden; background: var(--cream); }
.blog-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.blog-card:hover .blog-card__img img { transform: scale(1.05); }
.blog-card__body { padding: 20px 22px 24px; display: flex; flex-direction: column; flex: 1 1 auto; }
.blog-card__date { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--accent); margin-bottom: 9px; }
.blog-card__title { font-family: var(--font-serif); font-weight: 600; font-size: 20px; line-height: 1.25; color: var(--brown); margin-bottom: 9px; }
.blog-card__excerpt { font-size: 14.5px; color: var(--muted); line-height: 1.55; }
.blog-feature { margin-bottom: 40px; }

/* ---- Article (single post) ------------------------------------- */
.article-head { background: var(--cream); border-bottom: 1px solid var(--border); padding: 48px 0 44px; }
.article-back { display: inline-block; font-size: 14px; font-weight: 700; color: var(--accent); margin-bottom: 20px; }
.article-head .kicker { font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--sage); margin-bottom: 14px; }
.article-head h1 { font-family: var(--font-serif); font-weight: 600; line-height: 1.14; font-size: clamp(28px, 4vw, 44px); color: var(--brown); max-width: 800px; }
.article-body { padding: 56px 0 72px; }
.prose { max-width: 720px; margin: 0 auto; }
.prose > *:first-child { margin-top: 0; }
.prose p { font-size: 18px; line-height: 1.8; color: var(--ink); margin: 0 0 1.15em; }
.prose h2 { font-family: var(--font-serif); font-weight: 600; font-size: clamp(23px, 3vw, 31px); color: var(--brown); line-height: 1.2; margin: 1.6em 0 .5em; }
.prose h3 { font-family: var(--font-sans); font-weight: 700; font-size: 21px; color: var(--brown); margin: 1.4em 0 .4em; }
.prose a { color: var(--accent); text-decoration: underline; text-underline-offset: 2px; }
.prose ul, .prose ol { margin: 1em 0 1.3em; padding-left: 1.4em; }
.prose li { margin-bottom: .5em; line-height: 1.7; color: var(--ink); }
.prose blockquote { border-left: 3px solid var(--accent); margin: 1.6em 0; padding: 4px 0 4px 22px; font-style: italic; color: var(--brown); font-family: var(--font-serif); font-size: 20px; line-height: 1.5; }
.prose figure { margin: 30px 0; }
.prose img, .prose video { width: 100%; height: auto; border-radius: 12px; display: block; }
.prose figcaption { font-size: 14px; color: var(--sage); text-align: center; margin-top: 8px; }
.prose .wp-block-gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; margin: 30px 0; padding: 0; list-style: none; }
.prose .wp-block-gallery figure { margin: 0; }
.prose .wp-block-image { margin: 0; }
.prose .wp-block-image img { border-radius: 12px; }

/* ---- Destinations (Destinations page) -------------------------- */
.dest-intro { max-width: 720px; margin-bottom: 36px; }
.dest-intro h2 { margin-bottom: 12px; }
.dest-intro p { color: var(--sage); font-size: 18px; }
.dest-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.dest-section + .dest-section { margin-top: 72px; }
.dest-card {
  background: var(--white); border: 1px solid var(--border); border-radius: var(--radius);
  overflow: hidden; box-shadow: var(--shadow-sm); display: flex; flex-direction: column;
}
.dest-card__img { aspect-ratio: 16 / 11; overflow: hidden; }
.dest-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.dest-card:hover .dest-card__img img { transform: scale(1.05); }
.dest-card__body { padding: 20px 22px 24px; display: flex; flex-direction: column; flex: 1 1 auto; }
.dest-card__name { font-family: var(--font-serif); font-size: 22px; font-weight: 600; color: var(--brown); line-height: 1.1; }
.dest-card__tag { font-size: 14px; color: var(--accent); font-weight: 600; font-style: italic; margin: 4px 0 12px; }
.dest-card__known { font-size: 14px; color: var(--muted); line-height: 1.5; }
.dest-card__known b { color: var(--brown-mid); font-weight: 700; }

/* ---- Pricing plans (Pricing page) ------------------------------ */
.plan-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; align-items: stretch; }
.plan {
  background: var(--white); border: 1px solid var(--border); border-radius: var(--radius);
  padding: 36px 30px; display: flex; flex-direction: column; box-shadow: var(--shadow-sm);
}
.plan.featured { border: 2px solid var(--accent); box-shadow: var(--shadow); position: relative; }
.plan__badge {
  position: absolute; top: -13px; left: 50%; transform: translateX(-50%);
  background: var(--accent); color: var(--white); font-size: 12px; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase; padding: 5px 14px; border-radius: 999px; white-space: nowrap;
}
.plan__name { font-family: var(--font-serif); font-size: 25px; font-weight: 600; color: var(--brown); margin-bottom: 6px; }
.plan__scope { font-size: 14px; color: var(--sage); margin-bottom: 20px; }
.plan__price { font-family: var(--font-serif); font-size: 46px; font-weight: 600; color: var(--brown); line-height: 1; }
.plan__price .cur { font-size: 26px; vertical-align: super; margin-right: 1px; }
.plan__price-note { font-size: 14px; color: var(--muted); margin: 6px 0 24px; }
.plan__features { list-style: none; margin: 0 0 28px; flex: 1 1 auto; }
.plan__features li { display: flex; gap: 11px; align-items: flex-start; padding: 8px 0; font-size: 15px; color: var(--muted); }
.plan__features li svg { width: 18px; height: 18px; flex: none; margin-top: 2px; color: var(--secondary); }
.plan .btn { width: 100%; }
.plan__trust { font-size: 12px; color: var(--muted); text-align: center; margin: 10px 0 0; }
.plan--free .plan__price { color: var(--brown-mid); }

.pricing-reassure {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 14px 36px;
  margin-top: 44px; text-align: center;
}
.pricing-reassure span { display: inline-flex; align-items: center; gap: 9px; font-size: 15px; color: var(--sage); font-weight: 600; }
.pricing-reassure svg { width: 18px; height: 18px; color: var(--secondary); }

/* ---- Responsive ------------------------------------------------- */
@media (max-width: 900px) {
  .founder__grid, .itin__grid, .tours__grid, .readnext__grid, .creds__grid { grid-template-columns: 1fr; gap: 36px; }
  .creds__photo { max-width: 360px; }
  .features, .start__grid { grid-template-columns: 1fr; }
  .plan-grid { grid-template-columns: 1fr; max-width: 420px; margin: 0 auto; }
  .dest-grid { grid-template-columns: repeat(2, 1fr); }
  .blog-grid { grid-template-columns: repeat(2, 1fr); }
  .region-grid { grid-template-columns: repeat(2, 1fr); }
  .site-footer .wrap { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 680px) {
  body { font-size: 16px; }
  section { padding: 60px 0; }
  .nav { position: fixed; inset: 70px 0 auto 0; flex-direction: column; align-items: stretch;
          background: var(--cream-soft); border-bottom: 1px solid var(--border); padding: 16px 22px 22px;
          gap: 4px; transform: translateY(-130%); transition: transform .25s ease; box-shadow: var(--shadow-sm); }
  .nav.open { transform: translateY(0); }
  .nav a { padding: 12px 4px; border-bottom: 1px solid var(--border); }
  .nav a:last-of-type { border-bottom: 0; }
  .nav .btn { margin-top: 8px; }
  .nav-toggle { display: block; }
  .dest-grid { grid-template-columns: 1fr; max-width: 420px; margin: 0 auto; }
  .blog-grid { grid-template-columns: 1fr; max-width: 420px; margin: 0 auto; }
  .hero { min-height: 90vh; }
  .hero__inner { padding-bottom: 48px; }
  .hero__cta { flex-direction: column; align-items: stretch; }
  .hero__cta .btn { width: 100%; }
  .tours__stats { gap: 24px; }
  .site-footer .wrap { grid-template-columns: 1fr; }
  .footer-sub__inner { grid-template-columns: 1fr; gap: 18px; }
  .footer-sub .capture__form { flex-direction: column; align-items: stretch; }
  .footer-sub .capture__form input { flex: 0 0 auto; }
  .footer-sub .capture__form .btn { width: 100%; }
  .pricing__card { padding: 30px 24px; }
}

/* ---- Homepage additions ---------------------------------------- */

/* Primary nav CTA: climbing rose, read as the primary action, distinct
   from the five text links and from the terracotta CTAs in the page body. */
.nav .btn-primary { background: #B84A4A; color: var(--white); }
.nav .btn-primary:hover { background: #9F3D3D; }

/* Quiet pricing note beneath the cards */
.pricing__note { font-size: 13px; color: var(--sage); margin-top: 14px; }

/* Email capture block */
.capture { background: var(--cream); }
.capture__card {
  background: var(--white); border: 1px solid var(--border); border-radius: var(--radius);
  box-shadow: var(--shadow-sm); padding: 40px; max-width: 640px; margin: 0 auto; text-align: center;
}
.capture__card h2 { margin-bottom: 12px; }
.capture__card > p { color: var(--muted); max-width: 520px; margin: 0 auto 24px; }
.capture__form { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.capture__form input {
  flex: 1 1 280px; max-width: 340px; font-family: var(--font-sans); font-size: 16px;
  padding: 14px 18px; border: 1px solid var(--border); border-radius: 999px;
  background: var(--cream-soft); color: var(--ink);
}
.capture__form input:focus { outline: none; border-color: var(--brown-mid); }
.capture__msg { font-size: 14px; margin-top: 14px; min-height: 18px; }
.capture__msg.is-ok { color: #4A7A4A; }
.capture__msg.is-err { color: #9F3D3D; }

.visually-hidden {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

@media (max-width: 680px) {
  .capture__card { padding: 30px 24px; }
  .capture__form { flex-direction: column; align-items: stretch; }
  .capture__form input { flex: 0 0 auto; max-width: none; }
  .capture__form .btn { width: 100%; }
}

/* ================================================================
   Homepage redesign — JoBo-inspired type system
   Bebas Neue: labels, nav, CTAs, pills (short strings only)
   Libre Caslon Text: headlines, body, italic asides
   Tokens: --ink #241f1a | --parchment #F9F7F2 | --rose #B84A4A
   ================================================================ */

:root {
  --ink:       #241f1a;
  --parchment: #F9F7F2;
  --rose:      #B84A4A;
  --wf-line:   #e4ddc9;
}

/* ---- Header ---------------------------------------------------- */
.wf-header {
  position: sticky; top: 0; z-index: 50;
  background: var(--parchment);
  border-bottom: 1px solid var(--wf-line);
}
.wf-header__inner {
  max-width: 1140px; margin: 0 auto; padding: 0 40px;
  display: flex; align-items: center; justify-content: space-between;
  height: 64px;
}
.wf-mark {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 18px; letter-spacing: 0.28em; text-transform: uppercase;
  color: var(--ink); text-decoration: none;
}
.wf-nav {
  display: flex; align-items: center; gap: 30px;
}
.wf-nav a {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 12px; letter-spacing: 0.32em; text-transform: uppercase;
  color: var(--ink); text-decoration: none;
}
.wf-nav a:hover { color: var(--rose); }
.wf-nav__cta { border-bottom: 1px solid var(--ink); padding-bottom: 2px; }
.wf-nav__cta:hover { color: var(--rose); border-color: var(--rose); }

/* ---- Hero ------------------------------------------------------ */
.wf-hero {
  position: relative;
  height: 88vh; min-height: 520px;
  overflow: hidden;
  display: flex; align-items: center; justify-content: center;
  text-align: center;
  background: #2b2620;
}
.wf-hero__video {
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover;
  opacity: 0.82;
}
.wf-hero__overlay {
  position: relative; z-index: 2;
  color: var(--parchment);
  display: flex; flex-direction: column; align-items: center;
}
.wf-kicker {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 11px; letter-spacing: 0.4em; text-transform: uppercase;
  color: #e4d9c0; margin-bottom: 18px;
}
.wf-hero h1 {
  font-family: 'Bebas Neue', sans-serif;
  font-weight: 400; font-style: normal;
  font-size: 48px; letter-spacing: 0.08em;
  color: #e8e0cf; margin-bottom: 38px;
}
.wf-watch {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 11px; letter-spacing: 0.36em; text-transform: uppercase;
  color: #fff; border-bottom: 1px solid #fff;
  padding-bottom: 4px; text-decoration: none;
}
.wf-watch:hover { color: #e4d9c0; border-color: #e4d9c0; }
.wf-caption {
  position: absolute; bottom: 18px; right: 24px; z-index: 2;
  font-family: 'Libre Caslon Text', serif; font-style: italic;
  font-size: 11px; color: rgba(228, 217, 192, 0.6);
}

/* ---- Info blocks ----------------------------------------------- */
.wf-block {
  display: flex; flex-wrap: wrap; align-items: center;
  max-width: 1140px; margin: 0 auto;
  padding: 70px 40px;
  border-top: 1px solid var(--wf-line);
  gap: 56px;
}
.wf-block--rev { flex-direction: row-reverse; }
.wf-block__visual {
  flex: 1 1 400px;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--wf-line);
}
.wf-block__visual img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  transition: transform 0.5s ease;
}
.wf-block:hover .wf-block__visual img { transform: scale(1.03); }
.wf-block__content { flex: 1 1 280px; max-width: 400px; }
.wf-num {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 11px; letter-spacing: 0.3em; text-transform: uppercase;
  color: var(--rose); margin-bottom: 14px;
}
.wf-block h2 {
  font-family: 'Bebas Neue', sans-serif;
  font-weight: 400; font-style: normal;
  font-size: 36px; letter-spacing: 0.04em; line-height: 1.15;
  color: var(--ink); margin-bottom: 18px;
}
.wf-desc {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  font-size: 15px; line-height: 1.75; color: #4a4030;
  margin-bottom: 26px;
}
.wf-soon {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 11px; letter-spacing: 0.3em; text-transform: uppercase;
  color: #8a7a5c; display: inline-block;
}
.wf-cta {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 11px; letter-spacing: 0.3em; text-transform: uppercase;
  color: var(--ink); border-bottom: 1px solid var(--ink);
  padding-bottom: 4px; text-decoration: none; display: inline-block;
}
.wf-cta:hover { color: var(--rose); border-color: var(--rose); }

/* ---- Newsletter ------------------------------------------------- */
.wf-newsletter {
  border-top: 1px solid var(--wf-line);
  padding: 60px 40px;
  background: var(--parchment);
}
.wf-newsletter__inner {
  max-width: 1140px; margin: 0 auto;
  display: flex; flex-wrap: wrap; align-items: flex-start; gap: 56px;
}
.wf-newsletter__img {
  flex: 0 0 auto;
  display: flex; align-items: center;
}
.wf-newsletter__img img {
  width: 160px;
  border-radius: 3px;
  box-shadow: 0 12px 36px rgba(36,31,26,.22);
  transform: rotate(-2deg);
}
.wf-newsletter__text { flex: 1 1 300px; }
.wf-newsletter__text h2 {
  font-family: 'Bebas Neue', sans-serif;
  font-weight: 400; font-style: normal;
  font-size: 36px; letter-spacing: 0.04em; line-height: 1.15;
  color: var(--ink); margin-bottom: 14px;
}
.wf-newsletter__text p {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  font-size: 15px; line-height: 1.75; color: #4a4030;
}
.wf-newsletter__form { flex: 1 1 300px; display: flex; flex-direction: column; justify-content: center; }
.wf-newsletter__form .capture__form {
  display: flex; flex-direction: column; gap: 0;
}
.wf-newsletter__form .capture__form input {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  font-size: 15px; padding: 13px 16px;
  border: 1px solid var(--wf-line); border-bottom: none;
  background: transparent; color: var(--ink);
  border-radius: 0; flex: none; max-width: none;
}
.wf-newsletter__form .capture__form input::placeholder { color: #9a8e7e; }
.wf-newsletter__form .capture__form input:focus { outline: none; border-color: var(--ink); }
.btn-nl {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 12px; letter-spacing: 0.3em; text-transform: uppercase;
  background: var(--ink); color: var(--parchment);
  border: 1px solid var(--ink); padding: 14px 20px;
  cursor: pointer; transition: background 0.15s ease;
  align-self: stretch; text-align: center;
}
.btn-nl:hover { background: var(--rose); border-color: var(--rose); }
.wf-newsletter__form .capture__msg {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  font-size: 13px; margin-top: 12px; min-height: 18px; color: #4a4030;
}
.wf-newsletter__form .capture__msg.is-ok { color: #3a6a3a; }
.wf-newsletter__form .capture__msg.is-err { color: var(--rose); }

/* ---- Regions strip --------------------------------------------- */
.wf-regions {
  border-top: 1px solid var(--wf-line);
  padding: 60px 40px;
  text-align: center;
  background: var(--parchment);
}
.wf-regions__label {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 12px; letter-spacing: 0.3em; text-transform: uppercase;
  color: #8a7a5c; margin-bottom: 30px;
}
.wf-regions__pills {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 10px;
  max-width: 860px; margin: 0 auto;
}
.wf-pill {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 13px; letter-spacing: 0.2em; text-transform: uppercase;
  border: 1px solid var(--ink); padding: 10px 22px;
  color: var(--ink); line-height: 1;
}

/* ---- Footer ---------------------------------------------------- */
.wf-footer {
  border-top: 1px solid var(--wf-line);
  padding: 50px 40px 30px;
  background: var(--parchment);
  text-align: center;
}
.wf-footer__inner { display: flex; flex-direction: column; align-items: center; gap: 10px; }
.wf-footer .wf-mark { font-size: 16px; margin-bottom: 4px; }
.wf-footer__sub {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif; font-style: italic;
  font-size: 13px; color: #8a7a5c; margin-bottom: 14px;
}
.wf-footer__links {
  display: flex; justify-content: center; flex-wrap: wrap; gap: 22px;
  font-family: 'Bebas Neue', sans-serif;
  font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase;
}
.wf-footer__links a { color: var(--ink); text-decoration: none; }
.wf-footer__links a:hover { color: var(--rose); }
.wf-footer__bar {
  border-top: 1px solid var(--wf-line);
  margin-top: 30px; padding-top: 20px;
  font-family: 'Libre Caslon Text', serif;
  font-size: 12px; color: #8a7a5c; text-align: center;
}

/* ---- Portrait image variant (e.g. Bob photo) ------------------- */
.wf-block__visual--portrait { aspect-ratio: 3 / 4; flex: 1 1 220px; max-width: 300px; }

/* ---- Current nav item ------------------------------------------ */
.wf-nav a[aria-current="page"] {
  border-bottom: 1px solid var(--ink); padding-bottom: 2px;
}

/* ---- Inner page: page headline --------------------------------- */
.wf-page-head { border-bottom: 1px solid var(--wf-line); background: var(--parchment); }
.wf-page-head__inner { max-width: 1140px; margin: 0 auto; padding: 70px 40px 60px; }
.wf-page-head h1 {
  font-family: 'Bebas Neue', sans-serif;
  font-weight: 400; font-style: normal;
  font-size: 36px; letter-spacing: 0.04em; line-height: 1.15;
  color: var(--ink); max-width: 680px;
}

/* ---- Inner page: story / narrative ----------------------------- */
.wf-story { border-bottom: 1px solid var(--wf-line); background: var(--parchment); }
.wf-story__inner { max-width: 1140px; margin: 0 auto; padding: 70px 40px; }
.wf-story__quote {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  font-size: 20px; line-height: 1.65; color: var(--ink);
  font-style: normal; font-weight: 400;
  max-width: 640px; margin-bottom: 14px;
}
.wf-story__cite {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 11px; letter-spacing: 0.3em; text-transform: uppercase;
  color: var(--rose); display: block; margin-bottom: 44px;
}
.wf-story__body { max-width: 640px; }
.wf-story__body p {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  font-size: 16px; line-height: 1.75; color: #4a4030;
  margin-bottom: 18px;
}
.wf-story__body p:last-child { margin-bottom: 0; }
.wf-story__body strong { color: var(--ink); font-weight: 700; }

@media (max-width: 680px) {
  .wf-page-head__inner { padding: 48px 22px 40px; }
  .wf-page-head h1 { font-size: 36px; }
  .wf-story__inner { padding: 48px 22px; }
}

/* ---- Homepage responsive --------------------------------------- */
@media (max-width: 860px) {
  .wf-block, .wf-block--rev { flex-direction: column; gap: 32px; }
  .wf-block__visual { flex: none; width: 100%; }
  .wf-block__content { max-width: 100%; }
  .wf-newsletter__inner { flex-direction: column; gap: 32px; }
  .wf-newsletter__img { display: none; }
  .wf-newsletter__text { flex: none; }
  .wf-newsletter__form { flex: none; width: 100%; }
}

@media (max-width: 680px) {
  .wf-header__inner { padding: 0 22px; height: 58px; }
  .wf-nav {
    position: fixed; inset: 58px 0 auto 0;
    flex-direction: column; align-items: stretch;
    background: var(--parchment); border-bottom: 1px solid var(--wf-line);
    padding: 16px 22px 22px; gap: 0;
    transform: translateY(-130%); transition: transform .25s ease;
    box-shadow: 0 8px 24px rgba(36,31,26,.08);
  }
  .wf-nav.open { transform: translateY(0); }
  .wf-nav a { padding: 13px 4px; border-bottom: 1px solid var(--wf-line); font-size: 14px; letter-spacing: 0.2em; }
  .wf-nav a:last-of-type { border-bottom: 0; }
  .wf-block { padding: 48px 22px; gap: 28px; }
  .wf-newsletter { padding: 48px 22px; }
  .wf-regions { padding: 48px 22px; }
  .wf-footer { padding: 40px 22px 24px; }
  .wf-hero { height: auto; aspect-ratio: 16/9; min-height: unset; }
  .wf-hero h1 { font-size: 22px; }
  .nav-toggle span { background: var(--ink); }
}

/* ================================================================
   Pricing / How it works page
   ================================================================ */

/* ---- Steps (How it works) -------------------------------------- */
.wf-steps {
  border-top: 1px solid var(--wf-line);
  background: var(--parchment);
  padding: 70px 40px;
}
.wf-steps__inner {
  max-width: 1140px; margin: 0 auto;
  display: grid; grid-template-columns: repeat(3, 1fr);
}
.wf-step { padding-right: 48px; }
.wf-step + .wf-step {
  padding-left: 48px; padding-right: 0;
  border-left: 1px solid var(--wf-line);
}
.wf-step h3 {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 24px; letter-spacing: 0.04em; line-height: 1.2;
  color: var(--ink); margin: 12px 0 10px;
}
.wf-step p {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  font-size: 15px; line-height: 1.75; color: #4a4030;
}

/* ---- Plans (Pricing) ------------------------------------------- */
.wf-plans {
  border-top: 1px solid var(--wf-line);
  background: var(--parchment);
  padding: 70px 40px;
}
.wf-plans__inner { max-width: 1140px; margin: 0 auto; }
.wf-plans h2 {
  font-family: 'Bebas Neue', sans-serif;
  font-weight: 400; font-size: 36px; letter-spacing: 0.04em; line-height: 1.15;
  color: var(--ink); margin-bottom: 10px;
}
.wf-plan-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 18px; margin-top: 40px;
}
.wf-plan {
  border: 1px solid var(--wf-line);
  padding: 32px 28px;
  display: flex; flex-direction: column;
}
.wf-plan--featured { border-color: var(--ink); }
.wf-plan__badge {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 11px; letter-spacing: 0.3em; text-transform: uppercase;
  color: var(--rose); margin-bottom: 8px; display: block;
}
.wf-plan__name {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 22px; letter-spacing: 0.08em;
  color: var(--ink); margin-bottom: 4px;
}
.wf-plan__scope {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  font-size: 13px; color: #8a7a5c; margin-bottom: 16px;
}
.wf-plan__price {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 52px; letter-spacing: 0.02em; line-height: 1;
  color: var(--ink); margin-bottom: 6px;
}
.wf-plan__cur { font-size: 28px; vertical-align: top; margin-right: 2px; }
.wf-plan__price-note {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  font-size: 12px; color: #8a7a5c; margin-bottom: 22px;
}
.wf-plan__features {
  list-style: none; margin: 0 0 28px; flex: 1 1 auto;
}
.wf-plan__features li {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  font-size: 14px; color: #4a4030; line-height: 1.5;
  padding: 8px 0 8px 14px; border-bottom: 1px solid var(--wf-line);
  position: relative;
}
.wf-plan__features li::before {
  content: '';
  position: absolute; left: 0; top: 17px;
  width: 4px; height: 4px; border-radius: 50%;
  background: var(--rose);
}
.wf-plan__cta { margin-top: auto; }
.wf-plan .wf-cta { display: inline-block; }
.wf-plan .btn-nl { width: 100%; display: block; box-sizing: border-box; cursor: pointer; }
.wf-plan__trust {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  font-size: 12px; color: #8a7a5c; margin-top: 10px; text-align: center;
}
.wf-plan-reassure {
  display: flex; flex-wrap: wrap; gap: 10px 32px;
  margin-top: 32px;
  font-family: 'Bebas Neue', sans-serif;
  font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase;
  color: #8a7a5c;
}
.wf-plan-reassure span::before {
  content: '+ '; color: var(--rose);
}

/* ---- FAQ ------------------------------------------------------- */
.wf-faq {
  border-top: 1px solid var(--wf-line);
  background: var(--parchment);
  padding: 70px 40px;
}
.wf-faq__inner { max-width: 1140px; margin: 0 auto; }
.wf-faq h2 {
  font-family: 'Bebas Neue', sans-serif;
  font-weight: 400; font-size: 36px; letter-spacing: 0.04em;
  color: var(--ink); margin-bottom: 36px;
}
.wf-faq__list details { border-bottom: 1px solid var(--wf-line); }
.wf-faq__list details:first-child { border-top: 1px solid var(--wf-line); }
.wf-faq__list summary {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 16px; letter-spacing: 0.06em;
  color: var(--ink); cursor: pointer;
  padding: 20px 32px 20px 0;
  list-style: none;
  display: flex; justify-content: space-between; align-items: center;
  position: relative;
}
.wf-faq__list summary::-webkit-details-marker { display: none; }
.wf-faq__list summary::after {
  content: '+';
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  font-size: 20px; font-weight: 300; color: var(--rose);
  position: absolute; right: 0; top: 50%; transform: translateY(-50%);
}
.wf-faq__list details[open] summary::after { content: '\2212'; }
.wf-faq__list details p {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  font-size: 15px; line-height: 1.75; color: #4a4030;
  padding-bottom: 22px; max-width: 640px;
}
.wf-faq__list details p a { color: var(--rose); text-decoration: underline; text-underline-offset: 2px; }

/* Responsive */
@media (max-width: 860px) {
  .wf-steps__inner { grid-template-columns: 1fr; }
  .wf-step {
    padding-right: 0; padding-bottom: 32px;
    border-bottom: 1px solid var(--wf-line);
  }
  .wf-step + .wf-step {
    padding-left: 0; border-left: none; padding-top: 32px;
  }
  .wf-step:last-child { border-bottom: none; padding-bottom: 0; }
  .wf-plan-grid { grid-template-columns: 1fr; max-width: 420px; }
}
@media (max-width: 680px) {
  .wf-steps { padding: 48px 22px; }
  .wf-plans { padding: 48px 22px; }
  .wf-faq { padding: 48px 22px; }
}

/* ================================================================
   Journal / Blog pages — wf-blog-* components
   ================================================================ */

.wf-blog-section {
  border-top: 1px solid var(--wf-line);
  background: var(--parchment);
  padding: 70px 40px;
}
.wf-blog-section__inner { max-width: 1140px; margin: 0 auto; }

/* Featured post */
.wf-blog-feature {
  display: block; text-decoration: none; color: inherit;
  margin-bottom: 56px;
}
.wf-blog-feature__img {
  aspect-ratio: 16 / 7; overflow: hidden;
}
.wf-blog-feature__img img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform 0.5s ease;
}
.wf-blog-feature:hover .wf-blog-feature__img img { transform: scale(1.03); }
.wf-blog-feature__body {
  padding: 22px 0 0;
  border-top: 1px solid var(--wf-line);
}
.wf-blog-feature h2 {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 36px; letter-spacing: 0.04em; line-height: 1.15;
  color: var(--ink); margin: 10px 0 12px;
}
.wf-blog-feature p {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  font-size: 15px; line-height: 1.75; color: #4a4030;
  max-width: 720px; margin-bottom: 20px;
}

/* Article grid */
.wf-blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px 24px;
}
.wf-blog-card {
  display: block; text-decoration: none; color: inherit;
}
.wf-blog-card__img {
  aspect-ratio: 16 / 11; overflow: hidden;
  margin-bottom: 14px;
}
.wf-blog-card__img img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform 0.4s ease;
}
.wf-blog-card:hover .wf-blog-card__img img { transform: scale(1.04); }
.wf-blog-card__date {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 11px; letter-spacing: 0.3em; text-transform: uppercase;
  color: var(--rose); margin-bottom: 8px;
}
.wf-blog-card__title {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 20px; letter-spacing: 0.04em; line-height: 1.2;
  color: var(--ink);
}
.wf-blog-card:hover .wf-blog-card__title { color: var(--rose); }

/* Article page — override old font/colour tokens to match new design system */
.article-head { background: var(--parchment); border-bottom: 1px solid var(--wf-line); }
.article-back {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 11px; letter-spacing: 0.28em; text-transform: uppercase;
  color: var(--rose); font-weight: 400; text-decoration: none;
}
.article-back:hover { color: var(--ink); }
.article-head .kicker {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 11px; letter-spacing: 0.3em; text-transform: uppercase;
  color: var(--rose); font-weight: 400;
}
.article-head h1 {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  font-weight: 700; color: var(--ink);
}
.article-body { background: var(--parchment); }
.prose p {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  font-size: 16px; line-height: 1.8; color: #4a4030;
}
.prose h2 {
  font-family: 'Bebas Neue', sans-serif;
  font-weight: 400; font-size: 28px; letter-spacing: 0.04em;
  color: var(--ink); line-height: 1.15;
}
.prose h3 {
  font-family: 'Bebas Neue', sans-serif;
  font-weight: 400; font-size: 22px; letter-spacing: 0.04em;
  color: var(--ink); line-height: 1.2;
}
.prose a { color: var(--rose); }
.prose blockquote {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  font-style: normal; color: var(--ink);
  border-left-color: var(--rose);
}
.prose figcaption {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  color: #8a7a5c;
}

/* Article page — header/footer/CTA updates (prose content styles unchanged) */
.wf-article-back {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 11px; letter-spacing: 0.28em; text-transform: uppercase;
  color: var(--rose); text-decoration: none; display: inline-block;
  margin-bottom: 24px;
}
.wf-article-back:hover { color: var(--ink); }
.wf-article-head {
  border-bottom: 1px solid var(--wf-line);
  background: var(--parchment);
  padding: 56px 40px 48px;
}
.wf-article-head__inner { max-width: 800px; margin: 0 auto; }
.wf-article-head__date {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 11px; letter-spacing: 0.3em; text-transform: uppercase;
  color: var(--rose); margin-bottom: 16px;
}
.wf-article-head h1 {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  font-weight: 700; font-size: clamp(26px, 4vw, 38px);
  line-height: 1.2; color: var(--ink); margin: 0;
}
.wf-article-body { padding: 60px 40px 72px; background: var(--parchment); }
.wf-article-body .prose { max-width: 720px; margin: 0 auto; }

@media (max-width: 860px) {
  .wf-blog-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 680px) {
  .wf-blog-section { padding: 48px 22px; }
  .wf-blog-grid { grid-template-columns: 1fr; }
  .wf-article-head { padding: 40px 22px 36px; }
  .wf-article-body { padding: 40px 22px 56px; }
}

/* ================================================================
   Destinations page — wf-dest-* components
   ================================================================ */

.wf-dest-section {
  border-top: 1px solid var(--wf-line);
  background: var(--parchment);
}
.wf-dest-section__inner {
  max-width: 1140px; margin: 0 auto;
  padding: 70px 40px;
}
.wf-dest-heading {
  font-family: 'Bebas Neue', sans-serif;
  font-weight: 400; font-style: normal;
  font-size: 36px; letter-spacing: 0.04em; line-height: 1.15;
  color: var(--ink); margin-bottom: 10px;
}
.wf-dest-intro {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  font-size: 15px; line-height: 1.75; color: #4a4030;
  max-width: 620px; margin-bottom: 40px;
}
.wf-dest-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}
.wf-dest-card { border: 1px solid var(--wf-line); background: var(--parchment); }
.wf-dest-card__img { aspect-ratio: 16 / 11; overflow: hidden; }
.wf-dest-card__img img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform 0.4s ease;
}
.wf-dest-card:hover .wf-dest-card__img img { transform: scale(1.04); }
.wf-dest-card__body { padding: 16px 18px 20px; }
.wf-dest-card__name {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 18px; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--ink); margin-bottom: 4px;
}
.wf-dest-card__tag {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  font-size: 13px; color: var(--rose); margin-bottom: 8px;
}
.wf-dest-card__known {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  font-size: 13px; color: #4a4030; line-height: 1.5;
}
.wf-dest-card__known b { color: var(--ink); font-weight: 700; }

@media (max-width: 900px) {
  .wf-dest-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 680px) {
  .wf-dest-section__inner { padding: 48px 22px; }
  .wf-dest-grid { grid-template-columns: 1fr; max-width: 420px; }
}
