/* Dangerous Game rebuild - all classes prefixed kwd- so nothing else is touched */
.kwd{--gold:#9F974F;--gold-dk:#867e3f;--title:#3a3730;--body:#5d5b54;--cream:#F9F7E6;
     --ink:#252323;--line:#e3dfcd;--soft:#faf9f2;
     color:var(--body);font-size:16px;line-height:1.68}
.kwd *{box-sizing:border-box}
.kwd h2{font-family:Farro,Georgia,serif;font-size:27px;line-height:1.22;color:var(--title);
        margin:44px 0 14px;font-weight:700;text-wrap:balance}
.kwd h2:first-child{margin-top:0}
.kwd h3{font-family:Farro,Georgia,serif;font-size:19px;line-height:1.3;color:var(--title);
        margin:26px 0 8px;font-weight:700}
.kwd p{margin:0 0 15px}
.kwd a{color:var(--gold-dk)}
.kwd .kwd-eyebrow{font-size:12px;letter-spacing:.17em;text-transform:uppercase;color:var(--gold);
        font-weight:700;margin:0 0 6px}

/* hero ------------------------------------------------------------------ */
.kwd-hero{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;margin:0 0 26px}
/* Held to 16:9 and capped in height. Left to itself a near-square original renders
   ~600px tall and swamps the top of the page (AJ, 21 Sep: "it looks too big"). */
.kwd-hero>img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;
        max-height:390px;background:var(--soft)}
.kwd-hero-body{padding:22px 22px 24px}
.kwd-lead{font-size:18px;line-height:1.6;color:var(--title);margin:0 0 18px}
.kwd-lead em{font-style:italic;color:var(--body)}

/* fact chips ------------------------------------------------------------ */
.kwd-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:0 0 20px;padding:0;list-style:none}
.kwd-facts li{background:var(--cream);border-radius:10px;padding:11px 12px}
.kwd-facts b{display:block;font-family:Farro,Georgia,serif;font-size:16px;color:var(--title);
        line-height:1.25;font-variant-numeric:tabular-nums}
.kwd-facts span{display:block;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;
        color:var(--gold-dk);margin-top:3px}

/* buttons --------------------------------------------------------------- */
.kwd-btns{display:flex;flex-wrap:wrap;gap:10px;margin:0}
.kwd-btn{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:12px 24px;
        font-size:15px;font-weight:700;text-decoration:none;border:2px solid var(--gold);
        transition:background .15s,color .15s}
