/**
 * Main CSS Stylesheet
 *
 * @package templateSystem
 * @copyright Copyright 2003-2016 Zen Cart Development Team
 * @copyright Portions Copyright 2003 osCommerce
 * @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
 * @version $Id: Author: DrByte  Fri Feb 26 00:03:33 2016 -0500 Modified in v1.5.5 $
 */
/* #region scss_globals */
img:not([alt]) {
  outline: dashed hotpink 10px;
}

.spacer {
  flex-grow: 1;
}
.spacer.h100 {
  height: 100%;
}

.result {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  align-self: stretch;
  color: inherit;
}
.result a {
  text-decoration: underline transparent;
  transition: text-decoration-color 150ms;
}
.result a:hover {
  text-decoration-color: var(--elevation-1-inverse);
}
.result .detailsFlex {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  flex: 1 0 0;
  align-self: stretch;
}
.result .image {
  height: 10.3125rem;
  background: lightgray 50%/cover no-repeat;
  border-radius: 0.2rem;
  border-top-right-radius: 0.5rem;
}
.result .productTitle {
  color: var(--body-text, #462200);
  font-size: 1.75rem;
  font-weight: 600;
  line-height: 1.1;
}
.result .horizontalAlign {
  display: flex;
  flex-flow: row wrap;
  align-items: center;
  gap: 0.5ch;
  margin-bottom: 0.2rem;
}
.result .horizontalAlign .seriesLink {
  color: var(--body-text, #462200);
  font-size: 1rem;
  font-weight: 500;
  line-height: 1;
}
.result .horizontalAlign .circularSeparator {
  display: block;
  width: 0.4ch;
  height: 0.4ch;
  margin-top: 2px;
  background-color: var(--body-text);
  opacity: 0.5;
  border-radius: 100%;
}
.result .horizontalAlign .subtitle {
  color: var(--body-text, #462200);
  font-size: 1rem;
  font-weight: 500;
  line-height: 1;
}
.result .description {
  overflow: hidden;
  text-overflow: ellipsis;
  font-weight: 400;
  max-height: 6rem;
  display: -webkit-box;
  line-clamp: 4;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
}
.result .priceFlex {
  font-size: 1.2rem;
  font-weight: 500;
  color: inherit;
  text-decoration: none;
}
.result .priceFlex .qsicon {
  margin-top: 0.2rem;
  width: 1.5rem;
  height: 1.5rem;
  color: var(--accent-color);
}

.addressCard {
  display: flex;
  flex-flow: row nowrap;
  border-radius: 0.2rem;
  background-color: var(--elevation-1);
  color: var(--elevation-1-inverse);
  border: solid 1px var(--elevation-2);
  overflow: clip;
  min-width: min(100%, 18rem);
}
.addressCard address {
  padding: 0.5rem 1rem;
  font-style: normal;
  font-family: var(--font-brand);
  flex-grow: 1;
}
.addressCard ul.addressButtons {
  display: flex;
  flex-flow: row nowrap;
  align-items: start;
  padding: 0;
}
.addressCard ul.addressButtons li {
  display: block;
  flex-grow: 1;
  padding: 0.4rem;
}
.addressCard ul.addressButtons li a, .addressCard ul.addressButtons li button {
  display: flex;
  flex-flow: column nowrap;
  justify-content: center;
  align-items: center;
  font-weight: 500;
  text-decoration: none;
  font-size: 0;
  padding: 0.1rem;
  border: none;
  transition: color 100ms;
}
.addressCard ul.addressButtons li a svg.qsicon, .addressCard ul.addressButtons li button svg.qsicon {
  width: 1.1rem;
  height: 1.1rem;
}
.addressCard ul.addressButtons li a.edit, .addressCard ul.addressButtons li button.edit {
  color: #0257c4;
  background-color: var(--elevation-1);
}
.addressCard ul.addressButtons li a.delete, .addressCard ul.addressButtons li button.delete {
  color: #950202;
  background-color: var(--elevation-1);
}
.addressCard ul.addressButtons li a:hover, .addressCard ul.addressButtons li button:hover {
  color: var(--elevation-1-inverse);
}

.quickSearchPopupContainer {
  position: absolute;
  top: 110%;
  left: 0;
  right: 0;
  z-index: 98;
  pointer-events: none;
  display: flex;
  align-items: center;
  justify-content: center;
}

.quickSearchPopup {
  pointer-events: auto;
  display: flex;
  align-items: center;
  gap: 0.625rem;
  align-self: stretch;
  text-decoration: none;
  padding: 0.4rem 0.8rem;
  border-radius: 0.5rem;
  max-width: 100%;
  width: fit-content;
  color: var(--elevation-1-inverse);
  background-color: var(--elevation-1);
  background-size: cover !important;
  background-position: center center !important;
  box-shadow: 0 10px 32px 0 hsla(194, 100%, 22%, 0.2);
  border: solid 2px var(--elevation-2);
  transition: box-shadow 150ms, border-color 150ms, background-color 150ms;
}
.quickSearchPopup.active, .quickSearchPopup:hover {
  box-shadow: 0 3px 32px 0 hsla(194, 100%, 22%, 0.5);
  border: solid 2px var(--accent-color);
  background-color: hsl(193, 100%, 94%);
}
.quickSearchPopup .detailsFlex {
  display: flex;
  flex-direction: column;
  flex: 1 0 0;
  padding-right: 2rem;
}
.quickSearchPopup .image {
  height: 5rem;
  background: lightgray 50%/cover no-repeat;
  border-radius: 0.2rem;
  /* https://smoothshadows.com/#djEsMSw1LDAuMDcsMTYyLDMyLDAsI2ZmZmZmZiwjMDAwMDAwLCNmZmZmZmYsMw%3D%3D */
  box-shadow: 0px 1px 6px rgba(var(--image-shadow-rgb, 0, 0, 0), 0.01), 0px 5px 26px rgba(var(--image-shadow-rgb, 0, 0, 0), 0.03), 0px 12px 58px rgba(var(--image-shadow-rgb, 0, 0, 0), 0.04), 0px 20px 104px rgba(var(--image-shadow-rgb, 0, 0, 0), 0.06), 0px 32px 162px rgba(var(--image-shadow-rgb, 0, 0, 0), 0.07);
}
.quickSearchPopup .productName {
  color: inherit;
  font-size: 1.75rem;
  font-weight: 600;
  line-height: 1.1;
}
.quickSearchPopup .subtitle {
  color: inherit;
  font-size: 1rem;
  line-height: 1.1;
}
.quickSearchPopup .priceFlex {
  font-size: 1.2rem;
  font-weight: 500;
  margin-left: auto;
}

.coupon-details {
  display: flex;
  border: solid 1px var(--elevation-15);
  background: var(--elevation-05);
  border-radius: 5px;
  padding: 0.2rem 0.7rem;
  flex-flow: column nowrap;
  align-items: stretch;
}
.coupon-details > label, .coupon-details > legend {
  font-size: 1.1rem;
  font-weight: 600;
}
.coupon-details p {
  font-size: 0.9rem;
}
.coupon-details ul.stats {
  display: flex;
  flex-flow: row wrap;
  justify-content: stretch;
  margin-top: 1rem;
  padding: 0;
  background-color: var(--elevation-2);
  gap: 1px;
  margin-left: -0.7rem;
  margin-right: -0.7rem;
  margin-bottom: -0.2rem;
}
.coupon-details ul.stats li {
  display: flex;
  align-items: center;
  margin-top: 1px;
  background-color: var(--elevation-05);
  flex-flow: column nowrap;
  flex-grow: 1;
  padding: 0.4rem;
  border: none;
}
.coupon-details ul.stats li .key {
  font-size: 0.9rem;
  line-height: 1;
}
.coupon-details ul.stats li .value {
  font-weight: 500;
}

@media (max-width: 31.25rem) {
  .mobileOnlySpacer {
    flex-grow: 1;
  }
}
.buttonsRow.mobileFlex li {
  flex-grow: 1;
}
.buttonsRow.mobileFlex li a.linkButton {
  justify-content: center;
}

.order {
  padding-bottom: 1rem;
  break-inside: avoid-page;
  display: flex;
  flex-flow: row nowrap;
  gap: 0.625rem;
}
.order img {
  height: 8.1rem;
  width: 5.5rem;
}
.order > .group {
  display: flex;
  flex-flow: column nowrap;
}
.order > .group .productLink {
  font-size: 1.5rem;
  line-height: 1.1;
  font-weight: 600;
  color: inherit;
  text-decoration: none;
  max-width: max-content;
}
.order > .group .author {
  font-weight: 600;
}
.order .orderInfos {
  align-self: start;
  display: flex;
  flex-flow: row nowrap;
  padding: 0;
  align-items: center;
  border-radius: 0.435rem;
  font-size: 1rem;
  font-weight: 600;
  color: var(--elevation-05-inverse);
  text-decoration: none;
}
.order .orderInfos li {
  display: block;
}
.order .orderInfos li:not(:last-child) > a, .order .orderInfos li:not(:last-child) > span {
  border-right: solid 1px var(--elevation-2);
}
.order .orderInfos li:first-child :is(a, span) {
  border-top-left-radius: 0.5rem;
  border-bottom-left-radius: 0.5rem;
}
.order .orderInfos li:last-child :is(a, span) {
  border-top-right-radius: 0.5rem;
  border-bottom-right-radius: 0.5rem;
}
.order .orderInfos li > span, .order .orderInfos li > a {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  justify-content: space-between;
  line-height: 1.5;
  color: inherit;
  text-decoration: none;
  background-color: var(--elevation-05);
  transition: background-color 150ms;
  padding: 0.3rem 1rem;
}
.order .orderInfos li > span.disabled, .order .orderInfos li > a.disabled {
  opacity: 0.5;
  cursor: not-allowed;
  user-select: none;
}
.order .orderInfos li > span svg, .order .orderInfos li > a svg {
  width: 1rem;
  height: 1rem;
  margin-bottom: -2px;
}
.order .orderInfos li span {
  cursor: default;
}
.order .orderInfos li a {
  display: flex;
  flex-flow: row nowrap;
  gap: 0.2ch;
}
.order .orderInfos li a:hover {
  background-color: var(--elevation-1);
}
.order .orderInfos li a:focus {
  position: relative;
  z-index: 3;
}

nav.pagination {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  max-width: 100%;
  padding: 0.2rem 0.4rem;
  background-color: var(--elevation-05);
  color: var(--elevation-05-inverse);
  border: solid 1px var(--elevation-2);
  border-radius: 0.5rem;
}
nav.pagination > a:is(.pagination-first,
.pagination-previous,
.pagination-next,
.pagination-last) {
  height: 1.5rem;
  width: 1.5rem;
  flex-shrink: 0;
  color: inherit;
}
nav.pagination > a:is(.pagination-first,
.pagination-previous,
.pagination-next,
.pagination-last).disabled {
  cursor: not-allowed;
  opacity: 0.5;
  pointer-events: none;
}
nav.pagination > a:is(.pagination-first,
.pagination-previous,
.pagination-next,
.pagination-last):not(.disabled):is(nav.pagination > a:is(.pagination-first,
.pagination-previous,
.pagination-next,
.pagination-last):hover, nav.pagination > a:is(.pagination-first,
.pagination-previous,
.pagination-next,
.pagination-last):focus-visible) > svg {
  transform: translateX(var(--hover-dist));
}
nav.pagination > a:is(.pagination-first,
.pagination-previous,
.pagination-next,
.pagination-last) svg {
  transition: transform 150ms;
}
nav.pagination .pagination-first,
nav.pagination .pagination-previous {
  --hover-dist: -0.1rem;
}
nav.pagination .pagination-next,
nav.pagination .pagination-last {
  --hover-dist: 0.1rem;
}
nav.pagination .pagination-previous {
  margin-right: 0.3rem;
}
nav.pagination .pagination-next {
  margin-left: 0.3rem;
}
nav.pagination ul.pagination {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  overflow-x: auto;
  max-width: 100%;
  padding: 0.2rem 0.5rem;
  margin-bottom: -0.2rem;
  margin-top: -0.2rem;
  scrollbar-width: thin;
  scrollbar-color: var(--accent-color) transparent;
  position: relative;
  --shadow-color: rgba(0, 0, 0, 0.4);
  --shadow-size: 5px;
  box-shadow: inset var(--shadow-size) 0 var(--shadow-size) calc(var(--shadow-size) * -1 - 1px) var(--shadow-color), inset calc(-1 * var(--shadow-size)) 0 var(--shadow-size) calc(var(--shadow-size) * -1 - 1px) var(--shadow-color);
  gap: 0.1rem;
}
nav.pagination ul.pagination > li {
  display: block;
  font-size: 1.1rem;
  font-weight: 500;
}
nav.pagination ul.pagination > li.current > span {
  cursor: default;
  background-color: var(--elevation-1-inverse);
  color: var(--elevation-1);
}
nav.pagination ul.pagination > li > a, nav.pagination ul.pagination > li > span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5ch;
  padding: 0.3rem;
  border-radius: 999rem;
  transition: background-color 150ms;
  line-height: 1;
}
nav.pagination ul.pagination > li > a {
  color: inherit;
  text-decoration: none;
}
nav.pagination ul.pagination > li > a:focus-visible, nav.pagination ul.pagination > li > a:hover {
  background-color: rgba(128, 128, 128, 0.2);
}

.downloadButton {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  gap: 0.625rem;
  padding: 0.37rem 1.25rem;
  border-radius: 0.435rem;
  font-size: 1rem;
  font-weight: 600;
  background-color: var(--elevation-1);
  color: var(--elevation-1-inverse);
  text-decoration: none;
  max-width: max-content;
}
.downloadButton.disabled {
  opacity: 0.5;
  cursor: not-allowed;
  user-select: none;
}

.downloadButton svg.qsicon {
  height: 1.25rem;
  width: 1.25rem;
}

.review {
  display: flex;
  flex-flow: column nowrap;
  border-radius: 0.5rem;
  background-color: hsla(0, 0%, 50%, 10%);
  border: solid 1px rgba(128, 128, 128, 0.3);
  padding: 0.7rem 1rem;
  max-width: 30rem;
  text-decoration: none;
  transition: background-color 150ms;
}
.review .reviewAttribution {
  display: flex;
  flex-flow: row wrap;
  align-items: center;
  gap: 0 0.4rem;
}
.review .reviewAttribution .sep {
  content: "";
  display: block;
  width: 0.2em;
  height: 0.2em;
  background-color: currentColor;
  opacity: 0.5;
  border-radius: 100rem;
}
.review .reviewAttribution .reviewAuthor {
  font-size: 1.1rem;
  font-weight: 600;
  margin-bottom: 0.1rem;
}
.review .reviewAttribution .stars {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
}
.review .reviewAttribution .stars svg {
  width: 1rem;
  height: 1rem;
}
.review .reviewAttribution .stars.editable .starLabel svg {
  fill: transparent;
  stroke: currentColor;
  transition: fill 100ms, stroke 100ms;
}
.review .reviewAttribution .stars.editable .starLabel.possible-active svg {
  stroke: rgb(128, 128, 128);
  fill: rgb(128, 128, 128);
}
.review .reviewAttribution .stars.editable .starLabel.is-active svg {
  stroke: currentColor;
  fill: currentColor;
}
.review .reviewAttribution .reviewDate {
  font-family: var(--font-code);
  user-select: all;
}
.review .reviewContent {
  font-size: 1rem;
  white-space: pre-line;
  overflow-y: auto;
}
.review .reviewContent.newtext {
  border-radius: 0.5rem;
  margin-top: 0.5rem;
  resize: vertical;
  background-color: rgba(128, 128, 128, 0.2);
  border-color: rgba(128, 128, 128, 0.3);
  width: 70ch;
}

.watch-button {
  display: inline-flex;
  background: none;
  border: solid 1px rgba(128, 128, 128, 0.3);
  align-items: center;
  gap: 0.3rem;
  padding: 0.4rem 0.5rem;
  flex-flow: row nowrap;
  cursor: pointer;
  background-color: rgba(128, 128, 128, 0.1);
  border-radius: 0.2rem;
  font-weight: 600;
  line-height: 1;
  color: inherit;
  text-decoration: none;
  transition: background-color 150ms;
}
.watch-button.example {
  margin: 0.2rem 0.2rem;
  vertical-align: sub;
  cursor: default;
}
.watch-button .qsicon.envelope {
  height: 1.1rem;
}
.watch-button:is(:hover, :focus) {
  background-color: rgba(128, 128, 128, 0.15);
}

.currency-input {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  border-radius: 6px;
  padding: 0rem 0.5rem;
  border: solid 1px #c1ccdb;
  user-select: none;
  background-color: var(--elevation-03);
  font-family: var(--font-code);
  font-weight: 600;
  line-height: 2;
}
.currency-input.expect-5 {
  width: 10ch;
}
.currency-input input.newtext {
  border: none;
  background: none;
  padding: 0.2rem;
  font-family: inherit;
  user-select: auto;
}
.currency-input input.newtext:focus {
  outline: none;
}
.currency-input:focus-within {
  outline: 1px auto;
}

a.coloredLink {
  color: var(--accent-color);
}
a.coloredLink:visited {
  color: var(--topbanner-success-background);
}

header#helpHeader {
  padding: 1rem 2rem;
  width: 100%;
  border-bottom: var(--brand-color) 2px solid;
  border-top: solid 0.3rem var(--navbar-border-top);
  background: var(--navbar-background);
}

main#helpMain {
  display: block;
  padding: 1.5rem 3rem;
  font-size: 1.1rem;
  line-height: 1.5;
  max-width: 60ch;
}
main#helpMain p {
  margin-bottom: 1rem;
}
main#helpMain code {
  font-weight: 700;
  font-size: 1rem;
}

footer#helpFooter {
  padding: 1rem 2rem;
}
footer#helpFooter a {
  font-size: 1.2rem;
  text-decoration: none;
  font-weight: 700;
  background-color: var(--body-text);
  color: var(--body-bg);
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  max-width: max-content;
  padding: 0.5rem 1rem;
  border-radius: 0.3rem;
  border: none;
}
footer#helpFooter a .qsicon {
  height: 1em;
}

.helpLogoWrapper {
  justify-self: start;
  text-decoration: none;
  display: flex;
  align-items: center;
  width: max-content;
}
.helpLogoWrapper span {
  color: var(--brand-color);
  font-family: var(--font-brand);
  font-size: 2rem;
  transform: translateY(2px);
}
.helpLogoWrapper .logoImg {
  height: 3rem;
  width: unset;
}

.columnsHolder {
  display: flex;
  flex-flow: row nowrap;
  width: 100vw;
  flex-grow: 1;
}
.columnsHolder main.centerColumnWrapper {
  width: 0;
  flex-grow: 1;
  display: flex;
  flex-flow: column nowrap;
}
.columnsHolder aside.layoutColumn {
  padding: 0.5rem 1rem;
}
.columnsHolder aside.layoutColumn:empty {
  display: none;
}

#navSupp {
  width: 100%;
  background: var(--footer-background);
  color: var(--footer-textcolor);
  padding: 1rem 2rem;
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 0.8rem 2rem;
}
#navSupp ul {
  display: contents;
}
#navSupp ul li {
  display: block;
}
#navSupp ul li.legalCopyright {
  flex-grow: 1;
}
@media (max-width: 1200px) {
  #navSupp ul li.legalCopyright {
    flex-grow: 0;
    text-align: center;
  }
}
#navSupp a {
  color: inherit;
}

