/** Shopify CDN: Minification failed

Line 549:0 Unexpected "}"

**/

/* one body size across the whole footer: headings at fs-4, everything else at fs-5 */
.footer .footer-block__details-content,
.footer .footer-block__details-content p,
.footer .footer-block__details-content a,
.footer .footer-block__details-content li,
.footer .list-menu__item,
.footer .copyright__content,
.footer .policies li a{font-size:var(--fs-5)!important;line-height:1.6}
.footer .footer-block__details-content a{text-decoration:none;border-bottom:1px solid rgba(255,255,255,.32)}
.footer .footer-block__details-content a:hover{border-bottom-color:#fff}
.footer__list-social{gap:var(--sp-2);justify-content:flex-start}
.footer__list-social .link{padding:8px}
.footer__list-social .icon{width:19px;height:19px}
.footer__content-bottom .footer__column--info{align-items:flex-start}
@media(max-width:860px){
  .footer__blocks-wrapper > .footer-block,
  .footer__blocks-wrapper > .footer-block:first-child,
  .footer__blocks-wrapper > .footer-block:nth-child(2),
  .footer__blocks-wrapper > .footer-block:nth-child(3){flex:1 1 100%;max-width:100%;padding-right:0}
}

/* FOOTER. Dawn's .grid is flex, not css grid, so widths come from flex-basis.
   Three equal columns put a 45-word safety notice beside a three-link list. The notice
   becomes a full-width strip under a rule, which is where a disclaimer belongs. */
.footer__content-top{padding-bottom:0}
.footer__blocks-wrapper{align-items:flex-start;row-gap:var(--sp-5)}
.footer__blocks-wrapper > .footer-block{flex-basis:auto}
.footer__blocks-wrapper > .footer-block:first-child{flex:1 1 38%;max-width:38%;padding-right:var(--sp-5)}
.footer__blocks-wrapper > .footer-block:nth-child(2),
.footer__blocks-wrapper > .footer-block:nth-child(3){flex:1 1 22%;max-width:22%}
.footer__blocks-wrapper > .footer-block:last-child{flex:1 1 100%;max-width:100%;
  margin-top:var(--sp-4);padding-top:var(--sp-4);border-top:1px solid rgba(255,255,255,.18)}
.footer-block__heading{margin-bottom:var(--sp-3)!important;letter-spacing:.01em}
.footer-block__details-content .list-menu__item{padding:5px 0}
.footer-block__details-content p{margin:0;max-width:52ch;line-height:1.55}
.footer__blocks-wrapper > .footer-block:last-child p{max-width:none;font-size:var(--fs-5)}
.footer__content-bottom{border-top:1px solid rgba(255,255,255,.18);margin-top:var(--sp-5)}
.footer__content-bottom-wrapper{align-items:center}
.footer__copyright{font-size:var(--fs-5)}
.footer__payment{margin-top:0}

/* header icons: accounts are not enabled and a search field earns nothing on a
   one-page catalogue, so both come out. The cart glyph is replaced in assets/. */
.header__icon--account,.header__icon--search,details-modal.header__search{display:none!important}
.header__icons{gap:var(--sp-2)}

/* 11 - the offer tiers */
.bsbl-offer{padding:var(--section-pad) 0}
.bsbl-offer__h{text-align:center;margin:0 0 var(--sp-5);text-wrap:balance}
.bsbl-offer__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4);align-items:stretch}
.bsbl-offer__card{position:relative;display:flex;flex-direction:column;text-align:center;
  background:#F7F8FA;border:1px solid var(--rule);border-radius:var(--radius-card);
  padding:var(--sp-5) var(--sp-4) var(--sp-4)}
.bsbl-offer__card.is-featured{background:var(--pink-soft);border:2px solid var(--plum)}
.bsbl-offer__badge{position:absolute;top:0;left:50%;transform:translate(-50%,-50%);
  background:var(--plum);color:#fff;font-family:var(--font-text);font-size:var(--fs-5);
  font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:7px 18px;border-radius:999px;white-space:nowrap}
/* every cover gets an identical box, so a bundle and a single book read the same size */
.bsbl-offer__media{height:280px;display:flex;align-items:center;justify-content:center;margin-bottom:var(--sp-3)}
.bsbl-offer__img{max-height:100%;max-width:100%;width:auto;height:auto;object-fit:contain}
.bsbl-offer__t{font-family:var(--font-display);font-size:var(--fs-3);font-weight:600;
  line-height:1.2;margin:0 0 var(--sp-2);text-wrap:balance}
.bsbl-offer__price{margin:0 0 var(--sp-3);font-family:var(--font-text);font-size:var(--fs-3);font-weight:600}
.bsbl-offer__was{color:var(--ink-muted);font-weight:400;margin-right:10px}
.bsbl-offer__form{margin:auto 0 0}
.bsbl-offer__cta{width:100%;border:0;cursor:pointer;font-family:var(--font-text)}
.bsbl-offer__cta[disabled]{opacity:.45;cursor:not-allowed}
@media(max-width:860px){.bsbl-offer__grid{grid-template-columns:1fr}
  .bsbl-offer__media{height:240px}}

/* THE DARK BANDS. #792F5D carries white type. Three things have to be unpicked for it:
   the section-root rule that pins .bsbl-reviews to ink, the white card grounds inside
   the reviews band, and the footer rules that force ink with !important. */
