/* =============================================================
   Bookstacks and Stories — requested August 2026 revisions
   Preserves the approved type, color and component language.
   ============================================================= */

/* Paper-tear mask shape, inlined so it is immune to CORS.
   Editable source: assets/images/paper-tear-edge.svg
   Tile is 1200x40 and starts/ends at y=20 so it repeats seamlessly. */
:root {
  --tear-mask: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1200' height='40' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath fill='%23fff' d='M0,20Q22,13 46,16Q68,19 92,13Q104,11 112,19Q132,26 158,18Q182,11 206,16Q216,18 224,11Q246,6 270,13Q292,20 316,15Q328,13 338,22Q360,29 386,22Q408,16 432,20Q444,22 454,13Q476,7 500,14Q522,21 546,17Q558,15 568,24Q590,30 616,23Q638,17 662,21Q674,23 684,14Q706,8 730,15Q752,22 776,18Q788,16 798,10Q820,5 844,13Q866,21 890,17Q902,15 912,25Q934,31 960,24Q982,18 1006,21Q1018,23 1028,14Q1050,9 1074,16Q1096,22 1120,18Q1132,16 1142,11Q1164,7 1182,14Q1192,17 1200,20V40H0Z'/%3E%3C/svg%3E");
}

/* Compact header ------------------------------------------------ */
.site-header__inner { padding-block: .42rem; }
.site-header.is-stuck .site-header__inner { padding-block: .32rem; }

.brand__logo { height: 56px; }
.site-header.is-stuck .brand__logo { height: 50px; }

.site-nav { gap: clamp(.7rem, .25rem + .8vw, 1.35rem); }
.site-nav__list { gap: clamp(.65rem, .2rem + .75vw, 1.15rem); }
.site-nav__link { font-size: .88rem; }

.site-nav__actions .btn {
  min-height: 40px;
  padding: .55rem .95rem;
  font-size: .82rem;
}

/* About dropdown ------------------------------------------------ */
.site-nav__item { position: relative; }
.site-nav__parent { display: flex; align-items: center; }

.site-nav__submenu-toggle {
  position: relative;
  width: 24px;
  height: 32px;
  flex: 0 0 24px;
  color: rgba(255, 255, 255, .78);
}
.site-nav__submenu-toggle::before {
  content: "";
  position: absolute;
  top: 50%; left: 50%;
  width: 7px; height: 7px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translate(-50%, -68%) rotate(45deg);
  transition: transform var(--dur) var(--ease);
}
.site-nav__item.is-open .site-nav__submenu-toggle::before {
  transform: translate(-50%, -28%) rotate(225deg);
}

.site-nav__submenu {
  position: absolute;
  top: calc(100% + .65rem);
  left: -.9rem;
  z-index: 120;
  min-width: 255px;
  padding: .55rem;
  background: var(--black);
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: var(--r-md);
  box-shadow: 0 18px 44px rgba(0, 0, 0, .35);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity .2s ease, visibility .2s ease, transform .2s ease;
}
.site-nav__submenu::before {
  content: "";
  position: absolute;
  inset: -.7rem 0 auto;
  height: .7rem;
}
.site-nav__item--has-children:hover .site-nav__submenu,
.site-nav__item--has-children:focus-within .site-nav__submenu,
.site-nav__item--has-children.is-open .site-nav__submenu {
  opacity: 1;
  visibility: visible;
  transform: none;
}

.site-nav__submenu-link {
  display: block;
  padding: .68rem .78rem;
  border-radius: 8px;
  font-size: .88rem;
  font-weight: 600;
  line-height: 1.25;
  color: rgba(255, 255, 255, .82);
  transition: color .2s ease, background-color .2s ease;
}
.site-nav__submenu-link:hover,
.site-nav__submenu-link:focus-visible,
.site-nav__submenu-link.is-current {
  color: #fff;
  background: rgba(255, 255, 255, .09);
}
.site-nav__submenu-link.is-current { color: var(--gold); }

/* Homepage hero: approximately 40px taller --------------------- */
.hero { min-height: 340px; }
.hero__slide img { object-position: center; }
.hero__slide:first-child img { object-position: center 38%; }

/* App overview directly below the hero -------------------------- */
.app-overview { overflow: hidden; }
.app-overview__head {
  max-width: 56rem;
  margin-bottom: clamp(2.2rem, 1.5rem + 2vw, 3.4rem);
}
.app-overview__head .section-title { max-width: none; }
.app-overview__head .script { display: inline-block; }
.app-overview__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 280px) minmax(0, 1fr);
  gap: clamp(1.2rem, .7rem + 2vw, 2.6rem);
  align-items: center;
  max-width: 1180px;
  margin-inline: auto;
}
.app-overview__column {
  display: grid;
  gap: clamp(1rem, .7rem + 1vw, 1.55rem);
}
.app-feature {
  display: grid;
  grid-template-columns: 68px minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
  min-width: 0;
  padding: clamp(1rem, .8rem + .7vw, 1.35rem);
  background: rgba(255, 255, 255, .78);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-sm);
}
.app-overview__column:first-child .app-feature:first-child { border-top: 3px solid var(--burgundy); }
.app-overview__column:first-child .app-feature:last-child { border-top: 3px solid var(--teal); }
.app-overview__column:last-child .app-feature:first-child { border-top: 3px solid var(--gold); }
.app-overview__column:last-child .app-feature:last-child { border-top: 3px solid var(--teal); }
.app-overview__column:first-child .app-feature:last-child .app-feature__label { color: var(--teal); }
.app-overview__column:last-child .app-feature:first-child .app-feature__label { color: var(--goldDk, #c98a22); }
.app-overview__column:last-child .app-feature:last-child .app-feature__label { color: var(--teal); }
.app-feature__icon {
  display: grid;
  place-items: center;
  width: 68px;
  height: 68px;
}
.app-feature__icon-art { width: 68px; height: 68px; }
.app-feature__label {
  margin-bottom: .3rem;
  font-size: var(--fs-xs);
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--burgundy);
}
.app-feature__title {
  font-size: clamp(1.02rem, .94rem + .3vw, 1.2rem);
  line-height: 1.25;
  color: var(--ink);
}
.app-feature__copy {
  margin-top: .45rem;
  font-size: var(--fs-sm);
  line-height: 1.55;
  color: var(--text-muted);
}
.app-feature__meta {
  margin-top: .65rem;
  font-size: .7rem;
  font-weight: 700;
  line-height: 1.45;
  color: var(--teal);
}
.app-overview__phone {
  position: relative;
  justify-self: center;
  width: min(100%, 270px);
  margin: 0;
  padding: 10px;
  overflow: hidden;
  background: #151515;
  border: 1px solid rgba(255, 255, 255, .5);
  border-radius: 38px;
  box-shadow: 0 25px 60px rgba(46, 22, 15, .28);
  transform: rotate(-1deg);
}
.app-overview__phone img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 29px;
}
.app-overview__speaker {
  position: absolute;
  z-index: 2;
  top: 10px;
  left: 50%;
  width: 36%;
  height: 12px;
  border-radius: 0 0 10px 10px;
  background: #151515;
  transform: translateX(-50%);
}
.app-overview__footer {
  margin-top: clamp(2rem, 1.3rem + 2vw, 3rem);
  text-align: center;
}
.app-overview__footer h3 { font-size: clamp(1.35rem, 1.1rem + .9vw, 1.85rem); color: var(--ink); }
.app-overview__footer p { margin: .35rem 0 1.05rem; color: var(--text-muted); }
#download-app,
#directory { scroll-margin-top: 82px; }

/* Library Alcove introduction ---------------------------------- */
.alcove-intro {
  display: grid;
  grid-template-columns: minmax(220px, .9fr) minmax(0, 2.1fr);
  gap: clamp(1.4rem, .9rem + 2vw, 2.7rem);
  align-items: center;
  margin-bottom: clamp(2rem, 1.4rem + 2vw, 3rem);
  padding: clamp(1.4rem, 1rem + 1.5vw, 2.15rem);
  background: rgba(255, 255, 255, .55);
  border: 1px solid var(--line);
  border-radius: var(--r-xl);
}
.alcove-intro__lead .section-title { max-width: 11ch; }
.alcove-intro__kicker {
  margin-top: .75rem;
  font-family: var(--font-display);
  font-weight: 800;
  color: var(--ink);
}
.alcove-intro__lead .section-lede { margin-top: .45rem; }
.alcove-features {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
}
.alcove-feature {
  min-width: 0;
  padding-inline: clamp(.8rem, .5rem + .8vw, 1.25rem);
  border-left: 1px solid var(--line);
}
.alcove-feature__icon {
  display: block;
  width: 56px;
  height: 56px;
  margin-bottom: .55rem;
}
.alcove-feature__icon-art { width: 56px; height: 56px; }
.alcove-feature__title {
  font-size: clamp(.92rem, .86rem + .2vw, 1.05rem);
  line-height: 1.25;
  color: var(--ink);
}
.alcove-feature__copy {
  margin-top: .4rem;
  font-size: .78rem;
  line-height: 1.5;
  color: var(--text-muted);
}

/* Library Alcove cards ----------------------------------------- */
.alcove-post-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--gap);
}
.alcove-post-card { min-width: 0; }
.alcove-post-card__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-sm);
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.alcove-post-card__link:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-lg);
}
.alcove-post-card__media {
  display: grid;
  place-items: center;
  aspect-ratio: 16 / 10;
  padding: 0;
  overflow: hidden;
  background: var(--parchment-deep);
}
.alcove-post-card__media img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .6s var(--ease);
}
.alcove-post-card__media.is-landscape { padding: 0; }
.alcove-post-card__media.is-landscape img { object-fit: cover; }
.alcove-post-card__link:hover .alcove-post-card__media img { transform: scale(1.035); }

.alcove-post-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 1.2rem 1.25rem 1.35rem;
}
.alcove-post-card__title {
  display: block;
  font-family: var(--font-display);
  font-size: 1.08rem;
  font-weight: 700;
  line-height: 1.28;
  color: var(--ink);
}
.alcove-post-card__category {
  display: block;
  margin-top: .55rem;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .09em;
  line-height: 1.35;
  text-transform: uppercase;
  color: var(--burgundy);
}
.alcove-post-card__excerpt {
  display: block;
  margin-top: .7rem;
  font-size: var(--fs-sm);
  line-height: 1.55;
  color: var(--text-muted);
}
.alcove-post-card__more {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  margin-top: auto;
  padding-top: 1rem;
  font-size: var(--fs-sm);
  font-weight: 700;
  color: var(--burgundy);
}
.alcove-post-card__more svg,
.recognized-card__link svg,
.bookstore-card__directions svg {
  width: 1rem;
  height: 1rem;
  flex: 0 0 auto;
}

/* Award-winning and recognized books --------------------------- */
.home-recognized .section-title .script { color: var(--gold); }
.home-recognized .section-head { max-width: none; }
.home-recognized .section-title { max-width: none; }
.recognized-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--gap);
}
.recognized-card {
  display: grid;
  grid-template-columns: 108px minmax(0, 1fr);
  gap: 1.2rem;
  align-items: start;
  padding: 1.2rem;
  background: rgba(255, 255, 255, .09);
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: var(--r-lg);
  transition: transform var(--dur) var(--ease), background-color var(--dur) var(--ease);
}
.recognized-card:hover {
  transform: translateY(-4px);
  background: rgba(255, 255, 255, .13);
}
.recognized-card__cover {
  width: 100%;
  aspect-ratio: 2 / 3;
  object-fit: contain;
  border-radius: var(--r-sm);
  background: #fff;
  box-shadow: 0 10px 24px rgba(0, 0, 0, .22);
}
.recognized-card__body { display: flex; flex-direction: column; min-height: 100%; }
.recognized-card__category {
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .08em;
  line-height: 1.35;
  text-transform: uppercase;
  color: var(--gold);
}
.recognized-card__title {
  margin-top: .55rem;
  font-size: 1.18rem;
  line-height: 1.25;
  color: #fff;
}
.recognized-card__author {
  margin-top: .45rem;
  font-size: var(--fs-sm);
  color: var(--text-light);
}
.recognized-card__link {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  margin-top: auto;
  padding-top: .9rem;
  font-size: var(--fs-sm);
  font-weight: 700;
  color: #fff;
}
.recognized-card__link:hover { color: var(--gold); }

.recognized-grid--light .recognized-card {
  background: #fff;
  border-color: var(--line);
  box-shadow: var(--shadow-sm);
}
.recognized-grid--light .recognized-card:hover {
  background: #fff;
  box-shadow: var(--shadow-md);
}
.recognized-grid--light .recognized-card__category,
.recognized-grid--light .recognized-card__link { color: var(--burgundy); }
.recognized-grid--light .recognized-card__title { color: var(--ink); }
.recognized-grid--light .recognized-card__author { color: var(--text-muted); }

/* Events + Partners band: contained, balanced, no overlap ------ */
.ecta__inner {
  display: block !important;
  aspect-ratio: auto !important;
  overflow: hidden;
}
.ecta__events {
  display: grid;
  grid-template-columns: minmax(215px, .86fr) minmax(0, 2.35fr) minmax(190px, .78fr);
  gap: clamp(1rem, .65rem + .7vw, 1.35rem);
  align-items: stretch;
  padding: clamp(1.4rem, .9rem + 1.5vw, 2.25rem);
}
.ecta__intro { align-self: center; padding-right: 0; }
.ecta__cards {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-flow: row;
  grid-auto-columns: auto;
  gap: 1rem;
  overflow: visible;
  padding: 0;
}
.ecta__card {
  align-self: stretch;
  height: auto;
  min-height: 250px;
}
.ecta__join {
  align-self: stretch;
  height: auto;
  min-height: 250px;
  max-width: none;
  margin: 0;
}
.ecta__figure { display: none !important; }

.ecta__partners {
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: clamp(1rem, .75rem + 1vw, 1.8rem);
  padding: clamp(1.25rem, .9rem + 1vw, 1.8rem) clamp(1.4rem, .9rem + 1.5vw, 2.25rem);
}
.ecta__partner-action { padding-right: 0; }

