/* Moza Check and the short lead form. */
.moza-ck {
  --ck-ink: var(--moza-ink-900, #0E2536);
  --ck-soft: var(--moza-ink-700, #3B4F5E);
  --ck-line: var(--moza-line, #DCE6E5);
  --ck-accent: var(--moza-accent-500, #0E7D72);
  --ck-accent-dark: var(--moza-accent-600, #0A655C);
  --ck-mint: var(--moza-accent-300, #5FD0B9);
  --ck-tint: var(--moza-accent-100, #D9EEEA);
  display: flex;
  flex-direction: column;
  gap: 24px;
  width: 100%;
  max-width: 720px;
  margin: 0;
  color: var(--ck-ink);
  font-family: Assistant, system-ui, sans-serif;
  text-align: start;
}
.moza-ck-progress { margin: 0; font-size: 15px; font-weight: 700; color: var(--ck-accent-dark); }
.moza-ck-bar { height: 4px; border-radius: 4px; background: var(--ck-line); overflow: hidden; }
.moza-ck-bar span { display: block; height: 100%; background: var(--ck-accent); transition: width 0.3s ease; }
.moza-ck-step { display: flex; flex-direction: column; gap: 16px; margin: 0; padding: 0; border: 0; min-width: 0; }
.moza-ck-legend { padding: 0; margin: 0; width: 100%; }
.moza-ck-title {
  margin: 0;
  font-family: Heebo, system-ui, sans-serif;
  font-size: clamp(28px, 3.6vw, 44px);
  font-weight: 800;
  line-height: 1.12;
  color: var(--ck-ink);
  outline: none;
}
.moza-ck-hint, .moza-ck-lead { margin: 0; font-size: 18px; line-height: 1.65; color: var(--ck-soft); }
.moza-ck-options { display: flex; flex-direction: column; gap: 10px; margin-top: 8px; }
.moza-ck-option { position: relative; }
.moza-ck-option input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.moza-ck-option label {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 60px;
  padding: 14px 20px;
  border: 1.5px solid var(--ck-ink);
  border-radius: 12px;
  background: #fff;
  font: 600 19px/1.35 Assistant, system-ui, sans-serif;
  color: var(--ck-ink);
  cursor: pointer;
  transition: background-color 0.15s ease, border-color 0.15s ease;
}
.moza-ck-option label::before {
  content: '';
  flex: 0 0 22px;
  width: 22px;
  height: 22px;
  border: 2px solid var(--ck-ink);
  border-radius: 50%;
  background: #fff;
  box-sizing: border-box;
}
.moza-ck-option input:checked + label { background: var(--ck-tint); border-color: var(--ck-accent); }
.moza-ck-option input:checked + label::before { border: 7px solid var(--ck-accent); }
.moza-ck-option input:focus-visible + label { outline: 3px solid var(--ck-mint); outline-offset: 2px; }
.moza-ck-option:hover label { background: #F5F8F8; }
.moza-ck-option input:checked:hover + label { background: var(--ck-tint); }
.moza-ck-fields { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
.moza-ck-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.moza-ck-wide { grid-column: 1 / -1; }
.moza-ck-label { font-size: 15px; font-weight: 600; line-height: 1.4; color: var(--ck-ink); }
.moza-ck input.moza-ck-input, .moza-ck select.moza-ck-input {
  box-sizing: border-box;
  width: 100%;
  height: 52px;
  margin: 0;
  padding: 0 16px;
  border: 1.5px solid var(--ck-ink);
  border-radius: 8px;
  background: #fff;
  box-shadow: none;
  color: var(--ck-ink);
  font: 400 18px/1 Assistant, system-ui, sans-serif;
  scroll-margin-bottom: 110px;
}
.moza-ck input.moza-ck-input[dir="ltr"] { text-align: right; }
.moza-ck input.moza-ck-input:focus-visible, .moza-ck select.moza-ck-input:focus-visible { outline: 3px solid var(--ck-mint); outline-offset: 2px; }
.moza-ck-err { margin: 0; min-height: 0; font-size: 15px; font-weight: 600; color: var(--moza-danger, #B3261E); }
.moza-ck-err:empty { display: none; }
/* Visually hidden without an off-screen offset: in RTL an element pushed to the left makes the page scroll sideways. */
.moza-ck-hp { position: absolute !important; width: 1px !important; height: 1px !important; margin: -1px !important; padding: 0 !important; border: 0 !important; overflow: hidden !important; clip-path: inset(50%) !important; white-space: nowrap !important; opacity: 0 !important; pointer-events: none !important; }
.moza-ck-fields { position: relative; }
.moza-ck-consent { display: flex; align-items: center; gap: 12px; min-height: 44px; font-size: 16px; line-height: 1.5; color: var(--ck-soft); }
.moza-ck-consent input { width: 22px; height: 22px; margin: 0; accent-color: var(--ck-accent); flex: 0 0 22px; }
.moza-ck-consent label { font-size: 16px; padding-block: 10px; cursor: pointer; }
.moza-ck-consent input:focus-visible { outline: 3px solid var(--ck-mint); outline-offset: 3px; }
.moza-ck-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
.moza-ck button.moza-ck-next {
  min-height: 52px;
  padding: 12px 28px;
  border: 0;
  border-radius: 999px;
  background: var(--ck-accent);
  color: #fff;
  font: 700 18px/1.2 Heebo, system-ui, sans-serif;
  cursor: pointer;
  transition: background-color 0.15s ease;
}
.moza-ck button.moza-ck-next:hover { background: var(--ck-accent-dark); }
.moza-ck button.moza-ck-next:disabled { opacity: 0.6; cursor: default; }
.moza-ck button.moza-ck-back {
  min-height: 44px;
  padding: 8px 12px;
  border: 0;
  background: transparent;
  color: var(--ck-ink);
  font: 600 17px/1.2 Assistant, system-ui, sans-serif;
  text-decoration: underline;
  text-underline-offset: 4px;
  cursor: pointer;
}
.moza-ck button:focus-visible { outline: 3px solid var(--ck-mint); outline-offset: 3px; }
.moza-ck-status { margin: 0; min-height: 1.6em; font-size: 16px; font-weight: 600; color: var(--ck-ink); }
.moza-ck:not(.moza-ck-mini) { margin-inline: auto; }
.moza-ck-note { margin: 0; font-size: 15px; line-height: 1.6; color: var(--ck-soft); }
.moza-ck a.moza-ck-link, .moza-ck a.moza-ck-link:visited { display: inline-block; padding-block: 12px; color: var(--ck-accent-dark); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.moza-ck a.moza-ck-link:hover { color: var(--ck-ink); }
.moza-ck a.moza-ck-link:focus-visible { outline: 3px solid var(--ck-mint); outline-offset: 2px; }
.moza-ck-done { gap: 16px; }
.moza-ck-mini { max-width: none; gap: 16px; }
.moza-ck-mini .moza-ck-fields { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }

@media (max-width: 767px) {
  .moza-ck-fields, .moza-ck-mini .moza-ck-fields { grid-template-columns: minmax(0, 1fr); }
  .moza-ck-option label { font-size: 18px; min-height: 56px; }
  .moza-ck-actions { flex-direction: column; align-items: stretch; }
  .moza-ck button.moza-ck-next { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .moza-ck-bar span, .moza-ck-option label, .moza-ck button.moza-ck-next { transition: none; }
}

/* ---------- Moza Check pop-up ---------- */
.moza-pop { position: fixed; inset: 0; z-index: 2000; display: flex; align-items: center; justify-content: center; font-family: Assistant, system-ui, sans-serif; }
.moza-pop[hidden] { display: none; }
.moza-pop-backdrop { position: absolute; inset: 0; background: rgba(14, 37, 54, 0.72); opacity: 0; transition: opacity 0.22s ease; }
.moza-pop.is-open .moza-pop-backdrop { opacity: 1; }
.moza-pop-panel {
  --ck-ink: var(--moza-ink-900, #0E2536);
  --ck-soft: var(--moza-ink-700, #3B4F5E);
  --ck-line: var(--moza-line, #DCE6E5);
  --ck-accent: var(--moza-accent-500, #0E7D72);
  --ck-accent-dark: var(--moza-accent-600, #0A655C);
  --ck-mint: var(--moza-accent-300, #5FD0B9);
  --ck-tint: var(--moza-accent-100, #D9EEEA);
  position: relative;
  box-sizing: border-box;
  width: min(640px, calc(100vw - 32px));
  height: min(720px, calc(100vh - 32px));
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 20px 28px 28px;
  border-radius: 20px;
  background: #F5F8F8;
  color: var(--ck-ink);
  text-align: start;
  box-shadow: 0 24px 80px rgba(14, 37, 54, 0.35);
  transform: translateY(16px) scale(0.98);
  opacity: 0;
  transition: transform 0.22s ease, opacity 0.22s ease;
}
.moza-pop.is-open .moza-pop-panel { transform: none; opacity: 1; }
.moza-pop-inline .moza-pop-panel { width: 100%; max-width: 640px; height: auto; min-height: 560px; max-height: none; margin-inline: auto; transform: none; opacity: 1; box-shadow: none; border: 1.5px solid var(--ck-line); overflow: visible; }

.moza-pop-bar { display: flex; align-items: center; gap: 12px; min-height: 48px; }
.moza-pop-panel button.moza-pop-iconbtn {
  flex: 0 0 44px; width: 44px; height: 44px; padding: 0; display: inline-flex; align-items: center; justify-content: center;
  border: 0; border-radius: 50%; background: transparent; color: var(--ck-ink); cursor: pointer;
}
.moza-pop-panel button.moza-pop-iconbtn:hover { background: var(--ck-tint); }
.moza-pop-panel button.moza-pop-iconbtn[hidden] { display: inline-flex; visibility: hidden; }
.moza-pop-panel button:focus-visible, .moza-pop-panel a:focus-visible { outline: 3px solid var(--ck-mint); outline-offset: 2px; }
.moza-pop-ico { width: 24px; height: 24px; display: block; }

/* Progress track. Fill width and marker position both come from --p (0 to 1), set by the script. */
.moza-pop-track { --p: 0; flex: 1 1 auto; min-width: 0; height: 44px; display: flex; align-items: center; gap: 10px; }
.moza-pop-line { position: relative; flex: 1 1 auto; height: 8px; border-radius: 8px; background: var(--ck-line); }
.moza-pop-fill { position: absolute; inset-block: 0; inset-inline-start: 0; width: calc(var(--p) * 100%); border-radius: 8px; background: var(--ck-accent); transition: width 0.35s ease; }
.moza-pop-notches i { position: absolute; top: 50%; inset-inline-start: calc(var(--at) * 100%); width: 2px; height: 8px; margin-top: -4px; margin-inline-start: -1px; background: #fff; opacity: 0.9; }
.moza-pop-marker {
  position: absolute; top: 50%; inset-inline-start: calc(var(--p) * 100%); width: 20px; height: 20px; margin-top: -10px; margin-inline-start: -10px; border-radius: 50%;
  background: #fff; border: 4px solid var(--ck-accent); box-sizing: border-box; box-shadow: 0 2px 6px rgba(14, 37, 54, 0.25);
  transition: inset-inline-start 0.35s ease;
}
.moza-pop-door { position: relative; flex: 0 0 26px; width: 26px; height: 36px; border: 2.5px solid var(--ck-ink); border-radius: 13px 13px 0 0; box-sizing: border-box; background: var(--ck-tint); overflow: visible; }
.moza-pop-door i { position: absolute; inset: 0; border-radius: 10px 10px 0 0; background: var(--ck-accent); transform-origin: left center; transition: transform 0.5s ease; }
.moza-pop-door i::after { content: ''; position: absolute; top: 55%; right: 4px; width: 4px; height: 4px; border-radius: 50%; background: #fff; }
.moza-pop-track.is-open .moza-pop-door { background: var(--ck-mint); }
.moza-pop-track.is-open .moza-pop-door i { transform: perspective(60px) rotateY(-68deg); }
.moza-pop-sr { position: absolute !important; width: 1px !important; height: 1px !important; margin: -1px !important; padding: 0 !important; overflow: hidden !important; clip-path: inset(50%) !important; white-space: nowrap !important; }

.moza-pop-meta { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; min-height: 26px; margin-top: 4px; }
.moza-pop-ack { margin: 0; font-size: 15px; font-weight: 700; line-height: 1.5; color: var(--ck-accent-dark); }
.moza-pop-count { margin: 0; flex: 0 0 auto; font-size: 14px; font-weight: 600; color: var(--ck-soft); }
.moza-pop-caveat { margin: 0; padding: 12px 14px; border-inline-start: 3px solid var(--ck-accent); background: #fff; font-size: 16px; line-height: 1.55; color: var(--ck-ink); }
.moza-pop-body { display: flex; flex-direction: column; gap: 14px; margin-top: 8px; transition: transform 0.17s ease, opacity 0.17s ease; }
.moza-pop-body.out-next { transform: translateX(24px); opacity: 0; }
.moza-pop-body.out-back { transform: translateX(-24px); opacity: 0; }
.moza-pop-body.in-next { animation: moza-pop-in-next 0.25s ease-out both; }
.moza-pop-body.in-back { animation: moza-pop-in-back 0.25s ease-out both; }
@keyframes moza-pop-in-next { from { transform: translateX(-28px); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes moza-pop-in-back { from { transform: translateX(28px); opacity: 0; } to { transform: none; opacity: 1; } }

.moza-pop-chip { margin: 0; font-size: 15px; line-height: 1.5; color: var(--ck-soft); }
.moza-pop-panel button.moza-pop-linkbtn, .moza-pop-panel a.moza-pop-linkbtn {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 4px; border: 0; background: transparent; color: var(--ck-accent-dark);
  font: 700 16px/1.3 Assistant, system-ui, sans-serif; text-decoration: underline; text-underline-offset: 4px; cursor: pointer;
}
.moza-pop-q { display: flex; flex-direction: column; gap: 14px; margin: 0; padding: 0; border: 0; min-width: 0; }
.moza-pop-legend { padding: 0; margin: 0; width: 100%; }
.moza-pop-title { margin: 0; font-family: Heebo, system-ui, sans-serif; font-size: clamp(26px, 3.4vw, 36px); font-weight: 800; line-height: 1.15; color: var(--ck-ink); outline: none; }
.moza-pop-h3 { margin: 0; font-family: Heebo, system-ui, sans-serif; font-size: 24px; font-weight: 800; line-height: 1.2; color: var(--ck-ink); }
.moza-pop-sub { margin: 0; font-size: 17px; line-height: 1.6; color: var(--ck-soft); }
.moza-pop-kbd { margin: 0; font-size: 13px; color: var(--ck-soft); }
@media (hover: none) { .moza-pop-kbd { display: none; } }
.moza-pop-fine { margin: 0; font-size: 15px; line-height: 1.6; color: var(--ck-soft); }

.moza-pop-tiles { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
.moza-pop-tiles.is-many { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.moza-pop-tile {
  position: relative; display: flex; align-items: center; gap: 14px; min-height: 68px; padding: 12px 16px; box-sizing: border-box;
  border: 1.5px solid var(--ck-ink); border-radius: 14px; background: #fff; color: var(--ck-ink); cursor: pointer;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, transform 0.12s ease;
  -webkit-tap-highlight-color: transparent;
}
.moza-pop-tile input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; pointer-events: none; }
.moza-pop-tile-ico { flex: 0 0 44px; width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; border-radius: 12px; background: var(--ck-tint); color: var(--ck-accent-dark); transition: background-color 0.15s ease, color 0.15s ease; }
.moza-pop-tile-ico .moza-pop-ico { width: 26px; height: 26px; }
.moza-pop-tile-txt { flex: 1 1 auto; font: 700 18px/1.3 Heebo, system-ui, sans-serif; }
.moza-pop-tile-ck { flex: 0 0 26px; width: 26px; height: 26px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: #fff; color: var(--ck-accent); opacity: 0; transform: scale(0.4); transition: opacity 0.18s ease, transform 0.2s cubic-bezier(.3,1.5,.5,1); }
.moza-pop-ckico { width: 18px; height: 18px; display: block; }
.moza-pop-ckico path { stroke-width: 2.6; }
.moza-pop-tile:hover { background: var(--ck-tint); }
.moza-pop-tile:active { transform: scale(0.985); }
.moza-pop-tile:focus-within { outline: 3px solid var(--ck-mint); outline-offset: 2px; }
.moza-pop-tile.is-picked { background: var(--ck-accent); border-color: var(--ck-accent); color: #fff; }
.moza-pop-tile.is-picked .moza-pop-tile-ico { background: rgba(255, 255, 255, 0.16); color: #fff; }
.moza-pop-tile.is-picked .moza-pop-tile-ck { opacity: 1; transform: none; }

.moza-pop-routes { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.moza-pop-route { display: flex; align-items: center; gap: 16px; padding: 10px 0; border-bottom: 1px solid var(--ck-line); animation: moza-pop-rise 0.4s ease-out both; }
.moza-pop-route:last-child { border-bottom: 0; }
@keyframes moza-pop-rise { from { transform: translateY(12px); opacity: 0; } to { transform: none; opacity: 1; } }
.moza-pop-route-img { flex: 0 0 96px; width: 96px; height: 96px; object-fit: contain; padding: 8px; box-sizing: border-box; border-radius: 16px; background: var(--ck-ink); }
.moza-pop-route-t { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.moza-pop-route-t strong { font: 800 20px/1.25 Heebo, system-ui, sans-serif; color: var(--ck-ink); }
.moza-pop-route-t span { font-size: 16px; line-height: 1.5; color: var(--ck-soft); }
/* The site theme styles every button; inside the pop-up only these rules apply. */
.moza-pop-panel button, .moza-pop-panel button:hover, .moza-pop-panel button:focus { box-shadow: none; text-shadow: none; text-transform: none; letter-spacing: normal; }
.moza-pop-panel button.moza-pop-linkbtn, .moza-pop-panel button.moza-pop-linkbtn:hover, .moza-pop-panel button.moza-pop-linkbtn:focus { background: transparent; border-radius: 4px; }
.moza-pop-panel button.moza-pop-iconbtn, .moza-pop-panel button.moza-pop-iconbtn:focus { background: transparent; }
.moza-pop-panel button.moza-pop-jump, .moza-pop-panel button.moza-pop-jump:hover { box-shadow: 0 0 0 8px #F5F8F8, 0 -22px 22px 8px rgba(245, 248, 248, 0.92), 0 8px 0 8px #F5F8F8; }
.moza-pop-panel input.moza-pop-slider, .moza-pop-panel input.moza-pop-slider:focus, .moza-taste input.moza-pop-slider, .moza-taste input.moza-pop-slider:focus { box-shadow: none; outline-offset: 2px; }
.moza-pop-panel input.moza-pop-slider::-webkit-slider-runnable-track, .moza-taste input.moza-pop-slider::-webkit-slider-runnable-track { box-shadow: none; border: 0; }

/* Number questions */
.moza-pop-num { display: flex; flex-direction: column; gap: 6px; padding: 6px 0 2px; }
.moza-pop-numlabel { padding: 0; font: 700 16px/1.4 Assistant, system-ui, sans-serif; color: var(--ck-soft); }
.moza-pop-val { display: block; font: 800 clamp(40px, 9vw, 56px)/1.1 Heebo, system-ui, sans-serif; color: var(--ck-ink); font-variant-numeric: tabular-nums; letter-spacing: -0.01em; }
.moza-pop-num.is-unknown .moza-pop-val { color: var(--ck-soft); font-size: 32px; line-height: 1.75; }
.moza-pop-num.is-unknown .moza-pop-range { opacity: 0.45; }
.moza-pop-range { display: flex; align-items: center; gap: 10px; }
.moza-pop-panel button.moza-pop-step, .moza-taste button.moza-pop-step { flex: 0 0 48px; width: 48px; height: 48px; padding: 0; border: 1.5px solid var(--ck-ink); border-radius: 50%; background: #fff; color: var(--ck-ink); font: 700 26px/1 Heebo, system-ui, sans-serif; cursor: pointer; touch-action: manipulation; }
.moza-pop-panel button.moza-pop-step:hover, .moza-taste button.moza-pop-step:hover { background: var(--ck-tint); }
.moza-pop-panel input.moza-pop-slider, .moza-taste input.moza-pop-slider {
  --f: 0; flex: 1 1 auto; min-width: 0; width: 100%; height: 48px; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; cursor: pointer;
  -webkit-appearance: none; appearance: none; direction: rtl; touch-action: pan-y;
}
.moza-pop-panel input.moza-pop-slider::-webkit-slider-runnable-track, .moza-taste input.moza-pop-slider::-webkit-slider-runnable-track { height: 10px; border-radius: 10px; background: linear-gradient(to left, var(--ck-accent) calc(16px + var(--f) * (100% - 32px)), var(--ck-line) 0); }
.moza-pop-panel input.moza-pop-slider::-moz-range-track, .moza-taste input.moza-pop-slider::-moz-range-track { height: 10px; border-radius: 10px; background: linear-gradient(to left, var(--ck-accent) calc(16px + var(--f) * (100% - 32px)), var(--ck-line) 0); }
.moza-pop-panel input.moza-pop-slider::-webkit-slider-thumb, .moza-taste input.moza-pop-slider::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 32px; height: 32px; margin-top: -11px; border-radius: 50%; background: #fff; border: 5px solid var(--ck-accent); box-sizing: border-box; box-shadow: 0 2px 8px rgba(14, 37, 54, 0.3); }
.moza-pop-panel input.moza-pop-slider::-moz-range-thumb, .moza-taste input.moza-pop-slider::-moz-range-thumb { width: 32px; height: 32px; border-radius: 50%; background: #fff; border: 5px solid var(--ck-accent); box-sizing: border-box; box-shadow: 0 2px 8px rgba(14, 37, 54, 0.3); }
.moza-pop-panel input.moza-pop-slider:focus-visible, .moza-taste input.moza-pop-slider:focus-visible { outline: 3px solid var(--ck-mint); outline-offset: 2px; border-radius: 12px; }
.moza-pop-ends { display: flex; justify-content: space-between; padding-inline: 58px; font-size: 13px; color: var(--ck-soft); font-variant-numeric: tabular-nums; }
.moza-pop-panel button.moza-pop-skip { align-self: flex-start; min-height: 40px; font-size: 15px; }
.moza-pop-panel button.moza-pop-skip[aria-pressed="true"] { color: var(--ck-ink); text-decoration-thickness: 2px; }
.moza-pop-sub-q { gap: 8px; margin-top: 6px; }
.moza-pop-tiles.is-chips { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.moza-pop-tiles.is-chips .moza-pop-tile { min-height: 52px; padding: 8px 6px; justify-content: center; text-align: center; border-radius: 12px; }
.moza-pop-tiles.is-chips .moza-pop-tile-txt { flex: 0 1 auto; font-size: 16px; }
.moza-pop-panel button.moza-pop-go { align-self: flex-start; min-height: 54px; min-width: 180px; margin-top: 6px; padding: 12px 32px; border: 0; border-radius: 999px; background: var(--ck-accent); color: #fff; font: 700 19px/1.2 Heebo, system-ui, sans-serif; cursor: pointer; }
.moza-pop-panel button.moza-pop-go:hover { background: var(--ck-accent-dark); }

/* Result */
.moza-pop-body.is-result { gap: 18px; padding-bottom: 8px; }
.moza-pop-body.is-result > :nth-last-child(2) { margin-bottom: 4px; }
.moza-pop-kicker { margin: 0; font: 700 15px/1.4 Assistant, system-ui, sans-serif; color: var(--ck-soft); }
.moza-pop-text { margin: 0; font-size: 17px; line-height: 1.65; color: var(--ck-ink); }
.moza-pop-hero { display: flex; flex-direction: column; gap: 10px; padding: 20px; border-radius: 18px; background: var(--ck-ink); color: #fff; }
.moza-pop-hero .moza-pop-kicker { color: #B7C8CC; }
.moza-pop-hero .moza-pop-text { color: #E8EFEE; }
.moza-pop-bigrow { display: flex; align-items: baseline; gap: 14px; margin: 0; }
.moza-pop-big { display: block; font: 800 clamp(64px, 16vw, 92px)/0.95 Heebo, system-ui, sans-serif; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.moza-pop-big.is-mid { font-size: clamp(36px, 8vw, 48px); line-height: 1.1; color: var(--ck-ink); }
.moza-pop-zone { padding: 4px 14px; border-radius: 999px; background: var(--ck-mint); color: var(--ck-ink); font: 800 18px/1.4 Heebo, system-ui, sans-serif; }
.moza-pop-hero.is-tight .moza-pop-zone { background: #F2D27A; }
.moza-pop-hero.is-heavy .moza-pop-zone { background: #F3A58E; }
.moza-pop-zones { --v: 0; position: relative; display: grid; grid-template-columns: 3fr 1fr 2fr; gap: 3px; margin: 6px 0 4px; padding-top: 14px; }
.moza-pop-zones span { padding-top: 12px; border-top: 8px solid var(--ck-mint); font: 700 14px/1.2 Assistant, system-ui, sans-serif; color: #B7C8CC; }
.moza-pop-zones .z-tight { border-top-color: #F2D27A; }
.moza-pop-zones .z-heavy { border-top-color: #F3A58E; }
.moza-pop-pin { position: absolute; top: 6px; inset-inline-start: calc(var(--v) * 100%); width: 4px; height: 24px; margin-inline-start: -2px; border-radius: 2px; background: #fff; box-shadow: 0 0 0 2px var(--ck-ink); }
.moza-pop-how { font-size: 15px; line-height: 1.6; color: var(--ck-soft); }
.moza-pop-how summary { display: inline-flex; align-items: center; min-height: 40px; cursor: pointer; font-weight: 700; color: var(--ck-accent-dark); text-decoration: underline; text-underline-offset: 4px; list-style: none; }
.moza-pop-how summary::-webkit-details-marker { display: none; }
.moza-pop-how summary:focus-visible { outline: 3px solid var(--ck-mint); outline-offset: 2px; }
.moza-pop-how p { margin: 4px 0 0; }
.moza-pop-how p.moza-pop-sum { font-weight: 700; color: var(--ck-ink); }
.moza-pop-hero .moza-pop-how p.moza-pop-sum { color: #fff; }
.moza-pop-meterbox { display: flex; flex-direction: column; }
.moza-pop-legend { margin: 0 0 4px; font-size: 14px; line-height: 1.5; color: var(--ck-soft); }
.moza-pop-hero .moza-pop-legend { color: #B7C8CC; }
.moza-pop-panel a.moza-pop-calcbtn { align-self: flex-start; display: inline-flex; align-items: center; min-height: 48px; padding: 8px 22px; border: 1.5px solid var(--ck-ink); border-radius: 999px; background: #fff; color: var(--ck-ink); font: 700 16px/1.3 Heebo, system-ui, sans-serif; text-decoration: none; }
.moza-pop-panel a.moza-pop-calcbtn:hover { background: var(--ck-tint); }
.moza-pop-hero .moza-pop-how { color: #B7C8CC; }
.moza-pop-hero .moza-pop-how summary { color: var(--ck-mint); }
.moza-pop-blk { display: flex; flex-direction: column; gap: 8px; padding-top: 18px; border-top: 1.5px solid var(--ck-line); }
.moza-pop-meter { --v: 0; position: relative; height: 12px; margin: 6px 0 22px; border-radius: 12px; background: var(--ck-line); }
.moza-pop-meter-fill { position: absolute; inset-block: 0; inset-inline-start: 0; width: calc(var(--v) * 100%); border-radius: 12px; background: var(--ck-accent); }
.moza-pop-meter-tick { position: absolute; top: -5px; inset-inline-start: calc(var(--at) * 100%); width: 3px; height: 22px; margin-inline-start: -1.5px; background: var(--ck-ink); }
.moza-pop-meter-tick b { position: absolute; top: 24px; inset-inline-start: 50%; transform: translateX(50%); font: 700 13px/1 Assistant, system-ui, sans-serif; color: var(--ck-ink); white-space: nowrap; }
.moza-pop-meter-seg { position: absolute; inset-block: 0; inset-inline-start: calc(var(--from) * 100%); width: calc(var(--w) * 100%); }
.moza-pop-meter-seg.is-room { background: repeating-linear-gradient(135deg, var(--ck-mint) 0 6px, #A9E6D9 6px 12px); }
.moza-pop-meter-seg.is-over { background: #E2674A; border-start-end-radius: 12px; border-end-end-radius: 12px; }
.moza-pop-hero .moza-pop-big.is-mid { color: #fff; font-size: clamp(44px, 11vw, 60px); }
.moza-pop-hero .moza-pop-meter { background: rgba(255, 255, 255, 0.18); margin-bottom: 26px; }
.moza-pop-hero .moza-pop-meter-fill { background: var(--ck-mint); }
.moza-pop-hero .moza-pop-meter-tick { background: #fff; }
.moza-pop-hero .moza-pop-meter-tick b { color: #fff; }
.moza-pop-blk .moza-pop-bigrow { align-items: center; }
.moza-pop-blk .moza-pop-zone.is-tight { background: #F2D27A; }
.moza-pop-blk .moza-pop-zone.is-heavy { background: #F3A58E; }
.moza-pop-blk .moza-pop-zones span { color: var(--ck-soft); }
.moza-pop-blk .moza-pop-pin { background: var(--ck-ink); box-shadow: 0 0 0 2px #F5F8F8; }
.moza-pop-excluded, .moza-pop-docs { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 6px; font-size: 16px; line-height: 1.55; }
.moza-pop-excluded { color: var(--ck-soft); }
.moza-pop-excluded b { color: var(--ck-ink); }
.moza-pop-docs li { position: relative; padding-inline-start: 22px; color: var(--ck-ink); }
.moza-pop-docs li::before { content: ''; position: absolute; inset-inline-start: 2px; top: 0.62em; width: 9px; height: 9px; border-radius: 2px; background: var(--ck-accent); }
.moza-pop-panel button.moza-pop-jump { position: sticky; bottom: 6px; z-index: 2; align-self: stretch; min-height: 52px; margin-top: -6px; border: 0; border-radius: 999px; background: var(--ck-accent); color: #fff; font: 700 18px/1.2 Heebo, system-ui, sans-serif; cursor: pointer; box-shadow: 0 6px 20px rgba(14, 37, 54, 0.3); transition: opacity 0.2s ease, transform 0.2s ease; }
.moza-pop-panel button.moza-pop-jump.is-hidden { opacity: 0; transform: translateY(12px); pointer-events: none; }
.moza-pop-inline button.moza-pop-jump { display: none; }
.moza-pop-route-t span.moza-pop-risk { margin-top: 4px; padding-inline-start: 10px; border-inline-start: 3px solid #E2674A; font-size: 15px; font-weight: 600; color: var(--ck-ink); }
.moza-pop-meter-tick b { max-width: none; }
.moza-pop-report { padding: 22px 20px 20px !important; border-top: 0 !important; border-radius: 18px; background: var(--ck-tint); }
.moza-pop-report .moza-pop-kicker { color: var(--ck-accent-dark); }
.moza-pop-gets { list-style: none; margin: 0 0 4px; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.moza-pop-gets li { display: flex; align-items: flex-start; gap: 10px; font-size: 17px; line-height: 1.5; color: var(--ck-ink); }
.moza-pop-gets .moza-pop-ckico { flex: 0 0 22px; width: 22px; height: 22px; margin-top: 2px; padding: 3px; box-sizing: border-box; border-radius: 50%; background: var(--ck-accent); color: #fff; }
.moza-pop-report .moza-ck-actions button.moza-ck-next { min-width: 220px; }
.moza-pop-contact { max-width: none; margin: 8px 0 0; padding-top: 20px; border-top: 3px solid var(--ck-accent); gap: 14px; }
.moza-pop-panel a.moza-pop-wa { display: inline-flex; align-items: center; min-height: 48px; padding: 0 8px; color: var(--ck-accent-dark); font: 700 17px/1.2 Heebo, system-ui, sans-serif; text-decoration: underline; text-underline-offset: 4px; }
.moza-pop-after { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; margin-top: 8px; }
.moza-pop-panel a.moza-pop-btnlink { display: inline-flex; align-items: center; min-height: 52px; padding: 12px 28px; border-radius: 999px; background: var(--ck-accent); color: #fff; font: 700 18px/1.2 Heebo, system-ui, sans-serif; text-decoration: none; margin-bottom: 8px; }
.moza-pop-panel a.moza-pop-btnlink:hover { background: var(--ck-accent-dark); }

@media (max-width: 767px) {
  .moza-pop { align-items: flex-end; }
  .moza-pop-panel { width: 100vw; height: 88vh; height: 88dvh; max-height: none; padding: 12px 16px calc(20px + env(safe-area-inset-bottom, 0px)); border-radius: 20px 20px 0 0; transform: translateY(100%); opacity: 1; transition: transform 0.26s cubic-bezier(.2,.8,.2,1); }
  .moza-pop.is-open .moza-pop-panel { transform: none; }
  .moza-pop-inline .moza-pop-panel { width: 100%; height: auto; min-height: 560px; max-height: none; border-radius: 16px; padding: 12px 14px 20px; }
  .moza-pop-tiles.is-many { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .moza-pop-tiles.is-many .moza-pop-tile { flex-direction: column; align-items: flex-start; gap: 8px; min-height: 112px; padding: 12px; }
  .moza-pop-tiles.is-many .moza-pop-tile-txt { font-size: 16px; }
  .moza-pop-tiles.is-many .moza-pop-tile-ck { position: absolute; top: 10px; left: 10px; }
  .moza-pop-route-img { flex-basis: 76px; width: 76px; height: 76px; }
  .moza-pop-panel button.moza-pop-go { align-self: stretch; }
  .moza-pop-hero { padding: 16px; }
  .moza-pop-ends { padding-inline: 58px; }
  .moza-pop-route-t strong { font-size: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .moza-pop-backdrop, .moza-pop-panel, .moza-pop-body, .moza-pop-tile, .moza-pop-tile-ck, .moza-pop-marker, .moza-pop-fill, .moza-pop-door i, .moza-pop-jump { transition: none !important; }
  .moza-pop-body.in-next, .moza-pop-body.in-back, .moza-pop-route { animation: none !important; }
}
/* While the pop-up is open the phone sticky bar must not sit on top of it. */
html:has(.moza-pop.is-open) .moza-sticky-cta, html:has(.moza-pop.is-open) .moza-dock { visibility: hidden; }

/* Site-wide: a focus ring that can be seen on the navy bands, and on the WhatsApp icon. */
.moza-band-night a:focus-visible, .moza-sp-hero a:focus-visible, .moza-band-night button:focus-visible, .moza-sp-hero button:focus-visible { outline: 3px solid #5FD0B9 !important; outline-offset: 3px; }
.moza-wa-icon:focus-visible { outline: 3px solid #0E7D72 !important; outline-offset: 3px; }

/* ---------- The taste of the check on the homepage ---------- */
.moza-taste {
  --ck-ink: var(--moza-ink-900, #0E2536); --ck-soft: var(--moza-ink-700, #3B4F5E); --ck-line: var(--moza-line, #DCE6E5);
  --ck-accent: var(--moza-accent-500, #0E7D72); --ck-accent-dark: var(--moza-accent-600, #0A655C); --ck-mint: var(--moza-accent-300, #5FD0B9); --ck-tint: var(--moza-accent-100, #D9EEEA);
  display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 32px 56px; align-items: center; width: 100%;
  color: var(--ck-ink); font-family: Assistant, system-ui, sans-serif; text-align: start;
}
.moza-taste-in { display: flex; flex-direction: column; gap: 28px; min-width: 0; }
.moza-taste-q { margin: 0 0 2px; font: 700 19px/1.4 Heebo, system-ui, sans-serif; color: var(--ck-ink); }
.moza-taste .moza-pop-val { font-size: clamp(34px, 4vw, 44px); }
.moza-taste button.moza-pop-step { box-shadow: none; }
.moza-taste-out { min-height: 300px; justify-content: center; padding: 32px; border-radius: 22px; }
.moza-taste-out .moza-pop-big { font-size: clamp(72px, 9vw, 112px); min-width: 3.2ch; }
.moza-taste-out .moza-pop-text { min-height: 3.3em; }
.moza-taste-bar { min-height: 46px; }
.moza-taste-out .moza-pop-big.is-over { font-size: clamp(40px, 5vw, 60px); line-height: 1.2; }
/* The fact pills above the taste and above the tool: one wrapped row of small chips at every width. */
*:has(> #moza-check-taste) > .moza-sp-pills, *:has(> #moza-check) > .moza-sp-pills { display: flex !important; flex-direction: row !important; flex-wrap: wrap !important; gap: 8px !important; }
*:has(> #moza-check-taste) > .moza-sp-pills > *, *:has(> #moza-check) > .moza-sp-pills > * { width: auto !important; flex: 0 0 auto !important; min-height: 0 !important; padding: 6px 14px !important; padding-inline-start: 40px !important; }
/* The tick is drawn at the chip's start; the text keeps clear of it. */
*:has(> #moza-check-taste) > .moza-sp-pills > *::before, *:has(> #moza-check) > .moza-sp-pills > *::before { inset-inline-start: 12px !important; }
.moza-taste-note { margin: 0; font-size: 14px; line-height: 1.5; color: #B7C8CC; }
.moza-taste-foot { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-top: 24px; border-top: 1.5px solid var(--ck-line); }
.moza-taste-more { margin: 0; max-width: 62ch; font-size: 18px; line-height: 1.6; color: var(--ck-soft); }
.moza-taste button.moza-taste-go { flex: 0 0 auto; min-height: 56px; padding: 14px 34px; border: 0; border-radius: 999px; background: var(--ck-accent); color: #fff; font: 700 19px/1.2 Heebo, system-ui, sans-serif; cursor: pointer; box-shadow: none; }
.moza-taste button.moza-taste-go:hover { background: var(--ck-accent-dark); }
.moza-taste button:focus-visible, .moza-taste input:focus-visible { outline: 3px solid var(--ck-mint); outline-offset: 3px; }
@media (max-width: 900px) {
  .moza-taste { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  /* The figure sits above the sliders on small screens, so it stays in view while dragging. */
  .moza-taste-out { min-height: 0; padding: 20px; order: -1; }
  .moza-taste-out .moza-pop-big { font-size: 64px; }
  .moza-taste-out .moza-pop-text { min-height: 0; }
  .moza-taste-foot { flex-direction: column; align-items: stretch; }
  .moza-taste button.moza-taste-go { width: 100%; }
}

/* ---------- Phone dock: call, WhatsApp, main action, accessibility ---------- */
.moza-dock { display: none; }
@media (max-width: 767px) {
  .moza-dock {
    position: fixed; inset-inline: 0; bottom: 0; z-index: 30; display: flex; align-items: center; gap: 8px;
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px)); box-sizing: border-box;
    background: rgba(245, 248, 248, 0.94); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
    border-radius: 22px 22px 0 0; box-shadow: 0 -8px 28px rgba(14, 37, 54, 0.16); font-family: Heebo, system-ui, sans-serif;
  }
  .moza-dock a { -webkit-tap-highlight-color: transparent; text-decoration: none; }
  .moza-dock-btn { flex: 0 0 48px; width: 48px; height: 48px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; color: #0E2536; transition: transform 0.12s ease; }
  .moza-dock-btn.is-call { background: #D5E2E0; }
  .moza-dock-btn.is-wa { background: #5FD0B9; }
  .moza-dock-btn.is-a11y { flex-basis: 46px; width: 46px; height: 46px; background: #0E2536; color: #fff; }
  .moza-dock-btn svg { width: 24px; height: 24px; display: block; }
  .moza-dock-btn.is-wa svg { width: 27px; height: 27px; }
  .moza-dock-cta { flex: 1 1 auto; min-width: 0; height: 52px; display: flex; align-items: center; justify-content: space-between; gap: 6px; padding-inline: 14px 5px; border-radius: 999px; background: #0E7D72; color: #fff; transition: transform 0.12s ease; }
  .moza-dock-label { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-weight: 700; font-size: 15px; line-height: 1.2; }
  .moza-dock-label.is-mid, .moza-dock-label.is-short { display: none; }
  .moza-dock-chip { flex: 0 0 34px; width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: #fff; color: #0E7D72; }
  /* The theme colours every link; inside the dock these win. */
  .moza-dock a.moza-dock-btn, .moza-dock a.moza-dock-btn:visited, .moza-dock a.moza-dock-btn:hover, .moza-dock a.moza-dock-btn:focus { color: #0E2536 !important; }
  .moza-dock a.moza-dock-btn.is-a11y, .moza-dock a.moza-dock-btn.is-a11y:visited, .moza-dock a.moza-dock-btn.is-a11y:hover, .moza-dock a.moza-dock-btn.is-a11y:focus { color: #fff !important; }
  .moza-dock a.moza-dock-cta, .moza-dock a.moza-dock-cta:visited, .moza-dock a.moza-dock-cta:hover, .moza-dock a.moza-dock-cta:focus, .moza-dock a.moza-dock-cta .moza-dock-label { color: #fff !important; }
  .moza-dock a.moza-dock-cta .moza-dock-chip { color: #0E7D72 !important; }
  .moza-dock a:active { transform: scale(0.96); }
  .moza-dock a:focus-visible { outline: 3px solid #0E2536; outline-offset: 2px; }
  /* The old bar from the footer component gives way to the dock, and the page leaves room for it. */
  body:has(.moza-dock) .moza-sticky-cta { display: none !important; }
  /* Room for the dock, in the footer's colour so no white strip shows under it. */
  body:has(.moza-dock)::after { content: ''; display: block; height: calc(72px + env(safe-area-inset-bottom, 0px)); background: #0E2536; }
}
/* The label shortens with the screen instead of being cut. */
@media (max-width: 419px) { .moza-dock-label.is-full { display: none; } .moza-dock-label.is-mid { display: block; } }
@media (max-width: 379px) { .moza-dock { gap: 6px; } .moza-dock-btn { flex-basis: 44px; width: 44px; height: 44px; } .moza-dock-btn.is-a11y { flex-basis: 44px; width: 44px; height: 44px; } .moza-dock-label { font-size: 14px; } }
@media (max-width: 349px) { .moza-dock-label.is-mid { display: none; } .moza-dock-label.is-short { display: block; font-size: 15px; } }
@media (max-width: 767px) and (prefers-reduced-motion: reduce) { .moza-dock a { transition: none; } }

/* ---------- Accessibility toolbar ---------- */
.moza-a11y-fab { position: fixed; left: 16px; bottom: 16px; z-index: 29; width: 48px; height: 48px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: #0E2536; color: #fff; box-shadow: 0 4px 16px rgba(14, 37, 54, 0.3); }
.moza-a11y-fab, .moza-a11y-fab:visited, .moza-a11y-fab:hover, .moza-a11y-fab:focus { color: #fff !important; }
.moza-a11y-fab svg { width: 24px; height: 24px; }
.moza-a11y-fab:focus-visible { outline: 3px solid #5FD0B9; outline-offset: 3px; }
@media (max-width: 767px) { .moza-a11y-fab { display: none; } }
.moza-a11y-panel {
  position: fixed; left: 16px; bottom: 76px; z-index: 2100; box-sizing: border-box; width: 320px; max-width: calc(100vw - 32px); max-height: calc(100vh - 100px); overflow-y: auto;
  padding: 16px; border-radius: 18px; background: #fff; color: #0E2536; border: 2px solid #0E2536; box-shadow: 0 18px 60px rgba(14, 37, 54, 0.35);
  font-family: Arial, 'Helvetica Neue', sans-serif; text-align: start;
}
.moza-a11y-panel[hidden] { display: none; }
.moza-a11y-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.moza-a11y-title { margin: 0; font: 800 22px/1.2 Heebo, Arial, sans-serif; color: #0E2536; outline: none; }
.moza-a11y-panel button { font-family: inherit; cursor: pointer; box-shadow: none; text-transform: none; letter-spacing: normal; }
.moza-a11y-panel button.moza-a11y-x { width: 44px; height: 44px; padding: 0; display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 50%; background: transparent; color: #0E2536; }
.moza-a11y-panel button.moza-a11y-x svg { width: 22px; height: 22px; }
.moza-a11y-size { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0 14px; border-bottom: 1px solid #DCE6E5; }
.moza-a11y-label { font-weight: 700; font-size: 16px; }
.moza-a11y-sizectl { display: inline-flex; align-items: center; gap: 8px; direction: ltr; }
.moza-a11y-panel button.moza-a11y-step { width: 44px; height: 44px; padding: 0; border: 2px solid #0E2536; border-radius: 50%; background: #fff; color: #0E2536; font-size: 24px; font-weight: 700; line-height: 1; }
.moza-a11y-panel button.moza-a11y-step:disabled { opacity: 0.35; cursor: default; }
.moza-a11y-val { min-width: 52px; text-align: center; font-weight: 700; font-size: 17px; font-variant-numeric: tabular-nums; }
.moza-a11y-list { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 14px 0; }
.moza-a11y-panel button.moza-a11y-toggle { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; min-height: 76px; padding: 10px 12px; border: 2px solid #0E2536; border-radius: 12px; background: #fff; color: #0E2536; font-size: 15px; font-weight: 700; line-height: 1.3; text-align: start; }
.moza-a11y-panel button.moza-a11y-toggle svg { width: 24px; height: 24px; }
.moza-a11y-panel button.moza-a11y-toggle[aria-pressed="true"] { background: #0E2536; color: #fff; }
.moza-a11y-panel button.moza-a11y-toggle:last-child:nth-child(odd) { grid-column: 1 / -1; flex-direction: row; align-items: center; min-height: 52px; }
.moza-a11y-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 12px; border-top: 1px solid #DCE6E5; }
.moza-a11y-panel button.moza-a11y-reset { min-height: 44px; padding: 8px 20px; border: 2px solid #0E2536; border-radius: 999px; background: #fff; color: #0E2536; font-size: 15px; font-weight: 700; }
.moza-a11y-panel a.moza-a11y-link { display: inline-flex; align-items: center; min-height: 44px; color: #0A655C; font-size: 15px; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.moza-a11y-panel button:focus-visible, .moza-a11y-panel a:focus-visible { outline: 3px solid #0E7D72; outline-offset: 2px; }
@media (max-width: 767px) {
  .moza-a11y-panel { left: 0; right: 0; bottom: 0; width: 100%; max-width: none; max-height: 86vh; border-radius: 20px 20px 0 0; border-width: 2px 0 0; padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px)); }
  html.moza-a11y-open .moza-dock { visibility: hidden; }
}

/* Display size: the page's own content grows; the dock, the panel, its button and the pop-up stay as they are. */
html.moza-a11y-zoom, html.moza-a11y-zoom body { overflow-x: clip; }
html.moza-a11y-zoom body > *:not(.moza-dock):not(.moza-a11y-panel):not(.moza-a11y-fab):not(.moza-pop):not(script):not(style) { zoom: var(--moza-zoom, 1); }

/* What the toolbar's choices do. The panel itself is left out of the colour changes so it stays readable. */
/* On the root element, so fixed parts (dock, panel) keep their place. */
html.moza-a11y-gray { filter: grayscale(1); }
html.moza-a11y-links a:not(.moza-dock a):not(.moza-a11y-fab) { text-decoration: underline !important; text-underline-offset: 3px; outline: 2px dashed currentColor; outline-offset: 2px; }
html.moza-a11y-font body, html.moza-a11y-font body *:not(svg):not(svg *) { font-family: Arial, 'Helvetica Neue', sans-serif !important; letter-spacing: normal !important; }
html.moza-a11y-motion *, html.moza-a11y-motion *::before, html.moza-a11y-motion *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
html.moza-a11y-contrast body .moza-wa-icon { background-color: #000 !important; filter: grayscale(1) brightness(4); }
html.moza-a11y-contrast body, html.moza-a11y-contrast body *:not(svg):not(svg *):not(img):not(video):not(.moza-wa-icon):not(.moza-a11y-panel):not(.moza-a11y-panel *) { background-color: #000 !important; background-image: none !important; color: #fff !important; border-color: #fff !important; box-shadow: none !important; text-shadow: none !important; }
html.moza-a11y-contrast body a:not(.moza-a11y-panel *), html.moza-a11y-contrast body button:not(.moza-a11y-panel *) { color: #FFE600 !important; }
html.moza-a11y-contrast body a:not(.moza-a11y-panel *):not(.moza-dock a), html.moza-a11y-contrast body button:not(.moza-a11y-panel *) { outline: 1px solid #FFE600; }
html.moza-a11y-contrast body input, html.moza-a11y-contrast body select, html.moza-a11y-contrast body textarea { border: 2px solid #fff !important; }
/* Large decorative pictures drawn in pseudo-elements go; small icons on links, buttons and list marks stay, lifted to white so they show on black. */
html.moza-a11y-contrast body *:not(:is(a, button, summary, li, .moza-row, .moza-sp-yes, .moza-sp-yes-night, .moza-sp-dash, .moza-sp-no, .moza-sp-pill, .moza-faq-icon)):not(.moza-a11y-panel *)::before, html.moza-a11y-contrast body *:not(:is(a, button, summary, li, .moza-row, .moza-sp-yes, .moza-sp-yes-night, .moza-sp-dash, .moza-sp-no, .moza-sp-pill, .moza-faq-icon)):not(.moza-a11y-panel *)::after { background-image: none !important; }
html.moza-a11y-contrast body :is(a, button, summary, li, .moza-row, .moza-sp-yes, .moza-sp-yes-night, .moza-sp-dash, .moza-sp-no, .moza-sp-pill, .moza-faq-icon):not(.moza-a11y-panel *)::before, html.moza-a11y-contrast body :is(a, button, summary, li, .moza-row, .moza-sp-yes, .moza-sp-yes-night, .moza-sp-dash, .moza-sp-no, .moza-sp-pill, .moza-faq-icon):not(.moza-a11y-panel *)::after { filter: grayscale(1) brightness(4); }
html.moza-a11y-contrast .moza-logo-img, html.moza-a11y-contrast header img { filter: brightness(0) invert(1); }
html.moza-a11y-contrast [id^="moza-obj-"] { display: none !important; }
html.moza-a11y-contrast .moza-pop-hero, html.moza-a11y-contrast .moza-taste-out { border: 2px solid #fff !important; }
html.moza-a11y-contrast .moza-dock, html.moza-a11y-contrast .moza-dock * { background-color: #000 !important; }
html.moza-a11y-contrast .moza-dock a { outline: 2px solid #FFE600 !important; }

/* ---------- Homepage section objects (decorative images placed by id) ---------- */
[id^="moza-obj-"] { margin: 0; padding: 0; line-height: 0; pointer-events: none; }
[id^="moza-obj-"] img { display: block; width: 100%; height: auto; }
/* Signpost, key ring and door stand right beside their heading row, on its open side, feet on its baseline. */
#moza-obj-signpost, #moza-obj-keyring, #moza-obj-doorajar { position: absolute; inset-inline-start: calc(100% + 28px); bottom: 0; }
#moza-obj-signpost { width: 140px; }
#moza-obj-keyring { width: 160px; }
#moza-obj-doorajar { width: 170px; }
#moza-obj-tangle, #moza-obj-straight { width: 150px; margin-bottom: 4px; }
/* On smaller screens only the pair of roads stays; an object above every heading would read as a template. */
@media (max-width: 1023px) {
  #moza-obj-signpost, #moza-obj-keyring, #moza-obj-doorajar { display: none; }
}
@media (max-width: 767px) {
  #moza-obj-tangle, #moza-obj-straight { width: 110px; }
}
