/* Satoshi Regular (400) */
@font-face {
  font-family: 'Satoshi';
  src: url('../fonts/Satoshi-Regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Satoshi';
  src: url('../fonts/Satoshi-Italic.woff2') format('woff2');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

/* Satoshi Light (300) */
@font-face {
  font-family: 'Satoshi';
  src: url('../fonts/Satoshi-Light.woff2') format('woff2');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Satoshi';
  src: url('../fonts/Satoshi-LightItalic.woff2') format('woff2');
  font-weight: 300;
  font-style: italic;
  font-display: swap;
}

/* Satoshi Medium (500) */
@font-face {
  font-family: 'Satoshi';
  src: url('../fonts/Satoshi-Medium.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Satoshi';
  src: url('../fonts/Satoshi-MediumItalic.woff2') format('woff2');
  font-weight: 500;
  font-style: italic;
  font-display: swap;
}

/* Satoshi Bold (700) */
@font-face {
  font-family: 'Satoshi';
  src: url('../fonts/Satoshi-Bold.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Satoshi';
  src: url('../fonts/Satoshi-BoldItalic.woff2') format('woff2');
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}

/* Satoshi Black (900) */
@font-face {
  font-family: 'Satoshi';
  src: url('../fonts/Satoshi-Black.woff2') format('woff2');
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Satoshi';
  src: url('../fonts/Satoshi-BlackItalic.woff2') format('woff2');
  font-weight: 900;
  font-style: italic;
  font-display: swap;
}

/* Cabinet Grotesk (Заголовки) */
/* Thin (100) */
@font-face {
  font-family: 'Cabinet Grotesk';
  src: url('../fonts/CabinetGrotesk-Thin.woff2') format('woff2');
  font-weight: 100;
  font-display: swap;
  font-style: normal;
}

/* Extra Light (200) */
@font-face {
  font-family: 'Cabinet Grotesk';
  src: url('../fonts/CabinetGrotesk-Extralight.woff2') format('woff2');
  font-weight: 200;
  font-display: swap;
  font-style: normal;
}

/* Light (300) */
@font-face {
  font-family: 'Cabinet Grotesk';
  src: url('../fonts/CabinetGrotesk-Light.woff2') format('woff2');
  font-weight: 300;
  font-display: swap;
  font-style: normal;
}

/* Regular (400) */
@font-face {
  font-family: 'Cabinet Grotesk';
  src: url('../fonts/CabinetGrotesk-Regular.woff2') format('woff2');
  font-weight: 400;
  font-display: swap;
  font-style: normal;
}

/* Medium (500) */
@font-face {
  font-family: 'Cabinet Grotesk';
  src: url('../fonts/CabinetGrotesk-Medium.woff2') format('woff2');
  font-weight: 500;
  font-display: swap;
  font-style: normal;
}

/* Bold (700) */
@font-face {
  font-family: 'Cabinet Grotesk';
  src: url('../fonts/CabinetGrotesk-Bold.woff2') format('woff2');
  font-weight: 700;
  font-display: swap;
  font-style: normal;
}

/* Extra Bold (800) */
@font-face {
  font-family: 'Cabinet Grotesk';
  src: url('../fonts/CabinetGrotesk-Extrabold.woff2') format('woff2');
  font-weight: 800;
  font-display: swap;
  font-style: normal;
}

/* Black (900) */
@font-face {
  font-family: 'Cabinet Grotesk';
  src: url('../fonts/CabinetGrotesk-Black.woff2') format('woff2');
  font-weight: 900;
  font-display: swap;
  font-style: normal;
}

/* Variable Font (Вариативный шрифт, поддерживающий насыщенность от 100 до 900) */
@font-face {
  font-family: 'Cabinet Grotesk Variable';
  src: url('../fonts/CabinetGrotesk-Variable.woff2') format('woff2-variations'),
       url('../fonts/CabinetGrotesk-Variable.woff2') format('woff2');
  font-weight: 100 900;
  font-display: swap;
  font-style: normal;
}

/* ==========================================================================
   СБРОС СТИЛЕЙ ASTRA
   ========================================================================== */
#primary.content-area.primary .entry-content {
	background-color: #ffffff00 !important;
    padding: 0 !important;
    box-shadow: 0 0 10px rgb(0 0 0 / 0%) !important;
    border-radius: 0 !important;
}

#primary.content-area.primary {
	background-color: #f0f0f000 !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* ==========================================================================
   ГЛОБАЛЬНЫЙ СБРОС СОСТОЯНИЯ ФОКУСА ДЛЯ КНОПОК
   ========================================================================== */

button,
[role="button"],
.button,
.wp-block-button__link {
  outline: none;
  -webkit-tap-highlight-color: transparent;
}

@media (hover: hover) {
  button:hover,
  [role="button"]:hover,
  .button:hover {
    /* Автоматический подхват ховера */
  }
}

button:focus:not(:focus-visible),
[role="button"]:focus:not(:focus-visible),
.button:focus:not(:focus-visible),
.wp-block-button__link:focus:not(:focus-visible) {
  outline: none;
  box-shadow: none;
}

button:focus-visible,
[role="button"]:focus-visible,
.button:focus-visible,
.wp-block-button__link:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

/* ==========================================================================
   БАЗОВЫЕ СТИЛИ
   ========================================================================== */
body, p, li, a, span {
  font-family: 'Satoshi', sans-serif;
}

.font-family-cabinet {
	font-family: 'Cabinet Grotesk', sans-serif;
}

*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
	-moz-text-size-adjust: none;
	-webkit-text-size-adjust: none;
	text-size-adjust: none;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	scroll-behavior: smooth;
	hanging-punctuation: first last;
	scroll-padding-top: var(--space-20);
}

body {
	width: 100vw;
	min-height: 100dvh;
	line-height: 1.6;
	font-family: var(--font-body, sans-serif);
	font-size: var(--text-base);
	color: var(--color-text);
	background-color: var(--color-bg);
	transition: background-color var(--transition-interactive), color var(--transition-interactive);
}

img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
  height: auto;
}

ul[role='list'], ol[role='list'] {
  list-style: none;
}

input, button, textarea, select {
  font: inherit;
  color: inherit;
}

h1, h2, h3, h4, h5, h6 {
  text-wrap: balance;
  line-height: 1.08;
}

p, li, figcaption {
  text-wrap: pretty;
  max-width: 72ch;
}

::selection {
  background: color-mix(in oklab, var(--color-primary) 28%, transparent);
  color: var(--color-text);
}

:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 3px;
  border-radius: var(--radius-sm);
}