.linkButton {
  display: flex;
  border: solid 2px;
  align-items: center;
  border-radius: 0.3rem;
  cursor: pointer;
  padding: 0.3rem 0.6rem;
  gap: 0.3rem;
  text-decoration: none;
  width: fit-content;
  background-color: var(--button-bg, #eeeeee);
  border-color: var(--button-accent, #aeaeae);
  color: #000;
  font-weight: 500;
  transition: background-color 150ms;
}
.linkButton svg.qsicon {
  width: 1.6rem;
  height: 1.6rem;
  transition: transform 250ms;
}
.linkButton:is(:hover, :focus, :active) {
  background-color: var(--focuscolor, #e3e3e3);
}
.linkButton:is(:hover, :focus, :active) .qsicon {
  transform: translateX(var(--hoverdist, 0.3rem));
}
.linkButton:focus-visible {
  outline: solid 2px;
  outline-offset: 1px;
}
.linkButton.remove {
  border-radius: 0.5rem;
  background-color: var(--elevation-1);
  border: solid 1px var(--elevation-2);
  color: black;
  padding: 0.4rem;
  --hoverdist: 0;
  transition: color 150ms, background-color 150ms;
}
.linkButton.remove .qsicon.trash {
  width: 1.5rem;
  height: 1.5rem;
}
.linkButton.remove:is(:hover, :focus, :focus-within) {
  color: white;
  background-color: darkred;
}
.linkButton.remove-alt {
  --hoverdist: 0;
  color: white;
  --focuscolor: #7b0000;
  --button-bg: darkred;
  --button-accent: darkred;
}
.linkButton.submit {
  border-radius: 10px;
  justify-content: center;
  text-align: center;
  border-color: rgb(22, 69, 219);
  --focuscolor: rgb(36, 76, 255);
  --button-bg: rgb(0, 60, 255);
  --button-accent: white;
  color: white;
  font-weight: 500;
  font-weight: 700;
}
.linkButton.submit:is(:hover, :focus, :active) {
  background-color: var(--focuscolor);
}
.linkButton.submit .qsicon, .linkButton.next .qsicon {
  transform: translateX(0);
}
.linkButton.submit:not(.nomove):is(:hover, :focus) .qsicon, .linkButton.next:not(.nomove):is(:hover, :focus) .qsicon {
  transform: translateX(-0.2rem) scaleX(0.95);
}
.linkButton.submit:not(.nomove):active .qsicon, .linkButton.next:not(.nomove):active .qsicon {
  transform: translateX(0.1rem) scaleY(0.9);
}
.linkButton.pop .qsicon {
  transform: scale(0.9);
}
.linkButton.pop:is(:hover, :focus) .qsicon {
  transform: scale(1);
}
.linkButton.pop:active .qsicon {
  transform: scale(0.8);
}
.linkButton.back .qsicon {
  transform: translateX(0);
}
.linkButton.back:is(:hover, :focus) .qsicon {
  transform: translateX(0.2rem) scaleX(0.95);
}
.linkButton.back:active .qsicon {
  transform: translateX(-0.2rem) scaleY(0.9);
}
.linkButton.nomove {
  --hoverdist: 0;
}

.newtext, .generic-gv-block input {
  color: inherit;
  font-family: var(--font-ness);
  border-radius: 6px;
  padding: 0.5rem 0.9rem;
  background-color: white;
  border: solid 1px #c1ccdb;
  width: 18rem;
  max-width: 100%;
  appearance: none;
  transition: border-color 150ms;
}
.newtext.wide, .generic-gv-block input.wide {
  width: 37rem;
}
.newtext.autowidth, .generic-gv-block input.autowidth {
  width: auto;
}
.newtext:is(select), .generic-gv-block input:is(select) {
  /* #region really long wrap */
  --select-check-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgc3R5bGU9ImZpbGw6IzAwNTU2ZSI+PHBhdGggZD0iTTE2LjI5MyA5LjI5MyAxMiAxMy41ODYgNy43MDcgOS4yOTNsLTEuNDE0IDEuNDE0TDEyIDE2LjQxNGw1LjcwNy01LjcwN3oiPjwvcGF0aD48L3N2Zz4=");
  /* #endregion really long wrap */
  background-image: var(--select-check-image), linear-gradient(90deg, transparent calc(100% - 2.8rem), var(--elevation-1) calc(100% - 2.8rem));
  cursor: pointer;
  background-repeat: no-repeat;
  background-position: calc(100% - 0.4rem) 50%, 100% 100%;
  background-size: 1.9rem, 100% 100%;
  padding-right: 3.5rem;
}
.newtext:is(select):focus-visible, .generic-gv-block input:is(select):focus-visible {
  outline: 1px solid;
}
.newtext:is(textarea), .generic-gv-block input:is(textarea) {
  width: 100%;
  max-width: 100%;
  min-height: 4.5em;
  border-bottom-right-radius: 0;
}
.newtext:not(:placeholder-shown), .newtext:invalid, .generic-gv-block input:not(:placeholder-shown), .generic-gv-block input:invalid {
  border-color: #eaeaea;
}
.newtext:is(:disabled, :not(select):not(button):read-only), .generic-gv-block input:is(:disabled, :not(select):not(button):read-only) {
  cursor: not-allowed;
  color: color-mix(in srgb, rgb(128, 128, 128) 50%, currentColor 50%);
  opacity: 0.8;
}
.newtext:not(:is(:disabled, :not(select):not(button):read-only)):hover, .generic-gv-block input:not(:is(:disabled, :not(select):not(button):read-only)):hover {
  border: solid 1px #adb7c4;
}

label.fakeBox {
  display: flex;
  align-items: center;
  gap: 0.2rem;
  font-weight: 450;
  user-select: none;
  transition: font-weight 150ms;
}
label.fakeBox .qsicon.checkmark {
  flex-shrink: 0;
  background-color: white;
  display: inline-block;
  border: 1px solid #c7cfe3;
  margin-right: 0.25em;
  text-align: center;
  transition: background-color 150ms, fill 150ms, outline 150ms, border-color 150ms;
  padding: 0;
  border-radius: 0.25em;
  width: 1.5em;
  height: 1.5em;
  fill: transparent;
  cursor: pointer;
}
label.fakeBox:hover svg.qsicon.checkmark {
  border-color: rgb(158, 158, 158);
}
label.fakeBox.round svg.qsicon.checkmark {
  border-radius: 100%;
}

input.fakeBox {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  left: auto;
}
input.fakeBox:enabled + label.fakeBox {
  cursor: pointer;
}
input.fakeBox:checked + label.fakeBox {
  font-weight: 600;
}
input.fakeBox:checked + label.fakeBox svg.qsicon.checkmark {
  background: var(--footer-background);
  border-color: var(--footer-background);
  fill: var(--footer-textcolor);
}
input.fakeBox:is(:focus, :active) + label.fakeBox svg.qsicon.checkmark {
  outline: solid 2px rgb(221, 225, 235);
}

/* #endregion scss_globals */
/* Global layout css */
.topBanner {
  border-radius: 4px;
  width: 100%;
  padding: 1rem 2rem;
  font-size: 1.3rem;
  font-weight: 600;
  background-color: var(--topbanner-notice-background);
  color: var(--topbanner-notice-color);
  display: block;
  /* #region boring banner colors */
  /* #endregion boring banner colors */
}
.topBanner:is(#mainWrapper > .topBanner, .centerColumnWrapper > .topBanner) {
  border-radius: 0;
}
.topBanner.notice {
  background-color: var(--topbanner-notice-background);
  color: var(--topbanner-notice-color);
}
.topBanner.error {
  background-color: var(--topbanner-error-background);
  color: var(--topbanner-error-color);
}
.topBanner.caution {
  background-color: var(--topbanner-caution-background);
  color: var(--topbanner-caution-color);
}
.topBanner.warning {
  background-color: var(--topbanner-warning-background);
  color: var(--topbanner-warning-color);
}
.topBanner.success {
  background-color: var(--topbanner-success-background);
  color: var(--topbanner-success-color);
}
.topBanner .bannerContent a {
  color: inherit;
}
.topBanner .qsicon {
  width: 1.5rem;
  height: 1.5rem;
  display: inline-block;
  margin-right: 1rem;
  vertical-align: sub;
}

#headerWrapper #navMainWrapper {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: 100%;
  width: 100%;
  justify-items: center;
  align-items: center;
  align-content: center;
  justify-content: center;
  padding: 0.4rem 1rem;
  border-top: solid 0.3rem var(--navbar-border-top);
  background: var(--navbar-background);
  height: 4rem;
  position: relative;
}
#headerWrapper #navMainWrapper .logoWrapper {
  justify-self: start;
  text-decoration: none;
  display: flex;
  align-items: center;
  width: max-content;
}
#headerWrapper #navMainWrapper .logoWrapper span {
  color: var(--brand-color);
  font-family: var(--font-brand);
  font-size: 2rem;
  transform: translateY(2px);
}
#headerWrapper #navMainWrapper .logoWrapper .logoImg {
  height: 3rem;
  width: unset;
}
@media (max-width: 31.25rem) {
  #headerWrapper #navMainWrapper .logoWrapper img.logoImg {
    height: 2rem;
    width: unset;
  }
  #headerWrapper #navMainWrapper .logoWrapper span {
    font-weight: 700;
    font-size: 1.1rem;
    transform: translateY(2px);
  }
}
#headerWrapper #navMainWrapper .quick_find_header {
  margin: 0 auto;
  display: flex;
  align-items: stretch;
  width: min(max(10ch, 80%), 30rem);
}
#headerWrapper #navMainWrapper .quick_find_header:focus-within {
  outline: var(--searchbar-textcolor) solid 2px;
  border-radius: 0.4rem;
}
#headerWrapper #navMainWrapper .quick_find_header input[type=search],
#headerWrapper #navMainWrapper .quick_find_header button {
  border: none;
  border-radius: 0.4rem;
  padding: 0.4rem 1rem;
  background-color: var(--searchbar-background);
  color: var(--searchbar-textcolor);
}
#headerWrapper #navMainWrapper .quick_find_header input[type=search] {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  padding-right: 0.3rem;
  width: 100%;
}
#headerWrapper #navMainWrapper .quick_find_header input[type=search]:focus {
  outline: none;
}
#headerWrapper #navMainWrapper .quick_find_header button {
  padding: 0.4rem 0.6rem;
  padding-left: 0.5rem;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  cursor: pointer;
  transition: color 150ms, background-color 150ms;
}
#headerWrapper #navMainWrapper .quick_find_header button:focus, #headerWrapper #navMainWrapper .quick_find_header button:hover {
  background-color: var(--searchbar-textcolor);
  color: var(--searchbar-background);
  outline: none;
}
#headerWrapper #navMainWrapper .quick_find_header button svg {
  width: 1.5rem;
  height: 1.5rem;
}
#headerWrapper #navMainWrapper .navigationLinks {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-self: end;
  grid-column: 3;
  font-size: 1.1rem;
  padding-left: 1rem;
}
#headerWrapper #navMainWrapper .navigationLinks li {
  display: block;
}
#headerWrapper #navMainWrapper .navigationLinks li:not(:last-child) {
  padding-right: 1rem;
}
#headerWrapper #navMainWrapper .navigationLinks li a {
  color: var(--navbar-link-color);
  text-decoration: underline;
}
#headerWrapper #navMainWrapper .navigationLinks li a .qsicon {
  height: 1.8rem;
  fill: currentColor;
}
@media (max-width: 75rem) {
  #headerWrapper #navMainWrapper {
    grid-template-columns: auto 1fr auto;
  }
}
@media (max-width: 50rem) {
  #headerWrapper #navMainWrapper {
    display: flex;
    flex-flow: row wrap;
    justify-content: space-between;
    row-gap: 0.5rem;
    height: unset;
  }
  #headerWrapper #navMainWrapper .logoWrapper {
    order: 1;
  }
  #headerWrapper #navMainWrapper .quick_find_header {
    order: 3;
    width: 100%;
    justify-self: stretch;
  }
  #headerWrapper #navMainWrapper ul.navigationLinks {
    order: 2;
    justify-self: end;
    padding: 0;
  }
  #headerWrapper #navMainWrapper ul.navigationLinks li {
    padding-right: 0.5rem;
  }
}
#headerWrapper #navCatTabsWrapper #navCatTabs {
  background: var(--navbar-background);
  color: var(--navbar-link-color);
  border-top: solid 1px rgba(128, 128, 128, 0.2);
  padding: 0.5rem 1rem;
  padding-top: 0.3rem;
}
#headerWrapper #navCatTabsWrapper #navCatTabs > ul {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  gap: 1.5rem;
  padding: 0;
  line-height: 1.2;
}
#headerWrapper #navCatTabsWrapper #navCatTabs > ul > li:first-child {
  display: block;
}
#headerWrapper #navCatTabsWrapper #navCatTabs > ul a {
  color: inherit;
}
#headerWrapper #navEZPagesTop {
  background: var(--navbar-background);
  color: var(--navbar-link-color);
  padding: 0.5rem 1rem;
}
#headerWrapper #navEZPagesTop a {
  color: inherit;
}

.devbar {
  position: fixed;
  bottom: 0.5rem;
  right: 1rem;
  height: 2rem;
  padding: 0.2rem 1rem;
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  font-family: var(--font-code);
  font-weight: 600;
  background-color: var(--elevation-05);
  border-radius: 0.5rem;
  box-shadow: 0 3px 5px 0 hsla(0, 0%, 0%, 0.5);
}
.devbar a {
  color: var(--elevation-1-inverse);
}

#checkoutOneConfirmationLoading.quailsongLoader {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  align-items: center;
  justify-content: center;
  position: fixed;
  inset: 0;
  color: var(--brand-color);
  background-color: var(--body-bg);
  --interior-padding: 1rem;
  --border-width: 3px;
  padding: calc(2 * (var(--interior-padding) + var(--border-width)));
  --border-gap: 1px;
  box-shadow: inset 0 0 0 var(--interior-padding) var(--navbar-background), inset 0 0 0 calc(var(--interior-padding) + var(--border-width)) var(--navbar-border-top), inset 0 0 0 calc(var(--interior-padding) + var(--border-width) + var(--border-gap)) var(--navbar-background), inset 0 0 0 calc(var(--interior-padding) + 2 * var(--border-width) + var(--border-gap)) var(--navbar-border-top);
}
#checkoutOneConfirmationLoading.quailsongLoader .logo {
  height: 5rem;
  width: 4.2rem;
  object-fit: cover;
  object-position: 15%;
}
#checkoutOneConfirmationLoading.quailsongLoader .logoHolder {
  display: flex;
  align-items: end;
  gap: 1rem;
}
#checkoutOneConfirmationLoading.quailsongLoader .logoText {
  font-family: var(--font-brand);
  font-size: 3rem;
}

.loaderAnimation {
  --loader-color: var(--navbar-border-top);
  --loader-inverse-color: var(--body-bg);
  width: 21rem;
  max-width: 100%;
  height: 1.7rem;
  border: 1px solid var(--loader-color);
  border-radius: 4px;
  --pctnum: 0;
  --pct: calc(var(--pctnum) * 1%);
  --line-width: 1px;
  --loader-line-color: color-mix(in srgb, var(--loader-color), transparent);
  background: linear-gradient(45deg, var(--loader-line-color), var(--loader-line-color) calc(var(--line-width) / 2), transparent var(--line-width), transparent 50%, var(--loader-line-color) 50%, var(--loader-line-color) calc(50% + var(--line-width)), transparent calc(50% + var(--line-width)), transparent), linear-gradient(-45deg, var(--loader-line-color), var(--loader-line-color) calc(var(--line-width) / 2), transparent var(--line-width), transparent 50%, var(--loader-line-color) 50%, var(--loader-line-color) calc(50% + var(--line-width)), transparent calc(50% + var(--line-width)), transparent);
  font-size: 15px;
  background-size: 0.85rem 0.85rem;
  box-sizing: border-box;
  animation: barStripe 0.6s linear infinite;
  position: relative;
  display: inline-flex;
  flex-flow: row nowrap;
  align-items: center;
}
.loaderAnimation::before {
  content: "";
  display: block;
  width: var(--pct);
  height: 100%;
  --loader-line-color: var(--loader-inverse-color);
  background: linear-gradient(45deg, var(--loader-line-color), var(--loader-line-color) calc(var(--line-width) / 2), transparent var(--line-width), transparent 50%, var(--loader-line-color) 50%, var(--loader-line-color) calc(50% + var(--line-width)), transparent calc(50% + var(--line-width)), transparent), linear-gradient(-45deg, var(--loader-line-color), var(--loader-line-color) calc(var(--line-width) / 2), transparent var(--line-width), transparent 50%, var(--loader-line-color) 50%, var(--loader-line-color) calc(50% + var(--line-width)), transparent calc(50% + var(--line-width)), transparent);
  background-size: 0.85rem 0.85rem;
  background-color: var(--loader-color);
  animation: barStripe 0.6s linear infinite;
}
.loaderAnimation .currTime {
  color: var(--loader-color);
  transform: translateX(-50%);
  font-weight: 700;
  background-color: var(--elevation-1);
  padding: 0.2rem 0.1rem;
  display: inline-block;
  font-size: 0.9rem;
  line-height: 1;
  border: solid 1px var(--loader-color);
  position: absolute;
  margin-left: min(max(15%, var(--pct)), 85%);
}

@keyframes barStripe {
  0% {
    background-position: 0.85rem 0;
  }
  100% {
    background-position: 0 0;
  }
}
.loaderHolder {
  display: flex;
  flex-flow: row wrap;
  gap: 0.2rem 0.5rem;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 28rem;
  padding: 0.2rem 1rem;
}
.loaderHolder .startTime, .loaderHolder .endTime {
  font-weight: 700;
}
.loaderHolder .loaderAnimation {
  flex-shrink: 1;
  flex-grow: 1;
  width: 12rem;
  --line-width: 1px;
}
.loaderHolder .loaderAnimation::before {
  background-color: var(--body-bg);
  --loader-inverse-color: var(--loader-color);
  --line-width: 6px;
}

/* #region Global because used in both account_history_info and checkout_success */
.cart:not(svg) {
  padding: 0;
  border: solid 1px var(--elevation-15);
  border-radius: 5px;
  overflow: hidden;
  overflow: clip;
}
.cart:not(svg) > li {
  display: block;
}
.cart:not(svg) > li:not(:first-child), .cart:not(svg) #orderTotalDivs > li:not(:first-child) {
  border-top: solid 1px var(--elevation-05);
}
.cart:not(svg) li.product {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.3rem 1rem;
}
.cart:not(svg) li.product.out-of-stock {
  background-color: #910000;
  color: #fff;
}
.cart:not(svg) li.product.expanded .description {
  align-self: start;
}
.cart:not(svg) li.product.expanded .description .details {
  display: block;
}
.cart:not(svg) li.product.expanded .description .details-small {
  display: none;
}
.cart:not(svg) li.product.expanded .expand .qsicon {
  transform: rotate(90deg);
}
.cart:not(svg) li.product > img {
  border-radius: 3px;
}
.cart:not(svg) li.product .description {
  display: flex;
  flex-flow: column nowrap;
  align-items: start;
  flex-grow: 1;
  line-height: 1.2;
  padding: 0.2rem 0;
  padding-right: 1rem;
}
.cart:not(svg) li.product .description .product-name {
  font-weight: bold;
  color: currentColor;
  text-decoration-color: transparent;
  font-size: 1.05rem;
}
.cart:not(svg) li.product .description .author-name {
  font-style: italic;
  font-size: 0.9rem;
}
.cart:not(svg) li.product .description a:is(:hover, :focus) {
  text-decoration-color: currentColor;
}
.cart:not(svg) li.product .description .details {
  display: none;
  padding: 0;
}
.cart:not(svg) li.product .description .details li {
  list-style-position: inside;
}
.cart:not(svg) li.product .description .details-small {
  display: flex;
  flex-flow: row wrap;
  align-items: stretch;
  padding: 0;
  gap: 0.2rem;
  padding-top: 0.3rem;
}
.cart:not(svg) li.product .description .details-small li {
  display: block;
  border: solid 1px var(--elevation-2);
  background: var(--elevation-1);
  color: var(--elevation-1-inverse);
  border-radius: 1000vw;
  padding: 0.2rem 0.4rem;
  font-size: 0.8rem;
  font-weight: 600;
}
.cart:not(svg) li.product .pricing {
  font-family: var(--font-code);
  display: flex;
  flex-flow: column nowrap;
  align-items: end;
  justify-content: center;
  line-height: 1.1;
}
.cart:not(svg) li.product .pricing .total-for-line {
  font-weight: 600;
}
.cart:not(svg) li.product .pricing .individual-price-and-quantity {
  font-weight: 400;
  opacity: 0.9;
}
.cart:not(svg) li.product .pricing .individual-price-and-quantity input {
  border: solid 1px var(--elevation-15);
  border-radius: 4px;
  text-align: right;
  width: 3ch;
}
.cart:not(svg) li.product .expand {
  appearance: none;
  border: solid 1px var(--elevation-15);
  background-color: var(--elevation-1);
  border-radius: 5px;
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  justify-content: center;
  height: 1.5rem;
  width: 1.5rem;
  padding: 0.1rem;
  color: var(--elevation-1-inverse);
  cursor: pointer;
}
.cart:not(svg) li.product .expand .qsicon {
  transition: transform 150ms;
}
.cart:not(svg) li.product .expand-placeholder {
  width: 1.5rem;
  height: 1.5rem;
}
.cart:not(svg) li.product .delete-group {
  background-color: #700000;
  color: #fff;
  display: flex;
  flex-flow: row nowrap;
  border-radius: 4px;
  padding: 0.2rem 0.3rem;
  gap: 0.3rem;
}
.cart:not(svg) li.product .delete-group .cart-delete {
  width: 1.1rem;
  height: 1.1rem;
  color: inherit;
}

/* #endregion */
/* #region Global because used in account_history_info, checkout_success, and possibly my_library (?) */
.downloadsGrid {
  display: flex;
  flex-flow: row wrap;
  gap: 1rem;
}
.downloadsGrid .owned-book {
  display: flex;
  flex-flow: row nowrap;
  flex-grow: 1;
  background: var(--product-background, var(--elevation-1));
  color: var(--product-text-color, var(--elevation-1-inverse));
  border: solid 1px var(--elevation-2);
  padding: 0.7rem;
  border-radius: 3px;
}
.downloadsGrid .owned-book > img {
  height: 120px;
  border-radius: 3px;
  /* https://smoothshadows.com/#djEsMSwzLDAuMjUsMjAsNSwwLCNmZmZmZmYsIzAwMDAwMCwjZmZmZmZmLDI%3D */
  box-shadow: 0px 1px 2px rgba(var(--image-shadow-rgb), 0.01), 0px 2px 9px rgba(var(--image-shadow-rgb), 0.08), 0px 5px 20px rgba(var(--image-shadow-rgb), 0.1);
}
.downloadsGrid .details-grid {
  display: flex;
  flex-flow: column nowrap;
  align-items: start;
  padding: 0.4rem 0.8rem;
}
.downloadsGrid .product-identifiers {
  display: flex;
  flex-flow: column nowrap;
  align-items: start;
}
.downloadsGrid .product-identifiers a {
  color: inherit;
  text-decoration: none;
}
.downloadsGrid .product-identifiers a:hover {
  text-decoration: underline;
}
.downloadsGrid .product-identifiers .productName {
  font-size: 1.2rem;
  line-height: 1;
}
.downloadsGrid .product-identifiers .authorName {
  font-size: 0.9rem;
  font-style: italic;
}
.downloadsGrid .download-information {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.9rem;
}
.downloadsGrid .download-information > div {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  gap: 0;
}
.downloadsGrid .download-information > div.max-download-count .downloads-left {
  margin-right: -0.1ch;
}
.downloadsGrid .download-information > div.expired {
  color: #600d00;
  background-color: #ffb5b5;
  border-radius: 3px;
  padding-left: 0.3ch;
  padding-right: 1ch;
  letter-spacing: unset !important;
  font-weight: 700;
  border: solid 1px #ff7676;
}
.downloadsGrid .download-information > div > .qsicon {
  width: 0.9rem;
  height: 0.9rem;
  margin-right: 0.5ch;
}
.downloadsGrid .download-button {
  display: flex;
  flex-flow: row nowrap;
  gap: 0.2rem;
  color: inherit;
  text-decoration: none;
  background-color: rgba(128, 128, 128, 0.2);
  border: solid 1px rgba(128, 128, 128, 0.2);
  padding: 0.3rem 0.7rem;
  border-radius: 1px;
  align-items: center;
  padding-left: 0.4rem;
  padding-top: 0.2rem;
  line-height: 1;
  transition: background-color 150ms;
}
.downloadsGrid .download-button .qsicon {
  height: 1rem;
  width: 1rem;
}
.downloadsGrid .download-button:is(:hover, :focus) {
  background-color: rgba(128, 128, 128, 0.3);
}
.downloadsGrid .download-button.disabled {
  background-color: rgba(200, 50, 50, 0.2);
  border-color: rgba(200, 50, 50, 0.3);
}
.downloadsGrid .download-button.disabled:is(:hover, :focus) {
  background-color: rgba(200, 50, 50, 0.3);
}
.downloadsGrid .max-download-count {
  letter-spacing: -0.1ch;
}