/* New Member Meetup boundary ----------------------------------- */
.event-new-member {
  z-index: 0;
  margin-top: clamp(.65rem, .4rem + .55vw, 1rem) !important;
  padding-top: var(--section-y) !important;
  border-radius: var(--r-panel);
  isolation: isolate;
  contain: paint;
}
.event-new-member .feature-split__figure img {
  width: 100%;
  max-height: 470px;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

/* Contributor profiles ----------------------------------------- */
.contributor-profiles { display: grid; gap: clamp(1.4rem, 1rem + 1.5vw, 2.3rem); }
.contributor-profile {
  display: grid;
  grid-template-columns: minmax(260px, .82fr) minmax(0, 1.18fr);
  gap: clamp(1.5rem, 1rem + 2vw, 3rem);
  align-items: center;
  padding: clamp(1.25rem, .9rem + 1.4vw, 2rem);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-xl);
  box-shadow: var(--shadow-sm);
}
.contributor-profile--reverse .contributor-profile__figure { order: 2; }
.contributor-profile--reverse .contributor-profile__body { order: 1; }
.contributor-profile__figure {
  margin: 0;
  overflow: hidden;
  border-radius: var(--r-lg);
  background: var(--parchment-deep);
}
.contributor-profile__figure img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.contributor-profile__name {
  font-size: clamp(1.8rem, 1.35rem + 1.7vw, 2.7rem);
  color: var(--ink);
}
.contributor-profile__bio {
  margin: 1rem 0 1.25rem;
  color: var(--text-muted);
}

/* FAQ ---------------------------------------------------------- */
.faq-list { display: grid; gap: .85rem; }
.faq-item {
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  box-shadow: var(--shadow-sm);
}
.faq-item summary {
  position: relative;
  padding: 1.1rem 3.4rem 1.1rem 1.25rem;
  font-family: var(--font-display);
  font-size: 1.06rem;
  font-weight: 700;
  line-height: 1.35;
  color: var(--ink);
  cursor: pointer;
  list-style: none;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
  content: "+";
  position: absolute;
  right: 1.15rem; top: 50%;
  width: 28px; height: 28px;
  display: grid; place-items: center;
  border-radius: 50%;
  background: var(--parchment);
  color: var(--burgundy);
  transform: translateY(-50%);
}
.faq-item[open] summary::after { content: "−"; }
.faq-item__answer {
  padding: 0 1.25rem 1.2rem;
  color: var(--text-muted);
}
.faq-item__answer p { margin: 0; }
.faq-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .8rem;
  margin-top: 1.8rem;
}

/* Original welcome video --------------------------------------- */
.video-frame {
  position: relative;
  aspect-ratio: 16 / 9;
  margin-top: 1.5rem;
  overflow: hidden;
  border-radius: var(--r-xl);
  background: #000;
  box-shadow: var(--shadow-lg);
}
.video-frame iframe {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  border: 0;
}

/* Local bookstore directory ------------------------------------ */
.bookstore-tools {
  display: grid;
  grid-template-columns: minmax(260px, 1.45fr) minmax(160px, .62fr) auto;
  gap: 1rem;
  align-items: end;
  margin-bottom: 1rem;
  padding: 1.1rem;
  background: rgba(255, 255, 255, .72);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
}
.bookstore-tools .field { margin: 0; }
.bookstore-tools__reset { min-height: 50px; white-space: nowrap; }
.bookstore-results {
  margin-bottom: 1rem;
  font-size: var(--fs-sm);
  font-weight: 700;
  color: var(--burgundy);
}
.bookstore-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--gap);
}
.bookstore-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 1.25rem;
  background: #fff;
  border: 1px solid var(--line);
  border-top: 4px solid var(--gold);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-sm);
}
.bookstore-card:nth-child(3n+2) { border-top-color: var(--burgundy); }
.bookstore-card:nth-child(3n+3) { border-top-color: var(--teal); }
.bookstore-card__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .8rem;
}
.bookstore-card__name {
  font-size: 1.12rem;
  line-height: 1.28;
  color: var(--ink);
}
.bookstore-card__state {
  flex: 0 0 auto;
  padding: .24rem .48rem;
  border-radius: var(--r-pill);
  background: var(--parchment);
  font-size: .7rem;
  font-weight: 700;
  color: var(--burgundy);
}
.bookstore-card__address {
  margin-top: .7rem;
  font-size: var(--fs-sm);
  color: var(--text-muted);
}
.bookstore-card__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .7rem;
  margin-top: auto;
  padding-top: 1rem;
  font-size: var(--fs-sm);
  font-weight: 700;
  color: var(--burgundy);
}
.bookstore-card__directions { display: inline-flex; align-items: center; gap: .4rem; }
.bookstore-empty {
  padding: 1.25rem;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  text-align: center;
  color: var(--text-muted);
}

/* Responsive --------------------------------------------------- */
@media (max-width: 1100px) {
  .nav-toggle {
    position: relative;
    z-index: 95;
    display: inline-flex;
    width: 40px; height: 40px;
  }
  .brand { position: relative; z-index: 95; }

  .site-nav {
    position: fixed;
    inset: 0 0 auto;
    top: 0;
    z-index: 90;
    height: 100dvh;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
    padding: 4.8rem var(--gutter) 2rem;
    overflow-y: auto;
    background: var(--black);
    transform: translateX(100%);
    transition: transform .35s var(--ease);
  }
  .site-nav.is-open { transform: none; }
  body.nav-open { overflow: hidden; }

  .site-nav__list { flex-direction: column; align-items: stretch; gap: 0; }
  .site-nav__item { border-bottom: 1px solid rgba(255, 255, 255, .12); }
  .site-nav__parent { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
  .site-nav__link { display: block; padding: .88rem 0; font-size: 1.02rem; }
  .site-nav__link::after { display: none; }
  .site-nav__submenu-toggle { width: 48px; height: 100%; }

  .site-nav__submenu {
    position: static;
    min-width: 0;
    max-height: 0;
    padding: 0;
    overflow: hidden;
    background: rgba(255, 255, 255, .04);
    border: 0;
    border-radius: 0;
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    transform: none;
    transition: max-height .3s ease, padding .3s ease;
  }
  .site-nav__submenu::before { display: none; }
  .site-nav__item--has-children.is-open .site-nav__submenu {
    max-height: 18rem;
    padding: .15rem 0 .75rem;
  }
  .site-nav__submenu li { border: 0 !important; }
  .site-nav__submenu-link { padding: .7rem 1rem; }

  .site-nav__actions {
    flex-direction: column;
    align-items: stretch;
    gap: 1rem;
    margin-top: 1.4rem;
  }
  .site-nav__actions .btn { width: 100%; }
  .nav-toggle[aria-expanded="true"] .nav-toggle__open { display: none; }
  .nav-toggle[aria-expanded="true"] .nav-toggle__close { display: block; }

  .alcove-post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .recognized-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .recognized-card:last-child { grid-column: 1 / -1; }

  .ecta__events { grid-template-columns: 1fr; }
  .ecta__intro { max-width: 42rem; }
  .ecta__cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ecta__join {
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    text-align: left;
  }

  .bookstore-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .brand__logo { height: 50px; }
  .site-header.is-stuck .brand__logo { height: 46px; }

  .hero { min-height: 340px; padding-block: 2rem; }
  .hero__slide img { object-position: 62% center; }

  .home-pillars { padding-block: 0; }
  .home-pillars .pillars__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
  }
  .home-pillars .pillar { padding: 1rem .55rem; }

  .recognized-grid { grid-template-columns: 1fr; }
  .recognized-card:last-child { grid-column: auto; }

  .ecta__cards { grid-template-columns: 1fr; }
  .ecta__card { min-height: 220px; }
  .ecta__join { display: flex; min-height: 190px; text-align: center; }
  .ecta__partners {
    grid-template-columns: 1fr;
    justify-items: start;
    text-align: left;
  }
  .ecta__partner-action { width: 100%; }
  .ecta__partner-action .btn,
  .ecta__intro .btn,
  .ecta__join .btn { width: 100%; justify-content: center; }

  .contributor-profile,
  .contributor-profile--reverse {
    grid-template-columns: 1fr;
  }
  .contributor-profile--reverse .contributor-profile__figure,
  .contributor-profile--reverse .contributor-profile__body { order: initial; }

  .bookstore-tools { grid-template-columns: 1fr; }
  .bookstore-tools__reset { width: 100%; }
  .bookstore-grid { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .alcove-post-grid { grid-template-columns: 1fr; }
  .recognized-card { grid-template-columns: 90px minmax(0, 1fr); }
  .faq-actions .btn { width: 100%; }
  .page-hero__inner { padding-left: var(--gutter); }
}

/* =============================================================
   PDF review pass — August 30, 2026
   ============================================================= */

html { overflow-x: hidden; }

/* Flat, full-width content bands with clean boundaries. The composite
   Events + Partners feature remains the intentional rounded exception. */
.section {
  width: 100%;
  border-radius: 0;
}
.section + .section {
  margin-top: 0;
  padding-top: var(--section-y);
}
.section--white { background: #fff; }
.section-cta { padding-bottom: clamp(.25rem, .1rem + .45vw, .65rem); }
.event-new-member { border-radius: 0; }

/* Approved near-black for the shorter header and both nav states. */
.site-header,
.site-nav,
.site-nav__submenu { background-color: #0a0a0a; }

/* Wine-toned hero overlay: lighter and warmer than the previous black veil. */
.hero::after,
.page-hero::after {
  background: linear-gradient(100deg,
    rgba(84, 24, 39, .84) 0%,
    rgba(104, 28, 46, .72) 42%,
    rgba(111, 31, 49, .45) 75%,
    rgba(111, 31, 49, .24) 100%);
}

/* Irregular paper-tear edge shared by home and interior heroes.
   The mask TILES at a fixed width rather than stretching to 100%, so the
   tear keeps the same physical scale on a phone and on a wide monitor.
   A faint vertical gradient across the strip reads as the paper catching
   the light along the rip. */
.hero::before,
.page-hero::before {
  content: "";
  position: absolute;
  z-index: 6;
  left: 0;
  right: 0;
  bottom: -1px;
  height: clamp(26px, 2.4vw, 40px);
  background:
    linear-gradient(180deg,
      rgba(255, 255, 255, .55) 0%,
      rgba(255, 255, 255, 0)  38%),
    var(--cream);
  /* Mask inlined as a data URI: external SVG masks are subject to CORS and
     silently fail on file:// and cross-origin CDNs. Source shape is kept at
     assets/images/paper-tear-edge.svg for editing. */
  -webkit-mask: var(--tear-mask) 0 100% / 1200px 100% repeat-x;
  mask: var(--tear-mask) 0 100% / 1200px 100% repeat-x;
  filter: drop-shadow(0 -1px 1px rgba(31, 12, 10, .13));
  pointer-events: none;
}
.page-hero {
  width: 100%;
  max-width: none;
  margin-left: 0;
  transform: none;
}
.hero__dots { z-index: 7; bottom: clamp(2rem, 1.55rem + 1vw, 2.65rem); }
.home-pillars { background: var(--cream); }
.hero__content .btn-row { margin-bottom: clamp(1rem, .8rem + .8vw, 1.65rem); }

/* Manual carousel arrows. */
.hero__arrows {
  position: absolute;
  z-index: 5;
  inset: 0;
  pointer-events: none;
}
.hero__arrow {
  position: absolute;
  top: 50%;
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, .55);
  border-radius: 50%;
  color: #fff;
  background: rgba(51, 51, 51, .58);
  box-shadow: 0 8px 22px rgba(0, 0, 0, .2);
  backdrop-filter: blur(5px);
  transform: translateY(-50%);
  transition: background-color var(--dur) var(--ease), transform var(--dur) var(--ease);
  pointer-events: auto;
}
.hero__arrow:hover {
  background: var(--burgundy);
  transform: translateY(-50%) scale(1.06);
}
.hero__arrow svg { width: 21px; height: 21px; }
.hero__arrow--prev { left: clamp(.45rem, .7vw, .8rem); }
.hero__arrow--next { right: clamp(.45rem, .7vw, .8rem); }
.no-js .hero__arrows { display: none; }

/* Keep every carousel headline in the same approved display treatment. */
.hero__title {
  max-width: 21ch;
  font-family: var(--font-display);
  font-weight: 900;
  letter-spacing: -.025em;
}
.hero__title .script {
  max-width: 29ch;
  font-size: .56em;
  line-height: 1.17;
}

/* A restrained left-to-right script reveal and hand-drawn underline. */
.hero__inner .script,
.page-hero .script {
  width: fit-content;
  max-width: 100%;
  color: var(--gold);
  clip-path: inset(0 100% 0 0);
}
.hero__inner.is-active .script,
.page-hero .script {
  animation: script-reveal .9s .2s var(--ease) forwards;
}
.final-cta__title .script {
  width: fit-content;
  max-width: 100%;
  margin-inline: auto;
}
.hero__inner .script__flourish path,
.page-hero .script__flourish path {
  stroke-dasharray: 250;
  stroke-dashoffset: 250;
}
.hero__inner.is-active .script__flourish path,
.page-hero .script__flourish path {
  animation: underline-draw .9s .72s var(--ease) forwards;
}
@keyframes script-reveal {
  to { clip-path: inset(0 0 0 0); }
}
@keyframes underline-draw {
  to { stroke-dashoffset: 0; }
}

/* Outside photography heroes, handwritten accents use the red family. */
.section-title .script,
.app-download .script,
.final-cta .script { color: #e74c3c; }
.section--burgundy .script,
.ecta__title .script,
.home-recognized .section-title .script { color: var(--gold); }

/* Varied lower rules requested for the Library Alcove cards. */
.alcove-post-card__link { border-bottom: 4px solid var(--teal); }
.alcove-post-card:nth-child(3n+2) .alcove-post-card__link { border-bottom-color: var(--gold); }
.alcove-post-card:nth-child(3n+3) .alcove-post-card__link { border-bottom-color: var(--burgundy); }

/* Events intro above the event photography; rounded composite retained. */
.ecta__events {
  grid-template-columns: minmax(0, 3fr) minmax(190px, .8fr);
  grid-template-areas:
    "intro intro"
    "cards join";
}
.ecta__intro { grid-area: intro; max-width: 62rem; }
.ecta__cards { grid-area: cards; }
.ecta__join  { grid-area: join; }

@media (min-width: 1200px) {
  .ecta__intro {
    display: grid;
    grid-template-columns: minmax(330px, 1.05fr) minmax(300px, .95fr);
    grid-template-areas:
      "eyebrow copy"
      "title copy";
    column-gap: clamp(1.5rem, 1rem + 1.8vw, 3rem);
    align-items: center;
    max-width: none;
  }
  .ecta__eyebrow { grid-area: eyebrow; margin-bottom: .3rem; align-self: end; }
  .ecta__title { grid-area: title; align-self: start; }
  .ecta__copy { grid-area: copy; max-width: 36ch; margin-top: 0; }
}

/* Split app CTA, matching the image-left/copy-right reference band. */
.app-download {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  min-height: clamp(290px, 23vw, 360px);
  overflow: hidden;
  background: #f8f0e3;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.app-download__media {
  position: relative;
  min-width: 0;
  min-height: 100%;
  margin: 0;
  overflow: visible;
  background: #f8f0e3;
}
.app-download__scene {
  position: absolute;
  top: 17.5%;
  right: 0;
  bottom: auto;
  left: 0;
  width: 100%;
  height: 65%;
  object-fit: cover;
  object-position: 50% 50%;
  border-radius: 0 clamp(38px, 4vw, 68px) clamp(38px, 4vw, 68px) 0;
}
.app-download__phone {
  position: absolute;
  z-index: 2;
  top: 50%;
  right: clamp(1.25rem, 3.4vw, 4.25rem);
  width: clamp(96px, 9.5vw, 148px);
  aspect-ratio: 600 / 1300;
  padding: clamp(4px, .42vw, 7px);
  overflow: hidden;
  background: #171717;
  border: 1px solid rgba(255, 255, 255, .38);
  border-radius: clamp(17px, 1.8vw, 26px);
  box-shadow: 0 18px 38px rgba(28, 12, 9, .34);
  transform: translateY(-50%) rotate(1.5deg);
}
.app-download__phone::before {
  content: "";
  position: absolute;
  z-index: 1;
  top: clamp(5px, .48vw, 8px);
  left: 50%;
  width: 38%;
  height: clamp(5px, .5vw, 8px);
  border-radius: 0 0 8px 8px;
  background: #171717;
  transform: translateX(-50%);
}
.app-download__phone img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: clamp(13px, 1.4vw, 20px);
}
.app-download__content {
  display: flex;
  align-items: center;
  padding: clamp(2rem, 1.25rem + 2.2vw, 3.65rem) max(var(--gutter), calc((100vw - var(--shell)) / 2));
  padding-left: clamp(2rem, 1.2rem + 2.5vw, 4rem);
}
.app-download__copy {
  width: min(100%, 590px);
}
.app-download__title {
  max-width: 14ch;
  font-size: var(--fs-h2);
  color: var(--ink);
}
.app-download__title .script {
  display: block;
  width: fit-content;
  margin-top: .06em;
}
.app-download__lede {
  max-width: 48ch;
  margin-top: .72rem;
  color: var(--text-muted);
}
.app-download__platforms {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  margin-top: 1.05rem;
}
.app-platform {
  display: inline-flex;
  align-items: center;
  gap: .62rem;
  min-width: 150px;
  min-height: 48px;
  padding: .48rem .9rem;
  border: 1.5px solid var(--burgundy);
  border-radius: 5px;
  background: var(--burgundy);
  color: #fff;
}
.app-platform--android {
  background: transparent;
  color: var(--burgundy);
}
.app-platform svg {
  flex: 0 0 auto;
  width: 25px;
  height: 25px;
  color: currentColor;
}
.app-platform > span {
  display: grid;
  line-height: 1.03;
}
.app-platform small {
  font-size: .66rem;
  font-weight: 600;
  letter-spacing: .02em;
}
.app-platform strong {
  font-size: 1rem;
  font-weight: 700;
}

/* Transparent footer lockup, with no plaque or container treatment. */
.footer-logo {
  display: inline-flex;
  padding: 0;
  background: transparent;
  border-radius: 0;
}
.footer-logo img {
  width: min(230px, 100%);
  height: auto;
  filter: brightness(1.65) saturate(1.05);
}

/* Contact subject sits naturally beside the form and keeps its alpha edge. */
.contact__intro { display: flex; flex-direction: column; }
.contact__intro > .section-head { margin-bottom: 1rem; }
.contact__librarian {
  width: min(100%, 300px);
  margin: 0 auto 1.45rem;
  align-self: center;
}
.contact__librarian img {
  width: 100%;
  max-height: 560px;
  object-fit: contain;
  object-position: center bottom;
}
.contact__copy { color: var(--text-muted); }
.contact__copy p + p { margin-top: 1rem; }
.contact-topics__list {
  display: grid;
  gap: .75rem;
  margin: 0;
}
.contact-topic {
  padding: .9rem 1rem;
  background: rgba(255, 255, 255, .65);
  border-left: 4px solid var(--gold);
  border-radius: 0 var(--r-md) var(--r-md) 0;
}
.contact-topic:nth-child(2) { border-left-color: var(--burgundy); }
.contact-topic:nth-child(3) { border-left-color: var(--teal); }
.contact-topic:nth-child(4) { border-left-color: var(--gold); }
.contact-topic dt {
  font-family: var(--font-display);
  font-weight: 800;
  color: var(--ink);
}
.contact-topic dd {
  margin: .25rem 0 0;
  font-size: var(--fs-sm);
  color: var(--text-muted);
}
.contact__email .contact__sub { margin-bottom: .35rem; }
.contact__email p { margin: 0; }
.contact__intro .social-list { margin-top: .85rem; }

/* Giveaway entry and app-registration verification ------------- */
.giveaway__inner {
  grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
  gap: clamp(1.6rem, 1rem + 2.5vw, 3.6rem);
  align-items: start;
}
.giveaway__content .giveaway__icon { margin-bottom: 1rem; }
.giveaway__verification {
  margin: 1rem 0 .9rem;
  padding-left: .9rem;
  border-left: 3px solid var(--gold);
  font-size: var(--fs-sm);
  color: rgba(255, 255, 255, .78);
}
.giveaway-form {
  padding: clamp(1.25rem, .9rem + 1.2vw, 1.9rem);
  background: rgba(255, 255, 255, .09);
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: var(--r-xl);
}
.giveaway-form__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .9rem 1rem;
}
.giveaway-form .field { margin: 0; }
.giveaway-form .field__label { color: #fff; }
.giveaway-form .field__input {
  background: rgba(255, 255, 255, .96);
  border-color: rgba(255, 255, 255, .42);
}
.giveaway-form__consent {
  display: flex;
  gap: .7rem;
  align-items: flex-start;
  margin: 1.05rem 0 1.15rem;
  font-size: var(--fs-sm);
  line-height: 1.45;
  color: rgba(255, 255, 255, .86);
}
.giveaway-form__consent input {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin-top: .12rem;
  accent-color: var(--gold);
}
.giveaway-form .btn { justify-content: center; }

/* Extra room for both local-bookstore introduction paragraphs. */
.bookstore-directory__intro { max-width: 62rem; }
.bookstore-directory__intro .section-lede + .section-lede { margin-top: 1rem; }

.site-footer { background-color: #111111; }

/* Bookstores are grouped by state and use photo-led cards with the colour
   accent moved from the top to the bottom. */
.bookstore-state-groups { display: grid; gap: clamp(2.8rem, 2rem + 3vw, 5rem); }
.bookstore-state-group__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.2rem;
  padding-bottom: .65rem;
  border-bottom: 1px solid var(--line-strong);
}
.bookstore-state-group__title { font-size: clamp(1.6rem, 1.25rem + 1.2vw, 2.25rem); color: var(--ink); }
.bookstore-state-group__count { font-size: var(--fs-sm); font-weight: 700; color: var(--burgundy); }
.bookstore-card {
  padding: 0;
  overflow: hidden;
  border-top: 1px solid var(--line);
  border-bottom: 4px solid var(--gold);
}
.bookstore-card:nth-child(3n+2) { border-top-color: var(--line); border-bottom-color: var(--burgundy); }
.bookstore-card:nth-child(3n+3) { border-top-color: var(--line); border-bottom-color: var(--teal); }
.bookstore-card__media {
  margin: 0;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--parchment-deep);
}
.bookstore-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s var(--ease);
}
.bookstore-card:hover .bookstore-card__media img { transform: scale(1.045); }
.bookstore-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 1.15rem 1.25rem 1.25rem;
}
.bookstore-state-group[hidden] { display: none !important; }

