/* ==========================================================================
   Ebook Memories - reader styles
   Order: fonts > launcher > reader shell > book typography > plain document
          > mobile > PDF capture.
   The same HTML is used in three places, so each piece is styled in layers:
   - .ekm-source / .ekm-fallback-content : plain document styles (base rules)
   - .ekm-reader .ekm-book-flow ...      : paged A5 reader (overrides the base)
   - .ekm-pdf-page ...                   : white-paper capture for the PDF
   ========================================================================== */

/* ---------- Fonts: self-hosted Carlito (also embedded into the PDF) ---------- */
@font-face{font-family:"Carlito";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/Carlito-Regular.ttf") format("truetype")}
@font-face{font-family:"Carlito";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/Carlito-Bold.ttf") format("truetype")}
@font-face{font-family:"Carlito";font-style:italic;font-weight:400;font-display:swap;src:url("../fonts/Carlito-Italic.ttf") format("truetype")}
@font-face{font-family:"Carlito";font-style:italic;font-weight:700;font-display:swap;src:url("../fonts/Carlito-BoldItalic.ttf") format("truetype")}

/* ---------- Launcher: preview card and buttons ---------- */
.ekm-book-launcher{
    --ekm-ink:#292824;
    --ekm-paper:#fff;
    --ekm-accent:#76634f;
    --ekm-ui-font:"Carlito",Calibri,"Segoe UI",sans-serif;
    color:var(--ekm-ink);
    font-family:var(--ekm-ui-font);
}
.ekm-book-preview{display:flex;align-items:center;justify-content:center;gap:28px;max-width:90vw;margin:0 auto;padding:24px}
.ekm-cover-preview-image{width:min(34%,220px);flex:none;box-shadow:0 12px 28px #0002;line-height:0}
.ekm-cover-preview-image img{display:block;width:100%;height:auto}
.ekm-cover-preview-placeholder{width:180px;min-height:240px;display:grid;place-items:center;padding:24px;background:#e9e1d5;color:#51483d;text-align:center;box-shadow:0 12px 28px #0002}
.ekm-book-preview-copy{min-width:0}
.ekm-book-preview-copy h2{margin:0 0 .35em;font-size:clamp(24.75px, 3vw, 30px);line-height:1.2}
.ekm-book-preview-copy .ekm-book-description{margin:0 0 80px;font-size:clamp(19.5px, 3vw, 23.25px);line-height:1.4;color:inherit}
.ekm-book-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.ekm-open-book{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 20px;border:0;border-radius:4px;background:#302f2b;color:#fff;font-family:var(--ekm-ui-font);font-size:clamp(16.75px,3vw,18.5px);line-height:1.2;cursor:pointer}
.ekm-open-book:hover{background:#514b42;color:#fff}
.ekm-open-book.ekm-download-pdf{background:transparent;color:#302f2b;box-shadow:inset 0 0 0 1px #302f2b}
.ekm-open-book.ekm-download-pdf:hover{background:#302f2b;color:#fff}
.ekm-open-book:disabled{opacity:.6;cursor:progress}
.ekm-btn-icon{flex:none;display:block;width:18px;height:18px}
.ekm-btn-label{display:inline-block}
.ekm-editor-notice{padding:18px;border:1px dashed #8c8f94;background:#f6f7f7;font-family:var(--ekm-ui-font)}

/* ---------- Reader shell: overlay, toolbar, TOC panel, controls ---------- */
.ekm-overlay[hidden],.ekm-toc-panel[hidden]{display:none!important}
.ekm-overlay{position:fixed;inset:0;z-index:999999;background:#2a2723;display:flex;align-items:stretch;justify-content:stretch}
.ekm-overlay.ekm-overlay-stealth{visibility:hidden;pointer-events:none}
body.ekm-reader-open{overflow:hidden}
.ekm-reader{--ekm-reader-bg:#F8F5EF;--ekm-paper:#ffffff;--ekm-ui-font:"Carlito",Calibri,"Segoe UI",sans-serif;position:relative;display:flex;flex-direction:column;width:100%;height:100%;min-height:0;background:var(--ekm-reader-bg);color:#252525;overflow:hidden;font-family:var(--ekm-ui-font)}
.ekm-reader *{box-sizing:border-box}
.ekm-reader .ekm-pages,.ekm-reader .ekm-viewport{background:var(--ekm-reader-bg)}
.ekm-toolbar,.ekm-controls{z-index:3;flex:none;display:flex;align-items:center;padding:9px 16px;background:#292824;color:#fff;font-family:var(--ekm-ui-font)}
.ekm-toolbar{justify-content:space-between;gap:12px}
.ekm-controls{justify-content:center;gap:24px}
.ekm-toolbar-start,.ekm-toolbar-end{display:flex;align-items:center;gap:10px;min-width:0}
.ekm-reader-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}
.ekm-icon-button{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0;border:0;background:transparent;color:inherit;font-size:23px;line-height:1;cursor:pointer}
.ekm-icon-button:hover{background:#ffffff18;border-radius:4px}
.ekm-close-button{font-size:28px}
.ekm-reader-main{position:relative;display:flex;flex:1;min-height:0;overflow:hidden}
.ekm-toc-panel{z-index:4;flex:none;width:290px;max-width:82vw;overflow:auto;padding:20px;background:#f8f7f4;border-right:1px solid #e6e0d6;font-family:var(--ekm-ui-font)}
.ekm-toc-panel h2{margin:0 0 16px;font-size:18px}
.ekm-toc-links{display:grid;gap:4px}
.ekm-toc-link{display:flex;justify-content:space-between;gap:12px;width:100%;padding:9px 8px;border:0;border-radius:4px;background:transparent;color:#292824;text-align:left;font-size:clamp(13.5px,3vw,14.75px);line-height:1.4;cursor:pointer}
.ekm-toc-link:hover,.ekm-toc-link.is-active{background:#e8e4dc}
.ekm-toc-link span:last-child{flex:none}
.ekm-toc-link-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.ekm-toc-link .ekm-toc-page-num{flex:none;color:#8B5E3C;font-size:clamp(12.25px,3vw,12.75px);font-weight:600;line-height:1.2;min-width:1.4em;text-align:right}
.ekm-reader .ekm-book-flow .ekm-source-toc .ekm-toc-page{flex:none;color:#8B5E3C;font-size:clamp(14.5px,3vw,15.25px);font-weight:600;line-height:1.2;min-width:1.4em;text-align:right}
.ekm-viewport{position:relative;display:flex;flex:1;align-items:center;justify-content:center;min-width:0;min-height:0;overflow:auto;padding:14px;touch-action:pan-y}
.ekm-pages{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:0}
.ekm-loading{color:#625e57;font:14px var(--ekm-ui-font)}
.ekm-nav-button{padding:8px 15px;border:1px solid #777;border-radius:4px;background:#3b3a35;color:#fff;font-family:var(--ekm-ui-font);font-size:13px;cursor:pointer}
.ekm-nav-button:disabled{opacity:.35;cursor:not-allowed}
.ekm-page-status{min-width:110px;text-align:center;font:12px var(--ekm-ui-font)}
.ekm-progress{height:3px;margin-top:7px;overflow:hidden;border-radius:3px;background:#666}
.ekm-progress span{display:block;width:0;height:100%;background:#e2c9a5}

/* ---------- Paged A5 reader: CSS multi-column, no pagination library ---------- */
.ekm-reader .ekm-pages.ekm-paginated{overflow:hidden}
.ekm-reader .ekm-page-frame{position:relative;flex:none;width:559px;height:794px;overflow:hidden;background:var(--ekm-paper);box-shadow:0 6px 28px rgba(0,0,0,.12);border:1px solid #e8e4dc;transform-origin:center center}
.ekm-reader .ekm-book-flow{position:relative;display:block;height:794px;column-fill:auto;column-gap:0;column-rule:0;color:#222;font:12.5pt/1.6 "Carlito",Calibri,"Segoe UI",sans-serif;transition:transform .16s ease;background:var(--ekm-paper);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
.ekm-reader .ekm-book-flow>article{width:559px;padding:52px 60px}
.ekm-reader .ekm-book-flow>article,
.ekm-reader .ekm-book-measure>article{-webkit-box-decoration-break:clone;box-decoration-break:clone}
.ekm-reader .ekm-book-measure{position:absolute;left:-200000px;top:0;width:559px;visibility:hidden;pointer-events:none}
.ekm-reader .ekm-book-measure>article{width:559px;padding:60px}

/* Book typography */
.ekm-reader .ekm-book-flow p{text-align:justify;text-justify:inter-word;margin:0 0 .85em;font-size:12.5pt;line-height:1.65}
.ekm-reader .ekm-book-flow p,
.ekm-reader .ekm-book-flow li,
.ekm-reader .ekm-book-flow .ekm-chapter-content{letter-spacing:.02em}
.ekm-reader .ekm-book-flow h1{font-size:clamp(20.5px,3vw,21.5px);line-height:1.2;margin:0 0 18pt}
.ekm-reader .ekm-book-flow h2{font-size:16pt;line-height:1.3}
.ekm-reader .ekm-book-flow img{max-width:100%;height:auto;object-fit:contain}
.ekm-reader .ekm-book-flow figure{margin:1em 0;break-inside:avoid}
.ekm-reader .ekm-book-flow blockquote{margin:1em 1.5em}
.ekm-reader .ekm-book-flow table{max-width:100%;border-collapse:collapse}
.ekm-reader .ekm-book-flow td,
.ekm-reader .ekm-book-flow th{padding:4px;border:1px solid #ccc}

/* Sections inside the flow: one page break (column) between them */
.ekm-reader .ekm-book-flow .ekm-source-cover{height:794px;break-after:column}
.ekm-reader .ekm-book-flow .ekm-source-preface,
.ekm-reader .ekm-book-flow .ekm-source-toc{break-after:column}
.ekm-reader .ekm-book-flow .ekm-source-chapter{break-before:column}

/* Chapter heading (the fallback view shares the size) */
.ekm-reader .ekm-book-flow .ekm-source-chapter .ekm-writing-title,
.ekm-fallback-content .ekm-source-chapter .ekm-writing-title{font-size:14pt;font-weight:600;line-height:1.3}
.ekm-reader .ekm-book-flow .ekm-source-chapter .ekm-writing-title,
.ekm-reader .ekm-book-flow .ekm-source-chapter .ekm-author-name{text-align:center}
.ekm-reader .ekm-book-flow .ekm-source-chapter .ekm-writing-title{margin-bottom:8pt}
.ekm-reader .ekm-book-flow .ekm-source-chapter .ekm-author-name{margin:0 0 22pt;color:#8B5E3C}

/* Table of contents inside the book: title ........ page */
.ekm-reader .ekm-book-flow .ekm-source-toc li{grid-template-columns:minmax(0,1fr) auto;column-gap:8px;position:relative}
.ekm-reader .ekm-book-flow .ekm-source-toc .ekm-toc-author{grid-column:1;grid-row:1;position:relative;z-index:1;width:max-content;max-width:100%;padding-right:6px;font-style:normal;font-size:clamp(16px,3vw,16px);background:var(--ekm-paper)}
.ekm-reader .ekm-book-flow .ekm-source-toc .ekm-toc-dots{grid-column:1;grid-row:1;border-bottom:1px dotted #bbb}
.ekm-reader .ekm-book-flow .ekm-source-toc .ekm-toc-page{grid-column:2;grid-row:1}

/* ---------- Plain document styles (hidden source + fallback view) ---------- */
.ekm-source{position:absolute;top:0;left:-100000px;width:148mm;visibility:hidden;pointer-events:none;z-index:-1}
.ekm-source-cover{display:flex;align-items:center;justify-content:center;width:100%;height:178mm;break-after:page;text-align:center}
.ekm-source-cover img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;margin:auto}
.ekm-source-cover h1{font-size:28pt}
.ekm-source-preface{break-after:page}
.ekm-source-preface h1,.ekm-source-toc h1{margin:0 0 24pt;text-align:center;font-size:24pt}
.ekm-source-toc{break-after:page}
.ekm-source-toc ol{list-style:none;margin:0;padding:0}
.ekm-source-toc li{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;gap:7px;margin:0 0 9pt;break-inside:avoid}
.ekm-source-toc .ekm-toc-author{flex:none;grid-column:1;grid-row:2;font-style:italic;font-size:10pt}
.ekm-source-toc .ekm-toc-dots{flex:1;min-width:10px;grid-column:2;grid-row:1 / span 2;align-self:end;border-bottom:1px dotted #777}
.ekm-source-toc .ekm-toc-page{flex:none;min-width:18px;text-align:right;grid-column:3;grid-row:1 / span 2}
.ekm-source-chapter{break-before:page}
.ekm-chapter-marker{display:block;height:0;break-after:avoid}
.ekm-source-chapter .ekm-writing-title{margin:0 0 8pt}
.ekm-source-chapter .ekm-author-name{margin:0 0 22pt;font-style:italic}

.ekm-fallback-active{display:block!important;overflow:auto!important;height:100%;padding:24px;background:var(--ekm-paper,#F8F5EF)}
.ekm-fallback-content{max-width:148mm;margin:0 auto;color:#222;font:12.5pt/1.6 "Carlito",Calibri,"Segoe UI",sans-serif}
.ekm-fallback-content>article{margin:0 0 2.5em;padding:0 0 2em;border-bottom:1px solid #ddd}
.ekm-fallback-content p{text-align:justify;text-justify:inter-word}
.ekm-fallback-content img{max-width:100%;height:auto}
.ekm-fallback-content .ekm-source-cover{min-height:60vh}

/* ---------- Mobile: flat ivory paper, tighter chrome ---------- */
@media(max-width:700px){
    .ekm-book-preview{gap:16px;padding:16px}
    .ekm-cover-preview-image{width:34%;max-width:150px}
    .ekm-cover-preview-placeholder{width:34%;min-height:170px;padding:12px}
    .ekm-open-book{padding:9px 13px}
    .ekm-toolbar{gap:5px;padding:6px 7px}
    .ekm-toolbar-start,.ekm-toolbar-end{gap:4px}
    .ekm-reader-title{max-width:30vw;font-size:12px}
    .ekm-icon-button{min-width:29px;height:32px;font-size:20px}
    .ekm-close-button{font-size:26px}
    .ekm-viewport{padding:7px 2px}
    .ekm-controls{gap:10px;padding:8px 7px}
    .ekm-nav-button{padding:8px 10px;font-size:12px}
    .ekm-page-status{min-width:72px}
    .ekm-reader{--ekm-paper:#F8F5EF}
    .ekm-reader .ekm-page-frame{box-shadow:none;border:0}
    .ekm-reader .ekm-book-flow>article{padding:10px 20px}
    .ekm-reader .ekm-book-flow p{font-size:13.5pt}
    /* TOC as overlay so the page does not scale down when open */
    .ekm-reader-main{position:relative}
    .ekm-toc-panel{
        position:absolute;
        top:0;left:0;bottom:0;
        width:min(290px,82vw);
        max-width:82vw;
        z-index:6;
        background:#f8f7f4;
        border-right:1px solid #e0ddd6;
        box-shadow:4px 0 24px rgba(0,0,0,.18);
    }
}

/* ---------- PDF capture pages: always pure white paper + desktop margins ---------- */
.ekm-pdf-page,
.ekm-pdf-page .ekm-book-flow,
.ekm-pdf-page .ekm-book-flow > article,
.ekm-pdf-page .ekm-toc-author{
    background:#ffffff !important;
    box-shadow:none !important;
    border-color:transparent !important;
}
.ekm-pdf-page{
    --ekm-paper:#ffffff !important;
    --ekm-reader-bg:#ffffff !important;
}
/* Keep PDF margins identical to desktop reader, even when generated on a phone */
.ekm-pdf-page .ekm-book-flow{
    font:12.5pt/1.6 "Carlito",Calibri,"Segoe UI",sans-serif !important;
}
.ekm-pdf-page .ekm-book-flow > article{
    padding:52px 60px !important;
}
.ekm-pdf-page .ekm-book-flow p{
    font-size:12.5pt !important;
}

/* ---------- Launcher card sizing (site-specific) ---------- */
.ekm-book-preview{
    min-height:90dvh;
    border:5px solid;
    border-style:double;
    width:560px;
    max-width:90vw;
}
@media(max-width:700px){
    .ekm-book-preview{
        min-height:80dvh;
        border:0;
    }
}

/* ---------- Utility spacing for ebook content ---------- */
.ekm-reader p.mt-15r{
    margin-top:1.575rem;
    margin-bottom:.7em;
    line-height:1.55;
}
.ekm-reader p.mt-2r{
    margin-top:2rem;
}
.ekm-reader p.lh-smaller{
    margin: 0 0 .7em;
	line-height: 1.475
}