/* Базовое публичное оформление Content Blocks, отдельно от административного редактора. */
.page-content-container { margin: 28px 0; padding: 28px; background: #fff; border: 1px solid #e2e8f0; border-radius: 12px; }
.content-blocks { line-height: 1.6; overflow-wrap: anywhere; }
.content-blocks > * { margin: 24px 0; }
/* Переносы в HTML не создают пустые строки поверх отступов самих абзацев. */
.content-blocks__paragraph { white-space: normal; margin: 12px 0; }
.content-blocks__paragraph p { margin: 0 0 12px; }
.content-blocks__paragraph > :last-child { margin-bottom: 0; }
.content-blocks > :first-child { margin-top: 0; }
.content-blocks > :last-child { margin-bottom: 0; }
.content-blocks__accordion-text { white-space: pre-line; }
.content-blocks__heading { line-height: 1.3; }
.content-blocks__image img { display: block; max-width: 100%; height: auto; border-radius: 8px; }
.content-blocks__image figcaption { margin-top: 8px; color: #667788; font-size: 14px; }
.content-blocks__gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr)); gap: 12px; }
.content-blocks__gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 8px; }
.content-blocks__table-wrap { overflow-x: auto; }
.content-blocks__table { width: 100%; border-collapse: collapse; }
.content-blocks__table th, .content-blocks__table td { border: 1px solid #dce2e9; padding: 12px; text-align: left; vertical-align: top; white-space: pre-line; }
.content-blocks__table th { background: #f1f5f9; }
.content-blocks__accordion details { border-bottom: 1px solid #dce2e9; padding: 14px 0; }
.content-blocks__accordion summary { cursor: pointer; font-weight: 600; }
.content-blocks__accordion-text { padding-top: 12px; }
.content-blocks__excursion { max-width: 380px; }
.content-blocks__excursion-carousel { display: flex; gap: 20px; overflow-x: auto; padding-bottom: 12px; scroll-snap-type: x proximity; }
.content-blocks__excursion-slide { flex: 0 0 min(320px, 85%); min-width: 0; scroll-snap-align: start; }
/* Контейнер остаётся удобным на узком экране; форматированный текст не растягивает страницу. */
.content-blocks__paragraph img { max-width: 100%; height: auto; }
.content-blocks__paragraph pre { overflow-x: auto; white-space: pre-wrap; }
@media (max-width: 600px) { .page-content-container { padding: 18px; } }

/* Четыре вида списков: шаги, маркеры, преимущества и ограничения. */
.content-blocks .content-blocks__list { list-style: none; padding: 0; counter-reset: content-step; }
.content-blocks__list > li { position: relative; min-height: 36px; margin: 12px 0; padding: 5px 0 5px 52px; white-space: pre-line; }
.content-blocks__list--ordered > li::before { counter-increment: content-step; content: counter(content-step); }
.content-blocks__list--ordered > li::before, .content-blocks__list-icon { position: absolute; left: 0; top: 0; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; background: #e6f3ff; color: #007acc; font-weight: 700; line-height: 1; }
.content-blocks__list--unordered > li::before { content: ''; position: absolute; left: 13px; top: 17px; width: 8px; height: 8px; border-radius: 50%; background: #007acc; }
.content-blocks__list--positive .content-blocks__list-icon { background: #e8f6ed; color: #278247; }
.content-blocks__list--negative .content-blocks__list-icon { background: #fff0f0; color: #c03939; font-size: 24px; }

/* Общий блок вопросов и ответов для страниц с контентом Page Builder. */
.content-blocks__faq-item { padding: 16px; border: 1px solid #dce8f3; border-radius: 8px; background: #f7fbff; }
.content-blocks__faq-item + .content-blocks__faq-item { margin-top: 12px; }
.content-blocks__faq-question { margin: 0; font-weight: 600; color: #146694; white-space: pre-line; }
.content-blocks__faq-answer { margin: 8px 0 0; white-space: pre-line; }
