/*
 * Комплект оформления «Пергамент» — книга для тарифа «Большая история».
 * Страница 154×235 мм (582×888 px при 96 dpi). Все размеры в px этой сетки.
 * Меняется только содержимое (текст, иллюстрации); оформление берётся из этого файла и картинок рядом.
 */
/* шрифты книги подключает сама страница (<link data-book-fonts>): @import задерживал первую отрисовку (аудит, BUG-036) */

.bk-wrap{ width:calc(582px * var(--bk-scale, 1)); height:calc(888px * var(--bk-scale, 1)); flex:none; }
.bk-page{
  --paper:#e6cf9c; --ink:#2b1e14; --brown:#5a4327; --line:#8b6f43; --muted:#7a6440;
  --l:91px; --w:457px; /* левый край и ширина области текста */
  width:582px; height:888px; position:relative; overflow:hidden;
  transform:scale(var(--bk-scale, 1)); transform-origin:0 0;
  background:var(--paper) url(parchment.jpg) center/100% 100% no-repeat;
  color:var(--ink); font-family:'Tinos','Times New Roman',serif;
  box-shadow:0 25px 55px -20px rgba(0,0,0,.6);
}

/* ---------- текстовая страница ---------- */
.bk-strip{ position:absolute; left:0; top:0; bottom:0; width:71.5px; background:url(strip.webp) repeat-y left top; background-size:71.5px auto; }

