/* ===============================================================
   LORDFILM — светлый минималистичный слой. Подключается последним,
   поэтому переопределяет токены из common.css, не трогая разметку.
   Тёмная тема (.dt) не затрагивается: её правила специфичнее :root.
   =============================================================== */

:root {
	/* поверхности: тёплый небелый холст, карточки белые */
	--bg: #ffffff;
	--bg-darker: #ffffff;
	--bg-darker-1: #f7f6f3;
	--bg-blackest: #f7f6f3;

	/* текст: не абсолютно чёрный */
	--tt: #111111;
	--tt-fade-0: #4a4a47;
	--tt-fade: #5c5c59;

	/* границы почти невидимые, теней практически нет */
	--bdc: #eaeaea;
	--bsh: none;
	--bsh-block: none;
	--bsh-long: none;
	--ui-bsh: 0 2px 8px rgba(0,0,0,0.04);

	/* цвет — редкий ресурс: акцент приглушённый, кнопки графитовые */
	--accent: #346538;
	--accent-soft: #edf3ec;
	--ui-bg-btn: #111111;
	--ui-tt-btn: #ffffff;
	--ui-bg-btn-hover: #333333;
	--ui-bdc-inp: #eaeaea;
	--ui-bdc-inp-focus: #111111;
	--ui-bg-inp: #ffffff;
	--ui-bg: #ffffff;
	--ui-bg-darker: #f7f6f3;
	--ui-bg-darkest: #f0efec;
	--ui-bdc: #eaeaea;
	--ui-accent: #111111;
	--ui-gradient: none;

	/* геометрия: крупные отступы, сдержанные скругления */
	--bdrs-card: 10px;
	--bdrs-poster: 10px;
	--ui-elem-bdrs: 6px;
	--indent: 28px;
	--indent-negative: -28px;
	--max-width: 1200px;

	--fs-2xl: 30px;

	/* типографика: гротеск в интерфейсе, антиква в заголовках */
	--font-ui: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Segoe UI',
		'Helvetica Neue', Arial, sans-serif;
	--font-display: 'Instrument Serif', 'Playfair Display', Georgia, 'Times New Roman', serif;
	--font-mono: 'SF Mono', 'JetBrains Mono', 'Cascadia Mono', Consolas, monospace;
}

body {font-family: var(--font-ui); background-color: var(--bg-blackest); line-height: 1.6;}
.wrapper__container--main {background-color: var(--bg-darker); box-shadow: none;}

/* фон: тёплое пятно света вместо зелёного свечения */
.wrapper::before {height: 520px;
	background: radial-gradient(120% 100% at 50% 0%, rgba(180,150,110,0.07) 0%, transparent 62%), var(--bg-blackest);}

