/**
 * 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 */
.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;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical; }
  .result .priceFlex {
    font-size: 1.2rem;
    font-weight: 500;
    color: inherit;
    text-decoration: none; }
    .result .priceFlex .icon {
      margin-top: 0.2rem;
      width: 1.5rem;
      height: 1.5rem;
      color: var(--accent-color); }

.addressCard {
  display: flex;
  flex-flow: column nowrap;
  border-radius: 1rem;
  background-color: var(--elevation-1);
  color: var(--elevation-1-inverse);
  width: 18rem;
  overflow: clip; }
  .addressCard address {
    padding: 0.5rem 1rem;
    font-style: normal;
    font-family: var(--font-code); }
  .addressCard ul.addressButtons {
    display: flex;
    flex-flow: row nowrap;
    justify-content: stretch;
    padding: 0;
    border-top: solid 1px var(--elevation-2); }
    .addressCard ul.addressButtons li {
      display: block;
      flex-grow: 1; }
      .addressCard ul.addressButtons li a {
        display: flex;
        flex-flow: row nowrap;
        justify-content: center;
        align-items: center;
        gap: 0.5rem;
        font-weight: 500;
        text-decoration: none;
        padding: 0.5rem 1rem;
        transition: background-color 100ms; }
        .addressCard ul.addressButtons li a svg.icon {
          width: 1.1rem;
          height: 1.1rem;
          margin-left: -0.5rem; }
        .addressCard ul.addressButtons li a.edit {
          color: #0257c4;
          background-color: var(--elevation-1);
          border-right: solid 1px var(--elevation-2); }
        .addressCard ul.addressButtons li a.delete {
          color: #950202;
          background-color: var(--elevation-1); }
        .addressCard ul.addressButtons li a:hover {
          background-color: var(--elevation-2); }

.quickSearchPopupContainer {
  position: absolute;
  top: 110%;
  z-index: 5;
  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; }
  .quickSearchPopup .spacer {
    width: 4rem;
    flex-grow: 0;
    flex-shrink: 100; }
  .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;
    font-weight: 600;
    line-height: 1.1;
    margin-bottom: 0.2rem; }
  .quickSearchPopup .description {
    overflow: hidden;
    text-overflow: ellipsis;
    font-weight: 400;
    max-height: 6rem;
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical; }
  .quickSearchPopup .priceFlex {
    font-size: 1.2rem;
    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; }

.paginationContainer label {
  display: block;
  text-align: center; }

nav.pagination {
  display: flex;
  flex-flow: row nowrap;
  align-items: stretch;
  justify-content: stretch; }

ul.pagination {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 0.4rem 0;
  background-color: var(--elevation-03);
  color: var(--elevation-05-inverse);
  border-radius: 0.5rem; }
  ul.pagination .pagination-previous.disabled,
  ul.pagination .pagination-next.disabled {
    cursor: not-allowed;
    opacity: 0.5; }
  ul.pagination .pagination-previous {
    --hover-dist: -0.2rem; }
    ul.pagination .pagination-previous a {
      padding-left: 0.3rem; }
  ul.pagination .pagination-next {
    --hover-dist: 0.2rem; }
    ul.pagination .pagination-next a {
      padding-right: 0.3rem; }
  ul.pagination > li {
    display: flex;
    font-size: 1.1rem;
    font-weight: 500; }
    ul.pagination > li > a {
      display: flex;
      flex-flow: row nowrap;
      align-items: center;
      color: inherit;
      text-decoration: none;
      line-height: 1;
      border-radius: 0.5rem;
      padding: 0.2rem 1rem; }
      ul.pagination > li > a > svg {
        width: 2rem;
        height: 2rem;
        padding-top: 2px;
        transition: transform 250ms; }
    ul.pagination > li.current > span {
      cursor: default;
      background-color: var(--elevation-1-inverse);
      color: var(--elevation-1); }
    ul.pagination > li.number > a,
    ul.pagination > li.number > span {
      display: flex;
      align-items: center;
      justify-content: center;
      width: max-content;
      min-width: 2rem;
      height: 2rem;
      border-radius: 999rem;
      transition: background-color 150ms; }
    ul.pagination > li.number > a:focus-visible, ul.pagination > li.number > a:hover {
      background-color: rgba(128, 128, 128, 0.2); }
    ul.pagination > li.pagination-previous:not(.disabled) > a:hover > svg, ul.pagination > li.pagination-previous:not(.disabled) > a:focus-visible > svg, ul.pagination > li.pagination-next:not(.disabled) > a:hover > svg, ul.pagination > li.pagination-next:not(.disabled) > a:focus-visible > svg {
      transform: translateX(var(--hover-dist)); }

.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.icon {
  height: 1.25rem;
  width: 1.25rem; }

.review {
  display: flex;
  flex-flow: column nowrap;
  border-radius: 0.5rem;
  background-color: hsla(0, 0%, 50%, 10%);
  padding: 0.7rem 1rem;
  transition: background-color 150ms; }
  .review.featuredReview {
    max-width: 35rem; }
  .review .reviewAttribution {
    display: flex;
    flex-flow: row wrap;
    align-items: center;
    gap: 0 0.8rem; }
    .review .reviewAttribution .sep {
      content: "";
      display: block;
      width: 0.3rem;
      height: 0.3rem;
      background-color: currentColor;
      opacity: 0.3;
      border-radius: 100rem; }
    .review .reviewAttribution .reviewAuthor {
      font-size: 1.2rem;
      font-weight: 600; }
    .review .reviewAttribution .stars {
      display: flex;
      flex-flow: row nowrap;
      align-items: center; }
      .review .reviewAttribution .stars svg {
        width: 1rem;
        height: 1rem; }
      .review .reviewAttribution .stars .full {
        filter: drop-shadow(0 0 3px currentColor); }
      .review .reviewAttribution .stars.editable input:checked ~ .starLabel svg, .review .reviewAttribution .stars.editable:not(.clicked) .starLabel svg {
        fill: transparent;
        filter: none; }
      .review .reviewAttribution .stars.editable .starLabel svg {
        stroke: currentColor;
        fill: currentColor;
        filter: drop-shadow(0 0 3px currentColor); }
      .review .reviewAttribution .stars.editable input[type="radio"]:checked + .starLabel svg {
        stroke: currentColor;
        fill: currentColor;
        filter: drop-shadow(0 0 3px currentColor); }
    .review .reviewAttribution .reviewDate {
      font-family: var(--font-code);
      user-select: all; }
  .review .reviewContent {
    font-size: 1.05rem;
    white-space: pre-wrap; }
    .review .reviewContent.newtext {
      border-radius: 0.5rem;
      margin-top: 0.5rem;
      resize: vertical; }

.productsList {
  display: flex;
  flex-flow: column nowrap;
  width: 100%; }
  .productsList h2 {
    text-align: left;
    padding-bottom: 0.25rem; }
  .productsList ul.innerContent {
    padding: 0;
    display: flex;
    flex-flow: row wrap;
    justify-content: start;
    gap: 0.5rem; }
    .productsList ul.innerContent .productImage {
      height: 15rem;
      width: 10rem;
      border-radius: 0.25rem;
      border-top-right-radius: 0.5rem; }
    .productsList ul.innerContent .gridItem {
      /* TODO */
      display: block; }

#productListing {
  display: flex;
  flex-flow: column nowrap;
  gap: 1rem; }

/* #endregion scss_globals */
/* Global layout css */
.topBanner {
  width: 100%;
  padding: 1rem 2rem;
  font-size: 1.3rem;
  font-weight: 600;
  background-color: var(--topbanner-notice-background);
  color: var(--topbanner-notice-color);
  display: flex;
  flex-flow: row wrap;
  align-items: center;
  /* #region boring banner colors */
  /* #endregion boring banner colors */ }
  .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; }

#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; }
  #navMainWrapper .logoWrapper {
    justify-self: start;
    text-decoration: none;
    display: flex;
    align-items: center;
    width: max-content; }
    #navMainWrapper .logoWrapper span {
      color: var(--brand-color);
      font-family: var(--font-brand);
      font-size: 2rem;
      transform: translateY(2px); }
    #navMainWrapper .logoWrapper .logoImg {
      height: 3rem;
      width: unset; }
    @media (max-width: 31.25rem) {
      #navMainWrapper .logoWrapper img.logoImg {
        height: 2rem;
        width: unset; }
      #navMainWrapper .logoWrapper span {
        font-weight: 700;
        font-size: 1.1rem;
        transform: translateY(2px); } }
  #navMainWrapper .quick_find_header {
    margin: 0 auto;
    display: flex;
    align-items: stretch;
    width: max(10ch, 80%); }
    #navMainWrapper .quick_find_header:focus-within {
      outline: var(--searchbar-textcolor) solid 2px;
      border-radius: 0.4rem; }
    #navMainWrapper .quick_find_header input[type="text"],
    #navMainWrapper .quick_find_header button {
      border: none;
      border-radius: 0.4rem;
      padding: 0.4rem 1rem;
      background-color: var(--searchbar-background);
      color: var(--searchbar-textcolor); }
    #navMainWrapper .quick_find_header input[type="text"] {
      border-top-right-radius: 0;
      border-bottom-right-radius: 0;
      padding-right: 0.3rem;
      width: 100%; }
      #navMainWrapper .quick_find_header input[type="text"]:focus {
        outline: none; }
    #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; }
      #navMainWrapper .quick_find_header button:focus, #navMainWrapper .quick_find_header button:hover {
        background-color: var(--searchbar-textcolor);
        color: var(--searchbar-background);
        outline: none; }
      #navMainWrapper .quick_find_header button svg {
        width: 1.5rem;
        height: 1.5rem; }
  #navMainWrapper .navigationLinks {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-self: end;
    grid-column: 3;
    font-size: 1.1rem;
    padding: 0 1rem; }
    #navMainWrapper .navigationLinks li {
      display: block;
      padding-right: 1rem; }
      #navMainWrapper .navigationLinks li a {
        color: var(--navbar-link-color);
        text-decoration: underline; }
        #navMainWrapper .navigationLinks li a .headerIcon {
          height: 1.8rem;
          fill: currentColor; }
  @media (max-width: 75rem) {
    #navMainWrapper {
      grid-template-columns: auto 1fr auto; } }
  @media (max-width: 50rem) {
    #navMainWrapper {
      display: flex;
      flex-flow: row wrap;
      justify-content: space-between;
      row-gap: 0.5rem;
      height: unset; }
      #navMainWrapper .logoWrapper {
        order: 1; }
      #navMainWrapper form.quick_find_header {
        order: 3;
        width: 100%;
        justify-self: stretch; }
      #navMainWrapper ul.navigationLinks {
        order: 2;
        justify-self: end;
        padding: 0; }
        #navMainWrapper ul.navigationLinks li {
          padding-right: 0.5rem; } }