.kwd-btn.is-solid{background:var(--gold);color:#fff}
.kwd-btn.is-solid:hover{background:var(--gold-dk);border-color:var(--gold-dk);color:#fff}
.kwd-btn.is-ghost{background:#fff;color:var(--gold-dk)}
.kwd-btn.is-ghost:hover{background:var(--cream);color:var(--gold-dk)}
.kwd-btn:focus-visible{outline:3px solid #cfc78a;outline-offset:2px}

/* short-answer box ------------------------------------------------------ */
.kwd-quick{background:var(--cream);border-radius:14px;padding:22px 24px;margin:0 0 30px}
.kwd-quick h2{margin:0 0 10px;font-size:21px}
.kwd-quick ul{margin:0;padding-left:20px}
.kwd-quick li{margin:0 0 9px}
.kwd-quick li:last-child{margin-bottom:0}

/* notice - things a buyer must know BEFORE booking, not buried in an FAQ ---- */
.kwd-notice{border:1px solid var(--line);border-left:5px solid var(--gold);border-radius:12px;
        background:#fff;padding:20px 22px;margin:0 0 30px}
.kwd-notice h2{margin:0 0 10px;font-size:20px}
.kwd-notice ul{margin:0;padding-left:20px}
.kwd-notice li{margin:0 0 9px}
.kwd-notice li:last-child{margin-bottom:0}
.kwd-notice li b{color:var(--title)}

/* videos ---------------------------------------------------------------- */
.kwd-vids{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0 0 10px;padding:0;list-style:none}
.kwd-vids.is-single{grid-template-columns:1fr}
.kwd-vid{position:relative;display:block;width:100%;padding:0;border:0;background:#111;cursor:pointer;
        border-radius:12px;overflow:hidden;text-align:left;font:inherit;color:inherit}
.kwd-vid img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.kwd-vid .kwd-play{position:absolute;left:50%;top:38%;transform:translate(-50%,-50%);
        width:56px;height:40px;border-radius:10px;background:rgba(159,151,79,.94);
        display:flex;align-items:center;justify-content:center;pointer-events:none}
.kwd-vid .kwd-play::after{content:"";border-left:15px solid #fff;border-top:9px solid transparent;
        border-bottom:9px solid transparent;margin-left:4px}
.kwd-vid:hover .kwd-play{background:var(--gold-dk)}
.kwd-vid .kwd-vtitle{display:block;padding:10px 12px 12px;font-size:13.5px;line-height:1.4;
        color:#fff;background:#252323}
.kwd-vid:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.kwd-vid iframe{display:block;width:100%;aspect-ratio:16/9;border:0}
.kwd-vidnote{font-size:13.5px;margin:6px 0 0}

/* photo strip ----------------------------------------------------------- */
.kwd-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 14px;padding:0;list-style:none}
.kwd-photos a{display:block;border-radius:10px;overflow:hidden;background:var(--soft)}
.kwd-photos img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;transition:transform .25s}
.kwd-photos a:hover img{transform:scale(1.04)}

/* reference accordions -------------------------------------------------- */
.kwd-ref{border-top:1px solid var(--line)}
.kwd-ref details{border-bottom:1px solid var(--line)}
.kwd-ref summary{cursor:pointer;list-style:none;padding:15px 34px 15px 0;position:relative;
        font-family:Farro,Georgia,serif;font-size:17px;font-weight:700;color:var(--title)}
.kwd-ref summary::-webkit-details-marker{display:none}
.kwd-ref summary::after{content:"";position:absolute;right:8px;top:50%;width:9px;height:9px;
        border-right:2px solid var(--gold);border-bottom:2px solid var(--gold);
        transform:translateY(-70%) rotate(45deg);transition:transform .2s}
.kwd-ref details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.kwd-ref summary:focus-visible{outline:3px solid #cfc78a;outline-offset:2px}
.kwd-ref .kwd-refbody{padding:0 0 18px}
.kwd-ref .kwd-refbody ul{margin:0;padding-left:20px}
.kwd-ref .kwd-refbody li{margin:0 0 8px}

/* shot placement diagrams ----------------------------------------------- */
.kwd-shots{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 14px;padding:0;list-style:none}
.kwd-shots img{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:10px;background:#fff}

/* faq ------------------------------------------------------------------- */
.kwd-faq details{border:1px solid var(--line);border-radius:12px;margin:0 0 10px;background:#fff}
.kwd-faq summary{cursor:pointer;list-style:none;padding:15px 40px 15px 18px;position:relative;
        font-weight:700;color:var(--title);font-size:16px}
.kwd-faq summary::-webkit-details-marker{display:none}
.kwd-faq summary::after{content:"+";position:absolute;right:16px;top:13px;font-size:21px;
        color:var(--gold);line-height:1}
.kwd-faq details[open] summary::after{content:"\2013"}
.kwd-faq summary:focus-visible{outline:3px solid #cfc78a;outline-offset:2px}
.kwd-faq .kwd-ans{padding:0 18px 16px}
.kwd-faq .kwd-ans p{margin:0}

/* closing cta ----------------------------------------------------------- */
.kwd-cta{background:var(--ink);color:#e8e6dc;border-radius:16px;padding:30px 28px;margin:40px 0 0}
.kwd-cta h2{color:#fff;margin:0 0 10px;font-size:25px}
.kwd-cta p{color:#c9c6b9;margin:0 0 20px}
.kwd-cta .kwd-btn.is-ghost{background:transparent;color:#e6e2cf;border-color:#6d6851}
.kwd-cta .kwd-btn.is-ghost:hover{background:#332f2b;color:#fff}
.kwd-lines{display:grid;grid-template-columns:1fr 1fr;gap:8px 20px;margin:20px 0 0;padding:20px 0 0;
        border-top:1px solid #423d35;font-size:14.5px}
.kwd-lines a{color:#e6e2cf;text-decoration:none;border-bottom:1px solid #5b564a}
.kwd-lines a:hover{color:#fff;border-bottom-color:var(--gold)}
.kwd-lines span{color:#8d8878;display:block;font-size:11.5px;letter-spacing:.09em;text-transform:uppercase}

/* next-species nav ------------------------------------------------------ */
.kwd-next{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 0;padding:0;list-style:none}
.kwd-next a{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:8px 16px;
        font-size:14px;text-decoration:none;color:var(--title);background:#fff}
.kwd-next a:hover{border-color:var(--gold);color:var(--gold-dk);background:var(--cream)}

/* species cards on the hub ---------------------------------------------- */
.kwd-cards{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:0;padding:0;list-style:none}
.kwd-card{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;
        display:flex;flex-direction:column}
.kwd-card img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover}
.kwd-card-body{padding:16px 18px 18px;display:flex;flex-direction:column;flex:1}
.kwd-card h3{margin:0 0 4px;font-size:19px}
.kwd-card .kwd-latin{font-size:12.5px;font-style:italic;color:var(--gold-dk);margin:0 0 8px}
.kwd-card p{font-size:14.5px;line-height:1.55;margin:0 0 14px}
.kwd-card .kwd-cardlink{margin-top:auto;font-weight:700;font-size:14.5px;text-decoration:none;
        color:var(--gold-dk)}
.kwd-card .kwd-cardlink:hover{text-decoration:underline}
.kwd-card .kwd-vcount{font-size:12px;color:var(--body);margin:0 0 10px}
@media(min-width:782px){
  /* Seven cards in two columns leaves the seventh stranded alone in its row,
     so it runs the full width with the photo beside the text instead. */
  .kwd-cards>.kwd-card:last-child{grid-column:1 / -1;flex-direction:row}
  /* The photo fills the left half by being taken OUT of flow. With height:100% it
     sized itself from its own content, and a3 Lazy Load's 1x1 placeholder turned
     that into a 1,500px-tall card on the live site (21 Sep). Absolute positioning
     cannot feed back into the card's height whatever the image happens to be. */
  .kwd-cards>.kwd-card:last-child>a{flex:0 0 46%;display:block;position:relative;min-height:215px}
  .kwd-cards>.kwd-card:last-child>a img{position:absolute;top:0;left:0;width:100%;height:100%;aspect-ratio:auto;object-fit:cover}
  .kwd-cards>.kwd-card:last-child .kwd-card-body{flex:1}
}

@media(max-width:781px){
  .kwd-facts{grid-template-columns:1fr 1fr}
  .kwd-vids{grid-template-columns:1fr}
  .kwd-cards{grid-template-columns:1fr}
  .kwd-lines{grid-template-columns:1fr}
  .kwd h2{font-size:23px}
  .kwd-hero-body{padding:18px}
  .kwd-cta{padding:24px 20px}
}
@media(max-width:420px){
  .kwd-photos{grid-template-columns:1fr 1fr}
  .kwd-shots{grid-template-columns:1fr}
  .kwd-btn{width:100%;justify-content:center}
}
@media(prefers-reduced-motion:reduce){
  .kwd-photos img,.kwd-ref summary::after{transition:none}
}

/* concession page additions (Zambia) */
.kwd-hero>img.is-wide{aspect-ratio:21/9}
.kwd-species{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:0 0 26px;padding:0;list-style:none}
.kwd-species li{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;display:flex;flex-direction:column}
.kwd-species img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover}
.kwd-species h3{margin:12px 14px 4px;font-size:17px}
.kwd-species p{margin:0 14px 10px;font-size:14px;line-height:1.5}
.kwd-species a.kwd-cardlink{margin:auto 14px 14px;font-weight:700;color:var(--gold-dk);text-decoration:none}
.kwd-fish{display:grid;grid-template-columns:1fr;gap:12px;background:var(--cream);border-radius:14px;padding:22px 24px;margin:0 0 30px}
.kwd-fish h2{margin:0 0 8px;font-size:22px}
.kwd-fish p{margin:0 0 12px}
.kwd-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px;padding:0;list-style:none}
.kwd-chips li{background:#fff;border:1px solid var(--line);border-radius:999px;padding:5px 12px;font-size:13px}
.kwd-inc{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0 0 30px}
.kwd-inc>div{border:1px solid var(--line);border-radius:12px;padding:16px 18px;background:#fff}
.kwd-inc h3{margin:0 0 8px;font-size:16px}
.kwd-inc ul{margin:0;padding-left:20px}
.kwd-inc li{margin:0 0 6px;font-size:15px}
.kwd-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0 0 18px;padding:0;list-style:none;counter-reset:none}
.kwd-steps li{background:var(--cream);border-radius:12px;padding:14px 16px;display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:start}
.kwd-steps b.kwd-num{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--gold);color:#fff;font-size:15px}
.kwd-steps strong{display:block;font-size:15px;margin:4px 0 2px}
.kwd-steps span{font-size:13.5px;line-height:1.45}
.kwd-day{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:0 0 26px;padding:0;list-style:none}
.kwd-day li{border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:#fff}
.kwd-day b{display:block;color:var(--gold-dk);font-size:18px;margin:0 0 4px}
.kwd-day span{font-size:14px;line-height:1.45}
.kwd-note{font-size:14px;color:var(--body);background:var(--cream);border-radius:10px;padding:12px 16px;margin:0 0 26px}
.kwd-photos.is-4{grid-template-columns:repeat(4,1fr)}
.kwd-photos figcaption{font-size:12.5px;color:var(--body);padding:5px 2px 0}
@media(max-width:781px){.kwd-species,.kwd-inc,.kwd-steps{grid-template-columns:1fr}.kwd-day,.kwd-photos.is-4{grid-template-columns:1fr 1fr}.kwd-hero>img.is-wide{aspect-ratio:16/9}}
