/*
Theme Name:   RE Showcase
Theme URI:    https://example.com/
Description:  Дизайн-слой для плагина RE Core: витрина недвижимости, консоль поиска, страница объекта, блок инвестпроектов. Дочерняя тема Twenty Twenty-Five.
Author:       —
Template:     twentytwentyfive
Version:      1.0.0
Requires PHP: 7.4
License:      GPL-2.0-or-later
Text Domain:  re-showcase
*/

/* ==========================================================================
   RE Showcase — дизайн-слой поверх плагина RE Core.
   Классы совпадают с разметкой плагина, поэтому файл работает
   и в прототипе, и на боевом сайте без правок.
   ========================================================================== */

:root {
	--ink:        #14201C;
	--ink-soft:   #4A5A54;
	--paper:      #FFFFFF;
	--pale:       #F4F5F2;
	--stone:      #DCDDD6;
	--sea:        #0E6F72;
	--sea-deep:   #0A4F52;
	--sea-pale:   #E3EFEE;
	--brass:      #B98A3C;

	--display: "Literata", Georgia, "Times New Roman", serif;
	--ui: "Manrope", -apple-system, "Segoe UI", Roboto, sans-serif;

	--wide: 1240px;
	--gutter: clamp(1rem, 4vw, 2.5rem);
}

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

body.re-design {
	margin: 0;
	font-family: var(--ui);
	font-size: 17px;
	line-height: 1.6;
	color: var(--ink);
	background: var(--paper);
	-webkit-font-smoothing: antialiased;
}

.re-design h1, .re-design h2, .re-design h3 {
	font-family: var(--display);
	font-weight: 400;
	letter-spacing: -0.015em;
	line-height: 1.12;
	margin: 0;
}

.re-design h1 { font-size: clamp(2.2rem, 5vw, 3.6rem); }
.re-design h2 { font-size: clamp(1.7rem, 3.2vw, 2.4rem); }
.re-design h3 { font-size: 1.15rem; line-height: 1.3; }

.re-design a { color: inherit; }

.re-wrap {
	max-width: var(--wide);
	margin-inline: auto;
	padding-inline: var(--gutter);
}

.re-section { padding-block: clamp(3rem, 7vw, 6rem); }
.re-section-pale { background: var(--pale); }

.re-section-head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1.5rem;
	flex-wrap: wrap;
	margin-bottom: 2rem;
}

.re-lede {
	max-width: 46ch;
	color: var(--ink-soft);
	font-size: 1.05rem;
}

/* --- Шапка ---------------------------------------------------------- */

.re-header {
	position: sticky;
	top: 0;
	z-index: 40;
	background: rgba(255, 255, 255, .92);
	backdrop-filter: blur(8px);
	border-bottom: 1px solid var(--stone);
}

.re-header-inner {
	display: flex;
	align-items: center;
	gap: 2rem;
	height: 68px;
}

.re-logo {
	font-family: var(--display);
	font-size: 1.2rem;
	letter-spacing: .02em;
	text-decoration: none;
	white-space: nowrap;
}

.re-logo b { font-weight: 600; }

.re-nav {
	display: flex;
	gap: 1.5rem;
	font-size: .95rem;
	margin-inline-end: auto;
}

.re-nav a { text-decoration: none; padding-block: .35rem; }
.re-nav a:hover { box-shadow: inset 0 -1px 0 var(--ink); }

.re-lang {
	display: flex;
	gap: .5rem;
	font-size: .82rem;
	color: var(--ink-soft);
}

.re-lang a { text-decoration: none; }
.re-lang .is-on { color: var(--ink); font-weight: 700; }

/* --- Кнопки --------------------------------------------------------- */

.re-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	font: inherit;
	font-weight: 600;
	font-size: .95rem;
	padding: .8rem 1.5rem;
	border: 1px solid var(--sea);
	background: var(--sea);
	color: #fff;
	border-radius: 4px;
	cursor: pointer;
	text-decoration: none;
	transition: background .15s ease;
}

.re-btn:hover { background: var(--sea-deep); border-color: var(--sea-deep); }

.re-btn-quiet {
	background: transparent;
	color: var(--ink);
	border-color: var(--stone);
}

.re-btn-quiet:hover { background: var(--pale); border-color: var(--ink-soft); }