/* ЗАГОЛОВКИ — редакционная антиква с плотным трекингом
----------------------------------------------- */
h1, h2, h3, .sect__title, .home-title, .page__title, .carou__caption {
	font-family: var(--font-display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.12;
	color: var(--tt); text-transform: none;}
.home-title {font-size: clamp(26px, 3.4vw, 36px); font-weight: 300; margin: 18px 0 10px;}
.home-subtitle {color: var(--tt-fade); font-size: var(--fs-md); max-width: 62ch; margin-bottom: 4px; font-family: var(--font-ui);}
.sect__title {font-size: clamp(22px, 2.4vw, 30px);}
.carou .carou__caption {font-size: clamp(20px, 2.2vw, 26px); color: var(--tt); opacity: 1;
	margin-bottom: 14px; padding-bottom: 12px; border-bottom: 1px solid var(--bdc);}
.page__title {font-size: clamp(24px, 3vw, 36px);}

/* ШАПКА — тонкая линия вместо тени
----------------------------------------------- */
.header {background-color: var(--bg); backdrop-filter: saturate(180%) blur(12px);
	border-bottom: 1px solid var(--bdc); box-shadow: none; min-height: 64px;}
.logo {font-family: var(--font-display); text-transform: none; letter-spacing: -0.02em; font-size: 24px; color: var(--tt);}
.header__menu > li > a {font-family: var(--font-ui); font-weight: 500; text-transform: none;
	letter-spacing: 0; font-size: var(--fs-base); color: var(--tt-fade-0); border-bottom: 1px solid transparent;}
.header__menu > li > a:hover {color: var(--tt); border-bottom-color: var(--tt);}
.header__menu-hidden {border: 1px solid var(--bdc); box-shadow: var(--ui-bsh); border-radius: 10px;}
.search-block__input, .search-block__input:focus {background-color: var(--ui-bg-inp); border: 1px solid var(--bdc); height: 40px;}
.lt .search-block__input, .lt .search-block__input:focus {background-color: #f7f6f3;}
.lt .header {background-color: rgba(255,255,255,0.86);}
.header__btn-login {background: var(--ui-bg-btn); border-radius: 6px;}
.header__btn-login:hover {background: var(--ui-bg-btn-hover);}

.carou {background-color: var(--bg-darker); color: var(--tt); padding-top: 0;}
.lt .carou {--tt: #111111; --tt-fade: #5c5c59; --bdc: #eaeaea;}
.lt .carou .carou__caption {color: #111111;}
.sect.is-empty {display: none;}

/* СЕКЦИИ — воздух между блоками
----------------------------------------------- */
.content {padding: 28px var(--indent) 56px;}
.sect {margin-bottom: 64px;}
.sect__header {margin-bottom: 22px; padding-bottom: 14px; border-bottom: 1px solid var(--bdc);}
.sect__more {color: var(--tt-fade); font-size: var(--fs-base);}
.sect__more:hover {color: var(--tt);}
/* весь заголовок раздела — ссылка на категорию */
.sect__title a {color: inherit; display: inline-flex; align-items: baseline; gap: 10px;}
.sect__title a::after {content: '\2192'; font-size: 0.6em; color: var(--tt-fade); transition: transform .2s ease;}
.sect__title a:hover {text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1px;}
.sect__title a:hover::after {transform: translateX(4px); color: var(--tt);}

/* боковой блок «Рекомендуем»: названия остались белыми от тёмной темы */
.lt .fr__title, .lt .fr__title span, .lt .fr__title:hover {color: var(--tt);}
.lt .fr__title:hover {text-decoration: underline; text-underline-offset: 3px;}
.lt .fr__desc, .lt .fr__desc span {color: var(--tt-fade);}
.speedbar {color: var(--tt-fade); font-size: var(--fs-sm);}

/* КАРТОЧКИ — плоские, с волосяной рамкой
----------------------------------------------- */
.item, .grid-items__item {background: transparent;}
.item__img {border: 1px solid var(--bdc); border-radius: var(--bdrs-poster); overflow: hidden;
	background: var(--ui-bg-darker); box-shadow: none; transition: box-shadow .2s ease, transform .2s ease;}
.item:hover .item__img {box-shadow: 0 2px 8px rgba(0,0,0,0.04); transform: translateY(-2px);}
.item__label {background: rgba(17,17,17,0.82); color: #fff; font-size: 11px; letter-spacing: 0.04em;
	text-transform: uppercase; border-radius: 999px; padding: 4px 10px; font-weight: 500;}
.item__title {color: var(--tt); font-weight: 500;}

/* КНОПКИ И ТЕГИ
----------------------------------------------- */
button, .btn, [type="button"], [type="submit"] {border-radius: 6px; font-weight: 500; box-shadow: none;}
button:active, [type="submit"]:active {transform: scale(0.98); box-shadow: none;}
.pagination__btn-loader a {background: var(--ui-bg-btn); color: var(--ui-tt-btn); border-radius: 6px;}
/* при живом JS кнопку прячем: страница добирает следующий блок сама */
.has-autoload .pagination__btn-loader a {display: none;}
.autoload-status {text-align: center; color: var(--tt-fade); font-size: var(--fs-sm);
	font-family: var(--font-mono); padding: 18px 0 8px; min-height: 20px;}

/* ПОДВАЛ — на светлой теме весь текст тёмный, белого быть не должно
----------------------------------------------- */
.footer {border-top: 1px solid var(--bdc); background: var(--bg-darker); padding-top: 28px; padding-bottom: 28px;}
/* подвал чуть темнее основного полотна — отбивает конец страницы */
.lt .footer {background: #f2f1ed;}
.footer__logo {font-family: var(--font-display); text-transform: none;}
.lt .footer, .lt .footer a, .lt .footer span, .lt .footer li,
.lt .footer__logo, .lt .footer__logo span,
.lt .footer__notify, .lt .footer__copyright, .lt .footer__menu a {color: #111111;}
.lt .footer__notify, .lt .footer__copyright {font-size: var(--fs-sm);}
.lt .footer a:hover {color: #333333; text-decoration: underline;}

/* ПОЯВЛЕНИЕ БЛОКОВ ПРИ ПРОКРУТКЕ
----------------------------------------------- */
/* класс has-reveal ставит сам скрипт: без JS блоки видимы всегда */
.has-reveal .reveal {opacity: 0; transform: translateY(12px);}
.has-reveal .reveal.is-in {opacity: 1; transform: none;
	transition: opacity .6s cubic-bezier(.16,1,.3,1), transform .6s cubic-bezier(.16,1,.3,1);}
/* раздел без публикаций не должен оставлять пустое поле.
   :empty здесь не годится — внутри остаются пробелы от шаблона,
   поэтому проверяем отсутствие дочерних элементов. */
.sect:has(> .sect__content.grid-items:not(:has(*))) {display: none;}

@media (prefers-reduced-motion: reduce) {
	.has-reveal .reveal, .has-reveal .reveal.is-in {opacity: 1; transform: none; transition: none;}
	.item:hover .item__img {transform: none;}
}

@media (max-width: 900px) {
	:root {--indent: 18px;}
	.sect {margin-bottom: 44px;}
}


/* Заглушка, когда нет ни CDN-плеера, ни своих плееров в доп. полях:
   иначе на месте плеера остаётся пустая чёрная область. */
.player-empty {display: none;}
#page__player:not(:has(.tabs-block__content)) .player-empty {
	display: block; text-align: center; padding: 48px 20px; color: #787774;
	border: 1px solid #eaeaea; border-radius: 10px; background: #f7f6f3;}