/* #endregion */
/* #region includes/languages/english/html_includes/define_main_page.php */
.component.IndexHeroContainer {
  padding-top: 0.25rem;
}
.component.IndexHeroContainer #heroSwiper {
  display: flex;
}
.component.IndexHeroContainer #heroSwiper:not(:defined) {
  overflow-x: scroll;
  justify-content: center;
}
.component.IndexHeroContainer #heroSwiper:not(:defined) swiper-slide {
  width: fit-content;
  opacity: 1;
}
.component.IndexHeroContainer #heroSwiper:not(:defined) swiper-slide .productDescription {
  max-height: 7rem;
}
.component.IndexHeroContainer #heroSwiper:not(:defined) swiper-slide:not(:first-child) {
  display: none;
}
.component.IndexHeroContainer #heroSwiper::part(button-next), .component.IndexHeroContainer #heroSwiper::part(button-prev) {
  width: 2.5rem;
  height: 2.5rem;
  bottom: 0.5rem;
  top: unset;
  box-sizing: border-box;
  padding: 0.5rem 0;
  border-radius: 0.1rem;
  background-color: var(--elevation-1);
  color: var(--elevation-1-inverse);
}
.component.IndexHeroContainer #heroSwiper::part(button-next) {
  right: 0.5rem;
  left: unset;
}
.component.IndexHeroContainer #heroSwiper::part(button-prev) {
  right: 3.5rem;
  left: unset;
}
.component.IndexHeroContainer #heroSwiper::part(container)[style="cursor: grab;"] a {
  cursor: inherit;
}
.component.IndexHeroContainer swiper-slide {
  align-self: stretch;
  height: auto;
  display: flex;
  flex-flow: row nowrap;
  align-items: stretch;
  justify-content: stretch;
  flex-shrink: 0;
  width: min(100% - 12px, 80rem);
  transition: opacity 150ms, scale 250ms;
  opacity: 0.5;
  scale: 0.95;
}
.component.IndexHeroContainer swiper-slide:hover {
  opacity: 1;
}
.component.IndexHeroContainer swiper-slide:is(.swiper-slide-active, :focus-within) {
  opacity: 1;
  scale: 1;
}
.component.IndexHeroContainer .indexHero {
  background: var(--product-background, var(--elevation-1));
  color: var(--product-text-color, var(--elevation-1-inverse));
  font-family: var(--product-font, var(--font-ui));
  background-size: cover;
  background-position: center center;
  border: solid 1px var(--elevation-2);
  display: flex;
  align-items: center;
  flex-direction: row;
  width: min(100%, 80rem);
  padding: 2rem 6rem 2rem 4rem;
  gap: 2rem;
  border-radius: 1rem;
}
.component.IndexHeroContainer .indexHero .flexGroup {
  flex-grow: 1;
  max-width: 90ch;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.component.IndexHeroContainer .indexHero .flexGroup .productName {
  font: inherit;
  text-decoration: none;
  font-weight: 700;
  font-size: 2.5rem;
  line-height: 1.1;
  color: inherit;
}
.component.IndexHeroContainer .indexHero .flexGroup .horizontalAlign {
  display: flex;
  flex-flow: row wrap;
  align-items: center;
  gap: 0.5ch;
}
.component.IndexHeroContainer .indexHero .flexGroup .horizontalAlign .seriesLink {
  color: inherit;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1;
}
.component.IndexHeroContainer .indexHero .flexGroup .horizontalAlign .circularSeparator {
  display: block;
  width: 0.4ch;
  height: 0.4ch;
  margin-top: 2px;
  background-color: var(--product-text-color, var(--body-text));
  opacity: 0.5;
  border-radius: 100%;
}
.component.IndexHeroContainer .indexHero .flexGroup .horizontalAlign .subtitle {
  color: inherit;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1;
}
.component.IndexHeroContainer .indexHero .flexGroup .productDescription {
  font-size: 1rem;
  padding-top: 0.5em;
  flex-shrink: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.2;
}
.component.IndexHeroContainer .indexHero .flexGroup .productDescription p:not(:last-child) {
  margin-bottom: 0.5em;
}
.component.IndexHeroContainer .indexHero .flexGroup .horizontalAlign.bottom {
  padding-top: 0.7rem;
}
.component.IndexHeroContainer .indexHero .flexGroup .linkButton.detailsLink {
  --button-bg: hsla(0, 0%, 50%, 10%);
  --focuscolor: hsla(0, 0%, 50%, 30%);
  --hoverdist: -0.2rem;
  color: var(--product-text-color, var(--body-text));
  border: solid 1px hsla(0, 0%, 50%, 30%);
  transition: background-color 150ms, border-color 150ms;
}
.component.IndexHeroContainer .indexHero .flexGroup .linkButton.detailsLink:focus {
  border-color: var(--product-text-color, var(--body-text));
}
.component.IndexHeroContainer .indexHero .flexGroup .linkButton.detailsLink.readLink {
  --hoverdist: 0;
}
.component.IndexHeroContainer .indexHero .productImageHolder {
  flex-shrink: 0;
  height: 20rem;
  display: flex;
  flex-direction: column;
}
.component.IndexHeroContainer .indexHero .productImageHolder > a {
  display: contents;
}
.component.IndexHeroContainer .indexHero .productImageHolder .productImage {
  border-radius: 4px;
  /* https://smoothshadows.com/#djEsMSw1LDAuMDcsMTYyLDMyLDAsI2ZmZmZmZiwjMDAwMDAwLCNmZmZmZmYsMw%3D%3D */
  box-shadow: 0px 1px 6px rgba(var(--image-shadow-rgb, 0, 0, 0), 0.01), 0px 5px 26px rgba(var(--image-shadow-rgb, 0, 0, 0), 0.03), 0px 12px 58px rgba(var(--image-shadow-rgb, 0, 0, 0), 0.04), 0px 20px 104px rgba(var(--image-shadow-rgb, 0, 0, 0), 0.06), 0px 32px 162px rgba(var(--image-shadow-rgb, 0, 0, 0), 0.07);
  height: 100%;
}
@media (max-width: 62.5rem) {
  .component.IndexHeroContainer .indexHero {
    padding: 2rem 3rem 2rem 2rem;
  }
  .component.IndexHeroContainer .indexHero .productImageHolder {
    height: 10rem;
    margin-block: auto;
  }
  .component.IndexHeroContainer .indexHero .productImageHolder .productImage {
    border-radius: 4px;
  }
  .component.IndexHeroContainer .indexHero .flexGroup .productName {
    font-size: 2rem;
  }
}

@media (max-width: 650px) {
  #heroSwiper::part(button-next), #heroSwiper::part(button-prev) {
    display: none;
  }
  .component.IndexHeroContainer .indexHero {
    min-height: unset;
    height: unset;
    justify-content: end;
    padding: 1rem;
    flex-flow: column nowrap;
    gap: 1rem;
    align-items: center;
  }
  .component.IndexHeroContainer .indexHero .flexGroup {
    height: unset;
    min-height: unset;
    max-width: unset;
    flex-grow: 0;
  }
  .component.IndexHeroContainer .indexHero .flexGroup .productName {
    font-size: 1.3rem;
  }
  .component.IndexHeroContainer .indexHero .flexGroup .productDescription {
    font-size: 0.95rem;
  }
  .component.IndexHeroContainer .indexHero .flexGroup .linkButton.detailsLink {
    font-size: 0.95rem;
  }
  @supports (color: color-mix(in srgb, currentColor, transparent)) {
    .component.IndexHeroContainer .indexHero .flexGroup .linkButton.detailsLink {
      border-color: color-mix(in srgb, currentColor 30%, transparent);
    }
  }
  .component.IndexHeroContainer .indexHero .flexGroup .linkButton.detailsLink .qsicon {
    width: 1.3rem;
    height: 1.3rem;
  }
  .component.IndexHeroContainer .indexHero .spacer.minGone {
    display: none;
  }
  .component.IndexHeroContainer .indexHero .productImageHolder {
    height: 4rem;
    flex-grow: 1;
    margin-block: auto;
    max-height: 40%;
  }
  .component.IndexHeroContainer .indexHero .productImageHolder .productImage {
    margin: 0;
    height: 100%;
    width: unset;
  }
}
.component.BookRow {
  padding: 1rem 0;
}
.component.BookRow:is(:hover, :focus-within) h3 .swiper-navbutton {
  opacity: 1;
}
.component.BookRow h3 {
  padding: 0.2rem 0;
  margin: 0 1.5rem;
  margin-top: 0;
  margin-bottom: 0.5rem;
  border-bottom: solid 1px var(--elevation-2);
  font-size: 1.5rem;
  line-height: 1.2;
  display: flex;
  align-items: end;
  flex-flow: row wrap;
  gap: 0.2rem;
}
.component.BookRow h3 .groupButtons {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  gap: 0.2rem;
}
.component.BookRow h3 .swiper-navbutton {
  opacity: 0;
  transition: opacity 150ms;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  padding: 0.6rem 0;
  border: none;
  border-radius: 0.1rem;
  background-color: var(--elevation-05);
  color: var(--elevation-05-inverse);
}
.component.BookRow h3 .swiper-navbutton:hover {
  background-color: var(--elevation-1);
}
.component.BookRow h3 .swiper-navbutton svg {
  height: 1rem;
}
@media (max-width: 500px) {
  .component.BookRow h3 .swiper-navbutton {
    opacity: 1;
  }
}
.component.BookRow .booksSwiper {
  width: 100%;
  user-select: none;
}
.component.BookRow .booksSwiper:not(:defined), .component.BookRow .booksSwiper.editorPreview {
  padding-left: 24px;
  display: flex;
  overflow-x: scroll;
}
.component.BookRow .booksSwiper:not(:defined) swiper-slide, .component.BookRow .booksSwiper.editorPreview swiper-slide {
  flex-shrink: 0;
  margin-right: 24px;
}
.component.BookRow .booksSwiper swiper-slide {
  height: 15rem;
  width: fit-content !important;
}
.component.BookRow .booksSwiper swiper-slide a {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  height: 15rem;
  width: fit-content;
}
.component.BookRow .booksSwiper swiper-slide a img {
  height: 15rem;
  border-radius: 0.1rem;
  border-top-right-radius: 0.2rem;
  transition: transform 150ms, filter 150ms;
}
.component.BookRow .booksSwiper swiper-slide a:not(.categorySwiperItem):hover img:first-of-type {
  filter: brightness(0.5) saturate(0.5);
}
.component.BookRow .booksSwiper swiper-slide a.series {
  display: grid;
  border-radius: 0.2rem;
  border-top-right-radius: 0.5rem;
  overflow: clip;
  align-items: stretch;
  width: 10rem;
  grid-template: auto/auto;
}
.component.BookRow .booksSwiper swiper-slide a.series.c4 img:nth-child(2) {
  transform: translate(-1rem, -1.5rem) scale(var(--scale));
  z-index: 5;
}
.component.BookRow .booksSwiper swiper-slide a.series.c4 img:nth-child(3) {
  transform: translate(-0.8rem, -1rem) scale(var(--scale));
  z-index: 4;
  filter: brightness(0.9);
}
.component.BookRow .booksSwiper swiper-slide a.series.c4 img:nth-child(4) {
  transform: translate(-0.4rem, -0.5rem) scale(var(--scale));
  z-index: 3;
  filter: brightness(0.8);
}
.component.BookRow .booksSwiper swiper-slide a.series.c4 img:nth-child(5) {
  transform: scale(var(--scale));
  z-index: 2;
  filter: brightness(0.7);
}
.component.BookRow .booksSwiper swiper-slide a.series.c3 img:nth-child(2) {
  transform: translate(-1rem, -1.5rem) scale(var(--scale));
  z-index: 5;
}
.component.BookRow .booksSwiper swiper-slide a.series.c3 img:nth-child(3) {
  transform: translate(-0.5rem, -0.75rem) scale(var(--scale));
  z-index: 4;
  filter: brightness(0.8);
}
.component.BookRow .booksSwiper swiper-slide a.series.c3 img:nth-child(4) {
  transform: scale(var(--scale));
  z-index: 3;
  filter: brightness(0.6);
}
.component.BookRow .booksSwiper swiper-slide a.series.c2 img:nth-child(2) {
  transform: translate(-1rem, -1.5rem) scale(var(--scale));
  z-index: 5;
}
.component.BookRow .booksSwiper swiper-slide a.series.c2 img:nth-child(3) {
  transform: scale(var(--scale));
  z-index: 3;
  filter: brightness(0.6);
}
.component.BookRow .booksSwiper swiper-slide a.series img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  --scale: 0.9;
  border-radius: 0.2rem;
  border-top-right-radius: 0.5rem;
  transform-origin: bottom right;
  grid-area: 1/1;
}

#all-genres swiper-slide {
  height: auto;
}
#all-genres swiper-slide a {
  display: flex;
  flex-flow: column nowrap;
  align-items: center;
  width: 100%;
  height: auto;
  text-decoration: none;
  color: inherit;
  gap: 0.75rem;
  background-color: var(--elevation-03);
  border: solid 1px var(--elevation-2);
  border-radius: 0.5rem;
  padding: 0.5rem 1rem;
}
#all-genres swiper-slide a .category-books {
  display: flex;
  flex-flow: row;
  gap: 0.5rem;
  border-radius: 0.2rem 0.5rem 0.2rem 0.2rem;
  overflow: auto;
  align-items: stretch;
  height: 6rem;
  max-height: 15rem;
  flex-grow: 1;
}
#all-genres swiper-slide a .category-books img {
  height: 100%;
  --scale: 0.9;
  border-radius: 0.2rem;
  transform-origin: right bottom 0px;
  transform: none;
}
#all-genres swiper-slide a .categoryName {
  font-size: 1.2rem;
  font-weight: 600;
}

#featuredCategories swiper-slide {
  height: auto;
  max-width: calc(100% - 48px);
}
@media (max-width: 400px) {
  #featuredCategories swiper-slide {
    width: calc(100% - 48px);
  }
}
#featuredCategories swiper-slide a.categorySwiperItem {
  flex-flow: row wrap;
  align-items: center;
  height: auto;
  text-decoration: none;
  color: inherit;
  gap: 0.75rem;
  background-color: var(--elevation-1);
  border: solid 1px var(--elevation-2);
  border-radius: 0.5rem;
  padding: 0.5rem 1rem;
  --hover-effect: 1.5;
}
#featuredCategories swiper-slide a.categorySwiperItem:hover .category-books {
  --hover-effect: 1;
}
@media (max-width: 400px) {
  #featuredCategories swiper-slide a.categorySwiperItem {
    width: 100%;
    flex-flow: column nowrap;
  }
  #featuredCategories swiper-slide a.categorySwiperItem div.category-books {
    width: 6em;
  }
}
#featuredCategories swiper-slide a.categorySwiperItem .category-image {
  height: 5rem;
}
#featuredCategories swiper-slide a.categorySwiperItem .category-books {
  display: grid;
  border-radius: 0.2rem;
  border-top-right-radius: 0.5rem;
  align-items: stretch;
  width: 3em;
  grid-template: auto/auto;
}
#featuredCategories swiper-slide a.categorySwiperItem .category-books.c3 img:nth-child(1) {
  transform: translate(calc(-0.25rem * var(--hover-effect)), calc(-0.375rem * var(--hover-effect))) scale(var(--scale));
  z-index: 5;
}
#featuredCategories swiper-slide a.categorySwiperItem .category-books.c3 img:nth-child(2) {
  transform: scale(var(--scale));
  z-index: 4;
  filter: brightness(0.8);
}
#featuredCategories swiper-slide a.categorySwiperItem .category-books.c3 img:nth-child(3) {
  transform: translate(calc(0.25rem * var(--hover-effect)), calc(0.375rem * var(--hover-effect))) scale(var(--scale));
  z-index: 3;
  filter: brightness(0.6);
}
#featuredCategories swiper-slide a.categorySwiperItem .category-books.c2 img:nth-child(1) {
  transform: translate(calc(-0.25rem * var(--hover-effect)), calc(-0.375rem * var(--hover-effect))) scale(var(--scale));
  z-index: 5;
}
#featuredCategories swiper-slide a.categorySwiperItem .category-books.c2 img:nth-child(2) {
  transform: translate(calc(0.25rem * var(--hover-effect)), calc(0.375rem * var(--hover-effect))) scale(var(--scale));
  z-index: 3;
  filter: brightness(0.6);
}
#featuredCategories swiper-slide a.categorySwiperItem .category-books img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  --scale: 0.9;
  border-radius: 0.2rem;
  border-top-right-radius: 0.5rem;
  transform-origin: center;
  grid-area: 1/1;
  transition: transform 150ms;
}
#featuredCategories swiper-slide a.categorySwiperItem .valign {
  display: flex;
  flex-flow: column nowrap;
  align-items: start;
  justify-content: center;
}
#featuredCategories swiper-slide a.categorySwiperItem .valign .categoryName {
  font-size: 1.2rem;
  font-weight: 600;
}

#indexDefault .noscriptBanner {
  padding: 0.3rem 1rem;
  font-size: 1.1rem;
  background-color: var(--topbanner-warning-background);
  color: var(--topbanner-caution-color);
  text-align: center;
  margin-bottom: 0;
}
#indexDefault #indexDefaultMainContent:not(:empty) {
  padding: 2rem;
  font-size: 1.1rem;
}

/* #endregion includes/languages/english/html_includes/define_main_page.php */
/* #region tpl_shopping_cart_default.php */
#shoppingCartDefault {
  padding: 2rem 4rem;
}
#shoppingCartDefault, #shoppingCartDefault #shoppingCartForm {
  display: flex;
  flex-flow: column nowrap;
  flex-grow: 1;
}
#shoppingCartDefault #shoppingCartForm {
  gap: 1rem;
}
#shoppingCartDefault #cartDefaultHeading {
  margin-bottom: 1rem;
}
#shoppingCartDefault hr {
  border-color: var(--elevation-03);
}
#shoppingCartDefault .topBanner {
  border-radius: 4px;
  font-size: 1rem;
  font-weight: inherit;
  padding: 0.3rem 1rem;
  max-width: 90ch;
}
#shoppingCartDefault .topBanner svg {
  width: 2rem;
  height: 3rem;
  float: left;
  margin-block: 0.5rem;
}
#shoppingCartDefault .topBanner .alertBlack {
  display: block;
  margin-left: 3rem;
  font-weight: 600;
}
#shoppingCartDefault #cartInstructionsDisplay {
  padding: 1rem 0;
}
#shoppingCartDefault .out-of-stock-error {
  display: flex;
  max-width: max-content;
  margin-bottom: 1rem;
  padding: 0.5rem 1rem;
  gap: 0.7rem;
  border-radius: 1rem;
  align-items: center;
  background-color: #830000;
  color: #fff;
  font-weight: 500;
  font-family: var(--font-ui);
  font-size: 1.1rem;
}
#shoppingCartDefault .out-of-stock-error .error.qsicon {
  height: 1.8rem;
}
#shoppingCartDefault #checkoutOneShoppingCart {
  flex-grow: 0;
}
#shoppingCartDefault #cartSubTotal {
  font-size: 1.1rem;
  font-family: var(--font-ui);
}
#shoppingCartDefault #cartSubTotal div {
  display: inline;
}
#shoppingCartDefault #cartSubTotal code {
  display: inline;
  font-family: inherit;
}
#shoppingCartDefault.has-items .buttonsRow .linkButton.back {
  --button-bg: #000;
  --button-accent: #fff;
  border-color: #222;
  --focuscolor: #111;
  color: #fff;
}

@media (max-width: 50rem) {
  #shoppingCartDefault {
    padding: 2rem 1rem;
  }
}
/* #endregion tpl_shopping_cart_default.php */
/* #region tpl_login_guest.php */
.loginLayout {
  display: flex;
  flex-flow: column nowrap;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  gap: 0.8rem;
}
.loginLayout #loginForm, .loginLayout > form {
  display: contents;
}
.loginLayout .form-halign {
  align-items: center;
  justify-content: center;
  gap: 0.8rem 2rem;
}
.loginLayout #opc-pwf {
  display: block;
  border-radius: 5px;
  text-decoration: none;
  font-weight: 600;
  color: rgb(0, 68, 214);
}
.loginLayout .loginSeparator {
  width: 20rem;
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  gap: 1rem;
  padding: 1rem 0;
  font-style: italic;
}
.loginLayout .loginSeparator > hr {
  flex-grow: 1;
  color: rgba(139, 139, 139, 0.5);
}
.loginLayout .linkButton.login {
  width: 18rem;
  max-width: 100%;
  border-radius: 10px;
  padding: 0.5rem 1rem;
  justify-content: center;
  text-align: center;
  border-color: var(--button-bg);
  --button-bg: rgb(0, 60, 255);
  --button-accent: white;
  --hoverdist: 0.3rem;
  color: white;
  font-weight: 500;
}
.loginLayout .linkButton.login.submit {
  font-weight: 700;
  --focuscolor: rgb(36, 76, 255);
}
.loginLayout .linkButton.login.guestCheckout {
  --button-bg: white;
  --button-accent: rgb(161, 91, 0);
  --focuscolor: rgb(255, 246, 234);
  color: rgb(161, 91, 0);
  border-color: var(--button-accent);
}
.loginLayout .linkButton.login.signUp {
  --button-bg: white;
  --button-accent: rgb(0, 75, 161);
  --focuscolor: rgb(232, 243, 255);
  color: rgb(0, 75, 161);
  border-color: var(--button-accent);
}

/* #endregion tpl_login_guest.php */
/* #region tpl_create_account_default.php */
#createAcctDefault .topBanner {
  border-radius: 1rem;
  margin-bottom: 0.5rem;
  --topbanner-error-background: rgb(255, 234, 234);
  --topbanner-error-color: rgb(128, 0, 0);
}
#createAcctDefault .form-halign {
  justify-content: center;
  padding: 1rem 0;
  max-width: 37rem;
}

.hiddenField {
  display: none;
}

