/* Page skeleton shared by every public page. */
@layer base {
  html {
    /* Anchors, JS scrolling and Turbo all use the elements' scroll-margin-top. */
    scroll-padding-top: 0;
    color-scheme: light;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }

  body {
    background: var(--pl-paper);
    color: var(--pl-ink);
    font-family: var(--pl-font);
    font-size: var(--pl-fs-body);
    line-height: var(--pl-lh-body);
  }

  /* <div id="top">: header, main and footer in a full-height column. */
  .pl-page {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background: var(--pl-paper);
  }

  /* Skip-link target on the legal pages: lands just under the sticky header. */
  .pl-main {
    scroll-margin-top: var(--pl-header-h);
    flex: 1 0 auto;
    display: flex;
    flex-direction: column;
  }

  /* The design's centered content column. */
  .pl-container {
    max-width: var(--pl-container);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--pl-gutter);
    padding-right: var(--pl-gutter);
  }

  /* In-page sections (#why, #inside, #order): clear the 64px sticky header. */
  .pl-section {
    scroll-margin-top: var(--pl-scroll-margin);
    padding-top: var(--pl-section-y);
    padding-bottom: var(--pl-section-y);
  }

  /* Section heading (h2) type; margins and max-width belong to each section. */
  .pl-h2 {
    margin: 0;
    font-size: var(--pl-fs-h2);
    font-weight: 800;
    line-height: 1.14;
    letter-spacing: -0.02em;
  }

  /* Hidden brand sprite (BrandHelper#brand_sprite). */
  .pl-sprite {
    position: absolute;
    width: 0;
    height: 0;
    overflow: hidden;
  }

  /* "Skip to the order form": off-screen until focused. */
  .pl-skip {
    position: absolute;
    left: 12px;
    top: 10px;
    z-index: 40;
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 0 20px;
    border-radius: var(--pl-r-pill);
    background: var(--pl-cream);
    color: var(--pl-green-950);
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
    transform: translateY(-200%);
  }

  .pl-skip:focus {
    transform: none;
    outline: 3px solid var(--pl-ink);
    outline-offset: 3px;
    box-shadow: 0 0 0 3px var(--pl-paper);
  }
}
