/* =========================================================================
   SPIVMIR — служебные страницы: контакты, лицензии, карта сайта,
   юридические страницы, 404 (компонент 1.14/1.15). Поиска на сайте нет.
   Классы: .page-contacts, .page-licenses, .page-sitemap, .page-legal,
   .page-404, .lightbox.
   Брейкпоинты темы: 1199 / 1023 / 767.
   ========================================================================= */

/* --- 1. Общая обёртка служебной страницы --------------------------------- */

/* Служебные страницы используют тот же каркас, что и page.php компонента
   контента: main.main (белый фон) → .container.main__inner (940 px) →
   баннер .masthead → .content (padding 0 30px). Здесь только частные правила. */

.page-contacts__body,
.page-legal__body,
.page-licenses__body,
.page-sitemap__body,
.page-404__body {
	padding-bottom: 10px;
}

/* Перекрытия цвета кнопок внутри .content больше не нужны: content.css
   исключает .btn/.button из правила «ссылки контента зелёные» (интеграция). */

/* Резервный баннер: работает, только если компонент контента ещё не сдал
   template-parts/masthead.php (см. spivmir_pages_masthead()). Ширина — как
   у контентной колонки старого сайта (940 px внутри 960). */
.masthead--fallback {
	max-width: var(--container);
	margin: 0 auto;
	padding: 20px 0;
	background: var(--c-green) url("../img/masthead-bg.jpg") center / cover no-repeat;
	text-align: left;
}

.masthead--fallback .masthead__title {
	margin: 0;
	color: var(--c-white);
	font-family: var(--font-head);
	font-size: 4rem;
	font-weight: 300;
	line-height: 1;
	text-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
}

/* --- 2. Контакты --------------------------------------------------------- */

.page-contacts__info {
	width: 50%;
	padding-right: 30px;
}

/* Заголовок блока реквизитов — вычисленные стили живого сайта
   (#center h3: Roboto Condensed 500, 16px/20.8px, uppercase, #b94a48). */
.page-contacts__title {
	margin: 10px 0 0;
	color: var(--c-heading);
	font-family: var(--font-head);
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1.3;
	text-transform: uppercase;
}

.page-contacts__info p {
	margin: 0 0 15px;
}

.page-contacts__phone {
	white-space: nowrap;
}

.page-contacts__map {
	clear: both;
	margin: 20px 0 0;
}

.page-contacts__map-frame {
	display: block;
	width: 100%;
	height: 500px;
	border: 0;
}

.page-contacts__oversight {
	margin-top: 30px;
}

.page-contacts__subtitle {
	margin: 0 0 15px;
	color: var(--c-heading);
	font-family: var(--font-head);
	font-size: 2.8rem;
	font-weight: 300;
}

/* --- 3. Лицензии --------------------------------------------------------- */

.page-licenses__gallery {
	max-width: 70%;
	margin: 0 auto;
}

.page-licenses__figure {
	margin: 0 0 20px;
}

.page-licenses__link {
	display: block;
}

.page-licenses__img {
	display: block;
	width: 100%;
	height: auto;
}

.page-licenses__actions {
	margin: 20px 0 30px;
	text-align: center;
}

.page-licenses__pdf .icon {
	margin-right: 8px;
	font-size: 1.6rem;
}

.page-licenses__subtitle {
	margin: 0 0 15px;
	color: var(--c-heading);
	font-family: var(--font-head);
	font-size: 2.8rem;
	font-weight: 300;
}

.page-licenses__facts {
	margin: 0;
}

.page-licenses__facts dt {
	color: var(--c-text-soft);
	font-size: 1.3rem;
}

.page-licenses__facts dd {
	margin: 0 0 12px;
	font-weight: 700;
}

/* --- 4. Карта сайта ------------------------------------------------------ */

.page-sitemap__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.page-sitemap__list--sub {
	margin: 0;
	padding-left: 20px;
	list-style: none;
}

.page-sitemap__item {
	margin: 0;
	list-style: none;
}

.page-sitemap__link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 4px 0;
	line-height: 1.4;
}

.page-sitemap__icon {
	flex: none;
	width: 16px;
	height: 16px;
	color: #f0ad4e;
	fill: currentColor;
	stroke: none;
}

.page-sitemap__item.is-current > .page-sitemap__link {
	color: var(--c-text);
	font-weight: 700;
}

.page-sitemap__section {
	margin-top: 25px;
}

.page-sitemap__subtitle {
	margin: 0 0 10px;
	color: var(--c-heading);
	font-family: var(--font-head);
	font-size: 2.4rem;
	font-weight: 300;
}

.page-sitemap__subtitle a {
	color: inherit;
}

/* --- 5. Юридическая страница --------------------------------------------- */

.page-legal__content > :first-child,
.page-legal__doc > :first-child {
	margin-top: 0;
}

/* --- 5.1. Разделы и пункты ----------------------------------------------- */

.page-legal__section {
	margin: 0 0 3rem;
}

