*{box-sizing:border-box}:root{--g:#0f5132;--bg:#f4f8f4;--muted:#64756d}body{margin:0;background:#dcefe5;color:#173027;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button{font:inherit}.phone{max-width:430px;min-height:100vh;margin:auto;background:var(--bg);padding-bottom:78px}.hero{margin:16px;border-radius:24px;min-height:250px;padding:24px 20px;display:flex;flex-direction:column;justify-content:end;color:white;position:relative;overflow:hidden;background-image:linear-gradient(180deg,rgba(5,35,24,.05) 10%,rgba(5,35,24,.28) 42%,rgba(5,35,24,.92) 100%),url("https://upload.wikimedia.org/wikipedia/commons/thumb/5/5f/Victoria_Falls%2C_Zimbabwe_01.jpg/1280px-Victoria_Falls%2C_Zimbabwe_01.jpg");background-position:center;background-size:cover;background-repeat:no-repeat}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.08em;color:#baf2cf;text-transform:uppercase}.hero h1{font-size:30px;line-height:1.05;margin:8px 0}.hero p{margin:0;color:#e5f1eb;line-height:1.45}.section,.detail-top{padding:0 16px}.stats{display:flex;justify-content:space-between;color:var(--muted);font-size:13px;margin:12px 2px}.card{background:white;border:1px solid #dce5df;border-radius:22px;box-shadow:0 5px 18px #1730270d;margin:12px 0;padding:16px}.map-card{padding:0;overflow:hidden}.map-head{padding:16px}.map-head strong{display:block}.map-head span{font-size:12px;color:var(--muted)}.map{position:relative;height:auto;background:#fff;overflow:hidden}.route{position:absolute;height:10px;border-radius:99px;transform-origin:left center}.point{position:absolute;width:34px;height:34px;border-radius:50%;background:white;border:3px solid var(--c);font-size:11px;font-weight:800;transform:translate(-50%,-50%);cursor:pointer;box-shadow:0 2px 8px #0002}.back{border:0;background:none;color:var(--g);font-weight:700;padding:20px 0 0;cursor:pointer}.detail h1{font-size:27px;margin:12px 0 4px}.route-label{font-size:14px;font-weight:700;margin-top:10px}.tag{display:inline-block;padding:6px 10px;border-radius:99px;background:#e6f2ea;color:var(--g);font-size:12px;font-weight:800}.photo{height:210px;margin-top:18px;border-radius:22px;background:linear-gradient(135deg,#1e6b48,#9bd7b3);display:grid;place-items:center;text-align:center;color:white;font-weight:800}.placeholder-note{font-size:12px;opacity:.8}.info h3{margin:0 0 7px}.info p{line-height:1.55;color:#4f6259}.actions{display:flex;gap:10px}.primary,.secondary{border:0;border-radius:14px;padding:13px 16px;font-weight:800;cursor:pointer}.primary{background:var(--g);color:white}.secondary{background:#e8f0eb;color:var(--g)}.progress,.muted{color:var(--muted)}.challenge h1{font-size:27px}.step{border:1px solid #dfe7e1;border-radius:17px;padding:13px;margin:10px 0;background:#fbfdfb}.step strong{display:block;color:var(--g);font-size:12px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px}.code{text-align:center;font-size:30px;letter-spacing:.12em;font-weight:900;padding:15px;background:#eff8f2;border-radius:16px}.list-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:0;background:none;padding:13px 0;border-bottom:1px solid #edf1ee;cursor:pointer}.num{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:900;background:white;border:3px solid var(--c)}.reward{text-align:center;padding:24px 16px}.badge{width:150px;height:150px;margin:20px auto;border-radius:50%;background:radial-gradient(circle,#fff 0 52%,#b8e8c9 53% 62%,#0f5132 63%);display:grid;place-items:center;text-align:center;font-weight:900;color:var(--g)}.continue-grid{display:grid;gap:10px}.continue-grid button{text-align:left;border:1px solid #dce5df;background:white;border-radius:18px;padding:16px;cursor:pointer}.continue-grid b{display:block;margin-bottom:4px}.nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(430px,100%);display:grid;grid-template-columns:repeat(4,1fr);background:white;border-top:1px solid #dce5df;padding:8px 5px calc(8px + env(safe-area-inset-bottom));z-index:10}.nav button{border:0;background:none;color:#64756d;font-size:11px;padding:7px 2px;cursor:pointer}.nav button.active{color:var(--g);font-weight:900}@media(min-width:700px){.phone{min-height:800px;margin:25px auto;border-radius:32px;overflow:hidden}}
/* Real Ultimate Guided Tour map */
.map{
  position:relative;
  height:auto;
  overflow:hidden;
  background:#fff;
  border-radius:0 0 18px 18px;
  -webkit-overflow-scrolling:touch;
}
.real-map{
  display:block;
  width:100%;
  height:auto;
  user-select:none;
  -webkit-user-drag:none;
}
.map-hotspot{
  position:absolute;
  width:42px;
  height:42px;
  transform:translate(-50%,-50%);
  border:0;
  border-radius:50%;
  background:transparent;
  cursor:pointer;
  padding:0;
  z-index:5;
}
.map-hotspot:focus-visible{
  outline:3px solid #0f5132;
  outline-offset:2px;
  background:rgba(255,255,255,.18);
}
@media (max-width:520px){
  .map-hotspot{width:38px;height:38px}
}
.code-input{display:block;width:100%;margin-top:10px;padding:14px 12px;border:2px solid #dce5df;border-radius:14px;font:inherit;font-weight:800;letter-spacing:.12em;text-align:center;text-transform:uppercase;background:#fff;color:#173027}.code-input:focus{outline:3px solid #b8e8c9;border-color:#0f5132}.code-input:disabled{background:#eef6f0;color:#0f5132}.feedback{margin:10px 0 14px;padding:10px 12px;border-radius:12px;background:#f1f7f3;color:#466056;font-size:13px}.step p{margin:0;color:#4f6259;line-height:1.5}.primary:disabled{opacity:.65;cursor:default}

.code-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.code-option{border:2px solid #d1d5db;background:#fff;border-radius:14px;padding:16px 10px;font-size:1.05rem;font-weight:800;letter-spacing:.12em;cursor:pointer}.code-option:active{transform:scale(.98)}.code-option:disabled{opacity:.65;cursor:default}.feedback.error{color:#b91c1c}

/* Home hero v9 */
.hero h1,.hero p,.hero .eyebrow{position:relative;z-index:1}.hero-credit{font-size:8px;opacity:.72;margin-top:8px;position:relative;z-index:1}.map-card{margin-bottom:8px}.map-head{padding-bottom:12px}
@media(max-width:520px){.hero{min-height:245px;margin:12px;border-radius:22px;padding:22px 18px}.hero h1{font-size:28px}.hero-credit{font-size:7px}}

/* Rainforest Quiz V12 */
.quiz-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}.quiz-stats div{background:#f3f7f3;border-radius:14px;padding:12px 6px;text-align:center}.quiz-stats strong{display:block;font-size:22px;color:var(--g)}.quiz-stats span{display:block;font-size:10px;color:#667085;margin-top:3px}.quiz-rules{padding:14px;margin:12px 0}.quiz-rules ul{margin:8px 0 0 18px;padding:0}.quiz-rules li{margin:6px 0;color:#46505a;font-size:13px}.quiz-progress{display:flex;justify-content:space-between;font-size:11px;font-weight:800;color:#667085;margin:8px 0}.progress-bar{height:6px;background:#e7ece8;border-radius:99px;overflow:hidden;margin-bottom:18px}.progress-bar span{display:block;height:100%;background:var(--g);border-radius:99px}.quiz-question-number{font-size:12px;font-weight:900;letter-spacing:.12em;color:var(--g);margin-bottom:6px}.quiz-options{display:grid;gap:10px;margin-top:18px}.quiz-option{border:1px solid #d9e1dc;background:#fff;border-radius:14px;padding:14px;text-align:left;font-weight:800;font-size:14px;display:flex;gap:10px;align-items:flex-start}.quiz-option span{font-weight:600}.quiz-option:active{transform:scale(.99)}.quiz-feedback{margin-top:14px;padding:12px;border-radius:12px;background:#f0f7f2;font-size:13px;line-height:1.45}.quiz-score{display:flex;flex-direction:column;align-items:center;margin:18px 0}.quiz-score strong{font-size:56px;line-height:1;color:var(--g)}.quiz-score span{font-size:12px;color:#667085;margin-top:4px}.quiz-result{text-align:center}.quiz-result .secondary{display:block}.
@media(max-width:360px){.quiz-stats div{padding:10px 3px}.quiz-stats strong{font-size:19px}.quiz-option{font-size:13px;padding:12px}}

/* Quiz product preview */
.quiz-home{padding-top:18px}.quiz-home h1{font-size:29px;line-height:1.1;margin:10px 0 10px}.quiz-home>p{font-size:14px;line-height:1.5;margin:0 0 14px}.quiz-product-preview{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:8px;margin:16px 0 18px}.quiz-product-card{height:126px;border-radius:16px;overflow:hidden;background:#fff;border:1px solid #dce5df;box-shadow:0 4px 12px #17302710}.quiz-product-card img{width:100%;height:100%;display:block;object-fit:cover}.quiz-start-button{width:100%;font-size:15px;padding:15px 18px}@media(max-width:360px){.quiz-product-preview{gap:6px}.quiz-product-card{height:108px}}

/* V17 exact user-supplied map: entire map opens Tour Point 1 */
.map-all-click{position:absolute;inset:0;width:100%;height:100%;border:0;background:transparent;cursor:pointer;z-index:5;padding:0;margin:0}
.map-all-click:focus-visible{outline:3px solid #0f5132;outline-offset:-3px;background:rgba(255,255,255,.08)}

/* Voice Guide V19 */
.voice-guide{padding:16px;margin-top:14px;background:linear-gradient(180deg,#ffffff,#f5fbf7);border-color:#cfe3d5}.voice-guide-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.voice-guide h3{margin:5px 0 0;font-size:18px}.guide-icon{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#e5f4ea;font-size:22px}.guide-status{margin:10px 0 12px;color:#5a6b63;font-size:12px;line-height:1.4}.guide-controls{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:7px}.guide-controls button{padding:11px 8px;font-size:12px}.guide-controls button:disabled{opacity:.55;cursor:default}@media(max-width:360px){.guide-controls{grid-template-columns:1.25fr 1fr 1fr}.guide-controls button{font-size:11px;padding:10px 5px}}
.photo-wrap{margin-top:18px;position:relative}.point-photo{display:block;width:100%;height:210px;object-fit:cover;border-radius:22px;background:#dcefe5}.photo-fallback{display:none;height:210px;margin:0;border-radius:22px}.photo-credit{font-size:9px;color:#72827b;margin:5px 4px 0;line-height:1.3}

/* V21 Enhanced booking page */
.booking-page{padding-top:18px}.booking-intro{font-size:14px;line-height:1.5;margin:0 0 16px;color:#53655d}.booking-grid{display:grid;gap:14px}.booking-card{background:#fff;border:1px solid #dce5df;border-radius:22px;overflow:hidden;box-shadow:0 5px 18px #1730270d}.booking-icon{height:105px;display:grid;place-items:center;font-size:48px;background:linear-gradient(135deg,#e5f4ea,#f7fbf8);border-bottom:1px solid #e0e9e3}.booking-photo{display:block;width:100%;height:190px;object-fit:cover;border-bottom:1px solid #e0e9e3}.booking-card-body{padding:16px}.booking-topline{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:5px}.booking-label{font-size:10px;font-weight:900;letter-spacing:.1em;color:var(--g)}.booking-topline strong{font-size:18px;color:var(--g)}.booking-card h2{font-size:21px;line-height:1.15;margin:3px 0 8px;color:#173027}.booking-card p{font-size:13px;line-height:1.5;color:#53655d;margin:0 0 10px}.booking-card ul{margin:0 0 15px;padding-left:19px}.booking-card li{font-size:12px;line-height:1.45;color:#53655d;margin:5px 0}.booking-button{display:block;text-align:center;text-decoration:none;width:100%}.booking-note{font-size:10px;line-height:1.45;color:#78867f;margin:14px 2px 4px;text-align:center}

/* V23 Explorer Map landing — map-first home inspired by the user's preferred layout */
.explorer-home{background:#f3f7f4;padding-bottom:88px}
.explorer-map-landing{position:relative;background:#123f2d;overflow:hidden;min-height:calc(100vh - 88px);min-height:calc(100dvh - 88px);box-shadow:0 8px 28px rgba(0,0,0,.12)}
.explorer-map-title{position:absolute;z-index:8;top:0;left:0;right:0;padding:18px 16px 28px;color:#fff;background:linear-gradient(180deg,rgba(9,50,35,.92),rgba(9,50,35,.68),rgba(9,50,35,0));display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none}
.explorer-map-title .eyebrow{font-size:10px;opacity:.9;color:#fff;letter-spacing:.08em}
.explorer-map-title h1{font-size:27px;line-height:1;margin:3px 0 5px;letter-spacing:-.02em}
.explorer-map-title p{font-size:11px;margin:0;opacity:.92}
.map-badge{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.95);color:#0f5132;font-weight:900;font-size:15px;box-shadow:0 3px 12px rgba(0,0,0,.2)}
.explorer-map-frame{position:relative;width:100%;height:calc(100vh - 88px);height:calc(100dvh - 88px);min-height:620px;overflow:hidden;background:#fff}
.explorer-map-frame .real-map{width:100%;height:100%;object-fit:contain;object-position:center center;background:#fff}
.explorer-map-frame .map-all-click{z-index:6}
.map-start-hint{position:absolute;z-index:7;left:50%;bottom:18px;transform:translateX(-50%);background:rgba(15,81,50,.94);color:#fff;border-radius:16px;padding:9px 16px;text-align:center;font-size:10px;font-weight:900;letter-spacing:.06em;box-shadow:0 5px 18px rgba(0,0,0,.22);pointer-events:none;white-space:nowrap}
.map-start-hint span{font-size:9px;font-weight:600;letter-spacing:0;opacity:.9}
.home-quick-links{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px 10px 4px;background:#f3f7f4}
.home-quick-links button{border:1px solid #dce5df;background:#fff;border-radius:16px;padding:11px 10px;text-align:left;color:#173027;box-shadow:0 3px 10px rgba(23,48,39,.05)}
.home-quick-links button span{font-size:18px;float:right}.home-quick-links b{display:block;font-size:12px;color:#0f5132}.home-quick-links small{display:block;font-size:9px;color:#66756e;margin-top:3px;line-height:1.25}
@media(max-width:520px){.explorer-map-title{padding:15px 14px 25px}.explorer-map-title h1{font-size:25px}.map-badge{width:38px;height:38px}.explorer-map-frame{min-height:540px}.map-start-hint{bottom:14px}}


/* V24 — Larger, easier-to-read mobile navigation */
.nav-five{height:88px;padding:5px 3px calc(5px + env(safe-area-inset-bottom));background:#fff;box-shadow:0 -4px 16px rgba(23,48,39,.08);align-items:stretch}
.nav-five button{font-size:22px !important;line-height:1 !important;padding:8px 1px 6px !important;min-height:78px !important;border-radius:12px;color:#52625b;display:flex;flex-direction:column;align-items:center;justify-content:center}
.nav-five button span{display:block;font-size:13px !important;line-height:1.05 !important;margin-top:7px !important;white-space:nowrap;font-weight:700}
.nav-five button.active{color:var(--g);background:#f1f8f4;font-weight:900}
.nav-five button.active span{font-weight:900}
@media(max-width:360px){.nav-five{height:84px}.nav-five button{font-size:20px !important;min-height:74px !important}.nav-five button span{font-size:11px !important}}

/* V25 — Compact distinct bottom navigation buttons */
.nav-five{height:82px;padding:6px 5px calc(6px + env(safe-area-inset-bottom));gap:5px;background:#fff;box-shadow:0 -3px 14px rgba(23,48,39,.08);align-items:stretch}
.nav-five button{font-size:19px !important;line-height:1 !important;padding:6px 2px 5px !important;min-height:68px !important;border:1px solid #dce5df !important;border-radius:14px !important;background:#fff !important;color:#52625b;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 1px 3px rgba(23,48,39,.04)}
.nav-five button span{display:block;font-size:11px !important;line-height:1.05 !important;margin-top:5px !important;white-space:nowrap;font-weight:800}
.nav-five button.active{color:var(--g);background:#eef8f2 !important;border-color:#b9d9c7 !important;font-weight:900;box-shadow:inset 0 0 0 1px rgba(15,81,50,.05)}
.nav-five button.active span{font-weight:900}
@media(max-width:380px){.nav-five{gap:3px;padding-left:3px;padding-right:3px}.nav-five button{font-size:17px !important;min-height:66px !important;border-radius:12px !important}.nav-five button span{font-size:10px !important;margin-top:4px !important}}


/* V26 — Use the existing white space below the map for the home action buttons.
   The map itself is unchanged; the Quiz and Book cards simply sit inside the
   white lower portion of the map frame so more of the home screen fits on iPhone. */
.explorer-map-frame{position:relative}
.home-quick-links-overlay{position:absolute;left:10px;right:10px;bottom:10px;z-index:8;padding:0;background:transparent;gap:8px}
.home-quick-links-overlay button{padding:12px 10px;min-height:88px}
.map-start-hint{bottom:112px}
@media(max-width:380px){
  .home-quick-links-overlay{left:8px;right:8px;bottom:8px;gap:6px}
  .home-quick-links-overlay button{min-height:82px;padding:10px 8px}
  .map-start-hint{bottom:102px}
}


/* V27 — Compact Tour Point 1 test. Voice guide is the primary experience. */
.tour-point-compact{background:#f3f7f4;padding-bottom:88px}
.tp1-wrap{padding:0 14px 18px}
.tp1-back{padding:12px 0 8px;font-size:13px}
.tp1-title h1{font-size:24px;line-height:1.08;margin:8px 0 4px;color:#173027}
.tp1-title .route-label{font-size:12px;margin-top:5px}
.tp1-photo-wrap{margin-top:10px}
.tp1-photo{display:block;width:100%;height:150px;object-fit:cover;border-radius:18px;background:#dcefe5}
.tp1-photo-fallback{height:150px;border-radius:18px;background:#dcefe5;display:none;place-items:center;color:#557067;font-size:12px;font-weight:800}
.tp1-voice{margin-top:10px;padding:13px;border-radius:18px;background:linear-gradient(180deg,#ffffff,#f1faf4);border:1px solid #c7dfcf;box-shadow:0 5px 16px rgba(23,48,39,.08)}
.tp1-voice-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.tp1-voice h2{font-size:19px;margin:4px 0 2px;color:#173027}
.tp1-voice p{font-size:11px;color:#61736b;margin:0;line-height:1.35}
.tp1-headphone{width:42px;height:42px;border-radius:50%;background:#e4f4e9;display:grid;place-items:center;font-size:21px;flex:0 0 auto}
.tp1-play{width:100%;margin-top:11px;border:0;border-radius:14px;background:var(--g);color:white;font-weight:900;font-size:15px;padding:13px 12px;letter-spacing:.03em}
.tp1-mini-controls{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:7px}
.tp1-mini-controls button{padding:8px 7px;font-size:11px}
.tp1-quick{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.tp1-quick>div{background:white;border:1px solid #dce5df;border-radius:15px;padding:10px}
.tp1-quick strong{font-size:10px;letter-spacing:.07em;color:var(--g)}
.tp1-quick p{font-size:11px;line-height:1.4;color:#53655d;margin:5px 0 0}
.tp1-actions{display:grid;grid-template-columns:1fr 1.35fr;gap:8px;margin-top:10px}
.tp1-actions button{font-size:12px;padding:11px 10px}
@media(max-width:360px){.tp1-wrap{padding-left:11px;padding-right:11px}.tp1-photo,.tp1-photo-fallback{height:130px}.tp1-title h1{font-size:22px}.tp1-voice{padding:11px}.tp1-voice h2{font-size:18px}.tp1-quick p{font-size:10px}.tp1-actions button{font-size:11px}}

/* V29 — All 21 tour points use the compact, voice-first layout with no photos. */
.tp1-title-long h1{font-size:21px;line-height:1.08}
@media(max-width:360px){.tp1-title-long h1{font-size:19px}}