.re-btn-ghost {
	background: transparent;
	border-color: rgba(255, 255, 255, .4);
	color: #fff;
}

.re-btn:focus-visible,
.re-chip:focus-visible,
.re-filter :is(select, input):focus-visible {
	outline: 2px solid var(--sea);
	outline-offset: 2px;
}

/* --- Первый экран --------------------------------------------------- */

.re-hero {
	display: grid;
	grid-template-columns: minmax(0, 46%) minmax(0, 54%);
	min-height: min(78vh, 720px);
	border-bottom: 1px solid var(--stone);
}

.re-hero-text {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 1.25rem;
	padding: clamp(2rem, 5vw, 4rem) clamp(1.25rem, 4vw, 3.5rem);
	padding-inline-start: max(var(--gutter), calc((100vw - var(--wide)) / 2 + var(--gutter)));
}

.re-hero-text p {
	max-width: 40ch;
	color: var(--ink-soft);
	margin: 0;
}

.re-hero-photo {
	position: relative;
	min-height: 340px;
}

.re-hero-photo .re-ph { height: 100%; }

.re-hero-tag {
	position: absolute;
	inset-block-end: 1.25rem;
	inset-inline-start: 1.25rem;
	background: rgba(20, 32, 28, .72);
	color: #fff;
	font-size: .8rem;
	padding: .4rem .75rem;
	border-radius: 3px;
	backdrop-filter: blur(4px);
}

/* --- Консоль поиска -------------------------------------------------- */

.re-console {
	background: var(--paper);
	border: 1px solid var(--stone);
	border-radius: 6px;
	box-shadow: 0 18px 40px -28px rgba(20, 32, 28, .45);
}

.re-hero .re-console { margin-top: .5rem; }

.re-console-row {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
	align-items: stretch;
}

.re-console-field {
	display: flex;
	flex-direction: column;
	gap: .15rem;
	padding: .7rem 1rem;
	border-inline-end: 1px solid var(--stone);
	min-width: 0;
}

.re-console-field > span {
	font-size: .72rem;
	color: var(--ink-soft);
	letter-spacing: .01em;
}

.re-console-field select,
.re-console-field input {
	border: 0;
	background: transparent;
	font: inherit;
	font-size: .98rem;
	font-weight: 600;
	color: var(--ink);
	padding: 0;
	width: 100%;
	min-width: 0;
}

.re-console-go {
	display: flex;
	align-items: center;
	padding: .5rem;
}

.re-console-go .re-btn { height: 100%; border-radius: 4px; white-space: nowrap; }

/* Пресеты */
.re-presets {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin-top: 1rem;
}

.re-chip {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	font: inherit;
	font-size: .85rem;
	padding: .35rem .85rem;
	border: 1px solid var(--stone);
	border-radius: 999px;
	background: transparent;
	text-decoration: none;
	cursor: pointer;
	color: var(--ink-soft);
}

.re-chip:hover { border-color: var(--ink-soft); color: var(--ink); }

.re-chip.is-active {
	background: var(--sea-pale);
	border-color: var(--sea);
	color: var(--sea-deep);
	font-weight: 600;
}

.re-chip .re-chip-x {
	border: 0;
	background: none;
	cursor: pointer;
	font-size: 1rem;
	line-height: 1;
	color: inherit;
	padding: 0;
}

/* --- Плейсхолдеры фото (только для прототипа) ------------------------ */