.page-legal__doc .page-legal__heading {
	margin: 3rem 0 1.5rem;
	color: var(--c-heading);
	font-family: var(--font-head);
	font-size: 2.4rem;
	font-weight: 300;
}

.page-legal__doc .page-legal__subheading {
	margin: 2.5rem 0 1rem;
	color: var(--c-heading);
	font-family: var(--font-head);
	font-size: 1.9rem;
	font-weight: 400;
}

.page-legal__doc .page-legal__clause {
	margin: 1.2rem 0;
}

/* Подпункты (1.3.1, 9.5.2 …) сдвинуты — в docx их выделял отступ абзаца */
.page-legal__clause--sub {
	padding-left: 2rem;
}

/* Номер пункта не должен отрываться от своего текста при переносе */
.page-legal__num {
	font-weight: 700;
	white-space: nowrap;
}

/* Переход по якорю (#p-11-2, #prilozhenie-3) помечает цель рамкой, а не заливкой:
   заливка --c-row-hover под тем же цветом текста роняет контраст ниже 4,5:1,
   рамка же — нетекстовый индикатор, ему хватает 3:1 (зелёный на белом 4,03:1).
   Отступ под липкую полку меню уже задан html{scroll-padding-top} в base.css. */
.page-legal__clause:target,
.page-legal__section:target > .page-legal__heading,
.page-legal__subheading:target {
	outline: 2px solid var(--c-green);
	outline-offset: 4px;
	border-radius: var(--radius);
}

/* --- 5.2. Перечни -------------------------------------------------------- */

/* В исходнике это дефисные перечни. Маркер рисует CSS, потому что в .content
   базовые <ul> выводятся нумерованными (base.css §4) — номера исказили бы
   юридический текст, где нумерация значима. */
.content ul.page-legal__list {
	margin: 1.2rem 0 1.8rem;
	padding: 0;
	list-style: none;
}

.content ul.page-legal__list > li {
	position: relative;
	margin: 0 0 0.6rem;
	padding-left: 2rem;
	list-style: none;
}

.content ul.page-legal__list > li::before {
	content: "—";
	position: absolute;
	left: 0;
	color: var(--c-green);
}

/* Перечни вида «1) … 2) …»: номер стоит в самом тексте (в п. 9.6 исходника
   пропущен номер 6, поэтому <ol> здесь перенумеровал бы пункты). */
.content ul.page-legal__list--plain > li {
	padding-left: 0;
}

.content ul.page-legal__list--plain > li::before {
	content: none;
}

/* --- 5.3. Таблицы раздела 5.1 -------------------------------------------- */

.page-legal__table {
	width: 100%;
	margin: 0;
	border-collapse: collapse;
	background: var(--c-white);
	font-size: 1.4rem;
}

.page-legal__table th,
.page-legal__table td {
	padding: 10px 12px;
	border: 1px solid var(--c-border-table);
	line-height: 1.5;
	text-align: left;
	vertical-align: top;
}

.page-legal__table th {
	width: 28%;
	background: var(--c-row-zebra);
	font-weight: 700;
}

.page-legal__table p {
	margin: 0 0 0.8rem;
}

.page-legal__table p:last-child,
.page-legal__table .page-legal__list:last-child {
	margin-bottom: 0;
}

.content .page-legal__table ul.page-legal__list {
	margin: 0.6rem 0 0;
}

/* --- 5.4. Приложения (бланки заявлений) ---------------------------------- */

.page-legal__section--appendix {
	margin-top: 4rem;
	padding-top: 2.5rem;
	border-top: 1px solid var(--c-border-light);
}

.page-legal__doc .page-legal__subtitle {
	margin: 0 0 2rem;
	font-weight: 700;
}

/* Прочерки «______» в docx длиннее любой колонки — overflow-wrap: anywhere
   разрывает их по месту, иначе бланк растягивает страницу по горизонтали. */
.page-legal__form {
	padding: 20px 25px;
	border: 1px solid var(--c-border-light);
	border-radius: var(--radius);
	background: var(--c-bg);
	overflow-wrap: anywhere;
}

.page-legal__form p {
	margin: 0 0 1.2rem;
}

.page-legal__form p:last-child {
	margin-bottom: 0;
}

/* Шапка бланка: в docx оба блока стоят справа (отступ 5760 твипов).
   overflow-wrap здесь ОБЯЗАН быть break-word, а не унаследованный от .form
   anywhere: anywhere учитывается при расчёте max-content, и блок схлопывается
   до ширины самого длинного слова — margin-left:auto переставать работать. */
.page-legal__doc .page-legal__form-to,
.page-legal__doc .page-legal__form-from {
	width: max-content;
	max-width: 100%;
	margin-left: auto;
	overflow-wrap: break-word;
}

.page-legal__doc .page-legal__form-title {
	margin: 2rem 0 1.5rem;
	font-weight: 700;
	text-align: center;
}

/* --c-text-muted (#696969) даёт 4,90:1 на подложке бланка #f2f2f2;
   --c-text-soft (#888) давал 3,17:1 — ниже порога 4.5:1 для текста 13 px. */