button {
  cursor: pointer;
  background: none;
  border: none;
}

a, button, [role='button'], [role='link'], input, textarea, select {
	transition: color var(--transition-interactive), background var(--transition-interactive), border-color var(--transition-interactive), box-shadow var(--transition-interactive), transform var(--transition-interactive);
}

/* В тёмной теме инвертируем чёрный логотип в белый и снижаем яркость */
html[data-theme='dark'] .brand img,
html[data-theme='dark'] .custom-logo {
    filter: invert(1) brightness(1.8) !important;
    transition: filter 0.25s ease;
}

body .primary .site-main {
	max-width: 1200px;
    margin: 0 auto !important;
}

/* ==========================================================================
   УТИЛИТЫ КАСТОМНЫХ ГРАНИЦ
   ========================================================================== */

/* 1. Базовый класс: обнуление толщины границ при сохраненной структуре */
.custom-border--clear {
	border-style: solid !important;
	border-width: 0 !important;
	border-color: var(--color-border-global) !important;
	transition: border-color var(--transition-interactive);
}

/* 2. Точечное подключение сторон */
.custom-border--top {
	border-top-width: 1px !important;
}

.custom-border--bottom {
	border-bottom-width: 1px !important;
}

.custom-border--left {
	border-left-width: 1px !important;
}

.custom-border--right {
	border-right-width: 1px !important;
}


/* ==========================================================================
   АДАПТИВНЫЕ БЛОКИ (Управление через галочку в Gutenberg)
   ========================================================================== */

/* Когда переключатель выключен: цвета жестко фиксированы */

/* Когда переключатель включен (.is-adaptive-block): */
[data-theme='light'] .is-adaptive-block {
	color: var(--color-text);
	border-color: var(--color-border-global);
}

[data-theme='dark'] .is-adaptive-block {
	color: var(--color-text);
	border-color: var(--color-border-global);
}

/* Автоматическая подмена статичных инлайн-фонов Spectra/Gutenberg при переключении темы */
[data-theme='dark'] .is-adaptive-block[style*="background"] {
	background-color: var(--color-surface) !important;
}

[data-theme='light'] .is-adaptive-block[style*="background"] {
	background-color: var(--color-bg) !important;
}