.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); }

/* #region includes/languages/english/html_includes/define_main_page.php */
#indexDefault .indexHeroContainer #heroSwiper {
  display: flex; }
  #indexDefault .indexHeroContainer #heroSwiper:not(:defined) {
    overflow-x: scroll; }
    #indexDefault .indexHeroContainer #heroSwiper:not(:defined) swiper-slide {
      width: fit-content; }
      #indexDefault .indexHeroContainer #heroSwiper:not(:defined) swiper-slide .productDescription {
        max-height: 7rem; }
  #indexDefault .indexHeroContainer #heroSwiper::part(button-next), #indexDefault .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); }
  #indexDefault .indexHeroContainer #heroSwiper::part(button-next) {
    right: 0.5rem;
    left: unset; }
  #indexDefault .indexHeroContainer #heroSwiper::part(button-prev) {
    right: 3.5rem;
    left: unset; }

#indexDefault .indexHeroContainer swiper-slide {
  align-self: stretch;
  height: auto;
  display: flex;
  flex-flow: row nowrap;
  align-items: stretch;
  justify-content: stretch;
  flex-shrink: 0;
  width: 100%; }

#indexDefault .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;
  display: flex;
  align-items: center;
  flex-direction: row;
  width: 100%;
  padding: 2rem 6rem 2rem 4rem;
  gap: 2rem; }
  #indexDefault .indexHeroContainer .indexHero .flexGroup {
    flex-grow: 1;
    max-width: 70ch;
    display: flex;
    flex-direction: column;
    align-items: flex-start; }
    #indexDefault .indexHeroContainer .indexHero .flexGroup .productName {
      font: inherit;
      text-decoration: none;
      font-weight: 700;
      font-size: 3rem;
      line-height: 1.1;
      color: inherit; }
    #indexDefault .indexHeroContainer .indexHero .flexGroup .horizontalAlign {
      display: flex;
      flex-flow: row wrap;
      align-items: center;
      gap: 0.5ch; }
      #indexDefault .indexHeroContainer .indexHero .flexGroup .horizontalAlign .seriesLink {
        color: inherit;
        font-size: 1rem;
        font-weight: 500;
        line-height: 1; }
      #indexDefault .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%; }
      #indexDefault .indexHeroContainer .indexHero .flexGroup .horizontalAlign .subtitle {
        color: inherit;
        font-size: 1rem;
        font-weight: 500;
        line-height: 1; }
    #indexDefault .indexHeroContainer .indexHero .flexGroup .productDescription {
      font-size: 1.2rem;
      padding-top: 1.2rem;
      max-height: 6rem;
      flex-shrink: 0;
      display: -webkit-box;
      -webkit-line-clamp: 3;
      -webkit-box-orient: vertical;
      overflow: hidden;
      text-overflow: ellipsis; }
    #indexDefault .indexHeroContainer .indexHero .flexGroup .horizontalAlign.bottom {
      padding-top: 0.7rem; }
    #indexDefault .indexHeroContainer .indexHero .flexGroup .linkButton.detailsLink {
      --button-bg: hsla(0, 0%, 50%, 10%);
      --focuscolor: hsla(0, 0%, 50%, 30%);
      color: var(--product-text-color, var(--body-text));
      border: solid 1px hsla(0, 0%, 50%, 30%);
      transition: background-color 150ms, border-color 150ms; }
      #indexDefault .indexHeroContainer .indexHero .flexGroup .linkButton.detailsLink:focus {
        border-color: var(--product-text-color, var(--body-text)); }
      #indexDefault .indexHeroContainer .indexHero .flexGroup .linkButton.detailsLink.readLink {
        --hoverdist: 0; }
  #indexDefault .indexHeroContainer .indexHero .productImageHolder {
    flex-shrink: 0;
    height: 20rem;
    display: flex;
    flex-direction: column; }
    #indexDefault .indexHeroContainer .indexHero .productImageHolder > a {
      display: contents; }
    #indexDefault .indexHeroContainer .indexHero .productImageHolder .productImage {
      border-radius: 10px;
      /* 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%; }

#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: -1.7rem; }

#indexDefault #indexDefaultMainContent:not(:empty) {
  padding: 2rem;
  font-size: 1.1rem; }

#indexDefault .bodySwiperContainer:is(:hover, :focus-within) h3 .swiper-navbutton {
  opacity: 1; }

#indexDefault .bodySwiperContainer h3 {
  padding: 0.2rem 0;
  margin: 2rem 1.5rem;
  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; }
  #indexDefault .bodySwiperContainer 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); }
    #indexDefault .bodySwiperContainer h3 .swiper-navbutton:hover {
      background-color: var(--elevation-1); }
    #indexDefault .bodySwiperContainer h3 .swiper-navbutton svg {
      height: 1rem; }

#indexDefault .bodySwiperContainer .bodySwipers:not(:defined) {
  padding-left: 24px;
  display: flex;
  overflow-x: scroll; }
  #indexDefault .bodySwiperContainer .bodySwipers:not(:defined) swiper-slide {
    flex-shrink: 0; }

#indexDefault .bodySwiperContainer .bodySwipers swiper-slide {
  height: 15rem;
  width: fit-content;
  margin-right: 24px; }
  #indexDefault .bodySwiperContainer .bodySwipers swiper-slide .swItem {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    height: 15rem;
    width: fit-content; }
    #indexDefault .bodySwiperContainer .bodySwipers swiper-slide .swItem img {
      height: 15rem;
      border-radius: 0.2rem;
      border-top-right-radius: 0.5rem;
      transition: transform 150ms; }
    #indexDefault .bodySwiperContainer .bodySwipers swiper-slide .swItem.series {
      display: grid;
      border-radius: 0.2rem;
      border-top-right-radius: 0.5rem;
      overflow: clip;
      align-items: stretch; }
      #indexDefault .bodySwiperContainer .bodySwipers swiper-slide .swItem.series.c4 {
        width: 10rem;
        grid-template: auto / auto; }
        #indexDefault .bodySwiperContainer .bodySwipers swiper-slide .swItem.series.c4 img:nth-child(2) {
          transform: translate(-1rem, -1.5rem) scale(var(--scale));
          z-index: 5; }
        #indexDefault .bodySwiperContainer .bodySwipers swiper-slide .swItem.series.c4 img:nth-child(3) {
          transform: translate(-0.8rem, -1rem) scale(var(--scale));
          z-index: 4;
          filter: brightness(0.8); }
        #indexDefault .bodySwiperContainer .bodySwipers swiper-slide .swItem.series.c4 img:nth-child(4) {
          transform: translate(-0.4rem, -0.5rem) scale(var(--scale));
          z-index: 3;
          filter: brightness(0.6); }
        #indexDefault .bodySwiperContainer .bodySwipers swiper-slide .swItem.series.c4 img:nth-child(5) {
          transform: scale(var(--scale));
          z-index: 2;
          filter: brightness(0.4); }
      #indexDefault .bodySwiperContainer .bodySwipers swiper-slide .swItem.series.c3 {
        width: 10rem;
        grid-template: auto / auto; }
        #indexDefault .bodySwiperContainer .bodySwipers swiper-slide .swItem.series.c3 img:nth-child(2) {
          transform: translate(-1rem, -1.5rem) scale(var(--scale));
          z-index: 5; }
        #indexDefault .bodySwiperContainer .bodySwipers swiper-slide .swItem.series.c3 img:nth-child(3) {
          transform: translate(-0.5rem, -0.75rem) scale(var(--scale));
          z-index: 4;
          filter: brightness(0.8); }
        #indexDefault .bodySwiperContainer .bodySwipers swiper-slide .swItem.series.c3 img:nth-child(4) {
          transform: scale(var(--scale));
          z-index: 3;
          filter: brightness(0.6); }
      #indexDefault .bodySwiperContainer .bodySwipers swiper-slide .swItem.series.c2 {
        width: 10rem;
        grid-template: auto / auto; }
        #indexDefault .bodySwiperContainer .bodySwipers swiper-slide .swItem.series.c2 img:nth-child(2) {
          transform: translate(-1rem, -1.5rem) scale(var(--scale));
          z-index: 5; }
        #indexDefault .bodySwiperContainer .bodySwipers swiper-slide .swItem.series.c2 img:nth-child(3) {
          transform: scale(var(--scale));
          z-index: 3;
          filter: brightness(0.6); }
      #indexDefault .bodySwiperContainer .bodySwipers swiper-slide .swItem.series.c1 {
        width: 10rem;
        grid-template: auto / auto; }
      #indexDefault .bodySwiperContainer .bodySwipers swiper-slide .swItem.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; }

@media (max-width: 62.5rem) {
  #mainWrapper #indexDefault .indexHero {
    padding: 2rem 3rem 2rem 2rem; }
    #mainWrapper #indexDefault .indexHero .productImageHolder {
      height: 15rem; }
    #mainWrapper #indexDefault .indexHero .flexGroup .productName {
      font-size: 2rem; } }

@media (max-width: 31.25rem) {
  #mainWrapper #indexDefault #heroSwiper::part(button-next), #mainWrapper #indexDefault #heroSwiper::part(button-prev) {
    display: none; }
  #mainWrapper #indexDefault .bodySwiperContainer h3 .swiper-navbutton {
    opacity: 1; }
  #mainWrapper #indexDefault .indexHero {
    min-height: unset;
    height: unset;
    flex-flow: column nowrap;
    justify-content: space-evenly;
    padding: 1rem; }
    #mainWrapper #indexDefault .indexHero .flexGroup {
      height: unset;
      min-height: unset;
      max-width: unset;
      flex-grow: 0; }
      #mainWrapper #indexDefault .indexHero .flexGroup .productName {
        font-size: 2rem; }
    #mainWrapper #indexDefault .indexHero .spacer.minGone {
      display: none; }
  #mainWrapper #indexDefault .productImageHolder {
    position: static;
    height: unset;
    width: 100%;
    margin: 0; }
    #mainWrapper #indexDefault .productImageHolder .productImage {
      margin: 0 auto;
      height: unset;
      max-height: 50vh;
      width: unset;
      max-width: 100%; } }

/* #endregion includes/languages/english/html_includes/define_main_page.php */
/* tmp_product_info_display.php */
#productGeneral {
  padding-bottom: 0; }
  #productGeneral .background {
    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; }
    #productGeneral .background .flexHero {
      min-height: calc(100vh - 4rem);
      display: flex;
      align-items: center;
      flex-direction: row;
      padding: 2rem;
      gap: 1rem; }
      #productGeneral .background .flexHero .flexGroup {
        flex-grow: 1;
        max-width: 70ch;
        min-height: 80vh;
        display: flex;
        flex-direction: column;
        align-items: flex-start; }
        #productGeneral .background .flexHero .flexGroup .productName {
          font-size: 3em;
          line-height: 1.1; }
          @media (max-width: 68.75rem) {
            #productGeneral .background .flexHero .flexGroup .productName {
              font-size: 2em; } }
          @media (max-width: 31.25rem) {
            #productGeneral .background .flexHero .flexGroup .productName {
              font-size: 2em; } }
        #productGeneral .background .flexHero .flexGroup .horizontalAlign {
          display: flex;
          flex-flow: row wrap;
          align-items: center;
          gap: 0.5ch;
          margin-bottom: 0.2rem; }
          #productGeneral .background .flexHero .flexGroup .horizontalAlign .seriesLink {
            color: inherit;
            font-size: 1rem;
            font-weight: 500;
            line-height: 1; }
          #productGeneral .background .flexHero .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%; }
          #productGeneral .background .flexHero .flexGroup .horizontalAlign .subtitle {
            color: inherit;
            font-size: 1rem;
            font-weight: 500;
            line-height: 1; }
          #productGeneral .background .flexHero .flexGroup .horizontalAlign .genre {
            color: inherit;
            opacity: 0.9;
            text-decoration-color: transparent;
            padding: 0.1rem 0.2rem;
            border-radius: 0.3rem;
            transition: text-decoration-color .5s; }
            #productGeneral .background .flexHero .flexGroup .horizontalAlign .genre:hover {
              text-decoration-color: currentColor; }
            @media (max-width: 31.25rem) {
              #productGeneral .background .flexHero .flexGroup .horizontalAlign .genre {
                font-weight: 600;
                line-height: 1.3; } }
        #productGeneral .background .flexHero .flexGroup .productDescription {
          font-size: 1.2em;
          padding: 1rem 0; }
          @media (max-width: 31.25rem) {
            #productGeneral .background .flexHero .flexGroup .productDescription {
              font-size: 1em; } }
        #productGeneral .background .flexHero .flexGroup .featuredBookstores {
          display: flex;
          flex-flow: row wrap;
          align-items: stretch;
          gap: 12px;
          width: 100%;
          padding-bottom: 2rem; }
          #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer {
            flex-grow: 1;
            position: relative;
            max-width: 22rem; }
            #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer.ebook {
              --color: 0, 0%, 50%; }
            #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer.physical {
              --color: 198, 100%, 20%; }
            #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer.audiobook {
              --color: 144, 100%, 20%; }
            #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer:nth-child(1) .storesAlt {
              z-index: 10; }
            #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer:nth-child(2) .storesAlt {
              z-index: 9; }
            #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer:nth-child(3) .storesAlt {
              z-index: 8; }
            #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer:nth-child(4) .storesAlt {
              z-index: 7; }
            #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer:nth-child(5) .storesAlt {
              z-index: 6; }
            #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer .bigBuyOption {
              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; }
              #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer .bigBuyOption::before {
                content: '';
                display: block;
                position: absolute;
                inset: 0;
                background-color: currentColor;
                filter: invert(1);
                opacity: 0.4;
                z-index: 1;
                border-radius: 8px; }
              #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer .bigBuyOption.quailsong .bigBuyIcon {
                object-position: left;
                background-color: white; }
              #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer .bigBuyOption:hover, #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer .bigBuyOption:focus-within {
                background-color: hsla(var(--color), 0.3); }
              #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer .bigBuyOption > form {
                display: contents; }
              #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer .bigBuyOption .gridGroup {
                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; }
                #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer .bigBuyOption .gridGroup .bigBuyIcon {
                  width: 2.75rem;
                  height: 2.75rem;
                  border-radius: 10px;
                  object-fit: cover; }
                #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer .bigBuyOption .gridGroup .detailsStack {
                  display: flex;
                  flex-flow: column nowrap;
                  align-items: flex-start;
                  justify-content: space-between;
                  margin-right: auto; }
                #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer .bigBuyOption .gridGroup .storeName {
                  padding-top: 0.15rem;
                  font-weight: 500;
                  font-size: 1.1rem; }
                #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer .bigBuyOption .gridGroup .price {
                  font-size: 1rem;
                  font-weight: 700;
                  margin-left: 1rem;
                  padding-top: 0.2rem; }
                #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer .bigBuyOption .gridGroup .attributes {
                  font-size: 0.75rem;
                  font-weight: 500;
                  padding-bottom: 0.2rem; }
                #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer .bigBuyOption .gridGroup .hasDrm {
                  font-weight: 700; }
              #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer .bigBuyOption .xpand {
                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; }
                #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer .bigBuyOption .xpand:hover {
                  background-color: rgba(128, 128, 128, 0.3); }
                #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer .bigBuyOption .xpand:focus-within {
                  background-color: rgba(128, 128, 128, 0.4);
                  outline: 1px auto; }
                #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer .bigBuyOption .xpand:active > svg.icon.chevronDown {
                  transform: translateY(2px); }
                #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer .bigBuyOption .xpand.xpanded > svg.icon.chevronDown {
                  transform: rotate(180deg); }
                #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer .bigBuyOption .xpand.xpanded:active > svg.icon.chevronDown {
                  transform: translateY(2px) rotate(180deg); }
                #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer .bigBuyOption .xpand svg.chevronDown {
                  height: 1.5rem;
                  width: 1.5rem;
                  transition: transform 150ms; }
            #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer .storesAlt {
              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(5px);
              backdrop-filter: blur(5px);
              border-radius: 0 0 8px 8px;
              border: solid 0 hsl(var(--color));
              transition: max-height 350ms, border-width 350ms; }
              #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer .storesAlt::before {
                content: '';
                display: block;
                position: absolute;
                inset: 0;
                background-color: currentColor;
                filter: invert(1);
                opacity: 0.7;
                z-index: 1; }
              #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer .storesAlt.xpanded {
                max-height: 600px;
                border: solid 1px hsl(var(--color));
                border-top: none; }
              #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer .storesAlt > li {
                display: block;
                position: relative;
                z-index: 2; }
                #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer .storesAlt > li.label {
                  font-weight: 600;
                  font-size: 1rem;
                  padding: 0.5rem;
                  padding-bottom: 0;
                  display: flex;
                  align-items: center;
                  gap: 1rem; }
                  #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer .storesAlt > li.label > .sep {
                    flex-grow: 1;
                    background: rgb(128, 128, 128);
                    height: 2px;
                    display: block;
                    border-radius: 2px; }
                #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer .storesAlt > li.store {
                  background-color: hsla(var(--color), 0.1); }
                  #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer .storesAlt > li.store:nth-child(2n) > .storeLink {
                    background-color: hsla(var(--color), 0.15); }
                  #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer .storesAlt > li.store > form {
                    display: contents; }
                  #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer .storesAlt > li.store .storeLink {
                    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; }
                    #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer .storesAlt > li.store .storeLink:hover {
                      background-color: hsla(var(--color), 0.4); }
                    #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer .storesAlt > li.store .storeLink .storeIcon {
                      width: 2rem;
                      height: 2rem;
                      border-radius: 8px; }
                    #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer .storesAlt > li.store .storeLink .halign {
                      display: flex;
                      flex-direction: column; }
                      #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer .storesAlt > li.store .storeLink .halign .storeName {
                        font-size: 0.9rem; }
                      #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer .storesAlt > li.store .storeLink .halign .productType {
                        font-size: 0.7rem;
                        font-weight: 500; }
                    #productGeneral .background .flexHero .flexGroup .featuredBookstores .bigBuyContainer .storesAlt > li.store .storeLink .price {
                      margin-left: auto;
                      align-self: stretch;
                      font-size: 0.9rem;
                      padding: 0.1rem 0; }
        #productGeneral .background .flexHero .flexGroup .linkButton.reviewsLink {
          margin: 1rem 0;
          --button-bg: hsla(0, 0%, 50%, 10%);
          --focuscolor: hsla(0, 0%, 50%, 30%);
          color: var(--product-text-color, var(--body-text));
          border: solid 1px hsla(0, 0%, 50%, 30%);
          transition: background-color 150ms, border-color 150ms; }
          #productGeneral .background .flexHero .flexGroup .linkButton.reviewsLink:focus {
            border-color: var(--product-text-color, var(--body-text)); }
      #productGeneral .background .flexHero .productImageHolder {
        flex-shrink: 0;
        margin: 0 4rem;
        max-height: 80vh;
        display: flex;
        flex-direction: column;
        align-items: center; }
        #productGeneral .background .flexHero .productImageHolder > a {
          display: contents; }
        #productGeneral .background .flexHero .productImageHolder .productImage {
          border-radius: 10px;
          /* 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%; }
        #productGeneral .background .flexHero .productImageHolder .underBookLinks {
          font-family: var(--font-ui);
          display: flex;
          /* width: calc(80vh * 0.6475); */
          align-items: stretch;
          flex-wrap: wrap;
          gap: 0.5rem;
          padding-left: 0;
          padding-top: 0.5rem; }
          #productGeneral .background .flexHero .productImageHolder .underBookLinks > li {
            display: contents; }
            #productGeneral .background .flexHero .productImageHolder .underBookLinks > li .underBookLink {
              display: flex;
              align-items: center;
              color: inherit;
              text-decoration: none;
              flex-grow: 1;
              background-color: rgba(128, 128, 128, 0.1);
              border: solid 1px hsla(0, 0%, 50%, 30%);
              border-radius: 10px;
              gap: 0.5rem;
              padding: 0.5rem 1rem;
              font-weight: 500;
              transition: background-color 150ms; }
              #productGeneral .background .flexHero .productImageHolder .underBookLinks > li .underBookLink:hover, #productGeneral .background .flexHero .productImageHolder .underBookLinks > li .underBookLink:focus {
                background-color: rgba(128, 128, 128, 0.2); }
              #productGeneral .background .flexHero .productImageHolder .underBookLinks > li .underBookLink > svg.icon {
                height: 1.5em;
                width: 1.5em; }
              #productGeneral .background .flexHero .productImageHolder .underBookLinks > li .underBookLink > span {
                flex-grow: 1;
                text-align: center; }
    #productGeneral .background .reviewSnippetsScroll {
      width: 100%;
      overflow-x: auto; }
      #productGeneral .background .reviewSnippetsScroll .reviewSnippets {
        display: flex;
        flex-flow: row nowrap;
        gap: 1rem;
        padding: 1rem 2rem; }
        #productGeneral .background .reviewSnippetsScroll .reviewSnippets .snippet {
          flex-shrink: 0;
          width: 20rem;
          flex-grow: 1;
          color: inherit;
          text-decoration: none;
          border-radius: 0.5rem;
          background-color: hsla(0, 0%, 50%, 10%);
          padding: 0.7rem 1rem;
          transition: background-color 150ms; }
          #productGeneral .background .reviewSnippetsScroll .reviewSnippets .snippet:hover {
            background-color: hsla(0, 0%, 50%, 20%); }
          #productGeneral .background .reviewSnippetsScroll .reviewSnippets .snippet.more {
            display: flex;
            flex-flow: row nowrap;
            align-items: center;
            justify-content: center;
            font-size: 1.2rem;
            font-weight: 600;
            gap: 0.3rem; }
            #productGeneral .background .reviewSnippetsScroll .reviewSnippets .snippet.more .icon {
              width: 1.5rem;
              height: 1.5rem; }
          #productGeneral .background .reviewSnippetsScroll .reviewSnippets .snippet .reviewAttribution {
            flex-wrap: nowrap; }
            #productGeneral .background .reviewSnippetsScroll .reviewSnippets .snippet .reviewAttribution .reviewAuthor {
              white-space: nowrap; }
    #productGeneral .background .seriesMoreContainer {
      padding-bottom: 2rem;
      padding-top: 0.7rem;
      background-color: rgba(128, 128, 128, 0.25);
      box-shadow: inset 0 5px 5px -5px rgba(0, 0, 0, 0.4), inset 0 -8px 8px -8px rgba(0, 0, 0, 0.4); }
      #productGeneral .background .seriesMoreContainer:is(:hover, :focus-within) h3 .swiper-navbutton {
        opacity: 1; }
      #productGeneral .background .seriesMoreContainer 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;
        flex-flow: row wrap;
        gap: 0.2rem; }
        #productGeneral .background .seriesMoreContainer 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); }
          #productGeneral .background .seriesMoreContainer h3 .swiper-navbutton.swiper-button-disabled {
            opacity: 0;
            pointer-events: none; }
          #productGeneral .background .seriesMoreContainer h3 .swiper-navbutton:hover {
            background-color: var(--elevation-1); }
          #productGeneral .background .seriesMoreContainer h3 .swiper-navbutton svg {
            height: 1rem; }
      #productGeneral .background .seriesMoreContainer swiper-container {
        display: flex; }
        #productGeneral .background .seriesMoreContainer swiper-container:not(:defined) {
          padding-left: 24px; }
        #productGeneral .background .seriesMoreContainer swiper-container swiper-slide {
          height: 15rem;
          width: fit-content;
          margin-right: 24px; }
          #productGeneral .background .seriesMoreContainer swiper-container swiper-slide .swItem {
            display: flex;
            flex-direction: column;
            align-items: flex-start;
            height: 15rem;
            width: fit-content; }
            #productGeneral .background .seriesMoreContainer swiper-container swiper-slide .swItem.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); }
              #productGeneral .background .seriesMoreContainer swiper-container swiper-slide .swItem.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; }
              #productGeneral .background .seriesMoreContainer swiper-container swiper-slide .swItem.disabled img {
                opacity: 0.7;
                filter: blur(4px); }
            @media (prefers-reduced-motion: no-preference) {
              #productGeneral .background .seriesMoreContainer swiper-container swiper-slide .swItem:not(.disabled) {
                transition: transform 150ms; }
                #productGeneral .background .seriesMoreContainer swiper-container swiper-slide .swItem:not(.disabled):hover {
                  transform: scale(0.95); }
                #productGeneral .background .seriesMoreContainer swiper-container swiper-slide .swItem:not(.disabled):active {
                  transform: scale(0.9); } }
            #productGeneral .background .seriesMoreContainer swiper-container swiper-slide .swItem img {
              height: 15rem;
              border-radius: 0.2rem;
              border-top-right-radius: 0.5rem;
              transition: transform 150ms; }

