/* ============================================================
   АКАДЕМИЧЕСКИЙ САЛОН — дизайн-система «Оттиск»
   Университетская пресса: бумага, графит, линейки, отточия,
   сургучный акцент. Глубина — стопкой бумаги, не тенями.
   Движется только то, что печатается, пишется или считается.
   ============================================================ */

:root{
  /* бумага и краска */
  --paper:#F6F1E7;
  --paper-2:#F1EBDD;          /* чуть темнее: подложки, ховеры листов */
  --sheet:#FFFEF9;            /* лист: карточки, формы */
  --ink:#22201B;              /* графит: текст, заголовки, primary-кнопки */
  --ink-soft:#6B665A;         /* выцветшая тушь: вторичный текст (AA 5.1:1) */
  --ink-faint:#857E6C;        /* только декоративное: фолио, глифы */
  --hairline:#D9D2C2;         /* линейки, бордеры, 1px */
  --hairline-strong:#C2B89F;  /* линейки с акцентом, отточия */

  /* акценты */
  --wax:#B23B22;              /* сургуч: CTA, цена, активное. Квота ≤2 на вьюпорт */
  --wax-deep:#8C2D18;
  --wax-soft:rgba(178,59,34,.08);
  --verify:#3D6B50;           /* грифельная зелень: проверено, успех */
  --verify-soft:rgba(61,107,80,.10);
  --mark:#EFE5CC;             /* кремовый маркер: подсветка строк */
  --stamp:#3A4E7A;            /* штемпельная синь: печати, пометки */

  /* форма */
  --r:2px;
  --maxw:1120px;
  --text-col:68ch;

  /* ритм (кратен 8) */
  --s1:8px; --s2:16px; --s3:24px; --s4:40px; --s5:64px;
  --block:clamp(72px, 11vw, 128px);

  /* гарнитуры */
  --serif:"Literata",Georgia,"Times New Roman",serif;
  --sans:"Golos Text",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --mono:"JetBrains Mono","SF Mono",Consolas,monospace;
}

*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  font-family:var(--sans);
  background:var(--paper);
  color:var(--ink);
  font-size:16px;
  line-height:1.6;
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
/* фактура бумаги: едва заметный шум */
body::before{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.028'/%3E%3C/svg%3E");
}
::selection{background:var(--mark);color:var(--ink)}
a{color:inherit;text-decoration:none}
img,svg{max-width:100%}
img{display:block}
button{font-family:inherit;color:inherit}
:focus-visible{outline:2px solid var(--wax);outline-offset:3px;border-radius:var(--r)}

/* ---------- Полоса набора ---------- */
.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 clamp(20px,4.5vw,48px)}
.prose{max-width:var(--text-col)}
.center{text-align:center}

/* ---------- Типографика ---------- */
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;line-height:1.12;letter-spacing:-.01em}
h1{font-variation-settings:"opsz" 56}
.h-display{font-size:clamp(34px,5.2vw,62px);font-weight:340;line-height:1.06;letter-spacing:-.015em}
h2{font-size:clamp(26px,3.4vw,42px);font-weight:360}
h3{font-size:clamp(19px,2vw,23px);font-weight:500}
h4{font-size:17px;font-weight:500}
.lead{font-size:clamp(16px,1.6vw,18.5px);color:var(--ink-soft);line-height:1.62;max-width:52ch}
.petit{font-size:13px;color:var(--ink-soft);line-height:1.6}
.caps{font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;font-weight:500;color:var(--ink-soft)}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.wax{color:var(--wax)}
.verify{color:var(--verify)}
.muted{color:var(--ink-soft)}
em.pen{font-style:italic;font-family:var(--serif);color:inherit}

/* маргиналия: курсивная пометка на полях (desktop) / после текста (mobile) */
.marginalia{font-family:var(--serif);font-style:italic;font-size:14.5px;color:var(--ink-soft);line-height:1.5}

/* ---------- Линейки ---------- */
.rule{border:0;height:1px;background:var(--hairline)}
.rule-strong{background:var(--hairline-strong)}
.has-js .rule.draw{transform:scaleX(0);transform-origin:0 50%;transition:transform .7s cubic-bezier(.22,1,.36,1)}
.has-js .rule.draw.in{transform:scaleX(1)}

