/* Подключается ПОСЛЕ styles.css — только то, что не покрывают утилиты Tailwind. */

@keyframes jeysetIn {
  from { opacity: 0; transform: translateY(14px) scale(.99); }
  to   { opacity: 1; transform: none; }
}

@keyframes jeysetToast {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: none; }
}

@keyframes fabIn {
  from { opacity: 0; transform: translateY(14px) scale(.96); }
  to   { opacity: 1; transform: none; }
}

.anim-modal { animation: jeysetIn 220ms ease-out; }
.anim-menu  { animation: jeysetIn 180ms ease-out; }
.anim-toast { animation: jeysetToast 200ms ease-out; }
.anim-fab   { animation: fabIn 220ms ease-out; }

/* Плейсхолдеры изображений на этапе демо — заменяются на <picture> с WebP/AVIF */
.ph-image    { background: repeating-linear-gradient(135deg, #EFE7DA 0 12px, #E7DDCD 12px 24px); }
.ph-image-lg { background: repeating-linear-gradient(135deg, #EFE7DA 0 14px, #E7DDCD 14px 28px); }

/* Затемнение hero под текст: усилено на фото (были случаи, когда светлые
   участки фото — свечи, гирлянда — забивали читаемость надзаголовка). */
.hero-scrim {
  background: linear-gradient(to top, rgba(20,14,11,.92) 0%, rgba(20,14,11,.68) 45%, rgba(20,14,11,.48) 100%);
}

/* Тень cookie-бара, прижатого к низу экрана */
.shadow-cookiebar { box-shadow: 0 -6px 20px rgba(36,27,22,.08); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation: none !important;
    transition: none !important;
  }
}

/* Горизонтальная лента без видимой полосы прокрутки (карусель отзывов) */
.no-scrollbar { scrollbar-width: none; }
.no-scrollbar::-webkit-scrollbar { display: none; }

/* Плавная прокрутка к якорям (например, «Отзывы» в шапке → /#reviews) */
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}

/* Тексты из панели (/manager → «Тексты»): чистый HTML без классов (p, h2, h3,
   strong, ul/ol, a). Размер и цвет текста задаёт обёртка в шаблоне
   (class="rich text-[15px] text-muted ..."), здесь — только отступы и акценты.
   Тот же набор правил — в manager/src/index.css (превью в редакторе). */
.rich > * { margin: 0; }
.rich > * + * { margin-top: .625rem; }
.rich > * + h2, .rich > * + h3 { margin-top: 2rem; }
.rich > h2 + *, .rich > h3 + * { margin-top: .75rem; }
.rich h2 { font-family: "PT Serif", Georgia, serif; font-weight: 400; font-size: 22px; line-height: 1.25; color: #241B16; }
.rich h3 { font-size: 17px; font-weight: 700; line-height: 1.35; color: #241B16; }
@media (min-width: 768px) { .rich h2 { font-size: 24px; } }
.rich strong, .rich b { font-weight: 700; color: #241B16; }
.rich ul, .rich ol { padding-left: 1.25rem; }
.rich ul { list-style: disc; }
.rich ol { list-style: decimal; }
.rich li + li { margin-top: .625rem; }
.rich li::marker { color: #9A8E7F; }
.rich code { font-family: ui-monospace, Menlo, monospace; font-size: .875em; }

.rich blockquote { border-left: 3px solid #C97B3D; padding: .25rem 0 .25rem 1rem; color: #241B16; }
.rich hr { border: 0; border-top: 1px solid #E4DACB; margin-top: 1.5rem; margin-bottom: 1.5rem; }
.rich > hr + * { margin-top: 0; }
.rich table { width: 100%; border-collapse: collapse; font-size: .9375em; }
.rich th, .rich td { border: 1px solid #E4DACB; padding: .625rem .875rem; text-align: left; vertical-align: top; }
.rich th { background: #F8F3EC; color: #241B16; font-weight: 700; font-size: .875em; }
.rich td { background: #FFFFFF; }
.rich th > * + *, .rich td > * + * { margin-top: .375rem; }
.rich-table { overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: 12px; }
.rich-table table { min-width: 480px; }