.bsbl-ty.color-scheme-2,.bsbl-reviews.color-scheme-2{background:var(--plum)}
.bsbl-ty.color-scheme-2,.bsbl-ty.color-scheme-2 *,
.bsbl-reviews.color-scheme-2,.bsbl-reviews.color-scheme-2 *{color:#fff}
/* pink cards on the plum. Text inside them goes back to ink, and the numbered discs
   flip to plum so they do not vanish into the card they sit on. */
/* cards are a lighter plum: white laid over the ground at low opacity, so they read as
   raised panels of the same colour rather than a second hue. Type stays white. */
.bsbl-ty.color-scheme-2 .bsbl-ty__card,
.bsbl-reviews.color-scheme-2 .bsbl-reviews__card{background:rgba(255,255,255,.18);border-color:transparent}
.bsbl-ty.color-scheme-2 .bsbl-ty__card,
.bsbl-ty.color-scheme-2 .bsbl-ty__card *,
.bsbl-reviews.color-scheme-2 .bsbl-reviews__card,
.bsbl-reviews.color-scheme-2 .bsbl-reviews__card *{color:#fff}
.bsbl-ty.color-scheme-2 .bsbl-ty__num{background:var(--surface);color:var(--ink)}
.bsbl-ty.color-scheme-2 .bsbl-btn--primary{background:var(--plum);color:#fff}
.bsbl-reviews.color-scheme-2 .bsbl-reviews__role{color:rgba(255,255,255,.72)}
/* footer */
footer.color-scheme-2,footer.color-scheme-2 *{color:#fff!important}
footer.color-scheme-2 .footer-block__heading{color:#fff!important}
footer.color-scheme-2 a{text-decoration-color:rgba(255,255,255,.5)}
footer.color-scheme-2 .footer__content-bottom,
footer.color-scheme-2 .footer-block{border-color:rgba(255,255,255,.2)}

/* author: photo and text share a top edge and a height */
.bsbl-author__media{display:flex}
.bsbl-author__img,.bsbl-author__media .bsbl-ph{width:100%;height:100%;object-fit:cover;
  border-radius:var(--radius-card);min-height:420px}
.bsbl-author__text{display:flex;flex-direction:column;justify-content:center}
/* the section CTA was a grid child and landed inside a column */
.bsbl-author__grid > .bsbl-sectioncta{grid-column:1 / -1}

/* section CTAs read as deliberate when they are centred under the block they close */
.bsbl-sectioncta,.bsbl-ty__cta{text-align:center}
.bsbl-sectioncta .bsbl-btn,.bsbl-ty__cta .bsbl-btn{margin-inline:auto}

/* Dawn crops product card images to fill the tile, which cut the titles off the book
   covers. Show the whole cover, with white around it. */
.card__media .media img,
.card-wrapper .media img{object-fit:contain!important;padding:9%;box-sizing:border-box;background:var(--surface)}
.card__media,.card-wrapper .media{background:var(--surface)}
.card__inner{background:var(--surface)}
.card--standard .card__media .media img:hover,
.card-wrapper .media img:hover{transform:none}

/* Dawn's own chrome ran 18/14/11px and a 75%-opacity ink, which pushed the page past
   five sizes and four colours. Snap it to the same scale as everything else. */
.header__heading-link .h2{color:var(--ink);opacity:1}
.badge{background:var(--accent)!important;color:var(--ink)!important;border-color:var(--accent)!important}
.announcement-bar,.announcement-bar__message,.announcement-bar__link{color:var(--ink)!important;opacity:1}
.menu-drawer__menu-item{font-size:var(--fs-4)}
.footer-block__heading{font-size:var(--fs-4)!important;font-family:var(--font-text);font-weight:600;color:var(--ink)}
.footer-block__details-content .list-menu__item,
.footer-block__details-content a,
.footer__content-bottom a,
.copyright__content,
.copyright__content a,
.policies .list-menu__item{font-size:var(--fs-5)!important;color:inherit!important;opacity:1}
.header__menu-item span,.header__menu-item{color:var(--ink)!important;opacity:1}
.price-item--regular,.price-item{color:var(--ink)!important;opacity:1}
.footer-block__details-content p,.footer-block__details-content{color:var(--ink-muted);opacity:1}
.price-item,.price__container .price-item{font-size:var(--fs-4);color:var(--ink);opacity:1}
.card__heading a{font-size:var(--fs-4)}

#read-free,#which-one{scroll-margin-top:110px}

.bsbl-ph--portrait{aspect-ratio:4/5}
/* Better Self Better Life - homepage section styles.
   Generated by info/build/build_index.py. Tokens only: every color, size and space comes
   from assets/tokens.css. A hardcoded value in here is a bug.
   Lives in its own asset rather than per-section custom_css because that field caps at
   500 characters TOTAL per section and a rejected push looks exactly like a good one. */

.bsbl-wrap{max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}
.bsbl-h2{font-family:var(--font-display);font-size:var(--fs-2);font-weight:600;line-height:1.15;text-wrap:balance;margin:0 0 var(--sp-3)}
.bsbl-h3{font-family:var(--font-display);font-size:var(--fs-3);font-weight:400;line-height:1.2;margin:0 0 var(--sp-2)}
.bsbl-eyebrow{font-family:var(--font-text);font-size:var(--fs-5);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 var(--sp-2)}

.bsbl-btn{display:inline-block;padding:14px 26px;border-radius:var(--radius-button);font-family:var(--font-text);font-size:var(--fs-4);font-weight:600;text-decoration:none;line-height:1;transition:opacity .15s}
.bsbl-btn:hover{opacity:.88}
.bsbl-btn--primary{background:var(--plum);color:#fff}
.bsbl-btn--ghost{background:transparent;color:var(--plum);box-shadow:inset 0 0 0 2px var(--plum)}
.bsbl-btn:focus-visible{outline:3px solid var(--ink-muted);outline-offset:2px}

/* placeholder boxes keep their aspect ratio so nothing collapses before images exist */
.bsbl-ph{display:grid;place-items:center;background:#F7F8FA;border:1px dashed var(--rule);border-radius:var(--radius-card);color:var(--ink-muted);font-family:var(--font-text);font-size:var(--fs-5);text-align:center;padding:var(--sp-3)}
.bsbl-ph--hero{aspect-ratio:1/1;max-height:min(420px,52svh)}
.bsbl-ph--portrait{aspect-ratio:4/5;max-height:380px}

/* 1 - proof strip */
.bsbl-proof{padding:var(--sp-4) 0;border-block:1px solid var(--rule)}
.bsbl-proof__row{display:flex;flex-wrap:nowrap;justify-content:center;align-items:center;gap:var(--sp-3);text-align:center}
.bsbl-proof__item{display:flex;gap:6px;align-items:baseline;white-space:nowrap;min-width:0}
.bsbl-proof__item + .bsbl-proof__item::before{content:"\00b7";color:var(--ink-muted);margin-right:var(--sp-3)}
.bsbl-proof__lead{font-family:var(--font-text);font-size:var(--fs-4);font-weight:600;color:var(--ink)}
@media(max-width:1330px) and (min-width:1001px){.bsbl-proof__lead,.bsbl-proof__label{font-size:var(--fs-5)}}
@media(max-width:1000px){.bsbl-proof__row{flex-wrap:wrap;gap:var(--sp-2) var(--sp-3)}
  .bsbl-proof__item + .bsbl-proof__item::before{content:none}}
.bsbl-proof__label{font-family:var(--font-text);font-size:var(--fs-4);color:var(--ink-muted)}

/* 3 - hero */
.bsbl-hero{padding:var(--section-pad) 0;display:flex;align-items:center;
  /* the whole hero must fit one screen: subtract announcement bar + header */
  min-height:calc(88svh - var(--bsbl-chrome,132px))}
.bsbl-hero__grid{display:grid;grid-template-columns:1.15fr .85fr;gap:var(--sp-6);align-items:center;width:100%}
.bsbl-hero__h1{font-family:var(--font-display);font-size:var(--fs-1);font-weight:600;line-height:1.08;text-wrap:balance;margin:0 0 var(--sp-3)}
.bsbl-hero__lead{font-size:var(--fs-3);color:var(--ink-muted);max-width:var(--measure);margin:0 0 var(--sp-4)}
.bsbl-hero__cta{display:flex;flex-wrap:wrap;gap:var(--sp-3)}
.bsbl-hero__note{font-size:var(--fs-5);color:var(--ink-muted);margin:var(--sp-3) 0 0}
.bsbl-hero__img{display:block;width:auto;max-width:100%;height:auto;max-height:min(440px,54svh);margin-inline:auto;object-fit:contain;border-radius:var(--radius-card)}

/* reviews - statement left, cards running leftward */
.bsbl-reviews{padding:var(--section-pad) 0;overflow:hidden}
.bsbl-reviews__grid{display:grid;grid-template-columns:minmax(280px,.8fr) 1.2fr;gap:var(--sp-5);align-items:center}
.bsbl-reviews__lead{color:var(--ink-muted);margin:0;max-width:46ch}
.bsbl-reviews__rail{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#000 80%,transparent);mask-image:linear-gradient(90deg,#000 80%,transparent)}
.bsbl-reviews__track{display:flex;gap:var(--sp-3);width:max-content;animation:bsbl-marquee 42s linear infinite}
.bsbl-reviews__rail:hover .bsbl-reviews__track{animation-play-state:paused}
@keyframes bsbl-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){
  .bsbl-reviews__track{animation:none}
  .bsbl-reviews__rail{overflow-x:auto}
}
.bsbl-reviews__card{flex:0 0 300px;margin:0;padding:var(--sp-4);border:1px solid var(--rule);
  border-radius:var(--radius-card);background:var(--surface)}
.bsbl-reviews__card blockquote{margin:0 0 var(--sp-3);font-size:var(--fs-4)}
.bsbl-reviews__name{display:block;font-weight:600;font-size:var(--fs-4)}
.bsbl-reviews__role{display:block;font-size:var(--fs-5);color:var(--ink-muted)}

/* 6 - story: portrait beside the prose so it is never a wall of text */
.bsbl-story{padding:var(--section-pad) 0}
.bsbl-story__split{display:grid;grid-template-columns:.62fr 1.38fr;gap:var(--sp-6);align-items:center}
.bsbl-story__img{width:100%;height:auto;max-height:380px;object-fit:cover;border-radius:var(--radius-card)}
.bsbl-story__inner{max-width:var(--measure)}
.bsbl-story__p{font-size:var(--fs-4)}
.bsbl-story__p{margin:0 0 var(--sp-3)}
.bsbl-story__pull{font-family:var(--font-display);font-size:var(--fs-3);line-height:1.3;color:var(--ink);border-left:2px solid var(--rule);padding-left:var(--sp-3);margin:var(--sp-4) 0}

/* 7 - reframe */
.bsbl-reframe{padding:var(--section-pad) 0}
.bsbl-reframe__h{text-align:center}
.bsbl-reframe__intro{max-width:var(--measure);margin:0 auto var(--sp-5);text-align:center;color:var(--ink-muted);font-size:var(--fs-3)}
.bsbl-reframe__cols{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-5)}
.bsbl-reframe__col{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-card);padding:var(--sp-5)}
.bsbl-reframe__body{margin:0;color:var(--ink-muted)}
.bsbl-reframe__spec{margin:var(--sp-3) 0 0;padding-top:var(--sp-3);border-top:1px solid var(--rule);
  font-size:var(--fs-5);color:var(--ink-muted);white-space:pre-line}

/* 8 - teach: the drill on the left, a real page from the book on the right */
.bsbl-teach{padding:var(--section-pad) 0}
.bsbl-teach__split{display:grid;grid-template-columns:1.15fr .85fr;gap:var(--sp-6);align-items:center}
.bsbl-teach__inner{max-width:none}
.bsbl-teach__img{width:100%;height:auto;max-height:460px;object-fit:contain;border-radius:var(--radius-card)}
.bsbl-ph--pages{aspect-ratio:3/4;max-height:460px}
.bsbl-teach__body p{margin:0 0 var(--sp-3)}
.bsbl-teach__step{margin:var(--sp-4) 0;padding-left:var(--sp-3);border-left:2px solid var(--rule)}
.bsbl-teach__foot{margin-top:var(--sp-4);font-size:var(--fs-5);color:var(--ink-muted)}

/* 9 - steps */
.bsbl-steps{padding:var(--section-pad) 0}
.bsbl-steps__h{text-align:center;margin-bottom:var(--sp-5)}
.bsbl-steps__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-5)}
.bsbl-steps__num{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--pink);color:var(--ink);font-family:var(--font-text);font-size:var(--fs-4);font-weight:600;margin-bottom:var(--sp-3)}
.bsbl-steps__item p{margin:0;color:var(--ink-muted)}

/* 10 - contents */
.bsbl-contents{padding:var(--section-pad) 0}
.bsbl-contents__list{list-style:none;margin:0;padding:0;display:grid;gap:var(--sp-4);max-width:var(--measure)}
.bsbl-contents__row{padding:var(--sp-4) 0;border-top:1px solid var(--rule)}
.bsbl-contents__body{margin:0;color:var(--ink-muted)}

/* 11 - author */
.bsbl-author{padding:var(--section-pad) 0}
.bsbl-author__grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:var(--sp-6);align-items:stretch}
.bsbl-author__img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-card)}
.bsbl-author__body{color:var(--ink-muted);max-width:var(--measure)}
.bsbl-author__pull{font-family:var(--font-display);font-size:var(--fs-3);line-height:1.3;
  border-left:2px solid var(--rule);padding-left:var(--sp-3);margin:var(--sp-4) 0}
