/*
 * LS PANEL — базовые стили темы-стартера.
 * При интеграции вёрстки этот файл заменяется собранным main.css (см. themes/assets/README.md).
 * Здесь только минимум, чтобы чистая установка выглядела опрятно.
 */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; font-size: 16px; line-height: 1.5; color: #1d1d1f; background: #fff; }
img { max-width: 100%; height: auto; }
a { color: #0b5cad; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.wrapper { display: flex; flex-direction: column; min-height: 100vh; }
.main { flex: 1; }
.container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 16px; }
.section { padding: 40px 0; }
.section__title { margin: 0 0 24px; font-size: 32px; line-height: 1.2; }
.content > :first-child { margin-top: 0; }

.btn { display: inline-flex; align-items: center; justify-content: center; padding: 10px 20px; border: 0; border-radius: 6px; font: inherit; color: #fff; background: #0b5cad; text-decoration: none; cursor: pointer; }
.btn:hover { background: #094a8b; }
.btn[disabled] { opacity: .6; cursor: default; }

/* Шапка */
.header { border-bottom: 1px solid #e5e5e5; }
.header__inner { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; min-height: 72px; }
.header__logo img { display: block; max-height: 48px; width: auto; }
.nav__list { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 0; padding: 0; list-style: none; }
.nav__link { color: inherit; text-decoration: none; }
.nav__link:hover, .nav__link.is-active { color: #0b5cad; }
.header__nav { margin-right: auto; }
.lang { display: flex; gap: 8px; margin: 0; padding: 0; list-style: none; }
.lang__link { color: inherit; text-decoration: none; }
.lang__link.is-active { font-weight: 700; }
.search-form { display: flex; gap: 8px; }
.search-form__input { min-width: 0; padding: 8px 12px; border: 1px solid #ccc; border-radius: 6px; font: inherit; }
.search-form--page { margin-bottom: 24px; max-width: 600px; }
.search-form--page .search-form__input { flex: 1; }
.header__burger { display: none; width: 40px; height: 40px; border: 0; background: none; cursor: pointer; }
.header__burger-line, .header__burger-line::before, .header__burger-line::after { display: block; width: 24px; height: 2px; margin: 0 auto; background: currentColor; content: ""; position: relative; }
.header__burger-line::before { position: absolute; top: -7px; }
.header__burger-line::after { position: absolute; top: 7px; }

@media (max-width: 768px) {
    .header__burger { display: block; margin-left: auto; }
    .header__nav, .header__search { display: none; width: 100%; }
    .header.is-open .header__nav, .header.is-open .header__search { display: block; }
    .header.is-open .nav__list { flex-direction: column; }
}

/* Подвал */
.footer { padding: 32px 0; background: #f5f5f7; font-size: 14px; }
.footer__inner { display: grid; gap: 16px; }
.footer__contacts { display: flex; flex-wrap: wrap; gap: 8px 24px; }
.footer__contacts address { font-style: normal; }
.footer__bottom { display: flex; flex-wrap: wrap; gap: 8px 24px; color: #6e6e73; }
.footer__bottom p { margin: 0; }
.socials { display: flex; gap: 12px; margin: 0; padding: 0; list-style: none; }

/* Крошки, пагинация */
.breadcrumbs__list { display: flex; flex-wrap: wrap; gap: 4px 8px; margin: 0 0 16px; padding: 0; list-style: none; font-size: 14px; color: #6e6e73; }
.breadcrumbs__item + .breadcrumbs__item::before { content: "/"; margin-right: 8px; }
.pagination { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 32px; }
.pagination__link { min-width: 36px; padding: 6px 10px; border: 1px solid #ddd; border-radius: 6px; text-align: center; text-decoration: none; color: inherit; }
.pagination__link.is-active { color: #fff; background: #0b5cad; border-color: #0b5cad; }

/* Карточки */
.cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 24px; }
.card { display: flex; flex-direction: column; border: 1px solid #e5e5e5; border-radius: 8px; overflow: hidden; }
.card__image img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.card__body { padding: 16px; }
.card__date, .article__date { font-size: 14px; color: #6e6e73; }
.card__title { margin: 4px 0 8px; font-size: 18px; }
.card__title a { color: inherit; text-decoration: none; }
.article__image { display: block; margin: 16px 0; border-radius: 8px; }
.article__share { display: flex; gap: 12px; margin-top: 32px; }

/* Слайдер */
.slider__track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; }
.slider__slide { position: relative; flex: 0 0 100%; scroll-snap-align: start; }
.slider__image { display: block; width: 100%; max-height: 560px; object-fit: cover; }
.slider__caption { position: absolute; left: 0; right: 0; bottom: 32px; color: #fff; text-shadow: 0 1px 4px rgba(0,0,0,.5); }
.page-banner img { display: block; width: 100%; margin-bottom: 24px; border-radius: 8px; }

/* Формы */
.feedback { max-width: 640px; }
.form { display: grid; gap: 16px; position: relative; }
.form__field { display: grid; gap: 6px; margin: 0; border: 0; padding: 0; }
.form__label { font-weight: 500; }
.form__input { width: 100%; padding: 10px 12px; border: 1px solid #ccc; border-radius: 6px; font: inherit; }
.form__input.is-invalid { border-color: #d33; }
.form__textarea { resize: vertical; }
.form__check { display: flex; gap: 8px; align-items: flex-start; }
.form__hint { color: #6e6e73; }
.form__message:empty { display: none; }
.form__message { padding: 10px 12px; border-radius: 6px; background: #eef6ee; }
.form__message.is-error { background: #fdecec; }

/* 404 */
.error-page__code { margin: 0; font-size: 96px; font-weight: 700; line-height: 1; color: #d2d2d7; }