/* ---------- Шмуцтитул секции ---------- */
.chapter{padding-top:var(--block)}
.chapter .ch-rule{display:flex;align-items:center;gap:16px;margin-bottom:clamp(28px,4vw,44px)}
.chapter .ch-rule::before,.chapter .ch-rule::after{content:"";height:1px;background:var(--hairline);flex:1}
.chapter .ch-rule::before{flex:0 0 clamp(20px,4vw,48px)}
.chapter .ch-no{font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--ink-soft);white-space:nowrap;font-variant-numeric:tabular-nums}
.chapter h2{margin-bottom:clamp(20px,3vw,32px)}

/* ---------- Кнопки ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--sans);font-weight:500;font-size:15px;letter-spacing:.015em;
  padding:14px 26px;min-height:48px;border-radius:var(--r);border:1px solid transparent;
  cursor:pointer;white-space:nowrap;
  transition:background .15s,color .15s,border-color .15s,box-shadow .15s;
}
.btn-ink{background:var(--ink);color:var(--paper)}
.btn-ink:hover{background:#33302a}
.btn-wax{background:var(--wax);color:#FFFEF9}
.btn-wax:hover{background:var(--wax-deep)}
.btn-ink:active,.btn-wax:active{box-shadow:inset 0 2px 3px rgba(0,0,0,.35)}
.btn-line{background:transparent;border-color:var(--hairline-strong);color:var(--ink)}
.btn-line:hover{background:var(--mark);border-color:var(--ink-soft)}
.btn-block{width:100%}
.btn-lg{padding:17px 32px;font-size:16px}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.5;pointer-events:none}
.btn .ar{font-family:var(--serif);transition:transform .15s}
.btn:hover .ar{transform:translateX(3px)}
.btn.is-loading{opacity:.8;pointer-events:none}
.spin{width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;display:inline-block;animation:spin .7s linear infinite}
.btn-line .spin{border-color:var(--hairline);border-top-color:var(--ink)}
@keyframes spin{to{transform:rotate(360deg)}}

/* текстовая ссылка с подчёркиванием-линейкой */
.link{border-bottom:1px solid var(--hairline-strong);transition:border-color .15s,color .15s;padding-bottom:1px}
.link:hover{color:var(--wax);border-color:var(--wax)}

/* ---------- Листы (карточки) ---------- */
.sheet{background:var(--sheet);border:1px solid var(--hairline);border-radius:var(--r)}
.sheet-pad{padding:clamp(20px,3vw,32px)}
.stacked{position:relative}
.stacked::after{
  content:"";position:absolute;inset:0;z-index:-1;border-radius:var(--r);
  background:var(--paper-2);border:1px solid var(--hairline);
  transform:translate(6px,6px);
}

/* ---------- Строка с отточием (ДНК сайта) ---------- */
.dotrow{
  display:flex;align-items:baseline;gap:12px;
  padding:13px 6px;margin:0 -6px;border-radius:var(--r);
  transition:background .12s;
}
.dotrow .dots{
  flex:1;min-width:24px;height:.9em;
  background-image:radial-gradient(circle,var(--hairline-strong) 1px,transparent 1.4px);
  background-size:9px 3px;background-repeat:repeat-x;background-position:0 100%;
}
.dotrow .dr-val{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:.95em;white-space:nowrap}
a.dotrow:hover,.dotrow.hl{background:var(--mark)}
a.dotrow .dr-val{transition:color .12s}
a.dotrow:hover .dr-val{color:var(--wax)}

/* ---------- Смета (ledger) ---------- */
.ledger{font-size:14.5px}
.ledger .lg-row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:9px 0;border-bottom:1px solid var(--hairline)}
.ledger .lg-row span:first-child{color:var(--ink-soft)}
.ledger .lg-row .num{font-size:14px}
.ledger .lg-total{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding-top:14px;margin-top:2px;border-top:3px double var(--ink)}
.ledger .lg-total b{font-weight:500}
.price-xl{font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:400;font-size:clamp(30px,4vw,44px);letter-spacing:-.03em;line-height:1;color:var(--wax);white-space:nowrap}
.price-xl small{font-size:.5em;letter-spacing:0;color:inherit}