@media (max-width: 68.75rem) {
  #productinfoBody #productGeneral .flexHero {
    min-height: unset;
    height: unset;
    flex-wrap: wrap; }
    #productinfoBody #productGeneral .flexHero .flexGroup {
      height: unset;
      min-height: unset;
      max-width: unset; }
    #productinfoBody #productGeneral .flexHero .spacer.minGone {
      display: none; }
  #productinfoBody #productGeneral .productImageHolder {
    position: static;
    height: unset;
    width: 100%;
    margin: 0;
    order: -1; }
    #productinfoBody #productGeneral .productImageHolder .productImage {
      margin: 0 auto;
      height: unset;
      max-height: 50vh;
      width: unset;
      max-width: 100%; }
    #productinfoBody #productGeneral .productImageHolder .underBookLinks {
      max-width: 80%;
      margin: 0 auto; } }

@media (max-width: 39.0625rem) {
  #productinfoBody #productGeneral .productImageHolder ul.underBookLinks {
    max-width: 100%; } }

/* tpl_product_reviews_default.php */
.reviewsHeader {
  display: grid;
  align-items: center;
  grid-template-rows: 100%;
  grid-template-columns: auto auto minmax(0, 1fr) auto;
  gap: 0.5rem 1rem;
  padding: 0.5rem 2rem;
  background: var(--product-background, var(--elevation-1));
  color: var(--product-text-color, var(--elevation-1-inverse));
  background-size: cover;
  background-position: center center;
  border-bottom: solid 1px hsla(0, 0%, 50%, 20%);
  box-shadow: 0 1rem 1rem -1rem hsla(0, 0%, 50%, 20%);
  position: relative;
  z-index: 3; }
  .reviewsHeader a {
    color: inherit;
    text-decoration: none; }
    .reviewsHeader a:focus {
      outline: solid 2px var(--product-text-color);
      outline-offset: 0.3rem;
      border-radius: 0.3rem; }
  .reviewsHeader .imageHolder {
    grid-area: 1/1; }
    .reviewsHeader .imageHolder .productImage {
      width: 2rem;
      height: 3rem;
      border-radius: 0.2rem;
      box-shadow: 0 0.05rem 0.3rem 0 hsla(0, 0%, 50%, 50%); }
  .reviewsHeader .valign {
    display: flex;
    flex-flow: column nowrap;
    align-items: start;
    grid-area: 1/2; }
    .reviewsHeader .valign .productName {
      font-size: 1.2rem;
      font-family: var(--product-font, var(--font-ui));
      line-height: 1.1; }
    .reviewsHeader .valign .authorName {
      font-family: var(--font-ui);
      font-weight: 400;
      line-height: 1.3; }
  .reviewsHeader .buyButtonPossibleHolder, .reviewsHeader .buyButton {
    grid-area: 1/4; }
  .reviewsHeader .buyButton {
    display: flex;
    flex-flow: row nowrap;
    cursor: pointer;
    border: none;
    padding: 0.3rem 0.8rem;
    border-radius: 0.5rem;
    background-color: hsla(0, 0%, 70%, 15%);
    border: solid 1px hsla(0, 0%, 70%, 50%);
    color: var(--product-text-color, var(--elevation-1-inverse));
    font-family: var(--font-ness);
    font-weight: 500;
    font-size: 1rem;
    transition: background-color 150ms; }
    .reviewsHeader .buyButton:hover, .reviewsHeader .buyButton:focus {
      background-color: hsla(0, 0%, 70%, 30%); }
  @media (max-width: 31.25rem) {
    .reviewsHeader {
      grid-template-rows: auto auto;
      grid-template-columns: auto minmax(0, 1fr); }
      .reviewsHeader .imageHolder {
        grid-area: 1/1/3/2;
        max-width: max-content; }
        .reviewsHeader .imageHolder .productImage {
          width: 4rem;
          height: 6rem; }
      .reviewsHeader .buyButtonPossibleHolder, .reviewsHeader .buyButton {
        grid-area: 2/2/3/3; } }