.bsbl-author__creds{margin:var(--sp-5) 0 0;padding:0;list-style:none;display:grid;gap:var(--sp-2)}
.bsbl-author__creds li{padding-left:var(--sp-3);border-left:2px solid var(--rule);font-size:var(--fs-5)}

/* 12 - endorsements */
.bsbl-endorse{padding:var(--section-pad) 0}
.bsbl-endorse__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--sp-4)}
.bsbl-endorse__item{margin:0;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-card);padding:var(--sp-4)}
.bsbl-endorse__item blockquote{margin:0 0 var(--sp-3);font-size:var(--fs-4)}
.bsbl-endorse__name{display:block;font-weight:600}
.bsbl-endorse__role{display:block;font-size:var(--fs-5);color:var(--ink-muted)}

/* Dawn's .color-scheme-* wrappers set color:rgba(foreground,.75) and .7, which leaks two
   extra text colors into every section. The page runs on exactly three: ink, ink-muted,
   accent. Pin the section roots so nothing inherits a faded variant. */
.bsbl-hero,.bsbl-proof,.bsbl-reviews,.bsbl-story,.bsbl-reframe,.bsbl-teach,
.bsbl-steps,.bsbl-contents,.bsbl-author,.bsbl-endorse,.bsbl-faq{color:var(--ink)}
.bsbl-hero *,.bsbl-proof *,.bsbl-reviews *,.bsbl-story *,.bsbl-reframe *,.bsbl-teach *,
.bsbl-steps *,.bsbl-contents *,.bsbl-author *,.bsbl-endorse *,.bsbl-faq *{color:inherit}
.bsbl-hero__lead,.bsbl-proof__label,.bsbl-reviews__lead,.bsbl-reviews__role,.bsbl-reframe__intro,
.bsbl-reframe__body,.bsbl-teach__foot,.bsbl-contents__body,.bsbl-author__body,.bsbl-faq__a p,
.bsbl-steps__item p,.bsbl-hero__note,.eyebrow,.bsbl-eyebrow,.bsbl-endorse__role{color:var(--ink-muted)}
.bsbl-btn--primary{background:var(--plum);color:#fff}
.bsbl-btn--ghost,.bsbl-faq__q::after{color:var(--ink)}

/* Dawn's product grid is outside the .bsbl-* tree and leaks the same faded variants.
   Pin it too, so the whole page runs on ink / ink-muted / accent and nothing else. */
#MainContent .color-scheme-1,#MainContent .color-scheme-2,#MainContent .color-scheme-3,
.collection,.collection *,.card-wrapper,.card-wrapper *,.card__inner,.card__content{color:var(--ink)}
.card__information .caption,.card__inner .caption,.price--on-sale .price-item--regular,
.collection__title .title-wrapper p{color:var(--ink-muted)}
.quick-add__submit,.card-wrapper .button{color:var(--ink);background:var(--accent)}

/* "What it will teach her" - heading left, context right, numbered cards, one CTA */
.bsbl-ty{padding:var(--section-pad) 0}
.bsbl-ty__head{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-6);align-items:start;margin-bottom:var(--sp-6)}
.bsbl-ty__h{font-family:var(--font-display);font-size:var(--fs-2);font-weight:600;line-height:1.1;margin:0;text-wrap:balance}
.bsbl-ty__head--solo{grid-template-columns:1fr}
.bsbl-ty__intro{margin:0;color:var(--ink-muted);max-width:52ch}
.bsbl-ty__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-4)}
@media(max-width:1080px){.bsbl-ty__grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.bsbl-ty__grid{grid-template-columns:1fr}}
.bsbl-ty__card{border:1px solid var(--rule);border-radius:var(--radius-card);padding:var(--sp-5)}
.bsbl-ty__num{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;
  background:var(--pink);color:var(--ink);font-family:var(--font-text);font-size:var(--fs-4);font-weight:600;margin-bottom:var(--sp-3)}
.bsbl-ty__t{font-family:var(--font-display);font-size:var(--fs-3);font-weight:400;margin:0 0 var(--sp-2);line-height:1.2}
.bsbl-ty__b{margin:0;color:var(--ink-muted)}
.bsbl-ty__cta{margin-top:var(--sp-6)}

/* numbered facts, Hormozi "meet Alex" pattern */
.bsbl-author__facts{margin:0;padding:0;list-style:none;display:grid;gap:0}
.bsbl-author__why{margin:var(--sp-3) 0 var(--sp-5);max-width:var(--measure)}
.bsbl-author__why strong{font-weight:600}
.bsbl-author__pull{margin:var(--sp-4) 0 0;padding-left:var(--sp-4);border-left:2px solid var(--rule);font-family:var(--font-display);font-size:var(--fs-3);line-height:1.35;color:var(--ink);max-width:var(--measure)}
.bsbl-author__facts li{display:grid;grid-template-columns:auto 1fr;gap:var(--sp-3);align-items:start;
  padding:var(--sp-3) 0;border-top:1px solid var(--rule)}
.bsbl-author__facts li:last-child{border-bottom:1px solid var(--rule)}
.bsbl-author__facts .n{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;flex:0 0 auto;
  background:var(--pink);color:var(--ink);font-size:var(--fs-5);font-weight:600}
.bsbl-author__sub{margin-bottom:var(--sp-4);font-size:var(--fs-4);color:var(--ink-muted);margin:0 0 var(--sp-4);max-width:56ch}

/* one CTA closing each section */
.bsbl-sectioncta{margin-top:var(--sp-5)}

/* free sample: real interior pages + capture */
.bsbl-sample{padding:var(--section-pad) 0}
.bsbl-sample--compact{padding:var(--section-pad) 0}
.bsbl-sample--compact.color-scheme-2,
.bsbl-sample--compact.color-scheme-2 *{color:#fff}
/* the blanket white above also caught the button, leaving white type on the pale pink
   fill. Every other button on the page is ink on pink; this one matches them. */
.bsbl-sample--compact.color-scheme-2 .bsbl-btn--primary{background:var(--plum);color:#fff}
.bsbl-sample--compact.color-scheme-2{background:var(--plum)}
.bsbl-sample--compact .bsbl-sample__head{display:block;text-align:center;margin-bottom:var(--sp-4)}
.bsbl-sample--compact .bsbl-sample__cta{display:flex;justify-content:center}
.bsbl-sample--compact .bsbl-sample__cta .bsbl-btn{min-width:260px;text-align:center}
.bsbl-sample--compact .bsbl-sample__cta form{max-width:520px;width:100%}
.bsbl-sample__head{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-6);align-items:end;margin-bottom:var(--sp-5)}
.bsbl-sample__intro{margin:0;color:var(--ink-muted);max-width:52ch}
.bsbl-sample__pages{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4)}
.bsbl-sample__page{border:1px solid var(--rule);border-radius:var(--radius-card);overflow:hidden;background:var(--surface)}
.bsbl-sample__img{width:100%;height:auto;display:block}
.bsbl-sample__cta{margin-top:var(--sp-5)}
.bsbl-sample__cta form{display:flex;flex-wrap:wrap;gap:var(--sp-2);max-width:520px}
.bsbl-sample__cta input[type=email]{flex:1 1 240px;padding:13px 16px;border:1px solid var(--rule);
  border-radius:var(--radius-button);font-family:var(--font-text);font-size:var(--fs-4);color:var(--ink);background:var(--surface)}
.bsbl-sample__cta input[type=email]:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
.bsbl-sample__note{margin:var(--sp-3) 0 0;font-size:var(--fs-5);color:var(--ink-muted)}
@media screen and (max-width:989px){
  .bsbl-sample__head,.bsbl-ty__head{grid-template-columns:1fr;gap:var(--sp-4)}
  .bsbl-sample__pages{grid-template-columns:1fr 1fr}
}

/* What changes */
.bsbl-changes{padding:var(--section-pad) 0}
.bsbl-changes__inner{max-width:var(--container)}
.bsbl-changes__grid{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--sp-6);align-items:center}
.bsbl-changes__list{margin:0 0 var(--sp-4);padding-left:20px;list-style:disc outside}
.bsbl-changes__p{margin:0 0 10px;max-width:var(--measure)}
.bsbl-changes__close{margin:0;color:var(--ink-muted);max-width:var(--measure)}
.bsbl-changes__media{display:flex}
.bsbl-changes__img{width:100%;height:auto;display:block;border-radius:var(--radius-card)}
@media(max-width:860px){.bsbl-changes__grid{grid-template-columns:1fr}}
.bsbl-changes__intro{color:var(--ink-muted);margin:0 0 var(--sp-4);max-width:var(--measure)}

/* FAQ */
.bsbl-faq{padding:var(--section-pad) 0}
.bsbl-faq__inner{max-width:var(--container)}
.bsbl-faq__list{margin-top:var(--sp-5)}
.bsbl-faq__item{border-top:1px solid var(--rule);padding:var(--sp-4) 0}
.bsbl-faq__item:last-child{border-bottom:1px solid var(--rule)}
.bsbl-faq__q{font-family:var(--font-display);font-size:var(--fs-3);line-height:1.25;cursor:pointer;
  list-style:none;display:flex;justify-content:space-between;gap:var(--sp-3);align-items:baseline}
