
/* BUNDLED FROM safari-pricing-guard-v399.css */
/* V399 — Operational note for multi-day safari and Tanzania + Zanzibar pricing. */
.v399-safari-pricing-note{margin-top:14px;padding:13px 14px;border:1px solid rgba(21,94,57,.18);border-radius:12px;background:rgba(244,249,246,.96);display:flex;flex-direction:column;gap:4px;font-size:.9rem;line-height:1.45}.v399-safari-pricing-note[hidden]{display:none!important}.v399-safari-pricing-note strong{font-size:.92rem}.v399-safari-pricing-note span{opacity:.88}

/* Safari hero airfare notice — aligned to the Zanzibar Holiday Package orange duration bar. */
.safari-airfare-note{
  display:flex;
  align-items:center;
  width:100%;
  max-width:820px;
  box-sizing:border-box;
  margin:8px 0 10px;
  padding:6px 10px;
  border:0;
  border-radius:999px;
  background:rgba(245,107,22,.92);
  color:#fff!important;
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.06em;
  text-shadow:0 2px 12px rgba(0,0,0,.42)!important;
  box-shadow:none;
}


/* BUNDLED FROM holiday-accommodation-bridge-v398.css */
/* V398 — Zanzibar Holiday Package accommodation bridge */
.v398-holiday-accommodation{margin-top:18px;padding:18px;border:1px solid rgba(26,110,82,.18);border-radius:18px;background:linear-gradient(180deg,#fbfffd,#f5fbf8)}
.v398-holiday-accommodation[hidden]{display:none!important}
.v398-accommodation-head{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;margin-bottom:8px}
.v398-accommodation-head small,.v398-region-copy small,.v398-return-bar small{display:block;font-size:11px;letter-spacing:.12em;font-weight:800;color:#176b52}
.v398-accommodation-head h4{margin:3px 0 0;font-size:18px;line-height:1.25;color:#17352c}
.v398-accommodation-head>span{font-size:11px;font-weight:800;color:#8b5720;background:#fff4df;border:1px solid #f0d19d;border-radius:999px;padding:7px 9px;white-space:nowrap}
.v398-accommodation-copy{margin:0 0 12px;color:#53635e;font-size:13px;line-height:1.55}
.v398-accommodation-status{display:grid;gap:2px;padding:11px 12px;border-radius:13px;background:#fff;border:1px solid #e2ebe7;margin:0 0 10px}
.v398-accommodation-status strong{font-size:13px;color:#1d352d}.v398-accommodation-status span{font-size:12px;color:#66756f;line-height:1.45}.v398-accommodation-status.has-choice{border-color:#a9d5c4;background:#f6fffb}
.v398-accommodation-actions{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:10px}
.v398-browse,.v398-select-package-hotel,.v398-return-bar button{appearance:none;border:0;border-radius:12px;background:#176b52;color:#fff;font-weight:800;cursor:pointer;padding:11px 14px;font:inherit}
.v398-browse:hover,.v398-select-package-hotel:hover,.v398-return-bar button:hover{filter:brightness(.94)}
.v398-other-hotel{display:grid;gap:6px;font-size:12px;font-weight:800;color:#334c43}.v398-other-hotel input{width:100%;box-sizing:border-box;border:1px solid #cfdcd7;border-radius:11px;padding:11px 12px;background:#fff;font:inherit;color:#20362f}
.v398-accommodation-note{display:block;margin-top:8px;color:#6a7873;line-height:1.45}
.v398-return-bar{position:sticky;top:0;z-index:8;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 14px;margin:0 0 16px;border-radius:16px;background:#eefaf5;border:1px solid #b8dfcf;box-shadow:0 6px 22px rgba(20,62,49,.08)}
.v398-return-bar[hidden],.v398-region-chooser[hidden],.v398-select-package-hotel[hidden]{display:none!important}
.v398-return-bar div{display:grid;gap:2px}.v398-return-bar strong{font-size:14px;color:#153a2f}.v398-return-bar span{font-size:12px;color:#60736c}.v398-return-bar button{flex:0 0 auto;padding:10px 12px;font-size:12px}
.v398-region-chooser{padding:18px;margin-bottom:18px;border:1px solid #e1e8e5;border-radius:18px;background:#fff}
.v398-region-copy h3{margin:4px 0 5px;font-size:22px;color:#17352c}.v398-region-copy p{margin:0 0 14px;color:#61706b;line-height:1.5}
.v398-region-buttons{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.v398-region-buttons button{display:grid;gap:3px;text-align:left;border:1px solid #d8e4df;background:#f9fcfb;border-radius:13px;padding:12px;cursor:pointer}.v398-region-buttons button:hover{border-color:#8fc5b1;background:#f2faf7}.v398-region-buttons strong{font-size:13px;color:#1c3d32}.v398-region-buttons span{font-size:11px;color:#6b7b75}
.v398-select-package-hotel{width:100%;margin:9px 0 6px;background:#176b52;font-size:12px;padding:10px 12px}
@media(max-width:900px){.v398-region-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}.v398-return-bar{align-items:stretch;flex-direction:column}.v398-return-bar button{width:100%}}
@media(max-width:520px){.v398-accommodation-head{flex-direction:column}.v398-accommodation-head>span{white-space:normal}.v398-region-buttons{grid-template-columns:1fr}.v398-holiday-accommodation{padding:14px}}
.v398-package-page-accommodation-link{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px}.v398-package-page-accommodation-link button{appearance:none;border:1px solid #176b52;background:#fff;color:#176b52;border-radius:12px;padding:10px 13px;font:inherit;font-weight:800;cursor:pointer}.v398-package-page-accommodation-link button:hover{background:#f1faf6}.v398-package-page-accommodation-link span{font-size:12px;font-weight:700;color:#176b52}


/* BUNDLED FROM booking-terms-layout-v423.css */
/* V423 — Final global uniform Booking Terms + Cancellation acceptance layout.
   Visual-only override. No booking, pricing, cutoff, deposit or payment logic changes. */
.v407-policy-acceptance{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  margin:16px 0 14px!important;
  padding:16px!important;
  border:1px solid #d7e0e6!important;
  border-radius:14px!important;
  background:#fff!important;
  box-shadow:none!important;
  color:#173149!important;
  text-align:left!important;
}
.v407-policy-acceptance .v407-policy-row{
  display:grid!important;
  grid-template-columns:22px minmax(0,1fr)!important;
  align-items:start!important;
  gap:0 12px!important;
  width:100%!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  text-align:left!important;
}
.v407-policy-acceptance .v407-policy-row>input[type="checkbox"]{
  appearance:auto!important;
  -webkit-appearance:checkbox!important;
  width:22px!important;
  height:22px!important;
  min-width:22px!important;
  max-width:22px!important;
  min-height:22px!important;
  margin:2px 0 0!important;
  padding:0!important;
  border-radius:4px!important;
  accent-color:#f56b16!important;
  cursor:pointer!important;
  justify-self:start!important;
  align-self:start!important;
  flex:none!important;
}
.v407-policy-acceptance .v407-policy-copy{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  color:#173149!important;
  font-family:Arial,sans-serif!important;
  font-size:14px!important;
  font-style:normal!important;
  font-weight:700!important;
  line-height:1.5!important;
  letter-spacing:0!important;
  text-align:left!important;
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:break-word!important;
}
.v407-policy-acceptance .v407-policy-copy .v407-policy-link,
.v407-policy-acceptance .v407-policy-link{
  appearance:none!important;
  -webkit-appearance:none!important;
  display:inline!important;
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  height:auto!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:#0b6f98!important;
  font-family:Arial,sans-serif!important;
  font-size:14px!important;
  font-style:normal!important;
  font-weight:800!important;
  line-height:1.5!important;
  letter-spacing:0!important;
  text-transform:none!important;
  text-align:left!important;
  vertical-align:baseline!important;
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:break-word!important;
  text-decoration:underline!important;
  text-underline-offset:2px!important;
  text-decoration-thickness:1px!important;
  cursor:pointer!important;
}
.v407-policy-acceptance .v407-policy-error{
  display:none!important;
  margin:9px 0 0 34px!important;
  padding:0!important;
  color:#a33122!important;
  font-family:Arial,sans-serif!important;
  font-size:12px!important;
  font-weight:700!important;
  line-height:1.4!important;
  text-align:left!important;
}
.v407-policy-acceptance.is-error{border-color:rgba(163,49,34,.42)!important;background:#fff9f7!important}
.v407-policy-acceptance.is-error .v407-policy-error{display:block!important}
@media(max-width:640px){
  .v407-policy-acceptance{margin:14px 0 12px!important;padding:14px!important;border-radius:13px!important}
  .v407-policy-acceptance .v407-policy-row{grid-template-columns:21px minmax(0,1fr)!important;gap:0 10px!important}
  .v407-policy-acceptance .v407-policy-row>input[type="checkbox"]{width:21px!important;height:21px!important;min-width:21px!important;max-width:21px!important;min-height:21px!important}
  .v407-policy-acceptance .v407-policy-copy,
  .v407-policy-acceptance .v407-policy-link{font-size:13px!important;line-height:1.5!important}
  .v407-policy-acceptance .v407-policy-error{margin-left:31px!important;font-size:11.75px!important}
}


/* BUNDLED FROM booking-policy-dual-v484.css */
/* V484 — Global two-checkbox policy acceptance component.
   Separate, equally styled Terms & Conditions and Cancellation Policy rows. */
.v436-policy-acceptance{
  display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;
  box-sizing:border-box!important;margin:16px 0 14px!important;padding:16px!important;
  border:1px solid #d7e0e6!important;border-radius:14px!important;background:#fff!important;
  box-shadow:none!important;color:#173149!important;text-align:left!important;
}
.v436-policy-list{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;width:100%!important;min-width:0!important}
.v436-policy-row{
  display:grid!important;grid-template-columns:22px minmax(0,1fr)!important;align-items:start!important;
  gap:0 12px!important;width:100%!important;min-width:0!important;min-height:34px!important;
  margin:0!important;padding:8px 10px!important;border:1px solid #e5ebef!important;border-radius:10px!important;
  background:#fbfcfd!important;box-sizing:border-box!important;text-align:left!important;
}
.v436-policy-row>input[type="checkbox"]{
  appearance:auto!important;-webkit-appearance:checkbox!important;width:22px!important;height:22px!important;
  min-width:22px!important;max-width:22px!important;min-height:22px!important;margin:1px 0 0!important;padding:0!important;
  border-radius:4px!important;accent-color:#f56b16!important;cursor:pointer!important;justify-self:start!important;align-self:start!important;flex:none!important;
}
.v436-policy-copy{
  display:block!important;width:100%!important;min-width:0!important;margin:0!important;padding:0!important;
  color:#173149!important;font-family:Arial,sans-serif!important;font-size:14px!important;font-style:normal!important;
  font-weight:700!important;line-height:1.5!important;letter-spacing:0!important;text-align:left!important;
  white-space:normal!important;word-break:normal!important;overflow-wrap:break-word!important;
}
.v436-policy-link{
  appearance:none!important;-webkit-appearance:none!important;display:inline!important;width:auto!important;min-width:0!important;max-width:none!important;
  height:auto!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;
  background:transparent!important;box-shadow:none!important;color:#0b6f98!important;font-family:Arial,sans-serif!important;
  font-size:14px!important;font-style:normal!important;font-weight:800!important;line-height:1.5!important;letter-spacing:0!important;
  text-transform:none!important;text-align:left!important;vertical-align:baseline!important;white-space:normal!important;
  word-break:normal!important;overflow-wrap:break-word!important;text-decoration:underline!important;text-underline-offset:2px!important;
  text-decoration-thickness:1px!important;cursor:pointer!important;
}
.v436-policy-link:hover,.v436-policy-link:focus-visible{color:#07506e!important;outline:none!important;text-decoration-thickness:2px!important}
.v436-policy-note{display:block!important;margin:10px 2px 0!important;color:#60737c!important;font:600 11.75px/1.45 Arial,sans-serif!important;text-align:left!important}
.v436-policy-error{display:none!important;margin:9px 2px 0!important;color:#a33122!important;font:700 12px/1.4 Arial,sans-serif!important;text-align:left!important}
.v436-policy-acceptance.is-error{border-color:rgba(163,49,34,.42)!important;background:#fff9f7!important}
.v436-policy-acceptance.is-error .v436-policy-error{display:block!important}
.v436-policy-row.is-missing{border-color:rgba(163,49,34,.34)!important;background:#fffafa!important}
.v436-policy-incomplete{opacity:.58!important;filter:saturate(.72)!important;cursor:not-allowed!important}
/* Legacy gates are intentionally suppressed when V436 is active. */
.v407-policy-acceptance,.v358-policy-gate{display:none!important}
@media(max-width:640px){
  .v436-policy-acceptance{margin:14px 0 12px!important;padding:14px!important;border-radius:13px!important}
  .v436-policy-list{gap:9px!important}
  .v436-policy-row{grid-template-columns:21px minmax(0,1fr)!important;gap:0 10px!important;padding:8px 9px!important;min-height:33px!important}
  .v436-policy-row>input[type="checkbox"]{width:21px!important;height:21px!important;min-width:21px!important;max-width:21px!important;min-height:21px!important}
  .v436-policy-copy,.v436-policy-link{font-size:13px!important;line-height:1.5!important}
  .v436-policy-note{font-size:11.25px!important}.v436-policy-error{font-size:11.75px!important}
}

/* V436 final regression: legal policy pages opened from a booking must sit above
   every booking/payment/navigation overlay so their Back control receives the
   user's real pointer click. The booking remains open underneath and its state
   is restored unchanged when the policy closes. */
html.policy-open,body.policy-open{overflow:hidden!important;}
body.policy-open .policy-page:not([hidden]){
  z-index:2147483600!important;
  pointer-events:auto!important;
}