div.twoPanelLayout {
  display: flex;
  flex-flow: row nowrap;
  align-items: stretch;
  gap: 0;
  padding: 0;
}
div.twoPanelLayout .formArea {
  flex-basis: 50%;
  padding: 1rem 2rem;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  /* https://smoothshadows.com/#djEsMSw1LDAuMSw0LDQsMCwjMDMwNzEyLCNmM2Y0ZjYsI2ZmZmZmZiwy */
  box-shadow: 0px 0px 0px rgba(3, 7, 18, 0.02), 0px 1px 1px rgba(3, 7, 18, 0.04), 0px 1px 1px rgba(3, 7, 18, 0.06), 0px 3px 3px rgba(3, 7, 18, 0.08), 0px 4px 4px rgba(3, 7, 18, 0.1);
}
div.twoPanelLayout .formArea > form,
div.twoPanelLayout .formArea .wrap {
  display: flex;
  flex-flow: column nowrap;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  width: 100%;
}
div.twoPanelLayout .formArea .linkButton.wide {
  justify-content: center;
}
div.twoPanelLayout .formArea .flexContainer {
  display: flex;
  width: 100%;
  gap: 1.5rem;
  flex-flow: row wrap;
  align-items: stretch;
  justify-content: center;
}
div.twoPanelLayout .formArea .group {
  max-width: 18rem;
  flex-grow: 1;
  display: flex;
  flex-flow: column nowrap;
  align-items: stretch;
}
div.twoPanelLayout .formArea .group label {
  padding-top: 0.5rem;
  font-size: 1.1rem;
  font-weight: 500;
}
div.twoPanelLayout .formArea .newsletterGroup {
  padding: 1rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 1.1rem;
}
div.twoPanelLayout .formArea .newsletterGroup input {
  width: 1.1rem;
  height: 1.1rem;
  cursor: pointer;
}
div.twoPanelLayout .formArea .buttonsRow {
  padding-top: 2rem;
  justify-content: center;
  gap: 2rem;
}
div.twoPanelLayout .formArea .buttonsRow .linkButton {
  border-radius: 10px;
  padding: 0.5rem 1rem;
  line-height: 1;
  width: fit-content;
  font-size: 1.1rem;
  font-weight: 500;
}
div.twoPanelLayout .imgArea {
  position: relative;
  flex-grow: 1;
  z-index: 1;
  overflow: hidden;
}
div.twoPanelLayout .imgArea img.full {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
div.twoPanelLayout .imgArea .attribution {
  font-style: italic;
  position: absolute;
  bottom: 0.5rem;
  right: 1rem;
  color: black;
  font-size: 0.9rem;
  background-color: #f7f5f6;
  padding: 0.2rem 0.8rem;
  border-radius: 4px;
  width: max-content;
}
div.twoPanelLayout .imgArea .attribution a {
  color: rgb(0, 60, 255);
}
@media (max-width: 40rem) {
  div.twoPanelLayout div.formArea {
    width: 100%;
  }
  div.twoPanelLayout div.imgArea {
    display: none;
  }
}

/* #endregion tpl_create_account_default.php */
/* #region time_out_default */
#timeoutBody #timeoutDefaultHeading {
  text-align: center;
}
#timeoutBody #timeoutDefaultContent {
  text-align: center;
}
#timeoutBody #timeoutDefaultContent p {
  max-width: 30rem;
  text-wrap-style: balance;
}

/* #endregion */
/* #region tpl_modules_opc_shopping_cart.php */
#checkoutoneBody hr {
  border-color: var(--elevation-03);
}
#checkoutoneBody #checkoutPayment {
  padding: 2rem clamp(0.2rem, -4.3125rem + 10vw, 4rem);
}
#checkoutoneBody #checkoutPayment #checkoutOneHeading {
  position: relative;
  z-index: 5;
  margin-bottom: 1rem;
}
#checkoutoneBody #checkoutPayment > .topBanner {
  border-radius: 1rem;
  margin-bottom: 1rem;
}
#checkoutoneBody #checkoutPayment form#checkout_payment {
  display: flex;
  flex-flow: row wrap;
  align-items: start;
  justify-content: space-between;
}
#checkoutoneBody #checkoutPayment form#checkout_payment #checkoutOneLeft, #checkoutoneBody #checkoutPayment form#checkout_payment #checkoutOneRight {
  display: flex;
  flex-flow: column nowrap;
  align-items: start;
}
#checkoutoneBody #checkoutPayment form#checkout_payment .customer-info-grid {
  display: grid;
  grid-template-columns: auto auto;
  grid-template-rows: auto auto;
}
#checkoutoneBody #checkoutPayment form#checkout_payment .customer-info-grid #checkoutOneShippingFlag {
  padding-top: 0;
  padding-bottom: 0;
  grid-area: 2/1;
}
#checkoutoneBody #checkoutPayment form#checkout_payment .checkout-block {
  background-color: var(--body-bg);
  padding: 1rem;
  max-width: min(50ch, 97vw);
}
#checkoutoneBody #checkoutPayment form#checkout_payment .checkout-block > legend {
  font-size: 1.1rem;
  font-weight: 600;
  line-height: 1;
  margin-bottom: 0.5rem;
}
#checkoutoneBody #checkoutPayment form#checkout_payment .checkout-block > p:last-of-type {
  margin-bottom: 0.5rem;
}
#checkoutoneBody #checkoutPayment form#checkout_payment .checkout-block .checkout-block-form {
  border: solid 1px rgba(128, 128, 128, 0.3);
  border-radius: 5px;
  padding: 0.5rem;
  background-color: var(--elevation-1);
}
#checkoutoneBody #checkoutPayment form#checkout_payment .checkout-block .checkout-block-form #choices-bill, #checkoutoneBody #checkoutPayment form#checkout_payment .checkout-block .checkout-block-form #choices-ship {
  text-align: left;
}
#checkoutoneBody #checkoutPayment form#checkout_payment .checkout-block .checkout-block-form #messages-bill, #checkoutoneBody #checkoutPayment form#checkout_payment .checkout-block .checkout-block-form #messages-ship {
  display: none;
}
#checkoutoneBody #checkoutPayment form#checkout_payment .checkout-block .checkout-block-form #messages-bill.opc-error, #checkoutoneBody #checkoutPayment form#checkout_payment .checkout-block .checkout-block-form #messages-ship.opc-error {
  display: block;
  border: none;
}
#checkoutoneBody #checkoutPayment form#checkout_payment .checkout-block .checkout-block-form #messages-bill.opc-error ul, #checkoutoneBody #checkoutPayment form#checkout_payment .checkout-block .checkout-block-form #messages-ship.opc-error ul {
  display: flex;
  flex-flow: column nowrap;
  align-items: stretch;
  gap: 0.25rem;
  padding: 0;
}
#checkoutoneBody #checkoutPayment form#checkout_payment .checkout-block .checkout-block-form #messages-bill.opc-error ul li, #checkoutoneBody #checkoutPayment form#checkout_payment .checkout-block .checkout-block-form #messages-ship.opc-error ul li {
  display: block;
  background: #ffcdcd;
  color: #ff0000;
  padding: 0.2rem 0.5rem;
  border-radius: 0.2rem;
  border: solid 1px red;
}
#checkoutoneBody #checkoutPayment form#checkout_payment .checkout-block .flexContainer {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  width: 100%;
  gap: 1rem;
  float: none;
  margin-top: 1rem;
}
#checkoutoneBody #checkoutPayment form#checkout_payment .checkout-block .flexContainer .fakeBox {
  margin-right: auto;
}
#checkoutoneBody #checkoutPayment form#checkout_payment .checkout-block select {
  text-align: left;
  background-image: var(--select-check-image), linear-gradient(90deg, transparent calc(100% - 2.8rem), var(--elevation-05) calc(100% - 2.8rem));
}
#checkoutoneBody #checkoutPayment form#checkout_payment .checkout-block select:hover {
  background-image: var(--select-check-image), linear-gradient(90deg, transparent calc(100% - 2.8rem), var(--elevation-15) calc(100% - 2.8rem));
}
#checkoutoneBody #checkoutPayment form#checkout_payment .checkout-block.generic-gv-block {
  background-color: var(--elevation-1);
  color: var(--elevation-1-inverse);
  border: solid 1px var(--elevation-2);
}
#checkoutoneBody #checkoutPayment form#checkout_payment .checkout-block.generic-gv-block .inputLabel {
  display: block;
  font-weight: 600;
}
#checkoutoneBody #checkoutPayment form#checkout_payment .checkout-block.generic-gv-block input {
  border: solid 1px var(--elevation-2);
}
#checkoutoneBody #checkoutPayment form#checkout_payment #checkoutComments .newtext.comments {
  border-color: var(--elevation-2);
  width: 20rem;
}
#checkoutoneBody #checkoutPayment form#checkout_payment .checkoutOneCoupon .coupon-details > legend {
  display: flex;
  flex-flow: row nowrap;
  justify-content: space-between;
}
#checkoutoneBody #checkoutPayment form#checkout_payment .checkoutOneCoupon .coupon-details > legend > button.trash {
  color: #c40202;
  display: flex;
  flex-flow: column nowrap;
  justify-content: center;
  align-items: center;
  font-weight: 500;
  text-decoration: none;
  font-size: 0;
  padding: 0.1rem;
  border: none;
  transition: color 100ms;
  background: none;
  cursor: pointer;
  margin-left: 2rem;
}
#checkoutoneBody #checkoutPayment form#checkout_payment .checkoutOneCoupon .coupon-details > legend > button.trash > .qsicon.trash {
  width: 1.1rem;
  height: 1.1rem;
}
#checkoutoneBody #checkoutPayment form#checkout_payment .checkoutOneCoupon .coupon-details > legend > button.trash:hover {
  color: var(--elevation-1-inverse);
}
#checkoutoneBody #checkoutPayment form#checkout_payment .checkoutOneGv .coupon-input {
  margin-bottom: 0;
}
#checkoutoneBody #checkoutPayment form#checkout_payment .checkoutOneGv fieldset {
  border: none;
  background: var(--elevation-05);
  color: var(--elevation-05-inverse);
  border-radius: 4px;
}
#checkoutoneBody #checkoutPayment form#checkout_payment .checkoutOneGv fieldset:not(:last-child) {
  margin-bottom: 0.3rem;
}
#checkoutoneBody #checkoutPayment form#checkout_payment .checkoutOneGv fieldset label {
  font-weight: 600;
  line-height: 2;
}
#checkoutoneBody #checkoutPayment form#checkout_payment .checkoutOneGv fieldset .qsicon.checkmark {
  display: none;
}
#checkoutoneBody #checkoutPayment form#checkout_payment .checkoutOneGv fieldset.applied {
  background: #c3e1c1;
  background: color-mix(in srgb, var(--elevation-05) 80%, #009c00 20%);
}
#checkoutoneBody #checkoutPayment form#checkout_payment .checkoutOneGv fieldset.applied .qsicon.checkmark {
  display: block;
  width: 2rem;
  height: 2rem;
  align-self: center;
  color: #009c00;
}
#checkoutoneBody #checkoutPayment form#checkout_payment .coupon-input {
  display: flex;
  flex-flow: row nowrap;
  gap: 0.5rem;
  margin-bottom: 1rem;
}
#checkoutoneBody #checkoutPayment form#checkout_payment .coupon-input input {
  font-family: var(--font-code);
  text-transform: uppercase;
}
#checkoutoneBody #checkoutPayment form#checkout_payment .coupon-input.actually-a-store-credit-input input {
  width: 15ch;
}
#checkoutoneBody #checkoutPayment form#checkout_payment .coupon-input button {
  width: 2.5rem;
  border: solid 1px var(--elevation-2);
  border-radius: 4px;
}
#checkoutoneBody #checkoutPayment form#checkout_payment #checkoutShippingMethod .checkout-block-form {
  width: max-content;
}
#checkoutoneBody #checkoutPayment form#checkout_payment #checkoutShippingChoices {
  display: flex;
  flex-flow: row wrap;
  align-items: stretch;
  gap: 0.3rem 1rem;
}
#checkoutoneBody #checkoutPayment form#checkout_payment #checkoutShippingChoices .shipping-method {
  display: flex;
  flex-flow: column nowrap;
  align-items: start;
}
#checkoutoneBody #checkoutPayment form#checkout_payment #checkoutShippingChoices .shipping-method legend {
  font-weight: 500;
}
#checkoutoneBody #checkoutPayment form#checkout_payment #checkoutShippingChoices .shipping-method .shipping-method-options {
  display: flex;
  flex-flow: row wrap;
  gap: 0.5rem;
}
#checkoutoneBody #checkoutPayment form#checkout_payment #checkoutShippingChoices .shipping-method .shipping-method-options .shipping-option {
  cursor: pointer;
  display: flex;
  flex-flow: column nowrap;
  padding: 0.3rem 0.8rem;
  background-color: var(--elevation-03);
  color: var(--elevation-05-inverse);
  border-radius: 4px;
  border: solid 1px var(--elevation-2);
}
#checkoutoneBody #checkoutPayment form#checkout_payment #checkoutShippingChoices .shipping-method .shipping-method-options .shipping-option .price {
  font-weight: 500;
  line-height: 1.5;
}
#checkoutoneBody #checkoutPayment form#checkout_payment #checkoutShippingChoices .shipping-method .shipping-method-options .shipping-option .shipping-option-title {
  font-weight: 600;
}
#checkoutoneBody #checkoutPayment form#checkout_payment #checkoutShippingChoices .shipping-method .shipping-method-options input.hidden-checkbox:checked + .shipping-option {
  cursor: default;
  border: solid 1px blue;
  background-color: color-mix(in srgb, var(--elevation-03) 95%, blue 5%);
}
#checkoutoneBody #checkoutPayment form#checkout_payment #checkoutShippingChoices .shipping-method .custom-control.custom-radio {
  display: flex;
}
#checkoutoneBody #checkoutPayment form#checkout_payment #checkoutPaymentMethod .checkout-block-form, #checkoutoneBody #checkoutPayment form#checkout_payment #checkoutPaymentMethod .custom-control.custom-radio {
  width: max-content;
}
#checkoutoneBody #checkoutPayment form#checkout_payment #checkoutPaymentMethod label[for=pmt-paypalwpp] {
  display: block;
  width: 20rem;
}
#checkoutoneBody #checkoutPayment form#checkout_payment .cart-block {
  align-self: stretch;
}
#checkoutoneBody #checkoutPayment .buttonsRow .linkButton.back {
  --button-bg: #000;
  --button-accent: #fff;
  border-color: #222;
  --focuscolor: #111;
  color: #fff;
}
#checkoutoneBody #checkoutPayment #checkoutOneSubmit {
  align-items: center;
  border-top: solid 1px rgb(221, 221, 221);
  padding: 1rem 0;
  margin-top: 0.5rem;
  gap: 0.5rem;
}
#checkoutoneBody #checkoutPayment .opc-view {
  box-shadow: 0 5px 5px 0 rgba(128, 128, 128, 0.3);
}

#checkoutOneShoppingCart {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  max-width: 90ch;
}

/* #endregion tpl_modules_opc_shopping_cart.php */
/* #region tpl_checkout_one_default */
/* shipping wraps here */
@media (max-width: 83.125rem) and (min-width: 58.125rem) {
  #checkoutPayment .rightPanel {
    max-width: 26rem;
    min-width: min-content;
  }
}
/* cart starts getting cramped */
@media (max-width: 58.125rem) {
  #checkoutPayment .sidebarFlex {
    flex-wrap: wrap;
  }
  #checkoutPayment .rightPanel {
    width: 100%;
  }
  #checkoutPayment .inputsGrid {
    max-width: unset;
    width: 100%;
  }
  #checkoutPayment .inputGroup {
    max-width: 100%;
    width: unset;
    flex-grow: 1;
  }
  #checkoutPayment .inputGroup .newtext {
    width: unset;
  }
  #checkoutOneGuestInfo .inputGroup {
    width: 15rem;
  }
}
@media (max-width: 850px) {
  #checkoutoneBody #checkoutPayment #checkoutOneHeading {
    padding: 0 2rem;
  }
  #checkoutoneBody #checkoutPayment #checkoutOneHeading + hr {
    margin: 0 2rem;
  }
  #checkoutoneBody #checkoutPayment #checkoutOneSubmit {
    text-align: center;
  }
  #checkoutoneBody #checkoutPayment #checkoutOneSubmit {
    border-top: none;
    justify-content: center;
  }
  #checkoutoneBody #checkoutPayment #checkoutOneSubmit #checkoutOneEmail {
    width: 100%;
  }
  #checkoutoneBody #checkoutPayment form#checkout_payment {
    justify-content: space-around;
  }
  #checkoutoneBody #checkoutPayment form#checkout_payment #checkoutOneLeft, #checkoutoneBody #checkoutPayment form#checkout_payment #checkoutOneRight {
    align-items: center;
  }
}
@media (max-width: 500px) {
  #checkoutoneBody #checkoutPayment #checkoutOneSubmit.buttonsRow {
    padding: 0 2rem;
  }
  #checkoutoneBody #checkoutPayment #checkoutOneSubmit.buttonsRow > * {
    flex-grow: 1;
    justify-content: center;
    justify-items: center;
  }
}
@media (max-width: 500px) {
  #checkoutoneBody #checkoutPayment form#checkout_payment {
    justify-content: start;
  }
  #checkoutoneBody #checkoutPayment form#checkout_payment #checkoutOneLeft, #checkoutoneBody #checkoutPayment form#checkout_payment #checkoutOneRight {
    align-items: start;
  }
}
#checkoutPayment textarea.newtext {
  resize: vertical;
}

.form-halign {
  display: flex;
  flex-flow: row wrap;
  gap: 0.25rem 1rem;
  max-width: 100%;
}

.inputGroup {
  width: 100%;
  max-width: 18rem;
  display: flex;
  flex-direction: column;
}
.inputGroup > label {
  padding-left: 0.5rem;
  font-weight: 600;
  font-size: 1.1rem;
}

/* #endregion tpl_checkout_one_default */
/* #region tpl_checkout_success_default */
.gridLayout {
  display: flex;
  flex-flow: row nowrap;
  align-items: stretch;
  padding: 0;
  gap: 1rem;
}
.gridLayout .leftPane {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 1.5rem 3rem;
  max-width: 100%;
  width: 50rem;
}
@media (max-width: 600px) {
  .gridLayout .leftPane {
    padding: 1.5rem calc(-1.5rem + 12vw);
  }
}
.gridLayout .leftPane hr {
  color: var(--body-text);
}
.gridLayout .leftPane .paypalIcon {
  height: 2rem;
}
.gridLayout .leftPane .linkButton.home {
  --hoverdist: 0;
}
.gridLayout .leftPane .linkButton.home .qsicon {
  width: 1.3rem;
  height: 1.3rem;
}
.gridLayout .leftPane .buttonsRow {
  gap: 0.625rem;
}
@media (max-width: 500px) {
  .gridLayout .leftPane .buttonsRow > li {
    width: 100%;
  }
  .gridLayout .leftPane .buttonsRow > li > a {
    width: 100%;
    justify-content: center;
    justify-items: center;
  }
}
.gridLayout .gridBg {
  flex-grow: 1;
  display: grid;
  grid-template-columns: auto;
  grid-auto-rows: auto;
  grid-auto-flow: row;
  align-items: start;
  align-content: start;
  justify-content: center;
  padding: 1.5rem 2vw;
  gap: 1rem;
  background-color: var(--elevation-03);
  --grid-color: rgb(236, 229, 221);
  --grid-size: 100px;
  --grid-stroke-width: 1px;
  background-image: linear-gradient(90deg, var(--grid-color), var(--grid-color) var(--grid-stroke-width), transparent var(--grid-stroke-width), transparent var(--grid-size)), linear-gradient(var(--grid-color), var(--grid-color) var(--grid-stroke-width), transparent var(--grid-stroke-width), transparent var(--grid-size));
  background-position: 0 0, 0 calc(2.6rem + 1px);
  background-repeat: repeat repeat;
  background-size: var(--grid-size) var(--grid-size), var(--grid-size) var(--grid-size);
}
.gridLayout .gridBg hr {
  color: var(--body-text);
}
.gridLayout .gridBg .rightPaneContainer {
  padding: 1rem;
  background: var(--body-bg);
  border: solid 1px var(--elevation-1);
  max-width: 30rem;
  display: flex;
  flex-flow: column nowrap;
  align-items: start;
  gap: 0.5rem;
}
.gridLayout .gridBg .rightPaneContainer h2 {
  line-height: 1.1;
}
.gridLayout .gridBg .rightPaneContainer#checkoutSuccessGuestPassword input:disabled {
  background-color: var(--elevation-1);
  width: auto;
}
.gridLayout .gridBg .rightPaneContainer#checkoutSuccessOrderLink input.newtext {
  cursor: copy;
  user-select: text;
}
.gridLayout .gridBg .rightPaneContainer form {
  display: contents;
}
@media (max-width: 850px) {
  .gridLayout {
    flex-flow: column nowrap;
  }
  .gridLayout .gridBg {
    border-top: solid 1px var(--elevation-2);
    padding: 1.5rem;
  }
  .gridLayout .gridBg .rightPaneContainer {
    padding: 0.5rem 1rem;
    max-width: 100vw;
  }
}

#checkoutSuccess #checkoutSuccessHeading {
  display: flex;
  flex-flow: row nowrap;
  justify-content: space-between;
}
#checkoutSuccess #checkoutSuccessHeading a.notImportant {
  text-decoration: none;
  color: inherit;
}
#checkoutSuccess .text {
  font-size: 1rem;
}
#checkoutSuccess .row {
  display: flex;
  flex-flow: row wrap;
  gap: 1rem;
}
#checkoutSuccess .formGroup label {
  font-weight: 600;
  display: block;
}
#checkoutSuccess .signupButton {
  font-size: 1.1rem;
  width: 80%;
  align-self: center;
  color: var(--elevation-05-inverse);
  background-color: var(--elevation-05);
  border-radius: 0.5rem;
  padding: 0.5rem 1rem;
  font-weight: 700;
  text-align: center;
  cursor: pointer;
  border: solid 2px var(--elevation-2);
  transition: background-color 150ms, border-color 150ms;
}
#checkoutSuccess .signupButton:hover {
  border-color: var(--elevation-2);
  background-color: var(--elevation-1);
}