/* Photo-first event cards, ready to split into true month groups when the
   source calendar publishes dates. */
.event-months { display: grid; gap: clamp(2.3rem, 1.6rem + 2.5vw, 4rem); }
.event-month__title {
  margin-bottom: 1rem;
  padding-bottom: .6rem;
  border-bottom: 2px solid var(--gold);
  font-size: clamp(1.45rem, 1.2rem + .9vw, 2rem);
  color: var(--ink);
}
.event-row {
  grid-template-columns: minmax(180px, .58fr) minmax(0, 1.42fr) auto;
  gap: 0;
  padding: 0;
  overflow: hidden;
}
.event-row__media {
  height: 100%;
  min-height: 210px;
  margin: 0;
  overflow: hidden;
  background: var(--parchment-deep);
}
.event-row__media img { width: 100%; height: 100%; object-fit: cover; }
.event-row__body { padding: 1.25rem clamp(1.15rem, .8rem + 1vw, 1.7rem); }
.event-row__name { margin-bottom: .45rem; }
.event-row__schedule {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin-bottom: .55rem;
  font-size: var(--fs-sm);
  font-weight: 700;
  color: var(--burgundy);
}
.event-row__format { margin-bottom: .45rem; color: var(--teal); }
.event-row__action { padding: 1.25rem 1.25rem 1.25rem 0; }

/* A little more breathing room below the final CTA actions. */
.final-cta { padding-bottom: clamp(5rem, 3.5rem + 6vw, 8.5rem); border-radius: 0; }

@media (max-width: 1100px) {
  .hero { padding-bottom: 5.25rem; }
  .hero__arrow { width: 40px; height: 40px; top: auto; bottom: 2.15rem; transform: none; }
  .hero__arrow:hover { transform: scale(1.05); }
  .hero__arrow--prev { left: var(--gutter); }
  .hero__arrow--next { right: var(--gutter); }
  .hero__dots { bottom: 2.2rem; }

  .ecta__events {
    grid-template-areas:
      "intro"
      "cards"
      "join";
  }
  .app-download {
    grid-template-columns: minmax(0, 1fr) minmax(350px, .92fr);
  }
  .app-download__content {
    padding-right: var(--gutter);
    padding-left: clamp(1.7rem, 1rem + 2.7vw, 3.2rem);
  }

  .alcove-intro { grid-template-columns: 1fr; }
  .alcove-intro__lead .section-title { max-width: none; }
}

@media (max-width: 960px) {
  .home-pillars .pillars__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .home-pillars .pillar {
    border-inline-start: 1px solid var(--line);
    border-bottom: 0;
  }
  .home-pillars .pillar:nth-child(3n + 1) { border-inline-start: 0; }

  .app-overview__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .app-overview__phone {
    grid-column: 1 / -1;
    grid-row: 1;
    width: min(100%, 230px);
  }
  .app-overview__column:first-child { grid-column: 1; grid-row: 2; }
  .app-overview__column:last-child { grid-column: 2; grid-row: 2; }

  .giveaway__inner { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .home-pillars .pillars__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
  }
  .home-pillars .pillar {
    padding: 1rem .55rem;
  }

  .app-download {
    grid-template-columns: 1fr;
    min-height: 0;
  }
  .app-download__media {
    min-height: 260px;
    aspect-ratio: 16 / 9;
  }
  .app-download__scene {
    border-radius: 0 clamp(32px, 9vw, 52px) clamp(32px, 9vw, 52px) 0;
  }
  .app-download__phone {
    right: clamp(1.25rem, 9vw, 4rem);
    width: clamp(92px, 20vw, 125px);
  }
  .app-download__content {
    padding: clamp(2.2rem, 1.6rem + 4vw, 3rem) var(--gutter) clamp(2.7rem, 2rem + 4vw, 3.5rem);
  }

  .event-row { grid-template-columns: 1fr; }
  .event-row__media { min-height: 0; aspect-ratio: 16 / 9; }
  .event-row__action { padding: 0 1.15rem 1.25rem; }

  .contact__librarian { max-width: 300px; }

  .alcove-features { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem 0; }
  .alcove-feature:nth-child(odd) { border-left: 0; padding-left: 0; }
}