.bsbl-faq__q::-webkit-details-marker{display:none}
.bsbl-faq__q::after{content:"+";font-family:var(--font-text);color:var(--ink);flex:0 0 auto}
.bsbl-faq__item[open] .bsbl-faq__q::after{content:"\2013"}
.bsbl-faq__q:focus-visible{outline:3px solid var(--ink-muted);outline-offset:3px}
.bsbl-faq__a p{margin:var(--sp-3) 0 0;color:var(--ink-muted);max-width:var(--measure)}

/* Product cards with no image yet.
   Dawn falls back to its text-only card and leaves a blank square, which reads as a broken
   section rather than a pending one. Mark it as a placeholder in the same visual language as
   the rest of the skeleton. /import-brand removes this by giving the products real images. */
.card--text .card__inner{
  background:var(--pink-soft);
  border:1px dashed var(--rule);
  border-radius:var(--radius-card);
  position:relative}
.card--text .card__inner::after{
  content:"[PRODUCT IMAGE - 4:5]";
  position:absolute;inset:0;display:grid;place-items:center;
  font-family:var(--font-text);font-size:var(--fs-5);color:var(--ink-muted);text-align:center;padding:var(--sp-3)}

/* Dawn's own components ship their own type sizes (11/12/15/16px), which breaks the
   five-size scale. Map them onto our tokens so the page stays cohesive. */
.card__heading,.card__heading a,.card-information .card__heading{font-family:var(--font-display);font-size:var(--fs-3);font-weight:400;line-height:1.2}
.card__information,.card-information,.price,.price__container,.price-item{font-family:var(--font-text);font-size:var(--fs-4)}
.price--on-sale .price-item--regular{font-size:var(--fs-5)}
.card__badge .badge,.badge{font-family:var(--font-text);font-size:var(--fs-5);letter-spacing:.04em}
.quick-add__submit,.card-wrapper .button{font-family:var(--font-text);font-size:var(--fs-4)}
.footer__content-top,.footer__content-bottom,.footer-block__details-content,.copyright__content,.list-menu__item{font-size:var(--fs-4)}
.footer-block__heading{font-family:var(--font-display);font-size:var(--fs-3);font-weight:400}
.announcement-bar__message{font-family:var(--font-text);font-size:var(--fs-5);letter-spacing:.04em}
.header__menu-item,.header__active-menu-item{font-family:var(--font-text);font-size:var(--fs-4)}

/* one section rhythm everywhere, including Dawn's own sections */
.shopify-section .section-template--padding,.collection{padding-block:var(--section-pad)}

@media screen and (max-width:989px){
  .bsbl-hero{min-height:0}
  .bsbl-reviews__grid{grid-template-columns:1fr}
  .bsbl-hero__grid,.bsbl-author__grid,.bsbl-story__split,.bsbl-teach__split{grid-template-columns:1fr;gap:var(--sp-5)}
  .bsbl-hero__media,.bsbl-author__media{order:2}
  .bsbl-steps__grid,.bsbl-reframe__cols{grid-template-columns:1fr}
  .bsbl-proof__row{flex-wrap:wrap;gap:var(--sp-2) var(--sp-3)}
  .bsbl-proof__item + .bsbl-proof__item::before{content:none}
}

/* ------------------------------------------------------------------ MOBILE
   Phones stack every split layout, so the images are what make the page long.
   Cap the media, tighten the padding, step the display sizes down. */
@media(max-width:749px){

  .bsbl-hero__h1{font-size:var(--fs-1);line-height:1.06}
  .bsbl-hero__lead{font-size:var(--fs-3)}
  .bsbl-hero__img{max-height:240px}
  .bsbl-hero__cta{gap:var(--sp-2)}
  .bsbl-hero__cta .bsbl-btn{flex:1 1 100%;text-align:center}

  .bsbl-h2{font-size:var(--fs-2);line-height:1.1}

  /* the portrait carried a 420px floor from the desktop rule */
  .bsbl-author__media .bsbl-ph{min-height:0;max-height:340px}
  .bsbl-author__img{min-height:0;max-height:450px;object-position:center top}
  .bsbl-author__grid{gap:var(--sp-4)}
  .bsbl-author__facts li{padding:var(--sp-3) 0}

  .bsbl-teach__img{max-height:210px}
  .bsbl-changes__img{max-height:410px;object-fit:cover;object-position:center}
  .bsbl-changes__grid{gap:var(--sp-4)}

  .bsbl-reframe__col{padding:var(--sp-4)}
  .bsbl-ty__card{padding:var(--sp-4)}
  .bsbl-ty__grid{gap:var(--sp-3)}

  .bsbl-offer__media{height:170px;margin-bottom:var(--sp-3)}
  .bsbl-offer__card{padding:var(--sp-4) var(--sp-3) var(--sp-3)}
  .bsbl-offer__grid{gap:var(--sp-3)}
  .bsbl-offer__t{font-size:var(--fs-3)}
  .bsbl-offer__price{font-size:var(--fs-3);margin-bottom:var(--sp-3)}
  .bsbl-offer__badge{font-size:var(--fs-4);padding:5px 14px}


  .bsbl-faq__item{padding:var(--sp-3) 0}
  .bsbl-reviews__card{flex-basis:270px}

  /* one tap target rule for the whole page */
  .bsbl-btn{padding:15px 22px}

  /* Footer columns kept their desktop 38%/22% basis on phones, so "The Planner" broke
     onto two lines and "Read 10 Pages Free" onto three. The brand blurb and the notice
     go full width; the two link lists sit half and half. */
  .footer__blocks-wrapper > .footer-block:first-child,
  .footer__blocks-wrapper > .footer-block:last-child{flex:1 1 100%!important;max-width:100%!important;padding-right:0}
  .footer__blocks-wrapper > .footer-block:nth-child(2),
  .footer__blocks-wrapper > .footer-block:nth-child(3){flex:1 1 46%!important;max-width:46%!important}
  .footer__blocks-wrapper{row-gap:var(--sp-4);column-gap:var(--sp-4)}
  .footer .list-menu__item{padding:3px 0}
}


/* Button colours, settled at the end of the sheet because the generic .bsbl-btn--primary
   rule sits after every earlier override and kept winning.
   Primary is solid plum with a white label. On the plum bands it inverts to white with a
   plum label, otherwise it is plum on plum and disappears. */
.bsbl-btn--primary{background:var(--plum);color:#fff}
.bsbl-btn--ghost{background:transparent;color:var(--plum);box-shadow:inset 0 0 0 2px var(--plum)}
.color-scheme-2 .bsbl-btn--primary,
.bsbl-ty.color-scheme-2 .bsbl-btn--primary,
.bsbl-sample--compact.color-scheme-2 .bsbl-btn--primary{background:#fff;color:var(--plum)}

/* ---- help centre v3. No new type: heading is .bsbl-h2, topic headings are
   .bsbl-eyebrow, questions and answers are --fs-4, exactly as the homepage. */
.bsbl-help__inner{padding-block:var(--section-pad)}

.bsbl-help__head{display:flex;flex-direction:column;align-items:center;gap:var(--sp-4);
  text-align:center;margin-bottom:var(--sp-5)}
.bsbl-help__title{margin:0}
.bsbl-help__searchwrap{position:relative;width:100%;max-width:560px}
.bsbl-help__icon{position:absolute;left:18px;top:50%;transform:translateY(-50%);
  width:20px;height:20px;color:var(--ink-muted);pointer-events:none}
.bsbl-help__search{width:100%;padding:18px 20px 18px 50px;font-family:var(--font-text);
  font-size:var(--fs-4);color:var(--ink);background:var(--surface);
  border:1px solid var(--rule);border-radius:var(--radius-card);appearance:none}
.bsbl-help__search::placeholder{color:var(--ink-muted)}
.bsbl-help__search:focus{outline:none;border-color:var(--plum);
  box-shadow:0 0 0 3px rgba(121,47,93,.14)}

.bsbl-help__tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:12px;margin-bottom:var(--sp-5)}
.bsbl-help__tile{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);
  padding:17px 18px;border:1px solid var(--rule);border-radius:var(--radius-card);
  background:var(--surface);color:var(--ink);text-decoration:none;
  font-family:var(--font-text);font-size:var(--fs-4);font-weight:600;
  transition:border-color .12s,color .12s}
.bsbl-help__tile:hover{border-color:var(--plum);color:var(--plum)}
.bsbl-help__tile:focus-visible{outline:2px solid var(--plum);outline-offset:2px}
.bsbl-help__tile svg{width:13px;height:13px;flex:0 0 auto;color:var(--ink-muted)}
.bsbl-help__tile:hover svg{color:var(--plum)}

.bsbl-help__body{display:grid;grid-template-columns:minmax(0,200px) minmax(0,1fr);
  gap:var(--sp-6);align-items:start}
.bsbl-help__rail{display:flex;flex-direction:column;gap:2px;position:sticky;top:90px}
.bsbl-help__topic{font-family:var(--font-text);font-size:var(--fs-4);color:var(--ink-muted);
  text-decoration:none;padding:9px 14px;border-left:2px solid transparent;transition:color .12s}
.bsbl-help__topic:hover{color:var(--ink)}
.bsbl-help__topic.is-active{color:var(--plum);border-left-color:var(--plum);font-weight:600}
.bsbl-help__topic:focus-visible{outline:2px solid var(--plum);outline-offset:2px}

