.book-visual-story{width:min(1120px,calc(100% - 2rem));margin:clamp(2rem,5vw,4.5rem) auto;display:grid;grid-template-columns:1.25fr .75fr;grid-template-rows:repeat(2,minmax(180px,30vw));gap:clamp(.55rem,1.5vw,1rem);clear:both}
.book-visual-frame{position:relative;margin:0;min-width:0;overflow:hidden;background:#32191f;isolation:isolate}
.book-visual-frame:first-child{grid-row:1/3}
.book-visual-frame img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .7s ease,filter .7s ease}
.book-visual-frame:hover img{transform:scale(1.025)}
.book-visual-frame:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 62%,rgba(30,10,15,.65));pointer-events:none}
.book-visual-frame figcaption{position:absolute;z-index:2;left:1rem;bottom:.8rem;color:#fff;font:600 .62rem/1.2 Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase}
.book-listen-launch{position:fixed;z-index:75;right:max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom));min-width:116px;min-height:50px;padding:.75rem 1rem;border:1px solid rgba(255,255,255,.45);border-radius:999px;background:#762631;color:#fff;box-shadow:0 16px 45px rgba(52,15,23,.28);font:700 .72rem/1 Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
body:has(.spark-cookie-settings) .book-listen-launch,body:has(.mobile-cta) .book-listen-launch{bottom:calc(4.8rem + env(safe-area-inset-bottom))}
.book-listen-launch:focus-visible,.book-listen-dialog button:focus-visible,.book-listen-dialog select:focus-visible{outline:3px solid #d9ac67;outline-offset:3px}
.book-listen-dialog{width:min(640px,calc(100% - 1.25rem));max-height:min(88dvh,760px);margin:auto;padding:0;border:0;background:#fffaf7;color:#2e1d20;box-shadow:0 30px 100px rgba(40,12,18,.4)}
.book-listen-dialog::backdrop{background:rgba(32,14,18,.66);backdrop-filter:blur(5px)}
.book-listen-head{display:flex;align-items:start;justify-content:space-between;gap:1rem;padding:1.25rem 1.35rem;background:#4b1720;color:#fff}
.book-listen-head p{margin:0;color:#efcfd4;font:700 .62rem/1.3 Arial,sans-serif;letter-spacing:.15em;text-transform:uppercase}
.book-listen-head h2{margin:.3rem 0 0;color:#fff;font:500 clamp(2rem,6vw,3.4rem)/1 Georgia,serif}
.book-listen-close{width:44px;height:44px;flex:0 0 44px;border:1px solid rgba(255,255,255,.45);border-radius:50%;background:transparent;color:#fff;font-size:1.4rem;cursor:pointer}
.book-listen-body{padding:clamp(1.15rem,4vw,2rem)}
.book-listen-status{min-height:2.8rem;margin:0 0 1.2rem;padding:1rem;background:#f5e5e7;color:#5b343a;font:600 .88rem/1.55 Arial,sans-serif}
.book-listen-grid{display:grid;grid-template-columns:1fr 150px;gap:1rem}
.book-listen-grid label{display:grid;gap:.45rem;color:#762631;font:700 .68rem/1.3 Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.book-listen-grid select{width:100%;min-height:50px;border:1px solid #cdaeb3;background:#fff;color:#2e1d20;padding:.7rem;font:16px Arial,sans-serif}
.book-listen-actions{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:.65rem;margin-top:1.2rem}
.book-listen-actions button{min-height:48px;border:1px solid #762631;background:#fff;color:#762631;padding:.7rem .8rem;font:700 .7rem/1 Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
.book-listen-actions .primary{background:#762631;color:#fff}
.book-listen-note{margin:1rem 0 0;color:#735e62;font:400 .78rem/1.55 Arial,sans-serif}
.book-speaking{outline:3px solid rgba(181,93,107,.4);outline-offset:6px;background:rgba(245,222,226,.35);transition:background .2s ease}
@media(max-width:700px){.book-visual-story{grid-template-columns:1fr;grid-template-rows:none}.book-visual-frame,.book-visual-frame:first-child{grid-row:auto;min-height:52vw;max-height:72dvh}.book-listen-launch{right:.75rem;min-width:104px}.book-listen-grid,.book-listen-actions{grid-template-columns:1fr}.book-listen-dialog{max-height:calc(100dvh - 1rem)}.book-listen-body{overflow:auto}.book-listen-actions button{width:100%}}
@media(prefers-reduced-motion:reduce){.book-visual-frame img{transition:none}.book-visual-frame:hover img{transform:none}}