@media (max-width: 560px) {
  .home-pillars .pillars__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-pillars .pillar {
    border-inline-start: 1px solid var(--line);
    border-bottom: 0;
  }
  .home-pillars .pillar:nth-child(3n + 1) { border-inline-start: 1px solid var(--line); }
  .home-pillars .pillar:nth-child(odd) { border-inline-start: 0; }
  .home-pillars .pillar__icon { width: 68px; height: 68px; }
  .app-download__platforms { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .app-platform { min-width: 0; justify-content: center; padding-inline: .65rem; }
  .bookstore-state-group__head { align-items: flex-start; flex-direction: column; gap: .2rem; }

  .app-overview__grid { grid-template-columns: 1fr; }
  .app-overview__phone { grid-column: 1; grid-row: 1; }
  .app-overview__column:first-child { grid-column: 1; grid-row: 2; }
  .app-overview__column:last-child { grid-column: 1; grid-row: 3; }
  .app-feature { grid-template-columns: 60px minmax(0, 1fr); }
  .app-feature__icon,
  .app-feature__icon-art { width: 60px; height: 60px; }

  .alcove-features { grid-template-columns: 1fr; gap: 0; }
  .alcove-feature,
  .alcove-feature:nth-child(odd) {
    padding: 1rem 0;
    border-left: 0;
    border-top: 1px solid var(--line);
  }
  .alcove-feature:first-child { border-top: 0; }

  .giveaway-form__grid { grid-template-columns: 1fr; }
  .giveaway-form .btn { width: 100%; }
}

@media (min-width: 1101px) {
  .home-recognized .section-title { white-space: nowrap; }
}

@media (prefers-reduced-motion: reduce) {
  .hero__inner .script,
  .page-hero .script { clip-path: none; animation: none; }
  .hero__inner .script__flourish path,
  .page-hero .script__flourish path { stroke-dashoffset: 0; animation: none; }
}

/* =============================================================
   Client annotation pass — September 3, 2026
   ============================================================= */

/* Home hero ---------------------------------------------------- */
.hero__title { line-height: .98; }
.hero__floating-phone {
  position: absolute;
  z-index: 3;
  top: 50%;
  right: clamp(2.2rem, 6vw, 7.2rem);
  width: clamp(132px, 11.5vw, 190px);
  padding: 7px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .62);
  border-radius: 27px;
  background: #141414;
  box-shadow: 0 22px 50px rgba(0, 0, 0, .38);
  transform: translateY(-50%) rotate(2deg);
  pointer-events: none;
}
.hero__floating-phone img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  border-radius: 20px;
}
.hero__floating-phone-speaker {
  position: absolute;
  z-index: 1;
  top: 7px;
  left: 50%;
  width: 34%;
  height: 8px;
  border-radius: 0 0 8px 8px;
  background: #141414;
  transform: translateX(-50%);
}
.hero__inner--with-phone .hero__content {
  max-width: min(37rem, calc(100% - 220px));
}

/* App overview heading ---------------------------------------- */
.app-overview__head {
  position: relative;
  isolation: isolate;
  padding-top: .35rem;
}
.app-overview__title-wrap {
  position: relative;
  width: fit-content;
  max-width: 100%;
  margin-inline: auto;
  padding-inline: clamp(2.1rem, 3vw, 3rem);
}
.app-overview__head .section-title {
  position: relative;
  z-index: 1;
}
.app-overview__accent-line {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: .08em;
  max-width: 100%;
}
.app-overview__head .script {
  position: relative;
  display: inline-block;
  width: fit-content;
  margin-top: .06em;
  color: #d9473f;
}
.app-overview__head .script__flourish {
  bottom: -.15em;
  color: var(--gold);
}
.app-overview__heart {
  display: inline-block;
  flex: 0 0 auto;
  margin-left: .02em;
  font-family: var(--font-script);
  font-size: .72em;
  font-weight: 700;
  color: var(--gold);
  transform: rotate(-9deg);
}
.app-overview__rays,
.faq-hero__rays {
  position: absolute;
  top: .1rem;
  left: .35rem;
  width: 52px;
  height: 36px;
  transform: rotate(-12deg);
}
.app-overview__rays::before,
.app-overview__rays::after,
.faq-hero__rays::before,
.faq-hero__rays::after {
  content: "";
  position: absolute;
  left: 21px;
  bottom: 0;
  width: 3px;
  height: 30px;
  border-radius: 2px;
  background: var(--gold);
  transform-origin: 50% 100%;
}
.app-overview__rays::before,
.faq-hero__rays::before { transform: rotate(-33deg); }
.app-overview__rays::after,
.faq-hero__rays::after { transform: rotate(33deg); }
.app-overview__rays {
  background: linear-gradient(var(--gold), var(--gold)) 25px 7px / 3px 29px no-repeat;
}
.faq-hero__rays {
  top: -.35rem;
  left: clamp(.25rem, 5vw, 4.4rem);
}
.app-overview__sparkles,
.faq-hero__sparkles {
  position: absolute;
  right: .3rem;
  bottom: .2rem;
  display: flex;
  align-items: flex-start;
  gap: .4rem;
  color: var(--gold);
}
.app-overview__sparkles svg:first-child,
.faq-hero__sparkles svg:first-child { width: 22px; height: 22px; }
.app-overview__sparkles svg:last-child,
.faq-hero__sparkles svg:last-child { width: 12px; height: 12px; color: var(--gold); }
.faq-hero__sparkles {
  right: clamp(.15rem, 4vw, 3.5rem);
  bottom: .8rem;
  color: var(--teal);
}
.app-overview__divider {
  display: grid;
  grid-template-columns: minmax(42px, 1fr) 52px minmax(42px, 1fr);
  gap: .7rem;
  align-items: center;
  width: min(100%, 320px);
  margin: 1.1rem auto 0;
}
.app-overview__divider > span {
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(226, 166, 60, .82));
}
.app-overview__divider > span:last-child {
  background: linear-gradient(90deg, rgba(226, 166, 60, .82), transparent);
}
.app-overview__divider-book {
  width: 52px;
  height: 42px;
  overflow: visible;
  color: var(--gold);
}

/* Homepage community invitation ------------------------------ */
.community-invite { overflow: hidden; }
.community-invite__lead {
  display: grid;
  grid-template-columns: minmax(300px, .88fr) minmax(0, 1.32fr);
  min-height: 330px;
  overflow: hidden;
  border: 1px solid rgba(138, 34, 49, .12);
  border-radius: var(--r-panel);
  background: rgba(255, 255, 255, .66);
  box-shadow: 0 18px 44px rgba(69, 42, 28, .09);
}
.community-invite__copy {
  position: relative;
  z-index: 2;
  align-self: center;
  padding: clamp(2rem, 1.25rem + 2.5vw, 3.7rem);
}
.community-invite__copy::before {
  content: "";
  position: absolute;
  top: 1.5rem;
  left: 1.6rem;
  width: 64px;
  height: 24px;
  opacity: .56;
  background:
    radial-gradient(circle, var(--gold) 2px, transparent 2.7px) 0 0 / 14px 12px;
  pointer-events: none;
}
.community-invite__copy > * { position: relative; }
.community-invite__copy .section-title { max-width: 13ch; }
.community-invite__copy .section-lede { margin-top: 1rem; max-width: 38ch; }
.community-invite__heart {
  display: inline-block;
  margin-left: .08em;
  font-family: var(--font-script);
  font-size: .76em;
  color: var(--burgundy);
  transform: rotate(-12deg);
}
.community-invite__media {
  position: relative;
  min-height: 330px;
  margin: 0;
  overflow: hidden;
}
.community-invite__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(251, 244, 231, .9), transparent 27%);
  pointer-events: none;
}
.community-invite__media img {
  width: 100%;
  height: 100%;
  min-height: 330px;
  object-fit: cover;
  object-position: center;
}
.community-invite__cards {
  position: relative;
  z-index: 3;
  gap: clamp(.85rem, .5rem + 1.1vw, 1.5rem);
  margin: clamp(-2.6rem, -3.4vw, -1.75rem) clamp(1rem, 2vw, 2.4rem) 0;
}
.community-invite .post-card {
  position: relative;
  isolation: isolate;
  min-width: 0;
  overflow: hidden;
  padding: clamp(1.3rem, 1rem + .8vw, 1.75rem);
  border: 1px solid var(--line);
  border-left: 6px solid var(--gold);
  border-radius: 22px;
  box-shadow: 0 14px 34px rgba(69, 42, 28, .12);
}
.community-invite .post-card:nth-child(2) { border-left-color: var(--burgundy); }
.community-invite .post-card:nth-child(3) { border-left-color: var(--teal); }
.community-invite .post-card::after {
  content: "";
  position: absolute;
  z-index: -1;
  right: -26px;
  bottom: -30px;
  width: 94px;
  height: 94px;
  border: 1px dashed rgba(226, 166, 60, .32);
  border-radius: 50%;
}
.post-card__topline {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) 34px;
  gap: .8rem;
  align-items: center;
  margin-bottom: .9rem;
}
.post-card__icon {
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  color: var(--gold-deep);
}
.community-invite .post-card:nth-child(2) .post-card__icon { color: var(--burgundy); }
.community-invite .post-card:nth-child(3) .post-card__icon { color: var(--teal); }
.post-card__icon-art { width: 36px; height: 36px; }
.community-invite .post-card__group { margin: 0; }
.post-card__doodle {
  position: relative;
  width: 31px;
  height: 25px;
  border-bottom: 2px solid currentColor;
  border-radius: 50%;
  color: var(--gold);
  transform: rotate(-8deg);
}
.post-card__doodle::after {
  content: "";
  position: absolute;
  right: 1px;
  bottom: -4px;
  width: 7px;
  height: 7px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(13deg);
}
.community-invite .section-cta {
  position: relative;
  margin-top: clamp(1.7rem, 1.2rem + 1.5vw, 2.8rem);
}
.community-invite .section-cta::before,
.community-invite .section-cta::after {
  content: "";
  display: inline-block;
  width: clamp(22px, 5vw, 64px);
  height: 1px;
  margin: 0 .7rem .28rem;
  background: var(--gold);
}

/* Giveaway handwritten highlight ----------------------------- */
.giveaway__win {
  position: relative;
  display: inline-block;
  margin-left: .05em;
  font-family: var(--font-script);
  font-size: 1.22em;
  line-height: .72;
  color: var(--gold);
  font-style: italic;
  transform: rotate(-2deg);
}
.giveaway__win::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -.16em;
  left: 0;
  height: 2px;
  border-radius: 50%;
  background: var(--gold);
  transform: rotate(-2deg);
}
.giveaway__content > .btn { margin-top: 1.1rem; }

/* Who We Are video and quote ---------------------------------- */
.who-video .video-frame { margin-inline: auto; }
.community-invite,
.who-quote,
.contributor-section {
  --bs-section-title-size: var(--fs-h2);
  --bs-section-lede-size: var(--fs-lede);
  --bs-section-eyebrow-size: var(--fs-xs);
  --bs-section-card-title-size: var(--fs-h3);
  --bs-section-card-copy-size: var(--fs-sm);
}
.who-quote {
  --who-quote-gold: #d18f32;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: clamp(520px, 34vw, 610px);
  padding-block: 0 !important;
  background: #621826;
}
.who-quote__inner {
  position: relative;
  display: flex;
  min-height: inherit;
  max-width: var(--shell);
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding-block: clamp(3.9rem, 4.6vw, 5rem) clamp(3.5rem, 4vw, 4.5rem);
}
.who-quote__inner > .eyebrow {
  margin: 0;
  color: var(--who-quote-gold);
  font-size: var(--bs-section-eyebrow-size);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .24em;
}
.who-quote__book-line,
.who-quote__leaf-line {
  display: grid;
  grid-template-columns: minmax(42px, 1fr) auto minmax(42px, 1fr);
  gap: clamp(1rem, 2vw, 2rem);
  align-items: center;
  color: var(--who-quote-gold);
}
.who-quote__book-line {
  width: min(100%, 580px);
  margin: clamp(1rem, 1.25vw, 1.35rem) auto 0;
}
.who-quote__book-line > span {
  height: 1px;
  background: currentColor;
}
.who-quote__book-line svg {
  width: clamp(58px, 4.25vw, 70px);
  height: auto;
  overflow: visible;
}
.who-quote__book-line path,
.who-quote__leaf-art path {
  fill: none;
  stroke: currentColor;
  stroke-width: 2.3;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.who-quote__statement {
  position: relative;
  width: min(calc(100% - 9rem), 960px);
  margin: clamp(2.15rem, 2.6vw, 2.75rem) auto 0;
}
.who-quote__statement .section-title {
  max-width: none;
  margin: 0 auto;
  color: #fff;
  font-size: var(--bs-section-title-size);
  font-weight: 700;
  line-height: 1.18;
  letter-spacing: -.02em;
  text-wrap: balance;
}
.who-quote__statement .section-title > span {
  display: block;
}
.who-quote__leaf-line {
  width: min(100%, 520px);
  margin: clamp(2.15rem, 2.65vw, 2.8rem) auto 0;
  gap: clamp(.8rem, 1.5vw, 1.35rem);
}
.who-quote__leaf-line > span {
  position: relative;
  height: 1px;
  background: currentColor;
}
.who-quote__leaf-line > span:first-child::before,
.who-quote__leaf-line > span:last-child::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: currentColor;
  transform: translateY(-50%);
}
.who-quote__leaf-line > span:first-child::before { left: -2px; }
.who-quote__leaf-line > span:last-child::after { right: -2px; }
.who-quote__leaf-art {
  width: clamp(116px, 9vw, 145px);
  height: auto;
  overflow: visible;
}
.who-quote__leaf-art path { stroke-width: 2.5; }
.who-quote__mark {
  position: absolute;
  z-index: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(5.5rem, 6.5vw, 7.25rem);
  font-weight: 700;
  line-height: .75;
  color: var(--who-quote-gold);
  pointer-events: none;
}
.who-quote__mark--open {
  top: -2.7rem;
  left: clamp(-6.25rem, calc(-3.25rem - 2.8vw), -5rem);
}
.who-quote__mark--close {
  right: clamp(-6.25rem, calc(-3.25rem - 2.8vw), -5rem);
  bottom: -3.4rem;
}
.who-quote__credit {
  margin-top: clamp(1rem, 1.2vw, 1.3rem);
  color: #fff;
  font-family: var(--font-body);
  font-size: var(--fs-body);
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: .13em;
}

