.ls-book{width:100%;max-width:1200px;margin:1.5rem auto;color:#222;font-family:inherit}.ls-viewer{height:var(--ls-book-height,min(78vh,850px));min-height:320px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#d8d1c7;border-radius:4px;box-shadow:0 8px 28px #0002;outline-offset:3px}.ls-spread{display:none;width:100%;height:100%;align-items:stretch;justify-content:center;max-width:100%;}.ls-spread.is-active{display:flex}.ls-slide{display:flex;position:relative;margin:0;flex:1 1 50%;min-width:0;height:100%;align-items:center;justify-content:center;overflow:hidden;background:#fff;box-shadow:0 0 2px #0003}.ls-slide.is-cover{flex:0 1 50%;max-width:50%}.ls-slide img{display:block;width:100%;height:100%;object-fit:contain}.ls-page-label{position:absolute;bottom:8px;right:12px;padding:3px 8px;border-radius:12px;background:#ffffffd9;color:#333;font-size:12px;line-height:1.4}.ls-controls{display:flex;align-items:center;justify-content:center;gap:22px;padding:12px 8px}.ls-controls button{border:1px solid #bbb;border-radius:50%;width:42px;height:42px;background:#fff;color:#222;font-size:30px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.ls-controls button:disabled{opacity:.35;cursor:not-allowed}.ls-counter{min-width:150px;text-align:center;font-size:14px}.ls-book button:focus-visible{outline:2px solid #2271b1;outline-offset:3px}
@media(max-width:767px){.ls-book{margin:1rem auto}.ls-viewer{height:auto;min-height:0;display:flex;align-items:stretch;justify-content:flex-start;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:thin;background:transparent;box-shadow:none;border-radius:0;gap:12px;padding-bottom:8px}.ls-spread{display:contents!important}.ls-slide,.ls-slide.is-cover{display:flex;flex:0 0 100%;width:100%;max-width:none;height:auto;aspect-ratio:3/4;scroll-snap-align:center;background:#f4f4f4;border-radius:4px;overflow:hidden;box-shadow:none}.ls-slide img{height:100%;width:100%;object-fit:contain}.ls-page-label{bottom:7px;right:8px}.ls-controls{display:none}}
@media(prefers-reduced-motion:no-preference){.ls-slide img{animation:lsFade .18s ease-out}@keyframes lsFade{from{opacity:.75}to{opacity:1}}}
/* High-contrast navigation controls: protect against WordPress theme button styles. */
.ls-book .ls-controls button.ls-prev,
.ls-book .ls-controls button.ls-next{appearance:none!important;-webkit-appearance:none!important;box-sizing:border-box!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;padding:0!important;margin:0!important;border:2px solid #174ea6!important;border-radius:50%!important;background:#2563c7!important;color:#fff!important;font-family:Arial,sans-serif!important;font-size:36px!important;font-weight:700!important;line-height:1!important;text-align:center!important;text-decoration:none!important;box-shadow:0 2px 6px #0003!important;opacity:1!important;visibility:visible!important;position:relative!important;z-index:5!important;cursor:pointer!important;}
.ls-book .ls-controls button.ls-prev span,
.ls-book .ls-controls button.ls-next span{display:block!important;color:#fff!important;font:700 36px/36px Arial,sans-serif!important;margin:0!important;padding:0!important;transform:translateY(-2px)!important;}
.ls-book .ls-controls button.ls-prev:disabled,
.ls-book .ls-controls button.ls-next:disabled{background:#6b8fc9!important;border-color:#5278b5!important;color:#fff!important;opacity:.75!important;}
.ls-book .ls-controls button.ls-prev:hover:not(:disabled),
.ls-book .ls-controls button.ls-next:hover:not(:disabled){background:#174ea6!important;}
@media(max-width:767px){
 .ls-book{margin:1rem auto;padding:0 4px;box-sizing:border-box}
 .ls-viewer{height:auto!important;min-height:0!important;aspect-ratio:3/2;display:flex;overflow:hidden;background:#d8d1c7;box-shadow:0 4px 16px #0002;border-radius:3px;padding:0;gap:0}
 .ls-spread{display:none!important;width:100%;height:100%;flex:0 0 100%;}
 .ls-spread.is-active{display:flex!important}
 .ls-slide,.ls-slide.is-cover{display:flex;flex:1 1 50%;width:50%;max-width:50%;height:100%;aspect-ratio:auto;min-width:0;scroll-snap-align:none;border-radius:0;box-shadow:inset 0 0 1px #0003;background:#fff;}
 .ls-slide img{width:100%;height:100%;object-fit:contain}
 .ls-controls{display:flex!important;gap:18px;padding:10px 6px;}
 .ls-book .ls-controls button.ls-prev,.ls-book .ls-controls button.ls-next{width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;font-size:32px!important}
 .ls-counter{min-width:0;flex:0 1 150px;font-size:13px}
}

/* v1.1.4: mobile uses the same active two-page spread as desktop, navigated by arrows. */
@media(max-width:767px){
 .ls-book .ls-viewer{display:flex!important;position:relative!important;width:100%!important;height:auto!important;min-height:0!important;aspect-ratio:3/2!important;overflow:hidden!important;padding:0!important;gap:0!important;scroll-snap-type:none!important;background:#d8d1c7!important;box-shadow:0 4px 16px #0002!important;}
 .ls-book .ls-spread{display:none!important;width:100%!important;height:100%!important;flex:0 0 100%!important;align-items:stretch!important;justify-content:center!important;}
 .ls-book .ls-spread.is-active{display:flex!important;}
 .ls-book .ls-slide,.ls-book .ls-slide.is-cover{display:flex!important;flex:1 1 50%!important;width:50%!important;max-width:50%!important;min-width:0!important;height:100%!important;aspect-ratio:auto!important;overflow:hidden!important;background:#fff!important;}
 .ls-book .ls-slide img{display:block!important;width:100%!important;height:100%!important;object-fit:contain!important;}
 .ls-book .ls-controls{display:flex!important;align-items:center!important;justify-content:center!important;gap:18px!important;padding:10px 6px!important;}
 .ls-book .ls-controls button.ls-prev,.ls-book .ls-controls button.ls-next{display:inline-flex!important;visibility:visible!important;opacity:1!important;width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;}
}
/* v1.2.0: optional table-of-contents page */
.ls-book .ls-slide.is-index{display:block;overflow-y:auto;padding:clamp(12px,3vw,32px);box-sizing:border-box;background:#fff;}
.ls-book .ls-index-content{width:100%;max-width:560px;margin:0 auto;color:#222;font-family:inherit;}
.ls-book .ls-index-content h2{margin:0 0 1em;text-align:center;font-size:clamp(18px,2.5vw,30px);}
.ls-book .ls-index-content ol{margin:0;padding-left:1.5em;}
.ls-book .ls-index-content li{margin:0 0 .7em;padding:0;border-bottom:1px dotted #aaa;}
.ls-book .ls-index-content a{display:flex;justify-content:space-between;gap:12px;padding:4px 0;color:#174ea6;text-decoration:none;font-size:clamp(11px,1.4vw,17px);}
.ls-book .ls-index-content a:hover{text-decoration:underline;}


/* v1.2.1 — editorial-style chapter index */
.ls-book .ls-slide.is-index{flex:1 1 100%;width:100%;max-width:100%;padding:clamp(18px,4vw,58px);background:#f8f5ef;color:#252b35;box-sizing:border-box;overflow-y:auto;}
.ls-book .ls-index-content{position:relative;width:100%;max-width:760px;margin:auto;padding:clamp(18px,3.2vw,42px);box-sizing:border-box;border:1px solid #d9d0c1;background:linear-gradient(135deg,#fffdf9 0%,#f7f2e8 100%);box-shadow:0 8px 24px #2b24150d;color:#252b35;}
.ls-book .ls-index-content:before{content:"";position:absolute;inset:7px;border:1px solid #e8dfd0;pointer-events:none;}
.ls-book .ls-index-kicker{position:relative;text-align:center;color:#9a6b35;font-size:10px;font-weight:800;letter-spacing:.24em;margin:0 0 12px;}
.ls-book .ls-index-content h2{position:relative;margin:0;text-align:center;color:#1e2a3b;font-family:Georgia,'Times New Roman',serif;font-size:clamp(25px,4vw,43px);font-weight:700;letter-spacing:.015em;line-height:1.12;}
.ls-book .ls-index-subtitle{position:relative;margin:10px 0 clamp(20px,3vw,34px);text-align:center;color:#777064;font-family:Georgia,'Times New Roman',serif;font-size:clamp(12px,1.5vw,16px);font-style:italic;}
.ls-book .ls-index-content ol{position:relative;list-style:none;margin:0;padding:0;counter-reset:chapter;}
.ls-book .ls-index-content li{display:block;margin:0;padding:0;border:0;border-bottom:1px solid #e7dfd3;}
.ls-book .ls-index-content li:first-child{border-top:1px solid #e7dfd3;}
.ls-book .ls-index-content .ls-index-link{display:flex;align-items:baseline;gap:clamp(8px,1.5vw,16px);padding:clamp(10px,1.6vw,16px) 4px;color:#263448;text-decoration:none;font-size:clamp(12px,1.45vw,17px);line-height:1.35;transition:background .15s ease,color .15s ease;}
.ls-book .ls-index-content .ls-index-link:hover,.ls-book .ls-index-content .ls-index-link:focus-visible{background:#efe7d9;color:#8a5a26;text-decoration:none;outline:0;}
.ls-book .ls-index-chapter-no{flex:0 0 auto;color:#a47742;font-size:.78em;font-weight:800;letter-spacing:.08em;}
.ls-book .ls-index-title{flex:0 1 auto;font-weight:650;}
.ls-book .ls-index-leader{flex:1 1 auto;min-width:10px;border-bottom:1px dotted #b9ad9b;transform:translateY(-3px);}
.ls-book .ls-index-page{flex:0 0 auto;color:#8b6c46;font-size:.82em;font-weight:700;white-space:nowrap;}
.ls-book .ls-index-static{display:flex;align-items:baseline;gap:clamp(8px,1.5vw,16px);padding:clamp(10px,1.6vw,16px) 4px;color:#263448;font-size:clamp(12px,1.45vw,17px);}
.ls-book .ls-index-footer{position:relative;display:flex;align-items:center;justify-content:center;gap:12px;margin-top:clamp(20px,3vw,34px);color:#a47742;font-size:9px;font-weight:800;letter-spacing:.2em;}
.ls-book .ls-index-footer span:first-child,.ls-book .ls-index-footer span:last-child{width:32px;height:1px;background:#cdbb9f;}
@media(max-width:767px){.ls-book .ls-slide.is-index{padding:10px;}.ls-book .ls-index-content{padding:22px 16px;}.ls-book .ls-index-content:before{inset:4px}.ls-book .ls-index-content h2{font-size:clamp(22px,6vw,32px)}.ls-book .ls-index-content .ls-index-link,.ls-book .ls-index-static{gap:8px;padding:11px 2px;font-size:12px}.ls-book .ls-index-leader{min-width:4px}.ls-book .ls-index-page{font-size:10px}}


/* v1.2.2 — mobile chapter links must remain tappable */
.ls-book .ls-index-content,.ls-book .ls-index-content ol,.ls-book .ls-index-content li{position:relative;z-index:2;pointer-events:auto;}
.ls-book .ls-index-content .ls-index-link{position:relative;z-index:3;min-height:44px;align-items:center;pointer-events:auto;touch-action:manipulation;-webkit-tap-highlight-color:rgba(37,99,199,.22);cursor:pointer;}
@media(max-width:767px){.ls-book .ls-controls{display:flex!important;position:relative;z-index:10;gap:16px;padding:10px 4px}.ls-book .ls-controls button{flex:0 0 44px;touch-action:manipulation}.ls-book .ls-counter{min-width:0;flex:0 1 auto}.ls-book .ls-index-content .ls-index-link{padding:12px 4px;min-height:48px}}


/* v1.3.1 — indice ottimizzato per schermi stretti */
@media (max-width: 767px) {
  .ls-book .ls-slide.is-index { padding: 5px !important; }
  .ls-book .ls-index-content {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    padding: 20px 12px !important;
    overflow-wrap: anywhere;
  }
  .ls-book .ls-index-kicker {
    font-size: 8px;
    letter-spacing: .12em;
    margin-bottom: 8px;
  }
  .ls-book .ls-index-content h2 {
    font-size: clamp(20px, 6vw, 28px) !important;
    line-height: 1.15;
    overflow-wrap: anywhere;
  }
  .ls-book .ls-index-subtitle {
    font-size: 11px;
    line-height: 1.4;
    margin: 7px 0 15px;
  }
  .ls-book .ls-index-content .ls-index-link,
  .ls-book .ls-index-static {
    box-sizing: border-box;
    display: grid !important;
    grid-template-columns: 26px minmax(0, 1fr) auto;
    align-items: center !important;
    column-gap: 7px !important;
    width: 100%;
    min-height: 48px;
    padding: 10px 3px !important;
    font-size: 12px !important;
    line-height: 1.35;
  }
  .ls-book .ls-index-chapter-no {
    font-size: 10px;
    text-align: left;
  }
  .ls-book .ls-index-title {
    min-width: 0;
    overflow-wrap: anywhere;
    word-break: normal;
  }
  .ls-book .ls-index-leader { display: none !important; }
  .ls-book .ls-index-page {
    justify-self: end;
    font-size: 10px !important;
    white-space: nowrap;
    padding-left: 3px;
  }
  .ls-book .ls-index-footer {
    margin-top: 15px;
    gap: 7px;
    font-size: 8px;
    letter-spacing: .12em;
  }
  .ls-book .ls-index-footer span:first-child,
  .ls-book .ls-index-footer span:last-child { width: 18px; }
}


/* v1.3.2 — indice leggibile su smartphone: usa tutta la larghezza disponibile */
@media (max-width: 767px) {
  .ls-book .ls-viewer {
    width: 100%;
    box-sizing: border-box;
  }
  .ls-book .ls-viewer .ls-slide.is-index {
    display: block !important;
    box-sizing: border-box !important;
    flex: 0 0 calc(100vw - 64px) !important;
    width: calc(100vw - 64px) !important;
    max-width: calc(100vw - 64px) !important;
    min-width: calc(100vw - 64px) !important;
    height: auto !important;
    aspect-ratio: auto !important;
    min-height: 340px;
    max-height: 70vh;
    overflow-y: auto !important;
    padding: 8px !important;
    scroll-snap-align: center;
  }
  .ls-book .ls-viewer .ls-slide.is-index .ls-index-content {
    width: 100% !important;
    max-width: none !important;
    min-height: 100%;
    box-sizing: border-box !important;
    padding: 20px 14px !important;
  }
  .ls-book .ls-viewer .ls-slide.is-index .ls-index-content h2 {
    font-size: clamp(21px, 6vw, 30px) !important;
    line-height: 1.15 !important;
    margin-bottom: 8px !important;
  }
  .ls-book .ls-viewer .ls-slide.is-index .ls-index-subtitle {
    font-size: 12px !important;
    line-height: 1.4 !important;
    margin: 8px 0 16px !important;
  }
  .ls-book .ls-viewer .ls-slide.is-index .ls-index-link,
  .ls-book .ls-viewer .ls-slide.is-index .ls-index-static {
    display: grid !important;
    grid-template-columns: 28px minmax(0, 1fr) auto !important;
    gap: 7px !important;
    align-items: center !important;
    min-height: 44px !important;
    padding: 9px 2px !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
    box-sizing: border-box !important;
  }
  .ls-book .ls-viewer .ls-slide.is-index .ls-index-title {
    min-width: 0 !important;
    overflow-wrap: anywhere !important;
  }
  .ls-book .ls-viewer .ls-slide.is-index .ls-index-leader {
    display: none !important;
  }
  .ls-book .ls-viewer .ls-slide.is-index .ls-index-page {
    white-space: nowrap !important;
    font-size: 10px !important;
  }
}


/* v1.3.3 — mobile: the index is a full-width page, not half of a comic spread */
@media (max-width: 767px) {
  .ls-book .ls-viewer:has(.ls-spread.is-active .ls-slide.is-index) {
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: auto !important;
    overflow: visible !important;
    align-items: stretch !important;
    background: transparent !important;
    box-shadow: none !important;
  }
  .ls-book .ls-spread:has(.ls-slide.is-index) {
    display: none !important;
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: auto !important;
    overflow: visible !important;
  }
  .ls-book .ls-spread.is-active:has(.ls-slide.is-index) {
    display: flex !important;
  }
  .ls-book .ls-spread.is-active:has(.ls-slide.is-index) .ls-slide.is-index {
    display: block !important;
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    overflow: visible !important;
    box-sizing: border-box !important;
    padding: 8px !important;
    background: #d8d1c7 !important;
  }
  .ls-book .ls-spread.is-active:has(.ls-slide.is-index) .ls-index-content {
    width: 100% !important;
    max-width: none !important;
    min-height: 0 !important;
    padding: 24px 18px !important;
    box-sizing: border-box !important;
  }
  .ls-book .ls-spread.is-active:has(.ls-slide.is-index) .ls-index-content h2 {
    font-size: clamp(23px, 7vw, 32px) !important;
    line-height: 1.18 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }
  .ls-book .ls-spread.is-active:has(.ls-slide.is-index) .ls-index-link,
  .ls-book .ls-spread.is-active:has(.ls-slide.is-index) .ls-index-static {
    grid-template-columns: 30px minmax(0, 1fr) auto !important;
    font-size: 14px !important;
    min-height: 48px !important;
    padding: 12px 4px !important;
  }
  .ls-book .ls-spread.is-active:has(.ls-slide.is-index) .ls-index-title {
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }
}