/* ---------- Шкала этапной оплаты ---------- */
.paysteps{display:grid;grid-template-columns:repeat(var(--pay-n,3),1fr);gap:0;position:relative;counter-reset:ps}
.paysteps::before{content:"";position:absolute;top:5px;left:0;right:0;height:1px;background:var(--hairline-strong)}
.has-js .paysteps::before{transform:scaleX(0);transform-origin:0 50%;transition:transform 1s cubic-bezier(.22,1,.36,1) .15s}
.has-js .paysteps.in::before{transform:scaleX(1)}
.pstep{padding:0 18px 0 0;position:relative}
.pstep::before{
  content:"";display:block;width:11px;height:11px;border-radius:50%;
  background:var(--paper);border:1px solid var(--ink);margin-bottom:14px;position:relative;z-index:1;
}
.pstep.paid::before{background:var(--verify);border-color:var(--verify)}
.pstep .ps-share{font-family:var(--mono);font-size:20px;font-variant-numeric:tabular-nums;letter-spacing:-.02em;margin-bottom:4px}
.pstep b{display:block;font-size:14.5px;font-weight:500;margin-bottom:3px}
.pstep small{display:block;font-size:13px;color:var(--ink-soft);line-height:1.5}

/* ---------- Лист отчёта о проверках ---------- */
.report-sheet{position:relative;overflow:hidden}
.report-sheet .rp-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--hairline);margin-bottom:14px}
.report-sheet .rp-title{font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.report-sheet .rp-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:8px 0;font-size:14px;border-bottom:1px solid var(--hairline)}
.report-sheet .rp-row:last-of-type{border-bottom:0}
.report-sheet .rp-row .num{font-size:15px}
.report-sheet .rp-ok{color:var(--verify)}

/* ---------- Печать-штемпель ---------- */
.seal{display:block;mix-blend-mode:multiply;opacity:.92;transform:rotate(-8deg)}
.has-js .seal.press{opacity:0;transform:rotate(-8deg) scale(1.15);transition:opacity .25s ease-out,transform .25s ease-out}
.has-js .seal.press.in{opacity:.92;transform:rotate(-8deg) scale(1)}
.seal--wax{color:var(--wax)}
.seal--verify{color:var(--verify)}
.seal--stamp{color:var(--stamp)}

/* ---------- Сноски доверия ---------- */
.fnmark{color:var(--wax);font-family:var(--serif)}
.footnotes{border-top:1px solid var(--hairline);padding-top:14px;margin-top:clamp(28px,5vw,48px);display:flex;flex-direction:column;gap:6px}
.footnotes p{font-size:13px;color:var(--ink-soft);line-height:1.55}
.footnotes .fnmark{margin-right:6px}

/* ---------- Штампик-статус ---------- */
.tag{
  display:inline-flex;align-items:center;gap:7px;
  font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;
  padding:5px 10px;border:1px solid currentColor;border-radius:var(--r);line-height:1.2;
}
.tag-verify{color:var(--verify);background:var(--verify-soft)}
.tag-wax{color:var(--wax);background:var(--wax-soft)}
.tag-ink{color:var(--ink-soft);background:transparent}
.tag-stamp{color:var(--stamp);background:rgba(58,78,122,.08)}

/* ---------- Формы: бланк издательства ---------- */
.field{margin-bottom:var(--s3)}
.field label{display:block;font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:500;color:var(--ink-soft);margin-bottom:9px}
input[type=text],input[type=email],input[type=tel],select,textarea{
  width:100%;padding:13px 14px;font-family:var(--sans);font-size:15.5px;color:var(--ink);
  background:var(--sheet);border:1px solid var(--hairline);border-radius:var(--r);
  appearance:none;transition:border-color .15s,box-shadow .15s;
}
select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7'%3E%3Cpath d='M1 1l4.5 4.5L10 1' stroke='%236B665A' stroke-width='1.4' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;padding-right:38px;cursor:pointer;
}
input:focus,select:focus,textarea:focus{
  outline:none;border-color:var(--hairline-strong);
  box-shadow:inset 0 -2px 0 var(--wax);
}
input.invalid,textarea.invalid{border-color:var(--wax);box-shadow:inset 0 -2px 0 var(--wax)}
.fhint{font-size:12.5px;color:var(--wax);margin-top:6px;display:none}
.fhint.show{display:block}
textarea{resize:vertical;min-height:120px;line-height:1.55}

