/*
 * Reis24 — дизайн 15: токены и переиспользуемые компоненты.
 * Палитра — живого сайта (установка [сайт-5]), шрифт Plus Jakarta Sans (свой хостинг,
 * без Google до согласия). Все компоненты под префиксом .r24-, чтобы не задеть
 * старые страницы Elementor и шаблоны NovIT, пока они не переведены.
 */

@font-face {
	font-family: 'Plus Jakarta Sans';
	font-style: normal;
	font-weight: 400 800;
	font-display: swap;
	src: url(../fonts/plus-jakarta-sans-latin-ext.woff2) format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: 'Plus Jakarta Sans';
	font-style: normal;
	font-weight: 400 800;
	font-display: swap;
	src: url(../fonts/plus-jakarta-sans-latin.woff2) format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Manrope — только для RU-версии (у Plus Jakarta Sans нет кириллицы), решение владельца 2026-10-24 */
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 400 800; font-display: swap; src: url(../fonts/manrope-cyrillic.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 400 800; font-display: swap; src: url(../fonts/manrope-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 400 800; font-display: swap; src: url(../fonts/manrope-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root {
	/* цвета */
	--r24-ink: #0f172a;          /* текст, контур кнопок */
	--r24-text-2: #454f5e;       /* второстепенный текст, 8.1:1 на белом */
	--r24-accent: #ffb108;       /* жёлтый бренда, текст на нём — ink */
	--r24-accent-hover: #f2a000;
	--r24-blue: #066aab;         /* ссылки, вторичные кнопки, 5.9:1 на белом */
	--r24-navy: #1b375a;         /* служебная строка, CTA-полоса */
	--r24-navy-2: #1a2b49;
	--r24-indigo: #46467e;       /* разделители на тёмном */
	--r24-lilac: #f2f0fe;        /* фон меню и подложек */
	--r24-line: #e0e5eb;         /* рамки карточек */
	--r24-field: #c9d2de;        /* рамки полей */
	--r24-chrome: #9ca3af;       /* «хромовый» обод круглых фото */
	--r24-surface: #ffffff;
	--r24-dark: #0f172a;         /* фон подвала */
	--r24-on-dark-2: #d5dbe6;    /* второстепенный текст на тёмном, 12:1 */
	--r24-focus: #066aab;

	/* типографика */
	--r24-font: 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
	--r24-fs-sm: 14px;
	--r24-fs-base: 16px;
	--r24-fs-lg: 20px;
	--r24-fs-h3: 22px;
	--r24-fs-h2: clamp(28px, 3vw, 40px);
	--r24-fs-h1: clamp(36px, 4.6vw, 66px);

	/* отступы — шкала 4/8/12/16/24/32/48/72 */
	--r24-s1: 4px; --r24-s2: 8px; --r24-s3: 12px; --r24-s4: 16px;
	--r24-s5: 24px; --r24-s6: 32px; --r24-s7: 48px; --r24-s8: 72px;

	/* форма — три радиуса */
	--r24-r-sm: 8px;
	--r24-r: 20px;
	--r24-r-pill: 999px;
	--r24-shadow: 0 18px 50px rgba(15, 23, 42, .2);
	--r24-ring-chrome: 0 0 0 5px #fff, 0 0 0 8px var(--r24-chrome);

	--r24-container: 1180px;
	--r24-gutter: 16px;
	--r24-ease: cubic-bezier(.2, .7, .2, 1);
}

html:lang(ru) { --r24-font: 'Manrope', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif; }

/* ---------- база для новых блоков ---------- */
.r24-c {
	width: min(100% - 2 * var(--r24-gutter), var(--r24-container));
	margin-inline: auto;
	box-sizing: border-box;
}
.r24-d15 { overflow-x: clip; }
.r24-header, .r24-footer, .r24-ui {
	font-family: var(--r24-font);
	color: var(--r24-ink);
	font-size: var(--r24-fs-base);
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
}
.r24-header *, .r24-footer *, .r24-ui * { box-sizing: border-box; }
.r24-ui h1, .r24-ui h2, .r24-ui h3 { margin: 0; font-family: var(--r24-font); font-weight: 800; line-height: 1.08; color: inherit; }
.r24-ui h1 { font-size: var(--r24-fs-h1); }
.r24-ui h2 { font-size: var(--r24-fs-h2); }
.r24-ui h3 { font-size: var(--r24-fs-h3); }
.r24-muted { color: var(--r24-text-2); }

.r24-header a:focus-visible, .r24-footer a:focus-visible, .r24-ui a:focus-visible,
.r24-btn:focus-visible, .r24-field input:focus-visible, .r24-field select:focus-visible, .r24-chip:focus-visible {
	outline: 3px solid var(--r24-focus);
	outline-offset: 2px;
}

/* ---------- кнопки ---------- */
.r24-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: var(--r24-s2);
	min-height: 48px; padding: 0 var(--r24-s5);
	background: var(--r24-accent); color: var(--r24-ink);
	border: 1px solid var(--r24-ink); border-radius: var(--r24-r);
	font: inherit; font-family: var(--r24-font); font-weight: 800; font-size: var(--r24-fs-base); line-height: 1.1;
	text-decoration: none; cursor: pointer; white-space: nowrap;
	transition: background-color .15s var(--r24-ease), color .15s var(--r24-ease), transform .1s var(--r24-ease);
}
.r24-btn:hover { background: var(--r24-accent-hover); color: var(--r24-ink); }
.r24-btn:active { transform: translateY(1px); }
.r24-btn[disabled], .r24-btn[aria-disabled="true"] { opacity: .5; cursor: not-allowed; transform: none; }
.r24-btn--ghost { background: var(--r24-surface); }
.r24-btn--ghost:hover { background: var(--r24-lilac); }
.r24-btn--blue { background: var(--r24-blue); color: #fff; border-color: var(--r24-blue); }
.r24-btn--blue:hover { background: var(--r24-navy); color: #fff; }
.r24-btn--dark { background: var(--r24-ink); color: #fff; }
.r24-btn--dark:hover { background: var(--r24-navy); color: #fff; }
.r24-btn--icon { padding: 0 14px; }

/* ---------- поля: подпись над полем, обычные селекты ---------- */
.r24-field { display: flex; flex-direction: column; gap: 6px; font-size: var(--r24-fs-sm); font-weight: 600; }
.r24-field input, .r24-field select, .r24-field textarea {
	width: 100%; min-width: 0; min-height: 48px; padding: 0 var(--r24-s3);
	border: 1px solid var(--r24-field); border-radius: var(--r24-r); background: #fff; color: var(--r24-ink);
	font: inherit; font-family: var(--r24-font); font-size: 16px; font-weight: 400;
	transition: border-color .15s var(--r24-ease);
}
.r24-field textarea { padding: var(--r24-s3); min-height: 120px; }
.r24-field input:hover, .r24-field select:hover { border-color: var(--r24-text-2); }
.r24-field input[disabled], .r24-field select[disabled] { background: var(--r24-lilac); cursor: not-allowed; }
.r24-field [aria-invalid="true"] { border-color: #b42318; }
.r24-field__error { color: #b42318; font-weight: 600; }

/* ---------- карточка, цена, плашки ---------- */
.r24-card { border-radius: var(--r24-r); overflow: hidden; background: #fff; box-shadow: 0 0 0 1px var(--r24-line); }
.r24-price { font-weight: 800; font-size: 24px; line-height: 1.1; }
.r24-price__note { font-size: var(--r24-fs-sm); color: var(--r24-text-2); font-weight: 600; }
.r24-pill { display: inline-block; background: var(--r24-accent); color: var(--r24-ink); font-weight: 800; border-radius: var(--r24-r-pill); padding: 4px 12px; font-size: var(--r24-fs-sm); }
.r24-tag { display: inline-flex; align-items: center; min-height: 32px; background: #fff; color: var(--r24-ink); border-radius: var(--r24-r-sm); padding: 4px 12px; font-weight: 700; font-size: var(--r24-fs-sm); text-decoration: none; }
.r24-tag--accent { background: var(--r24-accent); }
a.r24-tag:hover { background: var(--r24-accent-hover); color: var(--r24-ink); }
.r24-chip {
	display: inline-flex; gap: var(--r24-s2); align-items: center; min-height: 44px; padding: 8px 14px;
	border-radius: var(--r24-r-pill); background: var(--r24-lilac); color: var(--r24-ink);
	font-weight: 700; font-size: var(--r24-fs-sm); text-decoration: none;
	transition: background-color .15s var(--r24-ease);
}
.r24-chip:hover { background: #e3defd; color: var(--r24-ink); }
.r24-chip--accent { background: var(--r24-accent); }
.r24-chip--accent:hover { background: var(--r24-accent-hover); }

/* круглое фото с хромовым ободом (страны, выноски) */
.r24-round { display: block; aspect-ratio: 1; border-radius: 50%; overflow: hidden; box-shadow: var(--r24-ring-chrome); }
.r24-round img { display: block; width: 100%; height: 100%; object-fit: cover; }
/* затемнение под текст на фото */
.r24-scrim { background: linear-gradient(180deg, rgba(15,23,42,0) 35%, rgba(15,23,42,.82) 100%); }

@media (prefers-reduced-motion: reduce) {
	.r24-btn, .r24-chip, .r24-field input, .r24-field select, .r24-nav { transition: none !important; }
}

/* Кнопки и плашки-ссылки: фиксируем цвет текста в состояниях (Astra задаёт a:hover/a:focus свой цвет) */
a.r24-btn:hover, a.r24-btn:focus, a.r24-btn:active { color: var(--r24-ink); }
a.r24-btn--blue:hover, a.r24-btn--blue:focus, a.r24-btn--dark:hover, a.r24-btn--dark:focus { color: #fff; }
a.r24-chip:focus, a.r24-tag:focus, a.r24-pill:hover, a.r24-pill:focus { color: var(--r24-ink); }

/* Заглушка «нет фото» (вместо noimage.png NovIT): явно не снимок */
.r24-noimg { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; width: 100%; height: 100%; min-height: 120px; background: repeating-linear-gradient(135deg, #f2f0fe 0 12px, #ebe8fb 12px 24px); color: #6b6f8f; font-size: 14px; font-weight: 600; text-align: center; }
.r24-noimg svg { color: #8a8db0; }
.r24-noimg--gallery { min-height: 260px; border-radius: var(--r24-r); margin-bottom: var(--r24-s5); }

/* переключатели: свои круг и квадрат, нативные input (доступность) */
.r24-ui input[type=radio], .r24-ui input[type=checkbox],
.r24-header input[type=radio], .r24-header input[type=checkbox],
.r24-footer input[type=checkbox], .r24-dialog input[type=checkbox], .r24-dialog input[type=radio] {
	-webkit-appearance: none; appearance: none; flex: 0 0 auto; width: 20px; height: 20px; margin: 0; padding: 0;
	border: 2px solid #8a93a3; background: #fff; cursor: pointer; display: inline-grid; place-content: center; vertical-align: -4px;
	transition: border-color .12s var(--r24-ease), background-color .12s var(--r24-ease);
}
.r24-ui input[type=radio], .r24-header input[type=radio], .r24-dialog input[type=radio] { border-radius: 50%; }
.r24-ui input[type=checkbox], .r24-header input[type=checkbox], .r24-footer input[type=checkbox], .r24-dialog input[type=checkbox] { border-radius: 6px; }
.r24-ui input[type=radio]::before, .r24-header input[type=radio]::before, .r24-dialog input[type=radio]::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #fff; transform: scale(0); transition: transform .12s var(--r24-ease); }
.r24-ui input[type=checkbox]::before, .r24-header input[type=checkbox]::before, .r24-footer input[type=checkbox]::before, .r24-dialog input[type=checkbox]::before { content: ""; width: 11px; height: 6px; border: solid #fff; border-width: 0 0 2.5px 2.5px; transform: rotate(-45deg) translate(1px, -1px) scale(0); transition: transform .12s var(--r24-ease); }
.r24-ui input:is([type=radio], [type=checkbox]):checked, .r24-header input:is([type=radio], [type=checkbox]):checked, .r24-footer input[type=checkbox]:checked, .r24-dialog input:is([type=radio], [type=checkbox]):checked { background: var(--r24-blue); border-color: var(--r24-blue); }
.r24-ui input[type=radio]:checked::before, .r24-header input[type=radio]:checked::before, .r24-dialog input[type=radio]:checked::before { transform: scale(1); }
.r24-ui input[type=checkbox]:checked::before, .r24-header input[type=checkbox]:checked::before, .r24-footer input[type=checkbox]:checked::before, .r24-dialog input[type=checkbox]:checked::before { transform: rotate(-45deg) translate(1px, -1px) scale(1); }
.r24-ui input:is([type=radio], [type=checkbox]):hover:not(:disabled), .r24-dialog input:is([type=radio], [type=checkbox]):hover:not(:disabled) { border-color: var(--r24-blue); }
.r24-ui input:is([type=radio], [type=checkbox]):focus-visible, .r24-header input:is([type=radio], [type=checkbox]):focus-visible, .r24-footer input[type=checkbox]:focus-visible, .r24-dialog input:is([type=radio], [type=checkbox]):focus-visible { outline: 3px solid var(--r24-focus); outline-offset: 2px; }
.r24-ui input:is([type=radio], [type=checkbox]):disabled, .r24-dialog input:is([type=radio], [type=checkbox]):disabled { opacity: .45; cursor: not-allowed; }
.r24-ask__form input[type=checkbox] { border-color: #fff; }
.r24-ask__form input[type=checkbox]:checked { background: var(--r24-accent); border-color: var(--r24-accent); }
.r24-ask__form input[type=checkbox]::before { border-color: var(--r24-ink) !important; }
/* скрытые радио чипов не трогаем */
.r24-chipradio input[type=radio] { position: absolute; opacity: 0; width: 1px; height: 1px; }
/* подпись рядом с контролом */
.r24-check { gap: 10px; }
.r24-ui .wpforms-field-checkbox li, .r24-dialog .wpforms-field-checkbox li { display: flex !important; gap: 10px; align-items: flex-start; }
.r24-ui .wpforms-field-checkbox li input, .r24-dialog .wpforms-field-checkbox li input { margin-top: 2px !important; }
.r24-rp__room { gap: 12px; }