.bsbl-help__list{display:flex;flex-direction:column;gap:var(--sp-5)}
.bsbl-help__group{scroll-margin-top:100px}
.bsbl-help__group[hidden]{display:none}
.bsbl-help__grouph{margin:0 0 var(--sp-3);padding-bottom:12px;border-bottom:1px solid var(--rule)}
.bsbl-help__item{border-bottom:1px solid var(--rule)}
.bsbl-help__item[hidden]{display:none}
.bsbl-help__q{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);
  padding:20px 2px;cursor:pointer;list-style:none;font-family:var(--font-text);
  font-size:var(--fs-4);font-weight:600;color:var(--ink);transition:color .12s}
.bsbl-help__q::-webkit-details-marker{display:none}
.bsbl-help__q:hover{color:var(--plum)}
.bsbl-help__chev{width:13px;height:13px;flex:0 0 auto;color:var(--ink-muted);
  transition:transform .18s ease}
.bsbl-help__item[open] .bsbl-help__chev{transform:rotate(90deg);color:var(--plum)}
.bsbl-help__a{padding:0 2px 22px}
.bsbl-help__a p{margin:0 0 .75em;font-family:var(--font-text);font-size:var(--fs-4);
  color:var(--ink-muted);line-height:1.65}
.bsbl-help__a p:last-child{margin-bottom:0}
.bsbl-help__a a{color:var(--plum)}
.bsbl-help__empty{padding:22px 2px;font-size:var(--fs-4);color:var(--ink-muted)}

@media (max-width: 749px){
  .bsbl-help__head{margin-bottom:var(--sp-5)}
  .bsbl-help__tiles{grid-template-columns:minmax(0,1fr);margin-bottom:var(--sp-5)}
  .bsbl-help__body{grid-template-columns:minmax(0,1fr);gap:var(--sp-4)}
  .bsbl-help__list{gap:var(--sp-6)}
  .bsbl-help__rail{position:static;flex-direction:row;gap:8px;overflow-x:auto;
    padding-bottom:6px;scrollbar-width:none}
  .bsbl-help__rail::-webkit-scrollbar{display:none}
  .bsbl-help__topic{white-space:nowrap;border:1px solid var(--rule);border-left-width:1px;
    border-radius:999px;padding:8px 14px;font-size:var(--fs-5)}
  .bsbl-help__topic.is-active{border-color:var(--plum)}
}
@media (prefers-reduced-motion: reduce){ .bsbl-help__chev{transition:none} }
}
/* ---- review attribution: circular avatar, optional stars.
   Stars render only when a block has a rating set, and none is set by default. */
.bsbl-reviews__stars{display:flex;gap:3px;margin:0 0 var(--sp-3)}
.bsbl-reviews__stars svg{width:15px;height:15px;fill:var(--plum)}
.bsbl-reviews.color-scheme-2 .bsbl-reviews__stars svg{fill:var(--accent)}
.bsbl-reviews__by{display:flex;align-items:center;gap:12px}
.bsbl-reviews__avatar{flex:0 0 auto;width:40px;height:40px;border-radius:50%;overflow:hidden;
  display:grid;place-items:center;background:var(--plum);color:#fff}
.bsbl-reviews__avatar img{width:100%;height:100%;object-fit:cover;display:block;border-radius:50%}
.bsbl-reviews__initial{font-family:var(--font-text);font-size:var(--fs-4);font-weight:600;
  line-height:1;color:#fff}
.bsbl-reviews.color-scheme-2 .bsbl-reviews__avatar{background:rgba(255,255,255,.22)}
.bsbl-reviews__who{display:flex;flex-direction:column;min-width:0}
/* ---- product page. Same scale as the homepage: fs-2 title, fs-3 price, fs-4 body,
   fs-5 small. Left column sticks until the right column has scrolled past it. */
.bsbl-pdp__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--sp-6);
  align-items:start;padding-block:var(--section-pad)}
.bsbl-pdp__media{position:sticky;top:100px;display:flex;flex-direction:column;gap:var(--sp-3)}
.bsbl-pdp__stage{position:relative;aspect-ratio:4/5;max-height:calc(100vh - 300px);width:100%;overflow:hidden}
.bsbl-pdp__main{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block}
.bsbl-pdp__thumbs{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.bsbl-pdp__thumb{appearance:none;width:64px;height:64px;padding:4px;cursor:pointer;
  background:var(--surface);border:1px solid var(--rule);border-radius:8px;display:block;overflow:hidden}
.bsbl-pdp__thumb img{width:100%;height:100%;object-fit:contain;display:block}
.bsbl-pdp__thumb.is-active{border-color:var(--plum);box-shadow:0 0 0 1px var(--plum)}
.bsbl-pdp__thumb:focus-visible{outline:2px solid var(--plum);outline-offset:2px}

.bsbl-pdp__info{display:flex;flex-direction:column;gap:var(--sp-3)}
.bsbl-pdp__title{margin:0;font-family:var(--font-display);font-size:var(--fs-2);font-weight:600;
  line-height:1.15;text-wrap:balance;color:var(--ink)}
.bsbl-pdp__subtitle{margin:0;font-family:var(--font-text);font-size:var(--fs-4);font-weight:600;color:var(--plum)}
.bsbl-pdp__stars{margin:0;display:flex;align-items:center;gap:8px;font-size:var(--fs-5);color:var(--ink-muted)}
.bsbl-pdp__starrow{display:flex;gap:2px}
.bsbl-pdp__starrow svg{width:16px;height:16px;fill:var(--plum)}
.bsbl-pdp__starrow svg.is-off{fill:var(--rule)}
.bsbl-pdp__price{margin:0;display:flex;align-items:baseline;gap:10px;font-family:var(--font-text);
  font-size:var(--fs-3);font-weight:600;color:var(--ink)}
.bsbl-pdp__was{font-size:var(--fs-4);font-weight:400;color:var(--ink-muted)}
.bsbl-pdp__intro p{margin:0 0 .8em;font-size:var(--fs-4);line-height:1.65;color:var(--ink)}
.bsbl-pdp__intro p:last-child{margin-bottom:0}
.bsbl-pdp__learnh{margin:0;font-size:var(--fs-4);font-weight:600;color:var(--ink)}
.bsbl-pdp__learn{margin:0;padding-left:1.2em;list-style:disc;display:flex;flex-direction:column;gap:6px}
.bsbl-pdp__learn li{font-size:var(--fs-4);line-height:1.55;color:var(--ink)}
.bsbl-pdp__form{margin:var(--sp-2) 0 0}
.bsbl-pdp__add{width:100%;text-align:center;padding-block:18px;border:0;cursor:pointer}
.bsbl-pdp__add[disabled]{opacity:.5;cursor:not-allowed}

.bsbl-pdp__acc{margin-top:var(--sp-3);border-top:1px solid var(--rule)}
.bsbl-pdp__item{border-bottom:1px solid var(--rule)}
.bsbl-pdp__q{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);
  padding:18px 2px;cursor:pointer;list-style:none;font-family:var(--font-text);font-size:var(--fs-4);
  font-weight:600;color:var(--ink)}
.bsbl-pdp__q::-webkit-details-marker{display:none}
.bsbl-pdp__q:hover{color:var(--plum)}
.bsbl-pdp__chev{width:13px;height:13px;flex:0 0 auto;color:var(--ink-muted);transition:transform .18s ease}
.bsbl-pdp__item[open] .bsbl-pdp__chev{transform:rotate(90deg);color:var(--plum)}
.bsbl-pdp__a{padding:0 2px 20px}
.bsbl-pdp__a p,.bsbl-pdp__a li{margin:0 0 .75em;font-family:var(--font-text);font-size:var(--fs-4);
  line-height:1.65;color:var(--ink-muted)}
.bsbl-pdp__a h1,.bsbl-pdp__a h2,.bsbl-pdp__a h3,.bsbl-pdp__a h4,.bsbl-pdp__a h5,.bsbl-pdp__a h6{
  margin:1em 0 .4em;font-family:var(--font-text);font-size:var(--fs-4);font-weight:600;color:var(--ink)}
.bsbl-pdp__a ul{margin:0 0 .75em;padding-left:1.2em}
.bsbl-pdp__a a{color:var(--plum)}
.bsbl-pdp__a img{max-width:100%;height:auto}

.bsbl-marquee{background:var(--plum);overflow:hidden}
.bsbl-marquee__viewport{overflow:hidden;padding-block:var(--sp-4)}
.bsbl-marquee__track{display:flex;width:max-content;animation:bsbl-marquee 60s linear infinite}
.bsbl-marquee:hover .bsbl-marquee__track{animation-play-state:paused}
.bsbl-marquee__item{margin:0;padding-inline-end:var(--sp-6);display:flex;align-items:baseline;gap:12px;white-space:nowrap}
.bsbl-marquee__item blockquote{margin:0;font-family:var(--font-text);font-size:var(--fs-4);color:#fff}
.bsbl-marquee__item figcaption{font-family:var(--font-text);font-size:var(--fs-5);font-weight:600;color:rgba(255,255,255,.72)}
@keyframes bsbl-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

@media (max-width: 989px){
  .bsbl-pdp__grid{grid-template-columns:minmax(0,1fr);gap:var(--sp-5)}
  .bsbl-pdp__media{position:static}
  .bsbl-pdp__stage{max-height:none}
  .bsbl-pdp__thumb{width:64px;height:64px}
}
@media (prefers-reduced-motion: reduce){
  .bsbl-marquee__track{animation:none}
  .bsbl-marquee__viewport{overflow-x:auto}
  .bsbl-pdp__chev{transition:none}
}
/* ---- reviews, stacked layout: heading on top, static cards below */
.bsbl-reviews--stacked .bsbl-reviews__grid{grid-template-columns:minmax(0,1fr);gap:var(--sp-5);align-items:start}
.bsbl-reviews--stacked .bsbl-reviews__say{text-align:center}
.bsbl-reviews--stacked .bsbl-reviews__say .bsbl-h2{margin:0}
.bsbl-reviews--stacked .bsbl-reviews__lead{margin-inline:auto}
.bsbl-reviews--stacked .bsbl-reviews__rail{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
/* stacked now scrolls like the rail */
/* ---- review loop: trailing margin instead of gap so -50% lands on a card edge */
.bsbl-reviews__track{gap:0}
.bsbl-reviews__card{margin:0 var(--sp-3) 0 0}
/* ---- contact: shared container, image left and form right, then steps and details across */
.bsbl-contact{padding:var(--section-pad) 0}
.bsbl-contact__inner{display:flex;flex-direction:column;gap:var(--sp-6)}
.bsbl-contact__top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--sp-6);align-items:stretch}
.bsbl-contact__media{position:relative;min-height:100%}
.bsbl-contact__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 28%;
  border-radius:var(--radius-card);display:block}
