/* Readium CSS
   WebPubZoom pref

   A submodule managing zoom for user settings in Web Publications
   Part of “User Overrides” class – no flag required.

   Repo: https://github.com/readium/css */

:root:not(:--iOS-patch)[style*="--USER__zoom"] body {
  zoom: var(--USER__zoom) !important;
}

:root:--iOS-patch[style*="--USER__zoom"] body {
  -webkit-text-size-adjust: var(--USER__zoom) !important;
}

@supports selector(figure:has(> img)) {
  :root:--experimental-zoom:not(:--iOS-patch)[style*="--USER__zoom"] figure:has(> img),
  :root:--experimental-zoom:not(:--iOS-patch)[style*="--USER__zoom"] figure:has(> video),
  :root:--experimental-zoom:not(:--iOS-patch)[style*="--USER__zoom"] figure:has(> svg),
  :root:--experimental-zoom:not(:--iOS-patch)[style*="--USER__zoom"] figure:has(> canvas),
  :root:--experimental-zoom:not(:--iOS-patch)[style*="--USER__zoom"] figure:has(> iframe),
  :root:--experimental-zoom:not(:--iOS-patch)[style*="--USER__zoom"] figure:has(> audio),
  :root:--experimental-zoom:not(:--iOS-patch)[style*="--USER__zoom"] div:has(> img:only-child),
  :root:--experimental-zoom:not(:--iOS-patch)[style*="--USER__zoom"] div:has(> video:only-child),
  :root:--experimental-zoom:not(:--iOS-patch)[style*="--USER__zoom"] div:has(> svg:only-child),
  :root:--experimental-zoom:not(:--iOS-patch)[style*="--USER__zoom"] div:has(> canvas:only-child),
  :root:--experimental-zoom:not(:--iOS-patch)[style*="--USER__zoom"] div:has(> iframe:only-child),
  :root:--experimental-zoom:not(:--iOS-patch)[style*="--USER__zoom"] div:has(> audio:only-child),
  :root:--experimental-zoom:not(:--iOS-patch)[style*="--USER__zoom"] table {
    zoom: calc(100% / var(--USER__zoom)) !important;
  }

  :root:--experimental-zoom:not(:--iOS-patch)[style*="--USER__zoom"] figcaption,
  :root:--experimental-zoom:not(:--iOS-patch)[style*="--USER__zoom"] caption,
  :root:--experimental-zoom:not(:--iOS-patch)[style*="--USER__zoom"] td,
  :root:--experimental-zoom:not(:--iOS-patch)[style*="--USER__zoom"] th {
    zoom: var(--USER__zoom) !important;
  }
}

/* We do not have a fallback implementation yet… */