#mainWrapper div.reviewsPageLayout {
  background: var(--product-background, var(--body-bg));
  color: var(--product-text-color, var(--body-text));
  background-size: cover;
  background-position: center center; }
  #mainWrapper div.reviewsPageLayout h1 {
    border-bottom-color: var(--product-text-color, var(--accent-color)); }
  #mainWrapper div.reviewsPageLayout .halign {
    display: flex;
    flex-flow: row wrap;
    align-items: start; }
    #mainWrapper div.reviewsPageLayout .halign .starsAnalysis {
      display: flex;
      flex-flow: column nowrap;
      background-color: hsla(0, 0%, 50%, 10%);
      border-radius: 0.5rem;
      width: 20ch;
      gap: 0.5rem;
      font-family: var(--font-ness);
      margin-left: 2rem;
      padding: 0.3rem 0.7rem; }
      #mainWrapper div.reviewsPageLayout .halign .starsAnalysis h4 {
        font-size: 1.3rem;
        padding-bottom: 0.4rem;
        border-bottom: solid 1px var(--elevation-1); }
      #mainWrapper div.reviewsPageLayout .halign .starsAnalysis .starBars {
        display: grid;
        line-height: 1;
        gap: 0.2rem 0;
        grid-template-columns: auto minmax(0, 1fr);
        grid-auto-rows: auto; }
        #mainWrapper div.reviewsPageLayout .halign .starsAnalysis .starBars label {
          padding: 0.1rem 0.2rem;
          font-size: 0.9rem;
          font-weight: 700; }
        #mainWrapper div.reviewsPageLayout .halign .starsAnalysis .starBars .starBar {
          display: flex;
          flex-flow: row nowrap;
          height: 100%;
          width: 100%; }
          #mainWrapper div.reviewsPageLayout .halign .starsAnalysis .starBars .starBar:hover::before {
            background-color: white; }
          #mainWrapper div.reviewsPageLayout .halign .starsAnalysis .starBars .starBar::before {
            content: '';
            display: block;
            width: calc(1% * max(var(--pct), 1));
            background-color: hsla(0, 0%, 50%, 100%);
            border-top-right-radius: 0.4rem;
            border-bottom-right-radius: 0.4rem;
            transition: background-color 150ms; }
  #mainWrapper div.reviewsPageLayout .max70 {
    max-width: 70ch;
    display: flex;
    flex-flow: column nowrap;
    align-items: start;
    gap: 1rem; }
    #mainWrapper div.reviewsPageLayout .max70 .reviewContainer {
      display: flex;
      flex-flow: row nowrap;
      align-items: center;
      text-decoration: none;
      color: currentColor; }
      #mainWrapper div.reviewsPageLayout .max70 .reviewContainer .hoverIndicator {
        opacity: 0;
        transform: translateX(-1rem);
        transition: opacity 150ms, transform 250ms; }
        #mainWrapper div.reviewsPageLayout .max70 .reviewContainer .hoverIndicator > .icon {
          width: 2rem;
          height: 2rem; }
      #mainWrapper div.reviewsPageLayout .max70 .reviewContainer:focus > .review {
        outline: solid 2px var(--product-text-color, var(--body-text)); }
      #mainWrapper div.reviewsPageLayout .max70 .reviewContainer:hover, #mainWrapper div.reviewsPageLayout .max70 .reviewContainer:focus {
        outline: none; }
        #mainWrapper div.reviewsPageLayout .max70 .reviewContainer:hover > .review, #mainWrapper div.reviewsPageLayout .max70 .reviewContainer:focus > .review {
          background-color: hsla(0, 0%, 50%, 20%); }
        #mainWrapper div.reviewsPageLayout .max70 .reviewContainer:hover > .hoverIndicator, #mainWrapper div.reviewsPageLayout .max70 .reviewContainer:focus > .hoverIndicator {
          opacity: 1;
          transform: none; }
  #mainWrapper div.reviewsPageLayout .linkButton {
    --button-bg: hsla(0, 0%, 50%, 10%);
    --focuscolor: hsla(0, 0%, 50%, 30%);
    color: var(--product-text-color, var(--body-text));
    border-color: hsla(0, 0%, 50%, 30%);
    transition: background-color 150ms, border-color 150ms; }
    #mainWrapper div.reviewsPageLayout .linkButton:focus {
      border-color: var(--product-text-color, var(--body-text)); }
  #mainWrapper div.reviewsPageLayout textarea.newtext {
    background-color: hsla(0, 0%, 50%, 10%);
    border-color: hsla(0, 0%, 50%, 30%);
    color: var(--product-text-color, var(--body-text)); }