.bsbl-contact__main{display:flex;flex-direction:column;gap:var(--sp-5)}
.bsbl-contact__head{display:flex;flex-direction:column;gap:var(--sp-2)}
.bsbl-contact__head .bsbl-h2{margin:0}
.bsbl-contact__sub{margin:0;font-size:var(--fs-4);color:var(--ink-muted)}
.bsbl-contact__form{display:flex;flex-direction:column;gap:var(--sp-3)}
.bsbl-contact__row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3)}
.bsbl-contact__field{display:flex;flex-direction:column;gap:6px}
.bsbl-contact__field span{font-family:var(--font-text);font-size:var(--fs-4);font-weight:600;color:var(--ink)}
.bsbl-contact__field em{font-style:normal;font-weight:400;color:var(--ink-muted)}
.bsbl-contact__field input,.bsbl-contact__field textarea{width:100%;padding:14px 16px;
  font-family:var(--font-text);font-size:var(--fs-4);color:var(--ink);background:var(--surface);
  border:1px solid var(--rule);border-radius:var(--radius-card);appearance:none;resize:vertical}
.bsbl-contact__field input:focus,.bsbl-contact__field textarea:focus{outline:none;
  border-color:var(--plum);box-shadow:0 0 0 3px rgba(121,47,93,.14)}
.bsbl-contact__send{align-self:flex-start;border:0;cursor:pointer}
.bsbl-contact__ok,.bsbl-contact__err{margin:0;padding:14px 16px;border-radius:var(--radius-card);font-size:var(--fs-4)}
.bsbl-contact__ok{background:rgba(121,47,93,.08);color:var(--plum)}
.bsbl-contact__err{border:1px solid var(--plum);color:var(--ink)}
.bsbl-contact__block{display:flex;flex-direction:column;gap:var(--sp-3)}
.bsbl-contact__block .bsbl-eyebrow{margin:0}
.bsbl-contact__steps{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-4)}
.bsbl-contact__steps li{display:flex;align-items:flex-start;gap:var(--sp-3);padding-top:var(--sp-3);
  border-top:1px solid var(--rule);font-size:var(--fs-4);line-height:1.55;color:var(--ink)}
.bsbl-contact__steps .n{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;flex:0 0 auto;
  background:var(--pink);color:var(--ink);font-size:var(--fs-5);font-weight:600}
.bsbl-contact__details{margin:0;display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--sp-4);padding-top:var(--sp-3);border-top:1px solid var(--rule)}
.bsbl-contact__detail{display:flex;flex-direction:column;gap:4px}
.bsbl-contact__detail dt{margin:0;font-size:var(--fs-4);font-weight:600;color:var(--ink)}
.bsbl-contact__detail dd{margin:0;font-size:var(--fs-4);color:var(--ink-muted);white-space:nowrap}
.bsbl-contact__detail a{color:var(--plum)}
@media (max-width: 989px){
  .bsbl-contact__top{grid-template-columns:minmax(0,1fr)}
  .bsbl-contact__media{min-height:0;aspect-ratio:4/3}
  .bsbl-contact__steps{grid-template-columns:minmax(0,1fr)}
}
@media (max-width: 749px){
  .bsbl-contact__row{grid-template-columns:minmax(0,1fr)}
  .bsbl-contact__send{align-self:stretch;text-align:center}
  .bsbl-contact__details{flex-direction:column}
  .bsbl-contact__detail dd{white-space:normal;overflow-wrap:anywhere}
}
/* ---- book parts: alternating text / image rows, same scale as the rest of the site */
.bsbl-parts{padding:var(--section-pad) 0}
.bsbl-parts__inner{display:flex;flex-direction:column;gap:var(--sp-6)}
.bsbl-parts__title{margin:0;text-align:center}
.bsbl-parts__row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--sp-6);align-items:center}
.bsbl-parts__row--flip .bsbl-parts__text{order:2}
.bsbl-parts__row--flip .bsbl-parts__media{order:1}
.bsbl-parts__text{display:flex;flex-direction:column;gap:var(--sp-3)}
.bsbl-parts__text .bsbl-eyebrow{margin:0}
.bsbl-parts__h{margin:0}
.bsbl-parts__p{margin:0;font-size:var(--fs-4);line-height:1.65;color:var(--ink)}
.bsbl-parts__list{margin:0;padding-left:1.2em;list-style:disc;display:flex;flex-direction:column;gap:10px}
.bsbl-parts__list li{font-size:var(--fs-4);line-height:1.6;color:var(--ink-muted)}
.bsbl-parts__list strong{color:var(--ink);font-weight:600}
.bsbl-parts__img{width:100%;height:auto;display:block;border-radius:var(--radius-card)}
.bsbl-parts__ph{aspect-ratio:4/3;width:100%}

/* ---- perfect for */
.bsbl-audience{padding:var(--section-pad) 0}
.bsbl-audience__inner{display:flex;flex-direction:column;gap:var(--sp-5)}
.bsbl-audience__head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--sp-6);align-items:start}
.bsbl-audience__head .bsbl-h2{margin:0}
.bsbl-audience__p{margin:0;font-size:var(--fs-4);line-height:1.65}
.bsbl-audience__cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-4)}
.bsbl-audience__col{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-4);
  border-radius:var(--radius-card);background:rgba(255,255,255,.18)}
.bsbl-audience__col .bsbl-eyebrow{margin:0}
.bsbl-audience__list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--sp-3)}
.bsbl-audience__list li{display:flex;flex-direction:column;gap:2px;font-size:var(--fs-4);line-height:1.55}
.bsbl-audience__list strong{font-weight:600}
.bsbl-audience.color-scheme-2,.bsbl-audience.color-scheme-2 *{color:#fff}
.bsbl-audience.color-scheme-2{background:var(--plum)}
/* on the plum ground the description was a 4th text colour, a 85% white. It is solid white now,
   and the title above it is separated by weight instead. */
.bsbl-audience.color-scheme-2 .bsbl-audience__list span,.bsbl-audience.color-scheme-2 .bsbl-audience__p{color:#fff}
.bsbl-audience.color-scheme-1 .bsbl-audience__col{background:transparent;border:1px solid var(--rule)}

@media (max-width: 989px){
  .bsbl-parts__row{grid-template-columns:minmax(0,1fr);gap:var(--sp-4)}
  .bsbl-parts__row--flip .bsbl-parts__text{order:1}
  .bsbl-parts__row--flip .bsbl-parts__media{order:2}
  .bsbl-audience__head{grid-template-columns:minmax(0,1fr);gap:var(--sp-3)}
  .bsbl-audience__cols{grid-template-columns:minmax(0,1fr)}
}
/* ---- parts heading block with optional intro */
.bsbl-parts__head{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);text-align:center}
.bsbl-parts__intro{margin:0;font-size:var(--fs-4);color:var(--ink-muted)}
/* ---- product cards are links to the product page */
a.bsbl-offer__card{text-decoration:none;color:inherit;cursor:pointer;transition:border-color .15s,box-shadow .15s}
a.bsbl-offer__card:hover{border-color:var(--plum)}
a.bsbl-offer__card:hover .bsbl-offer__cta{opacity:.9}
a.bsbl-offer__card:focus-visible{outline:2px solid var(--plum);outline-offset:3px}
/* ---- footer: one row of columns, thin disclaimer, bottom bar. One size: --fs-5 */
.bsbl-footer{background:var(--plum);color:#fff;padding:var(--section-pad) 0 var(--sp-4);border-top:1px solid rgba(255,255,255,.2)}
.bsbl-footer *{color:#fff}
.bsbl-footer__inner{display:flex;flex-direction:column;gap:var(--sp-5)}
.bsbl-footer__top{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr));gap:var(--sp-5)}
.bsbl-footer__brand{display:flex;flex-direction:column;gap:var(--sp-2);max-width:360px}
.bsbl-footer__name{margin:0;font-family:var(--font-display);font-size:var(--fs-4);font-weight:600}
.bsbl-footer__blurb{margin:0;font-size:var(--fs-5);line-height:1.6;color:rgba(255,255,255,.8)}
.bsbl-footer__social{display:flex;gap:10px;margin-top:var(--sp-2)}
.bsbl-footer__social a{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;
  border:1px solid rgba(255,255,255,.35);transition:background-color .15s,border-color .15s}
.bsbl-footer__social a:hover{background:rgba(255,255,255,.12);border-color:#fff}
.bsbl-footer__social svg{width:16px;height:16px}
.bsbl-footer__col{display:flex;flex-direction:column;gap:var(--sp-2)}
.bsbl-footer__h{margin:0;font-family:var(--font-text);font-size:var(--fs-5);font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.bsbl-footer__col ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}
.bsbl-footer__col a{font-family:var(--font-text);font-size:var(--fs-5);text-decoration:none;color:rgba(255,255,255,.85);transition:color .15s}
.bsbl-footer__col a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
.bsbl-footer a:focus-visible{outline:2px solid #fff;outline-offset:3px;border-radius:2px}
.bsbl-footer__disclaimer{margin:0;padding-top:var(--sp-4);border-top:1px solid rgba(255,255,255,.2);
  font-size:var(--fs-5);line-height:1.6;color:rgba(255,255,255,.8)}
.bsbl-footer__bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-3);
  padding-top:var(--sp-4);border-top:1px solid rgba(255,255,255,.2)}
.bsbl-footer__copy{margin:0;font-size:var(--fs-5);color:rgba(255,255,255,.8)}
.bsbl-footer__pay{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:6px}
.bsbl-footer__pay svg{width:38px;height:24px;display:block}
@media (max-width: 989px){
  .bsbl-footer__top{grid-template-columns:repeat(3,minmax(0,1fr))}
  .bsbl-footer__brand{grid-column:1 / -1;max-width:none}
}
@media (max-width: 749px){
  .bsbl-footer__top{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-4)}
  .bsbl-footer__bottom{flex-direction:column;align-items:flex-start}
}
/* ---- free sample email capture */
.bsbl-sample__form{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:center}
.bsbl-sample__form input[type=email]{flex:0 1 300px;padding:14px 16px;font-family:var(--font-text);
  font-size:var(--fs-4);color:var(--ink);background:var(--surface);border:1px solid var(--rule);
  border-radius:var(--radius-card);appearance:none}