#orderTotalDivs {
  display: flex;
  flex-flow: column nowrap;
  gap: 0.2rem 1rem;
  font-size: 1.1rem;
  padding: 0;
  margin: 0;
}
#orderTotalDivs > li:not(.coupon-details) {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  padding: 0.2rem 1rem;
}
#orderTotalDivs > li:not(.coupon-details).total div {
  font-weight: 700;
}
#orderTotalDivs > li:not(.coupon-details).total code {
  font-weight: 600;
}
#orderTotalDivs > li:not(.coupon-details) code {
  font-family: var(--font-code);
  flex-shrink: 0;
}
#orderTotalDivs > li:not(.coupon-details) button.coupon-details {
  appearance: none;
  padding: 0;
  height: 1.5rem;
  border-radius: 3px;
  background: none;
  border: solid 1px var(--elevation-15);
  cursor: pointer;
  margin-left: 0.5rem;
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  font-size: 0.9rem;
  flex-shrink: 0.1;
  padding: 0.2rem 0.5rem;
  padding-right: 0.3rem;
}
#orderTotalDivs > li:not(.coupon-details) button.coupon-details .qsicon {
  height: 100%;
  aspect-ratio: 1;
  transition: transform 150ms;
}
#orderTotalDivs > li:not(.coupon-details) button.coupon-details.expanded .qsicon {
  transform: rotate(90deg);
}
#orderTotalDivs > li.coupon-details:not(.expanded) {
  display: none;
}

.orderStatuses {
  display: flex;
  flex-flow: column nowrap;
  padding: 0;
  margin: 0;
  gap: 1rem;
  padding-top: 1rem;
}
.orderStatuses li {
  display: flex;
  flex-flow: row nowrap;
  align-items: start;
  gap: 0.5rem;
}
.orderStatuses li .markerGroup {
  flex-shrink: 0;
  width: 2rem;
  display: flex;
  flex-flow: column nowrap;
  align-items: center;
  align-self: stretch;
}
.orderStatuses li .markerGroup .marker {
  width: 1.25rem;
  height: 1.25rem;
  border: solid 2px var(--body-text);
  border-radius: 100%;
  opacity: 0.5;
}
.orderStatuses li .markerGroup .line {
  width: 2px;
  min-height: 1rem;
  margin-bottom: -1rem;
  background-color: var(--body-text);
  opacity: 0.5;
  flex-grow: 1;
}
.orderStatuses li .shortStatus {
  display: flex;
  width: 7rem;
  flex-flow: column nowrap;
  line-height: 1.25;
  align-items: end;
  text-align: right;
  transform: translateY(-0.5rem);
  flex-shrink: 0;
}
.orderStatuses li .shortStatus .date {
  font-family: var(--font-ness);
  font-size: 0.9rem;
}
.orderStatuses li .shortStatus .actualStatus {
  font-size: 1.2rem;
}
.orderStatuses li .comment {
  line-height: 1.4;
  font-size: 1.2rem;
  padding-bottom: 0.5rem;
}
.orderStatuses li:last-child .shortStatus {
  transform: translateY(-0.35rem);
  font-weight: 700;
}
.orderStatuses li:last-child .markerGroup {
  align-self: stretch;
}
.orderStatuses li:last-child .markerGroup .marker {
  opacity: 1;
  width: 1.8rem;
  height: 1.8rem;
  border: solid 2px var(--body-text);
  background-color: var(--body-text);
}
.orderStatuses li:last-child .markerGroup .line {
  display: none;
}

.splitGroup {
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
  padding: 1rem 0;
  gap: 1rem;
}

#accounthistoryinfoBody .settingsLayout .centerWrapper {
  padding: 0;
  max-width: unset;
  align-items: stretch;
}
#accounthistoryinfoBody .settingsLayout .centerWrapper .gridLayout {
  padding: 0;
}
#accounthistoryinfoBody .settingsLayout .centerWrapper .gridLayout .leftPane {
  padding: 2rem 2rem;
}

/* #endregion */
/* #region tpl_download_time_out */
#downloadTimeOutMainContent p {
  margin-bottom: 1.2rem;
  font-size: 1.1rem;
}

/* #endregion tpl_download_time_out */
/* #region tpl_advanced_search_result_default */
#advSearchResultsDefault .accentHighlight {
  display: block;
  background-color: var(--accent-color);
  color: white;
  border-top-left-radius: 0.2rem;
  border-top-right-radius: 0.2rem;
  max-width: max-content;
  padding: 0 0.5rem;
  font-family: var(--font-ness);
  text-transform: uppercase;
}
#advSearchResultsDefault .possibleSeries {
  display: flex;
  border-radius: 0.3rem;
  background-color: var(--elevation-05);
  padding: 0.5rem 1rem;
  margin: 0 -1rem;
  font-size: 1.1rem;
  color: var(--elevation-05-inverse);
  text-decoration: none;
}
#advSearchResultsDefault .possibleSeries .detailsFlex .productTitle {
  color: var(--elevation-05-inverse);
  font-size: 1.75rem;
  font-weight: 600;
  line-height: 1.1;
}
#advSearchResultsDefault .possibleSeries .detailsFlex .subtitle {
  color: var(--elevation-05-inverse);
}

#advSearchDefaultHeading {
  display: flex;
  flex-flow: row nowrap;
  justify-content: space-between;
  align-items: baseline;
}
#advSearchDefaultHeading a {
  font-size: 0.8em;
  font-weight: normal;
  color: inherit;
}

.titleArea {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  justify-content: space-between;
}

div.menuHolder {
  position: relative;
}
div.menuHolder.active .expandButton {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}
div.menuHolder.active ul.menu {
  display: block;
}

.expandButton {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.375rem;
  padding: 0.375rem 0.875rem 0.375rem 1.125rem;
  border-radius: 0.25rem;
  border: none;
  cursor: pointer;
  color: var(--body-text);
  background-color: var(--elevation-05);
  transition: background-color 150ms;
}
.expandButton:is(:hover, :focus, div.menuHolder.active .expandButton) {
  background-color: var(--elevation-1);
}

.expandButton .qsicon {
  width: 1.5rem;
  height: 1.5rem;
}

ul.menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  padding: 0;
  width: 10.5rem;
  overflow: clip;
  border-radius: 0.25rem;
  border-top-left-radius: 0;
  background: var(--elevation-03);
  box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.25);
}
ul.menu li {
  display: block;
}

.sortMenuItem {
  display: flex;
  padding: 0.625rem;
  justify-content: space-between;
  align-items: flex-start;
  align-self: stretch;
  color: inherit;
  text-decoration: none;
  transition: background-color 150ms;
}
.sortMenuItem:is(:hover, :focus, :focus-visible) {
  background-color: var(--elevation-05);
}
.sortMenuItem.active {
  font-weight: 700;
}
.sortMenuItem.active .qsicon {
  opacity: 1;
}
.sortMenuItem .qsicon {
  width: 1.5rem;
  height: 1.5rem;
  opacity: 0.7;
}

.searchFeaturedReview {
  display: flex;
  padding: 0.9375rem 1.25rem;
  margin-bottom: 1.5rem;
  justify-content: center;
  align-items: center;
  align-self: stretch;
  border-top: 2px solid var(--brand-color, #B16821);
  border-bottom: 2px solid var(--brand-color, #B16821);
  background: var(--body-bg, #FFFCF7);
  box-shadow: 0px 14px 8px -8px rgba(0, 0, 0, 0.25);
}
.searchFeaturedReview .inner {
  color: var(--body-text, #462200);
  font-size: 1rem;
  font-style: italic;
  font-weight: 500;
  line-height: 150%;
}

.gridForm {
  display: flex;
  flex-flow: column nowrap;
  gap: 0.8rem;
  width: 100%;
  max-width: 30rem;
  border-radius: 0.5rem;
  border: solid 2px var(--elevation-1);
  background-color: var(--body-bg);
  padding: 0.5rem 1rem;
}
.gridForm .newtext {
  width: 100%;
}

button.searchButton {
  color: white;
  background-color: var(--accent-color);
  border-radius: 0.5rem;
  padding: 0.5rem 1rem;
  width: 100%;
  font-weight: 700;
  font-size: 1.2rem;
  text-align: center;
  border: none;
  cursor: pointer;
}

/* #endregion tpl_advanced_search_result_default */
/* #region tpl_series_info_default */
/* #region all_series */
/*
* No series was requested (query param empty), so show default listing of all series.
*/
#seriesInfoDefault.allSeries {
  display: none;
}

/* #endregion all_series */
/* #region bad_series */
/*
* A series was requested, but it doesn't exist. Show a 404.
*/
#seriesInfoDefault.badSeries {
  display: none;
}

/* #endregion bad_series */
/* #region series_exists */
/*
* A series was requested, and exists.
*/
#seriesInfoDefault.seriesExists {
  padding: 2rem;
  /* Title */
  /* Authors */
}
#seriesInfoDefault.seriesExists > h1 {
  line-height: 1;
}
#seriesInfoDefault.seriesExists > h2 {
  font-size: 1.3rem;
  font-weight: 600;
}
#seriesInfoDefault.seriesExists > h3 {
  font-size: 1.4rem;
  margin-top: 2rem;
  padding: 0 0.2rem;
}
#seriesInfoDefault.seriesExists > hr {
  margin: 0.5rem 0;
}
#seriesInfoDefault.seriesExists .seriesDescription {
  padding-top: 1rem;
  max-width: 90ch;
}
#seriesInfoDefault.seriesExists .max70 {
  max-width: 90ch;
}
#seriesInfoDefault.seriesExists .results_holder {
  display: flex;
  flex-flow: column nowrap;
  align-items: start;
  gap: 1rem;
  max-width: 90ch;
}

/* #endregion series_exists */
/* #endregion tpl_series_info_default */
/* #region tpl_page_default (ezpages) */
/* Ezpages */
.ezContent {
  max-width: 90ch;
}
.ezContent a:not(.linkButton) {
  color: var(--accent-color);
}
.ezContent a:not(.linkButton):visited {
  color: var(--topbanner-success-background);
}
.ezContent p {
  margin-bottom: 0.5rem;
}
.ezContent code {
  font-size: 0.9rem;
  font-weight: 700;
}
.ezContent .copyable {
  cursor: text;
  user-select: all;
  font-family: var(--font-code);
  background-color: var(--elevation-1);
  color: var(--elevation-1-inverse);
  padding: 0.3rem 0.5rem;
  border-radius: 0.3rem;
}

#pageBody main.centerColumnWrapper {
  flex-flow: row nowrap;
  justify-content: center;
}
#pageBody main.centerColumnWrapper #navEZPagesTOCWrapper {
  background: var(--elevation-03);
  border: solid 1px var(--elevation-2);
  padding: 0.4rem 1rem;
  align-self: start;
  margin-top: 6.6rem;
}
#pageBody main.centerColumnWrapper #navEZPagesTOCWrapper ul.list#navEZPagesTOC {
  padding: 0;
}
#pageBody main.centerColumnWrapper #navEZPagesTOCWrapper ul.list#navEZPagesTOC li {
  list-style-position: inside;
}
#pageBody main.centerColumnWrapper #navEZPagesTOCWrapper ul.list#navEZPagesTOC li .currentPage {
  text-decoration: none;
  color: var(--elevation-1-inverse);
  font-weight: 600;
}

#navEZPageNextPrev, .navNextPrevWrapper {
  width: 90ch;
  max-width: 100%;
  margin-top: 2rem;
  padding: 1rem 0;
  border-top: solid 1px var(--brand-color);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  justify-content: space-between;
  justify-items: center;
}
#navEZPageNextPrev a, .navNextPrevWrapper a {
  display: flex;
  align-items: center;
  padding: 0.2rem 0.2rem;
  cursor: pointer;
  color: inherit;
  text-decoration: none;
  width: fit-content;
  max-width: 100%;
}
#navEZPageNextPrev a.left, .navNextPrevWrapper a.left {
  --distance: -0.2rem;
  justify-content: start;
  text-align: start;
  justify-self: start;
}
#navEZPageNextPrev a.right, .navNextPrevWrapper a.right {
  --distance: 0.2rem;
  justify-content: end;
  text-align: end;
  justify-self: end;
}
#navEZPageNextPrev a:is(:hover, :focus) .stack span, .navNextPrevWrapper a:is(:hover, :focus) .stack span {
  text-decoration-color: currentColor;
}
#navEZPageNextPrev a:is(:hover, :focus) .qsicon, .navNextPrevWrapper a:is(:hover, :focus) .qsicon {
  transform: translateX(var(--distance, 0));
}
#navEZPageNextPrev a:is(:hover, :focus) .qsicon.home, .navNextPrevWrapper a:is(:hover, :focus) .qsicon.home {
  transform: scale(1.1);
}
#navEZPageNextPrev a:active .qsicon, .navNextPrevWrapper a:active .qsicon {
  transform: translateX(calc(var(--distance) * -0.5));
}
#navEZPageNextPrev a .qsicon, .navNextPrevWrapper a .qsicon {
  height: 2rem;
  width: 2rem;
  transition: transform 150ms;
}
#navEZPageNextPrev a .qsicon.home, .navNextPrevWrapper a .qsicon.home {
  height: 1.5rem;
  width: 1.5rem;
}
#navEZPageNextPrev a .stack, .navNextPrevWrapper a .stack {
  display: flex;
  flex-flow: column nowrap;
  justify-content: center;
  line-height: 1.3;
}
#navEZPageNextPrev a .stack label, .navNextPrevWrapper a .stack label {
  text-transform: uppercase;
  cursor: pointer;
  font-size: 0.9rem;
}
#navEZPageNextPrev a .stack span, .navNextPrevWrapper a .stack span {
  font-weight: 600;
  text-decoration: underline transparent;
  transition: text-decoration-color 150ms;
}

div.contentPageLayout {
  padding: 2rem;
  display: flex;
  flex-flow: column nowrap;
  flex-grow: 0;
}
div.contentPageLayout .max70 {
  max-width: 90ch;
}
div.contentPageLayout > form {
  display: contents;
}
div.contentPageLayout h1 {
  border-bottom: solid 1px currentColor;
  padding: 1rem 0;
  margin-bottom: 1rem;
  max-width: 34ch;
}
div.contentPageLayout .buttonsRow {
  padding-top: 1rem;
  max-width: 90ch;
}

/* #endregion tpl_page_default (ezpages) */
#contactUsDefault textarea.newtext {
  max-width: 70ch;
}
#contactUsDefault label {
  font-weight: 500;
  padding-left: 1ch;
}
#contactUsDefault .form-halign {
  max-width: 70ch;
  gap: 1rem;
  padding-bottom: 1rem;
}
#contactUsDefault .form-halign .group {
  flex-basis: 40%;
  flex-grow: 1;
}
#contactUsDefault .form-halign .group .newtext {
  width: 100%;
}
#contactUsDefault .h-captcha {
  margin-top: 1rem;
}
#contactUsDefault .buttonsRow {
  max-width: 63ch;
}

/* #region tpl_password_forgotten_default */
#passwordForgotten {
  align-items: center;
}
#passwordForgotten > form {
  display: contents;
}
#passwordForgotten #passwordForgottenMainContent {
  text-align: center;
  text-wrap-style: balance;
  max-width: 28rem;
}
#passwordForgotten ul.buttonsRow {
  width: 18rem;
  max-width: 100%;
  gap: 1rem;
}

/* #endregion */
/* #region SETTINGS PAGES */
#accountBody .centerWrapper {
  padding-top: 1.7rem;
}

div.settingsLayout {
  display: flex;
  flex-flow: row nowrap;
  align-items: start;
  padding: 0;
  justify-content: center;
}
div.settingsLayout > nav {
  background-color: var(--elevation-1);
  padding: 2rem 0;
  width: 15rem;
  max-width: 100%;
  display: flex;
  flex-flow: column nowrap;
  align-items: start;
  justify-content: start;
  align-self: stretch;
  gap: 0.5rem;
}
div.settingsLayout > nav .top {
  width: 100%;
  display: flex;
  flex-flow: column nowrap;
  align-items: start;
  justify-content: start;
  gap: 1rem;
  padding: 0 1rem;
}
div.settingsLayout > nav .top legend {
  font-size: 1.3rem;
  font-weight: 700;
}
div.settingsLayout > nav .top hr.minor {
  width: 100%;
  margin-top: -2.2px;
}
div.settingsLayout > nav ul.settingsLinks {
  padding: 0;
  width: 100%;
}
div.settingsLayout > nav ul.settingsLinks li.gap {
  height: 1rem;
}
div.settingsLayout > nav ul.settingsLinks li {
  display: block;
}
div.settingsLayout > nav ul.settingsLinks li legend {
  font-weight: 700;
  padding: 0.2rem 1rem;
}
div.settingsLayout > nav ul.settingsLinks li a {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  justify-content: start;
  padding: 0.25rem 1.5rem;
  text-decoration: none;
  color: inherit;
  gap: 0.5rem;
  line-height: 1.25;
}
div.settingsLayout > nav ul.settingsLinks li a svg {
  width: 1.25rem;
  height: 1.25rem;
}
div.settingsLayout > nav ul.settingsLinks li a.active {
  background-color: var(--elevation-15);
  color: var(--elevation-1-inverse);
  pointer-events: none;
  font-weight: 600;
}
div.settingsLayout > nav ul.settingsLinks li a:not(.active) {
  transition: background-color 150ms, color 150ms;
}
div.settingsLayout > nav ul.settingsLinks li a:not(.active):hover {
  background-color: var(--elevation-15);
  color: var(--elevation-15-inverse);
}
div.settingsLayout > .centerWrapper {
  padding: 2rem 2rem;
  flex-grow: 1;
  height: 100%;
  width: 0;
  max-width: min(100%, 90ch);
  display: flex;
  flex-flow: column nowrap;
  align-items: start;
  justify-content: start;
  gap: 1rem;
}
div.settingsLayout > .centerWrapper h1 {
  font-size: 1.8rem;
  line-height: 1;
  display: flex;
  flex-flow: row wrap;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  gap: 1rem;
}
div.settingsLayout > .centerWrapper h1 form .labelGroup {
  font-size: 1rem;
  font-weight: 500;
}
div.settingsLayout > .centerWrapper hr {
  width: 100%;
}
div.settingsLayout > .centerWrapper form {
  display: contents;
}
div.settingsLayout > .centerWrapper form #stBreak {
  display: none;
}
div.settingsLayout > .centerWrapper nav.pagination {
  width: 100%;
  justify-content: center;
}
div.settingsLayout > .centerWrapper nav.pagination ul.pagination {
  padding-inline: 1rem;
}
div.settingsLayout > .centerWrapper .orders-grid {
  display: grid;
  width: 100%;
  padding: 0;
  gap: 1rem;
  grid-template-columns: repeat(auto-fill, minmax(min(35ch, 100%), 1fr));
}
div.settingsLayout > .centerWrapper .orders-grid a.grid-item-order {
  display: block;
  color: inherit;
  text-decoration: none;
  border: solid 1px var(--elevation-2);
  background-color: var(--elevation-03);
  padding: 0.4rem 1rem;
}
div.settingsLayout > .centerWrapper .orders-grid a.grid-item-order legend {
  font-size: 1.2rem;
  font-weight: 600;
  display: flex;
  flex-flow: row nowrap;
  justify-content: space-between;
}
div.settingsLayout > .centerWrapper .orders-grid a.grid-item-order .order-status {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  gap: 0.5ch;
  font-size: 1rem;
  line-height: 1;
  font-weight: 500;
  background-color: var(--elevation-05);
  width: fit-content;
  padding: 0.2rem 0.5rem;
  border: solid 1px var(--elevation-2);
  border-radius: 0.5rem;
}
div.settingsLayout > .centerWrapper .orders-grid a.grid-item-order .order-status svg.qsicon {
  width: 1.25rem;
  height: 1.25rem;
}
div.settingsLayout > .centerWrapper .orders-grid a.grid-item-order .order-status.status-1 {
  border-color: var(--topbanner-caution-background);
}
div.settingsLayout > .centerWrapper .orders-grid a.grid-item-order .order-status.status-2 {
  border-color: var(--topbanner-notice-background);
}
div.settingsLayout > .centerWrapper .orders-grid a.grid-item-order .order-status.status-2 svg.qsicon {
  animation: status-spin infinite linear 5s;
}
@keyframes status-spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
div.settingsLayout > .centerWrapper .orders-grid a.grid-item-order .order-status.status-3 {
  border-color: var(--topbanner-success-background);
}
div.settingsLayout > .centerWrapper .orders-grid a.grid-item-order .order-status.status-4 {
  border-color: var(--topbanner-error-background);
}
div.settingsLayout > .centerWrapper .my-books {
  display: grid;
  grid-template-columns: repeat(auto-fill, 10rem);
  gap: 2rem 1rem;
  justify-content: space-between;
  width: 100%;
}
@media (max-width: 600px) {
  div.settingsLayout > .centerWrapper .my-books {
    justify-content: space-around;
  }
}
div.settingsLayout > .centerWrapper .my-books .my-book {
  display: flex;
  flex-flow: column nowrap;
  align-items: center;
  color: inherit;
  text-decoration: none;
  text-align: center;
}
div.settingsLayout > .centerWrapper .my-books .my-book img {
  transition: transform 150ms;
}
div.settingsLayout > .centerWrapper .my-books .my-book strong {
  text-wrap-style: balance;
  width: 10rem;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  max-height: 3em;
  text-overflow: ellipsis;
  overflow: hidden;
  text-decoration: underline transparent;
  margin-block: auto;
  transition: text-decoration-color 150ms;
}
div.settingsLayout > .centerWrapper .my-books .my-book:hover img {
  transform: translateY(-0.1rem) scale(1.03);
}
div.settingsLayout > .centerWrapper .my-books .my-book:hover strong {
  text-decoration-color: currentColor;
}
@media (max-width: 600px) {
  div.settingsLayout {
    flex-direction: column;
    align-items: stretch;
  }
  div.settingsLayout .centerWrapper {
    width: auto;
  }
  div.settingsLayout > nav {
    order: 9;
    width: auto;
  }
}