/* */
/* #region tpl_shopping_cart_default.php */
#shoppingCartDefault {
  padding: 2rem 4rem; }
  #shoppingCartDefault hr {
    border-color: var(--elevation-03); }

@media (max-width: 50rem) {
  #shoppingCartDefault {
    padding: 2rem 1rem; } }

#cartDefaultHeading {
  margin-bottom: 1rem; }

/* #region Cart Has Items */
.cartHolder {
  width: 100%;
  padding-left: 0;
  display: flex;
  flex-direction: column; }

.cartHolder > li {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  position: relative; }

.cartHolder li.cartItem {
  padding: 0.5rem 1rem;
  background-color: var(--elevation-05);
  border-radius: 0.25rem;
  height: 14rem; }
  .cartHolder li.cartItem .cartImage img {
    border-radius: 0.25rem; }

#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: var(--elevation-1);
  color: rgb(131, 0, 0);
  font-weight: 500;
  font-family: var(--font-ui);
  font-size: 1.1rem; }

.out_of_stock_error .error.icon {
  height: 1.8rem; }

.cartUnitDisplay {
  font-size: 1.2rem;
  font-family: var(--font-code);
  text-align: right; }

.cartUnitDisplay .light {
  opacity: 0.6; }

.cartImage {
  display: contents; }

.cartImage img {
  height: 100%; }

.cartProductDisplay {
  padding: 0.6rem 0.8rem;
  display: flex;
  flex-direction: column; }

.cartProductDisplay .cartLink {
  color: inherit;
  text-decoration: none;
  cursor: pointer; }

/* Book title */
.cartProductDisplay h4 {
  font-size: 1.6rem;
  font-family: var(--font-ui);
  line-height: 1; }

/* Author */
.cartProductDisplay h5 {
  font-size: 1.3rem;
  font-family: var(--font-ui);
  font-weight: 500; }