.bsbl-sample__form input[type=email]:focus{outline:none;border-color:var(--plum);box-shadow:0 0 0 3px rgba(121,47,93,.14)}
.bsbl-sample__form button{border:0;cursor:pointer}
.bsbl-sample__ok,.bsbl-sample__err{margin:0;font-size:var(--fs-4);color:var(--ink)}
.bsbl-sample__ok a{color:var(--plum)}
.bsbl-sample--compact.color-scheme-2 .bsbl-sample__ok,
.bsbl-sample--compact.color-scheme-2 .bsbl-sample__err{color:#fff}
.bsbl-sample--compact.color-scheme-2 .bsbl-sample__ok a{color:#fff;text-decoration:underline}
/* ---- sample band: heading and intro centered, email and button on one line */
.bsbl-sample--compact .bsbl-sample__head{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2)}
.bsbl-sample--compact .bsbl-sample__intro{max-width:46ch;text-align:center}
.bsbl-sample--compact.color-scheme-2 .bsbl-sample__intro{color:rgba(255,255,255,.85)}
.bsbl-sample__form{flex-wrap:nowrap;max-width:520px;margin:0 auto;width:100%}
.bsbl-sample__form input[type=email]{flex:1 1 auto;min-width:0}
.bsbl-sample__form button{flex:0 0 auto;white-space:nowrap}
@media (max-width: 560px){
  .bsbl-sample__form{flex-wrap:wrap}
  .bsbl-sample__form input[type=email],.bsbl-sample__form button{flex:1 1 100%}
}
/* first-10-pages strip: a swipeable row of the real pages, each opening the PDF at that page */
.bsbl-sample--compact .bsbl-sample__pages{display:flex;gap:var(--sp-3);overflow-x:auto;
  scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:4px 2px var(--sp-3);
  margin:0 0 var(--sp-4);grid-template-columns:none}
.bsbl-sample--compact .bsbl-sample__page{flex:0 0 168px;scroll-snap-align:start;display:block;
  border:0;border-radius:4px;overflow:hidden;background:#fff;
  box-shadow:0 2px 10px rgba(0,0,0,.18);transition:transform .15s ease}
.bsbl-sample--compact .bsbl-sample__page:hover{transform:translateY(-3px)}
.bsbl-sample--compact .bsbl-sample__page:focus-visible{outline:3px solid #fff;outline-offset:3px}
.bsbl-sample--compact .bsbl-sample__img{width:100%;height:auto;aspect-ratio:2/3;object-fit:cover}
@media (max-width: 560px){
  .bsbl-sample--compact .bsbl-sample__page{flex-basis:132px}
}
/* the strip's scrollbar: thin and white on plum instead of the default grey bar and white track */
.bsbl-sample--compact.color-scheme-2 .bsbl-sample__pages{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.55) transparent}
.bsbl-sample--compact.color-scheme-2 .bsbl-sample__pages::-webkit-scrollbar{height:6px}
.bsbl-sample--compact.color-scheme-2 .bsbl-sample__pages::-webkit-scrollbar-track{background:transparent}
.bsbl-sample--compact.color-scheme-2 .bsbl-sample__pages::-webkit-scrollbar-thumb{background:rgba(255,255,255,.55);border-radius:3px}
/* Shop Books panel: full width under the header, three covers, the rest of the menu stays a dropdown */
header-menu > details.bsbl-books{position:static}
.bsbl-books__panel{position:absolute;left:0;right:0;top:100%;z-index:2;
  border-top:1px solid rgba(var(--color-foreground),.08);border-bottom:1px solid rgba(var(--color-foreground),.08);
  box-shadow:0 12px 24px rgba(0,0,0,.06);padding:28px 0 32px}
.bsbl-books__grid{list-style:none;margin:0 auto;display:flex;justify-content:center;gap:48px}
.bsbl-books__card{display:flex;flex-direction:column;align-items:center;gap:14px;width:180px;text-decoration:none;text-align:center}
.bsbl-books__cover{display:flex;align-items:flex-end;justify-content:center;height:200px;width:100%}
.bsbl-books__cover img{max-height:200px;max-width:100%;width:auto;height:auto;object-fit:contain;
  transition:transform .15s ease}
.bsbl-books__card:hover .bsbl-books__cover img{transform:translateY(-3px)}
.bsbl-books__card:hover .bsbl-books__title{text-decoration:underline;text-underline-offset:3px}
.bsbl-books__title{line-height:1.35}
/* Shop Books panel: equal cover heights. The bundle image is wide, so its card grows sideways instead of shrinking */
.bsbl-books__card{width:auto;min-width:180px;max-width:360px}
.bsbl-books__cover img{height:200px;max-height:none;max-width:340px;width:auto}
/* PDP: shop the other books. Two cards under the accordions, one per book you are not on */
.bsbl-pdp__others{margin-top:28px}
.bsbl-pdp__others-list{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:14px}
.bsbl-pdp__other{display:flex;align-items:center;gap:14px;height:100%;padding:12px;text-decoration:none;color:inherit;
  border:1px solid var(--rule);border-radius:var(--radius-card);transition:border-color .15s ease}
.bsbl-pdp__other:hover{border-color:currentColor}
.bsbl-pdp__other:hover .bsbl-pdp__other-t{text-decoration:underline;text-underline-offset:3px}
.bsbl-pdp__other-img{flex:0 0 72px;height:96px;display:flex;align-items:center;justify-content:center}
.bsbl-pdp__other-img img{max-width:72px;max-height:96px;width:auto;height:auto;object-fit:contain}
.bsbl-pdp__other-body{display:flex;flex-direction:column;gap:4px;min-width:0}
.bsbl-pdp__other-t{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.35}
@media (max-width: 560px){
  .bsbl-pdp__others-list{grid-template-columns:1fr}
}
/* TYPE DISCIPLINE. Four sizes, two weights, three text colors plus the plum used on actions.
   Everything below collapses a stray value onto one of those, so the page can be measured. */
strong, b, .rte strong, .rte b{font-weight:600}
.field__label, .customer .field label, .form__label{color:var(--ink-muted)}
.bsbl-footer, .bsbl-footer p, .bsbl-footer a, .bsbl-footer li, .bsbl-footer span{color:#fff}
.bsbl-sample--compact.color-scheme-2, .bsbl-sample--compact.color-scheme-2 *{color:#fff}
.bsbl-hero__h1{line-height:1.04;letter-spacing:-0.015em}
.bsbl-h2, .bsbl-ty__h{line-height:1.08;letter-spacing:-0.01em}
/* a heading owns the space above it, which is most of what makes hierarchy visible */
.bsbl-h2, .bsbl-ty__h{margin-bottom:var(--sp-4)}
.bsbl-eyebrow{letter-spacing:.12em}
/* the last strays: the language switcher sat at 14px on a 75% ink, and the skip link at 15px */
.header .localization-form__select, .header .localization-form__select *,
.header .disclosure__link, .header .disclosure__link *{font-size:var(--fs-4);color:var(--ink)}
.header .disclosure__link:hover, .header .disclosure__link:hover *{color:var(--ink)}
.skip-to-content-link, .visually-hidden{font-size:var(--fs-4)}
/* MOBILE FIRST SCREEN. A four sentence lead at heading size pushed the buttons off the phone,
   so the lead drops to body size and the eyebrow loses some tracking to save a line. */
@media screen and (max-width:749px){
  .bsbl-hero__lead{font-size:var(--fs-4)}
  .bsbl-eyebrow{letter-spacing:.06em}
  .bsbl-hero__h1{letter-spacing:-0.01em}
}

/* ---- reviews shown once (Melissa, 2026-09-23). The rail was an infinite marquee fed by
   four printed passes, so three testimonials read as twelve and the captions scrolled out
   of step with their quotes. The loop is gone from the Liquid; these rules retire the
   animation and the fade that only made sense while it moved.
   rail: statement left, the three cards in a column beside it.
   stacked: heading on top, the three cards in one row under it. */
.bsbl-reviews__rail{overflow:visible;-webkit-mask-image:none;mask-image:none}
.bsbl-reviews__track{width:auto;animation:none;gap:var(--sp-3)}
.bsbl-reviews__card{flex:1 1 0;min-width:0;margin:0}
.bsbl-reviews--rail .bsbl-reviews__track{flex-direction:column}
.bsbl-reviews--rail .bsbl-reviews__grid{align-items:start}
.bsbl-reviews--stacked .bsbl-reviews__rail{-webkit-mask-image:none;mask-image:none}
.bsbl-reviews--stacked .bsbl-reviews__track{flex-direction:row}
@media (max-width: 989px){
  /* .bsbl-reviews--stacked .bsbl-reviews__track wins on specificity, so match it */
  .bsbl-reviews .bsbl-reviews__track,
  .bsbl-reviews--stacked .bsbl-reviews__track{flex-direction:column}
}

/* ---- planner pages: real spreads from her planner, two up (Melissa, 2026-09-23).
   No new sizes or colours, only the tokens already on the page. */
.bsbl-pages{padding:var(--section-pad) 0}
.bsbl-pages__inner{display:flex;flex-direction:column;gap:var(--sp-6)}
.bsbl-pages__head{max-width:62ch}
.bsbl-pages__title{margin:0 0 var(--sp-3)}
.bsbl-pages__intro{margin:0;color:var(--ink-muted);font-size:var(--fs-4)}
.bsbl-pages__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-6) var(--sp-5)}
.bsbl-pages__item{margin:0;display:flex;flex-direction:column;gap:var(--sp-3)}
.bsbl-pages__shot{border:1px solid var(--rule);border-radius:var(--radius-card);overflow:hidden;
  background:#fff}
.bsbl-pages__img{display:block;width:100%;height:auto}
.bsbl-pages__cap{display:flex;flex-direction:column;gap:4px}
.bsbl-pages__capt{font-family:var(--font-text);font-size:var(--fs-4);font-weight:600;color:var(--ink)}
.bsbl-pages__capd{font-family:var(--font-text);font-size:var(--fs-4);color:var(--ink-muted)}
.bsbl-pages__note{margin:0;color:var(--ink-muted);font-size:var(--fs-4)}
@media (max-width: 749px){
  .bsbl-pages__grid{grid-template-columns:minmax(0,1fr);gap:var(--sp-5)}
}

/* ---- the quiz panel in the three-questions section (Shane, 2026-09-25).
   Tokens only, no new sizes or colours. The arrow curves down into the code. */
.bsbl-quiz{display:flex;flex-direction:column;align-items:center;text-align:center;
  gap:var(--sp-3);max-width:340px;margin-inline:auto}
.bsbl-quiz__lead{margin:0;font-family:var(--font-text);font-size:var(--fs-4);font-weight:600;
  color:var(--ink);max-width:22ch;text-wrap:balance}
.bsbl-quiz__arrow{width:52px;height:44px;color:var(--plum);margin-block:calc(var(--sp-2) * -1)}
.bsbl-quiz__img{width:320px;max-width:100%;height:auto;display:block;object-fit:contain;
  border-radius:var(--radius-card)}
.bsbl-quiz__qr{width:290px;height:auto;display:block;background:#fff;padding:16px;
  border:1px solid var(--rule);border-radius:var(--radius-card)}
.bsbl-quiz__sub{margin:0;font-family:var(--font-text);font-size:var(--fs-4);color:var(--ink-muted)}
.bsbl-quiz__cta{margin-top:var(--sp-2)}
/* ---- quiz gate: email first, then the link (Shane, 2026-09-27). Reuses the sample gate's
   field sizing so there is no new type size or colour on the page. */
.bsbl-quiz__form{display:flex;flex-direction:column;gap:var(--sp-2);width:100%;max-width:290px;
  margin-top:var(--sp-3)}
.bsbl-quiz__form.is-done{display:none}
.bsbl-quiz__input{width:100%;min-width:0;padding:14px 16px;font-family:var(--font-text);
  font-size:var(--fs-4);border:1px solid var(--rule);border-radius:var(--radius-btn);
  background:#fff;color:var(--ink)}
.bsbl-quiz__input:focus{outline:none;border-color:var(--plum);
  box-shadow:0 0 0 3px rgba(121,47,93,.14)}
.bsbl-quiz__go{border:0;cursor:pointer;width:100%}
.bsbl-quiz__err{margin:0;font-family:var(--font-text);font-size:var(--fs-4);color:var(--plum)}
.bsbl-teach.color-scheme-2 .bsbl-quiz__err{color:#fff}
.bsbl-quiz__gate.is-locked{display:none}
.bsbl-sink{position:absolute;width:0;height:0;border:0;visibility:hidden;pointer-events:none}
/* ---- reviews grid (Shane, 2026-10-05): she can add any number and they wrap */
.bsbl-reviews--stacked .bsbl-reviews__track{display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-3);align-items:stretch}
.bsbl-reviews--stacked .bsbl-reviews__card{display:flex;flex-direction:column;
  flex:none;width:auto}
.bsbl-reviews--stacked .bsbl-reviews__by{margin-top:auto;padding-top:var(--sp-3)}
@media (max-width: 989px){
  .bsbl-reviews--stacked .bsbl-reviews__track{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width: 749px){
  .bsbl-reviews--stacked .bsbl-reviews__track{grid-template-columns:minmax(0,1fr)}
}
@media (max-width: 749px){
  .bsbl-quiz__form{max-width:210px}
}
.bsbl-teach.color-scheme-2 .bsbl-quiz__lead{color:#fff}
.bsbl-teach.color-scheme-2 .bsbl-quiz__sub{color:rgba(255,255,255,.78)}
.bsbl-teach.color-scheme-2 .bsbl-quiz__arrow{color:#fff}
@media (max-width: 749px){
  .bsbl-quiz__img{width:240px}
  .bsbl-quiz__qr{width:210px}
  .bsbl-quiz__arrow{width:42px;height:36px}
}

/* ---- free sample: email gate, then the Book2Look reader opens in place
   (Melissa, 2026-09-26). Her embed is a fixed 1002x752, so it is wrapped in a ratio box. */
.bsbl-sample__form{display:flex;flex-direction:column;gap:var(--sp-2);max-width:520px;margin-top:var(--sp-4)}
.bsbl-sample__form[hidden],.bsbl-sample__intro[hidden]{display:none}
.bsbl-sample__label{font-family:var(--font-text);font-size:var(--fs-4);font-weight:600}
.bsbl-sample__row{display:flex;gap:var(--sp-3);align-items:stretch;flex-wrap:wrap}
.bsbl-sample__input{flex:1 1 240px;min-width:0;padding:14px 16px;font-family:var(--font-text);
  font-size:var(--fs-4);color:var(--ink);background:#fff;border:1px solid var(--rule);
  border-radius:var(--radius-card);appearance:none}
.bsbl-sample__input:focus{outline:none;border-color:var(--plum);box-shadow:0 0 0 3px rgba(121,47,93,.14)}
.bsbl-sample__go{flex:0 0 auto;border:0;cursor:pointer}
.bsbl-sample__err{margin:0;font-family:var(--font-text);font-size:var(--fs-4);color:var(--plum)}
.bsbl-sample__note{margin:0;font-family:var(--font-text);font-size:var(--fs-4);color:var(--ink-muted)}
.bsbl-sample__reader{display:none;margin-top:var(--sp-5)}
.bsbl-sample__reader.is-open{display:block}
.bsbl-sample__frame{display:block;width:100%;aspect-ratio:1002 / 752;border:0;
  border-radius:var(--radius-card);background:#fff}
@supports not (aspect-ratio: 1 / 1){
  .bsbl-sample__frame{height:72vw;max-height:760px}
}
/* the dark band this section sits on */
.bsbl-sample.color-scheme-2 .bsbl-sample__label,
.bsbl-sample.color-scheme-2 .bsbl-sample__note,
.bsbl-sample.color-scheme-2 .bsbl-sample__err{color:#fff}
@media (max-width: 749px){
  .bsbl-sample__row{flex-direction:column}
  .bsbl-sample__go{width:100%}
}

/* phone language switch, beside the cart: Dawn hides the header one under 990px and buries it in the drawer.
   The side column is 75px on a 360px phone, so phones get the ISO code and tablets the full name. */
.bsbl-lang{display:flex;align-items:center}
.bsbl-lang__link{appearance:none;background:none;border:0;margin:0;padding:0 4px;min-height:44px;cursor:pointer;
  font-family:var(--font-text);font-size:var(--fs-5);font-weight:600;color:var(--ink);
  text-decoration:underline;text-underline-offset:3px}
.bsbl-lang__full{display:none}
@media screen and (min-width: 750px){.bsbl-lang__short{display:none}.bsbl-lang__full{display:inline}}
@media screen and (max-width: 989px){.header__icons:has(.bsbl-lang){gap:0;padding-right:0}}