.labelGroup {
  display: flex;
  flex-flow: column nowrap;
  align-items: start;
  justify-content: start;
  max-width: 100%;
}
.labelGroup.full-width {
  width: 100%;
}
.labelGroup > :is(label, legend):not(.fakeBox), .labelGroup .inputLabel {
  font-weight: 600;
  padding-left: 0.5rem;
}
.labelGroup .radioGroup {
  background-color: white;
  border: solid 1px var(--elevation-1);
  display: flex;
  flex-flow: column nowrap;
  align-items: start;
  justify-content: start;
  border-radius: 0.5rem;
  gap: 0.6rem;
  padding: 0.8rem;
  max-width: min(100%, 18rem);
  width: 18rem;
}

.addressCardGroup {
  display: flex;
  flex-flow: row wrap;
  gap: 1rem;
  padding-top: 2rem;
}

.primaryAddress label {
  background-color: var(--accent-color);
  color: white;
  font-family: var(--font-ness);
  font-weight: 700;
  font-size: 0.9rem;
  border-top-left-radius: 0.2rem;
  border-top-right-radius: 0.2rem;
  padding: 0 0.5rem;
  padding-top: 0.3rem;
  display: block;
}
.primaryAddress .addressCard {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
  border-color: var(--accent-color);
}

#accountnotificationsBody .watchedList {
  padding: 0;
  gap: 0.25rem;
  width: 100%;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
  grid-auto-flow: row dense;
}
#accountnotificationsBody .watchedList .watchedListItem {
  border: solid 2px var(--elevation-1);
  background-color: var(--elevation-03);
  color: var(--elevation-03-inverse);
  border-radius: 0.25rem;
  flex-flow: row nowrap;
  display: flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.3rem;
  padding-right: 1rem;
  cursor: pointer;
  transition: background-color 150ms;
}
#accountnotificationsBody .watchedList .watchedListItem .product-image {
  height: 3.5rem;
  border-radius: 3px;
}
#accountnotificationsBody .watchedList .watchedListItem .description {
  display: flex;
  flex-flow: column nowrap;
  align-items: start;
  flex-grow: 1;
  line-height: 1.2;
  padding: 0.2rem 0;
}
#accountnotificationsBody .watchedList .watchedListItem .description .product-name {
  font-weight: bold;
  color: currentColor;
  text-decoration-color: transparent;
  font-size: 1.05rem;
}
#accountnotificationsBody .watchedList .watchedListItem .description .author-name {
  font-style: italic;
  font-size: 0.9rem;
}
#accountnotificationsBody .watchedList input[type=checkbox].visuallyHidden:not(:checked) + .watchedListItem {
  border-color: var(--topbanner-error-background);
  background-color: var(--topbanner-error-background);
  color: var(--topbanner-error-color);
}

.notFoundLayout {
  display: flex;
  flex-flow: column nowrap;
  justify-content: center;
  align-items: center;
  padding: 0 1rem;
}
.notFoundLayout h1 {
  text-align: center;
  min-width: min(100%, 15ch);
  border-bottom: solid 1px currentColor;
  padding: 1rem 0;
  margin-bottom: 1rem;
  max-width: 34ch;
}
.notFoundLayout .ezContent {
  text-align: center;
}
.notFoundLayout ul.buttonsRow {
  width: max-content;
  max-width: 100%;
  gap: 0.5rem;
}
.notFoundLayout ul.buttonsRow a.linkButton:not(.submit) {
  border-color: var(--elevation-1);
  --hoverdist: -0.1rem;
  transition: none;
}
.notFoundLayout ul.buttonsRow a.linkButton:not(.submit):focus {
  border-color: var(--elevation-1-inverse);
  color: var(--elevation-1-inverse);
}
.notFoundLayout ul.buttonsRow a.linkButton:not(.submit) .qsicon.search {
  margin-bottom: -2px;
}
.notFoundLayout ul.buttonsRow a.linkButton:not(.submit) svg.qsicon {
  width: 1.2rem;
  height: 1.2rem;
}

#orderStatus .topBanner {
  width: fit-content;
}
#orderStatus .formArea form p {
  text-align: center;
  max-width: 30rem;
  margin-top: 0.8rem;
  line-height: 1.4;
}
#orderStatus #lookupInstructions {
  text-align: center;
  max-width: 50ch;
}
#orderStatus .form-halign {
  column-gap: 0.5rem;
}
#orderStatus .rightPaneContainer#orderStatusLookup {
  gap: 0.5rem;
}
#orderStatus input#order_id {
  width: 10ch;
}

#authorinfoBody .centerColumnWrapper h1 {
  font-family: var(--font-gothic);
}
#authorinfoBody .centerColumnWrapper .authorDescription {
  max-width: 90ch;
}

#gv_sendDefault .advisory {
  display: block;
}
#gv_sendDefault .advisory > legend {
  line-height: 1.5;
}
#gv_sendDefault .advisory > div {
  border-radius: 4px;
  padding: 0.4rem;
  border: solid 1px var(--elevation-2);
  background-color: var(--elevation-05);
}

#gvFaqDefault {
  gap: 1rem;
}
#gvFaqDefault .faq-item {
  margin-top: 0.5rem;
}
#gvFaqDefault .faq-item h2.faq-heading {
  font-size: 1.2rem;
  margin-bottom: 0.5rem;
}
#gvFaqDefault .faq-item .faq-text {
  margin-left: 0.2rem;
}

#maintenanceDefault #maintenanceDefaultMainContent {
  padding-top: 1rem;
}

div.productListingLayout {
  display: flex;
  flex-flow: column nowrap;
  padding: 3rem 2rem;
  gap: 1rem;
  padding: 0 0;
}
div.productListingLayout .productListingHero {
  background: var(--elevation-05);
  border: solid 1px var(--elevation-2);
  padding: 1.5rem 2rem;
  padding-bottom: 0.75rem;
}
div.productListingLayout .productListingHero .listingLink {
  color: inherit;
  text-decoration: none;
  font-size: 0.9em;
}
div.productListingLayout .productListingHero .listingLink:is(:hover, :focus-visible) {
  text-decoration: underline;
}
@media (max-width: 800px) {
  div.productListingLayout .productListingHero {
    padding: 1.5rem;
    padding-bottom: 0.75rem;
  }
}
div.productListingLayout .productListingHero.footer {
  margin-top: 1rem;
}
div.productListingLayout .productListingHero h1 {
  font-size: 1.8rem;
  display: flex;
  flex-flow: row wrap;
  align-items: center;
  gap: 1rem;
}
@media (max-width: 800px) {
  div.productListingLayout .productListingHero h1 {
    font-size: 1.4rem;
  }
}
div.productListingLayout .productListingHero h1 + #interactables-row {
  margin-top: 0.8rem;
}
div.productListingLayout .productListingHero .categoryDescription {
  margin-top: 0.2rem;
  margin-bottom: 0.6rem;
}
div.productListingLayout .productListingHero #interactables-row {
  max-width: 100%;
  gap: 0.5rem 1rem;
  display: flex;
  flex-flow: row wrap;
  justify-items: start;
}
div.productListingLayout .productListingHero #interactables-row .item {
  display: flex;
  flex-flow: row wrap;
  align-items: stretch;
  gap: 1rem;
  max-width: 100%;
}
div.productListingLayout .productListingHero #interactables-row .item:not(.pagination-item), div.productListingLayout .productListingHero #interactables-row .item.pagination-item .paginationContainer {
  background-color: var(--elevation-03);
  border: solid 1px var(--elevation-2);
  padding: 0.4rem 0.8rem;
  border-radius: 4px;
}
div.productListingLayout .productListingHero #interactables-row .item.filters-item {
  display: flex;
  flex-flow: row nowrap;
  align-items: stretch;
  overflow-x: auto;
}
div.productListingLayout .productListingHero #interactables-row .item.filters-item.hasAlpha form[name=sorter_form] {
  max-width: calc(100% - 2rem);
}
div.productListingLayout .productListingHero #interactables-row .item.filters-item .inputLabel {
  text-wrap: nowrap;
}
div.productListingLayout .productListingHero #interactables-row .item.pagination-item {
  flex-basis: 20rem;
  min-width: min(20rem, 100%);
  flex-grow: 1;
  max-width: 50rem;
}
div.productListingLayout .productListingHero #interactables-row .item.pagination-item .paginationContainer {
  display: flex;
  flex-flow: column nowrap;
  justify-content: space-between;
  height: 100%;
  max-width: 100%;
}
div.productListingLayout .productListingHero #interactables-row .item.pagination-item .paginationContainer .navSplitPagesResult {
  margin-bottom: 0.4rem;
  max-width: max-content;
}
div.productListingLayout .productListingHero #interactables-row .item.pagination-item .paginationContainer ul.pagination > :first-child {
  margin-left: auto;
}
div.productListingLayout .productListingHero #interactables-row .item.pagination-item .paginationContainer ul.pagination > :last-child {
  margin-right: auto;
}
div.productListingLayout .productListingHero #interactables-row .item form {
  max-width: 100%;
}
div.productListingLayout .productListingHero #interactables-row .item form select {
  max-width: 100%;
}
div.productListingLayout .productListingHero #interactables-row .item form select.alpha_filter {
  width: 7rem;
}
div.productListingLayout > form {
  display: contents;
}
div.productListingLayout .advanced-search-form {
  display: flex;
  flex-flow: column wrap;
  align-items: start;
  gap: 1rem;
  padding: 1rem 2rem;
}
div.productListingLayout .advanced-search-form legend {
  font-weight: 700;
  margin-bottom: -0.7rem;
}
div.productListingLayout .advanced-search-form .fieldset {
  display: flex;
  flex-flow: column nowrap;
  align-items: start;
  gap: 1rem;
  background: var(--elevation-03);
  border: solid 1px var(--elevation-2);
  padding: 0.5rem 1rem;
}
div.productListingLayout > button.linkButton.next {
  margin: 0 1%;
}

.module.product-listing.listing-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(23rem, 100%), 1fr));
  grid-auto-rows: auto;
  align-items: stretch;
  justify-items: center;
  gap: 1rem 1%;
  padding: 0.2rem calc(1rem + 1%);
}
.module.product-listing.listing-grid .product {
  border: solid 1px var(--elevation-2);
  background: var(--elevation-03);
  color: var(--elevation-03-inverse);
  min-width: min(23rem, 100%);
  width: 100%;
  max-width: 35rem;
  display: flex;
  flex-flow: column nowrap;
  margin: 0 auto;
}
.module.product-listing.listing-grid .product .listed-product-header {
  display: flex;
  flex-flow: row nowrap;
  flex-grow: 0;
  background: linear-gradient(-45deg, rgb(var(--image-shadow-rgb, 128, 128, 128), 0.2), transparent 30%), var(--product-background, var(--elevation-1));
  color: var(--product-text-color, var(--elevation-1-inverse));
  background-size: cover;
}
.module.product-listing.listing-grid .product .listed-product-header .product-image-holder {
  flex-shrink: 0;
  flex-grow: 0;
  max-width: 7rem;
  height: 9rem;
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
}
.module.product-listing.listing-grid .product .listed-product-header .product-image-holder .productImage {
  box-shadow: 0 0 5px 0 rgb(var(--image-shadow-rgb, 128, 128, 128), 0.5);
  z-index: 3;
  transform: scale(1.05) translateX(-0.25rem);
  transform-origin: left;
  border-radius: 2px;
}
.module.product-listing.listing-grid .product .listed-product-header .name-and-author {
  padding: 0.2rem 0.8rem;
  padding-left: 1.2rem;
  display: flex;
  flex-flow: column nowrap;
  align-items: start;
  justify-content: center;
  flex-grow: 1;
  font-family: var(--product-font, inherit);
}
.module.product-listing.listing-grid .product .listed-product-header .name-and-author .productName {
  font-size: 1.2rem;
  text-decoration: none;
  font-weight: 700;
}
.module.product-listing.listing-grid .product .listed-product-header .name-and-author .subtitle {
  display: flex;
  flex-flow: column wrap;
  gap: 0.5ch;
}
.module.product-listing.listing-grid .product .productDescription {
  padding: 0.4rem 0.8rem;
  padding-top: 1rem;
  flex-grow: 1;
}
.module.product-listing.listing-grid .product .genreTags {
  display: flex;
  flex-flow: row wrap;
  align-items: baseline;
  align-self: stretch;
  gap: 0.3rem 0.4rem;
  padding: 0.4rem 0.5rem;
}
.module.product-listing.listing-grid .product .genreTags a {
  display: block;
  text-decoration: none;
  flex-grow: 1;
  text-align: center;
  flex-shrink: 0;
  border-radius: 2px;
  border: solid 1px rgba(128, 128, 128, 0.3);
  background-color: rgba(128, 128, 128, 0.1);
  padding: 0.1rem 0.2rem;
}
.module.product-listing.listing-grid .product .genreTags a.categoryLink {
  font-weight: 700;
}
.module.product-listing.listing-grid .product a {
  color: inherit;
}
.module.product-listing.listing-grid .reviews-all-review {
  display: flex;
  flex-flow: column nowrap;
}
.module.product-listing.listing-grid .reviews-all-review .product-info {
  display: flex;
  flex-flow: row nowrap;
  gap: 0.5rem;
  padding: 0.5rem;
  background-color: hsla(0, 0%, 50%, 10%);
  border: solid 1px rgba(128, 128, 128, 0.3);
  border-bottom-left-radius: 0.5rem;
  border-bottom-right-radius: 0.5rem;
}
.module.product-listing.listing-grid .reviews-all-review .product-info .productImage {
  height: 5rem;
  flex-shrink: 0;
}
.module.product-listing.listing-grid .reviews-all-review .product-info .productImage img {
  height: 100%;
  border-radius: 2px;
}
.module.product-listing.listing-grid .reviews-all-review .product-info .valign {
  display: flex;
  flex-flow: column nowrap;
  align-items: start;
  justify-content: center;
  gap: 0.5rem;
}
.module.product-listing.listing-grid .reviews-all-review .product-info .valign .productName {
  font-size: 1.2rem;
  font-weight: 600;
  line-height: 1;
  color: inherit;
  text-decoration: none;
}
.module.product-listing.listing-grid .reviews-all-review .product-info .valign .linkButton {
  border-width: 1px;
}
.module.product-listing.listing-grid .reviews-all-review .review {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  border-bottom: none;
  flex-grow: 1;
}
.module.product-listing.listing-grid .category, .module.product-listing.listing-grid .series {
  display: flex;
  flex-flow: row wrap;
  align-items: center;
  width: 100%;
  height: auto;
  text-decoration: none;
  color: inherit;
  gap: 0.75rem;
  background-color: var(--elevation-03);
  border: solid 1px var(--elevation-2);
  border-radius: 0.5rem;
  padding: 0.5rem 1rem;
}
.module.product-listing.listing-grid .category.series, .module.product-listing.listing-grid .series.series {
  flex-flow: column nowrap;
}
@media (max-width: 400px) {
  .module.product-listing.listing-grid .category, .module.product-listing.listing-grid .series {
    width: 100%;
    flex-flow: column nowrap;
  }
  .module.product-listing.listing-grid .category div.category-books, .module.product-listing.listing-grid .series div.category-books {
    width: 6em;
  }
}
.module.product-listing.listing-grid .category .category-image, .module.product-listing.listing-grid .series .category-image {
  height: 5rem;
}
.module.product-listing.listing-grid .category .category-books, .module.product-listing.listing-grid .series .category-books {
  display: grid;
  border-radius: 0.2rem;
  border-top-right-radius: 0.5rem;
  overflow: clip;
  align-items: stretch;
  width: 3em;
  grid-template: auto/auto;
}
.module.product-listing.listing-grid .category .category-books.c3 img:nth-child(1), .module.product-listing.listing-grid .series .category-books.c3 img:nth-child(1) {
  transform: translate(-0.25rem, -0.375rem) scale(var(--scale));
  z-index: 5;
}
.module.product-listing.listing-grid .category .category-books.c3 img:nth-child(2), .module.product-listing.listing-grid .series .category-books.c3 img:nth-child(2) {
  transform: translate(-0.125rem, -0.1rem) scale(var(--scale));
  z-index: 4;
  filter: brightness(0.8);
}
.module.product-listing.listing-grid .category .category-books.c3 img:nth-child(3), .module.product-listing.listing-grid .series .category-books.c3 img:nth-child(3) {
  transform: scale(var(--scale));
  z-index: 3;
  filter: brightness(0.6);
}
.module.product-listing.listing-grid .category .category-books.c2 img:nth-child(1), .module.product-listing.listing-grid .series .category-books.c2 img:nth-child(1) {
  transform: translate(-0.5rem, -0.75rem) scale(var(--scale));
  z-index: 5;
}
.module.product-listing.listing-grid .category .category-books.c2 img:nth-child(2), .module.product-listing.listing-grid .series .category-books.c2 img:nth-child(2) {
  transform: scale(var(--scale));
  z-index: 3;
  filter: brightness(0.6);
}
.module.product-listing.listing-grid .category .category-books img, .module.product-listing.listing-grid .series .category-books img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  --scale: 0.9;
  border-radius: 0.2rem;
  border-top-right-radius: 0.5rem;
  transform-origin: bottom right;
  grid-area: 1/1;
}
.module.product-listing.listing-grid .category .series-books, .module.product-listing.listing-grid .series .series-books {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  gap: 0.5rem;
  border-radius: 0.2rem;
  border-top-right-radius: 0.5rem;
  overflow: auto;
  align-items: stretch;
  height: 6rem;
  max-height: 15rem;
  flex-grow: 1;
}
.module.product-listing.listing-grid .category .series-books img, .module.product-listing.listing-grid .series .series-books img {
  height: 100%;
  --scale: 0.9;
  border-radius: 0.2rem;
  transform-origin: bottom right;
}
.module.product-listing.listing-grid .category .valign, .module.product-listing.listing-grid .series .valign {
  display: flex;
  flex-flow: column nowrap;
  align-items: start;
  justify-content: center;
}
.module.product-listing.listing-grid .category .valign .categoryName, .module.product-listing.listing-grid .series .valign .categoryName {
  font-size: 1.2rem;
  font-weight: 600;
}

.component.SeriesRow {
  display: flex;
  flex-flow: row nowrap;
  align-items: stretch;
  background: var(--product-background, rgba(128, 128, 128, 0.15));
  color: var(--product-text-color);
  padding: 1rem;
  --border-size: 2px;
  border: solid var(--border-size) rgba(128, 128, 128, 0.3);
  background-size: calc(100% + 2 * var(--border-size)) calc(100% + 2 * var(--border-size));
  background-clip: border-box;
  background-position: center center;
  border-radius: 5px;
}
.component.SeriesRow header.seriesDetails {
  display: flex;
  flex-flow: column nowrap;
  min-width: 22ch;
  width: fit-content;
  max-width: 44ch;
  padding-right: 1rem;
  flex-shrink: 0;
  align-items: start;
  font-family: var(--product-font, var(--font-gothic));
}
.component.SeriesRow header.seriesDetails .seriesName {
  color: inherit;
  text-decoration: none;
  font-size: 1.8rem;
  font-weight: 600;
}
.component.SeriesRow header.seriesDetails .seriesName:hover {
  text-decoration: underline;
}
.component.SeriesRow .seriesBooks {
  mask-image: linear-gradient(90deg, transparent, white 10px);
  width: 0;
  flex-grow: 1;
  max-width: fit-content;
  margin-left: auto;
}
.component.SeriesRow .seriesBooks:not(:defined), .component.SeriesRow .seriesBooks.editorPreview {
  padding-left: 24px;
  display: flex;
  overflow-x: scroll;
  gap: 24px;
}
.component.SeriesRow .seriesBooks:not(:defined) .bookCard, .component.SeriesRow .seriesBooks.editorPreview .bookCard {
  flex-shrink: 0;
}
.component.SeriesRow .seriesBooks .bookCard {
  max-width: fit-content;
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  gap: 1rem;
  background: var(--product-background);
  color: var(--product-text-color);
  font-family: var(--product-font);
  --border-size: 1px;
  border: solid var(--border-size) rgba(128, 128, 128, 0.3);
  background-size: calc(100% + 2 * var(--border-size)) calc(100% + 2 * var(--border-size));
  background-clip: border-box;
  background-position: center center;
  border-radius: 0.2rem;
  box-sizing: border-box;
  padding: 0.5rem 1rem;
}
.component.SeriesRow .seriesBooks .bookCard img {
  height: 10rem;
}
.component.SeriesRow .seriesBooks .bookCard .bookDetails {
  display: flex;
  flex-flow: column nowrap;
  align-items: start;
  align-self: center;
}
.component.SeriesRow .seriesBooks .bookCard .bookDetails .productName {
  font-size: 1.3rem;
  font-weight: 600;
  color: inherit;
  text-decoration: none;
}
.component.SeriesRow .seriesBooks .bookCard .bookDetails .productName:hover {
  text-decoration: underline;
}
.component.SeriesRow .seriesBooks .bookCard .bookDetails .productDescription {
  font-size: 0.9rem;
  max-width: 40ch;
}
.component.Box {
  display: flex;
  flex-flow: row nowrap;
  margin-left: var(--fullw-margin-left);
  margin-right: var(--fullw-margin-right);
}
.component.Image {
  display: block;
}
.component.Root {
  display: flex;
  flex-flow: column nowrap;
  align-items: normal;
}

#bookinfoBody .columnsHolder, #linkonlybookinfoBody .columnsHolder, #productinfoBody .columnsHolder, #productreviewsBody .columnsHolder, #productreviewsinfoBody .columnsHolder, #productreviewswriteBody .columnsHolder, #askaquestionBody .columnsHolder {
  background: var(--product-background, var(--body-bg));
  color: var(--product-text-color, var(--body-text));
  font-family: var(--product-font, var(--font-ui));
  background-size: cover;
  background-position: center center;
}

#productMainImage .expand {
  padding: 0;
  border-radius: 0;
  border: none;
  cursor: pointer;
}

