/* Book review: purchase selector, cover interaction and story cards. */
.ll-cover-viewer { margin:0 auto; position:relative; width:min(100%,300px); }
.ll-cover-toggle { appearance:none; display:block; padding:0; border:0; background:none; border-radius:2px; width:100%; cursor:pointer; color:inherit; }
.ll-cover-toggle:focus-visible { outline:3px solid #bd7c00; outline-offset:8px; }
.ll-cover-images { display:grid; }
.ll-cover-viewer .ll-cover-images > img { grid-area:1/1; display:block; width:100%; height:auto; align-self:stretch; object-fit:contain; transition:opacity .24s ease; }
.ll-cover-viewer .ll-cover-back { opacity:0; }
.ll-cover-viewer.is-back .ll-cover-front { opacity:0; }
.ll-cover-viewer.is-back .ll-cover-back { opacity:1; }
.ll-cover-viewer figcaption { position:absolute; left:50%; bottom:-34px; transform:translateX(-50%); width:125%; text-align:center; font-size:.75rem; line-height:1.4; color:#47617b; font-style:normal; }
.ll-hero .ll-cover-viewer figcaption { width:150%; }
.ll-book-intro-grid { display:grid; grid-template-columns:minmax(240px,.75fr) minmax(0,1.25fr); gap:80px; align-items:center; }
.ll-book-cover-column { padding:10px 24px 38px; }
.ll-book-cover-column .ll-cover-viewer { filter:drop-shadow(10px 16px 15px #06295826); }
.ll-book-intro-copy .ll-interior-story-header { margin-bottom:24px; }
.ll-book-intro-copy .ll-interior-story-header h1 { font-size:clamp(1.7rem,2.2vw,2.25rem) !important; line-height:1.22; }
.ll-book-intro .ll-book-formats { font-size:.9rem !important; color:#47617b; }
.ll-expect-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
.ll-expect-grid > .ll-expect-card { margin:0; border-radius:20px; border:1px solid #06295817; background:#faf9f6; padding:28px 22px; box-shadow:0 8px 24px #06295809; }
.ll-expect-card .ll-expect-icon { margin:0 0 20px; width:90px; }
.ll-expect-icon img { width:90px; height:auto; }
.ll-expect-card h3 { font-size:1.22rem; line-height:1.35; margin:0 0 16px; }
.ll-expect-card p { margin:0; }
.ll-book-purchase-section { scroll-margin-top:110px; }
.ll-purchase-panel { padding:56px; border-radius:32px; background:#062958; color:#fff; box-shadow:0 18px 40px #06295817; }
.ll-purchase-intro { max-width:720px; margin:0 auto 34px; text-align:center; }
.ll-purchase-icon { width:90px; height:auto; margin:0 auto 16px; display:block; }
.ll-purchase-panel .ll-purchase-eyebrow { color:#f7d77f; font-size:.72rem !important; font-weight:700; letter-spacing:.12em; }
.ll-purchase-panel h2 { color:#fff; margin:8px 0 16px; font-size:clamp(1.9rem,3vw,2.5rem); }
.ll-purchase-intro > p:last-child { color:#e2ebf5; }
.ll-copy-options { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.ll-copy-card { border-radius:22px; padding:32px; background:#faf9f6; color:#062958; display:flex; flex-direction:column; }
.ll-copy-card .ll-copy-kicker { font-size:.68rem !important; font-weight:700; letter-spacing:.11em; color:#47617b; margin:0 0 12px; }
.ll-copy-card h3 { font-size:1.75rem; margin:0 0 12px; color:#062958; }
.ll-copy-card > p { margin:0 0 24px; }
.ll-copy-buttons { display:grid; gap:12px; margin-top:auto; }
.ll-copy-buttons button,.ll-selection-review { appearance:none; border:2px solid #062958; border-radius:10px; padding:14px 16px; font:inherit; line-height:1.35; font-weight:700; cursor:pointer; background:#062958; color:#fff; }
.ll-copy-buttons .ll-signed-button { background:#ffb900; color:#062958; border-color:#ffb900; }
.ll-copy-buttons button[aria-pressed="true"] { outline:3px solid #bd7c00; outline-offset:3px; }
.ll-copy-buttons button:hover { filter:brightness(1.1); }
.ll-purchase-panel button:focus-visible,.ll-purchase-panel a:focus-visible { outline:3px solid #ffb900; outline-offset:4px; }
.ll-copy-card .ll-copy-shipping { font-size:.78rem !important; line-height:1.5; color:#47617b; margin:18px 0 0; }
.ll-copy-customization { color:#062958; background:#fff; border-radius:22px; padding:32px; margin-top:24px; }
.ll-copy-customization[hidden],.ll-copy-customization [hidden] { display:none !important; }
.ll-copy-customization h3 { color:#062958; margin:0 0 24px; font-size:1.5rem; }
.ll-copy-customization fieldset { border:0; padding:0; margin:0 0 24px; min-width:0; }
.ll-copy-customization legend { font-weight:700; margin-bottom:12px; }
.ll-signing-fields > label { display:flex; align-items:flex-start; gap:10px; margin:12px 0; }
.ll-signing-fields input { accent-color:#062958; margin-top:6px; flex:0 0 auto; }
.ll-recipient-fields,.ll-custom-fields,.ll-personalized-fields,.ll-profession-fields { margin:20px 0; }
.ll-copy-customization label:not(:has(input[type="radio"])) { display:block; margin-bottom:8px; font-weight:600; }
.ll-copy-customization input[type="text"],.ll-copy-customization textarea,.ll-copy-customization select { font:inherit; display:block; width:100%; box-sizing:border-box; padding:12px 14px; color:#062958; background:#faf9f6; border:1px solid #9cabbc; border-radius:8px; }
.ll-copy-customization textarea { resize:vertical; min-height:110px; }
.ll-copy-customization input:focus-visible,.ll-copy-customization textarea:focus-visible,.ll-copy-customization select:focus-visible { outline:3px solid #bd7c00; outline-offset:2px; }
.ll-copy-customization .ll-field-note { font-size:.88rem !important; color:#47617b; }
.ll-copy-summary { margin-top:24px; padding:24px; border-radius:12px; border-left:4px solid #bd7c00; background:#eaf5fc; overflow-wrap:anywhere; }
.ll-copy-summary h4 { color:#062958; margin:0 0 12px; font-size:1.2rem; }
.ll-copy-summary p { margin:8px 0; white-space:pre-wrap; }
.ll-kindle-option { margin-top:28px; padding-top:28px; border-top:1px solid #ffffff38; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.ll-kindle-option h3 { color:#fff; margin:0 0 6px; font-size:1.25rem; }
.ll-kindle-option p { margin:0; color:#e2ebf5; }
.ll-kindle-option > a { flex-shrink:0; color:#ffda76; font-weight:700; text-underline-offset:5px; }
.ll-purchase-panel .ll-ordering-note { margin:26px 0 0; color:#d4e0ee; text-align:center; font-size:.85rem !important; }
@media(max-width:1050px) {
 .ll-expect-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .ll-book-intro-grid { gap:36px; }
 .ll-purchase-panel { padding:36px; }
}
@media(max-width:781px) {
 .ll-book-intro-grid { grid-template-columns:1fr; gap:32px; }
 .ll-book-cover-column { order:2; }
 .ll-book-intro-copy { order:1; }
 .ll-copy-options { grid-template-columns:1fr; }
 .ll-kindle-option { flex-direction:column; align-items:flex-start; gap:14px; }
 .ll-copy-card,.ll-copy-customization { padding:26px; }
}
@media(max-width:480px) {
 .ll-purchase-panel { padding:28px 18px; border-radius:24px; }
 .ll-copy-card,.ll-copy-customization { padding:24px 18px; border-radius:16px; }
 .ll-expect-grid { grid-template-columns:1fr; }
 .ll-expect-card .ll-expect-icon,.ll-expect-icon img,.ll-purchase-icon { width:72px; }
 .ll-copy-summary { padding:18px; }
}
@media(prefers-reduced-motion:reduce) { .ll-cover-images > img { transition:none; } }

.ll-book-intro-copy .ll-interior-story-header h1 { margin:0; flex:1; color:#062958; letter-spacing:-.035em; }

/* Keep small labels distinct from the shared body-paragraph preset. */
.ll-page-section .ll-purchase-panel p.ll-purchase-eyebrow { font-size:.72rem !important; }
.ll-page-section .ll-purchase-panel p.ll-copy-kicker { font-size:.68rem !important; }
.ll-page-section .ll-purchase-panel p.ll-copy-shipping { font-size:.78rem !important; }
.ll-page-section .ll-purchase-panel p.ll-field-note { font-size:.88rem !important; }
.ll-page-section .ll-purchase-panel p.ll-ordering-note { font-size:.85rem !important; }
.ll-page-section.ll-book-intro p.ll-book-formats { font-size:.9rem !important; }
.ll-cover-images { position:relative; }
.ll-cover-viewer .ll-cover-images > .ll-cover-back { position:absolute; inset:0; height:100%; object-fit:contain; }

/* Book desktop feedback. Section-gap correction lives in site.css. */
.ll-book-intro > .ll-eyebrow-page-title { justify-content:center; text-align:center; }
.ll-book-intro-copy > h1 { margin:0 0 24px; text-wrap:balance; }
.ll-expect-card .ll-expect-icon { width:180px !important; max-width:100%; margin:0 auto 24px !important; }
.ll-expect-card .ll-expect-icon img { width:180px !important; height:auto; }
.ll-expect-card h3 { text-align:center; text-wrap:balance; }
.ll-expect-card p,.ll-book-intro-copy p { text-wrap:pretty; }
.ll-page-section > .ll-save-one-life { width:75% !important; max-width:900px !important; margin:40px auto 0 !important; line-height:0; }
.ll-save-one-life img { display:block; width:100%; height:auto; border:2px solid #062958; border-radius:18px; }
.ll-quantity-field { margin:0 0 28px; }
.ll-quantity-control { display:inline-flex; align-items:stretch; border:1px solid #9cabbc; border-radius:9px; overflow:hidden; }
.ll-quantity-control button { appearance:none; border:0; background:#eaf5fc; color:#062958; width:46px; padding:10px; font:inherit; font-size:1.3rem; cursor:pointer; }
.ll-quantity-control input { width:76px; min-width:0; padding:10px 6px; border:0; border-left:1px solid #9cabbc; border-right:1px solid #9cabbc; background:#faf9f6; color:#062958; font:inherit; text-align:center; }
.ll-quantity-control input::-webkit-inner-spin-button { appearance:none; }
.ll-quantity-field .ll-field-note { margin:12px 0 0; }
@media(max-width:781px) { .ll-page-section > .ll-save-one-life { width:100% !important; } }

/* Shared icon/title/description tracks keep all four descriptions aligned. */
.ll-expect-card { text-align:center; }
.ll-expect-card p { text-align:center; }
.ll-expect-card h3 { min-height:2.7em; }
@supports (grid-template-rows:subgrid) {
  .ll-expect-grid > .ll-expect-card {
    display:grid;
    grid-template-rows:subgrid;
    grid-row:span 3;
    row-gap:0;
    align-items:start;
  }
}
.ll-option-price { display:block; font-size:.85em; font-weight:400; margin-top:4px; }

/* Inset the native-select replacement arrow while reserving room for text. */
.ll-copy-customization select {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 48px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23062958' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: 18px;
  background-position: right 16px center;
}

/* Book-page front/back presentation; homepage cover behavior is unchanged. */
.ll-book-intro .ll-book-intro-grid { grid-template-columns: minmax(0, .95fr) minmax(0, 1.25fr); gap: 48px; }
.ll-book-intro .ll-book-cover-column { padding: 10px 0 0; }
.ll-cover-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.ll-cover-item { min-width: 0; margin: 0; text-align: center; }
.ll-cover-open { display: block; cursor: zoom-in; }
.ll-cover-open img { display: block; width: 100%; height: auto; object-fit: contain; }
.ll-cover-item figcaption, .ll-book-intro p.ll-cover-help { margin: 16px 0 0; font-size: .8rem !important; color: #47617b; text-align: center; }
.ll-cover-dialog { border: 0; padding: 12px; border-radius: 8px; background: #faf9f6; max-width: calc(100vw - 32px); max-height: calc(100dvh - 32px); overflow: auto; }
.ll-cover-dialog::backdrop { background: rgb(6 41 88 / 82%); }
.ll-cover-dialog form { display: flex; justify-content: flex-end; margin: 0 0 8px; }
.ll-cover-close { min-height: 44px; padding: 8px 16px; border: 0; border-radius: 4px; color: #062958; background: #ffb900; font: inherit; cursor: pointer; }
.ll-cover-dialog .ll-cover-full { display: block; width: auto; height: auto; max-width: 100%; max-height: calc(100dvh - 124px); margin: auto; object-fit: contain; }
body.ll-cover-modal-open { overflow: hidden; }
@media (max-width: 1000px) {
  .ll-book-intro .ll-book-intro-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .ll-book-intro .ll-book-cover-column { order: 0; max-width: 520px !important; width: 100%; margin: auto !important; }
  .ll-book-intro .ll-book-intro-copy { order: 1; top: 0; }
}
@media (max-width: 599px) { .ll-cover-pair { gap: 16px; } }

/* Shared purchase notes below the edition cards. Natural wrapping on narrow screens. */
.ll-purchase-panel .ll-purchase-notes { margin: 18px auto 0; text-align: center; }
.ll-page-section .ll-purchase-panel .ll-purchase-notes > p { font-size: .78rem !important; font-weight: 400; line-height: 1.5; margin: 4px 0; color: #d4e0ee; }
.ll-purchase-panel .ll-purchase-notes .ll-shipping-policy-link,
.ll-purchase-panel .ll-purchase-notes .ll-shipping-policy-link:visited { display: inline; color: #ffda76 !important; text-decoration: underline; text-underline-offset: 3px; }
.ll-purchase-panel .ll-purchase-notes .ll-shipping-policy-link:hover { color: #fff !important; }