/* Contributors ------------------------------------------------- */
.contributor-section {
  --contributors-cream: #f7e8d5;
  --contributors-ink: #221711;
  --contributors-copy: #68523f;
  --contributors-gold: #d0a048;
  --contributors-burgundy: #7f1f35;
  background: var(--contributors-cream);
}
.contributor-section::before { display: none; }
.contributors-heading {
  position: relative;
  display: flex;
  min-height: clamp(520px, 34vw, 620px);
  max-width: none;
  margin: 0 auto clamp(2.25rem, 1.8rem + 1.5vw, 3.25rem);
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.contributors-heading__eyebrow {
  display: inline-flex;
  margin: 0 0 clamp(1.65rem, 2vw, 2.15rem);
  padding: 0;
  align-items: center;
  gap: clamp(.85rem, 1.4vw, 1.4rem);
  color: var(--contributors-burgundy);
  font-size: var(--bs-section-eyebrow-size);
  font-weight: 700;
  letter-spacing: .24em;
  line-height: 1.2;
}
.contributors-heading__eyebrow::before,
.contributors-heading__eyebrow::after { content: none; }
.contributors-heading__rays {
  width: clamp(24px, 2vw, 34px);
  height: auto;
  flex: 0 0 auto;
  overflow: visible;
}
.contributors-heading__rays path {
  fill: none;
  stroke: var(--contributors-gold);
  stroke-width: 5.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.contributors-heading .section-title {
  max-width: none;
  margin-inline: auto;
  color: var(--contributors-ink);
  font-size: var(--bs-section-title-size);
  font-weight: 700;
  line-height: 1.04;
  letter-spacing: -.025em;
}
.contributors-heading__rule {
  width: min(100%, 760px);
  margin: clamp(1.55rem, 1.9vw, 2rem) auto clamp(1.2rem, 1.5vw, 1.55rem);
}
.contributors-heading__rule svg {
  width: 100%;
  height: clamp(38px, 4vw, 62px);
  overflow: visible;
}
.contributors-heading__rule-line,
.contributors-heading__rule-heart {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.contributors-heading__rule-line {
  stroke: var(--contributors-gold);
  stroke-width: 4;
}
.contributors-heading__rule-heart {
  stroke: var(--contributors-burgundy);
  stroke-width: 4;
}
.contributors-heading .section-lede {
  max-width: 62ch;
  margin: 0 auto;
  color: var(--contributors-copy);
  font-size: var(--bs-section-lede-size);
  font-weight: 400;
  line-height: 1.65;
  letter-spacing: 0;
}
.contributors-heading__book {
  display: block;
  width: clamp(104px, 7.5vw, 124px);
  height: auto;
  margin: clamp(1.45rem, 1.8vw, 1.9rem) auto 0;
}
.contributors-heading__book-art {
  width: 100%;
  height: auto;
  overflow: visible;
}
.contributors-heading__book-rays,
.contributors-heading__book-lines {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.contributors-heading__book-rays {
  stroke: var(--contributors-gold);
  stroke-width: 4;
}
.contributors-heading__book-lines {
  stroke: var(--contributors-burgundy);
  stroke-width: 3.5;
}
@media (min-width: 1101px) {
  .who-quote__statement .section-title > span { white-space: nowrap; }
}
.contributor-profile {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  box-shadow: 0 18px 42px rgba(69, 42, 28, .1);
}
.contributor-profile::before {
  content: "";
  position: absolute;
  z-index: -1;
  right: -36px;
  bottom: -38px;
  width: 145px;
  height: 145px;
  border: 1px dashed rgba(226, 166, 60, .35);
  border-radius: 50%;
}
.contributor-profile::after {
  content: "";
  position: absolute;
  z-index: -1;
  left: 47%;
  bottom: 1rem;
  width: 75px;
  height: 30px;
  opacity: .24;
  background: radial-gradient(circle, var(--teal) 2px, transparent 2.8px) 0 0 / 13px 12px;
  transform: rotate(-8deg);
}
.contributor-profile__figure { box-shadow: 0 10px 25px rgba(36, 24, 18, .14); }
.contributor-profile:first-child .contributor-profile__figure img { object-position: center 42%; }
.contributor-profile:nth-child(2) .contributor-profile__figure img { object-position: center 44%; }
.contributor-profile__name {
  position: relative;
  display: inline-block;
}
.contributor-profile__name::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -.14em;
  left: 0;
  height: 3px;
  border-radius: 50%;
  background: var(--gold);
  transform: rotate(-1.5deg);
}

/* FAQ ---------------------------------------------------------- */
.faq-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(4.2rem, 3rem + 5vw, 7rem) 0 clamp(3.4rem, 2.5rem + 3vw, 5.4rem);
  background:
    radial-gradient(circle at 82% 18%, rgba(226, 166, 60, .1), transparent 21%),
    var(--cream);
}
.faq-hero__inner {
  position: relative;
  max-width: 930px;
}
.faq-hero__title {
  max-width: none;
  font-size: clamp(3rem, 2rem + 4.4vw, 6.4rem);
  font-weight: 900;
  line-height: .96;
  letter-spacing: -.035em;
  color: var(--ink);
}
.faq-hero__underlined {
  position: relative;
  display: inline-block;
}
.faq-hero__underline {
  position: absolute;
  right: 0;
  bottom: -.12em;
  left: 0;
  width: 100%;
  height: .18em;
  color: var(--gold);
}
.faq-hero__heart {
  display: inline-block;
  margin-left: .03em;
  font-family: var(--font-script);
  font-size: .6em;
  color: var(--burgundy);
  transform: rotate(-12deg);
}
.faq-hero__lede {
  max-width: 620px;
  margin: 1.7rem auto 0;
  font-size: var(--fs-lede);
  color: var(--text-muted);
}
.faq-hero__rays { top: 1rem; left: clamp(1rem, 7vw, 6rem); }
.faq-hero__rays {
  background: linear-gradient(var(--gold), var(--gold)) 25px 7px / 3px 29px no-repeat;
}
.faq-hero__sparkles { right: clamp(1rem, 8vw, 7rem); bottom: 1.25rem; }
.faq-section {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding-top: clamp(2.3rem, 1.6rem + 2vw, 3.7rem) !important;
}
.faq-section::after {
  content: "";
  position: absolute;
  z-index: -1;
  right: clamp(-4rem, -2vw, -1rem);
  bottom: 1rem;
  width: min(34vw, 410px);
  aspect-ratio: 1;
  opacity: .25;
  background: url('../images/book-bg.png') right bottom / contain no-repeat;
  filter: sepia(1) saturate(1.5) brightness(.82);
  pointer-events: none;
}
.shell--faq { width: min(calc(100% - var(--gutter) - var(--gutter)), 980px); margin-inline: auto; }
.faq-list { position: relative; z-index: 1; gap: .9rem; }
.faq-item {
  border: 1px solid rgba(58, 42, 34, .1);
  border-left: 5px solid var(--burgundy);
  border-radius: 14px;
  box-shadow: 0 7px 20px rgba(69, 42, 28, .07);
}
.faq-item:nth-child(3n + 2) { border-left-color: var(--gold); }
.faq-item:nth-child(3n) { border-left-color: var(--teal); }
.faq-item summary {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) 34px;
  gap: .95rem;
  align-items: center;
  min-height: 76px;
  padding: .8rem 1.05rem .8rem .9rem;
}
.faq-item summary::after { display: none; }
.faq-item__icon {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(138, 34, 49, .06);
  color: var(--burgundy);
}
.faq-item:nth-child(3n + 2) .faq-item__icon {
  background: rgba(226, 166, 60, .1);
  color: var(--gold-deep);
}
.faq-item:nth-child(3n) .faq-item__icon {
  background: rgba(47, 123, 120, .08);
  color: var(--teal);
}
.faq-item__icon-art { width: 25px; height: 25px; }
.faq-item__question { min-width: 0; }
.faq-item__toggle {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border: 1px solid rgba(138, 34, 49, .18);
  border-radius: 50%;
  background: var(--parchment);
  color: var(--burgundy);
  font-family: var(--font-body);
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1;
  transition: color var(--dur) var(--ease), background-color var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.faq-item[open] .faq-item__toggle {
  color: #fff;
  background: var(--burgundy);
  font-size: 0;
  transform: rotate(180deg);
}
.faq-item[open] .faq-item__toggle::before { content: "−"; font-size: 1rem; }
.faq-item__answer {
  margin-left: 4.85rem;
  padding: 0 4.2rem 1.2rem 1rem;
}
.faq-actions { position: relative; z-index: 1; justify-content: center; margin-top: 2rem; }

/* Footer ------------------------------------------------------- */
.site-footer { position: relative; overflow: hidden; }
.site-footer::before {
  content: "";
  position: absolute;
  top: 2rem;
  right: 2%;
  width: 120px;
  height: 90px;
  opacity: .11;
  background: radial-gradient(circle, var(--gold) 2px, transparent 2.7px) 0 0 / 17px 16px;
  transform: rotate(8deg);
  pointer-events: none;
}
.site-footer__top {
  grid-template-columns: minmax(245px, .82fr) minmax(0, 2.35fr);
  gap: clamp(2rem, 1rem + 3vw, 4.5rem);
  padding-bottom: 2.1rem;
  border-bottom: 0;
}
.site-footer__brand { position: relative; }
.site-footer__brand::after {
  content: "";
  position: absolute;
  top: .2rem;
  right: .2rem;
  width: 40px;
  height: 24px;
  border-top: 2px solid var(--gold);
  border-radius: 50%;
  opacity: .7;
  transform: rotate(20deg);
}
.footer-logo {
  padding: 0;
  background: transparent;
  border-radius: 0;
}
.footer-logo img {
  width: min(100%, 245px);
  height: auto;
  filter: brightness(1.55) saturate(.9);
}
.site-footer__blurb { line-height: 1.55; }
.site-footer__nav { gap: clamp(1rem, .55rem + 1.4vw, 2rem); }
.site-footer__heading {
  position: relative;
  margin-bottom: 1.15rem;
  padding-bottom: .55rem;
}
.site-footer__heading::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 34px;
  height: 2px;
  background: var(--gold);
}
.site-footer__social-title { position: relative; display: inline-block; }
.site-footer__social-title::after {
  content: "";
  position: absolute;
  right: -42px;
  bottom: .25rem;
  width: 32px;
  height: 1px;
  background: var(--gold);
}
.site-footer__divider {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 46px minmax(0, 1fr);
  gap: .8rem;
  align-items: center;
}
.site-footer__divider > span:not(.site-footer__divider-book) {
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(226, 166, 60, .55));
}
.site-footer__divider > span:last-child {
  background: linear-gradient(90deg, rgba(226, 166, 60, .55), transparent);
}
.site-footer__divider-book,
.site-footer__divider-book-art { width: 46px; height: 46px; }
.site-footer__bottom { padding-top: 1.2rem; }
.site-footer__motto {
  position: relative;
  font-size: 1.25rem;
}
.site-footer__motto span { color: #e35a4f; font-size: 1.25em; }
.site-footer__motto::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -.12rem;
  left: 0;
  height: 1px;
  background: var(--gold);
  transform: rotate(-1deg);
}