/* сегментированный выбор */
.seg{display:flex;gap:8px;flex-wrap:wrap}
.seg button,.seg .seg-item{
  flex:1;min-width:fit-content;padding:12px 14px;min-height:46px;
  border:1px solid var(--hairline);background:var(--sheet);border-radius:var(--r);
  font-size:14px;font-weight:400;color:var(--ink-soft);cursor:pointer;
  transition:border-color .12s,background .12s,color .12s;text-align:center;
}
.seg button:hover{border-color:var(--hairline-strong)}
.seg button.active,.seg .seg-item.active{border-color:var(--ink);color:var(--ink);background:var(--mark);font-weight:500}

/* опции-строки (конфигуратор): радио-строка каталога */
.optrow{
  display:flex;align-items:baseline;gap:12px;width:100%;text-align:left;
  padding:14px 12px;border:1px solid var(--hairline);border-radius:var(--r);
  background:var(--sheet);cursor:pointer;transition:border-color .12s,background .12s;
  font-size:15px;flex-wrap:wrap;
}
.optrow:hover{border-color:var(--hairline-strong)}
.optrow[aria-checked="true"],.optrow.active{border-color:var(--ink);background:var(--mark)}
.optrow .dots{flex:1;min-width:16px;height:.9em;background-image:radial-gradient(circle,var(--hairline-strong) 1px,transparent 1.4px);background-size:9px 3px;background-repeat:repeat-x;background-position:0 100%}
.optrow .o-val{font-family:var(--mono);font-size:13.5px;font-variant-numeric:tabular-nums;color:var(--ink-soft);white-space:nowrap}
.optrow[aria-checked="true"] .o-val,.optrow.active .o-val{color:var(--ink)}
.optrow small{display:block;flex-basis:100%;font-size:12.5px;color:var(--ink-soft);margin-top:2px}

/* Колонтитул, «Оглавление», подвал-колофон, переключатель темы,
   тосты и лист связи живут в общем слое assets/css/chrome.css */

/* ---------- FAQ ---------- */
.faq-item{border-bottom:1px solid var(--hairline)}
.faq-item summary{
  list-style:none;cursor:pointer;padding:18px 44px 18px 0;position:relative;
  font-size:16.5px;font-weight:500;line-height:1.4;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{
  content:"+";position:absolute;right:4px;top:50%;transform:translateY(-50%);
  font-family:var(--serif);font-size:24px;font-weight:300;color:var(--wax);transition:transform .2s;
}
.faq-item[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faq-item summary:hover{color:var(--wax)}
.faq-item p{padding:0 36px 20px 0;color:var(--ink-soft);font-size:15px;line-height:1.65;max-width:68ch}

/* ---------- Reveal ---------- */
.has-js .reveal{opacity:0;transform:translateY(14px);transition:opacity .6s cubic-bezier(.22,1,.36,1),transform .6s cubic-bezier(.22,1,.36,1)}
.has-js .reveal.in{opacity:1;transform:none}
.has-js .reveal.d1{transition-delay:.07s}
.has-js .reveal.d2{transition-delay:.14s}
.has-js .reveal.d3{transition-delay:.21s}

/* ---------- Визуально скрытое (для скринридеров) ---------- */
.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---------- Сетки-помощники ---------- */
.grid{display:grid;gap:var(--s3)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,5vw,64px);align-items:start}
.mt-s{margin-top:14px}.mt-m{margin-top:28px}.mt-l{margin-top:48px}

/* ---------- Якоря под фикс-шапкой ---------- */
section[id],main[id],[id].chapter{scroll-margin-top:76px}

/* ---------- Reduced motion ---------- */
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .has-js .reveal,.has-js .rule.draw,.has-js .seal.press{opacity:1;transform:none}
  .has-js .seal.press{transform:rotate(-8deg)}
  .has-js .paysteps::before{transform:scaleX(1)}
  ::view-transition-old(root),::view-transition-new(root){animation:none!important}
}

