@charset "UTF-8";
* {
  margin: 0;
  padding: 0;
  border: 0;
  vertical-align: baseline;
}

html {
  box-sizing: border-box;
}

*,
*:before,
*:after {
  box-sizing: inherit;
}

body {
  line-height: 1.3;
}

ol,
ul {
  list-style: none;
}

blockquote:before,
blockquote:after {
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

html {
  font-size: 18px;
}
@media only screen and (min-width: 700px) {
  html {
    font-size: 24px;
  }
}

body {
  font-family: "Nobel Bk", Helvetica, Arial, sans-serif;
  line-height: 1.3;
  color: #222;
  font-weight: 400;
  letter-spacing: .02em;
  font-feature-settings: "liga";
}

p {
  margin: 0;
}

h1, .h1,
h2,
.h2,
h3,
.h3,
h4,
.h4,
h5,
h6 {
  font-size: inherit;
  font-weight: 400;
}

a {
  color: inherit;
  text-decoration: underline;
}

a:hover {
  text-decoration: none;
}

img {
  display: inline-block;
  vertical-align: top;
  max-width: 100%;
  height: auto;
}

small {
  font-size: 0.7rem;
}

.wrapper {
  margin: 0 auto;
  margin-bottom: 3.25em;
  margin-top: 1.5rem;
  padding-left: .75rem;
  padding-right: .75rem;
  padding-top: 100px;
}
@media only screen and (min-width: 400px) {
  .wrapper {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    margin-bottom: 6.5em;
  }
}

.site-header {
  padding-top: 1rem;
  padding-bottom: 1.25rem;
  text-align: center;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  background-color: #fff;
  z-index: 100;
}

.ttuc {
  text-transform: uppercase;
}

.ttlc {
  text-transform: lowercase;
}

.align-left {
  text-align: left;
}

.align-center {
  text-align: center;
}

.align-right {
  text-align: right;
}

.fwn {
  font-weight: 400;
}

.fwb {
  font-weight: 700;
}

.visually-hidden {
  position: absolute !important;
  clip: rect(1px, 1px, 1px, 1px);
  padding: 0 !important;
  border: 0 !important;
  height: 1px !important;
  width: 1px !important;
  overflow: hidden;
}

.grey-text {
  color: #bbb;
}

.small-text {
  font-size: 0.7rem;
}

.indent-paragraphs p + p {
  margin-top: -1.3em;
  text-indent: 1.3em;
}

.mt0 {
  margin-top: 0;
}

.mt½ {
  margin-top: .5rem;
}

.mt1 {
  margin-top: 1rem;
}

.mt2 {
  margin-top: 2rem;
}

.mt3 {
  margin-top: 3rem;
}

.mt4 {
  margin-top: 4rem;
}

.mb0 {
  margin-bottom: 0;
}

.mb½ {
  margin-bottom: .5rem;
}

.mb1 {
  margin-bottom: 1rem;
}

.mb2 {
  margin-bottom: 2rem;
}

.mb3 {
  margin-bottom: 3rem;
}

.mb4 {
  margin-bottom: 4rem;
}

.ml1 {
  margin-left: .5rem;
}

.mr1 {
  margin-right: .5rem;
}

.nowrap {
  white-space: nowrap;
}

.rule-bottom {
  padding-bottom: .25em;
  border-bottom: 1px dotted;
}

.tdn {
  text-decoration: none;
}

.tdu {
  text-decoration: underline;
}

.body-text p + p {
  margin-top: 0.65em;
}

.site-logo {
  display: inline-block;
}
@media only screen and (min-width: 400px) {
  .site-logo {
    display: inline-block;
  }
}

.site-logo,
.site-nav {
  padding-top: .25rem;
  padding-bottom: .25rem;
}

.site-nav {
  display: inline-block;
  margin: 0 auto;
}

.site-nav__list {
  text-align: center;
}

.site-nav__item {
  display: inline-block;
}

.site-logo__link,
.site-nav__link {
  margin: 0 .5em;
  text-decoration: none;
  background-repeat: repeat-x;
  padding-bottom: .35em;
  background-position: 0 100%;
  background-size: 8px 7px;
}

.site-logo__link--active,
.site-nav__link--active {
  background-image: url("/assets/underline.svg");
}

.site-logo__link:not([class*="active"]):hover,
.site-nav__link:not([class*="active"]):hover {
  background-image: url("/assets/underline--rails.svg");
}

.site-logo__link {
  padding-left: 1px;
  padding-right: .5px;
}
@media only screen and (min-width: 700px) {
  .site-logo__link {
    padding-right: 1px;
  }
}

.wrapper {
  text-align: center;
}

.media {
  display: inline-block;
  padding: 1rem 0;
}
@media only screen and (min-width: 700px) {
  .media {
    padding: 2rem;
  }
}

.media:first-child {
  padding-top: 0;
}

.media__image {
  margin-left: auto;
  margin-right: auto;
  max-height: 75vh;
}

.content {
  text-align: left;
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}

.content--wide {
  max-width: 1000px;
}

.content--full {
  max-width: none;
}

.content__section + .content__section {
  margin-top: 1.95em;
}

.btn {
  display: inline-block;
  padding: .1em .5em .2em .5em;
  border: 0.4em outset #3c3c3c;
  line-height: 1;
  background-color: #3c3c3c;
  color: #fff;
  text-decoration: none;
}

.columns-list {
  column-count: 2;
  column-gap: 1rem;
}

.quote {
  position: relative;
}

.quote + .quote {
  margin-top: 1.25rem;
}

.quote__text {
  position: relative;
  margin: 0;
}

.quote__text:before {
  position: absolute;
  right: 100%;
  content: "\201c";
}

.quote__text:after {
  content: "\201d";
}

.quote__source {
  font-size: 0.7rem;
  margin-top: .5em;
}

.books {
  align-items: flex-end;
  display: flex;
  flex-wrap: wrap;
  font-size: 0;
  justify-content: center;
  text-align: center;
}

.books__book {
  padding: 0 1.5rem;
  font-size: 1rem;
  margin-bottom: 4.5rem;
}

.product-details {
  text-align: center;
}

img[class*="lazyload"] {
  opacity: 0;
  transition: opacity 500ms;
}

img.lazyloaded {
  opacity: 1;
}

.gallery {
  padding-bottom: 66.6666666667%;
}

.gallery .flickity-viewport {
  position: absolute;
  width: 100%;
}

.gallery__cell {
  width: 100%;
  margin-right: 1.3em;
  height: 100%;
  text-align: center;
}

.gallery__cell img {
  max-height: 100%;
  margin-left: auto;
  margin-right: auto;
}

.flickity-prev-next-button {
  width: 1.25rem;
  height: 1.25rem;
  background: transparent;
  border-radius: 0;
}

.news-article {
  margin-top: -136px;
  padding-top: 136px;
}

.news-link {
  text-decoration-line: none;
}

.news-link:hover {
  text-decoration-line: underline;
}

@media only screen and (min-width: 1200px) {
  .flickity-prev-next-button.next {
    margin-left: 1rem;
    left: 100%;
    right: auto;
  }
}

@media only screen and (min-width: 1200px) {
  .flickity-prev-next-button.previous {
    margin-right: 1rem;
    right: 100%;
    left: auto;
  }
}

.flickity-prev-next-button svg {
  position: static;
  width: 100%;
  height: 100%;
}

.flickity-prev-next-button:hover {
  background: transparent;
}

/* arrow color */
.flickity-prev-next-button .arrow {
  fill: #222;
}