/* Responsive QA ----------------------------------------------- */
@media (max-width: 1100px) {
  .hero__floating-phone { right: clamp(3rem, 7vw, 5.5rem); width: 142px; }
  .hero__inner--with-phone .hero__content { max-width: min(35rem, calc(100% - 185px)); }
  .site-footer__top { grid-template-columns: 1fr; }
  .site-footer__brand { max-width: 520px; }
  .site-footer__nav { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
  .hero__floating-phone { right: clamp(2.8rem, 7vw, 4rem); width: 122px; }
  .hero__inner--with-phone .hero__content { max-width: min(31rem, calc(100% - 140px)); }
  .community-invite__lead { grid-template-columns: 1fr; }
  .community-invite__copy { padding-bottom: 1.5rem; }
  .community-invite__copy .section-title { max-width: none; }
  .community-invite__media,
  .community-invite__media img { min-height: 260px; }
  .community-invite__media::after { background: linear-gradient(180deg, rgba(251, 244, 231, .82), transparent 28%); }
  .community-invite__cards { grid-template-columns: 1fr; margin: -1.5rem 1rem 0; }
  .contributor-profile,
  .contributor-profile--reverse { grid-template-columns: 1fr; }
  .contributor-profile--reverse .contributor-profile__figure,
  .contributor-profile--reverse .contributor-profile__body { order: initial; }
  .contributor-profile__figure { max-width: 620px; }
  .who-quote { min-height: 540px; }
  .who-quote__inner { padding-block: 3.9rem 3.65rem; }
  .who-quote__statement { width: calc(100% - 5.5rem); }
  .who-quote__mark { font-size: 5.35rem; }
  .who-quote__mark--open { top: -2.25rem; left: -3.85rem; }
  .who-quote__mark--close { right: -3.8rem; bottom: -2.75rem; }
  .contributors-heading { min-height: 540px; }
  .contributors-heading .section-title {
    font-size: var(--bs-section-title-size);
  }
  .contributors-heading .section-lede {
    max-width: 62ch;
    font-size: var(--bs-section-lede-size);
  }
  .site-footer__nav { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 2rem; }
}

@media (max-width: 620px) {
  .hero { min-height: 420px; align-items: flex-end; }
  .hero__inner { padding-bottom: 3.2rem; }
  .hero__inner + .hero__inner { top: auto; bottom: 0; translate: 0; }
  .hero__floating-phone {
    top: .85rem;
    right: 1.1rem;
    width: 88px;
    padding: 4px;
    border-radius: 18px;
    transform: rotate(2deg);
  }
  .hero__floating-phone img { border-radius: 14px; }
  .hero__floating-phone-speaker { top: 4px; height: 5px; }
  .hero__inner--with-phone .hero__content { max-width: 100%; }
  .hero__title { max-width: 18ch; font-size: clamp(1.75rem, 7vw, 2.25rem); }
  .hero__title .script { max-width: 27ch; font-size: .9em; }
  .hero__lede { max-width: 36ch; margin-top: 1rem; font-size: .94rem; }
  .hero__content .btn-row { max-width: calc(100% - 98px); }
  .hero__inner:not(.hero__inner--with-phone) .hero__content .btn-row { max-width: 100%; }
  .hero__content .btn { min-height: 40px; padding: .64rem .85rem; }

  .app-overview__title-wrap { padding-inline: 1.8rem; }
  .app-overview__rays { top: .15rem; left: -.2rem; transform: scale(.75) rotate(-12deg); }
  .app-overview__sparkles { right: -.15rem; bottom: .15rem; transform: scale(.82); }
  .app-overview__head .script { margin: .12em 0 0; }
  .app-overview__heart { font-size: .62em; }
  .community-invite__copy::before { left: .7rem; }
  .community-invite__cards { margin-inline: 0; }
  .community-invite .section-cta::before,
  .community-invite .section-cta::after { display: none; }

  .who-quote { min-height: 0; }
  .who-quote__inner { padding-block: 3.75rem 3.5rem; }
  .who-quote__inner > .eyebrow {
    font-size: var(--bs-section-eyebrow-size);
    letter-spacing: .22em;
  }
  .who-quote__book-line {
    width: min(90%, 430px);
    margin-top: 1.1rem;
    gap: .8rem;
  }
  .who-quote__book-line svg { width: 60px; }
  .who-quote__statement {
    width: 100%;
    margin-top: 2.4rem;
    padding: 1.8rem 1.7rem 2rem;
  }
  .who-quote__statement .section-title {
    max-width: 18ch;
    font-size: var(--bs-section-title-size);
    line-height: 1.17;
  }
  .who-quote__statement .section-title > span { white-space: normal; }
  .who-quote__mark { font-size: 4.15rem; }
  .who-quote__mark--open { top: -.65rem; left: .15rem; }
  .who-quote__mark--close { right: .15rem; bottom: -.85rem; }
  .who-quote__leaf-line {
    width: min(90%, 400px);
    margin-top: 1.55rem;
    gap: .65rem;
  }
  .who-quote__leaf-art { width: 108px; }
  .who-quote__credit {
    margin-top: 1.35rem;
    font-size: 1rem;
    letter-spacing: .1em;
  }
  .contributors-heading {
    min-height: 520px;
    margin-bottom: 2.35rem;
  }
  .contributors-heading__eyebrow {
    margin-bottom: 1.55rem;
    gap: .55rem;
    font-size: var(--bs-section-eyebrow-size);
    letter-spacing: .2em;
  }
  .contributors-heading__rays { width: 24px; }
  .contributors-heading__rays path { stroke-width: 5; }
  .contributors-heading .section-title {
    max-width: 100%;
    font-size: var(--bs-section-title-size);
    line-height: 1.04;
  }
  .contributors-heading__rule {
    width: 100%;
    margin: 1.45rem auto 1.2rem;
  }
  .contributors-heading .section-lede {
    max-width: 34ch;
    font-size: var(--bs-section-lede-size);
    line-height: 1.65;
  }
  .contributors-heading__book {
    width: 104px;
    margin-top: 1.4rem;
  }

  .faq-hero { padding-top: 4.4rem; }
  .faq-hero__title { font-size: clamp(2.7rem, 13vw, 4.2rem); }
  .faq-hero__rays { left: .45rem; transform: scale(.74) rotate(-12deg); }
  .faq-hero__sparkles { right: .5rem; }
  .faq-section::after { width: 260px; right: -90px; opacity: .16; }
  .faq-item summary {
    grid-template-columns: 40px minmax(0, 1fr) 30px;
    gap: .65rem;
    min-height: 68px;
    padding: .7rem .75rem .7rem .65rem;
    font-size: .98rem;
  }
  .faq-item__icon { width: 38px; height: 38px; }
  .faq-item__icon-art { width: 22px; height: 22px; }
  .faq-item__toggle { width: 29px; height: 29px; }
  .faq-item__answer { margin-left: 3.3rem; padding: 0 1rem 1rem .7rem; }
  .site-footer__nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .site-footer__bottom { align-items: flex-start; }
}

@media (max-width: 390px) {
  .hero__floating-phone { width: 76px; right: .8rem; }
  .hero__content .btn-row { max-width: 100%; }
  .hero__inner--with-phone .hero__title { max-width: calc(100% - 72px); }
  .post-card__topline { grid-template-columns: 48px minmax(0, 1fr) 26px; gap: .55rem; }
  .post-card__icon { width: 48px; height: 48px; }
  .post-card__icon-art { width: 32px; height: 32px; }
  .site-footer__nav { grid-template-columns: 1fr; }
}

/* Footer visibility correction --------------------------------
   The navigation and footer use the approved charcoal, while the small
   hand-drawn details are intentionally brighter than the previous pass. */
.site-header,
.site-nav,
.site-nav__submenu,
.site-footer {
  background-color: #333333;
}

.site-footer::before {
  opacity: .2;
  background: radial-gradient(circle, var(--gold) 2px, transparent 2.8px) 0 0 / 17px 16px;
}
.site-footer::after {
  content: "\2661  \2661";
  position: absolute;
  top: clamp(2rem, 3vw, 3.4rem);
  right: clamp(1.1rem, 4vw, 4rem);
  color: #65a7a1;
  font-family: var(--font-script);
  font-size: clamp(1.25rem, 1rem + .8vw, 1.8rem);
  letter-spacing: -.18em;
  opacity: .9;
  transform: rotate(9deg);
  pointer-events: none;
}
.site-footer__brand-sparkles {
  position: absolute;
  z-index: 2;
  top: .25rem;
  left: -.8rem;
  display: flex;
  align-items: flex-start;
  gap: .2rem;
  color: var(--gold);
  pointer-events: none;
}
.site-footer__brand-sparkles svg:first-child { width: 18px; height: 18px; }
.site-footer__brand-sparkles svg:last-child {
  width: 10px;
  height: 10px;
  margin-top: 1.1rem;
  color: #e35a4f;
}
.site-footer__brand::after {
  top: auto;
  right: 1.2rem;
  bottom: 3.4rem;
  width: 44px;
  height: 28px;
  border: 0;
  border-radius: 0;
  opacity: .85;
  background:
    linear-gradient(68deg, transparent 47%, var(--gold) 48% 53%, transparent 54%) 0 2px / 12px 22px no-repeat,
    linear-gradient(90deg, transparent 47%, var(--gold) 48% 53%, transparent 54%) 15px 0 / 12px 22px no-repeat,
    linear-gradient(112deg, transparent 47%, var(--gold) 48% 53%, transparent 54%) 30px 3px / 12px 22px no-repeat;
  transform: rotate(-8deg);
}
.site-footer__heading::after {
  width: 38px;
  height: 2px;
  border-radius: 50%;
  box-shadow: 12px 3px 0 -1px rgba(226, 166, 60, .42);
  transform: rotate(-2deg);
}
.site-footer__col:nth-child(2) .site-footer__heading::before {
  content: "";
  position: absolute;
  top: -.65rem;
  right: .15rem;
  width: 31px;
  height: 25px;
  background:
    linear-gradient(68deg, transparent 46%, #e35a4f 47% 54%, transparent 55%) 0 4px / 8px 19px no-repeat,
    linear-gradient(90deg, transparent 46%, #e35a4f 47% 54%, transparent 55%) 11px 0 / 8px 19px no-repeat,
    linear-gradient(112deg, transparent 46%, #e35a4f 47% 54%, transparent 55%) 22px 4px / 8px 19px no-repeat;
  transform: rotate(25deg);
}
.site-footer__col:last-child .site-footer__heading::before {
  content: "\2661  \2661";
  position: absolute;
  top: -.8rem;
  right: -.2rem;
  color: #65a7a1;
  font-family: var(--font-script);
  font-size: 1.15rem;
  letter-spacing: -.22em;
  transform: rotate(8deg);
}
.site-footer__social-title::after {
  content: "\2726";
  right: -1.8rem;
  bottom: -.1rem;
  width: auto;
  height: auto;
  background: none;
  color: var(--gold);
  font-size: 1rem;
  transform: rotate(10deg);
}
.site-footer__divider {
  grid-template-columns: minmax(0, 1fr) clamp(120px, 17vw, 190px) minmax(0, 1fr);
  gap: clamp(.45rem, 1.5vw, 1rem);
  margin-top: .35rem;
}
.site-footer__divider-line {
  height: 0;
  border-top: 1px dashed rgba(226, 166, 60, .55);
  background: none !important;
}
.site-footer__divider-ornament,
.site-footer__divider-art {
  width: 100%;
  height: auto;
}
.site-footer__divider-ornament {
  display: block;
  color: var(--gold);
  background: none !important;
}
.site-footer__divider-art { max-height: 58px; }
.site-footer__motto::after {
  height: 2px;
  background: linear-gradient(90deg, var(--gold), #e35a4f 70%, transparent);
}

@media (max-width: 620px) {
  .site-footer::after { top: 1.5rem; right: 1rem; }
  .site-footer__brand-sparkles { left: -.2rem; }
  .site-footer__brand::after { right: .2rem; bottom: 3.2rem; }
  .site-footer__col:nth-child(2) .site-footer__heading::before { right: 1rem; }
  .site-footer__divider { grid-template-columns: minmax(0, 1fr) 112px minmax(0, 1fr); }
}

/* Compact footer ------------------------------------------------
   Reduce vertical space without removing any of the decorative effects. */
.site-footer {
  padding-block: clamp(2.25rem, 1.65rem + 2vw, 3.75rem) 1.35rem;
}
.site-footer__top {
  gap: clamp(1.5rem, .95rem + 2vw, 3.25rem);
  padding-bottom: 1.35rem;
}
.site-footer__blurb { margin-top: .85rem; }
.site-footer__social-title { margin: 1.15rem 0 .6rem; }
.site-footer__heading {
  margin-bottom: .8rem;
  padding-bottom: .4rem;
}
.site-footer__col ul { gap: .4rem; }
.site-footer__divider { margin-top: .1rem; }
.site-footer__divider-art { max-height: 46px; }
.site-footer__bottom { padding-top: .75rem; }

@media (max-width: 820px) {
  .site-footer__nav { row-gap: 1.4rem; }
}

@media (max-width: 620px) {
  .site-footer { padding-block: 2rem 1.15rem; }
  .site-footer__top { padding-bottom: 1.15rem; }
  .site-footer__divider-art { max-height: 42px; }
}

/* September PDF mirror -----------------------------------------
   These rules reproduce the approved supplied compositions. */

/* The client specified this exact near-black for every navigation state
   and the complete footer surface. */
.site-header,
.site-nav,
.site-nav__submenu,
.site-footer {
  background: #111111 !important;
  background-color: #111111 !important;
}

/* Inside the community: exact visual construction from the supplied panel. */
.section.community-invite {
  padding: 0 0 calc(clamp(1.35rem, .95rem + 1vw, 2rem) + 20px) !important;
  background: #f8ecda;
}
.section.community-invite::before {
  background:
    radial-gradient(circle at 43% 12%, rgba(255, 255, 255, .55), transparent 33%),
    radial-gradient(circle at 70% 87%, rgba(226, 166, 60, .08), transparent 38%);
}
.community-invite > .shell {
  width: 100%;
  max-width: none;
}
.community-invite__lead {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 44%) minmax(0, 56%);
  min-height: clamp(410px, 25.5vw, 455px);
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.community-invite__copy {
  z-index: 2;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(3rem, 2.1rem + 2.3vw, 4.35rem) 1rem clamp(2.7rem, 2rem + 2vw, 4rem) clamp(2rem, 2vw + 1rem, 4.35rem);
}
.community-invite__copy::before {
  display: none;
}
.community-invite__copy .eyebrow {
  position: relative;
  width: fit-content;
  margin-bottom: clamp(2.2rem, 1.65rem + 1vw, 2.8rem);
  font-size: var(--bs-section-eyebrow-size);
  letter-spacing: .16em;
  color: var(--burgundy);
}
.community-invite__copy .eyebrow::before {
  content: "";
  position: absolute;
  top: -1.8rem;
  right: -3.1rem;
  width: 37px;
  height: 38px;
  background:
    linear-gradient(25deg, transparent 45%, var(--gold) 47% 54%, transparent 56%) 0 24px / 16px 10px no-repeat,
    linear-gradient(70deg, transparent 45%, var(--gold) 47% 54%, transparent 56%) 9px 10px / 12px 18px no-repeat,
    linear-gradient(100deg, transparent 45%, var(--gold) 47% 54%, transparent 56%) 22px 3px / 10px 20px no-repeat;
  transform: rotate(8deg);
}
.community-invite__copy .eyebrow::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -1.2rem;
  width: 58%;
  height: 4px;
  border-radius: 50%;
  background: var(--gold);
  transform: rotate(-1deg);
}
.community-invite__copy .section-title {
  max-width: 12ch;
  font-family: var(--font-display);
  font-size: var(--bs-section-title-size);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -.015em;
}
.community-invite__heart {
  margin-left: .06em;
  font-size: .95em;
  color: var(--burgundy);
}
.community-invite__copy .section-lede {
  max-width: 35em;
  margin-top: clamp(1.45rem, 1rem + .8vw, 2rem);
  font-family: var(--font-body);
  font-size: var(--bs-section-lede-size);
  font-weight: 400;
  line-height: 1.58;
}
.community-invite__media {
  position: absolute;
  z-index: 0;
  top: 0;
  right: -1.5rem;
  width: 43%;
  height: clamp(480px, 29vw, 535px);
  min-height: 0;
  margin: 0;
  overflow: hidden;
}
.community-invite__media::after {
  background:
    linear-gradient(90deg, #f8ecda 0%, rgba(248, 236, 218, .82) 15%, rgba(248, 236, 218, 0) 39%),
    linear-gradient(0deg, #f8ecda 0%, rgba(248, 236, 218, .82) 13%, rgba(248, 236, 218, 0) 42%);
}
.community-invite__media img {
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
  object-position: center top;
}
.community-invite__cards {
  position: relative;
  z-index: 3;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, .65rem + .9vw, 1.85rem);
  margin: 0 clamp(2rem, 2vw + 1rem, 4.35rem);
}
.community-invite .post-card {
  position: relative;
  min-height: clamp(320px, 21vw, 360px);
  overflow: hidden;
  padding: clamp(1.65rem, 1.25rem + .8vw, 2.15rem) clamp(1.45rem, 1.05rem + .9vw, 2rem) clamp(2rem, 1.4rem + 1.1vw, 2.65rem);
  border: 1px solid rgba(58, 42, 34, .1);
  border-left: 7px solid var(--gold);
  border-radius: 17px;
  box-shadow: 0 17px 35px rgba(79, 49, 32, .12);
}
.community-invite .post-card:hover {
  transform: none;
  box-shadow: 0 17px 35px rgba(79, 49, 32, .12);
}
.community-invite .post-card::after {
  display: none;
}
.community-invite .post-card:nth-child(3) {
  border-left-color: #318987;
}
.post-card__topline {
  position: relative;
  z-index: 2;
  grid-template-columns: 46px minmax(0, 1fr) 48px;
  gap: clamp(.65rem, .4rem + .55vw, 1rem);
  min-height: 48px;
  margin-bottom: clamp(1rem, .7rem + .5vw, 1.35rem);
}
.post-card__icon {
  width: 46px;
  height: 46px;
}
.post-card__icon-art {
  width: 43px;
  height: 43px;
}
.community-invite .post-card__group {
  font-family: var(--font-body);
  font-size: var(--bs-section-eyebrow-size);
  font-weight: 700;
  letter-spacing: .1em;
}
.community-invite .post-card__title,
.community-invite .post-card__body {
  position: relative;
  z-index: 2;
}
.community-invite .post-card__title {
  margin-bottom: .8rem;
  font-family: var(--font-display);
  font-size: var(--bs-section-card-title-size);
  font-weight: 700;
  line-height: 1.3;
}
.community-invite .post-card__body {
  font-family: var(--font-body);
  font-size: var(--bs-section-card-copy-size);
  font-weight: 400;
  line-height: 1.55;
}
.post-card__doodle {
  display: block;
  width: 48px;
  height: 48px;
  border: 0;
  border-radius: 0;
  color: var(--gold);
  transform: none;
}
.post-card__doodle::after {
  display: none;
}
.post-card__doodle-art {
  display: block;
  width: 100%;
  height: 100%;
}
.community-invite .post-card:nth-child(2) .post-card__doodle {
  color: var(--burgundy);
}
.community-invite .post-card:nth-child(3) .post-card__doodle {
  color: #318987;
}
.post-card__texture {
  position: absolute;
  z-index: 1;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 118px;
  opacity: .72;
  pointer-events: none;
}
.post-card__texture--members { color: #e5aa32; }
.post-card__texture--share { color: #b24b58; }
.post-card__texture--opportunity { color: #4b9996; }
.community-invite .section-cta {
  position: relative;
  z-index: 3;
  align-items: center;
  gap: clamp(.8rem, .5rem + .8vw, 1.45rem);
  margin-top: 30px;
}
.community-invite .section-cta::before,
.community-invite .section-cta::after {
  display: block;
  flex: 0 0 auto;
  width: 48px;
  height: 62px;
  margin: 0;
  background:
    linear-gradient(66deg, transparent 44%, var(--burgundy) 46% 55%, transparent 57%) 27px 2px / 14px 19px no-repeat,
    linear-gradient(78deg, transparent 44%, var(--burgundy) 46% 55%, transparent 57%) 17px 11px / 17px 17px no-repeat,
    linear-gradient(90deg, transparent 44%, var(--burgundy) 46% 55%, transparent 57%) 8px 26px / 21px 10px no-repeat,
    linear-gradient(102deg, transparent 44%, var(--burgundy) 46% 55%, transparent 57%) 17px 36px / 17px 17px no-repeat,
    linear-gradient(114deg, transparent 44%, var(--burgundy) 46% 55%, transparent 57%) 27px 43px / 14px 19px no-repeat;
  transform: rotate(-2deg);
}
.community-invite .section-cta::after {
  transform: scaleX(-1) rotate(-2deg);
}
.community-invite .section-cta .btn {
  width: min(400px, calc(100% - 6rem));
  min-height: 62px;
  padding: 1rem 2rem;
  border-radius: 999px;
  font-size: 1rem;
  box-shadow: 0 10px 22px rgba(138, 34, 49, .22);
}

/* FAQ: retain the photographic page hero, followed by the exact cream
   heading treatment and the supplied accordion styling. */
.faq-hero {
  padding: clamp(3.7rem, 2.75rem + 3.5vw, 6.4rem) 0 clamp(3.5rem, 2.7rem + 2.8vw, 5.4rem);
  background: #fbf3e3;
}
.faq-hero::before {
  content: "";
  position: absolute;
  left: -36px;
  bottom: -36px;
  width: 84px;
  height: 84px;
  border-radius: 50%;
  background: rgba(58, 42, 34, .12);
  pointer-events: none;
}
.faq-hero__inner {
  width: min(100% - (var(--gutter) * 2), 980px);
  margin-inline: auto;
  text-align: left;
}
.faq-hero__inner > .eyebrow {
  margin-bottom: clamp(1.7rem, 1.15rem + 1.3vw, 2.7rem);
  font-size: clamp(.82rem, .75rem + .2vw, .98rem);
  letter-spacing: .22em;
  color: var(--burgundy);
}
.faq-hero__title {
  max-width: 12ch;
  margin: 0;
  font-size: clamp(3.15rem, 2.05rem + 4.8vw, 6.6rem);
  line-height: .97;
  letter-spacing: -.045em;
}
.faq-hero__underline {
  bottom: -.1em;
  height: .22em;
  color: var(--gold);
  transform: scaleX(1.04) rotate(-1deg);
}
.faq-hero__heart {
  margin-left: .07em;
  color: #db5349;
}
.faq-hero__lede {
  max-width: 780px;
  margin: clamp(2rem, 1.5rem + 1.35vw, 3rem) 0 0;
  font-size: clamp(1.05rem, .94rem + .34vw, 1.3rem);
  line-height: 1.58;
}
.faq-hero__rays {
  top: -.25rem;
  left: -3.25rem;
  transform: scale(.72) rotate(-12deg);
}
.faq-hero__sparkles {
  display: none;
}
.faq-hero__watermark {
  position: absolute;
  top: 0;
  right: 0;
  width: clamp(110px, 15vw, 170px);
  color: var(--gold-deep);
  opacity: .055;
  pointer-events: none;
}
.faq-section {
  background: #fbf3e3;
}
.faq-section::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 3.5rem;
  left: 1.2rem;
  width: 84px;
  height: 110px;
  opacity: .23;
  background: radial-gradient(circle, var(--gold) 1.4px, transparent 2px) 0 0 / 13px 13px;
  pointer-events: none;
}
.faq-section::after {
  right: clamp(-1rem, 1vw, 1rem);
  bottom: .7rem;
  width: min(28vw, 330px);
  aspect-ratio: 360 / 330;
  opacity: .48;
  background: url('../images/faq-book-leaf.svg') right bottom / contain no-repeat;
  filter: none;
}
.faq-item:nth-child(3n) {
  border-left-color: #85845e;
}
.faq-item:nth-child(3n) .faq-item__icon {
  color: #6f7654;
  background: rgba(127, 132, 91, .09);
}

/* Footer: mirror the reference rather than layering unrelated effects. */
.site-footer::before,
.site-footer::after,
.site-footer__brand::after {
  display: none;
}
.site-footer__top {
  grid-template-columns: minmax(250px, .9fr) minmax(0, 2.45fr);
  align-items: start;
}
.footer-logo img {
  width: min(100%, 270px);
  filter: none;
}
.site-footer__brand-sparkles {
  top: 5.9rem;
  left: -.35rem;
}
.site-footer__blurb {
  max-width: 38ch;
  font-size: .88rem;
  line-height: 1.65;
}
.site-footer__nav {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(1rem, .6rem + 1.15vw, 1.8rem);
}
.site-footer__heading {
  font-size: .74rem;
  letter-spacing: .15em;
}
.site-footer__col a {
  font-size: .82rem;
  line-height: 1.48;
}
.site-footer__social-title::after {
  content: "";
  right: -2.25rem;
  bottom: -.05rem;
  width: 30px;
  height: 24px;
  background:
    linear-gradient(68deg, transparent 46%, var(--gold) 47% 54%, transparent 55%) 0 4px / 8px 18px no-repeat,
    linear-gradient(90deg, transparent 46%, var(--gold) 47% 54%, transparent 55%) 11px 0 / 8px 18px no-repeat,
    linear-gradient(112deg, transparent 46%, var(--gold) 47% 54%, transparent 55%) 22px 4px / 8px 18px no-repeat;
  color: transparent;
  transform: rotate(22deg);
}
.social-list__link {
  width: 40px;
  height: 40px;
}
.site-footer__divider {
  margin-top: .15rem;
}
.site-footer__motto {
  color: var(--gold);
  font-size: 1.22rem;
}

@media (max-width: 1100px) {
  .community-invite__lead {
    grid-template-columns: minmax(0, 49%) minmax(0, 51%);
  }
  .community-invite__copy .section-title {
    font-size: var(--bs-section-title-size);
  }
  .community-invite .post-card {
    min-height: 340px;
  }
  .community-invite .post-card__body {
    font-size: var(--bs-section-card-copy-size);
  }
  .site-footer__top {
    grid-template-columns: 1fr;
  }
  .site-footer__nav {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}

@media (max-width: 820px) {
  .community-invite__lead {
    grid-template-columns: 1fr;
    min-height: 0;
  }
  .community-invite__copy {
    min-height: 0;
    padding: 3.4rem var(--gutter) 2.6rem;
  }
  .community-invite__copy .section-title {
    max-width: none;
    font-size: var(--bs-section-title-size);
  }
  .community-invite__copy .section-lede {
    max-width: 40em;
  }
  .community-invite__media {
    position: relative;
    top: auto;
    right: auto;
    width: 100%;
    height: clamp(270px, 51vw, 390px);
  }
  .community-invite__media::after {
    background:
      linear-gradient(180deg, #f8ecda 0%, rgba(248, 236, 218, .38) 12%, transparent 31%),
      linear-gradient(0deg, #f8ecda 0%, rgba(248, 236, 218, .64) 10%, transparent 32%);
  }
  .community-invite__cards {
    grid-template-columns: 1fr;
    gap: 1rem;
    margin: -1.65rem var(--gutter) 0;
  }
  .community-invite .post-card {
    min-height: 0;
    padding: 1.6rem 1.45rem 2rem;
  }
  .site-footer__nav {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .community-invite__copy {
    padding-top: 3.1rem;
  }
  .community-invite__copy .eyebrow {
    margin-bottom: 2rem;
  }
  .community-invite__copy .eyebrow::before {
    right: -2.6rem;
    transform: scale(.85) rotate(8deg);
  }
  .community-invite__copy .section-title {
    max-width: 12ch;
    font-size: var(--bs-section-title-size);
  }
  .community-invite__copy .section-lede {
    font-size: var(--bs-section-lede-size);
  }
  .community-invite__media {
    height: 255px;
  }
  .post-card__topline {
    grid-template-columns: 42px minmax(0, 1fr) 42px;
    min-height: 42px;
  }
  .post-card__icon {
    width: 42px;
    height: 42px;
  }
  .post-card__icon-art {
    width: 39px;
    height: 39px;
  }
  .post-card__doodle {
    width: 42px;
    height: 42px;
  }
  .community-invite .section-cta {
    gap: .35rem;
    padding-inline: var(--gutter);
  }
  .community-invite .section-cta::before,
  .community-invite .section-cta::after {
    width: 30px;
    transform: scale(.78) rotate(2deg);
  }
  .community-invite .section-cta::after {
    transform: scaleX(-1) scale(.78) rotate(2deg);
  }
  .community-invite .section-cta .btn {
    min-height: 50px;
    padding: .92rem 1.55rem;
    font-size: .95rem;
  }
  .faq-hero {
    padding-top: 3.5rem;
  }
  .faq-hero__title {
    font-size: clamp(2.75rem, 13vw, 4.2rem);
  }
  .faq-hero__rays {
    top: -.25rem;
    left: -.65rem;
    transform: scale(.58) rotate(-12deg);
  }
  .faq-hero__watermark {
    right: -.5rem;
    width: 105px;
  }
  .faq-section::after {
    right: -70px;
    width: 220px;
    opacity: .3;
  }
  .site-footer__nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 390px) {
  .post-card__topline {
    grid-template-columns: 40px minmax(0, 1fr) 40px;
    gap: .55rem;
  }
  .post-card__icon {
    width: 40px;
    height: 40px;
  }
  .post-card__icon-art {
    width: 37px;
    height: 37px;
  }
  .post-card__doodle {
    width: 40px;
    height: 40px;
  }
  .community-invite .section-cta::before,
  .community-invite .section-cta::after {
    display: none;
  }
  .site-footer__nav {
    grid-template-columns: 1fr;
  }
}

/* =============================================================
   Client review pass — feedback from the 00:52–01:00 notes
   ============================================================= */

/* --- Homepage: breathing room around the app-download band ---- */
.app-download {
  padding-top: 30px;
  padding-bottom: 30px;
}

/* --- Contributors: name drops to its own line ----------------- */
/* .eyebrow is inline-flex site-wide, so the name was flowing up
   beside the role label. */
.contributor-profile__body .eyebrow {
  display: flex;
  width: fit-content;
}

/* --- Who We Are: pull quote reads lighter --------------------- */
.who-quote__statement .section-title,
.who-quote .section-title {
  font-weight: 400;
  font-style: normal;
}

/* --- FAQ hero ------------------------------------------------- */
.faq-hero__title {
  font-size: 56px;
  letter-spacing: 1px;
}
/* Underline sits 4px lower under "to know?". The scale and tilt are
   repeated from the rule above — a bare translateY would replace the
   whole transform and flatten the hand-drawn angle. */
.faq-hero__underline { transform: scaleX(1.04) rotate(-1deg) translateY(4px); }

/* The stray dark disc at the bottom-left of the hero. */
.faq-hero::before { display: none; }

/* --- FAQ: tighten the gap before the first question ----------- */
.faq-section { padding-top: max(0px, calc(var(--section-y) - 30px)); }

/* --- FAQ: space around the action buttons --------------------- */
.faq-actions {
  margin-top: calc(2rem + 20px);
  margin-bottom: 20px;
}

/* --- Contact: photo above the form, smaller heading ----------- */
.contact__form-column {
  display: flex;
  flex-direction: column;
  gap: clamp(1rem, .7rem + 1vw, 1.6rem);
}
.contact__form-column .contact__librarian {
  margin: 0;
  width: min(100%, 250px);
  max-width: 250px;
  align-self: center;
}
.contact__layout .section-title { font-size: 36px; }

@media (max-width: 640px) {
  .faq-hero__title { font-size: clamp(2.1rem, 1.4rem + 5vw, 56px); }
  .contact__layout .section-title { font-size: clamp(1.7rem, 1.2rem + 3vw, 36px); }
}

/* =============================================================
   Client PDF pass — September 4, 2026
   Only the components called out in the supplied notes are adjusted.
   ============================================================= */

/* Home heading: a clear hand-drawn arrow, the shifted heart, and the
   supplied four-pixel underline adjustment. The FAQ reuses the arrow. */
.app-overview__rays,
.faq-hero__rays {
  width: 48px;
  height: 42px;
  background: none;
}
.app-overview__rays::before,
.faq-hero__rays::before {
  top: 1px;
  left: 14px;
  bottom: auto;
  width: 3px;
  height: 31px;
  border: 0;
  border-radius: 3px;
  background: var(--gold);
  transform: rotate(-38deg);
  transform-origin: 50% 100%;
}
.app-overview__rays::after,
.faq-hero__rays::after {
  top: 21px;
  left: 23px;
  bottom: auto;
  width: 14px;
  height: 14px;
  border-right: 3px solid var(--gold);
  border-bottom: 3px solid var(--gold);
  border-radius: 2px;
  background: transparent;
  transform: rotate(7deg);
  transform-origin: center;
}
.app-overview__heart {
  margin-left: .2em;
  transform: translateX(6px) rotate(-9deg);
}
.app-overview__head .script__flourish {
  bottom: calc(-.15em - 4px);
}

/* Shared hero spacing: twenty extra pixels beneath each button row and a
   matching small height increase on the home and interior hero variants. */
.hero {
  min-height: 360px;
}
.hero__content .btn-row {
  margin-bottom: calc(clamp(1rem, .8rem + .8vw, 1.65rem) + 20px);
}
.page-hero {
  min-height: calc(min(42vh, 380px) + 20px);
}
.page-hero--short {
  min-height: calc(min(36vh, 320px) + 20px);
}
.page-hero .btn-row {
  margin-bottom: 20px;
}

/* The text-only invitation beneath the article/event cards. */
.ecta__partner-text {
  padding-block: 10px;
}

/* Local Bookstores: the requested fixed title size, scoped to this intro. */
.bookstore-directory__intro .section-title {
  display: block;
  width: 100%;
  max-width: none;
  font-size: 42px;
}

/* Contact topic spacing only; card styling remains untouched. */
.contact-topics .contact__sub {
  margin-bottom: 4px;
}
.contact-topics__list {
  padding-block: 16px;
}

/* Who We Are — LIT composition translated directly from lit.jpg. The
   supplied artwork is used as a sprite so the original drawings remain exact
   while the copy stays semantic and responsive. */
.section.lit-section {
  padding: clamp(2.35rem, 1.8rem + 1.8vw, 3.5rem) 0 clamp(2.65rem, 2rem + 2vw, 4rem) !important;
  background: #fbfaf7;
}
.lit-section__inner {
  max-width: 1220px;
}
.lit-heading {
  max-width: 76rem;
  margin-inline: auto;
}
.lit-heading > .eyebrow {
  margin-bottom: clamp(1.15rem, .9rem + .7vw, 1.65rem);
  color: var(--burgundy);
  letter-spacing: .2em;
}
.lit-heading__title-row {
  position: relative;
  width: fit-content;
  max-width: 100%;
  margin-inline: auto;
}
.lit-heading .section-title {
  max-width: none;
  color: var(--ink);
  font-size: var(--fs-h2);
  font-weight: 900;
  line-height: 1.05;
  letter-spacing: -.025em;
}
.lit-heading__heart {
  display: inline-block;
  margin-left: .12em;
  color: var(--burgundy);
  font-family: var(--font-script);
  font-size: .82em;
  line-height: 1;
  transform: rotate(-10deg);
}
.lit-heading__rays {
  position: absolute;
  top: .12rem;
  left: -3.7rem;
  width: 45px;
  height: 52px;
  background:
    linear-gradient(70deg, transparent 45%, var(--gold) 47% 54%, transparent 56%) 3px 0 / 16px 29px no-repeat,
    linear-gradient(89deg, transparent 45%, var(--gold) 47% 54%, transparent 56%) 0 20px / 23px 14px no-repeat,
    linear-gradient(108deg, transparent 45%, var(--gold) 47% 54%, transparent 56%) 8px 32px / 18px 20px no-repeat;
  transform: rotate(-5deg);
}
.lit-heading .section-lede {
  max-width: 82ch;
  margin: clamp(1.15rem, .85rem + .75vw, 1.65rem) auto 0;
  color: var(--text-muted);
  font-size: var(--fs-lede);
  line-height: 1.65;
}
.lit-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin-top: clamp(2rem, 1.5rem + 1.2vw, 2.75rem);
}
.lit-card {
  display: flex;
  min-width: 0;
  min-height: 200px;
  align-items: center;
  gap: 14px;
  padding: 10px 18px;
  overflow: hidden;
  background: rgba(255, 255, 255, .88);
  border: 1px solid rgba(58, 42, 34, .13);
  border-radius: 18px;
  box-shadow: 0 8px 20px rgba(58, 42, 34, .07);
}
.lit-card__illustration {
  width: 160px;
  height: 175px;
  flex: 0 0 160px;
  background-image: url('../images/lit-community-reference.jpg');
  background-repeat: no-repeat;
  background-size: 1220px 448px;
}
.lit-card--loving .lit-card__illustration { background-position: -28px -236px; }
.lit-card--inclusive .lit-card__illustration { background-position: -442px -236px; }
.lit-card--tolerant .lit-card__illustration { background-position: -844px -236px; }
.lit-card__content {
  min-width: 0;
}
.lit-card__title {
  margin-bottom: .65rem;
  font-size: clamp(1.45rem, 1.25rem + .55vw, 1.85rem);
  line-height: 1.1;
  color: var(--burgundy);
}
.lit-card--inclusive .lit-card__title { color: #456c42; }
.lit-card--tolerant .lit-card__title { color: var(--gold-deep); }
.lit-card p {
  max-width: 22ch;
  color: var(--text-muted);
  font-size: var(--fs-body);
  line-height: 1.55;
}

/* Mobile navigation label requested in the client notes. */
.site-nav__mobile-heading {
  display: none;
}

@media (max-width: 1100px) {
  .site-nav {
    top: 64px;
    height: calc(100dvh - 64px);
    padding-top: 2.3rem;
  }
  .site-nav__mobile-heading {
    display: block;
    margin: 0 0 .3rem;
    color: var(--gold);
    font-size: clamp(2.75rem, 12vw, 3rem);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: .18em;
    text-transform: uppercase;
  }
}

@media (max-width: 1020px) {
  .lit-heading__desktop-break {
    display: none;
  }
  .lit-grid {
    grid-template-columns: 1fr;
  }
  .lit-card {
    width: min(100%, 720px);
    margin-inline: auto;
  }
}

@media (max-width: 620px) {
  .hero {
    min-height: 440px;
  }
  .lit-heading__rays {
    left: -2rem;
    transform: scale(.72) rotate(-5deg);
  }
}

@media (max-width: 720px) {
  .ecta {
    padding-inline: 0;
  }
  .ecta__inner {
    border-radius: 0;
  }
  .ecta__intro,
  .ecta__eyebrow,
  .ecta__title {
    width: 100%;
    max-width: none;
  }
  .ecta__intro {
    padding-right: 0;
  }
}

@media (max-width: 620px) {
  .site-footer__bottom {
    padding-top: 3rem;
  }
}

@media (max-width: 480px) {
  .bookstore-directory__intro .section-title {
    font-size: 42px;
    line-height: 1.08;
  }
  .lit-card {
    min-height: 176px;
    gap: 10px;
    padding: 10px 12px;
  }
  .lit-card__illustration {
    width: 134px;
    height: 150px;
    flex-basis: 134px;
    background-size: 1000px 367px;
  }
  .lit-card--loving .lit-card__illustration { background-position: -24px -195px; }
  .lit-card--inclusive .lit-card__illustration { background-position: -362px -195px; }
  .lit-card--tolerant .lit-card__illustration { background-position: -692px -195px; }
  .lit-card__title {
    margin-bottom: .45rem;
    font-size: 1.35rem;
  }
  .lit-card p {
    font-size: var(--fs-sm);
    line-height: 1.45;
  }
}

/* Client PDF pass — remaining items -------------------------- */

/* Card textures behind the community boxes: more transparent. */
.post-card__texture { opacity: .48; }

/* FAQ heading now sets on one line per the emailed note. */
.faq-hero__title { max-width: none; }

/* FAQ: 30px less between the intro paragraph and the questions. */
.faq-section { padding-top: max(0px, calc(var(--section-y) - 30px)); }

/* --- Mobile fixes from the client's phone screenshots --------- */
@media (max-width: 620px) {
  /* The phone mockup was hanging off the right edge of the scene, so it
     read as cut off. Sized to sit fully inside the media band. */
  .app-download__media {
    min-height: 290px;
    aspect-ratio: auto;
  }
  .app-download__scene {
    top: 12%;
    height: 76%;
    border-radius: 0;
  }
  .app-download__phone {
    right: 14px;
    width: 112px;
  }

  /* The reading/CTA band: intro copy and cards were sharing a narrow
     column, so the heading broke on almost every word. */
  .ecta__events {
    grid-template-columns: minmax(0, 1fr);
    padding-inline: 1.15rem;
  }
  .ecta__intro,
  .ecta__title,
  .ecta__copy {
    width: 100%;
    max-width: none;
  }
  .ecta__title { font-size: clamp(1.75rem, 8vw, 2.3rem); }
  .ecta__copy  { max-width: 42ch; }

  /* Cards: full-width snap items rather than a cramped 3-up grid. */
  .ecta__cards {
    grid-auto-columns: 82%;
    gap: 12px;
  }
  .ecta__card { min-height: 200px; }

  /* The date chip was sitting on top of the card title. */
  .ecta__card-body { padding-bottom: 1.1rem; }
  .ecta__date { top: 8px; left: 8px; }
}

/* --- Phone: every hero slide adopts the first slide's metrics --- */
@media (max-width: 620px) {
  .hero__inner:not(.hero__inner--with-phone) .hero__content .btn-row {
    max-width: calc(100% - 98px);
  }
  .hero__inner .hero__content { max-width: 100%; }
}
@media (max-width: 390px) {
  .hero__inner .hero__title { max-width: calc(100% - 72px); }
}

/* LIT heading rays: three crisp strokes fanning up-left of the title,
   matching the supplied reference. Drawn as an inline SVG so the angles
   and stroke weight stay exact at any size. */
.lit-heading__rays {
  background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='45' height='52' viewBox='0 0 45 52'%3E%3Cg fill='none' stroke='%23E2A63C' stroke-width='4' stroke-linecap='round'%3E%3Cpath d='M40 12 L22 4'/%3E%3Cpath d='M34 27 L13 24'/%3E%3Cpath d='M38 42 L20 47'/%3E%3C/g%3E%3C/svg%3E") no-repeat center / contain;
}

/* Heart rides at the top right of the title, as in the reference. */
.lit-heading__heart {
  transform: translateY(-.34em) rotate(-10deg);
}

/* --- Hero title: more open line height, identical on every slide --- */
/* All four slides share .hero__title (slide one as h1, the rest as p),
   so a single rule keeps them matched. */
.hero__title { line-height: 1.14; }
.hero__title .script { line-height: 1.2; }

/* Less dead space above the hero copy on phones. */
@media (max-width: 620px) {
  .hero {
    min-height: 400px;
    padding-top: 1rem;
  }
}

/* --- Phone: overlay slides share slide one's baseline -------- */
/* Slide one sits in normal flow, so at this width the hero's
   align-items:flex-end drops it to the bottom, above the 5.25rem
   bottom padding. Slides two onward are absolutely positioned and were
   still vertically centred, which is why their buttons rode higher and
   why the line-height change only appeared to affect slide one.
   Anchoring them to the same baseline makes every slide match. */
@media (max-width: 620px) {
  .hero__inner + .hero__inner {
    top: auto;
    bottom: 5.25rem;
    translate: none;
  }
}

/* --- Phone: drop the slide copy clear of the sticky header ---- */
/* Slide two carries the longest title and lede, so anchoring it to the
   same baseline as slide one pushed its top up under the navbar. A
   slightly taller hero plus a shorter bottom offset moves every slide's
   buttons down and buys the tall slide its headroom back. */
@media (max-width: 620px) {
  .hero {
    min-height: 440px;
    padding-bottom: 4rem;
  }
  .hero__inner + .hero__inner { bottom: 4rem; }

  /* Keep the arrows clear of the lowered button row. */
  .hero__arrow { bottom: 1.35rem; }
}

/* --- Phone: buttons 20px lower on every slide ---------------- */
/* The copy is bottom-anchored, so trimming the bottom offset by 20px
   moves the button row down on all four slides at once. The dots and
   arrows shift with it so nothing lands on top of the buttons. */
@media (max-width: 620px) {
  .hero { padding-bottom: calc(4rem - 20px); }
  .hero__inner + .hero__inner { bottom: calc(4rem - 20px); }
  .hero__arrow { bottom: calc(1.35rem - 20px); }
  .hero__dots  { bottom: calc(2.2rem - 20px); }
}

/* --- Phone: buttons to the bottom, controls on one line above -- */
/* The button row drops further down the slide, and the dots and arrows
   are raised onto a single shared line above it so the controls read as
   one uniform strip instead of sitting at two different heights. */
@media (max-width: 620px) {
  .hero { padding-bottom: 1.5rem; }
  .hero__inner + .hero__inner { bottom: 1.5rem; }

  .hero__arrow,
  .hero__dots { bottom: 4.75rem; }
}