.linkButton.remove {
  display: flex;
  align-items: center;
  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:is(:hover, :focus, :focus-within) {
  color: white;
  background-color: darkred; }

.linkButton.remove .icon.trash {
  width: 1.5rem;
  height: 1.5rem; }

.cartAttribsList {
  padding: 0; }

.cartAttribsList li {
  list-style-type: none; }

.cartHolder .vflex {
  padding: 0.6rem 0.8rem;
  display: flex;
  flex-direction: column;
  align-items: flex-end; }

.cartHolder li.cartSubtotal {
  display: flex;
  padding: 1rem 0.8rem;
  height: auto;
  font-family: var(--font-ui);
  font-size: 1.2rem;
  font-weight: 600; }

.cartSubtotal code {
  margin-left: auto;
  font-family: var(--font-code); }

.inlineOutOfStock {
  display: flex;
  gap: 0.4rem;
  align-items: center;
  max-width: max-content;
  border-radius: 999999px;
  background-color: rgb(220, 38, 38);
  color: rgb(254, 242, 242);
  font-size: 1.2rem;
  font-weight: 600;
  line-height: 20px;
  padding: 0.6rem 1rem; }

.inlineOutOfStock .error.icon {
  width: 1.6rem;
  height: 1.6rem;
  display: inline; }

ul.cartHolder li.buttonsRowHolder {
  padding: 1rem 0.8rem;
  height: unset; }

ul.cartHolder .continue {
  --button-bg: var(--body-text);
  --button-accent: var(--body-bg);
  border-color: var(--body-text);
  --focuscolor: var(--body-text);
  --hoverdist: 0.3rem; }

ul.cartHolder .back {
  --button-bg: transparent;
  --button-accent: var(--body-text);
  border-color: transparent;
  --focuscolor: var(--body-bg);
  --hoverdist: -0.3rem; }

@media (max-width: 28rem) {
  ul.cartHolder > li.cartItem {
    height: unset;
    flex-wrap: wrap; }
  ul.cartHolder .cartImage img {
    height: 35vh;
    width: unset;
    margin: 0 auto; }
  ul.cartHolder .cartProductDisplay {
    width: 100%; }
  ul.cartHolder .cartItem .vflex {
    width: 100%;
    flex-flow: row wrap;
    gap: 1rem;
    align-items: center; }
  ul.cartHolder .cartItem .vflex .spacer {
    display: none; }
  ul.cartHolder .linkButton.remove {
    padding: 0.2rem 1rem;
    gap: 0.5rem;
    flex-grow: 10;
    justify-content: center; }
  ul.cartHolder .linkButton.remove .visuallyHidden {
    display: block;
    position: static;
    overflow: hidden;
    clip: unset;
    height: unset;
    width: unset;
    margin: unset;
    padding: unset;
    border: 0;
    font-size: 1.2rem; }
  ul.cartHolder .cartUnitDisplay {
    font-size: 1.2rem;
    font-family: var(--font-code);
    text-align: right;
    flex-grow: 1; } }

@media (max-width: 26.25rem) {
  ul.cartHolder .buttonsRow li {
    flex-grow: 1;
    margin-bottom: 0.5rem; }
  ul.cartHolder .buttonsRow li .linkButton {
    justify-content: center; } }

/* #endregion Cart Has Items */
.centerColumn.emptyCart {
  position: relative;
  overflow: clip; }

.bgHolder {
  position: absolute;
  inset: -9rem;
  display: flex;
  flex-flow: row wrap;
  gap: 1rem 2rem;
  transform: rotate(-6deg);
  pointer-events: none; }

.fgHolder {
  position: relative;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem; }

.bgHolder .bgGhostBook {
  height: 15rem;
  width: 10rem;
  border-radius: 1rem;
  background-color: #e6e6e6;
  background-image: linear-gradient(45deg, #f0f0f0, #fcfcfc); }

.centerColumn.emptyCart .mainGroup {
  opacity: 1;
  color: var(--searchbar-textcolor, #412000);
  padding: 0.8rem 2rem;
  border-radius: 1rem; }

.centerColumn.emptyCart .mainGroup .icon.cart {
  height: 8rem;
  width: 8rem;
  margin: 0 auto; }

.cartEmptyTitle {
  font-size: 2rem; }

.cartEmptySubtitle {
  font-size: 1.2rem;
  font-weight: 500; }

/* #endregion tpl_shopping_cart_default.php */
/* #region tpl_login_guest.php */
#loginOpcDefault, .loginLayout {
  display: flex;
  flex-flow: column nowrap;
  align-items: center;
  justify-content: center; }

#loginForm, .loginLayout > form {
  display: contents; }

.loginContainer {
  padding: 2rem;
  gap: 0.8rem;
  display: flex;
  flex-flow: column nowrap;
  align-items: center; }

.forgotPassword {
  display: block;
  border-radius: 5px;
  padding: 0.1rem 1rem;
  text-decoration: none;
  font-weight: 600;
  color: rgb(0, 68, 214); }

.loginSeparator {
  width: 100%;
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  gap: 1rem;
  padding: 1rem 0; }

.loginSeparator > hr {
  flex-grow: 1;
  color: rgba(139, 139, 139, 0.5); }

.loginContainer .linkButton.login {
  min-width: 18rem;
  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;
  font-weight: 500; }

.loginContainer .linkButton.login:is(:hover, :focus) {
  background-color: var(--focuscolor); }

.loginContainer .linkButton.login:focus {
  outline: solid 5px auto;
  outline-offset: 3px; }

.loginContainer .linkButton.login.submit {
  font-weight: 700;
  --focuscolor: rgb(36, 76, 255); }

.loginContainer .linkButton.login.guestCheckout {
  --button-bg: white;
  --button-accent: rgb(161, 91, 0);
  --focuscolor: rgb(255, 246, 234);
  border-color: var(--button-accent); }

.loginContainer .linkButton.login.signUp {
  --button-bg: white;
  --button-accent: rgb(0, 75, 161);
  --focuscolor: rgb(232, 243, 255);
  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); }

.hiddenField {
  display: none; }

div.twoPanelLayout {
  display: flex;
  flex-flow: row nowrap;
  align-items: stretch;
  gap: 0;
  padding: 0; }
  div.twoPanelLayout .formArea {
    width: 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;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 0.5rem; }
      div.twoPanelLayout .formArea .buttonsRow .linkButton {
        border-radius: 10px;
        padding: 0.5rem 1rem;
        line-height: 1;
        width: fit-content;
        border-color: var(--button-bg);
        --button-bg: rgb(0, 60, 255);
        --button-accent: white;
        --hoverdist: 0.3rem;
        justify-content: space-between;
        font-size: 1.1rem;
        font-weight: 500;
        transition: background-color 150ms; }
        div.twoPanelLayout .formArea .buttonsRow .linkButton:focus {
          outline: solid 5px auto;
          outline-offset: 3px; }
        div.twoPanelLayout .formArea .buttonsRow .linkButton.continue {
          font-weight: 700;
          --focuscolor: rgb(36, 76, 255); }
        div.twoPanelLayout .formArea .buttonsRow .linkButton.back {
          --button-bg: transparent;
          --button-accent: rgb(161, 91, 0);
          --focuscolor: rgb(255, 246, 234);
          --hoverdist: -0.3rem;
          border-color: transparent; }
  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 */
#timeoutDefaultHeading {
  max-width: 35rem;
  text-align: center; }

#timeoutDefault .buttonsRow {
  padding-top: 1rem; }

#timeoutDefault .formArea {
  padding: 2rem; }

#timeoutDefault .group {
  width: 100%;
  max-width: 22rem; }

#timeoutDefault .newtext {
  width: 100%; }

#timeoutDefault .linkButton.continue {
  width: 18rem;
  padding: 0.7rem 1rem;
  margin-top: 1rem;
  max-width: 100%;
  justify-content: center; }

#timeoutDefaultContent {
  text-align: center;
  padding-bottom: 1rem; }

#timeoutDefaultContent p {
  max-width: 30rem;
  margin-top: 0.8rem;
  line-height: 1.4; }

/* #endregion */
/* #region tpl_modules_opc_shopping_cart.php */
#checkoutOneHeading {
  margin-bottom: 1rem; }

.sidebarFlex {
  display: flex;
  gap: 1rem;
  justify-content: space-between; }

#checkoutOneShoppingCart {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  max-width: 70rem; }

.rightPanels {
  display: flex;
  flex-flow: column nowrap;
  gap: 1rem;
  max-width: 30rem; }

#orderTotalDivs {
  padding-left: 0;
  display: flex;
  flex-direction: column; }

#orderTotalDivs li {
  display: flex;
  flex-direction: row;
  border-top: solid 1px rgb(221, 221, 221); }

#checkoutOneSubmit {
  align-items: center;
  border-top: solid 1px rgb(221, 221, 221);
  padding: 1rem 0;
  margin-top: 0.5rem; }

#orderTotalDivs > li {
  justify-content: space-between;
  padding: 0.2rem 0;
  font-size: 1.1rem;
  border-top: none; }

#orderTotalDivs dd {
  font-family: var(--font-code); }

/* #endregion tpl_modules_opc_shopping_cart.php */
/* #region tpl_checkout_one_default */
.rightPanel .integratedInput {
  margin-top: 0.5rem; }
  .rightPanel .integratedInput input {
    font-family: var(--font-code); }

#checkoutComments {
  margin-top: auto;
  padding: 1.5rem 0; }
  #checkoutComments legend {
    font-size: 1.3rem;
    font-weight: 600;
    padding-bottom: 0.5rem; }

#checkoutPayment {
  padding: 2rem clamp(1rem, -4.3125rem + 10vw, 4rem); }

/* shipping wraps here */
@media (max-width: 83.125rem) and (min-width: 58.125rem) {
  #checkoutPayment .rightPanel {
    max-width: 26rem;
    min-width: min-content; }
  #checkoutPayment .newtext {
    width: 100%; }
  #checkoutPayment .inputGroup {
    max-width: unset;
    width: 100%; } }

