/* Inner-page (post/page/archive) content styling. Homepage untouched. */
body:not(.home){ padding-top: 0 !important; margin-top: 0 !important; }

.cw-main{ max-width: 900px; margin: 0 auto; padding: 2.4rem 22px 90px; }
.cw-article-header{ margin-bottom: 1.4rem; }
.cw-title{ font-family: var(--serif, var(--font-serif, Georgia,'Times New Roman',serif));
  font-size: clamp(1.9rem,4vw,2.9rem); line-height:1.15; color: var(--ink,var(--text-dark,#1f1f1f)); margin:0 0 .4rem; }
.cw-content{ font-size:1.06rem; line-height:1.85; color: var(--ink,#2b2b2b); }
.cw-content > *:first-child{ margin-top:0; }
.cw-content p{ margin:0 0 1.15rem; }
.cw-content h2{ font-family: var(--serif, var(--font-serif, Georgia,serif));
  font-size: clamp(1.35rem,2.6vw,1.95rem); line-height:1.25; margin:2.3rem 0 .85rem; color: var(--ink,var(--text-dark,#222)); }
.cw-content h3{ font-size:1.2rem; margin:1.6rem 0 .6rem; }
.cw-content a{ color:#b9722c; text-decoration:underline; text-underline-offset:2px; }
.cw-content strong{ font-weight:600; }
.cw-content .pull-quote{ border-left:4px solid #c98a3a; background:rgba(0,0,0,.03); margin:1.8rem 0; padding:1rem 1.3rem; font-size:1.15rem; font-style:italic; line-height:1.6; }
.cw-content .pull-quote p{ margin:0; }
.cw-content .tip-box{ background:rgba(201,138,58,.09); border:1px solid rgba(201,138,58,.28); border-left:4px solid #c98a3a; border-radius:8px; padding:1rem 1.2rem; margin:1.6rem 0; }
.cw-content .tip-box p:last-child{ margin-bottom:0; }
.cw-content .comparison-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:1rem; margin:1.6rem 0; }
.cw-content .comparison-card{ border:1px solid rgba(0,0,0,.12); border-radius:10px; padding:1.1rem 1.2rem; background:#fff; }
.cw-content .comparison-card p:last-child{ margin-bottom:0; }
.cw-content .faq-accordion{ margin:1.6rem 0; }
.cw-content details{ border:1px solid rgba(0,0,0,.12); border-radius:8px; padding:.4rem .95rem; margin:.6rem 0; background:#fff; }
.cw-content details summary{ cursor:pointer; font-weight:600; padding:.55rem 0; list-style:none; }
.cw-content details summary::-webkit-details-marker{ display:none; }
.cw-content details[open] summary{ margin-bottom:.3rem; }
.cw-archive-header{ margin-bottom:1.5rem; }
.cw-list{ display:grid; gap:1.3rem; }
.cw-card{ border-bottom:1px solid rgba(0,0,0,.1); padding-bottom:1.2rem; }
.cw-card-title{ font-size:1.3rem; margin:0 0 .4rem; line-height:1.3; }
.cw-card-title a{ color: var(--ink,#222); text-decoration:none; }
.cw-card-title a:hover{ color:#b9722c; }
.cw-excerpt{ color:#555; margin-bottom:.5rem; }
.cw-more{ font-weight:600; color:#b9722c; text-decoration:none; font-size:.9rem; }
.cw-pagination{ margin-top:2.4rem; }
.cw-pagination .page-numbers{ padding:.4rem .7rem; border:1px solid rgba(0,0,0,.15); border-radius:6px; margin-right:.3rem; text-decoration:none; }
.cw-pagination .current{ background:#1d2a1f; color:#fff; border-color:transparent; }

/* Inner-page: keep the site nav bar visible in normal flow (no hero behind it) */
body:not(.home) .rp-nav{ position: static !important; top: auto !important; }


/* ===== Safari package cards (theme-consistent: Playfair + teal/green/coral) ===== */
.rp-packages{ }
.rp-pkg-head{ max-width:760px; margin:0 auto 34px; text-align:center; }
.rp-pkg-head .label{ color:var(--green-deep,#558f76); }
.rp-pkg-head h2{ font-family:'Playfair Display',serif; font-weight:500; color:var(--ink,#293430); }
.rp-pkg-head h2 em{ font-style:italic; color:var(--teal,#2c5944); }
.rp-pkg-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:22px;
  max-width:1180px; margin:0 auto; }
.rp-pkg-grid--home{ grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); max-width:1080px; }
.rp-pkg-card{ display:block; background:var(--paper-light,#e8ece6); border:1px solid var(--line,rgba(41,52,48,.12));
  border-top:3px solid var(--coral-deep,#cf8f75); border-radius:4px; padding:22px 22px 20px; text-decoration:none;
  color:var(--ink,#293430); transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.rp-pkg-card:hover{ transform:translateY(-4px); box-shadow:0 14px 34px rgba(41,52,48,.14);
  border-top-color:var(--teal,#2c5944); }
.rp-pkg-days{ display:inline-block; font-family:'Inter',sans-serif; font-size:11px; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase; color:#fff; background:var(--teal,#2c5944);
  padding:4px 10px; border-radius:2px; }
.rp-pkg-route{ display:block; margin:16px 0 6px; color:var(--green-deep,#558f76); }
.rp-pkg-title{ font-family:'Playfair Display',serif; font-weight:600; font-size:21px; line-height:1.2;
  color:var(--ink,#293430); margin:0 0 10px; }
.rp-pkg-teaser{ font-family:'Inter',sans-serif; font-size:14px; line-height:1.65; color:var(--ink-soft,#5c6a63);
  margin:0 0 16px; }
.rp-pkg-more{ font-family:'Inter',sans-serif; font-size:12px; font-weight:600; letter-spacing:.06em;
  text-transform:uppercase; color:var(--teal,#2c5944); }
.rp-pkg-card:hover .rp-pkg-more{ color:var(--coral-deep,#cf8f75); }
.rp-pkg-cta{ text-align:center; margin-top:34px; }
.rp-pkg-allbtn{ display:inline-block; font-family:'Inter',sans-serif; font-size:13px; font-weight:600;
  letter-spacing:.08em; text-transform:uppercase; color:#fff; background:var(--teal,#2c5944);
  padding:14px 30px; border-radius:3px; text-decoration:none; transition:background .25s ease; }
.rp-pkg-allbtn:hover{ background:var(--teal-deep,#1e3a30); }
/* package page: destinations line + itinerary polish inside .cw-content */
.cw-content .pkg-destinations{ background:var(--paper-warm,#eef1ea); border-left:3px solid var(--green,#70a18b);
  padding:.7rem 1rem; border-radius:0 6px 6px 0; font-size:.97rem; }


/* ===== Consistent inner-page header + footer (theme-native via var() chains) ===== */
.cwx-header{ position:sticky; top:0; z-index:1000; background:var(--cwp-dark,#26332b);
  border-bottom:3px solid var(--cwp-accent,#b06a2c); font-family:var(--sans,var(--font-sans,Inter,system-ui,Arial,sans-serif)); }
.cwx-inner{ max-width:1200px; margin:0 auto; padding:0 22px; display:flex; align-items:center; gap:20px; min-height:64px; }
.cwx-brand{ font-family:var(--serif,var(--font-serif,Georgia,serif)); font-weight:700; font-size:1.35rem;
  letter-spacing:.5px; color:#fff !important; text-decoration:none; white-space:nowrap; }
.cwx-nav{ display:flex; flex-wrap:wrap; gap:2px 20px; margin-left:auto; }
.cwx-link{ color:rgba(255,255,255,.86) !important; text-decoration:none; font-size:.8rem; font-weight:600;
  letter-spacing:.08em; text-transform:uppercase; padding:8px 2px; border-bottom:2px solid transparent; white-space:nowrap; }
.cwx-link:hover{ color:#fff !important; border-bottom-color:var(--cwp-accent,#b06a2c); }
.cwx-toggle{ display:none; margin-left:auto; background:none; border:0; color:#fff; font-size:1.5rem; cursor:pointer; line-height:1; }
@media (max-width:860px){ .cwx-toggle{ display:block; }
  .cwx-nav{ display:none; flex-basis:100%; flex-direction:column; gap:0; margin:0; }
  .cwx-nav.open{ display:flex; padding-bottom:10px; }
  .cwx-link{ padding:11px 2px; border-bottom:1px solid rgba(255,255,255,.12); } }
.cwx-footer{ background:var(--cwp-dark,#20271f); color:rgba(255,255,255,.75);
  border-top:3px solid var(--cwp-accent,#b06a2c); margin-top:64px;
  font-family:var(--sans,var(--font-sans,Inter,system-ui,Arial,sans-serif)); }
.cwx-finner{ max-width:1200px; margin:0 auto; padding:40px 22px; }
.cwx-fbrand{ font-family:var(--serif,var(--font-serif,Georgia,serif)); font-weight:700; font-size:1.4rem; color:#fff; margin-bottom:14px; }
.cwx-fnav{ display:flex; flex-wrap:wrap; gap:10px 26px; margin-bottom:16px; }
.cwx-flink{ color:rgba(255,255,255,.78) !important; text-decoration:none; font-size:.85rem; }
.cwx-flink:hover{ color:#fff !important; }
.cwx-copy{ font-size:.78rem; color:rgba(255,255,255,.5); margin:0; }
/* inner content sits directly under the sticky bar */
body:not(.home) .cw-main{ padding-top:2.2rem; }


/*CWP-CARDS-START*/
/* ===== Tour / safari package section shell (kept consistent) + per-site theme-native card ===== */
:root{ --cwp-accent: var(--accent,var(--coral-deep,var(--clay,var(--orange,var(--gold,var(--teal,var(--rust,var(--forest,#b06a2c)))))))));
  --cwp-dark: var(--teal-deep,var(--forest,var(--ink,var(--green-deep,var(--green-ink,var(--text-dark,#26332b)))))));
  --cwp-ink: var(--ink,var(--text-dark,#26332b)); --cwp-soft: var(--ink-soft,var(--muted,var(--text-mid,#5c6a63))); }
.cwp-section{ padding: clamp(48px,7vw,96px) 22px; }
.cwp-head{ max-width:760px; margin:0 auto 34px; text-align:center; }
.cwp-eyebrow{ font-size:11px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--cwp-accent); }
.cwp-h2{ font-family:var(--serif,var(--font-serif,Georgia,serif)); font-weight:600; font-size:clamp(26px,3.2vw,40px);
  color:var(--cwp-ink); margin:.4rem 0 0; }
.cwp-head p{ color:var(--cwp-soft); margin:.6rem 0 0; }
.cwp-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:28px; max-width:1180px; margin:0 auto; align-items:stretch; }
.cwp-grid--home{ grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); max-width:1120px; }
.cwp-card{ display:flex; flex-direction:column; }
.cwp-cta{ text-align:center; margin-top:38px; }
.cwp-allbtn{ display:inline-block; font-size:13px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:#fff; background:var(--cwp-dark); padding:14px 32px; border-radius:3px; text-decoration:none; }
.cwp-allbtn:hover{ filter:brightness(1.12); }
.cw-content .pkg-destinations{ background:rgba(0,0,0,.03); border-left:3px solid var(--cwp-accent);
  padding:.7rem 1rem; border-radius:0 6px 6px 0; font-size:.97rem; }
@media(max-width:640px){ .cwp-grid{ gap:22px; } }
.cwp-rh.exp{display:block;text-decoration:none;color:inherit;aspect-ratio:3/4.1}
.cwp-rh .exp__body p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
/*CWP-CARDS-END*/


/*A4-CONTENT-MEDIA-START*/
/* ===== In-article media, captions and related reading =====
   Scoped to .cw-content only. The in-body inline <style> in header.php outranks
   this file for nav/layout, so nothing here touches either. */

/* Every img carries width/height attributes now; keep them from overflowing
   the 900px column while preserving the intrinsic aspect ratio. */
.cw-content img,
.cw-content video,
.cw-content iframe{ max-width:100%; height:auto; }
.cw-content img{ display:block; border-radius:8px; }

/* In-article figures. Content agents emit:
     <figure class="cw-figure">
       <img src="…" alt="…" width="…" height="…" loading="lazy" decoding="async">
       <figcaption>…</figcaption>
     </figure>
   Both the bare element and the .cw-figure class are styled, and .cw-figure is
   also styled unscoped so a figure that lands outside .cw-content still behaves. */
.cw-content figure,
.cw-content .cw-figure,
.cw-figure{
  margin:2.1rem 0;
  max-width:100%;
  clear:both;
}

/* The width/height attributes are real pixel values (up to 1600px wide) and
   would blow past the 900px column without this. */
.cw-content figure img,
.cw-content .cw-figure img,
.cw-figure img{
  display:block;
  width:100%;
  max-width:100%;
  height:auto;
  border-radius:8px;
}

.cw-content figcaption,
.cw-content .cw-figure figcaption,
.cw-figure figcaption{
  margin-top:.6rem;
  font-family:var(--sans,var(--font-sans,Inter,system-ui,Arial,sans-serif));
  font-size:.84rem;
  font-style:normal;      /* Playfair headings already carry the italic voice. */
  line-height:1.55;
  letter-spacing:.005em;
  color:#6a7370;
  border-left:3px solid rgba(201,138,58,.55);
  padding-left:.75rem;
}
.cw-content figcaption a,
.cw-figure figcaption a{ color:#b9722c; }
.cw-content figcaption strong,
.cw-figure figcaption strong{ color:#4b544f; font-weight:600; }
.cw-content figcaption cite,
.cw-figure figcaption cite{ font-style:normal; color:#8a938f; }

/* Optional alignment helpers for in-content figures. */
.cw-content figure.alignwide{ width:100%; }
.cw-content figure.aligncenter{ margin-left:auto; margin-right:auto; text-align:center; }
.cw-content figure.aligncenter figcaption{ border-left:0; padding-left:0; text-align:center; }
@media(min-width:760px){
  .cw-content figure.alignleft{ float:left; width:min(45%,360px); margin:.4rem 1.6rem 1.2rem 0; }
  .cw-content figure.alignright{ float:right; width:min(45%,360px); margin:.4rem 0 1.2rem 1.6rem; }
}
@media(max-width:640px){
  .cw-content figure,
  .cw-content .cw-figure,
  .cw-figure{ margin:1.6rem 0; }
  .cw-content figure.alignleft,
  .cw-content figure.alignright{ float:none; width:100%; margin:1.6rem 0; }
}
.cw-content .wp-caption{ max-width:100%; }
.cw-content .wp-caption-text{ font-size:.84rem; color:#6a7370; margin-top:.5rem; }

/* Side-by-side figure pairs, e.g. dry season vs green season. */
.cw-content .figure-pair{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:1rem; margin:2.1rem 0;
}
.cw-content .figure-pair figure,
.cw-content .figure-pair .cw-figure{ margin:0; }

/* ----- Related reading block ----- */
.cw-content .related-reading,
.cw-related{
  margin:2.4rem 0;
  padding:1.15rem 1.35rem 1.25rem;
  background:rgba(112,161,139,.10);
  border:1px solid rgba(41,52,48,.12);
  border-left:4px solid var(--green-deep,#558f76);
  border-radius:0 8px 8px 0;
}
.cw-content .related-reading > h2,
.cw-content .related-reading > h3,
.cw-content .related-reading .related-reading__title,
.cw-related__title{
  font-family:var(--serif,var(--font-serif,Georgia,serif));
  font-size:1.05rem;
  font-weight:600;
  letter-spacing:.02em;
  text-transform:none;
  margin:0 0 .6rem;
  color:var(--ink,#293430);
}
.cw-content .related-reading ul,
.cw-related ul{ margin:0; padding:0; list-style:none; }
.cw-content .related-reading li,
.cw-related li{
  margin:0; padding:.42rem 0 .42rem 1.15rem; position:relative; line-height:1.55;
  border-bottom:1px solid rgba(41,52,48,.08);
}
.cw-content .related-reading li:last-child,
.cw-related li:last-child{ border-bottom:0; }
.cw-content .related-reading li::before,
.cw-related li::before{
  content:"›"; position:absolute; left:0; top:.4rem;
  color:var(--green-deep,#558f76); font-weight:700;
}
.cw-content .related-reading a,
.cw-related a{ color:#b9722c; text-decoration:none; font-weight:500; }
.cw-content .related-reading a:hover,
.cw-related a:hover{ text-decoration:underline; }
.cw-content .related-reading p{ margin:0 0 .5rem; font-size:.95rem; color:#5c6a63; }

/* ----- Hub-page guide index -----
   The "Every Ruaha Guide on This Site" lists on the complete-guide page: ~80
   links that would otherwise be one very long single column. functions.php tags
   only those lists with .cw-guide-index, so ordinary .cw-content ul bullet
   lists are never affected. */
.cw-content ul.cw-guide-index{
  columns:1;
  column-gap:2.2rem;
  list-style:none;
  margin:.9rem 0 1.9rem;
  padding:0;
  font-size:.97rem;
}
@media(min-width:600px){ .cw-content ul.cw-guide-index{ columns:2; } }
@media(min-width:1000px){ .cw-content ul.cw-guide-index{ columns:3; } }

.cw-content ul.cw-guide-index > li{
  break-inside:avoid;
  -webkit-column-break-inside:avoid;
  page-break-inside:avoid;
  display:block;
  margin:0 0 .48rem;
  padding:0 0 0 .95rem;
  position:relative;
  line-height:1.45;
}
.cw-content ul.cw-guide-index > li::before{
  content:"·";
  position:absolute; left:.1rem; top:0;
  color:var(--green-deep,#558f76); font-weight:700;
}
.cw-content ul.cw-guide-index a{
  text-decoration:none;
  color:#8a5a22;
  border-bottom:1px solid rgba(185,114,44,.28);
}
.cw-content ul.cw-guide-index a:hover{
  color:#b9722c;
  border-bottom-color:#b9722c;
}
/* The h3 group headings that sit above each index list. */
.cw-content ul.cw-guide-index + h3,
.cw-content h3 + ul.cw-guide-index{ margin-top:.7rem; }

/* Inline "read next" nudge inside a paragraph run. */
.cw-content .read-next{
  display:block; margin:1.6rem 0; padding:.75rem 1rem;
  border:1px dashed rgba(201,138,58,.5); border-radius:8px;
  background:rgba(201,138,58,.06); font-size:.95rem;
}
.cw-content .read-next strong{ color:var(--ink,#293430); }

/* Tables occasionally appear in the guides; keep them inside the column. */
.cw-content .table-wrap{ overflow-x:auto; margin:1.6rem 0; }
.cw-content table{ width:100%; border-collapse:collapse; font-size:.95rem; }
.cw-content th,.cw-content td{ border:1px solid rgba(0,0,0,.12); padding:.55rem .7rem; text-align:left; vertical-align:top; }
.cw-content thead th{ background:rgba(0,0,0,.04); font-weight:600; }
/*A4-CONTENT-MEDIA-END*/