/* Shared footer: independent of the optional night and Halloween packs. */
.zvcb-footer {
  --footer-bg: #f0f3f7;
  --footer-text: #526174;
  --footer-link: #31577e;
  --footer-line: #d5dde6;
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  padding: 38px 30px 24px;
  border-top: 2px solid #c9b458;
  background: var(--footer-bg);
  color: var(--footer-text);
  font: 400 14px/1.65 Arial, sans-serif;
  text-transform: none;
}
.zvcb-footer-grid,
.zvcb-footer-bottom {
  max-width: 1220px;
  margin: 0 auto;
}
.zvcb-footer-grid {
  display: grid;
  grid-template-columns: 1.25fr 1fr 1fr 1fr;
  gap: 32px;
}
.zvcb-footer h2 {
  margin: 0 0 16px;
  color: var(--footer-link);
  font: 600 17px/1.4 Arial, sans-serif;
  text-transform: none;
}
.zvcb-footer-stack {
  display: flex;
  flex-direction: column;
  gap: 26px;
}
.zvcb-footer-brand p { margin: 0 0 18px; }
.zvcb-footer-badges {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 18px;
}
.zvcb-footer-policies { display: flex; flex-wrap: wrap; align-items: center; gap: 0 8px; }
.zvcb-footer-policies a + a::before { content: "·" / ""; display: inline-block; margin-right: 8px; }
.zvcb-footer-logo {
  display: block;
  width: min(128px, calc((100% - 14px) / 2));
  height: auto;
  margin: 0;
  border-radius: 50%;
}
.zvcb-footer ul { margin: 0; padding: 0; list-style: none; }
.zvcb-footer li { margin: 0; padding: 0; }
.zvcb-footer a {
  color: var(--footer-link);
  font: inherit;
  text-transform: none;
  text-decoration: none;
  text-underline-offset: 4px;
}
.zvcb-footer nav a { display: inline-block; padding: 5px 0; }
.zvcb-footer nav span {
  margin-left: 6px;
  padding: 2px 5px;
  border: 1px solid var(--footer-line);
  border-radius: 4px;
  font-size: 10px;
}
.zvcb-footer a:hover { text-decoration: underline; }
.zvcb-footer a:focus-visible {
  outline: 2px solid #b09a3e;
  outline-offset: 4px;
  border-radius: 2px;
}
.zvcb-footer-bottom {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  grid-template-areas: "copyright enquiry credit";
  align-items: center;
  gap: 10px 24px;
  margin-top: 28px;
  padding-top: 12px;
  border-top: 1px solid var(--footer-line);
  font-size: 12px;
}
.zvcb-footer-bottom .site-copyright { grid-area: copyright; }
.zvcb-footer-bottom .footer-enquiry { grid-area: enquiry; justify-self: center; }
.zvcb-footer-bottom .site-credit { grid-area: credit; justify-self: end; }
.zvcb-footer .site-copyright,
.zvcb-footer .site-credit {
  float: none;
  margin: 0;
  padding: 0;
  font: inherit;
  text-transform: none;
}
html[data-zvc-mode=night] .zvcb-footer {
  --footer-bg: #28323e;
  --footer-text: #d2dbe5;
  --footer-link: #e0eaf4;
  --footer-line: #475564;
}
html[data-zvc-mode=night] .zvcb-footer a,
html[data-zvc-mode=night] .zvcb-footer a:visited {
  color: var(--footer-link);
}
html[data-zvc-mode=night] .zvcb-footer a:hover,
html[data-zvc-mode=night] .zvcb-footer a:focus-visible {
  color: #f0d98b;
}
@media (min-width: 981px) and (max-width: 1560px) {
  .zvcb-footer-bottom .site-credit { padding-right: max(0px, calc(160px - (100vw - 100%) / 2)); }
}
@media (max-width: 980px) {
  .zvcb-footer { padding: 28px 22px 86px; }
  .zvcb-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 20px; }
  .zvcb-footer-brand { grid-column: 1 / -1; }
  .zvcb-footer nav a { padding: 9px 0; }
  .zvcb-footer-bottom { grid-template-columns: 1fr; grid-template-areas: "copyright" "enquiry" "credit"; text-align: center; }
  .zvcb-footer-bottom .site-credit { justify-self: center; }
  .zvcb-footer-bottom a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; }
}
@media (max-width: 760px) {
  .zvcb-footer { padding: 22px 20px 76px; }
  .zvcb-footer-grid { display: block; }
  .zvcb-footer-stack { gap: 0; }
  .zvcb-footer-brand { margin-bottom: 15px; }
  .zvcb-footer-brand h2 { margin-bottom: 8px; font-size: 21px; }
  .zvcb-footer-brand p { margin: 0; line-height: 1.45; }
  .zvcb-footer-badges { gap: 10px; margin: 15px 0 7px; }
  .zvcb-footer-logo { width: 62px; }
  .zvcb-footer-policies { font-size: 13px; }
  .zvcb-footer details { border-top: 1px solid var(--footer-line); }
  .zvcb-footer summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    min-height: 48px;
    padding: 0 4px;
    cursor: pointer;
    list-style: none;
  }
  .zvcb-footer summary::-webkit-details-marker { display: none; }
  .zvcb-footer summary h2 { margin: 0; font-size: 16px; }
  .zvcb-footer summary::after {
    content: "";
    width: 7px;
    height: 7px;
    margin-right: 4px;
    border: solid currentColor;
    border-width: 0 1.5px 1.5px 0;
    transform: rotate(45deg);
  }
  .zvcb-footer details[open] summary::after { transform: rotate(225deg); color: var(--site-gold, #f5bd07); }
  .zvcb-footer summary:focus-visible { outline: 2px solid var(--site-gold, #f5bd07); outline-offset: -2px; }
  .zvcb-footer details ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 15px;
    padding: 4px 12px;
    margin: 0 0 12px;
    border-radius: 8px;
    background: color-mix(in srgb, var(--footer-bg) 82%, #102132);
  }
  .zvcb-footer details li { border-bottom: 1px solid var(--footer-line); }
  .zvcb-footer details li:nth-last-child(-n+2) { border-bottom: 0; }
  .zvcb-footer details a { display: flex; align-items: center; min-height: 44px; box-sizing: border-box; padding: 5px 0; font-size: 13px; line-height: 1.45; }
  .zvcb-footer-bottom { margin-top: 0; padding-top: 16px; row-gap: 5px; }
}