/* 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: 50rem) {
  li#checkoutOneEmail {
    order: -1;
    width: 100%; } }

@media (max-width: 26.25rem) {
  #checkoutOneSubmit.buttonsRow li {
    flex-grow: 1; }
    #checkoutOneSubmit.buttonsRow li .linkButton {
      justify-content: center;
      width: 100%; } }

#checkoutPayment textarea.newtext {
  resize: vertical; }

#checkoutOneSubmit {
  gap: 0.5rem; }

#opc-order-confirm {
  --button-bg: var(--body-text);
  --button-accent: var(--body-bg);
  border-color: var(--body-text);
  --focuscolor: var(--body-text);
  --hoverdist: 0.3rem; }

.opc-buttons {
  display: none;
  margin-top: 0.5rem; }

.rightPanel {
  display: flex;
  flex-flow: column nowrap;
  border: double 5px var(--elevation-2);
  padding: 0.6rem 1rem;
  padding-bottom: 1rem;
  background-color: var(--elevation-05); }
  .rightPanel:first-child {
    position: relative;
    z-index: 3; }

.flexChildren > div {
  display: flex;
  flex-flow: column nowrap;
  position: relative;
  z-index: 2; }
  .flexChildren > div:not(:first-child) {
    padding-top: 1.5rem; }

.ottotal {
  font-weight: 700; }

#checkoutOneEmail {
  align-self: center;
  width: min-content;
  text-align: center;
  flex-grow: 1; }

.opc-overlay.active {
  position: absolute;
  inset: 0;
  background-color: rgba(255, 255, 255, 0.5);
  -webkit-backdrop-filter: saturate(0.3);
  backdrop-filter: saturate(0.3); }

.rightPanel .savedAddresses {
  width: 100%;
  margin-top: 0.5rem; }

.credit_selection .flexRow {
  display: flex;
  flex-flow: row wrap;
  width: 100%;
  align-items: baseline;
  justify-content: space-between; }

.rightPanel hr {
  margin: 0.8rem 0;
  color: rgba(128, 128, 128, 0.3); }

.rightPanel legend {
  font-size: 1.3rem;
  font-weight: 600; }

.inputsGrid {
  display: flex;
  flex-flow: row wrap;
  gap: 0.5rem 1rem;
  max-width: 37rem; }

.inputGroup {
  width: 100%;
  max-width: 18rem;
  display: flex;
  flex-direction: column; }

.inputGroup > label {
  padding-left: 0.5rem;
  font-weight: 600;
  font-size: 1.1rem; }

.paymentsGroup {
  display: flex;
  flex-flow: row wrap;
  gap: 1rem; }

.paymentsGroup > .custom-control {
  display: flex;
  position: relative;
  flex-grow: 1; }

.paymentsGroup > .custom-control > label {
  display: flex;
  flex-direction: row;
  height: 4rem;
  flex-grow: 1;
  justify-content: center;
  border: solid 2px rgb(221, 220, 220);
  border-radius: 0.9rem;
  padding: 0.6rem;
  background-color: white;
  cursor: pointer; }

.paymentsGroup > .custom-control > input:checked + label {
  border-color: #004cff;
  background-color: #f2f8ff; }

.paymentsGroup > .custom-control > input {
  position: absolute;
  left: 1rem;
  top: 50%;
  transform: translateY(-50%); }

#checkoutOneSubmit .back {
  position: relative;
  z-index: 4; }

#opc-bill-save {
  --button-bg: white;
  --button-accent: rgb(0, 75, 161);
  --focuscolor: rgb(232, 243, 255);
  border-color: var(--button-accent); }

/* #endregion tpl_checkout_one_default */
/* #region tpl_checkout_success_default */
#checkoutSuccess,
#accountHistInfo,
.gridLayout {
  display: flex;
  flex-flow: row nowrap;
  align-items: stretch;
  padding: 0;
  gap: 1rem; }

#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); }

.leftPane {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 1.5625rem 3.125rem;
  max-width: 100%;
  width: 50rem; }

.leftPane hr,
.gridBg hr {
  color: var(--body-text); }

.gridBg {
  flex-grow: 1;
  display: flex;
  flex-flow: column nowrap;
  align-items: center;
  padding: 1.5625rem 3.125rem;
  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); }

#checkoutSuccessHeading {
  display: flex;
  flex-direction: row nowrap;
  justify-content: space-between; }

#checkoutSuccessHeading .notImportant {
  text-decoration: none;
  color: inherit; }

#orderTotals {
  display: flex;
  flex-flow: column nowrap;
  gap: 0.2rem 1rem;
  font-size: 1.1rem;
  padding: 0;
  margin: 0; }

#orderTotals li {
  display: flex;
  flex-flow: row nowrap;
  justify-content: space-between; }

#orderTotals li.total {
  font-weight: 700; }

.leftPane .buttonsRow {
  gap: 0.625rem; }

.leftPane .buttonsRow .linkButton {
  border-radius: 0.4375rem;
  font-size: 1.25rem;
  font-weight: 600;
  padding: 0.375rem 1.25rem;
  align-items: center;
  --button-accent: var(--body-text);
  --button-bg: var(--body-bg);
  --focuscolor: var(--body-bg); }

.leftPane .buttonsRow .linkButton .icon {
  width: 1.625rem;
  height: 1.625rem; }

.leftPane .linkButton.home {
  --hoverdist: 0; }

.leftPane .linkButton.home .icon {
  width: 1.3rem;
  height: 1.3rem; }

.orderStatuses {
  display: flex;
  flex-flow: column nowrap;
  padding: 0;
  margin: 0;
  gap: 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: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; */
  margin-bottom: 0; }

.orderStatuses li:last-child .shortStatus {
  transform: translateY(-0.35rem);
  font-weight: 700; }

.orderStatuses li .shortStatus {
  display: flex;
  width: 7rem;
  flex-flow: column nowrap;
  line-height: 1.25;
  align-items: end;
  font-family: var(--font-ness);
  text-align: right;
  transform: translateY(-0.5rem);
  flex-shrink: 0; }

.orderStatuses li .shortStatus .date {
  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; }

.leftPane .paypalIcon {
  height: 2rem; }

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

.splitGroup > div {
    display: flex;
    flex-flow: column wrap;
    gap: 1rem; }

/* #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-visible, :focus, div.menuHolder.active .expandButton) {
  background-color: var(--elevation-1); }

.expandButton .icon {
  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 .icon {
  opacity: 1; }

.sortMenuItem .icon {
  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%;
  /* 1.5rem */ }

.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.
*/
/* #endregion all_series */
/* #region bad_series */
/*
* A series was requested, but it doesn't exist. Show a 404.
*/
/* #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: 70ch; }
  #seriesInfoDefault.seriesExists .max70 {
    max-width: 70ch; }
  #seriesInfoDefault.seriesExists .results_holder {
    display: flex;
    flex-flow: column nowrap;
    align-items: start;
    gap: 1rem;
    max-width: 70ch; }

/* #endregion series_exists */
/* #endregion tpl_series_info_default */
/* #region tpl_page_default (ezpages) */
/* Ezpages */
.ezContent {
  max-width: 70ch; }
  .ezContent a:not(.linkButton):visited {
    color: var(--accent-color); }
  .ezContent p:not(:last-child) {
    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 1rem;
    border-radius: 0.3rem; }

#ezPageDefault, div.contentPageLayout {
  padding: 2rem;
  display: flex;
  flex-flow: column nowrap; }
  #ezPageDefault .max70, div.contentPageLayout .max70 {
    max-width: 70ch; }
  #ezPageDefault > form, div.contentPageLayout > form {
    display: contents; }
  #ezPageDefault h1, div.contentPageLayout h1 {
    border-bottom: solid 1px var(--brand-color);
    padding: 1rem 0;
    margin-bottom: 1rem;
    max-width: 34ch; }
  #ezPageDefault #navEZPageNextPrev, div.contentPageLayout #navEZPageNextPrev {
    width: 70ch;
    max-width: 100%;
    margin-top: 2rem;
    padding: 1rem 0;
    border-top: solid 1px var(--brand-color);
    display: flex;
    justify-content: space-between; }
    #ezPageDefault #navEZPageNextPrev a, div.contentPageLayout #navEZPageNextPrev a {
      display: flex;
      align-items: center;
      padding: 0.2rem 0.2rem;
      cursor: pointer;
      color: var(--body-text);
      text-decoration: none; }
      #ezPageDefault #navEZPageNextPrev a.left, div.contentPageLayout #navEZPageNextPrev a.left {
        justify-content: start;
        text-align: start; }
      #ezPageDefault #navEZPageNextPrev a.right, div.contentPageLayout #navEZPageNextPrev a.right {
        justify-content: end;
        text-align: end; }
      #ezPageDefault #navEZPageNextPrev a .icon, div.contentPageLayout #navEZPageNextPrev a .icon {
        height: 2rem;
        width: 2rem; }
      #ezPageDefault #navEZPageNextPrev a .stack, div.contentPageLayout #navEZPageNextPrev a .stack {
        display: flex;
        flex-flow: column nowrap;
        justify-content: center; }
        #ezPageDefault #navEZPageNextPrev a .stack label, div.contentPageLayout #navEZPageNextPrev a .stack label {
          text-transform: uppercase;
          cursor: pointer;
          font-size: 0.9rem; }
        #ezPageDefault #navEZPageNextPrev a .stack span, div.contentPageLayout #navEZPageNextPrev a .stack span {
          font-weight: 600; }
  #ezPageDefault #navEZPagesTOCWrapper, div.contentPageLayout #navEZPagesTOCWrapper {
    position: absolute;
    right: 2rem;
    top: 2rem;
    width: 25ch; }
    @media (max-width: calc(10rem + 25ch + 70ch)) {
      #ezPageDefault #navEZPagesTOCWrapper, div.contentPageLayout #navEZPagesTOCWrapper {
        display: none; } }
    #ezPageDefault #navEZPagesTOCWrapper div ul.list, div.contentPageLayout #navEZPagesTOCWrapper div ul.list {
      padding: 0; }
      #ezPageDefault #navEZPagesTOCWrapper div ul.list li, div.contentPageLayout #navEZPagesTOCWrapper div ul.list li {
        display: block; }
        #ezPageDefault #navEZPagesTOCWrapper div ul.list li a.currentPage, div.contentPageLayout #navEZPagesTOCWrapper div ul.list li a.currentPage {
          text-decoration: none;
          pointer-events: none;
          color: var(--elevation-1-inverse);
          font-weight: 600; }
  #ezPageDefault .buttonsRow, div.contentPageLayout .buttonsRow {
    padding-top: 1rem;
    max-width: 70ch; }
  #ezPageDefault .labelGroup, div.contentPageLayout .labelGroup {
    display: flex;
    flex-flow: column nowrap;
    margin-top: 1rem;
    margin-bottom: 1rem; }
    #ezPageDefault .labelGroup label, div.contentPageLayout .labelGroup label {
      font-size: 1.3rem;
      font-weight: 700; }
    #ezPageDefault .labelGroup input[type="file"], div.contentPageLayout .labelGroup input[type="file"] {
      font-family: var(--font-code); }
  #ezPageDefault .replacementGroups, div.contentPageLayout .replacementGroups {
    display: flex;
    flex-flow: row wrap;
    gap: 1rem;
    max-width: 70ch;
    padding-bottom: 1rem;
    border-bottom: solid 1px var(--brand-color);
    margin-bottom: 1rem; }
    #ezPageDefault .replacementGroups input.cleanerBox, div.contentPageLayout .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; }
    #ezPageDefault .replacementGroups input.cleanerBox:checked + label.cleanerBox, div.contentPageLayout .replacementGroups input.cleanerBox:checked + label.cleanerBox {
      border-color: var(--brand-color);
      background-color: var(--elevation-03);
      opacity: 1; }
    #ezPageDefault .replacementGroups label.cleanerBox, div.contentPageLayout .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; }
      #ezPageDefault .replacementGroups label.cleanerBox legend, div.contentPageLayout .replacementGroups label.cleanerBox legend {
        font-size: 1.1rem;
        font-weight: 600;
        padding-bottom: 0.3rem;
        border-bottom: solid var(--brand-color) 1px;
        display: flex;
        align-items: center; }
        #ezPageDefault .replacementGroups label.cleanerBox legend .censor, div.contentPageLayout .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) 1px, transparent 1px, transparent 2px);
          background-repeat: repeat-y;
          background-size: 100% 2px;
          background-position: center;
          opacity: 0.9;
          transform: translateY(0.14em); }
      #ezPageDefault .replacementGroups label.cleanerBox ul, div.contentPageLayout .replacementGroups label.cleanerBox ul {
        display: flex;
        flex-flow: row wrap;
        gap: 0.5rem;
        padding: 0;
        padding-top: 0.5rem; }
        #ezPageDefault .replacementGroups label.cleanerBox ul li, div.contentPageLayout .replacementGroups label.cleanerBox ul li {
          display: flex;
          flex-flow: column nowrap; }
          #ezPageDefault .replacementGroups label.cleanerBox ul li label, div.contentPageLayout .replacementGroups label.cleanerBox ul li label {
            font-size: 0.9rem; }
          #ezPageDefault .replacementGroups label.cleanerBox ul li input, div.contentPageLayout .replacementGroups label.cleanerBox ul li input {
            max-width: 15ch;
            border-radius: 0.3rem;
            border: solid 1px var(--elevation-2); }