.re-ph {
	display: block;
	width: 100%;
	height: 100%;
	background-color: #cfd8d4;
	background-image:
		linear-gradient(180deg, rgba(255, 255, 255, .35), rgba(20, 32, 28, .18)),
		linear-gradient(200deg, #9fb9b6 0%, #cbd3c9 45%, #e8e3d6 100%);
}

.re-ph-2 { background-image: linear-gradient(180deg, rgba(255,255,255,.3), rgba(20,32,28,.2)), linear-gradient(160deg, #b9c9c2 0%, #e5ded1 60%, #cfc3ae 100%); }
.re-ph-3 { background-image: linear-gradient(180deg, rgba(255,255,255,.25), rgba(20,32,28,.25)), linear-gradient(210deg, #8fa9ad 0%, #c7cec6 55%, #ded6c6 100%); }
.re-ph-4 { background-image: linear-gradient(180deg, rgba(255,255,255,.3), rgba(20,32,28,.15)), linear-gradient(140deg, #d8d2c4 0%, #b6c6c0 70%, #94aaa8 100%); }
.re-ph-5 { background-image: linear-gradient(180deg, rgba(255,255,255,.2), rgba(20,32,28,.3)), linear-gradient(190deg, #7d9698 0%, #b4c0bb 50%, #d9d1c1 100%); }
.re-ph-6 { background-image: linear-gradient(180deg, rgba(255,255,255,.25), rgba(20,32,28,.22)), linear-gradient(170deg, #c3cfc6 0%, #a6b8b8 45%, #e2dacb 100%); }

/* --- Карточки объектов ----------------------------------------------- */

.re-grid-cards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1.25rem, 2.5vw, 2rem) clamp(1rem, 2vw, 1.75rem);
}

.re-grid-editorial .re-card:first-child {
	grid-column: span 2;
}

.re-grid-editorial .re-card:first-child .re-card-media { aspect-ratio: 16 / 9; }
.re-grid-editorial .re-card:first-child .re-card-price { font-size: 2rem; }

.re-card {
	display: flex;
	flex-direction: column;
	border: 0;
	border-radius: 0;
	background: transparent;
	min-width: 0;
}

.re-card-media {
	position: relative;
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--stone);
}

.re-card-media img,
.re-card-media .re-ph {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.re-badge {
	position: absolute;
	inset-block-start: .75rem;
	inset-inline-start: .75rem;
	background: rgba(255, 255, 255, .94);
	color: var(--ink);
	font-size: .74rem;
	font-weight: 700;
	letter-spacing: .01em;
	padding: .28rem .6rem;
	border-radius: 2px;
}

.re-badge-sold { background: var(--ink); color: #fff; }

.re-card-body {
	padding: .9rem 0 0;
	display: flex;
	flex-direction: column;
	gap: .35rem;
}

.re-card-price {
	font-family: var(--display);
	font-size: 1.55rem;
	font-weight: 500;
	letter-spacing: -0.02em;
	margin: 0;
	font-variant-numeric: tabular-nums;
}

.re-card-price small { font-family: var(--ui); font-size: .8rem; font-weight: 500; }

.re-approx { color: var(--ink-soft); font-weight: 400; }

.re-card-title { margin: 0; font-size: 1.05rem; }
.re-card-title a { text-decoration: none; }
.re-card-title a:hover { box-shadow: inset 0 -1px 0 currentColor; }

.re-card-city { margin: 0; font-size: .88rem; color: var(--ink-soft); }

.re-card-specs {
	list-style: none;
	margin: .35rem 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: .35rem .9rem;
	font-size: .85rem;
	color: var(--ink-soft);
}

.re-card-specs li + li { position: relative; padding-inline-start: .9rem; }
.re-card-specs li + li::before {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	top: 50%;
	width: 1px;
	height: .9em;
	transform: translateY(-50%);
	background: var(--stone);
}

/* --- Панель фильтра в каталоге ---------------------------------------- */

.re-filterbar {
	position: sticky;
	top: 68px;
	z-index: 30;
	background: rgba(255, 255, 255, .95);
	backdrop-filter: blur(8px);
	border-bottom: 1px solid var(--stone);
	padding-block: .75rem;
}

.re-filterbar-inner {
	display: flex;
	align-items: center;
	gap: .75rem;
	flex-wrap: wrap;
}

.re-count {
	font-size: .9rem;
	color: var(--ink-soft);
	margin: 0;
	margin-inline-start: auto;
	font-variant-numeric: tabular-nums;
}

.re-active-chips { display: flex; flex-wrap: wrap; gap: .4rem; }

.re-filter {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 0;
	border: 1px solid var(--stone);
	border-radius: 6px;
	padding: 0;
	margin-bottom: 2rem;
	overflow: hidden;
	background: var(--paper);
}

.re-filter-field {
	display: flex;
	flex-direction: column;
	gap: .15rem;
	padding: .7rem 1rem;
	border-inline-end: 1px solid var(--stone);
	font-size: .95rem;
}

.re-filter-field > span { font-size: .72rem; color: var(--ink-soft); }

.re-filter select,
.re-filter input[type="number"] {
	border: 0;
	background: transparent;
	font: inherit;
	font-weight: 600;
	padding: 0;
	width: 100%;
}

.re-filter-actions { display: flex; gap: .5rem; padding: .5rem; align-items: center; }

/* --- Два рынка -------------------------------------------------------- */

.re-markets { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--stone); }

.re-market {
	position: relative;
	min-height: 420px;
	display: flex;
	align-items: flex-end;
	padding: clamp(1.5rem, 3vw, 2.5rem);
	color: #fff;
	text-decoration: none;
	overflow: hidden;
}

.re-market .re-ph { position: absolute; inset: 0; }
.re-market::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgba(20, 32, 28, .82) 0%, rgba(20, 32, 28, .12) 60%);
}

.re-market-body { position: relative; z-index: 1; max-width: 34ch; }
.re-market-body h3 { font-size: 1.9rem; color: #fff; margin-bottom: .4rem; }
.re-market-body p { margin: 0 0 1rem; color: rgba(255, 255, 255, .82); font-size: .95rem; }

/* --- Инвестиции ------------------------------------------------------- */

.re-invest { background: var(--ink); color: #F1F3F0; }
.re-invest h2 { color: #fff; }
.re-invest .re-lede { color: rgba(241, 243, 240, .7); }

.re-flip-figures {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 1.5rem;
	margin: 2.5rem 0;
	padding-block: 1.75rem;
	border-block: 1px solid rgba(241, 243, 240, .18);
}

.re-flip-figures dt {
	font-size: .8rem;
	color: rgba(241, 243, 240, .6);
	margin-bottom: .35rem;
}

.re-flip-figures dd {
	margin: 0;
	font-family: var(--display);
	font-size: 2.1rem;
	color: var(--brass);
	font-variant-numeric: tabular-nums;
	line-height: 1;
}

.re-stages { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; counter-reset: stage; }
.re-stages li { counter-increment: stage; padding-top: 1.5rem; border-top: 2px solid rgba(241, 243, 240, .25); font-size: .92rem; position: relative; }
.re-stages li.is-done { border-top-color: var(--brass); }
.re-stages li::before {
	content: counter(stage);
	position: absolute;
	top: -0.85rem;
	inset-inline-start: 0;
	background: var(--ink);
	padding-inline-end: .5rem;
	font-family: var(--display);
	font-size: .95rem;
	color: var(--brass);
}
.re-stages b { display: block; font-weight: 600; margin-bottom: .2rem; }
.re-stages span { color: rgba(241, 243, 240, .62); }

.re-beforeafter { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: rgba(241,243,240,.2); margin-top: 2.5rem; }
.re-beforeafter figure { margin: 0; position: relative; aspect-ratio: 4 / 3; }
.re-beforeafter figcaption {
	position: absolute;
	inset-block-start: .75rem;
	inset-inline-start: .75rem;
	background: rgba(20, 32, 28, .8);
	color: #fff;
	font-size: .78rem;
	padding: .25rem .6rem;
}

/* --- Страница объекта -------------------------------------------------- */

.re-mosaic {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr;
	grid-template-rows: repeat(2, minmax(140px, 22vh));
	gap: 4px;
}

.re-mosaic > *:first-child { grid-row: span 2; }
.re-mosaic .re-ph { height: 100%; }

.re-single-body {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 360px;
	gap: clamp(2rem, 5vw, 4rem);
	align-items: start;
	padding-block: 2.5rem;
}

.re-single-head h1 { margin-bottom: .35rem; }
.re-single-city { color: var(--ink-soft); margin: 0 0 1.5rem; }

.re-specs { margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0 2.5rem; }
.re-specs > div {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding: .65rem 0;
	border-bottom: 1px solid var(--stone);
	font-size: .95rem;
}
.re-specs dt { color: var(--ink-soft); }
.re-specs dd { margin: 0; font-weight: 600; text-align: end; }

.re-pricecard {
	position: sticky;
	top: 92px;
	border: 1px solid var(--stone);
	border-radius: 6px;
	padding: 1.5rem;
	background: var(--paper);
}

.re-single-price {
	font-family: var(--display);
	font-size: 2.3rem;
	font-weight: 500;
	letter-spacing: -0.02em;
	margin: 0 0 .2rem;
	font-variant-numeric: tabular-nums;
}

.re-price-note, .re-ref { color: var(--ink-soft); font-size: .85rem; margin: 0 0 1rem; }

.re-pricecard .re-btn { width: 100%; margin-bottom: .5rem; }

.re-agent { display: flex; align-items: center; gap: .75rem; margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid var(--stone); }
.re-agent-avatar { width: 44px; height: 44px; border-radius: 50%; background: var(--sea-pale); flex: none; }
.re-agent b { display: block; font-size: .95rem; }
.re-agent span { font-size: .82rem; color: var(--ink-soft); }

.re-disclaimer, .re-permit { font-size: .76rem; color: var(--ink-soft); line-height: 1.5; margin-top: 1rem; }

/* --- Пустой результат --------------------------------------------------- */

.re-empty {
	border: 1px solid var(--stone);
	border-radius: 6px;
	padding: clamp(1.5rem, 4vw, 3rem);
	text-align: center;
	background: var(--pale);
}
.re-empty h3 { margin-bottom: .5rem; }
.re-empty p { color: var(--ink-soft); max-width: 46ch; margin: 0 auto 1.25rem; }

/* --- Подвал -------------------------------------------------------------- */

.re-footer { background: var(--ink); color: rgba(241, 243, 240, .75); padding-block: 3rem; font-size: .9rem; }
.re-footer a { color: inherit; text-decoration: none; }
.re-footer a:hover { color: #fff; }
.re-footer-cols { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 2rem; }
.re-footer h4 { font-family: var(--ui); font-size: .8rem; color: rgba(241,243,240,.5); margin: 0 0 .75rem; font-weight: 600; }
.re-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .4rem; }
.re-footer-note { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid rgba(241,243,240,.15); font-size: .78rem; color: rgba(241,243,240,.5); }

/* --- Мобильные ------------------------------------------------------------ */

@media (max-width: 1024px) {
	.re-grid-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.re-grid-editorial .re-card:first-child { grid-column: span 2; }
	.re-single-body { grid-template-columns: 1fr; }
	.re-pricecard { position: static; }
	.re-stages { grid-template-columns: repeat(2, 1fr); }
	.re-footer-cols { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 860px) {
	.re-hero { grid-template-columns: 1fr; }
	.re-hero-text { padding-inline: var(--gutter); order: 2; }
	.re-hero-photo { order: 1; min-height: 260px; }
	.re-console-row { grid-template-columns: 1fr 1fr; }
	.re-console-field:nth-child(3) { grid-column: span 2; }
	.re-console-go { grid-column: span 2; }
	.re-console-go .re-btn { width: 100%; }
	.re-markets { grid-template-columns: 1fr; }
	.re-mosaic { grid-template-columns: 1fr 1fr; grid-template-rows: 30vh 18vh; }
	.re-mosaic > *:nth-child(n+4) { display: none; }
	.re-nav { display: none; }
}

@media (max-width: 620px) {
	.re-grid-cards { grid-template-columns: 1fr; }
	.re-grid-editorial .re-card:first-child { grid-column: span 1; }
	.re-specs { grid-template-columns: 1fr; }
	.re-stages { grid-template-columns: 1fr; }
	.re-beforeafter { grid-template-columns: 1fr; }
	.re-footer-cols { grid-template-columns: 1fr; }
	/* Фильтр уезжает в нижнюю панель */
	.re-filter { grid-template-columns: 1fr; }
	.re-filter-field { border-inline-end: 0; border-bottom: 1px solid var(--stone); }
}

/* --- RTL и доступность ------------------------------------------------------ */

[dir="rtl"] .re-card-specs li + li::before { inset-inline-start: 0; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; }
}

.re-reveal { animation: re-rise .7s cubic-bezier(.22, .61, .36, 1) both; }
.re-reveal-2 { animation-delay: .08s; }
.re-reveal-3 { animation-delay: .16s; }

@keyframes re-rise {
	from { opacity: 0; transform: translateY(14px); }
	to { opacity: 1; transform: none; }
}

/* ==========================================================================
   Выход из узкого контейнера блочной темы.
   Тема ограничивает содержимое страницы шириной ~760px, а первый экран
   и сетка карточек рассчитаны на всю ширину окна. Эти правила возвращают
   им нужную ширину, не ломая обычные текстовые блоки.
   ========================================================================== */

body.re-design { overflow-x: hidden; }

.re-design :is(.entry-content, .wp-block-post-content, .wp-site-blocks) > :is(.re-hero, .re-markets, .re-invest) {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.re-design :is(.entry-content, .wp-block-post-content) > :is(.re-catalog, .re-grid-cards, .re-flip-figures, .re-presets, .re-console) {
	width: min(var(--wide), 100vw - 3rem);
	max-width: none;
	margin-left: calc(50% - min(var(--wide), 100vw - 3rem) / 2);
	margin-right: 0;
}

/* Плагин рисует свои страницы в .re-container — выравниваем с .re-wrap */
.re-container {
	max-width: var(--wide);
	margin-inline: auto;
	padding-inline: var(--gutter);
}

/* --- Первый экран: страховка от сжатия -------------------------------- */

.re-hero { align-items: stretch; }

.re-hero-text {
	min-width: 0;
	padding-inline-start: max(var(--gutter), calc((100vw - var(--wide)) / 2 + var(--gutter)));
	padding-inline-end: clamp(1.25rem, 3vw, 3rem);
}

.re-hero-photo img.re-hero-img,
.re-market img.re-market-img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.re-hero-photo { overflow: hidden; }

.re-console-field select,
.re-console-field input { max-width: 100%; }

/* Если контейнер всё-таки узкий — экран складывается в одну колонку */
@media (max-width: 1000px) {
	.re-hero { grid-template-columns: 1fr; }
	.re-hero-text { order: 2; padding-inline: var(--gutter); }
	.re-hero-photo { order: 1; min-height: 300px; }
}

/* --- Галерея объекта: мозаика вместо ровной сетки ---------------------- */

.re-gallery-view {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr;
	grid-auto-rows: minmax(140px, 21vh);
	gap: 4px;
	margin: 1.5rem 0 0;
}

.re-gallery-view > *:first-child { grid-column: 1; grid-row: span 2; }
.re-gallery-view img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
.re-gallery-view > *:nth-child(n+6) { display: none; }

@media (max-width: 860px) {
	.re-gallery-view { grid-template-columns: 1fr 1fr; grid-auto-rows: minmax(120px, 26vh); }
	.re-gallery-view > *:nth-child(n+4) { display: none; }
}

/* --- Флиппинг: факт вместо обещаний ------------------------------------- */

.re-flip-single .re-beforeafter { margin: 1.5rem 0 2.5rem; }
.re-flip-single .re-beforeafter img { width: 100%; height: 100%; object-fit: cover; display: block; }

.re-figure-accent dd { color: var(--brass); }

.re-invest .re-flip-figures dd,
.re-flip-single .re-flip-figures dd { color: var(--ink); }

.re-flip-single .re-figure-accent dd { color: var(--brass); }

.re-flip-single .re-flip-figures {
	border-block: 1px solid var(--stone);
	background: transparent;
}

.re-flip-single .re-flip-figures dt { color: var(--ink-soft); }

.re-card-flip .re-flip-figures {
	margin: .4rem 0 0;
	padding: 0;
	border: 0;
	grid-template-columns: repeat(3, auto);
	justify-content: start;
	gap: 1.25rem;
}

.re-card-flip .re-flip-figures dt { font-size: .74rem; color: var(--ink-soft); }
.re-card-flip .re-flip-figures dd { font-size: 1.15rem; color: var(--ink); font-family: var(--display); }
.re-card-flip .re-flip-figures div:nth-child(2) dd { color: var(--sea-deep); }

.re-worklist {
	list-style: none;
	padding: 0;
	margin: 0 0 1.5rem;
	display: grid;
	gap: .5rem;
}

.re-worklist li {
	padding-inline-start: 1.4rem;
	position: relative;
	color: var(--ink-soft);
}

.re-worklist li::before {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	top: .62em;
	width: 8px;
	height: 1px;
	background: var(--sea);
}

.re-stage {
	text-transform: none;
	color: var(--sea-deep);
	font-weight: 600;
	font-size: .9rem;
	margin-bottom: .5rem;
}

/* --- Мелочи, которых не хватало ------------------------------------------ */

.re-single { padding-block: 2rem 3rem; }
.re-archive-head { padding-block: 2rem 1rem; }
.re-results.is-loading { opacity: .45; }
.re-filter-toggle { margin-bottom: 1rem; width: 100%; }
.re-plans img { width: 100%; height: auto; display: block; }