/* ---------- Печать ---------- */
@media print{
  body::before{display:none!important}
  body{background:#fff}
  .sheet,.stacked::after{box-shadow:none!important}
  a{text-decoration:underline}
}

/* ============================================================
   ТЁМНАЯ ТЕМА «Оттиск ночью» — тёплый графит вместо бумаги.
   Только переопределение токенов; вся вёрстка работает как есть.
   ============================================================ */
:root[data-theme="dark"]{
  --paper:#14120E;
  --paper-2:#1B1813;
  --sheet:#1F1B15;
  --ink:#ECE6D7;
  --ink-soft:#ABA595;        /* AA на тёмном */
  --ink-faint:#847E6E;
  --hairline:#34302A;
  --hairline-strong:#4C483E;
  --wax:#E06B4C;             /* сургуч ярче для контраста на тёмном */
  --wax-deep:#C8563A;
  --wax-soft:rgba(224,107,76,.14);
  --verify:#74BA90;
  --verify-soft:rgba(116,186,144,.14);
  --mark:#2C2A1D;
  --stamp:#8098CE;
}
/* тёмная: стрелка селекта светлее, ховер чернильной кнопки */
:root[data-theme="dark"] select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7'%3E%3Cpath d='M1 1l4.5 4.5L10 1' stroke='%23ABA595' stroke-width='1.4' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
}
:root[data-theme="dark"] .btn-ink:hover{background:#3a352c}
:root[data-theme="dark"] body::before{opacity:.5}
:root[data-theme="dark"] .seal{mix-blend-mode:screen}

/* ---------- Тизер отзывов (главная) ---------- */
.rev-teaser{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:start}
.rev-teaser .rt-shot{display:block;border:1px solid var(--hairline);border-radius:var(--r);background:var(--sheet);overflow:hidden;max-height:300px;transition:border-color .15s,box-shadow .15s}
.rev-teaser .rt-shot:hover{border-color:var(--hairline-strong);box-shadow:4px 4px 0 rgba(34,32,27,.06)}
.rev-teaser .rt-shot img{width:100%;height:auto;display:block}
@media(max-width:880px){.rev-teaser{grid-template-columns:1fr 1fr}.rev-teaser .rt-shot:nth-child(3){display:none}}

/* ---------- Правовые документы ---------- */
.doc-wrap{padding-top:calc(56px + clamp(28px,5vw,56px));padding-bottom:var(--block)}
.doc-crumb{font-family:var(--mono);font-size:12px;letter-spacing:.08em;color:var(--ink-soft);margin-bottom:22px}
.doc-crumb a{border-bottom:1px solid var(--hairline-strong);padding-bottom:1px}
.doc-crumb a:hover{color:var(--wax);border-color:var(--wax)}
.doc{max-width:74ch}
.doc h1{font-size:clamp(28px,4vw,40px);margin-bottom:10px;line-height:1.1}
.doc .doc-subtitle{font-size:clamp(16px,1.6vw,18px);color:var(--ink-soft);margin-bottom:6px}
.doc .doc-meta{font-family:var(--mono);font-size:12.5px;letter-spacing:.06em;color:var(--ink-faint);padding-bottom:22px;margin-bottom:26px;border-bottom:3px double var(--ink)}
.doc h2{font-size:clamp(19px,2.2vw,25px);font-weight:500;margin:34px 0 12px;padding-top:8px}
.doc h3{font-size:17px;font-weight:500;margin:22px 0 8px}
.doc p{margin-bottom:12px;line-height:1.68;color:var(--ink)}
.doc ul,.doc ol{margin:0 0 14px 22px}
.doc li{margin-bottom:7px;line-height:1.62;padding-left:4px}
.doc strong,.doc b{font-weight:600}
.doc a{color:var(--wax);border-bottom:1px solid var(--wax-soft);transition:border-color .15s}
.doc a:hover{border-color:var(--wax)}
.doc table{width:100%;border-collapse:collapse;margin:12px 0 18px;font-size:14.5px}
.doc th,.doc td{text-align:left;padding:10px 12px;border:1px solid var(--hairline);vertical-align:top}
.doc th{background:var(--paper-2);font-weight:500}
.doc .doc-note,.doc blockquote{background:var(--paper-2);border-left:3px solid var(--wax);padding:14px 16px;margin:16px 0;border-radius:var(--r);font-size:14.5px;color:var(--ink-soft)}
.doc-back{margin-top:40px;padding-top:20px;border-top:1px solid var(--hairline)}

/* ---------- Responsive ---------- */
@media(max-width:880px){
  .split{grid-template-columns:1fr}
  .grid-2,.grid-3{grid-template-columns:1fr}
  .paysteps{grid-template-columns:1fr;gap:18px}
  .paysteps::before{display:none}
  .pstep{display:grid;grid-template-columns:auto auto 1fr;align-items:baseline;gap:4px 14px;padding:0}
  .pstep::before{margin-bottom:0;align-self:center}
  .pstep .ps-share{grid-column:2}
  .pstep b{grid-column:3}
  .pstep small{grid-column:3}
}
@media(max-width:540px){
  .chapter{padding-top:56px}
}