/* #endregion tpl_page_default (ezpages) */
#contactUsDefault textarea.newtext {
  max-width: 69.4ch; }

#contactUsDefault label {
  font-weight: 500;
  padding-left: 1ch; }

#contactUsDefault .halign {
  max-width: 70ch;
  display: flex;
  flex-flow: row wrap;
  gap: 1rem;
  padding-bottom: 1rem; }
  #contactUsDefault .halign .group {
    flex-basis: 40%;
    flex-grow: 1; }
    #contactUsDefault .halign .group .newtext {
      width: 100%; }

/* #region tpl_password_forgotten_default */
#passwordForgotten #passwordForgottenMainContent {
  max-width: var(--inwidth, 30rem);
  text-align: center; }

#passwordForgotten ul.buttonsRow {
  width: 18rem;
  max-width: 100%;
  gap: 1rem; }
  #passwordForgotten ul.buttonsRow li.subtleButton {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center; }
    #passwordForgotten ul.buttonsRow li.subtleButton > a {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 0.5ch;
      color: var(--body-text);
      text-decoration-color: var(--body-text-at-half); }
      #passwordForgotten ul.buttonsRow li.subtleButton > a .icon {
        width: 1rem;
        height: 1rem; }

/* #endregion */
/* #region SETTINGS PAGES */
div.settingsLayout {
  display: flex;
  flex-flow: row nowrap;
  align-items: start;
  padding: 0; }
  div.settingsLayout > nav {
    background-color: var(--elevation-1);
    height: 100%;
    padding: 2rem 0;
    width: 15rem;
    max-width: 100%;
    display: flex;
    flex-flow: column nowrap;
    align-items: start;
    justify-content: start;
    gap: 1rem; }
    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%; }
    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-2);
            color: var(--elevation-1-inverse);
            pointer-events: none; }
          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 main {
    padding: 2rem 2rem;
    flex-grow: 1;
    height: 100%;
    width: 0;
    max-width: min(100%, 80ch);
    display: flex;
    flex-flow: column nowrap;
    align-items: start;
    justify-content: start;
    gap: 1rem; }
    div.settingsLayout main h1 {
      font-size: 1.8rem;
      line-height: 1; }
    div.settingsLayout main hr {
      width: 100%; }
    div.settingsLayout main form {
      display: contents; }
      div.settingsLayout main form .halign {
        display: flex;
        flex-flow: row wrap;
        gap: 1rem;
        max-width: 100%; }
      div.settingsLayout main form .labelGroup {
        display: flex;
        flex-flow: column nowrap;
        align-items: start;
        justify-content: start;
        max-width: 100%; }
        div.settingsLayout main form .labelGroup label, div.settingsLayout main form .labelGroup legend {
          font-weight: 600; }
        div.settingsLayout main form .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;
          width: 18rem;
          max-width: 100%; }
    div.settingsLayout main nav.pagination {
      width: 100%; }
    div.settingsLayout main .ordersGrid {
      display: grid;
      width: 100%;
      padding: 0;
      gap: 1rem;
      grid-template-columns: repeat(auto-fill, minmax(min(35ch, 100%), 1fr)); }

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

.primaryAddress {
  position: relative; }
  .primaryAddress label {
    position: absolute;
    bottom: 100%;
    left: 1.2rem;
    background-color: var(--accent-color);
    color: white;
    font-family: var(--font-ness);
    font-weight: 700;
    font-size: 0.9rem;
    border-top-left-radius: 0.5rem;
    border-top-right-radius: 0.5rem;
    padding: 0 0.5rem; }

/* #endregion */
/* #region BOOK CLEANER */
#cleanerDefault .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); }
  #cleanerDefault .cleanerReport .cleanerBook {
    pointer-events: auto;
    cursor: default;
    display: flex;
    align-items: flex-start;
    gap: 0.625rem;
    align-self: stretch;
    margin-bottom: 1rem; }
    #cleanerDefault .cleanerReport .cleanerBook .detailsFlex {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      flex: 1 0 0;
      align-self: stretch; }
    #cleanerDefault .cleanerReport .cleanerBook .image {
      width: 6.875rem;
      height: 10.3125rem;
      background: lightgray 50% / cover no-repeat;
      border-radius: 0.1rem; }
    #cleanerDefault .cleanerReport .cleanerBook .productTitle {
      color: inherit;
      font-size: 1.75rem;
      font-weight: 600;
      line-height: 1.1; }
    #cleanerDefault .cleanerReport .cleanerBook .subtitle {
      color: inherit;
      font-size: 1rem;
      font-weight: 600;
      line-height: 1.1;
      margin-bottom: 0.2rem; }
    #cleanerDefault .cleanerReport .cleanerBook .description {
      overflow: hidden;
      text-overflow: ellipsis;
      font-weight: 400;
      max-height: 10rem; }
  #cleanerDefault .cleanerReport .replacements {
    display: flex;
    flex-flow: row wrap;
    gap: 1rem;
    justify-content: space-between;
    align-items: stretch; }
    #cleanerDefault .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; }
      #cleanerDefault .cleanerReport .replacements .replacement.disabled {
        opacity: 0.5;
        cursor: not-allowed; }
        #cleanerDefault .cleanerReport .replacements .replacement.disabled * {
          cursor: not-allowed; }
      #cleanerDefault .cleanerReport .replacements .replacement .mainLabel {
        background-color: var(--elevation-05);
        padding: 0.5rem 1rem; }
      #cleanerDefault .cleanerReport .replacements .replacement .fields {
        display: flex;
        flex-grow: 1;
        flex-flow: column nowrap;
        justify-content: center;
        padding: 0.2rem 1rem;
        padding-bottom: 0.5rem; }

#cleanerDefault .linkButton.back {
  padding: 0.5rem 1rem;
  font-weight: 700; }

#cleanerDefault .linkButton.download {
  --hoverdist: 0; }

/* #endregion BOOK CLEANER */
#pageNotFound, div.notFoundLayout {
  display: flex;
  flex-flow: column nowrap;
  justify-content: center;
  align-items: center; }
  #pageNotFound h1, div.notFoundLayout h1 {
    text-align: center;
    min-width: min(100%, 15ch); }
  #pageNotFound .ezContent, div.notFoundLayout .ezContent {
    text-align: center; }
  #pageNotFound ul.buttonsRow, div.notFoundLayout ul.buttonsRow {
    width: max-content;
    max-width: 100%;
    gap: 0.5rem; }
    #pageNotFound ul.buttonsRow a.linkButton, div.notFoundLayout ul.buttonsRow a.linkButton {
      border-color: var(--elevation-1);
      --hoverdist: -0.1rem;
      transition: none; }
      #pageNotFound ul.buttonsRow a.linkButton:focus, div.notFoundLayout ul.buttonsRow a.linkButton:focus {
        border-color: var(--elevation-1-inverse);
        color: var(--elevation-1-inverse); }
      #pageNotFound ul.buttonsRow a.linkButton .icon.search, div.notFoundLayout ul.buttonsRow a.linkButton .icon.search {
        margin-bottom: -2px; }
      #pageNotFound ul.buttonsRow a.linkButton svg.icon, div.notFoundLayout ul.buttonsRow a.linkButton svg.icon {
        width: 1.2rem;
        height: 1.2rem; }

#orderStatus .formArea form p {
  text-align: center;
  max-width: 30rem;
  margin-top: 0.8rem;
  line-height: 1.4; }
