:root{--green:#173c2a;--green2:#264d39;--green3:#e7efe8;--ivory:#fff9ee;--paper:#fffdf8;--ink:#1e2c23;--muted:#617067;--red:#b42318;--red2:#cf2f24;--border:#d7cfbe;--gold:#e4cd91;--shadow:0 10px 28px rgba(23,60,42,.10);--radius:18px;--nav-h:72px}
*{box-sizing:border-box}html{background:#e9e4d8;scroll-behavior:smooth}body{margin:0 auto;max-width:760px;min-height:100vh;background:var(--ivory);color:var(--ink);font:16px/1.5 Arial,Helvetica,sans-serif;padding-bottom:calc(var(--nav-h) + env(safe-area-inset-bottom));box-shadow:0 0 36px rgba(0,0,0,.12)}button,input,a{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}.is-hidden{display:none!important}.skip-link{position:fixed;left:-9999px;top:8px;z-index:999;background:#fff;padding:10px 14px;border-radius:8px;color:#111}.skip-link:focus{left:8px}.topbar{position:sticky;top:0;z-index:40;min-height:66px;display:flex;gap:12px;align-items:center;padding:10px 14px;background:var(--green);color:#fff;border-bottom:1px solid rgba(255,255,255,.12)}.topbar>div:nth-child(2){min-width:0;flex:1}.brand-line{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;opacity:.78}.screen-title{font-size:1.04rem;font-weight:800}.icon-button{border:0;background:transparent;color:#fff;font-size:2rem;line-height:1;padding:4px 10px;border-radius:10px}.status-badge{max-width:145px;font-size:.7rem;line-height:1.15;text-align:center;padding:7px 9px;border-radius:999px;background:#fff;color:var(--green);font-weight:800}.status-badge.pending{background:#f0ead8}.status-badge.ready{background:#e7f4e9}.status-badge.online-only{background:#fff1d6;color:#694c00}.update-banner{position:sticky;top:66px;z-index:39;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 14px;background:#fff3cd;color:#4b3b00;border-bottom:1px solid #ead394;font-size:.88rem}.small-button{border:1px solid #7d650c;background:#fff;color:#3f3200;border-radius:8px;padding:6px 10px;font-weight:700}.view{display:none;min-height:calc(100vh - var(--nav-h) - 66px)}.view.active{display:block}.content-pad{padding:16px}.hero{position:relative;overflow:hidden;min-height:320px;background-size:cover;background-position:center}.home-hero{background-image:url('media/hero-background.webp');min-height:38vh}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,47,33,.15),rgba(13,47,33,.78))}.hero-copy{position:absolute;left:20px;right:20px;bottom:24px;color:#fff}.hero-copy h1{font-family:Georgia,serif;font-size:2rem;line-height:1.05;margin:8px 0 0;text-shadow:0 2px 8px rgba(0,0,0,.32)}.eyebrow{margin:0;text-transform:uppercase;letter-spacing:.11em;font-size:.72rem;font-weight:800}.eyebrow.dark{color:var(--green2)}.home-stack{display:grid;gap:14px;margin-top:-10px;position:relative;z-index:2}.stay-card{width:100%;display:grid;grid-template-columns:1fr auto;gap:2px 12px;text-align:left;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--paper);box-shadow:var(--shadow);color:var(--ink)}.stay-card-label{grid-column:1;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800}.stay-card strong{grid-column:1;font-size:1rem}.stay-card>span:last-child{grid-column:2;grid-row:1/3;align-self:center;font-size:1.5rem}.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.action-card{min-height:104px;border:1px solid var(--border);border-radius:16px;background:#fff;color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;font-weight:800;padding:12px}.action-icon{font-size:1.3rem;color:var(--green)}.trust-note{padding:12px 14px;background:var(--green3);border-radius:12px;color:var(--green);font-size:.82rem}.section-intro{padding:8px 2px 14px}.section-intro h1{font:700 1.85rem/1.12 Georgia,serif;margin:5px 0 8px}.section-intro p:last-child{margin:0;color:var(--muted)}.panel{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:14px;box-shadow:0 4px 16px rgba(23,60,42,.055)}.panel h1,.panel h2{font-family:Georgia,serif}.panel h2{margin:4px 0 8px;font-size:1.28rem}.panel-kicker{font-size:.7rem;text-transform:uppercase;letter-spacing:.09em;font-weight:800;color:var(--green2)}.muted{color:var(--muted)}.small-copy,.field-help,.source-note{font-size:.8rem;color:var(--muted)}.field-label{display:block;font-weight:800;margin-bottom:7px}.search-row{display:grid;grid-template-columns:1fr auto;gap:8px}.search-row input{min-width:0;border:1px solid #aab3ac;border-radius:12px;padding:12px;background:#fff;color:var(--ink)}.search-row input:focus{outline:3px solid rgba(23,105,255,.35);outline-offset:1px}.primary-button,.secondary-button,.danger-button,.primary-link{min-height:44px;border-radius:12px;padding:10px 14px;font-weight:800;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.primary-button,.primary-link{border:1px solid var(--green);background:var(--green);color:#fff}.primary-button.compact{padding-inline:16px}.secondary-button{border:1px solid #bfc7c0;background:#fff;color:var(--green)}.danger-button{border:1px solid var(--red);background:var(--red);color:#fff}.text-button{border:0;background:transparent;padding:8px}.danger-text{color:var(--red)}.button-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.results{display:grid;gap:7px;margin-top:10px}.result-button{width:100%;text-align:left;border:1px solid #d8d8cf;background:#fff;border-radius:11px;padding:11px 12px;color:var(--ink)}.result-button strong{display:block}.result-button span{display:block;font-size:.78rem;color:var(--muted);margin-top:2px}.unresolved{margin-top:12px;border-left:4px solid #a77b20;padding:10px 12px;background:#fff8e6;border-radius:8px}.verification-chip{display:inline-block;margin:6px 0 12px;padding:6px 9px;border-radius:999px;font-size:.72rem;font-weight:800;background:#e7f4e9;color:#1b5a37}.verification-chip.needs{background:#fff2ce;color:#745300}.map-locked{text-align:center;padding-block:28px}.lock-mark{width:48px;height:48px;border-radius:50%;margin:0 auto 10px;display:grid;place-items:center;background:var(--green3);color:var(--green);font-size:1.4rem}.map-stay-card{border-top:5px solid var(--green)}.need-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.need-grid button{min-height:50px;border:1px solid var(--border);border-radius:12px;background:#fff;color:var(--ink);font-weight:800}.need-grid button.selected{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green);background:var(--green3)}.primary-link.disabled{background:#8a958e;border-color:#8a958e;pointer-events:none}.wildlife-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.wildlife-card{border:1px solid var(--border);background:#fff;border-radius:14px;overflow:hidden;padding:0;color:var(--ink);text-align:left}.wildlife-card img{display:block;width:100%;height:auto;aspect-ratio:5/8;object-fit:cover;object-position:center center;background:#e7e2d7}.wildlife-card strong{display:block;padding:10px 11px}.sos-view{background:#fff8f6}.sos-head{text-align:center;background:var(--red2);color:#fff;padding:20px}.sos-big{font:700 2.2rem/1 Georgia,serif}.location-first{border-color:#ebc0ba}.emergency-list{display:grid;gap:9px;margin-bottom:14px}.emergency-card{display:grid;grid-template-columns:1fr auto;gap:4px 10px;align-items:center;background:#fff;border:1px solid #e3bbb6;border-radius:14px;padding:13px 14px;color:var(--ink);text-decoration:none}.emergency-card strong{color:var(--red);font-size:1rem}.emergency-card .number{font-size:1.08rem;font-weight:900;grid-row:1/3;grid-column:2}.emergency-card small{color:var(--muted)}.action-order ol{padding-left:20px}.feature-image img{width:100%;display:block;max-height:340px;object-fit:cover}.editorial-card{margin-top:-26px;position:relative;z-index:2}.steps{list-style:none;padding:0;margin:0 0 16px;display:grid;gap:10px}.steps li{display:grid;grid-template-columns:30px 1fr;gap:10px}.steps li>span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#fff;font-weight:800;font-size:.78rem}.steps p{margin:2px 0 0;color:var(--muted)}.safety-list ol{padding-left:23px}.safety-list li{margin-bottom:10px}.expect-list{list-style:none;padding:0;margin:0;display:grid;gap:12px}.expect-list li{display:grid;gap:2px;padding-left:18px;position:relative}.expect-list li:before{content:'•';position:absolute;left:0;color:var(--green);font-weight:900}.expect-list span{color:var(--muted)}.animal-feature img{min-height:280px}.animal-actions{padding-left:20px}.animal-actions li{margin-bottom:7px}.remember-box{background:var(--green3);border-radius:12px;padding:12px;margin-top:16px}.remember-box p{margin:3px 0 0}.bottom-nav{position:fixed;z-index:50;left:50%;bottom:0;transform:translateX(-50%);width:min(760px,100%);height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);display:grid;grid-template-columns:repeat(5,1fr);background:var(--green);border-top:1px solid rgba(255,255,255,.15)}.bottom-nav button{border:0;border-right:1px solid rgba(255,255,255,.10);background:transparent;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:.7rem;min-width:0}.bottom-nav button span:first-child{font-size:1rem}.bottom-nav button.active{background:var(--green2)}.bottom-nav .sos-nav{background:#a61e15}.bottom-nav .sos-nav.active{background:#cf2f24}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #1769ff;outline-offset:3px}@media(min-width:600px){.content-pad{padding:22px}.action-grid,.need-grid{gap:12px}.hero-copy h1{font-size:2.4rem}.wildlife-grid{grid-template-columns:repeat(3,1fr)}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}


.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.network-banner{position:sticky;top:66px;z-index:38;padding:8px 14px;background:#243b2e;color:#fff;font-size:.86rem;text-align:center}
.install-card{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0}
.install-card>div{display:grid;gap:3px}.install-card span{font-size:.8rem;color:var(--muted)}
.host-notes{margin:14px 0;border-top:1px solid var(--border);padding-top:12px}.host-notes summary{font-weight:800;cursor:pointer;min-height:44px;display:flex;align-items:center}
.host-notes textarea,.host-notes input[type="date"]{width:100%;border:1px solid #aab3ac;border-radius:12px;padding:11px;background:#fff;color:var(--ink);font:inherit;margin-bottom:10px}
.stay-freshness{font-size:.8rem;margin:8px 0 0;color:var(--muted)}.stay-freshness.expired{color:#7a351e;font-weight:800}
.emergency-address-box{margin:14px 0;padding:13px;border:2px solid #c86e63;border-radius:14px;background:#fff7f4;display:grid;gap:8px}.emergency-address-box strong{font-size:1rem}
.locality-overview{background:linear-gradient(180deg,#fffdf8,#f2f5ed)}.locality-diagram{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:8px;margin:14px 0;padding:14px;border:1px solid #c7d3c9;border-radius:14px;background:#edf3ec;text-align:center;font-size:.72rem;font-weight:900;letter-spacing:.05em}.locality-diagram span:nth-child(odd){padding:10px 4px;border-radius:10px;background:#fff}
.close-animal-cta{width:100%;min-height:76px;border:0;border-radius:16px;background:#7f2b23;color:#fff;padding:14px 16px;margin-bottom:14px;text-align:left;display:grid;gap:2px}.close-animal-cta strong{font-size:1.05rem}.close-animal-cta span{font-size:.82rem;opacity:.93}
.guidance-block{padding:12px 14px;border-radius:12px;background:#eef3eb;margin-bottom:16px}.guidance-block p{margin:4px 0 0}
.big-actions{list-style:none;padding:0;margin:0 0 16px;display:grid;gap:12px;counter-reset:item}.big-actions li{position:relative;padding:12px 12px 12px 48px;border-bottom:1px solid var(--border);display:grid;gap:2px}.big-actions li:before{counter-increment:item;content:counter(item);position:absolute;left:8px;top:10px;width:28px;height:28px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;font-weight:900}.big-actions span{font-size:.88rem;color:var(--muted)}
.sos-address{font-size:1.12rem;font-weight:900;margin:8px 0}.sos-step-title{display:flex;align-items:center;gap:10px;margin:10px 2px}.sos-step-title span{width:28px;height:28px;border-radius:50%;background:#9e2018;color:#fff;display:grid;place-items:center;font-weight:900}
.emergency-card{min-height:76px}.emergency-card .verified{display:block;font-size:.72rem;color:#667067;margin-top:3px}
button,a,input,textarea,summary{min-height:44px}
.bottom-nav button{min-height:56px}
@media(max-width:420px){body{font-size:16px}.content-pad{padding:14px}.section-intro h1{font-size:1.62rem}.hero-copy h1{font-size:1.8rem}.locality-diagram{gap:5px;padding:10px 7px;font-size:.62rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

.species-text-visual{height:164px;display:grid;place-items:center;padding:18px;background:linear-gradient(145deg,#dfe9df,#f7f2e6);font:700 1.15rem/1.1 Georgia,serif;letter-spacing:.08em;color:var(--green);text-align:center}

/* MPC Companion Wildlife R6 — mobile-first Marloth Park wildlife presentation */
#view-wildlife .content-pad{padding-bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) + 28px)}
#view-wildlife .section-intro{margin-bottom:14px}
#view-wildlife .section-intro h1{max-width:16ch}
.wildlife-tools{margin:0 0 14px}
.wildlife-search-wrap{position:relative}
.wildlife-search-wrap input{width:100%;min-height:52px;border:1px solid #aab3ac;border-radius:14px;background:#fff;color:var(--ink);font:inherit;padding:12px 14px 12px 44px;box-shadow:0 5px 18px rgba(23,60,42,.07)}
.wildlife-search-wrap input:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(23,60,42,.12)}
.wildlife-search-icon{position:absolute;left:15px;top:50%;transform:translateY(-50%);pointer-events:none;font-size:1rem}
.wildlife-count{min-height:24px;padding:7px 2px 0;color:var(--muted);font-size:.8rem;font-weight:700}
.wildlife-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.wildlife-card{min-height:0;border:1px solid var(--border);background:#fff;border-radius:16px;overflow:hidden;padding:0;color:var(--ink);text-align:left;box-shadow:0 5px 18px rgba(23,60,42,.08);transition:transform .15s ease,box-shadow .15s ease}
.wildlife-card:active{transform:scale(.985)}
.wildlife-card img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:center;background:#e7e2d7}
.wildlife-card strong{display:block;padding:11px 12px 12px;font-size:.95rem;line-height:1.2}
.wildlife-empty{padding:18px;border:1px solid var(--border);border-radius:14px;background:#fff;color:var(--muted);text-align:center}
@media(max-width:340px){
  .wildlife-grid{grid-template-columns:1fr}
  .wildlife-card img{aspect-ratio:16/10}
}
@media(min-width:600px){
  .wildlife-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
  .wildlife-card strong{font-size:1rem}
}
@media(min-width:900px){
  .wildlife-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
  .wildlife-card:hover{transform:translateY(-2px);box-shadow:0 9px 24px rgba(23,60,42,.12)}
}

/* MPC Companion Wildlife R7 — catalogue-only browsing and head-safe image framing */
.wildlife-count-standalone{padding:2px 2px 10px}
.wildlife-card img{aspect-ratio:4/3;object-fit:cover}
.animal-feature{background:#e7e2d7}
.animal-feature img{
  display:block;
  width:100%;
  height:auto;
  min-height:0;
  max-height:min(56vh,560px);
  object-fit:contain;
  object-position:center center;
  background:#e7e2d7;
}
@media(max-width:430px){
  .animal-feature img{max-height:48vh}
}

/* MPC Companion Wildlife R8 — complete-animal catalogue framing */
.wildlife-card{display:flex;flex-direction:column}
.wildlife-card img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:contain;
  object-position:center center !important;
  background:#ece7dc;
}
.wildlife-card strong{margin-top:auto}
@media(max-width:340px){
  .wildlife-card img{aspect-ratio:4/3}
}


/* Companion Embedded MAP R1 */
#view-map .content-pad{padding-bottom:96px}
.embedded-map-shell{
  margin:0 -12px 18px;
  border:1px solid var(--line,#d8cfbe);
  border-radius:22px;
  overflow:hidden;
  background:#fffdf8;
  box-shadow:0 10px 28px rgba(24,54,42,.10);
}
.embedded-map-toolbar{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:14px 16px 12px;
  border-bottom:1px solid var(--line,#d8cfbe);
}
.embedded-map-toolbar h2{margin:.15rem 0 .15rem}
.embedded-map-toolbar .small-copy{margin:0}
.embedded-map-toolbar .secondary-button{flex:0 0 auto;white-space:nowrap}
.embedded-map-stage{
  position:relative;
  width:100%;
  height:min(68dvh,760px);
  min-height:520px;
  background:#e8eadf;
}
#embeddedMapFrame{
  display:block;
  width:100%;
  height:100%;
  border:0;
  background:#e8eadf;
}
.embedded-map-offline{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:30px;
  text-align:center;
  background:#f6f1e7;
}
.embedded-map-support{margin-top:0}
#mapDiscoveryStart,#mapDiscoveryPanel,#mapHandoff{display:none!important}
@media (max-width:640px){
  #view-map .content-pad{padding-left:10px;padding-right:10px}
  .embedded-map-shell{margin-left:-2px;margin-right:-2px;border-radius:16px}
  .embedded-map-toolbar{padding:12px;gap:10px}
  .embedded-map-toolbar h2{font-size:1.05rem}
  .embedded-map-toolbar .secondary-button{padding:.65rem .75rem;font-size:.88rem}
  .embedded-map-stage{height:64dvh;min-height:480px}
}
@media (max-height:700px){
  .embedded-map-stage{height:58dvh;min-height:400px}
}


/* Companion Mobile Embedded MAP R1 */
.embedded-map-failure{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:28px;
  text-align:center;
  background:#f6f1e7;
  z-index:3;
}
.embedded-map-failure strong{max-width:30rem}
.embedded-map-failure span{max-width:28rem}
.embedded-map-failure .primary-button{margin-top:6px}
.embedded-map-stage.is-retrying::after{
  content:"Retrying live MPC MAP…";
  position:absolute;
  left:50%;
  bottom:14px;
  transform:translateX(-50%);
  padding:7px 11px;
  border-radius:999px;
  background:rgba(255,253,248,.94);
  border:1px solid var(--line,#d8cfbe);
  font-size:.82rem;
  z-index:2;
  white-space:nowrap;
}