.imgmodal {
  display: none;
}
.imgmodal.expanded {
  position: fixed;
  inset: 0;
  z-index: 99;
  padding: min(10vw - 2rem, 3rem);
  display: flex;
  flex-flow: column nowrap;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: white;
}
.imgmodal.expanded .overlay {
  position: fixed;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.7);
  z-index: 1;
  border: none;
}
.imgmodal.expanded .imgmodal-content {
  position: relative;
  z-index: 3;
  overflow: auto;
  border-radius: 5px;
  display: flex;
  flex-flow: column nowrap;
  align-items: start;
  width: fit-content;
  max-width: 100%;
}
.imgmodal.expanded .imgmodal-content img {
  /* https://smoothshadows.com/#djEsMSw1LDAuMDcsMTYyLDMyLDAsI2ZmZmZmZiwjMDAwMDAwLCNmZmZmZmYsMw%3D%3D */
  box-shadow: 0px 1px 6px rgba(var(--image-shadow-rgb, 0, 0, 0), 0.01), 0px 5px 26px rgba(var(--image-shadow-rgb, 0, 0, 0), 0.03), 0px 12px 58px rgba(var(--image-shadow-rgb, 0, 0, 0), 0.04), 0px 20px 104px rgba(var(--image-shadow-rgb, 0, 0, 0), 0.06), 0px 32px 162px rgba(var(--image-shadow-rgb, 0, 0, 0), 0.07);
  max-width: unset;
}
.imgmodal.expanded .center {
  text-align: center;
  font-weight: 700;
  z-index: 4;
  display: block;
  margin-top: 1rem;
  background-color: rgb(0, 0, 0);
  border-radius: 4px;
  padding: 0.4rem 0.8rem;
}

.centerColumn.productInfoLayout {
  display: flex;
  flex-flow: column nowrap;
  align-items: center;
  padding: 0;
}
.centerColumn.productInfoLayout > form {
  display: contents;
}
.centerColumn.productInfoLayout .navNextPrevWrapper {
  border-top: none;
  margin-top: 0;
  width: 100%;
  padding: 0;
  max-width: min(100%, 60rem);
  align-self: center;
  margin-block: 0.5rem;
}
@media (max-width: 600px) {
  .centerColumn.productInfoLayout .navNextPrevWrapper .stack span, .centerColumn.productInfoLayout .navNextPrevWrapper .navNextPrevImage {
    display: none;
  }
}
@media (max-width: 500px) {
  .centerColumn.productInfoLayout .navNextPrevWrapper {
    display: flex;
    justify-content: center;
    padding-bottom: 1rem;
  }
  .centerColumn.productInfoLayout .navNextPrevWrapper .stack label {
    font-size: 0;
  }
}
.centerColumn.productInfoLayout .navNextPrevWrapper .left .qsicon, .centerColumn.productInfoLayout .navNextPrevWrapper .right .qsicon {
  height: var(--h);
}
.centerColumn.productInfoLayout .navNextPrevWrapper .left .stack, .centerColumn.productInfoLayout .navNextPrevWrapper .right .stack {
  min-width: 0;
  flex-grow: 1;
}
.centerColumn.productInfoLayout .navNextPrevWrapper .left .stack span, .centerColumn.productInfoLayout .navNextPrevWrapper .right .stack span {
  overflow: hidden;
  text-wrap: nowrap;
  text-overflow: ellipsis;
}
.centerColumn.productInfoLayout .navNextPrevWrapper .left .navNextPrevImage {
  margin-right: 0.5rem;
}
.centerColumn.productInfoLayout .navNextPrevWrapper .right .navNextPrevImage {
  margin-left: 0.5rem;
}
.centerColumn.productInfoLayout .navNextPrevWrapper .navNextPrevImage {
  border-radius: 2px;
  height: var(--h);
  background-color: grey;
}
.centerColumn.productInfoLayout .navNextPrevWrapper .info {
  display: flex;
  flex-flow: column nowrap;
  align-items: center;
  justify-content: center;
  text-align: center;
  line-height: 1.2;
}
.centerColumn.productInfoLayout .navNextPrevWrapper .info span {
  font-weight: 700;
  text-decoration: transparent underline;
  transition: text-decoration-color 150ms;
}
.centerColumn.productInfoLayout .navNextPrevWrapper .info:is(:hover, :focus) span {
  text-decoration-color: currentColor;
}
.centerColumn.productInfoLayout .navNextPrevWrapper .info .counter {
  text-decoration: none;
  font-size: 0.9rem;
}
.centerColumn.productInfoLayout .main-align {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  justify-content: space-around;
  padding-inline: 2rem;
  padding-block: 3rem;
  gap: 1rem;
  width: 100%;
  max-width: 100%;
}
.centerColumn.productInfoLayout .main-align:is(.navNextPrevWrapper + .main-align) {
  padding-block: 1rem;
}
@media (max-width: 700px) {
  .centerColumn.productInfoLayout .main-align {
    flex-flow: row wrap;
    padding: 0.5rem;
    gap: 2rem;
    padding-top: 2rem;
  }
  .centerColumn.productInfoLayout .main-align div.right-side {
    order: -1;
    margin: 0 auto;
    position: static;
  }
  .centerColumn.productInfoLayout .main-align div.right-side .product-images-holder {
    flex-flow: row wrap;
  }
  .centerColumn.productInfoLayout .main-align div.right-side .product-images-holder #productMainImage .productImage {
    max-height: min(40vh, 60vw);
  }
  .centerColumn.productInfoLayout .main-align div.right-side .product-images-holder #productAdditionalImages {
    width: auto;
    flex-direction: column;
  }
  .centerColumn.productInfoLayout .main-align div.right-side .product-images-holder #productAdditionalImages > button > img {
    max-width: min(20vh, 20vw);
    max-height: min(20vh, 20vw);
  }
}
.centerColumn.productInfoLayout .main-align a, .centerColumn.productInfoLayout .main-align button {
  color: inherit;
}
.centerColumn.productInfoLayout .main-align .right-side {
  flex-shrink: 0;
  align-self: start;
  margin: 2rem 1vw;
  display: flex;
  flex-flow: column nowrap;
  align-items: center;
  gap: 0.5rem;
  position: sticky;
  top: 2rem;
  z-index: 9;
}
.centerColumn.productInfoLayout .main-align .right-side .product-images-holder {
  display: flex;
  flex-flow: row;
  align-items: center;
  gap: 1rem;
}
@media (max-width: 960px) {
  .centerColumn.productInfoLayout .main-align .right-side .product-images-holder .product-images-holder:where(.bookInfo .product-images-holder) {
    flex-direction: column;
  }
  .centerColumn.productInfoLayout .main-align .right-side .product-images-holder .product-images-holder:where(.productGeneral .product-images-holder) {
    flex-direction: column-reverse;
  }
}
.centerColumn.productInfoLayout .main-align .right-side .product-images-holder #productMainImage {
  border-radius: 5px;
  line-height: 0;
  /* https://smoothshadows.com/#djEsMSw1LDAuMDcsMTYyLDMyLDAsI2ZmZmZmZiwjMDAwMDAwLCNmZmZmZmYsMw%3D%3D */
  box-shadow: 0px 1px 6px rgba(var(--image-shadow-rgb, 0, 0, 0), 0.01), 0px 5px 26px rgba(var(--image-shadow-rgb, 0, 0, 0), 0.03), 0px 12px 58px rgba(var(--image-shadow-rgb, 0, 0, 0), 0.04), 0px 20px 104px rgba(var(--image-shadow-rgb, 0, 0, 0), 0.06), 0px 32px 162px rgba(var(--image-shadow-rgb, 0, 0, 0), 0.07), 0 0 10px -5px black;
}
.centerColumn.productInfoLayout .main-align .right-side .product-images-holder #productMainImage .productImage {
  background-color: grey;
  height: calc(80vh - 12rem);
  max-height: min(90vh, 100vw - 35rem);
}
.centerColumn.productInfoLayout .main-align .right-side .product-images-holder #productAdditionalImages {
  display: flex;
  flex-flow: column wrap;
  justify-content: center;
  gap: 1rem;
}
.centerColumn.productInfoLayout .main-align .right-side .product-images-holder #productAdditionalImages > button {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}
.centerColumn.productInfoLayout .main-align .right-side .product-images-holder #productAdditionalImages > button img {
  height: 6rem;
  width: 6rem;
  max-height: min(80vh - 12rem, min(90vh, 100vw - 35rem));
  max-width: min(80vh - 12rem, min(90vh, 100vw - 35rem));
  object-fit: cover;
  object-position: center;
  border-radius: 4px;
}
.centerColumn.productInfoLayout .main-align .product-information {
  width: 100%;
  max-width: 90ch;
  min-width: 0;
  border-radius: 0.25rem;
  padding: 0.5rem 1rem;
  display: flex;
  flex-flow: column nowrap;
  align-items: start;
}
.centerColumn.productInfoLayout .main-align .product-information .productName {
  line-height: 1;
  margin-top: 0.2rem;
  margin-bottom: 0.4rem;
  font-size: 3rem;
  max-width: 100%;
}
.centerColumn.productInfoLayout .main-align .product-information .subtitle {
  line-height: 1;
}
.centerColumn.productInfoLayout .main-align .product-information .genres .genre {
  color: inherit;
  font-weight: 600;
  line-height: 1.3;
  display: inline-block;
  opacity: 0.9;
  text-decoration-color: transparent;
  padding: 0.1rem 0.4rem;
  border-radius: 0.3rem;
  transition: text-decoration-color 0.25s;
}
.centerColumn.productInfoLayout .main-align .product-information .genres .genre:hover {
  text-decoration-color: currentColor;
}
.centerColumn.productInfoLayout .main-align .product-information #productDescription {
  font-size: 1.05rem;
  border-bottom: solid 1px rgba(128, 128, 128, 0.2);
  padding-bottom: 0.8rem;
  margin-bottom: 1.1rem;
  margin-top: 0.8rem;
}
.centerColumn.productInfoLayout .main-align .product-information #productDescription #productInfoLink {
  font-size: 0.9rem;
}
.centerColumn.productInfoLayout .main-align .product-information .linkButton.next.read {
  margin-top: 0.5rem;
}
.centerColumn.productInfoLayout .main-align .product-information #productDetailsList {
  display: flex;
  flex-flow: row wrap;
  align-items: stretch;
  padding: 0;
  gap: 0.5rem;
}
.centerColumn.productInfoLayout .main-align .product-information #productDetailsList li {
  display: flex;
  flex-flow: column;
  align-items: center;
  justify-content: space-between;
  border: solid 1px rgba(128, 128, 128, 0.2);
  background-color: rgba(128, 128, 128, 0.1);
  padding: 0.3rem 1rem;
  line-height: 1.4;
}
.centerColumn.productInfoLayout .main-align .product-information #productDetailsList li dd {
  font-size: 1.1rem;
  font-weight: 600;
}
.centerColumn.productInfoLayout .main-align .product-information #productDetailsList li dd.dd-model {
  font-size: 0.9rem;
}
.centerColumn.productInfoLayout .main-align .product-information #productDetailsList li dt {
  font-size: 0.9rem;
  font-weight: 500;
}
.centerColumn.productInfoLayout .main-align .product-information .affiliate-disclaimer {
  font-size: 0.9rem;
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(0, 22rem));
  align-items: stretch;
  gap: 12px;
  margin: 0.5rem 0;
  width: 100%;
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group {
  flex-grow: 1;
  position: relative;
  max-width: 22rem;
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group > legend {
  font-weight: 700;
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group.eBook {
  --color: 0, 0%, 50%;
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group.Hardcover, .centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group.Paperback {
  --color: 198, 100%, 20%;
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group.Audiobook {
  --color: 144, 100%, 20%;
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group:nth-child(1) .more-stores {
  z-index: 10;
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group:nth-child(2) .more-stores {
  z-index: 9;
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group:nth-child(3) .more-stores {
  z-index: 8;
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group:nth-child(4) .more-stores {
  z-index: 7;
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group:nth-child(5) .more-stores {
  z-index: 6;
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group .featured-buy-container {
  font-family: var(--product-font, inherit);
  display: flex;
  flex-flow: row nowrap;
  position: relative;
  border: none;
  border: solid 1px hsl(var(--color));
  border-radius: 8px;
  padding: 0.375rem 0.625rem;
  height: fit-content;
  background-color: hsla(var(--color), 0.1);
  transition: background-color 150ms;
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group .featured-buy-container:hover, .centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group .featured-buy-container:focus-within {
  background-color: hsla(var(--color), 0.3);
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group .featured-buy-container .featured-buy-button {
  z-index: 2;
  padding: 0;
  line-height: 1;
  appearance: none;
  cursor: pointer;
  color: inherit;
  text-decoration: none;
  border: none;
  background: none;
  flex-grow: 1;
  display: flex;
  flex-flow: row nowrap;
  column-gap: 0.5rem;
  align-items: stretch;
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group .featured-buy-container .featured-buy-button .store-icon {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 10px;
  object-fit: cover;
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group .featured-buy-container .featured-buy-button .store-icon.quailsong {
  object-position: left;
  background-color: white;
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group .featured-buy-container .featured-buy-button .details-stack {
  display: flex;
  flex-flow: column nowrap;
  align-items: flex-start;
  justify-content: space-between;
  margin-right: auto;
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group .featured-buy-container .featured-buy-button .store-name {
  padding-top: 0.15rem;
  font-weight: 500;
  font-size: 1.1rem;
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group .featured-buy-container .featured-buy-button .price {
  font-size: 1rem;
  font-weight: 700;
  margin-left: 1rem;
  padding-top: 0.2rem;
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group .featured-buy-container .featured-buy-button .attributes {
  font-size: 0.75rem;
  font-weight: 500;
  padding-bottom: 0.2rem;
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group .featured-buy-container .featured-buy-button .hasDrm {
  font-weight: 700;
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group .featured-buy-container .expand.the-other-stores {
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  appearance: none;
  border: none;
  margin: 0;
  padding: 0;
  background: none;
  height: auto;
  min-width: 2.5rem;
  margin-left: 0.5rem;
  color: inherit;
  border-radius: 5px;
  cursor: pointer;
  background-color: rgba(128, 128, 128, 0.1);
  transition: background-color 150ms;
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group .featured-buy-container .expand.the-other-stores:hover {
  background-color: rgba(128, 128, 128, 0.3);
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group .featured-buy-container .expand.the-other-stores:focus-within {
  background-color: rgba(128, 128, 128, 0.4);
  outline: 1px auto;
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group .featured-buy-container .expand.the-other-stores:active > svg.qsicon.chevron-down {
  transform: translateY(2px);
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group .featured-buy-container .expand.the-other-stores.expanded > svg.qsicon.chevron-down {
  transform: rotate(180deg);
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group .featured-buy-container .expand.the-other-stores.expanded:active > svg.qsicon.chevron-down {
  transform: translateY(2px) rotate(180deg);
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group .featured-buy-container .expand.the-other-stores .qsicon.chevron-down {
  height: 1.5rem;
  width: 1.5rem;
  transition: transform 150ms;
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group .more-stores {
  position: absolute;
  z-index: 5;
  top: 100%;
  left: 8px;
  right: 8px;
  overflow: clip;
  max-height: 0;
  display: flex;
  flex-direction: column;
  padding: 0;
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border-radius: 0 0 8px 8px;
  border: solid 0 hsl(var(--color));
  transition: max-height 350ms, border-width 350ms;
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group .more-stores::before {
  content: "";
  display: block;
  position: absolute;
  inset: 0;
  background-color: currentColor;
  filter: invert(1);
  opacity: 0.8;
  z-index: 1;
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group .more-stores.expanded {
  max-height: 600px;
  border: solid 1px hsl(var(--color));
  border-top: none;
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group .more-stores > li {
  display: block;
  position: relative;
  z-index: 2;
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group .more-stores > li.label {
  font-weight: 600;
  font-size: 1rem;
  padding: 0.5rem;
  padding-bottom: 0;
  display: flex;
  align-items: center;
  gap: 1rem;
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group .more-stores > li.label > .sep {
  flex-grow: 1;
  background: rgb(128, 128, 128);
  height: 2px;
  display: block;
  border-radius: 2px;
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group .more-stores > li.store {
  background-color: hsla(var(--color), 0.1);
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group .more-stores > li.store:nth-child(2n) > .store-link {
  background-color: hsla(var(--color), 0.15);
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group .more-stores > li.store .store-link {
  appearance: none;
  font: inherit;
  cursor: pointer;
  border: none;
  background-color: transparent;
  width: 100%;
  display: flex;
  align-items: center;
  color: inherit;
  text-decoration: none;
  padding: 0.2rem 0.4rem;
  gap: 0.5rem;
  font-size: 1.1rem;
  transition: background-color 50ms;
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group .more-stores > li.store .store-link:is(:hover, :focus) {
  outline: none;
  background-color: hsla(var(--color), 0.4);
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group .more-stores > li.store .store-link .store-icon {
  width: 2rem;
  height: 2rem;
  border-radius: 8px;
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group .more-stores > li.store .store-link .valign {
  display: flex;
  flex-direction: column;
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group .more-stores > li.store .store-link .valign .store-name {
  font-size: 0.9rem;
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group .more-stores > li.store .store-link .valign .product-type {
  font-size: 0.7rem;
  font-weight: 500;
}
.centerColumn.productInfoLayout .main-align .product-information .featured-bookstores .format-group .more-stores > li.store .store-link .price {
  margin-left: auto;
  align-self: stretch;
  font-size: 0.9rem;
  padding: 0.1rem 0;
}
.centerColumn.productInfoLayout .main-align .product-information .reviews-block {
  display: flex;
  flex-flow: column nowrap;
  align-items: start;
  justify-content: space-between;
  gap: 0.25rem;
  margin-top: 1rem;
  max-width: 100%;
}
.centerColumn.productInfoLayout .main-align .product-information .reviews-block h3 {
  padding-inline-start: 0.4rem;
}
.centerColumn.productInfoLayout .main-align .product-information .reviews-block .reviews {
  width: 30rem;
  max-width: 100%;
  padding-bottom: 1rem;
}
.centerColumn.productInfoLayout .main-align .product-information .reviews-block .reviews swiper-slide:is(:not(.swiper-slide-visible), .swiper-slide-prev, .swiper-slide-next) .review {
  opacity: 0;
  pointer-events: none;
}
.centerColumn.productInfoLayout .main-align .product-information .reviews-block .reviews swiper-slide .swiper-slide-shadow {
  display: none;
}
.centerColumn.productInfoLayout .main-align .product-information .reviews-block .reviews .review {
  width: 30rem;
  max-height: 12rem;
  max-width: 100%;
  transition: opacity 250ms;
}
.centerColumn.productInfoLayout .main-align .product-information .reviews-block .reviews .review:first-child:last-child {
  max-width: 100%;
}
.centerColumn.productInfoLayout .main-align .product-information .reviews-block .reviews .review.featured {
  border-color: var(--brand-color);
  position: relative;
  overflow: hidden;
  background-color: transparent;
}
.centerColumn.productInfoLayout .main-align .product-information .reviews-block .reviews .review.featured::before {
  content: "";
  display: block;
  position: absolute;
  inset: 0;
  background-color: var(--brand-color);
  opacity: 0.1;
}
.centerColumn.productInfoLayout .main-align .product-information .reviews-block .buttonsRow {
  justify-content: start;
  gap: 0.5rem;
}
.centerColumn.productInfoLayout .main-align .product-information #cartAdd legend {
  font-weight: 600;
  margin-top: 1rem;
}
.centerColumn.productInfoLayout .main-align .product-information #cartAdd ul {
  margin-bottom: 1rem;
}
.centerColumn.productInfoLayout .main-align .product-information #cartAdd .buy-align {
  margin-top: 0.7rem;
  display: flex;
  flex-flow: row wrap;
  align-items: end;
  gap: 0.5rem;
}
.centerColumn.productInfoLayout .main-align .product-information #cartAdd .buy-align .newtext {
  padding-block: 0.4rem;
  border-color: rgba(128, 128, 128, 0.4);
}
.centerColumn.productInfoLayout .main-align .product-information hr {
  margin-block: 1.1rem;
  color: rgba(128, 128, 128, 0.2);
  border: 0;
  border-top: solid 1px currentColor;
  width: min(81ch, 100%);
}
.centerColumn.productInfoLayout .main-align .linkButton {
  background-color: rgba(128, 128, 128, 0.1);
  border-color: rgba(128, 128, 128, 0.4);
  border-width: 1px;
}
.centerColumn.productInfoLayout .swiper-display {
  width: 100%;
  padding-bottom: 2rem;
  padding-top: 0.7rem;
  box-shadow: inset 0 5px 5px -5px rgba(0, 0, 0, 0.4), inset 0 -8px 8px -8px rgba(0, 0, 0, 0.4);
  position: relative;
  display: flex;
  flex-flow: column nowrap;
  align-items: stretch;
}
.centerColumn.productInfoLayout .swiper-display h3 {
  align-self: center;
  max-width: max-content;
}
.centerColumn.productInfoLayout .swiper-display h3 .swiper-navbutton {
  background-color: rgba(128, 128, 128, 0.1);
  border-color: rgba(128, 128, 128, 0.2);
  color: inherit;
}
.centerColumn.productInfoLayout .swiper-display::before {
  content: "";
  display: block;
  background-color: currentColor;
  filter: invert(1);
  position: absolute;
  inset: 0;
  z-index: 1;
  opacity: 0.4;
}
.centerColumn.productInfoLayout#askAQuestion .newtext {
  background-color: rgba(128, 128, 128, 0.1);
  border-color: rgba(128, 128, 128, 0.4);
}
.centerColumn.productInfoLayout#askAQuestion .items-grid {
  display: grid;
  grid-template-columns: auto auto;
  grid-template-rows: auto auto;
  gap: 0.5rem;
}
@media (max-width: 80ch) {
  .centerColumn.productInfoLayout#askAQuestion .items-grid {
    display: flex;
    flex-flow: row wrap;
  }
}
.centerColumn.productInfoLayout#askAQuestion textarea {
  max-width: min(100%, 70ch);
  width: 70ch;
}
.centerColumn.productInfoLayout#askAQuestion .buttonsRow {
  max-width: 100%;
  margin-top: 0.5rem;
}
.centerColumn.productInfoLayout#askAQuestion fieldset {
  background-color: rgba(128, 128, 128, 0.1);
  border: solid 1px rgba(128, 128, 128, 0.1);
  border-radius: 5px;
  width: fit-content;
  max-width: min(100%, 80ch);
  min-width: 0;
  padding: 0.2rem 0.5rem;
}
.centerColumn.productInfoLayout.productGeneral .main-align {
  justify-content: center;
}
.centerColumn.productInfoLayout.productGeneral .main-align .product-information .subtitle .product-subtitle {
  font-style: italic;
}

#productAttributes .attrib-blocks {
  display: flex;
  flex-flow: row wrap;
  gap: 1rem 2rem;
  min-width: 0;
  margin-top: 0.5rem;
}
#productAttributes .attribBlock .tight-halign {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  gap: 0.5ch;
  margin-bottom: 0.2rem;
  font-weight: 600;
}
#productAttributes .attribBlock .tight-halign .newtext {
  padding: 0.2rem 0rem;
  text-align: right;
  opacity: 1;
  color: inherit;
  font-family: inherit;
  background: none;
  border: none;
}
#productAttributes .attribBlock textarea.newtext {
  max-width: min(50ch, 80vw);
}
#productAttributes .attribBlock .attSelectableGroup {
  background-color: white;
  color: black;
  border: solid 1px var(--elevation-1);
  display: flex;
  flex-flow: column nowrap;
  align-items: start;
  justify-content: start;
  border-radius: 0.5rem;
  gap: 0.6rem;
  padding: 0.8rem;
  max-width: min(100%, 18rem);
}
#productAttributes .attribBlock .attSelectableGroup label.fakeBox {
  padding-right: 2rem;
}
#productAttributes .attribBlock .attSelectableGroup.style-1 label.fakeBox {
  align-self: stretch;
  padding-right: 0;
}
#productAttributes .attribBlock .attSelectableGroup.style-1 label.fakeBox img {
  height: 2rem;
  width: auto;
  border-radius: 4px;
  margin-left: 1rem;
}
#productAttributes .attribBlock .attSelectableGroup.style-2 label.fakeBox:not(:first-of-type) {
  margin-top: 1rem;
}
#productAttributes .attribBlock .attSelectableGroup.style-2 .attrib-image-label img {
  height: 3rem;
  width: auto;
  border-radius: 4px;
}
#productAttributes .attribBlock .attSelectableGroup.style-3, #productAttributes .attribBlock .attSelectableGroup.style-4, #productAttributes .attribBlock .attSelectableGroup.style-5 {
  display: none;
}
#productAttributes .attribBlock .attribImages {
  margin-top: 0.5rem;
  display: flex;
  flex-flow: row wrap;
  gap: 0.5rem;
  border: solid 1px var(--elevation-1);
  border-radius: 4px;
  background: white;
  color: black;
  padding: 0.25rem;
  max-width: 100%;
}
#productAttributes .attribBlock .attribImages .attribImg {
  display: flex;
  flex-flow: column nowrap;
  align-items: center;
  padding: 0.5rem;
}
#productAttributes .attribBlock .attribImages .attribImg:is(label) {
  cursor: pointer;
}
#productAttributes .attribBlock .attribImages .attribImg img {
  border-radius: 4px;
  max-height: 250px;
  width: auto;
  margin-bottom: 0.5rem;
}
#productAttributes .attribBlock .attribImages .attribImg span {
  text-align: center;
  font-weight: 600;
}
#productAttributes .attribBlock .attribImages.style-3 .attribImg span, #productAttributes .attribBlock .attribImages.style-4 .attribImg span, #productAttributes .attribBlock .attribImages.style-5 .attribImg span {
  font-weight: 500;
  text-wrap-style: balance;
}
#productAttributes .attribBlock .attribImages.style-3 .attribImg, #productAttributes .attribBlock .attribImages.style-4 .attribImg, #productAttributes .attribBlock .attribImages.style-5 .attribImg {
  min-width: 5rem;
  border: solid 2px var(--elevation-1);
  border-radius: 4px;
  align-self: stretch;
  flex-grow: 1;
}
#productAttributes .attribBlock .attribImages.style-3 .attribImg .spacer, #productAttributes .attribBlock .attribImages.style-4 .attribImg .spacer, #productAttributes .attribBlock .attribImages.style-5 .attribImg .spacer {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
}
#productAttributes .attribBlock .attribImages.style-3 .attribImg .spacer .qsicon.checkmark, #productAttributes .attribBlock .attribImages.style-4 .attribImg .spacer .qsicon.checkmark, #productAttributes .attribBlock .attribImages.style-5 .attribImg .spacer .qsicon.checkmark {
  width: 2rem;
  height: 2rem;
}
#productAttributes .attribBlock .attribImages.style-3 input:checked + .attribImg, #productAttributes .attribBlock .attribImages.style-4 input:checked + .attribImg, #productAttributes .attribBlock .attribImages.style-5 input:checked + .attribImg {
  border-color: var(--accent-color);
  background-color: var(--elevation-05);
  color: var(--elevation-05-inverse);
}
#productAttributes .attribBlock .attribImages.style-3 input:checked + .attribImg span, #productAttributes .attribBlock .attribImages.style-4 input:checked + .attribImg span, #productAttributes .attribBlock .attribImages.style-5 input:checked + .attribImg span {
  font-weight: 700;
}

.swiper-display h3 {
  padding: 0.7rem 1.5rem;
  padding-top: 0;
  margin: 0;
  font-weight: 600;
  font-size: 1.4rem;
  line-height: 1.2;
  display: flex;
  align-items: end;
  justify-content: center;
  flex-flow: row wrap;
  gap: 0.2rem 0.5rem;
  position: relative;
  z-index: 2;
}
.swiper-display h3 .buttons {
  display: flex;
  flex-flow: row nowrap;
  align-items: end;
  gap: 0.2rem;
}
.swiper-display h3 .swiper-navbutton {
  opacity: 0;
  transition: opacity 150ms;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  padding: 0.6rem 0;
  border: none;
  border-radius: 0.1rem;
  background-color: var(--elevation-05);
  color: var(--elevation-05-inverse);
}
@media not (pointer: fine) {
  .swiper-display h3 .swiper-navbutton {
    display: none;
  }
}
.swiper-display h3 .swiper-navbutton.swiper-button-disabled {
  opacity: 0;
  pointer-events: none;
}
.swiper-display h3 .swiper-navbutton:hover {
  background-color: var(--elevation-1);
}
.swiper-display h3 .swiper-navbutton svg {
  height: 1rem;
}
.swiper-display swiper-container {
  display: flex;
}
.swiper-display swiper-container:not(:defined) {
  padding-left: 24px;
}
.swiper-display swiper-container:not(:defined) swiper-slide {
  margin-left: 24px;
}
.swiper-display swiper-container swiper-slide {
  height: 15rem;
  width: fit-content;
}
.swiper-display swiper-container swiper-slide .sw-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  height: 15rem;
  width: fit-content;
}
.swiper-display swiper-container swiper-slide .sw-item.disabled {
  box-sizing: border-box;
  border: solid 2px currentColor;
  position: relative;
  border-radius: 0.2rem;
  border-top-right-radius: 0.5rem;
  cursor: default;
  transform: scale(0.9);
}
.swiper-display swiper-container swiper-slide .sw-item.disabled span {
  position: absolute;
  inset: 0;
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  justify-content: center;
  z-index: 2;
  font-style: italic;
  font-size: 1.2rem;
  font-weight: 600;
}
.swiper-display swiper-container swiper-slide .sw-item.disabled img {
  opacity: 0.7;
  filter: blur(4px);
}
@media (prefers-reduced-motion: no-preference) {
  .swiper-display swiper-container swiper-slide .sw-item:not(.disabled) {
    transition: transform 150ms;
  }
  .swiper-display swiper-container swiper-slide .sw-item:not(.disabled) .price-off {
    transition: transform 150ms;
  }
  .swiper-display swiper-container swiper-slide .sw-item:not(.disabled):hover {
    transform: scale(0.95);
  }
  .swiper-display swiper-container swiper-slide .sw-item:not(.disabled):hover .price-off {
    transform: scale(1.05);
  }
  .swiper-display swiper-container swiper-slide .sw-item:not(.disabled):active {
    transform: scale(0.9);
  }
}
.swiper-display swiper-container swiper-slide .sw-item .price-off {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  background: #b00000;
  color: white;
  font-weight: 900;
  border-radius: 0.2rem;
  padding: 0.2rem 0.4rem 0.1rem;
  font-family: var(--font-ness);
  line-height: 1.1;
}
.swiper-display swiper-container swiper-slide .sw-item img {
  height: 15rem;
  border-radius: 0.2rem;
  border-top-right-radius: 0.5rem;
  transition: transform 150ms;
}
.swiper-display:is(:hover, :focus-within) h3 .swiper-navbutton {
  opacity: 1;
}
.swiper-display:is(:hover, :focus-within) h3 .swiper-navbutton.swiper-button-disabled {
  opacity: 0.5;
}

.reviewsLayout {
  display: flex;
  flex-flow: column nowrap;
  align-items: start;
  padding-block: 3vh;
  padding-inline: 4vw;
  gap: 2rem;
}
.reviewsLayout > form {
  display: contents;
}
.reviewsLayout .product-summary {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  grid-template-columns: auto auto;
  align-items: start;
  column-gap: 1rem;
  padding-right: 1rem;
}
.reviewsLayout .product-summary .productName {
  margin-top: 1rem;
  font-size: 2rem;
  line-height: 1.2;
  color: inherit;
  text-decoration: none;
}
.reviewsLayout .product-summary .authorContainer {
  font-size: 1rem;
  font-weight: inherit;
}
.reviewsLayout .product-summary .authorContainer .authorName {
  color: inherit;
}
.reviewsLayout .product-summary .linkButton {
  margin-bottom: 1rem;
}
.reviewsLayout .product-summary .productImage {
  grid-row: 1/-1;
  grid-column: 1;
  border-radius: 2px;
  line-height: 0;
  /* https://smoothshadows.com/#djEsMSw1LDAuMDcsMTYyLDMyLDAsI2ZmZmZmZiwjMDAwMDAwLCNmZmZmZmYsMw%3D%3D */
  box-shadow: 0px 1px 6px rgba(var(--image-shadow-rgb, 0, 0, 0), 0.01), 0px 5px 26px rgba(var(--image-shadow-rgb, 0, 0, 0), 0.03), 0px 12px 58px rgba(var(--image-shadow-rgb, 0, 0, 0), 0.04), 0px 20px 104px rgba(var(--image-shadow-rgb, 0, 0, 0), 0.06), 0px 32px 162px rgba(var(--image-shadow-rgb, 0, 0, 0), 0.07), 0 0 10px -5px black;
  background-color: grey;
}
.reviewsLayout .reviews {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(25rem, 100%), 1fr));
  grid-auto-rows: auto;
  width: 100%;
  gap: 1rem;
}
.reviewsLayout .review {
  color: inherit;
  min-width: min(100%, 25rem);
  max-width: unset;
}
.reviewsLayout .review:is(a):is(:hover, :focus) {
  background-color: rgba(128, 128, 128, 0.3);
}
.reviewsLayout .review.full {
  max-width: min(100%, 70ch);
}
.reviewsLayout .navSplitPagesLinks {
  display: flex;
  flex-flow: row wrap;
  align-items: center;
  gap: 1rem;
}
.reviewsLayout nav.pagination {
  background-color: rgba(128, 128, 128, 0.2);
  color: inherit;
  border-color: rgba(128, 128, 128, 0.3);
}
.reviewsLayout nav.pagination ul.pagination {
  min-width: 5rem;
  justify-content: center;
  --shadow-color: rgba(128, 128, 128, 0.8);
}
.reviewsLayout nav.pagination ul.pagination > li.current > span {
  background-color: rgba(128, 128, 128, 0.1);
  border: solid 1px rgba(128, 128, 128, 0.5);
}
.reviewsLayout .linkButton {
  color: inherit;
  background-color: rgba(128, 128, 128, 0.1);
  border-color: rgba(128, 128, 128, 0.4);
  border-width: 1px;
}
.reviewsLayout .buttonsRow {
  width: fit-content;
  gap: 1rem;
}

.productReaderLayout {
  padding: 0 !important;
  display: flex;
  flex-flow: column nowrap;
  align-items: stretch;
  background-color: var(--elevation-05);
}
.productReaderLayout header {
  position: sticky;
  top: 0;
  z-index: 3;
  background-color: var(--elevation-1-inverse);
  color: var(--elevation-1);
  display: grid;
  grid-template-rows: auto;
  grid-auto-columns: 1fr 1fr 1fr;
  grid-auto-flow: column dense;
  align-items: center;
  gap: 0.5rem;
  padding: 0.4rem max(0.8rem, (100% - 52rem) / 2);
  opacity: 1;
  pointer-events: none;
}
@media (max-width: 800px) {
  .productReaderLayout header {
    display: flex;
    flex-flow: row wrap;
    justify-content: space-between;
  }
  .productReaderLayout header h1, .productReaderLayout header .reader-buttons, .productReaderLayout header > .linkButton {
    margin-inline: auto;
  }
}
.productReaderLayout header h1, .productReaderLayout header .reader-buttons, .productReaderLayout header > .linkButton {
  pointer-events: auto;
}
.productReaderLayout header .linkButton {
  border-color: rgba(128, 128, 128, 0.3);
  background-color: rgba(128, 128, 128, 0.3);
  color: inherit;
}
.productReaderLayout header h1 {
  font-size: 1.2rem;
  justify-self: center;
}
.productReaderLayout header .reader-buttons {
  justify-self: end;
}
.productReaderLayout #table-of-contents {
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  z-index: 2;
  background-color: var(--elevation-1-inverse);
  color: var(--elevation-1);
  display: flex;
  flex-flow: column nowrap;
  align-items: start;
  padding: 2rem 2rem;
  padding-top: 4rem;
  width: 20rem;
  max-width: 80%;
  overflow-y: scroll;
  display: flex;
  transform: none;
  transition: transform 150ms, visibility 150ms;
}
.productReaderLayout #table-of-contents.out {
  visibility: hidden;
  transform: translateX(-100%);
}
.productReaderLayout #table-of-contents hr {
  width: 100%;
  margin-block: 1rem;
}
.productReaderLayout #table-of-contents ul {
  padding: 0;
}
.productReaderLayout #table-of-contents ul li {
  display: block;
}
.productReaderLayout #table-of-contents ul li button {
  display: inline;
  background: none;
  text-decoration: underline currentColor;
  border: none;
  color: inherit;
  cursor: pointer;
}
.productReaderLayout #table-of-contents ul li.indent-end {
  height: 1rem;
}
.productReaderLayout #table-of-contents ul li.active button {
  font-weight: 600;
}
.productReaderLayout .reader-container {
  width: 100%;
  display: flex;
  flex-flow: column nowrap;
  align-items: center;
}
.productReaderLayout .reader-container #reader-target {
  width: 90ch;
  max-width: 100%;
}
.productReaderLayout .reader-container #reader-target .epub-container {
  padding: 2rem;
  scrollbar-color: black transparent;
}
.productReaderLayout .reader-container #reader-target .epub-container .epub-view {
  background-color: white;
  margin-top: 2rem;
  padding-block: 2rem;
  box-sizing: content-box;
}
.productReaderLayout .reader-container #reader-target .epub-container .epub-view:first-child {
  margin-top: 5rem;
}

