/* Shared header and footer for the story, account and checkout pages. */
@font-face {
  font-family: 'Blackboard Ultra';
  src: url('assets/fonts/blackboard-ultra/BlackboardUltra-Terminal-Regular.woff2') format('woff2');
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
.site-header,
.site-footer {
  color: #382f45;
  font-family: 'DM Sans', Arial, sans-serif;
  font-weight: 400;
  line-height: normal;
}
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 10;
  width: 100%;
  height: 92px;
  padding: 0 4.3%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid color-mix(in srgb, currentColor 15%, transparent);
  background: #f6f3ece6;
  backdrop-filter: blur(12px);
}
.site-header nav {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  gap: 36px;
  font-family: 'Blackboard Ultra', cursive;
  font-size: 26px;
  font-weight: 400;
  font-synthesis: none;
  line-height: 1;
  letter-spacing: normal;
}
.site-header .brand-link { min-width: 0; flex-shrink: 1; }
.site-header .brand-logo { max-width: 100%; }
.site-header nav :is(a, button) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 44px;
  padding: 9px 11px;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: inherit;
  font: inherit;
  text-decoration: none;
  white-space: nowrap;
  transition: background .2s, box-shadow .2s;
}
.site-header nav span { margin: 0; font-size: inherit; }
.site-header nav .products-link[aria-current="page"] { text-decoration: underline; text-underline-offset: 5px; }
:is(.site-header, .site-footer) a { color: inherit; text-decoration: none; }
:is(.site-header, .site-footer) :is(a, button):focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 6px;
}
/* Every page uses the original glyph, including content and dynamic actions. */
.action-arrow {
  display: inline-block;
  width: 22px;
  height: 22px;
  flex: 0 0 auto;
  vertical-align: middle;
  overflow: visible;
  --arrow-x: 3px;
  --arrow-y: -3px;
  transition: translate .22s cubic-bezier(.22, .61, .36, 1), rotate .22s cubic-bezier(.22, .61, .36, 1);
}
.action-arrow--down-right { rotate: 90deg; --arrow-y: 3px; }
.action-arrow--down { rotate: 135deg; --arrow-x: 0px; --arrow-y: 3px; }
.action-arrow--up { rotate: -45deg; --arrow-x: 0px; }
.action-arrow--left { rotate: 225deg; --arrow-x: -3px; --arrow-y: 0px; }
.action-arrow--right { rotate: 45deg; --arrow-y: 0px; }
.site-header nav .action-arrow { width: 19px; height: 19px; }
.site-footer {
  padding: 55px 4.3% 25px;
  background: #e4deed;
}
.site-footer .footer-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 60px;
}
.site-footer .footer-top > span {
  font-family: Arabella, cursive;
  font-size: 33px;
  font-weight: 400;
  font-style: normal;
  line-height: 1.2;
  letter-spacing: 0;
  font-kerning: normal;
  font-variant-ligatures: common-ligatures contextual;
  scale: .9 1.2;
  transform-origin: left center;
}
.site-footer .back-top {
  display: flex;
  align-items: center;
  gap: 30px;
  min-height: 44px;
  padding: 8px 0;
  border: 0;
  border-bottom: 1px solid #382f4540;
  background: none;
  color: inherit;
  font: inherit;
  font-size: 14px;
  transition: box-shadow .2s;
}
.site-footer .footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding-top: 25px;
  border-top: 1px solid #382f4528;
  font-size: 13px;
  opacity: .85;
}
.site-footer .footer-links { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.site-footer .footer-bottom :is(a, button) {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  min-height: 44px;
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  font-size: 14px;
  text-decoration: underline;
  text-decoration-color: transparent;
  text-underline-offset: 5px;
  transition: text-decoration-color .2s;
}
.site-header nav :is(a, button):focus-visible { background: color-mix(in srgb, currentColor 10%, transparent); }
.site-footer .back-top:focus-visible { box-shadow: 0 2px 0 currentColor; }
.site-footer .footer-bottom :is(a, button):focus-visible { text-decoration-color: currentColor; }
:is(.site-header, .site-footer) :is(a, button):focus-visible .action-arrow { translate: var(--arrow-x) var(--arrow-y); }
@media (hover: hover) and (pointer: fine) {
  .site-header nav :is(a, button):hover { background: color-mix(in srgb, currentColor 10%, transparent); }
  .site-footer .back-top:hover { box-shadow: 0 2px 0 currentColor; }
  .site-footer .footer-bottom :is(a, button):hover { text-decoration-color: currentColor; }
  :is(.site-header, .site-footer) :is(a, button):hover .action-arrow { translate: var(--arrow-x) var(--arrow-y); }
}
.site-header nav :is(a, button):active { background: color-mix(in srgb, currentColor 18%, transparent); }
@media (max-width: 900px) {
  .site-header { height: 76px; padding: 0 6%; }
  .site-header nav { gap: 14px; font-size: 22px; }
  .site-footer .footer-top > span { font-size: 28px; }
  .site-footer .footer-bottom > .footer-note { display: none; }
}
@media (min-width: 601px) and (max-width: 1100px) {
  .site-header nav { gap: 10px; font-size: 22px; }
  .site-header nav :is(a, button) { padding-inline: 6px; }
}
@media (min-width: 601px) and (max-width: 760px) {
  .site-header nav > a[href$="#how-it-works"] { display: none; }
}
@media (max-width: 600px) {
  .site-header {
    /* Use the header's content width, including on pages with a scrollbar.
       Reserve enough room for the longer signed-in Account label, too. */
    --mobile-logo-width: min(192px, calc(100% - 144px));
    gap: 6px;
    /* Match the desktop's top clearance and lower cord overhang. */
    height: clamp(64px, calc((88vw - 144px) * 315.64 / 714.525281 - 8px), 76.82px);
    min-height: 64px;
  }
  .site-header .brand-logo { width: 100%; }
  .site-header .brand-link { width: var(--mobile-logo-width); flex-shrink: 0; align-self: flex-start; margin-top: 4px; }
  .site-header nav {
    gap: 6px;
    font-size: 20px;
    align-self: flex-start;
    /* Photo's baseline is y=210 in the logo's viewBox (which starts at -2).
       Match it after the logo's 4px top inset; the 44px link box has a
       22px half-height plus a .25em font-baseline offset. */
    margin-top: calc(4px + var(--mobile-logo-width) * 212 / 714.525281 - 22px - .25em);
  }
  .site-header nav :is(a, button) { gap: 5px; padding: 8px 3px; }
  .site-header nav > a { display: none; }
  .site-header nav :is(.products-link, .login-link) { display: inline-flex; }
  .site-header nav .action-arrow { display: none; }
  .site-header nav a.contact-link { display: none; }
  .site-footer { padding: 35px 7% 20px; }
  .site-footer .footer-top {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 25px 18px;
    padding-bottom: 35px;
  }
  .site-footer .footer-top .back-top { grid-column: 1 / -1; justify-self: start; }
  .site-footer .footer-bottom { align-items: flex-start; flex-direction: column; gap: 8px; font-size: 12px; }
  .site-footer .footer-links { gap: 18px; }
  .site-footer .footer-bottom :is(a, button) { font-size: 13px; }
}
@media (max-width: 360px) {
  .site-footer .footer-top { grid-template-columns: 1fr; }
  .site-footer .footer-logo { width: 176px; }
}
@media (prefers-reduced-motion: reduce) {
  .action-arrow { translate: none !important; transition: none; }
}