.page-legal__form-hint {
	color: var(--c-text-muted);
	font-size: 1.3rem;
	text-align: center;
}

.page-legal__form-sign {
	text-align: right;
}

/* Базовый зелёный ссылок --c-green даёт на подложке бланка только 3,60:1;
   --c-green-darker — 5,92:1. На белом фоне страницы ссылки не трогаем.
   Селектор повторяет форму из content.css §4 (:not(.btn):not(.button)) и
   добавляет класс — иначе правило слабее и цвет не меняется; :hover/:focus
   перечислены отдельно, там content.css возвращает базовый зелёный. */
.content .page-legal__form a:not(.btn):not(.button),
.content .page-legal__form a:not(.btn):not(.button):hover,
.content .page-legal__form a:not(.btn):not(.button):focus {
	color: var(--c-green-darker);
}

/* Реквизиты Оператора идут строками, без отбивки абзацами */
.page-legal__section--requisites p {
	margin: 0 0 0.5rem;
}

/* --- 6. 404 -------------------------------------------------------------- */

.page-404__lead {
	margin: 0 0 20px;
	font-size: 1.7rem;
}

.page-404__links {
	margin: 0 0 25px;
	padding: 0;
	list-style: none;
}

.page-404__link-item {
	margin: 0 0 8px;
	list-style: none;
}

.page-404__link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 1.6rem;
}

.page-404__link .icon {
	font-size: 1.4rem;
}

/* --- 7. Лайтбокс лицензий ------------------------------------------------ */

.lightbox {
	position: fixed;
	inset: 0;
	z-index: 1000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	background: rgba(0, 0, 0, 0.8);
	overflow: auto;
}

.lightbox[hidden] {
	display: none;
}

.lightbox__inner {
	position: relative;
	max-width: 900px;
	width: 100%;
	margin: auto;
	padding: 20px;
	background: var(--c-white);
	border-radius: var(--radius);
	text-align: center;
}

.lightbox__img {
	display: block;
	width: 100%;
	height: auto;
}

.lightbox__caption {
	margin: 12px 0 0;
	color: var(--c-text-soft);
	font-size: 1.3rem;
}

.lightbox__actions {
	margin: 8px 0 0;
}

.lightbox__close {
	position: absolute;
	top: 4px;
	right: 8px;
	width: 44px;
	height: 44px;
	color: var(--c-text);
	font-size: 3rem;
	line-height: 1;
	cursor: pointer;
}

.is-lightbox-open,
.is-lightbox-open body {
	overflow: hidden;
}

/* --- 9. Адаптив ---------------------------------------------------------- */

/* Ширина резервного баннера повторяет .container из base.css */
@media (max-width: 1199px) {
	.masthead--fallback {
		max-width: 880px;
	}
}

@media (max-width: 1023px) {
	.masthead--fallback {
		max-width: 100%;
	}

	.masthead--fallback .masthead__title {
		font-size: 3.4rem;
	}

	.page-contacts__info {
		width: 100%;
		padding-right: 0;
	}

	.page-licenses__gallery {
		max-width: 100%;
	}

	.page-contacts__map-frame {
		height: 400px;
	}

	.page-legal__form {
		padding: 16px 18px;
	}
}

@media (max-width: 767px) {

	/* Тап-цели на телефоне (44 px): телефон «Контактов», ссылки 404 */
	.page-contacts__phone,
	.page-404__link,
	.page-sitemap__subtitle a {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
	}

	.masthead--fallback {
		margin-bottom: 20px;
		padding: 15px 0;
	}

	.masthead--fallback .masthead__title {
		font-size: 2.8rem;
	}

	.page-contacts__map-frame {
		height: 320px;
	}

	.page-sitemap__list--sub {
		padding-left: 14px;
	}

	.page-sitemap__link {
		padding: 8px 0;
		min-height: 44px;             /* тап-цель на телефоне */
	}


	.lightbox {
		padding: 10px;
	}

	.lightbox__inner {
		padding: 10px;
	}

	.page-legal__doc .page-legal__heading {
		font-size: 2rem;
	}

	.page-legal__clause--sub {
		padding-left: 1rem;
	}

	/* Шапка бланка прижата влево: справа на 320 px её нечем держать */
	.page-legal__doc .page-legal__form-to,
	.page-legal__doc .page-legal__form-from {
		width: auto;
		margin-left: 0;
	}

	.page-legal__form-sign {
		text-align: left;
	}

	/* Таблицы 5.1 уже прокручиваются обёрткой .table-scroll — снимаем
	   второй скролл от .content table{display:block} (content.css §7). */
	.content .page-legal__table {
		display: table;
		overflow-x: visible;
	}

	.page-legal__table th,
	.page-legal__table td {
		padding: 8px;
	}

	/* Тап-цель 44 px — только у ссылок, стоящих отдельной строкой (почта в шапке
	   бланка и в реквизитах). Ссылки внутри предложений не трогаем: inline-flex
	   разорвал бы строку текста. */
	.page-legal__form-to a,
	.page-legal__section--requisites a {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
	}
}