.bk-run{
  position:absolute; left:var(--l); width:var(--w); top:78px; height:26px;
  display:flex; justify-content:center; align-items:center; gap:14px;
  font:600 22px/26px 'Cormorant Garamond',serif; letter-spacing:.05em; color:var(--brown);
}
.bk-run img{ height:16px; width:auto; opacity:.9; }
.bk-run-rule{ position:absolute; left:calc(var(--l) + var(--w) / 2 - 112px); width:224px; top:118px; height:1.5px; background:linear-gradient(90deg,transparent,#a58a5c 25%,#a58a5c 75%,transparent); }

.bk-content{
  position:absolute; left:var(--l); width:var(--w); top:150px; height:650px;
  overflow:hidden; display:flow-root; font-size:23px; line-height:39px; text-align:left;
}
.bk-content p{ margin:0 0 15px; }
.bk-content .bk-date{ font-weight:700; }

.bk-folio{ position:absolute; left:var(--l); width:var(--w); top:803px; height:38px; display:flex; justify-content:center; align-items:flex-end; }
.bk-folio img{ height:37px; width:auto; }
.bk-folio .bk-no{ width:44px; text-align:center; font:700 17px/1 'Tinos',serif; color:var(--brown); margin-bottom:5px; }
.bk-folio::after{ content:""; position:absolute; left:0; right:0; bottom:-7px; height:1.5px; background:var(--line); }

/* ---------- открытие главы ---------- */
.bk-opener .bk-content{ top:246px; height:554px; }
.bk-opener-head{ position:absolute; left:var(--l); width:var(--w); top:78px; text-align:center; }
.bk-chapter-no{ font:500 20px/26px 'Cormorant Garamond',serif; letter-spacing:.34em; padding-left:.34em; text-transform:uppercase; color:var(--muted); }
.bk-divider{ display:flex; justify-content:center; align-items:center; gap:14px; margin:19px 0 0; height:12px; }
.bk-divider i{ display:block; width:68px; height:1.5px; background:#a58a5c; }
.bk-divider img{ height:12px; width:auto; }
.bk-chapter-title{ margin:24px 0 0; font:700 46px/56px 'Cormorant Garamond',serif; color:#4a3220; }

.bk-initial{ float:left; margin:2px 14px 4px 0; display:block; }
.bk-dropcap{
  float:left; font:700 84px/64px 'Cormorant Garamond',serif; color:#8a5a2b; margin:6px 12px 0 0;
  text-shadow:1px 1px 0 rgba(255,255,255,.35), 2px 3px 5px rgba(60,35,10,.35);
}

/* ---------- обложка ---------- */
.bk-cover{ background:#1c1410; }
.bk-cover-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.bk-cover::before{ content:""; position:absolute; left:0; right:0; top:0; height:48%; z-index:1;
  background:linear-gradient(rgba(20,14,8,.72), rgba(20,14,8,.38) 55%, transparent); }
.bk-cover::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:30%; z-index:1;
  background:linear-gradient(transparent, rgba(20,14,8,.7)); }
.bk-cover-head{ position:absolute; z-index:2; left:48px; right:48px; top:62px; text-align:center; color:#f7ead0; }
.bk-cover-kicker{ font:600 15px/1 'Cormorant Garamond',serif; letter-spacing:.32em; padding-left:.32em; text-transform:uppercase; opacity:.85; }
.bk-cover-title{ margin-top:18px; font:700 50px/1.08 'Cormorant Garamond',serif; color:#fbe6b0;
  text-shadow:0 2px 0 rgba(90,55,20,.55), 0 6px 22px rgba(0,0,0,.55); text-wrap:balance; }
.bk-cover-hero{ position:absolute; z-index:2; left:0; right:0; bottom:74px; text-align:center; font:30px/1.1 'Marck Script',cursive; color:#fbe6b0; text-shadow:0 2px 10px rgba(0,0,0,.6); }
.bk-cover-hero small{ display:block; margin-bottom:6px; font:600 13px/1 'Cormorant Garamond',serif; letter-spacing:.28em; text-transform:uppercase; color:#f7ead0; opacity:.85; }
.bk-cover-brand{ position:absolute; z-index:2; left:0; right:0; bottom:34px; text-align:center; font:600 16px/1 'Cormorant Garamond',serif; letter-spacing:.2em; text-transform:uppercase; color:#f7ead0; opacity:.75; }

/* ---------- задняя обложка ---------- */
.bk-back{ background:#1c1410 radial-gradient(ellipse at 50% 30%, #3a2718, #1c1410 70%); color:#f7ead0; text-align:center; }
.bk-back::before{ content:""; position:absolute; inset:26px; border:1.5px solid rgba(201,154,75,.55); border-radius:6px; pointer-events:none; }
.bk-back-arch{ position:absolute; left:111px; right:111px; top:70px; height:430px; border-radius:180px 180px 10px 10px; overflow:hidden;
  border:3px solid #c99a4b; box-shadow:0 0 0 6px rgba(201,154,75,.18), 0 14px 30px rgba(0,0,0,.5); }
.bk-back-arch img{ width:100%; height:100%; object-fit:cover; display:block; }
.bk-back-text{ position:absolute; left:70px; right:70px; top:530px; font:italic 19px/30px 'Tinos',serif; color:#f3e3c2; text-wrap:pretty; }
.bk-back-foot{ position:absolute; left:60px; right:60px; bottom:52px; display:flex; align-items:center; justify-content:center; gap:12px; }
.bk-back-seal{ width:52px; height:52px; object-fit:contain; padding:4px; border-radius:50%; background:#f3e3c2; }
.bk-back-brand{ font:700 22px/1 'Cormorant Garamond',serif; letter-spacing:.14em; text-transform:uppercase; color:#fbe6b0; text-align:left; }
.bk-back-brand small{ display:block; margin-top:5px; font:500 14px/1 'Cormorant Garamond',serif; letter-spacing:.1em; text-transform:none; color:#e8d3a8; }
.bk-back-quote{ position:absolute; left:60px; right:60px; top:58px; font:700 27px/1.2 'Cormorant Garamond',serif; color:#fbe6b0; text-wrap:balance; }
.bk-back-age{ position:absolute; right:0; bottom:10px; padding:5px 10px; border:1px solid rgba(201,154,75,.6); border-radius:4px; font:700 14px/1 'Tinos',serif; color:#e8d3a8; }
/* с QR: арка ниже, подпись и возраст — слева, QR — справа внизу */
.bk-back-has-qr .bk-back-arch{ height:370px; }
.bk-back-has-qr .bk-back-text{ top:466px; }
.bk-back-has-qr .bk-back-foot{ right:auto; left:60px; justify-content:flex-start; }
.bk-back-has-qr .bk-back-age{ position:static; margin-left:4px; }
.bk-back-qr{ position:absolute; right:52px; bottom:44px; width:132px; padding:10px 10px 8px; background:#f3e3c2; border:2px solid #c99a4b; border-radius:10px; text-align:center; display:flex; flex-direction:column-reverse; }
.bk-back-qr .qr-code{ width:108px; height:108px; margin:0 auto; background:#fffaf0; padding:4px; }
.bk-back-qr .qr-code svg{ width:100%; height:100%; display:block; }
.bk-back-qr .qr-text{ margin-bottom:6px; font:700 11px/1.3 'Tinos',serif; letter-spacing:.06em; text-transform:uppercase; color:#3f2816; }
/* с цитатой сверху (как в макете): арка меньше */
.bk-back-has-quote .bk-back-arch{ top:150px; left:146px; right:146px; height:290px; }
.bk-back-has-quote .bk-back-text{ top:462px; font-size:17.5px; line-height:28px; }

/* ---------- последние страницы: «Конец», сертификат, раскраска ---------- */
.bk-finale, .bk-cert{ text-align:center; }
.bk-finale-title{ position:absolute; left:var(--l); width:var(--w); top:230px; font:700 64px/1 'Cormorant Garamond',serif; color:#4a3220; }
.bk-finale .bk-divider{ position:absolute; left:var(--l); width:var(--w); top:318px; }
.bk-finale-text{ position:absolute; left:var(--l); width:var(--w); top:360px; font:italic 21px/34px 'Tinos',serif; color:var(--brown); }
.bk-qr{ position:absolute; left:var(--l); width:var(--w); top:560px; display:flex; align-items:center; gap:18px; text-align:left; }
.bk-qr .qr-code{ width:112px; height:112px; flex:none; padding:8px; background:#fffaf0; border-radius:6px; box-shadow:0 4px 12px rgba(60,40,10,.2); }
.bk-qr .qr-code svg{ width:100%; height:100%; display:block; }
.bk-qr .qr-text{ font:17px/26px 'Tinos',serif; color:var(--brown); }
.bk-locked .bk-finale-text{ font-size:19px; line-height:31px; }
.bk-locked-pay{ position:absolute; left:var(--l); width:var(--w); top:600px; text-align:center; }
.bk-locked-note{ margin-top:14px; font:15px/22px 'Tinos',serif; color:var(--muted); }
.bk-finale-brand{ position:absolute; left:0; right:0; bottom:60px; font:600 18px/1 'Cormorant Garamond',serif; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); }
.bk-cert::before{ content:""; position:absolute; inset:34px; border:3px double #8a5a2b; border-radius:8px; pointer-events:none; }
.bk-cert-kicker{ position:absolute; left:0; right:0; top:120px; font:600 16px/1 'Cormorant Garamond',serif; letter-spacing:.4em; padding-left:.4em; text-transform:uppercase; color:var(--muted); }
.bk-cert-title{ position:absolute; left:0; right:0; top:150px; font:700 46px/1 'Cormorant Garamond',serif; color:#4a3220; }
.bk-cert .bk-divider{ position:absolute; left:0; right:0; top:222px; }
.bk-cert-name{ position:absolute; left:0; right:0; top:280px; font:64px/1.1 'Marck Script',cursive; color:#8a5a2b; }
.bk-cert-text{ position:absolute; left:70px; right:70px; top:400px; font:italic 20px/33px 'Tinos',serif; color:var(--ink); }
.bk-cert-foot{ position:absolute; left:80px; right:80px; bottom:110px; display:flex; justify-content:space-between; font:16px/1.3 'Tinos',serif; color:var(--brown); }
.bk-cert-foot b{ display:block; margin-top:6px; padding-top:6px; border-top:1px solid var(--line); font-weight:400; font-size:13px; color:var(--muted); }
.bk-cert-foot{ align-items:flex-end; }
.bk-cert-sign{ display:flex; align-items:center; gap:12px; text-align:center; }
/* сертификат с портретом героя из обложки */
.bk-cert-portrait{ position:absolute; left:50%; top:214px; width:150px; height:150px; margin-left:-75px; border-radius:50%;
  background-repeat:no-repeat; background-size:160% auto; background-position:50% 30%;
  border:4px solid #c99a4b; box-shadow:0 0 0 6px rgba(201,154,75,.2), 0 8px 18px rgba(60,35,10,.35); }
.bk-cert-has-portrait .bk-cert-kicker{ top:92px; }
.bk-cert-has-portrait .bk-cert-title{ top:120px; }
.bk-cert-has-portrait .bk-divider{ top:382px; }
.bk-cert-has-portrait .bk-cert-name{ top:414px; font-size:58px; }
.bk-cert-has-portrait .bk-cert-text{ top:506px; font-size:19px; line-height:31px; }
.bk-cert-has-portrait .bk-cert-foot{ bottom:84px; }
.bk-cert-seal{ width:74px; height:74px; object-fit:contain; padding:6px; border-radius:50%; border:2px solid rgba(138,90,43,.55); box-shadow:0 0 0 4px rgba(201,154,75,.18); transform:rotate(-6deg); }
.bk-cert-signature{ display:block; font:44px/1 'Marck Script',cursive; color:#6b3f1c; transform:rotate(-4deg); margin-bottom:2px; }
.bk-cert-hand b{ margin-top:4px; }
/* песня по книге: название и слова; припев — курсивом, второй раз — пометкой */
.bk-song{ text-align:center; }
.bk-song-kicker{ position:absolute; left:var(--l); width:var(--w); top:74px; font:600 15px/1 'Cormorant Garamond',serif; letter-spacing:.35em; padding-left:.35em; text-transform:uppercase; color:var(--muted); }
.bk-song-title{ position:absolute; left:var(--l); width:var(--w); top:100px; font:700 34px/1.1 'Cormorant Garamond',serif; color:#4a3220; text-wrap:balance; }
.bk-song .bk-divider{ position:absolute; left:var(--l); width:var(--w); top:152px; }
.bk-song .song-lyrics{ position:absolute; left:var(--l); width:var(--w); top:186px; font:16px/22px 'Tinos',serif; color:var(--ink); }
.bk-song .song-part{ margin-bottom:11px; }
.bk-song .song-chorus, .bk-song .song-repeat{ font-style:italic; color:var(--brown); }
.bk-song .song-label{ font:600 13px/18px 'Cormorant Garamond',serif; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); }
.bk-song-note{ position:absolute; left:var(--l); width:var(--w); bottom:52px; font:italic 15px/20px 'Tinos',serif; color:var(--muted); }
.bk-coloring{ background:#fff !important; }
.bk-coloring-title{ position:absolute; left:0; right:0; top:40px; text-align:center; font:34px/1 'Marck Script',cursive; color:#8a5a2b; }
.bk-coloring-img{ position:absolute; left:34px; top:96px; width:calc(100% - 68px); height:calc(100% - 130px); object-fit:contain; }

/* ---------- иллюстрация на всю страницу ---------- */
.bk-ill{ background:#1c1410; }
.bk-ill-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.bk-plate{ z-index:1;
  position:absolute; left:4.4%; right:4.4%; top:81.3%; height:15%;
  background:linear-gradient(#ecd7a4,#e5cd96); box-shadow:0 6px 18px rgba(0,0,0,.45);
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:30px 34px 12px;
}
.bk-plate::before, .bk-plate::after{ content:""; position:absolute; left:0; right:0; height:11px; background:url(plate-band.png) repeat-x left center; background-size:auto 11px; opacity:.85; }
.bk-plate::before{ top:0; } .bk-plate::after{ bottom:0; transform:scaleY(-1); }
.bk-rosette{ z-index:2; position:absolute; left:50%; top:79.1%; width:11.8%; height:auto; transform:translateX(-50%); filter:drop-shadow(0 4px 6px rgba(0,0,0,.45)); }
.bk-plate-div{ display:flex; align-items:center; gap:10px; margin:0 0 9px; }
.bk-plate-div i{ display:block; width:46px; height:1.5px; background:#9a7c4a; }
.bk-plate-div b{ display:block; width:8px; height:8px; background:#7d5f33; transform:rotate(45deg); }
.bk-plate-cap{ font:700 25px/1.16 'Cormorant Garamond',serif; color:#4f3519; -webkit-text-stroke:.45px #4f3519; text-shadow:0 1px 0 rgba(255,255,255,.4); }

/* ---------- вставки ---------- */
.bk-card{
  margin:10px 4px 24px; padding:20px 24px 18px; text-align:center; position:relative;
  background:linear-gradient(#f3e3b2,#ebd59c); border:1.5px solid #c1a05a; border-radius:4px;
  box-shadow:0 8px 18px -8px rgba(80,55,20,.5); font:italic 700 25px/1.4 'Tinos',serif; color:#4a3220;
}
.bk-card::before{ content:""; position:absolute; left:50%; top:-6px; width:9px; height:9px; margin-left:-4.5px; background:#8a6a35; transform:rotate(45deg); }

.bk-scrap, .bk-note{
  position:relative; margin:8px 6px 22px; padding:16px 22px 15px; background:#f5efdf; border-radius:3px;
  box-shadow:0 8px 16px -8px rgba(70,45,15,.45), 0 0 0 1px rgba(120,90,40,.12);
  font:26px/1.3 'Marck Script','Caveat',cursive; color:#2d3f93; transform:rotate(-1.2deg);
}
.bk-scrap::before, .bk-note::before{ content:""; position:absolute; left:50%; top:-10px; width:84px; height:20px; margin-left:-42px; background:rgba(214,190,120,.65); transform:rotate(-2deg); box-shadow:0 1px 2px rgba(0,0,0,.15); }
.bk-note-lbl{ font:700 13px/1 'Cormorant Garamond',serif; letter-spacing:.24em; text-transform:uppercase; color:var(--muted); margin-bottom:9px; }
.bk-note{ transform:rotate(-.8deg); }

.bk-search{
  display:flex; align-items:center; gap:12px; margin:8px auto 22px; width:fit-content; min-width:230px; padding:12px 26px 12px 18px;
  background:#fff; border-radius:999px; box-shadow:0 5px 14px rgba(60,40,10,.28); font:22px/1.2 Arial,'Helvetica Neue',sans-serif; color:#3b3b3b;
}
.bk-search svg{ width:20px; height:20px; flex:none; opacity:.55; }

.bk-end{ text-align:center; margin-top:26px; font:600 15px/1 'Cormorant Garamond',serif; letter-spacing:.32em; text-transform:uppercase; color:var(--muted); }
.bk-end::before{ content:""; display:block; width:8px; height:8px; margin:0 auto 14px; background:#7d5f33; transform:rotate(45deg); }

/* ---------- посвящение ---------- */
.bk-ded::after{ content:""; position:absolute; inset:17px; border:1.5px solid var(--line); opacity:.55; pointer-events:none; }
.bk-ded-title{ position:absolute; left:0; right:0; top:150px; text-align:center; font:700 35px/44px 'Cormorant Garamond',serif; letter-spacing:.22em; padding-left:.22em; text-transform:uppercase; color:#3f2b1a; }
.bk-ded .bk-divider{ position:absolute; left:0; right:0; top:208px; margin:0; justify-content:center; }
.bk-ded-lead{ position:absolute; left:60px; right:60px; top:232px; text-align:center; font:italic 700 17.5px/1.45 'Tinos',serif; color:#3a2717; }
.bk-ded-body{ position:absolute; left:42px; right:42px; top:296px; font:italic 15.2px/1.4 'Tinos',serif; color:#3a2717; text-align:justify; }
.bk-ded-body p{ margin:0 0 9px; text-indent:2.2em; }
.bk-ded-foot{ position:absolute; left:0; right:0; bottom:66px; text-align:center; }
.bk-ded-date{ font:700 15px/1 'Tinos',serif; letter-spacing:.06em; color:#5a4327; }
.bk-ded-sign{ margin-top:8px; font:700 31px/1.05 'Caveat',cursive; color:#2b1e14; white-space:pre-line; }
.bk-ded-rule{ position:absolute; left:122px; right:122px; bottom:47px; height:1.5px; background:var(--line); }

/* ---------- варианты боковой отделки (book.frame: 'rope' | 'chart' | 'vine') ---------- */
/* «Канат»: рамка из морского каната со всех сторон; текст чуть уже и подальше от каната */
.bk-f-rope{ --l:66px; --w:450px; }
.bk-f-rope .bk-strip{ display:none; }
.bk-f-rope.bk-text::before, .bk-f-rope.bk-ded::before{
  content:""; position:absolute; inset:0; background:url(rope-frame.svg) no-repeat center/100% 100%; pointer-events:none; z-index:3;
}
.bk-f-rope .bk-run-rule{ height:9px; top:114px; background:url(rope-rule.svg) no-repeat center/100% 100%; }
.bk-f-rope .bk-folio::after{ background:none; border-top:1.5px solid var(--line); height:0; opacity:.7; }
.bk-f-rope.bk-ded::after{ display:none; }

/* «Карта»: полоса старинной карты слева — корабли, роза ветров, морской змей, береговая линия «Terra Incognita».
   Роза ветров плавно уходит под текст, поэтому текст начинается чуть правее. */
.bk-f-chart{ --l:112px; --w:436px; }
.bk-f-chart .bk-strip{ width:104px; background:url(strip-map.webp) no-repeat left top; background-size:102.5px 888px; }

/* «Папоротник»: джунгли и дикая природа — вертикальная лоза с папоротником и ключиками слева */
.bk-f-fern{ --l:95px; --w:453px; }
.bk-f-fern .bk-strip{ width:82px; background:url(strip-fern.webp) no-repeat left top; background-size:80px 928px; }

/* «Лоза»: сказка — королевство. Исходный вариант образца (золотая лоза с виноградом, strip.webp) — уже готов,
   поэтому у book.frame:'vine' нет отдельных правил, работают стили по умолчанию выше. */

/* «Листва»: сказка — заколдованный лес, тёмная зелень (отличается от «папоротника» дикой природы — тот золотой) */
.bk-f-leaf{ --l:93px; --w:453px; }
.bk-f-leaf .bk-strip{
  width:80px; background-color:#243a24;
  background-image:
    radial-gradient(ellipse 11px 17px at 50% 20%, rgba(150,200,130,.6) 60%, transparent 63%),
    radial-gradient(ellipse 11px 17px at 18% 55%, rgba(150,200,130,.45) 60%, transparent 63%),
    radial-gradient(ellipse 11px 17px at 72% 80%, rgba(150,200,130,.45) 60%, transparent 63%),
    linear-gradient(90deg, rgba(0,0,0,.14), transparent 14px);
  background-size:40px 60px, 40px 60px, 40px 60px, 14px 100%;
  background-position:0 0, 8px 20px, 24px 4px, 0 0;
  background-repeat:repeat-y, repeat-y, repeat-y, no-repeat;
}

/* «Волна»: сказка — подводное царство, пузыри и волны на глубоком бирюзовом */
.bk-f-wave{ --l:93px; --w:453px; }
.bk-f-wave .bk-strip{
  width:80px; background-color:#0f3d4a;
  background-image:
    radial-gradient(circle at 30% 20%, rgba(255,255,255,.35) 3px, transparent 3.5px),
    radial-gradient(circle at 60% 50%, rgba(255,255,255,.25) 2px, transparent 2.5px),
    radial-gradient(circle at 25% 78%, rgba(255,255,255,.3) 2.5px, transparent 3px),
    repeating-linear-gradient(0deg, transparent 0 26px, rgba(120,200,220,.25) 26px 30px),
    linear-gradient(90deg, rgba(0,0,0,.12), transparent 14px);
  background-size:50px 50px, 50px 50px, 50px 50px, 100% 30px, 14px 100%;
  background-repeat:repeat-y, repeat-y, repeat-y, repeat-y, no-repeat;
}

/* «Лента»: день рождения — полоса из ленты-бантинга слева, чистый CSS без растровых картинок */
.bk-f-ribbon{ --l:93px; --w:453px; }
.bk-f-ribbon .bk-strip{
  width:80px;
  background:
    repeating-linear-gradient(155deg, #E8735C 0 18px, #F2A93C 18px 36px, #4FB0A5 36px 54px) left top / 80px 54px repeat-y,
    linear-gradient(90deg, rgba(0,0,0,.08), transparent 14px);
}

/* ---------- табличка-подпись для морского и поискового оформления: дерево, латунь, «стежки» ---------- */
.bk-f-rope .bk-plate, .bk-f-chart .bk-plate{
  background:linear-gradient(#f3e6bc,#ebdaa6); border-radius:3px; box-shadow:0 8px 22px rgba(0,0,0,.5);
  padding:36px 34px 14px;
}
.bk-f-rope .bk-plate::before, .bk-f-chart .bk-plate::before{
  content:""; position:absolute; left:-2px; right:-2px; top:-12px; height:24px; bottom:auto; transform:none;
  background:url(bead-row.svg) repeat-x left center; background-size:auto 24px; opacity:1;
}
.bk-f-rope .bk-plate::after, .bk-f-chart .bk-plate::after{
  content:""; position:absolute; left:10px; right:10px; top:15px; bottom:9px; height:auto; transform:none;
  border:1.6px dashed rgba(125,94,48,.75); border-radius:9px; background:none; opacity:1;
}
.bk-f-rope .bk-plate-div, .bk-f-chart .bk-plate-div{ display:none; }
.bk-f-rope .bk-plate-cap, .bk-f-chart .bk-plate-cap{ position:relative; z-index:1; }
.bk-medal{ z-index:2; position:absolute; left:50%; top:76.9%; width:13.5%; height:auto; transform:translateX(-50%); filter:drop-shadow(0 4px 6px rgba(0,0,0,.5)); }

/* ---------- колонтитул с номером: ряд украшений по теме путешествия (footer: treasure | wild | sea | birds) ---------- */
.bk-fo{
  display:block; width:var(--w); height:calc(var(--w) * .1273); top:calc(848px - var(--w) * .1203);
  background:no-repeat center/100% 100%;
}
.bk-page .bk-fo::after{ display:none !important; }
.bk-fo-treasure{ background-image:url(footer-treasure.webp); --nx:48%; }   /* экспедиции и поиск сокровищ */
.bk-fo-wild{ background-image:url(footer-wild.webp); --nx:47.6%; }          /* дикая природа, путешествия по суше */
.bk-fo-sea{ background-image:url(footer-sea.png); --nx:47.5%; }            /* морская / картографическая (универсальная) */
/* день рождения — колонтитул из чистого CSS (лента-бантинг), без растровых картинок */
.bk-fo-birthday{
  background-color:#f3e3b2; --nx:50%;
  background-image:
    repeating-linear-gradient(135deg, transparent 0 10px, rgba(232,115,92,.9) 10px 12px, transparent 12px 22px),
    repeating-linear-gradient(45deg, transparent 0 10px, rgba(217,164,65,.9) 10px 12px, transparent 12px 22px);
}
/* сказка — королевство (тон в цвет золотой лозы), лес (тёмная зелень), подводное царство (глубокий бирюзовый) */
.bk-fo-kingdom{
  background-color:#e6cf9c; --nx:50%;
  background-image:repeating-linear-gradient(90deg, transparent 0 24px, rgba(122,90,40,.55) 24px 27px, transparent 27px 51px);
}
.bk-fo-forest{
  background-color:#243a24; --nx:50%;
  background-image:radial-gradient(circle at 50% 50%, rgba(180,220,150,.6) 2px, transparent 2.3px);
  background-size:26px 26px;
}
.bk-fo-forest .bk-no{ color:#f4efe0; }
.bk-fo-underwater{
  background-color:#0f3d4a; --nx:50%;
  background-image:radial-gradient(circle at 50% 50%, rgba(255,255,255,.4) 2px, transparent 2.2px);
  background-size:26px 26px;
}
.bk-fo-underwater .bk-no{ color:#f4efe0; }
.bk-fo .bk-no{
  position:absolute; left:var(--nx); top:42.9%; width:50px; margin:0; transform:translate(-50%,-50%);
  font:700 21px/1 'Tinos',serif; letter-spacing:.04em; color:#4a3323;
}
/* ряд украшений выше птичек — текст заканчивается чуть раньше */
.bk-footer-treasure .bk-content, .bk-footer-wild .bk-content, .bk-footer-sea .bk-content,
.bk-footer-birthday .bk-content,
.bk-footer-kingdom .bk-content, .bk-footer-forest .bk-content, .bk-footer-underwater .bk-content{ height:640px; }

/* ---------- верхний колонтитул и разделитель главы по жанру (значки и линия) ---------- */
.bk-footer-treasure .bk-run img, .bk-footer-wild .bk-run img, .bk-footer-sea .bk-run img{ height:19px; width:auto; opacity:.92; }
.bk-run img.bk-mirror{ transform:scaleX(-1); }
.bk-footer-treasure .bk-divider img, .bk-footer-wild .bk-divider img, .bk-footer-sea .bk-divider img{ height:17px; }
/* экспедиции — сплошная линия, как в нижнем колонтитуле; дикая природа — «тире-точка» */
.bk-footer-treasure .bk-run-rule{ left:var(--l); width:var(--w); height:1.6px; background:#4a3323; opacity:.75; }
.bk-footer-wild .bk-run-rule{
  left:var(--l); width:var(--w); height:1.6px; opacity:.8;
  background:repeating-linear-gradient(90deg,#4a3323 0 11px,transparent 11px 15px,#4a3323 15px 18px,transparent 18px 22px);
}
/* день рождения — пунктир-гирлянда */
.bk-footer-birthday .bk-run-rule{
  left:var(--l); width:var(--w); height:2px; opacity:.85;
  background:repeating-linear-gradient(90deg,#E8735C 0 6px,transparent 6px 12px,#4FB0A5 12px 18px,transparent 18px 24px);
}
/* королевство — тонкая золотая линия; лес — «листовой» пунктир; подводное царство — редкие «пузырьки» */
.bk-footer-kingdom .bk-run-rule{ left:var(--l); width:var(--w); height:1.6px; background:#7a5a28; opacity:.75; }
.bk-footer-forest .bk-run-rule{
  left:var(--l); width:var(--w); height:1.6px; opacity:.8;
  background:repeating-linear-gradient(90deg,#5f9a52 0 7px,transparent 7px 9px,#5f9a52 9px 12px,transparent 12px 20px);
}
.bk-footer-underwater .bk-run-rule{
  left:var(--l); width:var(--w); height:1.6px; opacity:.8;
  background:repeating-linear-gradient(90deg,#5fb8c9 0 3px,transparent 3px 17px);
}

/* ---------- Новый год: два оформления с рамкой по периметру — «Пряничное» (cookies) и «Эльфийское» (elves) ----------
   Рамка и бумага — одна картинка frame-*.jpg (без текста), поэтому боковая полоса и колонтитулы из комплекта не нужны.
   Границы текста подобраны по макету; шапка и номер страницы собираются из отдельных вырезанных значков. */
.bk-f-cookies, .bk-f-elves{ --l:107px; --w:396px; }
.bk-f-cookies.bk-text, .bk-f-cookies.bk-ded{
  --ink:#4b2a15; --brown:#5a3320; --muted:#7a5a3e; --line:#a98a5f;
  background:#f6e4c0 url(frame-cookies.webp) center/100% 100% no-repeat;
}
.bk-f-elves.bk-text, .bk-f-elves.bk-ded{
  --ink:#17352a; --brown:#1f4a32; --muted:#4a7057; --line:#6f9a7e;
  background:#e6f1de url(frame-elves.webp) center/100% 100% no-repeat;
  --l:114px; --w:393px;
}
.bk-f-cookies .bk-strip, .bk-f-elves .bk-strip{ display:none; }
.bk-f-cookies .bk-content{ top:162px; height:529px; }
.bk-f-elves .bk-content{ top:215px; height:487px; }
.bk-f-cookies .bk-content, .bk-f-elves .bk-content{ font-size:21px; line-height:36px; color:var(--ink); }
.bk-f-cookies .bk-content p, .bk-f-elves .bk-content p{ margin:0 0 11px; }
.bk-f-cookies .bk-dropcap{ color:#a8552a; font-size:70px; line-height:56px; }
.bk-f-elves .bk-dropcap{ color:#b23a2c; font-size:70px; line-height:56px; }

/* шапка: значки по бокам от названия, разделитель — готовая картинка */
.bk-f-cookies .bk-run{ left:111px; width:379px; top:60px; height:28px; gap:14px; font-size:26px; }
.bk-f-elves .bk-run{ left:151px; width:309px; top:124px; height:36px; gap:8px; font-size:22px; justify-content:space-between; }
.bk-f-cookies .bk-run img{ height:19px; }
.bk-f-elves .bk-run img{ height:36px; }
.bk-f-cookies .bk-run span, .bk-f-elves .bk-run span{ flex:1; min-width:0; text-align:center; letter-spacing:.02em; }
.bk-f-cookies .bk-run-rule{ left:127px; width:355px; top:99px; height:24px; background:url(divider-cookies.png) no-repeat center/100% 100%; }
.bk-f-elves .bk-run-rule{ left:184px; width:230px; top:157px; height:32px; background:url(divider-elves.png) no-repeat center/100% 100%; }

/* страница открытия главы */
.bk-f-cookies .bk-opener-head{ top:50px; }
.bk-f-elves .bk-opener-head{ top:128px; }
.bk-f-cookies .bk-chapter-title{ font-size:40px; line-height:46px; margin-top:16px; color:var(--brown); }
.bk-f-elves .bk-chapter-title{ font-size:30px; line-height:34px; margin-top:30px; color:var(--brown); }
.bk-divider-img{ height:auto; margin-top:10px; }
.bk-f-cookies .bk-divider-img img{ height:24px; }
.bk-f-elves .bk-divider-img img{ height:32px; }

/* номер страницы — между вырезанными из рамки украшениями внизу */
.bk-fo-cookies, .bk-fo-elves{ left:0; width:582px; height:32px; background:none; }
.bk-fo-cookies{ top:796px; --nx:50.3%; }
.bk-fo-elves{ top:787px; --nx:50.5%; }
.bk-fo-cookies .bk-no, .bk-fo-elves .bk-no{ top:50%; font:700 23px/1 'Tinos',serif; font-variant-numeric:lining-nums; color:var(--ink); }

/* посвящение: тексты внутри рамки, без прежней тонкой каймы и линии */
.bk-f-cookies.bk-ded::after, .bk-f-elves.bk-ded::after, .bk-f-cookies .bk-ded-rule, .bk-f-elves .bk-ded-rule{ display:none; }
.bk-f-cookies .bk-ded-title, .bk-f-elves .bk-ded-title{ left:var(--l); right:auto; width:var(--w); font-size:28px; color:var(--brown); }
.bk-f-cookies.bk-ded .bk-divider, .bk-f-elves.bk-ded .bk-divider{ left:var(--l); right:auto; width:var(--w); }
.bk-f-cookies .bk-ded-lead, .bk-f-cookies .bk-ded-body, .bk-f-elves .bk-ded-lead, .bk-f-elves .bk-ded-body{
  left:calc(var(--l) + 8px); right:calc(582px - var(--l) - var(--w) + 8px); color:var(--ink);
}
.bk-f-cookies .bk-ded-foot, .bk-f-elves .bk-ded-foot{ left:var(--l); right:auto; width:var(--w); bottom:92px; }
.bk-f-elves .bk-ded-title{ top:232px; } .bk-f-elves.bk-ded .bk-divider{ top:282px; }
.bk-f-elves .bk-ded-lead{ top:326px; } .bk-f-elves .bk-ded-body{ top:388px; }
.bk-f-cookies .bk-ded-title{ top:150px; } .bk-f-cookies.bk-ded .bk-divider{ top:200px; }
.bk-f-cookies .bk-ded-lead{ top:246px; } .bk-f-cookies .bk-ded-body{ top:306px; }

/* страница с иллюстрацией: мягкая табличка в цвет рамки, без деревянной розетки */
.bk-f-cookies .bk-rosette, .bk-f-elves .bk-rosette{ display:none; }
.bk-f-cookies .bk-plate, .bk-f-elves .bk-plate{ padding:22px 30px 14px; border-radius:16px; box-shadow:0 8px 20px rgba(0,0,0,.35); }
.bk-f-cookies .bk-plate{ background:#fbecca; border:2px solid #d0a56d; }
.bk-f-elves .bk-plate{ background:#eef6e6; border:2px solid #6f9a7e; }
.bk-f-cookies .bk-plate::before, .bk-f-cookies .bk-plate::after, .bk-f-elves .bk-plate::before, .bk-f-elves .bk-plate::after{ display:none; }
.bk-f-cookies .bk-plate-div, .bk-f-elves .bk-plate-div{ display:none; }
.bk-f-cookies .bk-plate-cap{ color:#5a3320; -webkit-text-stroke:0; } .bk-f-elves .bk-plate-cap{ color:#1f4a32; -webkit-text-stroke:0; }

/* ---------- Путешествие для 5–10 лет: «Пираты и карта сокровищ» (pirates) и «Сафари в джунглях» (jungle) ----------
   Полные иллюстрированные рамки из макетов (frame-*.jpg, без текста). Название главы стоит на баннере рамки
   (волна-лента / деревянная вывеска), номер страницы — на монете и дорожном знаке. Для 11–16 остаётся «Пергамент». */
.bk-f-pirates{ --l:108px; --w:395px; }
.bk-f-jungle{ --l:124px; --w:366px; }
.bk-f-pirates.bk-text, .bk-f-pirates.bk-ded{
  --ink:#3d2412; --brown:#4a2b14; --muted:#7a5a3e; --line:#a98a5f;
  background:#f6e2b8 url(frame-pirates.webp) center/100% 100% no-repeat;
}
.bk-f-jungle.bk-text, .bk-f-jungle.bk-ded{
  --ink:#3f1f14; --brown:#4a2412; --muted:#6b4a32; --line:#8a7a55;
  background:#e8f2d8 url(frame-jungle.webp) center/100% 100% no-repeat;
}
.bk-f-pirates .bk-strip, .bk-f-jungle .bk-strip{ display:none; }
.bk-f-pirates .bk-content{ top:200px; height:517px; }
.bk-f-jungle .bk-content{ top:226px; height:481px; }
.bk-f-pirates .bk-content, .bk-f-jungle .bk-content{ font-size:21px; line-height:36px; color:var(--ink); }
.bk-f-pirates .bk-content p, .bk-f-jungle .bk-content p{ margin:0 0 11px; }
.bk-f-pirates .bk-dropcap{ color:#b5482a; font-size:70px; line-height:56px; }
.bk-f-jungle .bk-dropcap{ color:#2f6b34; font-size:70px; line-height:56px; }

/* название главы на баннере */
.bk-f-pirates .bk-run{ left:149px; width:290px; top:92px; height:34px; font:400 26px/32px 'Lobster',cursive; letter-spacing:0; }
.bk-f-jungle .bk-run{ left:190px; width:222px; top:68px; height:78px; font:800 27px/30px 'Podkova',serif; letter-spacing:0; }
.bk-f-pirates .bk-run span, .bk-f-jungle .bk-run span{ flex:1; min-width:0; text-align:center; text-wrap:balance; color:var(--brown); }
.bk-f-jungle .bk-run span{ white-space:normal; }
.bk-f-pirates.bk-text::after, .bk-f-pirates.bk-ded::after{
  content:""; position:absolute; inset:auto; left:278px; top:121px; width:32px; height:31px; border:0; opacity:1;
  background:url(orn-pirates-skull.png) center/contain no-repeat; pointer-events:none;
}

/* страница открытия главы: под баннером только «Глава N» */
.bk-f-pirates .bk-opener-head{ top:176px; }
.bk-f-jungle .bk-opener-head{ top:190px; }
.bk-f-pirates .bk-opener-head .bk-divider, .bk-f-pirates .bk-chapter-title,
.bk-f-jungle .bk-opener-head .bk-divider, .bk-f-jungle .bk-chapter-title{ display:none; }
.bk-f-pirates .bk-chapter-no, .bk-f-jungle .bk-chapter-no{ font-size:18px; color:var(--muted); }

/* номер страницы — на монете / на дорожном знаке рамки */
.bk-fo-pirates, .bk-fo-jungle{ left:0; width:582px; height:32px; background:none; }
.bk-fo-pirates{ top:793px; --nx:50.8%; }
.bk-fo-jungle{ top:804px; --nx:52%; }
.bk-fo-pirates .bk-no, .bk-fo-jungle .bk-no{ top:50%; font:700 21px/1 'Tinos',serif; font-variant-numeric:lining-nums; }
.bk-fo-pirates .bk-no{ color:#2b1a0c; } .bk-fo-jungle .bk-no{ color:#1c140c; font-size:19px; }

/* посвящение: заголовок на баннере, текст ниже него */
.bk-f-pirates.bk-ded::after{ display:block; }
.bk-f-jungle.bk-ded::after{ display:none; }
.bk-f-pirates .bk-ded-rule, .bk-f-jungle .bk-ded-rule, .bk-f-pirates.bk-ded .bk-divider, .bk-f-jungle.bk-ded .bk-divider{ display:none; }
.bk-f-pirates .bk-ded-title{ left:149px; right:auto; width:290px; top:98px; font-size:20px; letter-spacing:.16em; color:var(--brown); }
.bk-f-jungle .bk-ded-title{ left:190px; right:auto; width:222px; top:96px; font-size:18px; letter-spacing:.12em; color:var(--brown); }
.bk-f-pirates .bk-ded-lead, .bk-f-pirates .bk-ded-body, .bk-f-jungle .bk-ded-lead, .bk-f-jungle .bk-ded-body{
  left:calc(var(--l) + 8px); right:calc(582px - var(--l) - var(--w) + 8px); color:var(--ink);
}
.bk-f-pirates .bk-ded-lead{ top:216px; } .bk-f-pirates .bk-ded-body{ top:276px; }
.bk-f-jungle .bk-ded-lead{ top:240px; } .bk-f-jungle .bk-ded-body{ top:300px; }
.bk-f-pirates .bk-ded-foot, .bk-f-jungle .bk-ded-foot{ left:var(--l); right:auto; width:var(--w); bottom:92px; }

/* страница с иллюстрацией: мягкая табличка в цвет рамки, без деревянной розетки */
.bk-f-pirates .bk-rosette, .bk-f-jungle .bk-rosette{ display:none; }
.bk-f-pirates .bk-plate, .bk-f-jungle .bk-plate{ padding:22px 30px 14px; border-radius:16px; box-shadow:0 8px 20px rgba(0,0,0,.35); }
.bk-f-pirates .bk-plate{ background:#fbecca; border:2px solid #c49a5c; }
.bk-f-jungle .bk-plate{ background:#f0f7e4; border:2px solid #6e9a5a; }
.bk-f-pirates .bk-plate::before, .bk-f-pirates .bk-plate::after, .bk-f-jungle .bk-plate::before, .bk-f-jungle .bk-plate::after{ display:none; }
.bk-f-pirates .bk-plate-div, .bk-f-jungle .bk-plate-div{ display:none; }
.bk-f-pirates .bk-plate-cap{ color:#4a2b14; -webkit-text-stroke:0; } .bk-f-jungle .bk-plate-cap{ color:#4a2412; -webkit-text-stroke:0; }

/* ---------- «срез книги» — только при чтении на экране ---------- */
@media screen{
  .bk-book-view .bk-wrap{ position:relative; }
  .bk-book-view .bk-wrap::before{
    content:""; position:absolute; top:4px; bottom:2px; left:-14px; width:15px; border-radius:3px 0 0 3px;
    background:repeating-linear-gradient(90deg,#eadcb4 0 1.3px,#b7a277 1.3px 2.5px);
    box-shadow:-3px 0 0 #5a3a20,-6px 3px 12px rgba(0,0,0,.55), inset -4px 0 6px rgba(70,45,15,.35);
  }
}

/* ---------- экран и печать ---------- */
@page{ size:154mm 235mm; margin:0; }
@media print{
  .bk-wrap{ width:154mm !important; height:235mm !important; overflow:hidden; break-after:page; page-break-after:always; }
  .bk-wrap:last-child{ break-after:auto; page-break-after:auto; }
  .bk-page{ transform:none !important; box-shadow:none; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
}

/* «Конец»: Героёнок прощается с читателем (добавлено 02.10) */
.bk-finale-hare{ position:absolute; left:50%; top:196px; width:150px; height:auto; transform:translateX(-50%); }
.bk-has-hare .bk-finale-title{ top:118px; font-size:58px; }
.bk-has-hare .bk-finale-text{ top:430px; font-size:19px; line-height:31px; }
.bk-has-hare .bk-qr{ top:580px; }
.bk-locked .bk-finale-hare{ display:none; }
