/* the theme gave main a 760px floor so short pages keep the footer down */
#MainContent.np-info { min-height: 760px; }
#MainContent.np-404 { min-height: 35rem; }

/* Shared frame for the text pages (contact, return policies, warranties,
   the /policies pages, 404): the theme's main-page container (stepped
   768/1000/1300 with 20/24/32px sides), its uppercase page title and the
   rich-text body it rendered from the admin page content. Tokens come from
   np-site.css. */
.np-page-banner {
  width: 100%;
  padding-bottom: 22px;
}

.np-page-banner img {
  display: block;
  width: 100%;
  height: auto;
}

.np-page {
  max-width: 768px;
  margin: 0 auto;
  padding: 0 20px 56px;
  color: var(--np-charcoal);
}

@media (min-width: 990px) {
  .np-page { padding-left: 24px; padding-right: 24px; }
}

@media (min-width: 1000px) {
  .np-page { max-width: 1000px; padding-left: 32px; padding-right: 32px; }
}

@media (min-width: 1300px) {
  .np-page { max-width: 1300px; }
}

/* the theme's page-title h0: 36px/1.5, bold, uppercase */
.np-page__title {
  margin: 24px 0;
  font-size: 36px;
  line-height: 1.5;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: normal;
  color: var(--np-charcoal);
}

@media (max-width: 989.98px) {
  .np-page__title { margin: 0; }
}

@media (max-width: 749.98px) {
  .np-page__title { margin: 32px 0 0; }
}

/* rich text as the theme's .rte painted it */
.np-rte { font-size: 16px; line-height: 1.5; color: var(--np-charcoal); }
.np-rte p { margin: 16px 0; }
.np-rte h2 { margin: 20px 0; font-size: 28.8px; line-height: 1.5; font-weight: 700; }
.np-rte h3 { margin: 16px 0; font-size: 24px; line-height: 1.5; font-weight: 700; }
.np-rte ul, .np-rte ol { margin: 16px 0; padding-left: 32px; }
.np-rte li { margin: 0; }
.np-rte a { color: var(--np-red); text-decoration: underline; }
.np-rte strong { font-weight: 700; }

/* 404 */
.np-404 {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 35rem;
  margin: 0 auto;
  padding: 0 12px;
  text-align: center;
}

.np-404 .np-page__title { margin: 24px 0; }

.np-404__code {
  margin: 24px 0;
  font-size: 128px;
  line-height: 0.5;
  font-weight: 700;
  color: var(--np-charcoal);
}

.np-404__link {
  margin: 24px 0;
  padding: 8px 0;
  color: var(--np-red);
  text-decoration: underline;
}

@media (max-width: 749.98px) {
  .np-404__code { font-size: 96px; }
}

/* The policy layout: Shopify's 585px column widened by 200px, 20px sides,
   the title left and as typed (no uppercase), the same rich-text rhythm. */
.np-page--policy {
  max-width: 785px;
  padding: 0 20px 56px;
}

.np-page--policy .np-page__title {
  margin: 24px 0;
  text-align: left;
  text-transform: none;
}
