/* Madu River: a photographic field guide. Scoped to this destination hub. */
.river-hub { overflow-wrap: break-word; }
.river-hub *,
.river-hub *::before,
.river-hub *::after { box-sizing: border-box; }
.river-hub :is(section, article, aside, figure, div, nav) { min-width: 0; }
.river-hub :is(h1, h2, h3) { text-wrap: balance; }
.river-hub :is(a, button, summary):focus-visible { outline: 3px solid var(--orange); outline-offset: 5px; }
.river-hub :is(#wildlife, #trees, #mangroves, #islands, #places, #plan, #planning) { scroll-margin-top: 67px; }
.river-hero {
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: center;
  min-height: 645px;
  overflow: hidden;
  background: var(--deep);
  color: var(--white);
}
.river-hero-photo,
.river-hero-photo img,
img.river-hero-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  object-fit: cover;
  object-position: center 52%;
  z-index: -3;
}
.river-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -2;
  background: linear-gradient(90deg, rgba(6, 35, 26, .89), rgba(6, 35, 26, .61) 44%, rgba(6, 35, 26, .08) 83%), linear-gradient(0deg, rgba(5, 28, 21, .4), transparent 45%);
}
.river-hero .wrap { position: relative; z-index: 1; }
.river-hero-copy { max-width: 710px; padding-block: 79px 108px; }
.river-hero-kicker {
  margin: 0 0 23px;
  color: #d9e5cb;
  font-size: 10px;
  line-height: 1.6;
  font-weight: 650;
  text-transform: uppercase;
  letter-spacing: .19em;
}
.river-hero-copy h1 {
  margin: 0 0 25px;
  color: white;
  font: 400 clamp(53px, 5.5vw, 76px)/1.06 var(--serif);
  letter-spacing: -2.9px;
  max-width: 680px;
}
.river-hero-copy h1 em { color: #dce7bc; font-weight: 400; }
.river-hero-copy > p:not(.river-hero-kicker) {
  max-width: 470px;
  margin: 0 0 26px;
  color: #edf1e7;
  font-size: 15px;
  line-height: 1.9;
}
.river-hero .breadcrumbs { color: #d4e0cf; font-size: 10px; margin-bottom: 24px; }
.river-hero .breadcrumbs a { text-decoration: underline; text-underline-offset: 3px; }
.river-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.river-hero-actions .button { min-height: 48px; }
.river-hero-caption {
  position: absolute;
  right: max(32px, calc((100vw - 1240px) / 2));
  bottom: 26px;
  max-width: 330px;
  margin: 0;
  color: #e2eadd;
  text-align: right;
  font-size: 10px;
  line-height: 1.65;
  z-index: 2;
}
.river-hero-caption strong { display: block; color: white; font-weight: 550; font-size: 12px; }
.river-hero-caption a { text-decoration: underline; text-underline-offset: 3px; }
.river-jump-nav {
  position: sticky;
  top: 87px;
  z-index: 20;
  background: var(--white);
  border-bottom: 1px solid var(--line);
  box-shadow: 0 4px 12px #163f3504;
}
.river-jump-nav > .wrap,
.river-jump-nav > ul,
.river-jump-nav:not(:has(> .wrap)):not(:has(> ul)) {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: stretch;
}
.river-jump-nav ul { list-style: none; padding: 0; margin-block: 0; }
.river-jump-nav a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  min-height: 73px;
  padding: 15px 17px;
  border-right: 1px solid var(--line);
  color: var(--pine);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
  transition: background .2s;
}
.river-jump-nav :is(a:last-child, li:last-child a) { border-right: 0; }
.river-jump-nav a:hover { background: #f1f4ec; }
.river-jump-nav a :is(small, .jump-number, .index),
.river-jump-nav a > span:first-child { color: #8d9e80; font: italic 19px var(--serif); }
.river-section { padding-block: 84px; }
.river-section.alt,
.river-section.river-trees,
.river-section:has(> .wrap > .tree-grid) { background: #e9ede5; }
.river-section-heading { display: flex; justify-content: space-between; align-items: end; gap: 40px; margin-bottom: 34px; }
.river-section-heading h2,
.river-overview h2,
.river-feature-banner h2,
.river-life h2,
.river-plan h2 {
  margin: 0;
  color: var(--pine);
  font: 400 clamp(34px, 3.4vw, 46px)/1.13 var(--serif);
  letter-spacing: -1.35px;
}
.river-section-heading .eyebrow { margin-bottom: 15px; }
.river-section-heading > p,
.river-section-heading > div:last-child:not(:first-child) > p {
  max-width: 405px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.85;
  margin: 0;
}
.river-overview { display: grid; grid-template-columns: 1.12fr 1fr; gap: 75px; align-items: center; padding-block: 64px; }
.river-overview > div > p { color: var(--muted); font-size: 14px; line-height: 1.9; max-width: 620px; margin: 15px 0 0; }
.river-overview h2 { font-size: 35px; }
.river-facts,
.river-overview .river-overview-facts,
.river-overview > dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin: 0; }
.river-facts > *,
.river-overview-facts > *,
.river-overview > dl > * { border-left: 1px solid #cbd6c4; padding-left: 20px; }
.river-facts strong,
.river-facts dt,
.river-overview-facts strong,
.river-overview dt { display: block; font: 400 27px/1.2 var(--serif); color: var(--pine); margin: 0 0 8px; }
.river-facts span,
.river-facts small,
.river-facts dd,
.river-overview-facts span,
.river-overview-facts small,
.river-overview dd { display: block; color: var(--muted); font-size: 11px; line-height: 1.75; margin: 0; }
.wildlife-toolbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 15px 25px; margin: 0 0 27px; }
.wildlife-filters { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.wildlife-filters button { border: 1px solid #cad4c2; background: white; color: var(--pine); border-radius: 30px; padding: 10px 19px; min-height: 42px; font-size: 12px; font-weight: 550; line-height: 1.4; }
.wildlife-filters button[aria-pressed="true"] { background: var(--pine); color: white; border-color: var(--pine); }
.wildlife-filters button:hover { border-color: var(--pine); }
.wildlife-count { color: var(--muted); font-size: 11px; margin: 0; }
.wildlife-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 25px; }
.wildlife-card,
.tree-card,
.river-place { display: flex; flex-direction: column; overflow: hidden; border: 1px solid #dce3d6; background: white; border-radius: 7px; min-width: 0; }
.wildlife-card figure,
.tree-card figure,
.river-place figure { margin: 0; }
.species-image { position: relative; overflow: hidden; aspect-ratio: 4 / 3; background: #dce4d5; margin: 0; }
.species-image img { width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .5s ease; }
.wildlife-card:hover .species-image img { transform: scale(1.025); }
.species-category,
.category-badge { display: inline-flex; align-items: center; align-self: flex-start; padding: 6px 10px; border-radius: 3px; background: #f4f4e8; color: var(--pine); font-size: 9px; text-transform: uppercase; font-weight: 650; letter-spacing: .1em; line-height: 1.35; }
.species-image :is(.species-category, .category-badge) { position: absolute; top: 15px; left: 15px; }
.species-body { display: flex; flex-direction: column; padding: 24px; flex: 1; }
.species-body h3,
.species-body > p.name { font: 400 28px/1.15 var(--serif); letter-spacing: -.65px; color: var(--pine); margin: 0 0 7px; }
.species-body :is(.species-scientific, .scientific),
.tree-card :is(.tree-scientific, .scientific) { color: #7a876e; font-size: 12px; font-style: italic; line-height: 1.5; margin: 0 0 17px; }
.species-body > p:not(.name):not(.species-scientific):not(.scientific):not(.species-habitat):not(.habitat) { font-size: 13px; line-height: 1.85; color: var(--muted); margin: 0 0 20px; }
.species-body :is(.species-habitat, .habitat) { color: #526e59; font-size: 11px; line-height: 1.7; padding-top: 13px; border-top: 1px solid var(--line); margin: auto 0 0; }
.species-habitat strong,
.habitat strong { color: var(--pine); font-weight: 600; }
.photo-credit { color: #7b867a; font-size: 10px; line-height: 1.65; overflow-wrap: anywhere; }
.wildlife-card > .photo-credit,
.tree-card > .photo-credit,
.river-place > .photo-credit { padding: 0 24px 19px; }
.photo-credit summary { cursor: pointer; font-size: 10px; line-height: 1.7; padding-block: 4px; color: #6c7c6b; }
.photo-credit p { margin: 8px 0 0; color: inherit; font-size: 10px; line-height: 1.8; }
.photo-credit a { text-decoration: underline; text-underline-offset: 3px; }
.tree-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.tree-card > img,
.tree-card figure > img,
.tree-card .tree-image,
.tree-card .tree-image > img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: #d5dfcf; }
.tree-card :is(.tree-body, .species-body) { padding: 23px 21px 19px; flex: 1; }
.tree-card h3 { font: 400 25px/1.18 var(--serif); color: var(--pine); letter-spacing: -.45px; margin: 0 0 8px; }
.tree-card :is(.tree-body, .species-body) > p:not(.scientific):not(.tree-scientific):not(.species-scientific) { color: var(--muted); font-size: 12px; line-height: 1.85; margin: 0 0 15px; }
.tree-card .text-link { white-space: normal; }
.tree-card > .photo-credit { padding-inline: 21px; }
.river-feature-banner { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 62px; margin-top: 47px; padding: 30px; background: #f8f8ee; border-radius: 6px; }
.river-feature-banner > figure { margin: 0; }
.river-feature-banner > img,
.river-feature-banner figure > img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 4px; }
.river-feature-banner h2 { font-size: 34px; }
.river-feature-banner p { color: var(--muted); font-size: 13px; line-height: 1.9; }
.river-feature-banner .photo-credit { font-size: 10px; margin-top: 9px; }
.places-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 25px; }
.river-place > img,
.river-place > figure > img,
.river-place .place-image,
.river-place .place-image > img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: var(--sage); }
.river-place > a:has(img) { display: block; overflow: hidden; }
.river-place > a > img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.place-body { padding: 25px; display: flex; flex-direction: column; flex: 1; }
.place-kicker { color: #7b8d6e; font-size: 9px; line-height: 1.5; letter-spacing: .13em; text-transform: uppercase; font-weight: 650; margin: 0 0 11px; }
.place-body h3 { color: var(--pine); font: 400 28px/1.15 var(--serif); letter-spacing: -.65px; margin: 0 0 14px; }
.place-body > p:not(.place-kicker) { color: var(--muted); font-size: 13px; line-height: 1.85; margin: 0 0 22px; }
.place-body > .text-link { margin-top: auto; white-space: normal; }
.river-life { display: grid; grid-template-columns: 1.1fr 1fr; align-items: center; gap: 76px; padding-block: 25px; }
.river-life figure { margin: 0; }
.river-life > img,
.river-life > figure > img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; border-radius: 5px; }
.river-life h2 { font-size: 40px; margin-bottom: 23px; }
.river-life p { color: var(--muted); font-size: 14px; line-height: 1.9; margin: 0 0 19px; }
.river-life .photo-credit { font-size: 10px; margin-top: 10px; }
.river-plan { display: grid; grid-template-columns: 1.1fr 1fr; align-items: center; gap: 75px; }
.river-plan h2 { margin-bottom: 22px; }
.river-plan p { font-size: 14px; line-height: 1.9; color: var(--muted); }
.river-plan :is(.planning-links, .river-planning-links) { display: grid; gap: 12px; }
.river-plan :is(.planning-links, .river-planning-links) > a,
.river-plan > div:last-child > a:not(.button) { display: block; padding: 21px 24px; border: 1px solid var(--line); border-radius: 5px; background: white; color: var(--pine); font-size: 14px; line-height: 1.65; }
.river-plan :is(.planning-links, .river-planning-links) > a:hover,
.river-plan > div:last-child > a:not(.button):hover { border-color: #8ca382; background: #f1f5ec; }
.river-plan :is(.planning-links, .river-planning-links) strong { display: block; font: 400 22px/1.2 var(--serif); margin-bottom: 7px; }
.river-plan :is(.planning-links, .river-planning-links) small { color: var(--muted); font-size: 12px; }
.river-sources { padding: 22px 26px; border: 1px solid #d7dfd1; border-radius: 5px; background: #eff2e9; color: var(--muted); margin: 35px 0 0; overflow-wrap: anywhere; }
.river-sources summary { cursor: pointer; color: var(--pine); font-size: 12px; font-weight: 600; line-height: 1.7; }
.river-sources p,
.river-sources li { font-size: 11px; line-height: 1.85; color: var(--muted); margin-bottom: 10px; }
.river-sources ul,
.river-sources ol { padding-left: 19px; margin-bottom: 0; }
.river-sources a { text-decoration: underline; text-underline-offset: 3px; }
.river-note { margin: 24px 0 0; color: #77836f; font-size: 11px; line-height: 1.85; max-width: 85ch; }
.fieldguide-note { display: flex; align-items: center; gap: 19px; padding: 22px 26px; background: #edf1e4; border: 1px solid #dce4d2; border-radius: 5px; margin: 34px 0 0; }
.fieldguide-note :is(.leaf-icon, .fieldguide-icon, .note-icon) { flex: 0 0 42px; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; border: 1px solid #bbcaac; color: #718762; font-size: 22px; font-family: var(--serif); }
.fieldguide-note p { margin: 0; color: #60745c; font-size: 12px; line-height: 1.85; }
.fieldguide-note strong { color: var(--pine); font-weight: 600; }
@media (max-width: 1100px) {
  .river-hero-copy h1 { font-size: 66px; }
  .river-overview { gap: 40px; }
  .river-facts > *, .river-overview-facts > *, .river-overview > dl > * { padding-left: 14px; }
  .tree-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
  .tree-card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .tree-card > .photo-credit { grid-column: 1 / -1; }
  .tree-card :is(.tree-body, .species-body) { padding: 20px; }
  .tree-card :is(.tree-image, figure), .tree-card > img { height: 100%; min-height: 230px; object-fit: cover; }
  .tree-card :is(.tree-image, figure) > img { height: 100%; object-fit: cover; }
  .river-feature-banner { gap: 35px; }
  .river-life, .river-plan { gap: 43px; }
}
@media (max-width: 900px) {
  .river-hero { min-height: 610px; }
  .river-hero-copy h1 { font-size: 60px; max-width: 620px; }
  .river-hero-copy > p:not(.river-hero-kicker) { max-width: 440px; }
  .wildlife-grid, .places-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 23px; }
  .river-overview { grid-template-columns: 1fr; gap: 32px; padding-block: 48px; }
  .river-overview > div > p { max-width: 730px; }
  .river-section { padding-block: 64px; }
  .river-section-heading { gap: 30px; }
  .river-section-heading h2 { font-size: 38px; }
  .river-section-heading > p { max-width: 330px; font-size: 13px; }
}
@media (max-width: 800px) {
  .river-jump-nav { top: 74px; }
  .river-hero-copy { padding-block: 65px 103px; }
  .river-hero-copy h1 { font-size: 58px; }
  .river-hero-copy > p:not(.river-hero-kicker) { font-size: 14px; }
  .river-hero-caption { right: 24px; bottom: 24px; max-width: 280px; font-size: 9px; }
  .river-jump-nav a { padding: 13px 10px; min-height: 65px; gap: 8px; font-size: 11px; }
  .river-jump-nav a :is(small, .jump-number, .index), .river-jump-nav a > span:first-child { font-size: 17px; }
  .tree-card { display: flex; }
  .tree-card :is(.tree-image, figure), .tree-card > img { min-height: 0; height: auto; }
  .tree-card :is(.tree-image, figure) > img { height: auto; }
  .tree-card h3 { font-size: 27px; }
  .river-feature-banner { padding: 24px; gap: 27px; }
  .river-feature-banner h2 { font-size: 31px; }
  .river-life, .river-plan { gap: 33px; }
  .river-life h2 { font-size: 35px; }
  .river-plan h2 { font-size: 36px; }
}
@media (max-width: 650px) {
  .river-hero-copy h1 { font-size: 54px; letter-spacing: -2.2px; }
  .river-section-heading { display: block; margin-bottom: 28px; }
  .river-section-heading > p, .river-section-heading > div:last-child:not(:first-child) > p { max-width: 100%; margin-top: 19px; }
  .river-feature-banner, .river-life, .river-plan { grid-template-columns: minmax(0, 1fr); gap: 29px; }
  .river-feature-banner > img, .river-feature-banner figure > img { aspect-ratio: 16 / 10; }
  .river-life > img, .river-life > figure > img { aspect-ratio: 4 / 3; }
  .river-life { padding-block: 0; }
}
@media (max-width: 560px) {
  .river-hub :is(#wildlife, #trees, #mangroves, #islands, #places, #plan, #planning) { scroll-margin-top: 0; }
  .river-hero { min-height: 600px; }
  .river-hero-photo, .river-hero-photo img, img.river-hero-photo { object-position: 65% center; }
  .river-hero::after { background: linear-gradient(90deg, rgba(6, 35, 26, .86), rgba(6, 35, 26, .43)), linear-gradient(0deg, rgba(6, 35, 26, .4), transparent 70%); }
  .river-hero-copy { padding-block: 53px 115px; }
  .river-hero-kicker { font-size: 9px; letter-spacing: .17em; margin-bottom: 21px; }
  .river-hero-copy h1 { font-size: clamp(43px, 11.4vw, 54px); line-height: 1.09; letter-spacing: -1.8px; margin-bottom: 23px; }
  .river-hero-copy > p:not(.river-hero-kicker) { font-size: 13px; line-height: 1.9; max-width: 360px; margin-bottom: 22px; }
  .river-hero-actions { gap: 9px; margin-top: 25px; }
  .river-hero-actions .button { font-size: 11px; padding: 13px 15px; min-height: 46px; gap: 11px; }
  .river-hero-caption { right: 19px; left: 19px; max-width: none; font-size: 8px; bottom: 22px; text-align: left; }
  .river-hero-caption strong { font-size: 10px; }
  .river-jump-nav { position: relative; top: auto; }
  .river-jump-nav > .wrap { width: calc(100% - 22px); }
  .river-jump-nav a { flex-direction: column; min-height: 67px; padding: 12px 3px; gap: 2px; font-size: 10px; text-align: center; }
  .river-jump-nav a :is(small, .jump-number, .index), .river-jump-nav a > span:first-child { font-size: 14px; }
  .river-overview { padding-block: 42px 45px; gap: 27px; }
  .river-overview h2 { font-size: 31px; }
  .river-overview > div > p { font-size: 13px; line-height: 1.9; }
  .river-facts, .river-overview .river-overview-facts, .river-overview > dl { gap: 11px; }
  .river-facts > *, .river-overview-facts > *, .river-overview > dl > * { padding-left: 12px; }
  .river-facts strong, .river-facts dt, .river-overview-facts strong, .river-overview dt { font-size: 23px; }
  .river-facts span, .river-facts small, .river-facts dd, .river-overview-facts span, .river-overview-facts small, .river-overview dd { font-size: 9px; }
  .river-section { padding-block: 50px; }
  .river-section-heading h2 { font-size: 35px; letter-spacing: -1px; }
  .river-section-heading > p { font-size: 13px; line-height: 1.85; }
  .wildlife-toolbar { align-items: start; gap: 13px; margin-bottom: 23px; }
  .wildlife-filters { gap: 7px; }
  .wildlife-filters button { min-height: 40px; padding: 9px 14px; font-size: 11px; }
  .wildlife-count { width: 100%; font-size: 10px; }
  .wildlife-grid, .tree-grid, .places-grid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .species-image, .species-image img { aspect-ratio: 4 / 3; }
  .species-body, .place-body { padding: 24px 23px; }
  .species-body h3, .species-body > p.name, .place-body h3 { font-size: 29px; }
  .species-body > p:not(.name):not(.species-scientific):not(.scientific):not(.species-habitat):not(.habitat) { font-size: 13px; }
  .species-body :is(.species-habitat, .habitat) { font-size: 11px; }
  .tree-card :is(.tree-body, .species-body) { padding: 23px; }
  .tree-card h3 { font-size: 28px; }
  .tree-card :is(.tree-body, .species-body) > p:not(.scientific):not(.tree-scientific):not(.species-scientific) { font-size: 13px; }
  .river-feature-banner { padding: 20px; margin-top: 31px; }
  .river-feature-banner h2 { font-size: 31px; }
  .river-feature-banner p { font-size: 13px; }
  .river-note { font-size: 10px; margin-top: 23px; }
  .river-life h2, .river-plan h2 { font-size: 35px; }
  .river-life p, .river-plan p { font-size: 13px; }
  .river-plan :is(.planning-links, .river-planning-links) > a, .river-plan > div:last-child > a:not(.button) { padding: 21px; }
  .river-sources { padding: 20px; margin-top: 26px; }
  .fieldguide-note { padding: 20px; gap: 14px; align-items: start; }
  .fieldguide-note :is(.leaf-icon, .fieldguide-icon, .note-icon) { flex-basis: 35px; width: 35px; height: 35px; font-size: 19px; }
  .fieldguide-note p { font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
  .river-hub :is(a, button, img) { transition: none; }
  html:has(.river-hub) { scroll-behavior: auto; }
}
/* Page containers keep the shared site width while their contents form the grids. */
.river-overview, .river-plan { display:block; }
.river-overview > .wrap, .river-plan > .wrap { display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center; }
.river-overview > .wrap > div > p { color:var(--muted);font-size:14px;line-height:1.9; }
.river-facts { margin-top:25px; }
.river-facts strong { font-size:24px; }
.river-feature-banner h3, .river-life h3 { font:400 clamp(30px,3vw,38px)/1.16 var(--serif);letter-spacing:-.9px;margin:0 0 20px;color:var(--pine); }
.river-feature-banner figcaption, .river-life figcaption { color:var(--muted);font-size:10px;margin-top:8px; }
.river-life { margin-top:60px; }
.place-photo-caption { margin:0;padding:8px 15px;background:#f1f3eb;color:#62765d;font-size:10px;line-height:1.6; }
.place-body .photo-credit, .species-body .photo-credit { margin-top:16px; }
.species-body > .text-link { margin-top:16px;white-space:normal; }
.fieldguide-note > p { flex:1; }
.fieldguide-note > .text-link { white-space:normal;flex:0 0 auto; }
.river-plan { background:var(--sage); }
.river-planning-links > a { position:relative;padding-right:45px!important; }
.river-planning-links > a > span:first-child { display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.13em;margin-bottom:9px; }
.river-planning-links > a > span:last-child { position:absolute;right:22px;top:45%;font-size:20px; }
.river-evidence { padding-block:28px 60px; }
.river-jump-nav a[aria-current="location"] { background:#e9efe3;box-shadow:inset 0 -3px var(--pine); }
.river-hub :is(#mangrove-trees,#plan-your-visit) { scroll-margin-top:67px; }
@media(max-width:1000px){.river-overview > .wrap,.river-plan > .wrap{gap:35px;}.river-facts strong{font-size:22px;}}
@media(max-width:900px){.river-overview > .wrap{grid-template-columns:1fr;gap:25px;}.river-facts{max-width:650px;}}
@media(max-width:650px){.river-plan > .wrap{grid-template-columns:1fr;gap:30px;}.fieldguide-note{flex-wrap:wrap;}.fieldguide-note > .text-link{margin-left:49px;}.river-life{margin-top:40px;}}
@media(max-width:560px){.river-hub :is(#mangrove-trees,#plan-your-visit){scroll-margin-top:0;}.river-facts strong{font-size:21px;}.river-overview > .wrap > div > p{font-size:13px;}.river-evidence{padding-block:15px 45px;}}
/* Keep intrinsic image dimensions from stretching cards and feature photographs. */
.river-place .place-image > img { height:100%; }
.river-feature-banner figure > img, .river-life > figure > img { height:auto; }
/* Root shapes, distinctive plants and short visitor learning panels. */
.tree-collection-title { font:400 25px/1.2 var(--serif);letter-spacing:-.4px;color:var(--pine);margin:32px 0 20px; }
.root-shapes-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.root-shapes-grid .tree-card { display:flex; }
.distinctive-trees-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.distinctive-trees-grid .tree-card { display:grid;grid-template-columns:.8fr 1.2fr; }
.distinctive-trees-grid .species-image { height:100%;aspect-ratio:auto; }
.distinctive-trees-grid .species-image img { height:100%;aspect-ratio:auto; }
.river-hub :is(.bird-learning h3,.mangrove-learning h3) { font:400 clamp(30px,3vw,38px)/1.16 var(--serif);letter-spacing:-.9px;color:var(--pine);margin:0 0 18px; }
.bird-learning { display:grid;grid-template-columns:.9fr 1.1fr;gap:26px 65px;margin-top:45px;padding:32px;background:#edf1e4;border:1px solid #dce4d2;border-radius:6px; }
.bird-learning-intro > p:not(.eyebrow) { color:var(--muted);font-size:13px;line-height:1.85;margin:0;max-width:360px; }
.bird-observation-steps { list-style:none;margin:0;padding:0;display:grid;gap:20px; }
.bird-observation-steps li { display:flex;gap:17px;align-items:start; }
.bird-observation-steps li > span { color:#7b8f70;font:italic 22px/1.2 var(--serif);padding-top:2px; }
.bird-observation-steps h4 { font-size:13px;margin:0 0 4px;color:var(--pine);font-weight:600; }
.bird-observation-steps p { font-size:12px;line-height:1.8;color:var(--muted);margin:0; }
.bird-records { grid-column:1/-1;border-top:1px solid #cdd8c5;padding-top:20px; }
.bird-records summary { color:var(--pine);font-size:13px;font-weight:600;cursor:pointer; }
.bird-records p { color:var(--muted);font-size:12px;line-height:1.85;max-width:75ch; }
.bird-records .table-scroll { margin-top:18px; }
.bird-records table { width:100%;min-width:0;border-collapse:collapse; }
.bird-records caption { text-align:left;color:var(--muted);font-size:10px;margin-bottom:12px; }
.bird-records :is(th,td) { text-align:left;padding:13px 15px;border-bottom:1px solid #d5dfce;font-size:12px;line-height:1.8; }
.bird-records thead th { background:var(--pine);color:white; }
.bird-records tbody th { width:30%;font-weight:600;color:var(--pine); }
.mangrove-learning { margin-top:65px;padding-top:50px;border-top:1px solid #cbd7c4; }
.mangrove-learning .river-section-heading { align-items:start; }
.mangrove-learning-layout { display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start; }
.mangrove-learning figure { margin:0; }
.mangrove-learning figure > img { width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:5px; }
.mangrove-learning figcaption { margin-top:10px;color:var(--muted);font-size:10px;line-height:1.8; }
.mangrove-benefits details { border-top:1px solid #c3cfbb; }
.mangrove-benefits details:last-child { border-bottom:1px solid #c3cfbb; }
.mangrove-benefits summary { list-style:none;display:flex;gap:16px;padding:20px 29px 20px 0;color:var(--pine);font:400 23px/1.25 var(--serif);cursor:pointer;position:relative; }
.mangrove-benefits summary::-webkit-details-marker { display:none; }
.mangrove-benefits summary::after { content:'+';position:absolute;right:1px;top:20px;font:22px/1 var(--serif); }
.mangrove-benefits details[open] summary::after { content:'−'; }
.mangrove-benefits summary > span { font:italic 16px/1.7 var(--serif);color:#7a8f6c; }
.mangrove-benefits details > div { padding:0 12px 20px 34px; }
.mangrove-benefits details p { font-size:13px;line-height:1.9;color:var(--muted);margin:0 0 13px; }
.mangrove-benefits .source-note, .bird-records .source-note { font-size:10px;line-height:1.8;margin:15px 0 0; }
.mangrove-observation { padding:25px 28px;background:#f8f8ee;border-radius:5px;margin-top:30px; }
.mangrove-observation > strong { color:var(--pine);font:400 25px/1.2 var(--serif); }
.mangrove-observation p { font-size:13px;line-height:1.9;color:var(--muted);max-width:90ch;margin:13px 0 17px; }
.mangrove-observation .text-link { white-space:normal; }
.root-shape-note { display:flex;gap:12px;align-items:center;margin:0 0 18px;color:#66825a;font-size:10px;line-height:1.6; }
.root-shape-note svg { width:90px;height:45px;flex:0 0 90px; }
@media(max-width:1000px){.bird-learning{gap:25px 35px;}.mangrove-learning-layout{gap:30px;}.distinctive-trees-grid .tree-card{grid-template-columns:1fr;display:flex;}.distinctive-trees-grid .species-image{height:auto;aspect-ratio:4/3;}.distinctive-trees-grid .species-image img{height:100%;aspect-ratio:4/3;}}
@media(max-width:800px){.root-shapes-grid{grid-template-columns:1fr;}.root-shapes-grid .tree-card{display:grid;grid-template-columns:.8fr 1.2fr;}.root-shapes-grid .species-image{height:100%;aspect-ratio:auto;}.root-shapes-grid .species-image img{height:100%;aspect-ratio:auto;}.bird-learning{grid-template-columns:1fr;}.bird-learning-intro > p:not(.eyebrow){max-width:none;}.mangrove-learning-layout{grid-template-columns:1fr;gap:26px;}.mangrove-learning figure > img{aspect-ratio:16/9;}.mangrove-benefits summary{font-size:24px;}}
@media(max-width:560px){.root-shapes-grid .tree-card{display:flex;}.root-shapes-grid .species-image{height:auto;aspect-ratio:4/3;}.root-shapes-grid .species-image img{height:100%;aspect-ratio:4/3;}.distinctive-trees-grid{grid-template-columns:1fr;}.bird-learning{margin-top:30px;padding:23px;gap:26px;}.bird-records :is(th,td){padding:11px 8px;font-size:11px;}.bird-records tbody th{width:31%;}.bird-records .table-scroll{margin-right:0;}.mangrove-learning{margin-top:40px;padding-top:35px;}.mangrove-benefits summary{font-size:22px;gap:12px;}.mangrove-benefits details > div{padding-left:28px;}.mangrove-observation{padding:22px;}.mangrove-observation > strong{font-size:23px;}.tree-collection-title{font-size:24px;}}
#brahminy-kite .species-image img { object-position:50% 28%; }
#little-egret .species-image img { object-position:50% 38%; }
.river-hub :is(#why-mangroves-matter,[data-wildlife-category]) { scroll-margin-top:67px; }
@media(max-width:560px){.river-hub :is(#why-mangroves-matter,[data-wildlife-category]){scroll-margin-top:0;}}
.nature-guide-table table { min-width:0;width:100%;table-layout:fixed; }
.nature-guide-table :is(th,td) { white-space:normal;overflow-wrap:break-word;padding:14px 12px; }
.nature-guide-table :is(th,td):first-child { width:32%; }
@media(max-width:560px){.nature-guide-table :is(th,td){font-size:11px;padding:12px 9px;}}
#saltwater-crocodile .species-image img { object-position:50% 40%; }
.photography-intro { max-width:850px;margin:0 0 35px;color:var(--muted);font-size:13px;line-height:1.9; }
.photography-credit-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px; }
.photography-credit { background:white;border:1px solid var(--line);border-radius:6px;overflow:hidden;min-width:0; }
.photography-credit > img { width:100%;height:auto;aspect-ratio:3/2;object-fit:cover; }
.photography-credit > div { padding:25px; }
.photography-credit h2 { font:400 25px/1.2 var(--serif);color:var(--pine);margin:0 0 14px;overflow-wrap:anywhere; }
.photography-credit p { color:var(--muted);font-size:12px;line-height:1.85;margin:0 0 16px;overflow-wrap:anywhere; }
.photography-credit dl { font-size:12px;margin:0 0 18px; }
.photography-credit dl > div { display:grid;grid-template-columns:90px minmax(0,1fr);gap:12px;margin:8px 0; }
.photography-credit dt { color:var(--muted); }
.photography-credit dd { margin:0;overflow-wrap:anywhere; }
.photography-credit a { text-decoration:underline;text-underline-offset:3px; }
.photography-credit .credit-original { font-size:10px; }
.photography-credit .credit-changes { font-size:10px;margin:0; }
@media(max-width:1000px){.photography-credit-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:560px){.photography-credit-grid{grid-template-columns:1fr;gap:22px;}.photography-credit > div{padding:23px;}}
/* Safari package passenger guidance. */
.package-safety-summary { display:flex;align-items:center;gap:19px;padding:20px 24px;margin:0 0 30px;background:#edf2e8;border:1px solid #ccd9c4;border-radius:6px;color:var(--pine); }
.package-safety-summary > svg { width:47px;height:47px;flex:0 0 47px;color:#9d5933; }
.package-safety-summary > span:nth-child(2) { flex:1; }
.package-safety-summary strong { display:block;font-size:14px;font-weight:650;margin-bottom:5px; }
.package-safety-summary > span:nth-child(2) > span { display:block;color:var(--muted);font-size:12px;line-height:1.8; }
.package-safety-summary .safety-summary-arrow { font-size:24px; }
.package-safety-summary:hover { border-color:#8ca27d; }
.package-safety-section { padding:76px 0;background:#e9ede5;scroll-margin-top:0; }
.package-safety-heading { display:grid;grid-template-columns:1.2fr 1fr;gap:65px;align-items:end;margin-bottom:35px; }
.package-safety-heading h2 { font:400 clamp(33px,3.4vw,46px)/1.15 var(--serif);letter-spacing:-1.2px;color:var(--pine);margin:0;text-wrap:balance; }
.package-safety-heading > p { color:var(--muted);font-size:14px;line-height:1.9;margin:0;max-width:440px; }
.package-safety-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:23px; }
.package-safety-card { padding:27px;background:#fff;border:1px solid #d7e0d1;border-radius:6px;min-width:0; }
.safety-step-number { color:#80936f;font:italic 22px/1 var(--serif);display:block;margin-bottom:21px; }
.package-safety-card h3 { font:400 28px/1.15 var(--serif);letter-spacing:-.6px;color:var(--pine);margin:0 0 17px;text-wrap:balance; }
.package-safety-card p { color:var(--muted);font-size:13px;line-height:1.9;margin:0; }
.package-safety-help { display:grid;grid-template-columns:1.5fr 1fr;gap:45px;align-items:center;background:#f7f8ef;border-radius:5px;padding:26px 29px;margin-top:28px; }
.package-safety-help strong { color:var(--pine);font:400 25px/1.2 var(--serif); }
.package-safety-help p { color:var(--muted);font-size:12px;line-height:1.85;margin:12px 0 0; }
.package-safety-help > div:last-child { display:flex;flex-direction:column;gap:18px;align-items:start; }
.package-safety-help .text-link { white-space:normal; }
.package-safety-sources { border-top:1px solid #c6d1bd;margin-top:27px;padding-top:20px;color:var(--muted); }
.package-safety-sources summary { cursor:pointer;color:var(--pine);font-size:11px;line-height:1.8; }
.package-safety-sources p,.package-safety-sources li { font-size:11px;line-height:1.85; }
.package-safety-sources a { text-decoration:underline;text-underline-offset:3px; }
:is(.package-safety-summary,.package-safety-section a,.package-safety-section summary):focus-visible { outline:3px solid var(--orange);outline-offset:4px; }
@media(max-width:1000px){.package-safety-heading{gap:30px;}.package-safety-card{padding:23px;}.package-safety-card h3{font-size:25px;}}
@media(max-width:800px){.package-safety-section{padding:58px 0;}.package-safety-heading{grid-template-columns:1fr;gap:22px;}.package-safety-heading > p{max-width:650px;}.package-safety-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.package-safety-help{grid-template-columns:1fr;gap:24px;}}
@media(max-width:560px){.package-safety-summary{padding:18px 16px;gap:12px;}.package-safety-summary > svg{width:38px;height:38px;flex-basis:38px;}.package-safety-summary strong{font-size:12px;}.package-safety-summary > span:nth-child(2) > span{font-size:11px;}.package-safety-summary .safety-summary-arrow{font-size:20px;}.package-safety-section{padding:46px 0;}.package-safety-heading h2{font-size:34px;letter-spacing:-.9px;}.package-safety-heading > p{font-size:13px;}.package-safety-grid{grid-template-columns:1fr;gap:18px;}.package-safety-card{padding:24px;}.package-safety-card h3{font-size:28px;}.safety-step-number{margin-bottom:16px;}.package-safety-help{padding:23px;}.package-safety-help strong{font-size:24px;}}
.cancellation-notice{border:1px solid #ccd3c6;border-left:3px solid #8a9478;background:#f0f2e9;padding:24px;margin:24px 0;color:#203d32}
.cancellation-notice h3{margin:0 0 12px;font-size:25px}.cancellation-notice p{margin:0 0 12px}.cancellation-notice .text-link{color:#203d32;text-decoration:underline}
.cancellation-band{background:#f0f2e9}.cancellation-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:70px;align-items:start}.cancellation-layout h2{margin:0 0 22px}.cancellation-layout .text-link{text-decoration:underline}
.refund-table{width:100%;min-width:0;table-layout:fixed;border-collapse:collapse;text-align:left;background:#fff}.refund-table caption{text-align:left;font-size:13px;letter-spacing:.04em;padding:0 0 14px;color:#5d685d}.refund-table th,.refund-table td{padding:22px 24px;border-bottom:1px solid #d9dfd4}.refund-table thead th{background:#203d32;color:#fff;font-size:13px;line-height:1.5;font-weight:600}.refund-table tbody th{font-size:15px;font-weight:500;line-height:1.6;letter-spacing:0;text-transform:none}.refund-table td strong{display:block;font-size:28px;line-height:1.2;font-family:var(--serif);font-weight:500;color:#203d32}.refund-table td span{display:block;font-size:13px;margin-top:5px;color:#596458}
@media(max-width:800px){.cancellation-layout{grid-template-columns:1fr;gap:30px}}
@media(max-width:560px){.refund-table th,.refund-table td{padding:17px 12px;font-size:13px}.refund-table td strong{font-size:25px}.refund-table td span{font-size:12px}.cancellation-notice{padding:20px}.cancellation-notice h3{font-size:25px}}
.table-scroll.refund-table-scroll{margin-right:0}
