/* Общая механика для всех вариантов. Цвета задаёт каждый вариант через переменные:
   --accent, --cta-bg, --cta-fg, --bar-bg, --bar-fg, --focus */
*,*::before,*::after{box-sizing:border-box;font-feature-settings:"lnum" 1!important}
/* «lnum» с !important: сокращённое свойство font: у элементов сбрасывает унаследованное значение, а у Cormorant/EB Garamond цифры по умолчанию «старинные» */
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;font-feature-settings:"lnum" 1}
body{margin:0;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
h1,h2,h3{text-wrap:balance}
p{text-wrap:pretty}
a{color:inherit}
button{font:inherit;color:inherit;cursor:pointer}
:focus-visible{outline:2px solid var(--focus,var(--accent,#c9a45c));outline-offset:3px;border-radius:4px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
[id]{scroll-margin-top:84px}

/* появление при прокрутке */
/* прячем блоки только если скрипты работают (класс js ставится в <head>) — без JS текст виден сразу */
.js .rv{opacity:0;transform:translateY(22px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--d,0) * 90ms)}
.js .rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}*{animation-duration:.001ms!important;animation-iteration-count:1!important}}

/* аккордеоны: оглавление и FAQ */
.toc-head,.faq-q{list-style:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
.toc-head::-webkit-details-marker,.faq-q::-webkit-details-marker{display:none}
.toc-i,.faq-i{position:relative;flex:none;width:18px;height:18px}
.toc-i::before,.toc-i::after,.faq-i::before,.faq-i::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1.5px;background:currentColor;transform:translate(-50%,-50%);transition:transform .3s}
.toc-i::after,.faq-i::after{transform:translate(-50%,-50%) rotate(90deg)}
details[open]>summary .toc-i::after,details[open]>summary .faq-i::after{transform:translate(-50%,-50%) rotate(0)}
details[open]>.toc-body,details[open]>.faq-a{animation:ey-open .45s cubic-bezier(.2,.7,.2,1)}
@keyframes ey-open{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* кнопка копирования */
[data-copy]{position:relative}
[data-copy] .cp-done{display:none}
[data-copy].copied .cp-idle{display:none}
[data-copy].copied .cp-done{display:inline}

/* всплывающее сообщение */
.ey-toast{position:fixed;left:50%;bottom:calc(92px + env(safe-area-inset-bottom));transform:translate(-50%,20px);opacity:0;pointer-events:none;z-index:1000;
  background:var(--bar-bg,#111);color:var(--bar-fg,#fff);padding:12px 18px;border-radius:999px;font-size:14px;box-shadow:0 10px 30px rgba(0,0,0,.3);transition:.3s}
.ey-toast.show{opacity:1;transform:translate(-50%,0)}

/* липкая кнопка покупки — только на телефоне */
.ey-sticky{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:900;display:none;align-items:center;justify-content:space-between;gap:12px;
  padding:10px 10px 10px 18px;border-radius:18px;background:var(--bar-bg,#111);color:var(--bar-fg,#fff);box-shadow:0 14px 40px rgba(0,0,0,.35);
  transform:translateY(140%);transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.ey-sticky.show{transform:none}
.ey-sticky-p{display:flex;flex-direction:column;line-height:1.15}
.ey-sticky-p b{font-size:17px}
.ey-sticky-p s{font-size:12px;opacity:.6}
.ey-sticky a{flex:none;min-height:48px;display:inline-flex;align-items:center;padding:0 20px;border-radius:12px;background:var(--bar-cta-bg,var(--cta-bg,#c9a45c));color:var(--bar-cta-fg,var(--cta-fg,#111));font-weight:700;text-decoration:none;font-size:15px}
@media (max-width:900px){.ey-sticky{display:flex}}

/* метка шаблона в отзывах */
.sample-tag{display:inline-block;font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:3px 8px;border-radius:999px;border:1px dashed currentColor;opacity:.7}