#bookcleanerBody main.centerColumnWrapper {
  flex-flow: row nowrap;
  justify-content: center;
}
#bookcleanerBody main.centerColumnWrapper .bookCleanerLayout {
  gap: 1rem;
}
#bookcleanerBody main.centerColumnWrapper .bookCleanerLayout h1 {
  margin-bottom: 0;
}
#bookcleanerBody main.centerColumnWrapper .bookCleanerLayout form .fileInputGroup {
  display: flex;
  flex-flow: column nowrap;
  width: 100%;
  max-width: max-content;
}
#bookcleanerBody main.centerColumnWrapper .bookCleanerLayout form .fileInputGroup span {
  font-size: 1.3rem;
  font-weight: 700;
  padding-left: 0;
}
#bookcleanerBody main.centerColumnWrapper .bookCleanerLayout form .fileInputGroup .inputHolder {
  border: solid 1px var(--elevation-2);
  background: var(--elevation-03);
  padding: 0.2rem 0.5rem;
  border-radius: 0.2rem;
  cursor: pointer;
}
#bookcleanerBody main.centerColumnWrapper .bookCleanerLayout form .fileInputGroup .inputHolder input[type=file] {
  cursor: pointer;
  font-family: var(--font-code);
  max-width: max-content;
  width: 100%;
}
#bookcleanerBody main.centerColumnWrapper .bookCleanerLayout .replacementGroups {
  display: flex;
  flex-flow: row wrap;
  gap: 1rem;
  max-width: 90ch;
  padding-bottom: 1rem;
  border-bottom: solid 1px var(--brand-color);
}
#bookcleanerBody main.centerColumnWrapper .bookCleanerLayout .replacementGroups input.cleanerBox {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  left: auto;
}
#bookcleanerBody main.centerColumnWrapper .bookCleanerLayout .replacementGroups input.cleanerBox:checked + label.cleanerBox {
  border-color: var(--brand-color);
  background-color: var(--elevation-03);
  opacity: 1;
}
#bookcleanerBody main.centerColumnWrapper .bookCleanerLayout .replacementGroups label.cleanerBox {
  flex-grow: 1;
  border: solid 1px var(--elevation-2);
  background-color: var(--elevation-1);
  opacity: 0.5;
  transition: opacity 150ms, border-color 150ms, background-color 150ms;
  user-select: none;
  cursor: pointer;
  border-radius: 0.5rem;
  display: flex;
  flex-flow: column nowrap;
  padding: 0.5rem;
}
#bookcleanerBody main.centerColumnWrapper .bookCleanerLayout .replacementGroups label.cleanerBox legend {
  font-size: 1.1rem;
  font-weight: 600;
  padding-bottom: 0.3rem;
  border-bottom: solid var(--brand-color) 1px;
}
#bookcleanerBody main.centerColumnWrapper .bookCleanerLayout .replacementGroups label.cleanerBox legend .censor {
  display: inline-block;
  border-radius: 0.2rem;
  height: 0.5em;
  line-height: 0.7;
  color: transparent;
  background-image: linear-gradient(var(--body-text, black) 1px, transparent 1px, transparent 2px);
  background-repeat: repeat-y;
  background-size: 100% 2px;
  background-position: center;
  opacity: 0.9;
  transform: translateY(0.14em);
}
#bookcleanerBody main.centerColumnWrapper .bookCleanerLayout .replacementGroups label.cleanerBox ul {
  display: flex;
  flex-flow: row wrap;
  gap: 0.5rem;
  padding: 0;
  padding-top: 0.5rem;
}
#bookcleanerBody main.centerColumnWrapper .bookCleanerLayout .replacementGroups label.cleanerBox ul li {
  display: flex;
  flex-flow: column nowrap;
}
#bookcleanerBody main.centerColumnWrapper .bookCleanerLayout .replacementGroups label.cleanerBox ul li label {
  font-size: 0.9rem;
}
#bookcleanerBody main.centerColumnWrapper .bookCleanerLayout .replacementGroups label.cleanerBox ul li input {
  max-width: 15ch;
  border-radius: 0.3rem;
  border: solid 1px var(--elevation-2);
}
#bookcleanerBody main.centerColumnWrapper .bookCleanerLayout .buttonsRow {
  padding-top: 0;
  gap: 0.5rem 1rem;
}
#bookcleanerBody main.centerColumnWrapper .bookCleanerLayout .cleanerReport {
  padding: 1rem;
  border-radius: 0.5rem;
  width: 100%;
  color: var(--elevation-1-inverse);
  background-color: var(--elevation-1);
  box-shadow: 0 10px 32px 0 hsla(194, 100%, 22%, 0.2);
  border: solid 2px var(--elevation-2);
}
#bookcleanerBody main.centerColumnWrapper .bookCleanerLayout .cleanerReport .cleanerBook {
  pointer-events: auto;
  cursor: default;
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  align-self: stretch;
  margin-bottom: 1rem;
}
#bookcleanerBody main.centerColumnWrapper .bookCleanerLayout .cleanerReport .cleanerBook .detailsFlex {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  flex: 1 0 0;
  align-self: stretch;
}
#bookcleanerBody main.centerColumnWrapper .bookCleanerLayout .cleanerReport .cleanerBook .image {
  width: 6.875rem;
  height: 10.3125rem;
  background: lightgray 50%/cover no-repeat;
  border-radius: 0.1rem;
}
#bookcleanerBody main.centerColumnWrapper .bookCleanerLayout .cleanerReport .cleanerBook .productTitle {
  color: inherit;
  font-size: 1.75rem;
  font-weight: 600;
  line-height: 1.1;
}
#bookcleanerBody main.centerColumnWrapper .bookCleanerLayout .cleanerReport .cleanerBook .subtitle {
  color: inherit;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.1;
  margin-bottom: 0.2rem;
}
#bookcleanerBody main.centerColumnWrapper .bookCleanerLayout .cleanerReport .cleanerBook .description {
  overflow: hidden;
  text-overflow: ellipsis;
  font-weight: 400;
  max-height: 10rem;
}
#bookcleanerBody main.centerColumnWrapper .bookCleanerLayout .cleanerReport .replacements {
  display: flex;
  flex-flow: row wrap;
  gap: 1rem;
  justify-content: space-between;
  align-items: stretch;
}
#bookcleanerBody main.centerColumnWrapper .bookCleanerLayout .cleanerReport .replacements .replacement {
  flex-grow: 1;
  font-family: var(--font-ness);
  display: flex;
  flex-flow: column nowrap;
  border-radius: 0.5rem;
  background-color: var(--elevation-03);
  overflow: clip;
}
#bookcleanerBody main.centerColumnWrapper .bookCleanerLayout .cleanerReport .replacements .replacement.disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
#bookcleanerBody main.centerColumnWrapper .bookCleanerLayout .cleanerReport .replacements .replacement.disabled * {
  cursor: not-allowed;
}
#bookcleanerBody main.centerColumnWrapper .bookCleanerLayout .cleanerReport .replacements .replacement .mainLabel {
  background-color: var(--elevation-05);
  padding: 0.5rem 1rem;
}
#bookcleanerBody main.centerColumnWrapper .bookCleanerLayout .cleanerReport .replacements .replacement .fields {
  display: flex;
  flex-grow: 1;
  flex-flow: column nowrap;
  justify-content: center;
  padding: 0.2rem 1rem;
  padding-bottom: 0.5rem;
}
#bookcleanerBody main.centerColumnWrapper .bookCleanerLayout .linkButton.back {
  padding: 0.5rem 1rem;
  font-weight: 700;
}
#bookcleanerBody main.centerColumnWrapper .bookCleanerLayout .linkButton.download {
  --hoverdist: 0;
}
