/* Tiger reserve pages (tiger-reserve.php): content-driven sections built on the tr-* layout. */
.rv-nav { position: sticky; top: 64px; z-index: 30; background: rgba(250, 247, 238, .94); backdrop-filter: blur(8px); border-bottom: 1px solid rgba(188, 140, 63, .22); }
.rv-nav .tr-wrap { display: flex; gap: .4rem; overflow-x: auto; padding-top: .55rem; padding-bottom: .55rem; scrollbar-width: none; }
.rv-nav .tr-wrap::-webkit-scrollbar { display: none; }
.rv-nav a { flex: 0 0 auto; padding: .42rem .95rem; border-radius: 999px; font-size: .86rem; font-weight: 600; color: #5a4632; white-space: nowrap; text-decoration: none; }
.rv-nav a:hover { background: rgba(188, 140, 63, .14); color: #1f1510; }

.rv-sec { scroll-margin-top: 120px; }
.rv-split { display: grid; gap: 2rem; align-items: start; }
@media (min-width: 992px) {
  .rv-split { grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: 3.5rem; }
  .rv-split--flip { grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); }
  .rv-split--flip .rv-photos { order: -1; }
  .rv-photos { position: sticky; top: 140px; }
}
.rv-single { max-width: 60rem; }
.rv-copy .tr-h2 { margin-bottom: 1.1rem; }
.rv-photos { display: grid; gap: 1rem; }
.rv-photo { margin: 0; border-radius: 1.2rem; overflow: hidden; box-shadow: 0 18px 40px -22px rgba(40, 24, 10, .45); }
.rv-photo img { display: block; width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.rv-photos--multi .rv-photo:first-child img { aspect-ratio: 4 / 5; }

.rv-prose { color: #4d4137; font-size: 1.02rem; line-height: 1.85; }
.rv-prose p { margin: 0 0 1.05rem; }
.rv-prose strong { color: #2a1d15; font-weight: 700; }
.rv-prose h3, .rv-prose h4 { font-family: 'Playfair Display', Georgia, serif; color: #8f5f1f; font-weight: 600; line-height: 1.25; margin: 1.9rem 0 .7rem; }
.rv-prose h3 { font-size: 1.45rem; }
.rv-prose h4 { font-size: 1.15rem; }
.rv-prose ul, .rv-prose ol { margin: .4rem 0 1.2rem; padding-left: 1.25rem; }
.rv-prose ul { list-style: disc; }
.rv-prose ol { list-style: decimal; }
.rv-prose li { margin: .38rem 0; padding-left: .2rem; }
.rv-prose li::marker { color: #c9973f; }
.rv-prose table { width: 100%; border-collapse: collapse; margin: 1rem 0 1.4rem; font-size: .96rem; }
.rv-prose th, .rv-prose td { padding: .6rem .75rem; border-bottom: 1px solid rgba(154, 106, 39, .22); text-align: left; }
.rv-prose a { color: #8f5f1f; text-decoration: underline; }

.rv-cards { display: grid; gap: 1.2rem; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.rv-card { display: block; border-radius: 1.2rem; overflow: hidden; background: #fff; border: 1px solid rgba(188, 140, 63, .22); color: #3b2b1e; box-shadow: 0 16px 36px -26px rgba(40, 24, 10, .45); text-decoration: none; transition: transform .25s, border-color .25s; }
.rv-card:hover { transform: translateY(-4px); border-color: rgba(188, 140, 63, .7); }
.rv-card img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.rv-card span { display: block; padding: 1rem 1.15rem 1.2rem; }
.rv-card small { display: block; font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: #bc8c3f; margin-bottom: .3rem; }
.rv-card b { display: block; font-family: 'Playfair Display', Georgia, serif; font-size: 1.15rem; line-height: 1.3; color: #1f1510; }
.rv-card em { display: block; margin-top: .3rem; font-style: normal; font-size: .9rem; color: #6b5a4a; }

/* ---- designed blocks (overview facts, history timeline, wildlife features, zone cards, season) ---- */
.rv-story { max-width: 52rem; margin: 0 auto; }
.rv-story li { font-size: 1rem; }
.rv-story li p { margin: 0; }

.rv-feature { display: grid; gap: 1.6rem; align-items: center; margin: 0 auto 3rem; max-width: 70rem; }
.rv-feature:last-child { margin-bottom: 0; }
@media (min-width: 900px) {
  .rv-feature { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 3.2rem; }
  .rv-feature--flip { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); }
  .rv-feature--flip .rv-feature-img { order: 2; }
  .rv-feature--solo { grid-template-columns: minmax(0, 1fr); max-width: 52rem; }
}
.rv-feature-img { margin: 0; border-radius: 1.8rem; overflow: hidden; box-shadow: 0 24px 50px -28px rgba(40, 24, 10, .5); }
.rv-feature-img img { display: block; width: 100%; aspect-ratio: 5 / 4; object-fit: cover; }
.rv-feature-h { font-family: 'Playfair Display', Georgia, serif; font-size: clamp(1.4rem, 2.4vw, 1.9rem); color: #1f1510; margin: 0 0 .8rem; line-height: 1.2; }
.rv-feature-body .rv-prose h4 { font-size: 1.1rem; }

.rv-prose--center { max-width: 56rem; margin: 0 auto 2rem; }
.rv-sub { font-family: 'Playfair Display', Georgia, serif; font-size: 1.5rem; color: #1f1510; margin: 2.2rem 0 1.2rem; text-align: center; }
.rv-sub i { color: #bc8c3f; margin-right: .5rem; font-size: 1.1rem; }
.rv-zones { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); margin-bottom: 2.2rem; }
.rv-zone { position: relative; background: #fff; border-radius: 1.3rem; padding: 1.4rem 1.4rem 1.3rem; box-shadow: 0 14px 34px -22px rgba(40, 24, 10, .4); border: 1px solid rgba(188, 140, 63, .18); }
.rv-zone-n { position: absolute; top: 1rem; right: 1.1rem; font-family: 'Playfair Display', Georgia, serif; font-size: 1.6rem; color: rgba(188, 140, 63, .35); line-height: 1; }
.rv-zone h4 { font-family: 'Playfair Display', Georgia, serif; font-size: 1.1rem; color: #8f5f1f; margin: 0 2.4rem .55rem 0; line-height: 1.3; }
.rv-zone p { margin: 0; font-size: .92rem; line-height: 1.7; color: #5a4d42; }

.rv-boxes { display: grid; gap: 1.2rem; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.rv-box { background: #fff; border-radius: 1.4rem; padding: 1.6rem 1.7rem; border: 1px solid rgba(188, 140, 63, .18); box-shadow: 0 14px 34px -24px rgba(40, 24, 10, .35); }
.rv-box h3 { font-family: 'Playfair Display', Georgia, serif; font-size: 1.25rem; color: #1f1510; margin: 0 0 .8rem; }
.rv-box .rv-prose { font-size: .96rem; line-height: 1.75; }
.rv-box .rv-prose h3, .rv-box .rv-prose h4 { margin-top: 1rem; font-size: 1.05rem; }

.rv-season { display: grid; gap: 1.4rem; align-items: stretch; }
@media (min-width: 900px) { .rv-season:not(.rv-season--solo) { grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); } }
.rv-season .tr-box { margin: 0; }
.rv-season-img { margin: 0; border-radius: 1.6rem; overflow: hidden; min-height: 280px; }
.rv-season-img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.rv-prose--dark, .rv-prose--dark p, .rv-prose--dark li { color: rgba(244, 234, 211, .86); }
.rv-prose--dark strong { color: #fff; }
.rv-prose--dark h3, .rv-prose--dark h4 { color: #e8bd55; }
.rv-single .rv-prose, .rv-sec .tr-photo-col + div .rv-prose { max-width: 60rem; }

.rv-season .tr-months { margin-bottom: 1.2rem; }

/* ===================== premium pass: justified text, safari + best-time blocks ===================== */
.rv-prose p, .rv-zone-text, .rv-vehicle p, .rv-story li, .rv-box .rv-prose p, .rv-bt .rv-prose p, .rv-note { text-align: justify; text-justify: inter-word; hyphens: auto; -webkit-hyphens: auto; }
.rv-prose--lead { max-width: 58rem; margin: 0 auto 2.4rem; font-size: 1.06rem; }
.rv-prose--lead p { text-align: center; text-align-last: center; }
.rv-sec .tr-head { margin-bottom: 2.2rem; }

/* gold sub-heading with side rules */
.rv-subhead { display: flex; align-items: center; gap: 1.1rem; margin: 3rem 0 1.6rem; }
.rv-subhead span { flex: 1; height: 1px; background: linear-gradient(90deg, transparent, rgba(188, 140, 63, .55)); }
.rv-subhead span:last-child { background: linear-gradient(270deg, transparent, rgba(188, 140, 63, .55)); }
.rv-subhead h3 { margin: 0; font-family: 'Playfair Display', Georgia, serif; font-size: clamp(1.25rem, 2.2vw, 1.7rem); color: #1f1510; text-align: center; letter-spacing: -.005em; }

/* vehicles (jeep / canter) */
.rv-vehicles { display: grid; gap: 1.3rem; margin: 0 auto 1rem; max-width: 70rem; }
@media (min-width: 860px) { .rv-vehicles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.rv-vehicle { display: flex; gap: 1.2rem; align-items: flex-start; background: linear-gradient(160deg, #fff, #fbf6ea); border: 1px solid rgba(188, 140, 63, .3); border-radius: 1.6rem; padding: 1.7rem 1.7rem 1.6rem; box-shadow: 0 22px 44px -30px rgba(40, 24, 10, .5); position: relative; overflow: hidden; }
.rv-vehicle::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: linear-gradient(180deg, #e8bd55, #bc8c3f); }
.rv-vehicle-ic { flex: 0 0 auto; display: grid; place-items: center; width: 3.4rem; height: 3.4rem; border-radius: 1rem; background: linear-gradient(145deg, #2a1d15, #4a3524); color: #e8bd55; font-size: 1.3rem; box-shadow: 0 10px 22px -12px rgba(40, 24, 10, .7); }
.rv-vehicle h3 { margin: 0 0 .25rem; font-family: 'Playfair Display', Georgia, serif; font-size: 1.4rem; color: #1f1510; }
.rv-vehicle-meta { margin: 0 0 .7rem !important; font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; color: #8f5f1f; font-weight: 700; text-align: left !important; }
.rv-vehicle p { margin: 0; font-size: .96rem; line-height: 1.75; color: #4d4137; }

/* zone cards */
.rv-zones { display: grid; gap: 1.1rem; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); margin-bottom: 1rem; }
.rv-zone { position: relative; display: flex; flex-direction: column; background: #fff; border-radius: 1.4rem; padding: 1.5rem 1.5rem 1.4rem; border: 1px solid rgba(188, 140, 63, .2); box-shadow: 0 16px 36px -26px rgba(40, 24, 10, .45); transition: transform .25s, box-shadow .25s, border-color .25s; overflow: hidden; }
.rv-zone::after { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: linear-gradient(90deg, #e8bd55, #bc8c3f 60%, transparent); }
.rv-zone:hover { transform: translateY(-4px); box-shadow: 0 26px 46px -26px rgba(40, 24, 10, .5); border-color: rgba(188, 140, 63, .55); }
.rv-zone header { display: flex; align-items: center; gap: .85rem; margin-bottom: .7rem; }
.rv-zone-n { flex: 0 0 auto; position: static; display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: 50%; background: #2a1d15; color: #e8bd55; font-family: 'Playfair Display', Georgia, serif; font-size: .95rem; line-height: 1; }
.rv-zone h4 { margin: 0; font-family: 'Playfair Display', Georgia, serif; font-size: 1.18rem; color: #1f1510; line-height: 1.25; }
.rv-zone-tags { display: flex; flex-wrap: wrap; gap: .45rem; margin: 0 0 .85rem !important; text-align: left !important; }
.rv-tag { display: inline-flex; align-items: center; gap: .35rem; padding: .22rem .7rem; border-radius: 999px; background: rgba(188, 140, 63, .14); color: #8f5f1f; font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.rv-tag--core { background: #2a1d15; color: #e8bd55; }
.rv-tag--km { background: rgba(60, 100, 50, .12); color: #3d6a2d; }
.rv-zone-text { margin: 0; font-size: .93rem; line-height: 1.75; color: #5a4d42; }

/* timings */
.rv-note { max-width: 52rem; margin: 0 auto 1.4rem; text-align: center !important; color: #5a4d42; font-style: italic; }
.rv-times { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); max-width: 70rem; margin: 0 auto 1rem; }
.rv-time { background: linear-gradient(165deg, #2a1d15, #3a2a1c); border-radius: 1.4rem; padding: 1.3rem 1.4rem 1.4rem; color: #f4ead3; box-shadow: 0 20px 40px -28px rgba(20, 10, 4, .8); }
.rv-time b { display: block; font-family: 'Playfair Display', Georgia, serif; font-size: 1.05rem; color: #e8bd55; padding-bottom: .75rem; margin-bottom: .8rem; border-bottom: 1px solid rgba(232, 189, 85, .28); }
.rv-time span { display: grid; grid-template-columns: 1.4rem 1fr auto; align-items: center; gap: .5rem; padding: .35rem 0; font-size: .92rem; }
.rv-time span i { color: #e8bd55; }
.rv-time small { font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; color: rgba(244, 234, 211, .7); }
.rv-time em { font-style: normal; font-weight: 700; color: #fff; }

/* rules checklist */
.rv-rules { max-width: 70rem; margin: 0 auto; background: #fff; border: 1px solid rgba(188, 140, 63, .25); border-radius: 1.6rem; padding: 1.6rem 1.8rem; box-shadow: 0 18px 40px -30px rgba(40, 24, 10, .45); }
.rv-rules ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem 2rem; }
@media (min-width: 860px) { .rv-rules ul { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.rv-rules li { position: relative; padding: .55rem 0 .55rem 2.1rem; border-bottom: 1px dashed rgba(188, 140, 63, .28); font-size: .95rem; line-height: 1.65; color: #4d4137; text-align: justify; hyphens: auto; }
.rv-rules li::before { content: '\f00c'; font-family: 'Font Awesome 6 Free'; font-weight: 900; position: absolute; left: 0; top: .62rem; width: 1.35rem; height: 1.35rem; display: grid; place-items: center; border-radius: 50%; background: rgba(188, 140, 63, .18); color: #8f5f1f; font-size: .62rem; }

/* best time to visit */
.rv-bt { display: grid; gap: 2rem; align-items: stretch; max-width: 72rem; margin: 0 auto; }
@media (min-width: 960px) { .rv-bt { grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 3rem; } }
.rv-bt-main { background: rgba(255, 255, 255, .05); border: 1px solid rgba(232, 189, 85, .22); border-radius: 1.8rem; padding: 1.9rem 1.9rem 1.6rem; }
.rv-bt-best { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.3rem; }
.rv-bt-best > i { display: grid; place-items: center; width: 3.2rem; height: 3.2rem; border-radius: 1rem; background: linear-gradient(145deg, #e8bd55, #bc8c3f); color: #2a1d15; font-size: 1.25rem; }
.rv-bt-best small { display: block; font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: rgba(244, 234, 211, .7); }
.rv-bt-best b { display: block; font-family: 'Playfair Display', Georgia, serif; font-size: clamp(1.3rem, 2.6vw, 1.8rem); color: #fff; line-height: 1.2; }
.rv-bt-months { display: grid !important; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .45rem; margin: 0 0 .7rem !important; }
@media (min-width: 560px) { .rv-bt-months { grid-template-columns: repeat(12, minmax(0, 1fr)); } }
.rv-bt-months span { text-align: center; padding: .55rem 0; border-radius: .7rem; font-size: .8rem; font-weight: 600; background: rgba(255, 255, 255, .07); color: rgba(244, 234, 211, .7); }
.rv-bt-months span.is-best { background: linear-gradient(160deg, #e8bd55, #bc8c3f); color: #2a1d15; font-weight: 800; box-shadow: 0 8px 18px -10px rgba(232, 189, 85, .8); }
.rv-bt-key { display: flex; align-items: center; gap: .5rem; margin: 0 0 1.4rem; font-size: .78rem; color: rgba(244, 234, 211, .65); }
.rv-bt-key i { width: .8rem; height: .8rem; border-radius: 3px; background: linear-gradient(160deg, #e8bd55, #bc8c3f); display: inline-block; }
.rv-bt-lead { margin: 0 0 1rem; padding-left: 1.1rem; border-left: 3px solid #e8bd55; font-family: 'Playfair Display', Georgia, serif; font-size: 1.15rem; line-height: 1.65; color: #fff; text-align: justify; hyphens: auto; }
.rv-bt .rv-prose--dark p { font-size: .98rem; line-height: 1.85; margin-bottom: .9rem; }
.rv-bt-photo { position: relative; margin: 0; border-radius: 1.8rem; overflow: hidden; min-height: 320px; box-shadow: 0 30px 60px -34px rgba(0, 0, 0, .8); }
.rv-bt-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.rv-bt-photo figcaption { position: absolute; left: 1rem; bottom: 1rem; }

/* whole-page rhythm */
.rv-feature-body .rv-prose p { text-align: justify; }
.tr-facts li span { text-align: left; }
@media (max-width: 640px) {
  .rv-vehicle { flex-direction: column; }
  .rv-zones { grid-template-columns: 1fr; }
  .rv-bt-main { padding: 1.4rem 1.2rem; }
  .rv-prose p, .rv-zone-text, .rv-vehicle p, .rv-story li { text-align: left; hyphens: manual; }
}

.rv-box--wide { max-width: 62rem; margin: 0 auto 1.4rem; padding: 1.8rem 2rem; }
.rv-prose p:has(> strong:only-child) { margin: 1.5rem 0 .5rem; text-align: left; }
.rv-prose p:has(> strong:only-child) strong { font-family: 'Playfair Display', Georgia, serif; font-size: 1.12rem; color: #8f5f1f; }
.rv-box--wide .rv-prose > :first-child { margin-top: 0; }

/* zones as a swipeable carousel (keeps the long list short) */
.rv-car { position: relative; margin: 0 -1.25rem; }
@media (min-width: 1024px) { .rv-car { margin: 0 -2rem; } }
.rv-car .rv-zones.rv-car-track { display: flex; gap: 1rem; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding: 0 1.25rem; padding: .6rem 1.25rem 1.6rem; margin: 0; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
@media (min-width: 1024px) { .rv-car .rv-zones.rv-car-track { padding: .6rem 2rem 1.8rem; scroll-padding: 0 2rem; } }
.rv-car-track::-webkit-scrollbar { display: none; }
.rv-car .rv-zone { flex: 0 0 min(86%, 350px); scroll-snap-align: start; }
.rv-car .rv-zone-text { text-align: justify; }
.rv-car-btn { position: absolute; top: 45%; z-index: 3; width: 3rem; height: 3rem; border-radius: 50%; border: 1px solid rgba(188, 140, 63, .45); background: #2a1d15; color: #e8bd55; display: none; place-items: center; cursor: pointer; box-shadow: 0 14px 28px -12px rgba(20, 10, 4, .7); transition: transform .2s, opacity .2s; }
@media (min-width: 900px) { .rv-car-btn { display: grid; } }
.rv-car-btn:hover:not(:disabled) { transform: scale(1.08); }
.rv-car-btn:disabled { opacity: .25; cursor: default; }
.rv-car-btn--prev { left: .6rem; }
.rv-car-btn--next { right: .6rem; }
.rv-car-hint { text-align: center; font-size: .82rem; color: #8a7355; margin: -.4rem 0 0; letter-spacing: .04em; }
.rv-car-hint i { margin-right: .4rem; color: #bc8c3f; }

#reach .tr-lead { white-space: normal; max-width: 46rem; margin-left: auto; margin-right: auto; }
.rv-times { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.rv-time span { grid-template-columns: 1.4rem auto 1fr; }
.rv-time em { text-align: right; white-space: nowrap; }

@media (min-width: 720px) { .rv-times { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 46rem; } }

/* ===================== safari guide: tabs + zone list/detail ===================== */
.rv-tabs { display: flex; justify-content: center; flex-wrap: wrap; gap: .5rem; margin: 0 auto 2rem; padding: .45rem; width: fit-content; max-width: 100%; background: #fff; border: 1px solid rgba(188, 140, 63, .3); border-radius: 999px; box-shadow: 0 16px 34px -24px rgba(40, 24, 10, .45); }
.rv-tab { display: inline-flex; align-items: center; gap: .55rem; padding: .7rem 1.25rem; border: 0; border-radius: 999px; background: transparent; color: #5a4632; font: 600 .92rem/1 'DM Sans', system-ui, sans-serif; cursor: pointer; transition: background .2s, color .2s, box-shadow .2s; white-space: nowrap; }
.rv-tab i { color: #bc8c3f; font-size: .95rem; }
.rv-tab b { display: inline-grid; place-items: center; min-width: 1.4rem; height: 1.4rem; padding: 0 .35rem; border-radius: 999px; background: rgba(188, 140, 63, .18); color: #8f5f1f; font-size: .74rem; }
.rv-tab:hover { background: rgba(188, 140, 63, .1); }
.rv-tab.is-on { background: linear-gradient(145deg, #2a1d15, #4a3524); color: #fff; box-shadow: 0 12px 24px -14px rgba(20, 10, 4, .8); }
.rv-tab.is-on i { color: #e8bd55; }
.rv-tab.is-on b { background: #e8bd55; color: #2a1d15; }
@media (max-width: 640px) {
  .rv-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-radius: 1.4rem; width: 100%; }
  .rv-tab { justify-content: center; padding: .75rem .6rem; font-size: .86rem; }
}
.rv-panel[hidden], .rv-md-card[hidden] { display: none; }
.rv-panel { animation: rvFade .35s ease; }
@keyframes rvFade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* zone list + detail */
.rv-md { display: grid; gap: 1.2rem; max-width: 72rem; margin: 0 auto; }
@media (min-width: 900px) { .rv-md { grid-template-columns: minmax(260px, .8fr) minmax(0, 1.6fr); gap: 1.6rem; align-items: start; } }
.rv-md-list { display: flex; gap: .55rem; overflow-x: auto; padding: .2rem .1rem .6rem; scrollbar-width: thin; }
@media (min-width: 900px) { .rv-md-list { flex-direction: column; overflow-y: auto; overflow-x: hidden; max-height: 31rem; padding: .2rem .5rem .2rem .1rem; gap: .5rem; } }
.rv-md-item { flex: 0 0 auto; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .75rem; padding: .8rem 1rem; border: 1px solid rgba(188, 140, 63, .22); border-radius: 1rem; background: #fff; color: #3b2b1e; text-align: left; cursor: pointer; font: 600 .94rem/1.25 'DM Sans', system-ui, sans-serif; transition: transform .2s, border-color .2s, background .2s, box-shadow .2s; }
.rv-md-item b { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: rgba(188, 140, 63, .16); color: #8f5f1f; font-size: .78rem; }
.rv-md-item em { font-style: normal; font-size: .64rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; padding: .2rem .5rem; border-radius: 999px; background: rgba(60, 100, 50, .12); color: #3d6a2d; }
.rv-md-item em.is-core { background: #2a1d15; color: #e8bd55; }
.rv-md-item:hover { border-color: rgba(188, 140, 63, .6); transform: translateX(2px); }
.rv-md-item.is-on { background: linear-gradient(145deg, #2a1d15, #4a3524); color: #fff; border-color: #2a1d15; box-shadow: 0 16px 30px -18px rgba(20, 10, 4, .8); }
.rv-md-item.is-on b { background: #e8bd55; color: #2a1d15; }
.rv-md-item.is-on em { background: rgba(232, 189, 85, .2); color: #e8bd55; }
@media (max-width: 899px) { .rv-md-item { grid-template-columns: auto auto; min-width: 11rem; } .rv-md-item em { display: none; } }

.rv-md-card { position: relative; border-radius: 1.8rem; padding: 2.1rem 2.2rem 2rem; background: linear-gradient(160deg, #2a1d15, #3b2a1b 60%, #2a1d15); color: #f4ead3; box-shadow: 0 30px 60px -34px rgba(20, 10, 4, .85); overflow: hidden; animation: rvFade .3s ease; }
.rv-md-card::after { content: ''; position: absolute; right: -4rem; top: -4rem; width: 14rem; height: 14rem; border-radius: 50%; background: radial-gradient(circle, rgba(232, 189, 85, .22), transparent 70%); pointer-events: none; }
.rv-md-kick { margin: 0 0 .5rem; font-size: .76rem; letter-spacing: .16em; text-transform: uppercase; color: #e8bd55; }
.rv-md-card h3 { margin: 0 0 1.2rem; font-family: 'Playfair Display', Georgia, serif; font-size: clamp(1.7rem, 3vw, 2.3rem); line-height: 1.15; color: #fff; }
.rv-md-km { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .9rem; margin: 0 0 1.4rem; padding: .85rem 1rem; border-radius: 1rem; background: rgba(255, 255, 255, .07); border: 1px solid rgba(232, 189, 85, .2); font-size: .84rem; }
.rv-md-km span { color: rgba(244, 234, 211, .75); white-space: nowrap; }
.rv-md-km span i { color: #e8bd55; margin-right: .35rem; }
.rv-md-km b { font-family: 'Playfair Display', Georgia, serif; font-size: 1.15rem; color: #fff; white-space: nowrap; }
.rv-md-bar { height: .5rem; border-radius: 999px; background: rgba(255, 255, 255, .12); overflow: hidden; }
.rv-md-bar i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #bc8c3f, #e8bd55); }
.rv-md-text { margin: 0 0 1.6rem; font-size: 1.02rem; line-height: 1.9; color: rgba(244, 234, 211, .92); text-align: justify; text-justify: inter-word; hyphens: auto; }
.rv-md-cta { display: inline-flex; align-items: center; gap: .6rem; padding: .8rem 1.4rem; border-radius: 999px; background: linear-gradient(145deg, #e8bd55, #bc8c3f); color: #2a1d15; font-weight: 700; font-size: .9rem; text-decoration: none; transition: transform .2s, box-shadow .2s; }
.rv-md-cta:hover { transform: translateY(-2px); box-shadow: 0 14px 26px -14px rgba(232, 189, 85, .9); }
@media (max-width: 640px) { .rv-md-card { padding: 1.5rem 1.3rem; } .rv-md-km { grid-template-columns: 1fr auto; } .rv-md-km .rv-md-bar { grid-column: 1 / -1; order: 3; } .rv-md-text { text-align: left; hyphens: manual; } }

html body .rv-md-card h3:not(#_):not(#_) { color: #fff !important; font-family: "Playfair Display", Georgia, serif !important; font-size: clamp(1.7rem, 3vw, 2.3rem) !important; line-height: 1.15 !important; margin: 0 0 1.2rem !important; }
html body .rv-vehicle h3:not(#_):not(#_) { color: #1f1510 !important; }
html body .rv-subhead h3:not(#_):not(#_) { color: #1f1510 !important; }

/* safari photos: vehicle cards with a picture + photo strip */
.rv-vehicle { display: block; padding: 0; }
.rv-vehicle::before { display: none; }
.rv-vehicle-img { position: relative; margin: 0; aspect-ratio: 16 / 9; overflow: hidden; }
.rv-vehicle-img img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.rv-vehicle:hover .rv-vehicle-img img { transform: scale(1.04); }
.rv-vehicle-img::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(20, 10, 4, .55)); }
.rv-vehicle-img .rv-vehicle-ic { position: absolute; left: 1.2rem; bottom: -1.5rem; z-index: 2; width: 3.2rem; height: 3.2rem; }
.rv-vehicle-body { padding: 2.2rem 1.7rem 1.7rem; }
.rv-strip { display: grid; gap: 1rem; max-width: 72rem; margin: 0 auto 1rem; }
.rv-strip-item { margin: 0; border-radius: 1.5rem; overflow: hidden; box-shadow: 0 22px 44px -28px rgba(40, 24, 10, .55); }
.rv-strip-item img { display: block; width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .6s ease; }
.rv-strip-item:hover img { transform: scale(1.05); }
@media (min-width: 760px) {
  .rv-strip--3 { grid-template-columns: 1.4fr 1fr 1fr; }
  .rv-strip--2 { grid-template-columns: repeat(2, 1fr); }
  .rv-strip--3 .rv-strip-item img, .rv-strip--2 .rv-strip-item img { aspect-ratio: auto; min-height: 260px; }
}

.rv-vehicle-img { overflow: visible; }
.rv-vehicle-img img { border-radius: 1.6rem 1.6rem 0 0; }
.rv-vehicle-img::after { border-radius: 1.6rem 1.6rem 0 0; }
.rv-vehicle-img .rv-vehicle-ic { bottom: -1.6rem; box-shadow: 0 0 0 4px #fbf6ea, 0 10px 22px -12px rgba(40, 24, 10, .7); }

/* ---- safari: one shared content width so every block lines up ---- */
.rv-safari .rv-tabs, .rv-safari .rv-panels, .rv-safari .rv-box--wide { width: 100%; max-width: 72rem; margin-left: auto; margin-right: auto; }
.rv-safari .rv-tabs { display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); border-radius: 1.4rem; gap: .4rem; }
.rv-safari .rv-tab { justify-content: center; }
.rv-safari .rv-vehicles, .rv-safari .rv-md, .rv-safari .rv-times, .rv-safari .rv-rules { width: 100%; max-width: none; margin-left: 0; margin-right: 0; }
.rv-safari .rv-times { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 1000px) { .rv-safari .rv-times { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.rv-safari .rv-time span { grid-template-columns: 1.3rem 1fr; row-gap: .1rem; }
.rv-safari .rv-time span small { grid-column: 2; }
.rv-safari .rv-time span em { grid-column: 2; text-align: left; }
.rv-safari .rv-time span i { grid-row: 1 / span 2; align-self: start; margin-top: .15rem; }
.rv-safari .rv-note { max-width: 72rem; }
.rv-safari .rv-subhead { max-width: 72rem; margin-left: auto; margin-right: auto; }
@media (max-width: 640px) { .rv-safari .rv-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---- one content width for the whole reserve page (matches the overview and How to Reach blocks) ---- */
.rv-safari .rv-tabs, .rv-safari .rv-panels, .rv-safari .rv-box--wide, .rv-safari .rv-note, .rv-safari .rv-subhead { max-width: none; }
.rv-feature { max-width: none; }
.rv-feature--solo { max-width: 56rem; }
.rv-story { max-width: 56rem; }
.rv-single { max-width: none; }
.rv-single .rv-prose, .rv-sec .tr-photo-col + div .rv-prose { max-width: none; }
.rv-bt, .rv-boxes { max-width: none; }

#reach .tr-wrap { max-width: 1240px; padding-left: 2rem; padding-right: 2rem; }
@media (max-width: 1023px) { #reach .tr-wrap { padding-left: 1.25rem; padding-right: 1.25rem; } }

/* ===================== history: heritage card + timeline ===================== */
.rv-hist { display: grid; gap: 1.6rem; align-items: start; }
@media (min-width: 960px) { .rv-hist { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 2.4rem; } .rv-hist-card { position: sticky; top: 120px; } }
.rv-hist-card { position: relative; border-radius: 1.9rem; overflow: hidden; min-height: 25rem; background: #2a1d15; box-shadow: 0 30px 60px -34px rgba(20, 10, 4, .8); }
.rv-hist-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .62; }
.rv-hist-card::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20, 10, 4, .15) 0%, rgba(20, 10, 4, .88) 85%); }
.rv-hist-card-b { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 1.8rem 1.9rem 1.9rem; color: #f4ead3; }
.rv-hist-kick { display: inline-flex; align-items: center; gap: .5rem; font-size: .74rem; letter-spacing: .18em; text-transform: uppercase; color: #e8bd55; }
.rv-hist-quote { margin: .8rem 0 1.1rem; font-family: 'Playfair Display', Georgia, serif; font-size: clamp(1.2rem, 2vw, 1.5rem); line-height: 1.45; color: #fff; }
.rv-hist-years { display: flex; flex-wrap: wrap; gap: .5rem; }
.rv-hist-years b { padding: .3rem .85rem; border-radius: 999px; background: rgba(232, 189, 85, .18); border: 1px solid rgba(232, 189, 85, .5); color: #e8bd55; font-size: .85rem; letter-spacing: .06em; }

.rv-tl { list-style: none; margin: 0; padding: 0 0 0 0; position: relative; display: grid; gap: 1.1rem; }
.rv-tl::before { content: ''; position: absolute; left: 1.55rem; top: 1.6rem; bottom: 1.6rem; width: 2px; background: linear-gradient(180deg, #e8bd55, rgba(188, 140, 63, .25)); }
.rv-tl-item { position: relative; display: grid; grid-template-columns: 3.1rem 1fr; gap: 1.1rem; align-items: start; }
.rv-tl-node { position: relative; z-index: 1; display: grid; place-items: center; width: 3.1rem; height: 3.1rem; border-radius: 50%; background: linear-gradient(145deg, #2a1d15, #4a3524); color: #e8bd55; font-size: 1.05rem; box-shadow: 0 0 0 5px #f3efe2, 0 12px 22px -12px rgba(40, 24, 10, .7); }
.rv-tl-body { background: #fff; border: 1px solid rgba(188, 140, 63, .22); border-radius: 1.4rem; padding: 1.3rem 1.5rem 1.35rem; box-shadow: 0 16px 36px -28px rgba(40, 24, 10, .5); }
.rv-tl-meta { display: flex; align-items: center; flex-wrap: wrap; gap: .55rem; margin: 0 0 .6rem; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 700; color: #8f5f1f; }
.rv-tl-meta span { color: rgba(143, 95, 31, .55); }
.rv-tl-meta b { margin-left: auto; padding: .2rem .7rem; border-radius: 999px; background: #2a1d15; color: #e8bd55; letter-spacing: .06em; }
.rv-tl-text { margin: 0; font-size: 1rem; line-height: 1.85; color: #4d4137; text-align: justify; text-justify: inter-word; hyphens: auto; }
@media (max-width: 640px) { .rv-tl-item { grid-template-columns: 2.6rem 1fr; gap: .8rem; } .rv-tl-node { width: 2.6rem; height: 2.6rem; font-size: .9rem; } .rv-tl::before { left: 1.3rem; } .rv-tl-text { text-align: left; hyphens: manual; } .rv-hist-card { min-height: 20rem; } }

/* ===================== history v2: immersive dark band ===================== */
.rv-history { position: relative; isolation: isolate; overflow: hidden; padding: 4.5rem 0 5rem; background: #1b120c; color: #f4ead3; }
@media (min-width: 1024px) { .rv-history { padding: 6.5rem 0 7rem; } }
.rv-history-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .28; z-index: -2; filter: saturate(.8); }
.rv-history::before { content: ''; position: absolute; inset: 0; z-index: -1; background: radial-gradient(120% 90% at 50% 0%, rgba(27, 18, 12, .35), rgba(27, 18, 12, .94) 70%), linear-gradient(180deg, rgba(27, 18, 12, .6), rgba(27, 18, 12, .98)); }
.rv-history .tr-h2 { color: #fff; }
.rv-history-lede { max-width: 44rem; margin: 1.2rem auto 0; font-family: 'Playfair Display', Georgia, serif; font-style: italic; font-size: clamp(1.05rem, 1.8vw, 1.3rem); line-height: 1.6; color: rgba(244, 234, 211, .82); }

/* milestones band */
.rv-miles { list-style: none; margin: 2.8rem auto 3.2rem; padding: 0; display: grid; gap: 2rem; position: relative; max-width: 62rem; }
@media (min-width: 720px) {
  .rv-miles { grid-template-columns: repeat(var(--n, 2), minmax(0, 1fr)); gap: 1.5rem; }
  .rv-miles--1 { --n: 1; max-width: 30rem; } .rv-miles--2 { --n: 2; } .rv-miles--3 { --n: 3; } .rv-miles--4 { --n: 4; }
  .rv-miles::before { content: ''; position: absolute; left: 6%; right: 6%; top: 6.35rem; height: 1px; background: linear-gradient(90deg, transparent, rgba(232, 189, 85, .7) 15%, rgba(232, 189, 85, .7) 85%, transparent); }
}
.rv-mile { position: relative; text-align: center; padding: 0 .6rem; }
.rv-mile-year { display: block; font-family: 'Playfair Display', Georgia, serif; font-weight: 600; font-size: clamp(3rem, 7vw, 5rem); line-height: 1; letter-spacing: -.02em; color: transparent; -webkit-text-stroke: 1.5px #e8bd55; background: linear-gradient(180deg, #f6d98a, #bc8c3f); -webkit-background-clip: text; background-clip: text; }
.rv-mile-dot { display: block; width: .95rem; height: .95rem; margin: 1.4rem auto 1.1rem; border-radius: 50%; background: #e8bd55; box-shadow: 0 0 0 6px rgba(232, 189, 85, .18), 0 0 22px rgba(232, 189, 85, .6); position: relative; z-index: 1; }
.rv-mile p { margin: 0 auto; max-width: 16rem; font-size: .95rem; line-height: 1.6; color: rgba(244, 234, 211, .9); }

/* chapters: glass cards */
.rv-chapters { display: grid; gap: 1.2rem; max-width: 72rem; margin: 0 auto; }
@media (min-width: 760px) { .rv-chapters--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .rv-chapters--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .rv-chapters--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .rv-chapters--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.rv-chapter { position: relative; overflow: hidden; padding: 2rem 1.7rem 1.8rem; border-radius: 1.6rem; background: linear-gradient(165deg, rgba(255, 255, 255, .09), rgba(255, 255, 255, .03)); border: 1px solid rgba(232, 189, 85, .26); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); box-shadow: 0 30px 60px -40px rgba(0, 0, 0, .9); transition: transform .3s, border-color .3s, background .3s; }
.rv-chapter:hover { transform: translateY(-5px); border-color: rgba(232, 189, 85, .7); background: linear-gradient(165deg, rgba(255, 255, 255, .13), rgba(255, 255, 255, .05)); }
.rv-chapter::after { content: ''; position: absolute; left: 1.7rem; top: 0; width: 3.2rem; height: 3px; background: linear-gradient(90deg, #e8bd55, transparent); }
.rv-chapter-n { position: absolute; right: 1.2rem; top: .6rem; font-family: 'Playfair Display', Georgia, serif; font-size: 4.2rem; line-height: 1; color: rgba(232, 189, 85, .1); font-weight: 700; }
.rv-chapter-ic { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%; margin-bottom: 1.1rem; background: linear-gradient(145deg, #e8bd55, #bc8c3f); color: #2a1d15; font-size: 1.05rem; box-shadow: 0 12px 24px -12px rgba(232, 189, 85, .8); }
.rv-chapter p { margin: 0; font-size: .97rem; line-height: 1.85; color: rgba(244, 234, 211, .88); text-align: justify; text-justify: inter-word; hyphens: auto; }
html body .rv-chapter h3:not(#_):not(#_) { margin: 0 0 .8rem !important; font-family: 'Playfair Display', Georgia, serif !important; font-size: 1.35rem !important; line-height: 1.25 !important; color: #fff !important; }
@media (max-width: 640px) { .rv-chapter p { text-align: left; hyphens: manual; } .rv-mile-year { font-size: 3.4rem; } }

html body .rv-history .tr-h2:not(#_):not(#_) { color: #fff !important; }
html body .rv-history .section-label:not(#_):not(#_) { color: #e8bd55 !important; }
html body .rv-history .rv-mile-year:not(#_):not(#_) { display: block !important; font-family: 'Playfair Display', Georgia, serif !important; font-weight: 600 !important; font-size: clamp(3.2rem, 6.5vw, 5rem) !important; line-height: 1 !important; letter-spacing: -.02em !important; color: transparent !important; -webkit-text-fill-color: transparent !important; background: linear-gradient(180deg, #f8dc8f 0%, #c99a45 100%); -webkit-background-clip: text; background-clip: text; }
html body .rv-history .rv-history-lede:not(#_):not(#_) { color: rgba(244, 234, 211, .85) !important; font-size: clamp(1.05rem, 1.7vw, 1.3rem) !important; }
html body .rv-history .rv-mile p:not(#_):not(#_) { color: rgba(244, 234, 211, .92) !important; font-size: .98rem !important; }
html body .rv-history .rv-chapter p:not(#_):not(#_) { color: rgba(244, 234, 211, .9) !important; }
@media (min-width: 720px) { .rv-miles::before { top: 7.3rem; } }

/* ===================== history v3: simple, light ===================== */
.rv-hs-years { list-style: none; margin: 0 auto 2.4rem; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; max-width: 60rem; }
.rv-hs-years li { flex: 1 1 14rem; max-width: 18rem; display: flex; align-items: center; gap: .9rem; padding: .9rem 1.1rem; background: #fff; border: 1px solid rgba(188, 140, 63, .25); border-radius: 1rem; }
.rv-hs-years b { flex: 0 0 auto; font-family: 'Playfair Display', Georgia, serif; font-size: 1.5rem; font-weight: 700; color: #8f5f1f; line-height: 1; }
.rv-hs-years span { font-size: .9rem; line-height: 1.45; color: #5a4d42; }

.rv-hs-grid { display: grid; gap: 1.1rem; max-width: 62rem; margin: 0 auto; }
@media (min-width: 820px) { .rv-hs-grid--2, .rv-hs-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .rv-hs-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.rv-hs-card { background: #fff; border: 1px solid rgba(188, 140, 63, .2); border-radius: 1.2rem; padding: 1.4rem 1.5rem 1.5rem; }
.rv-hs-label { display: flex; align-items: baseline; gap: .6rem; margin: 0 0 .7rem; font-family: 'Playfair Display', Georgia, serif; font-size: 1.15rem; font-weight: 600; color: #1f1510; }
.rv-hs-label span { font-family: 'DM Sans', system-ui, sans-serif; font-size: .75rem; font-weight: 700; letter-spacing: .1em; color: #bc8c3f; }
.rv-hs-text { margin: 0; font-size: .97rem; line-height: 1.8; color: #4d4137; text-align: justify; text-justify: inter-word; hyphens: auto; }
@media (max-width: 640px) { .rv-hs-text { text-align: left; hyphens: manual; } }

/* ===================== history v4: full content width, side milestones + one reading card ===================== */
.rv-hs-layout { display: grid; gap: 1.4rem; align-items: start; max-width: none; }
@media (min-width: 960px) { .rv-hs-layout:not(.rv-hs-layout--solo) { grid-template-columns: minmax(250px, 340px) minmax(0, 1fr); gap: 2rem; } .rv-hs-years { position: sticky; top: 120px; } }
.rv-hs-years { list-style: none; margin: 0; padding: 0; display: grid; gap: .9rem; max-width: none; }
.rv-hs-years li { display: block; flex: none; max-width: none; padding: 1.2rem 1.3rem 1.25rem; background: #fff; border: 1px solid rgba(188, 140, 63, .25); border-left: 4px solid #bc8c3f; border-radius: 1rem; }
.rv-hs-years b { display: block; margin-bottom: .35rem; font-family: 'Playfair Display', Georgia, serif; font-size: 2.1rem; font-weight: 700; line-height: 1; color: #8f5f1f; }
.rv-hs-years span { display: block; font-size: .95rem; line-height: 1.55; color: #5a4d42; }

.rv-hs-main { display: block; max-width: none; margin: 0; background: #fff; border: 1px solid rgba(188, 140, 63, .22); border-radius: 1.4rem; padding: .6rem 2rem; box-shadow: 0 18px 40px -32px rgba(40, 24, 10, .45); }
.rv-hs-chap { padding: 1.6rem 0; border-bottom: 1px solid rgba(188, 140, 63, .22); }
.rv-hs-chap:last-child { border-bottom: 0; }
.rv-hs-label { display: flex; align-items: baseline; gap: .7rem; margin: 0 0 .6rem; font-family: 'Playfair Display', Georgia, serif; font-size: 1.25rem; font-weight: 600; color: #1f1510; }
.rv-hs-label span { font-family: 'DM Sans', system-ui, sans-serif; font-size: .78rem; font-weight: 700; letter-spacing: .1em; color: #bc8c3f; }
.rv-hs-text { margin: 0; font-size: 1.02rem; line-height: 1.85; color: #4d4137; text-align: justify; text-justify: inter-word; hyphens: auto; }
@media (max-width: 640px) { .rv-hs-main { padding: .3rem 1.2rem; } .rv-hs-text { text-align: left; hyphens: manual; } }
