/* RTEX Sections — страницы проектов (слайдер) и услуг (секции).
   Размеры из макетов: ПК 1440 (--u = 1px макета), мобилка 375. */

.rxpj, .rxs {
	--rx-t: #E4E3D8;
	--rx-o: #FFA31A;
	--rx-o2: #E6AB74;
	--rx-ff: var(--rx-font, 'Orbitron'), sans-serif;
	--rx-ease: cubic-bezier(.22, .61, .36, 1);
	box-sizing: border-box;
	color: var(--rx-t);
	font-family: var(--rx-ff);
	font-weight: 400;
	-webkit-font-smoothing: antialiased;
}
.rxpj *, .rxs *, .rxpj *::before, .rxs *::before, .rxpj *::after, .rxs *::after { box-sizing: border-box; }
:where(.rxpj, .rxs) :is(h1, h2, p, dl, dt, dd, figure) { margin: 0; padding: 0; color: inherit; font: inherit; letter-spacing: inherit; text-transform: none; }
.rxpj img, .rxs img { max-width: none; }

/* На всю ширину окна из контейнера темы */
.rx-bleed { position: relative; width: var(--rx-vw, 100vw); max-width: var(--rx-vw, 100vw); margin-left: calc(50% - var(--rx-vw, 100vw) / 2); margin-right: calc(50% - var(--rx-vw, 100vw) / 2); }
body:has(.rx-bleed) { overflow-x: clip; }
.editor-styles-wrapper .rx-bleed, .rx-in-editor.rx-bleed { width: 100%; max-width: 100%; margin-left: 0; margin-right: 0; }

/* Страница записи: без отступов контейнера WoodMart, первый блок — под прозрачной шапкой */
body.rx-single .wd-content-layout,
body.rx-single .content-layout-wrapper,
body.rx-single .main-page-wrapper { padding-top: 0 !important; padding-bottom: 0 !important; margin-top: 0 !important; }
body.rx-single .rx-page { display: block; width: 100%; max-width: none; padding: 0; grid-column: 1 / -1; }
body.rx-single .rx-page > .rx-bleed + .rx-bleed { margin-top: 0; }
body.rx-single .page-title, body.rx-single .wd-page-title { display: none !important; }
body.rx-no-footer .wd-footer, body.rx-no-footer .footer-container, body.rx-no-footer .wd-prefooter { display: none !important; }
body.rx-single--project { overscroll-behavior-y: none; }

/* Общие мелочи */
.rxpj-back, .rxs-back {
	display: inline-flex; align-items: center;
	color: var(--rx-t); text-decoration: none;
	line-height: 1;
}
.rxpj-back svg, .rxs-back svg { flex: 0 0 auto; color: var(--rx-o); transition: transform .35s var(--rx-ease); }
.rxpj-back i, .rxs-back i { display: block; width: 1px; background: var(--rx-o); }
@media (hover: hover) { .rxpj-back:hover svg, .rxs-back:hover svg { transform: translateX(-4px); } }
/* специфичность: button 0,1,1 / button:hover 0,2,1 — правила кнопок ниже (0,2,1) идут позже и перебивают */
:is(.rxpj, .rxs, .rx-modal) button, :is(.rxpj, .rxs, .rx-modal) button:is(:hover, :focus, :active), :is(.rxpj, .rxs) a.rxs-go {
	/* WoodMart base.css даёт всем <button> фон, отступы, min-height 42px, скругление и transition — снимаем */
	box-sizing: border-box; min-height: 0; min-width: 0; padding: 0; margin: 0;
	background: none; border: 0; border-radius: 0; box-shadow: none; outline: 0;
	color: inherit; font: inherit; letter-spacing: inherit; line-height: inherit; text-transform: none; text-decoration: none; text-shadow: none;
	cursor: pointer; opacity: 1; transform: none; transition: none; -webkit-appearance: none; appearance: none;
}
.rxpj button:focus-visible, .rxs button:focus-visible, .rxpj a:focus-visible, .rxs a:focus-visible { outline: 1px solid var(--rx-o); outline-offset: 3px; }

/* ============================================================
 * ПРОЕКТ — полноэкранный слайдер
 * ============================================================ */
.rxpj {
	position: relative; overflow: hidden;
	height: 100vh; height: 100svh; /* точную высоту экрана ставит JS */
	background: #000;
	container-type: size;
	--u: min(100cqw / 1440, 100cqh / 900);
	user-select: none; -webkit-user-select: none;
}
.rxpj-book { position: absolute; inset: 0; }

/* Куб: грани — слайды, вращение вокруг центра куба (JS задаёт transform) */
.rxpj { perspective: var(--rxpj-persp, 2400px); perspective-origin: 50% 50%; }
.rxpj-book { transform-style: preserve-3d; cursor: grab; touch-action: pan-y; }
.rxpj.is-drag .rxpj-book { cursor: grabbing; }
.rxpj-slide { position: absolute; inset: 0; visibility: hidden; backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.rxpj-slide:first-child, .rxpj.is-ready .rxpj-slide.is-active { visibility: visible; }
.rxpj.is-ready .rxpj-slide:first-child:not(.is-active) { visibility: hidden; }
.rxpj.is-turning .rxpj-slide { will-change: transform; }
.rxpj-dim { position: absolute; inset: 0; z-index: 4; background: #000; opacity: 0; pointer-events: none; }
.rxpj.is-turning .rxpj-text, .rxpj.is-turning button.rxpj-360.rxpj-360 { pointer-events: none; }

.rxpj-slide { overflow: hidden; background: #000; }
.rxpj-media, .rxpj-media .rx-pic { position: absolute; inset: 0; display: block; }
.rxpj .rxpj-img { width: 100%; height: 100%; object-fit: cover; object-position: var(--rxpj-pos, 50% 50%); -webkit-user-drag: none; pointer-events: none; }
/* Play film в фоне слайда: ролик поверх фото, под тенью и текстом; YouTube/Vimeo — «cover» по размеру слайда */
.rxpj-bgv { position: absolute; inset: 0; overflow: hidden; container-type: size; background: #000; opacity: 0; pointer-events: none; transition: opacity .45s var(--rx-ease); }
.rxpj-slide.is-film .rxpj-bgv { opacity: 1; }
.rxpj-bgv video { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.rxpj-bgv iframe { position: absolute; left: 50%; top: 50%; width: max(100cqw, 177.78cqh); height: max(100cqh, 56.25cqw); max-width: none; border: 0; transform: translate(-50%, -50%); }
.rxpj-play__c .rxpj-pause { display: none; }
.rxpj-slide.is-film .rxpj-play__c svg:not(.rxpj-pause) { display: none; }
.rxpj-slide.is-film .rxpj-play__c .rxpj-pause { display: block; margin-left: 0; }
.rxpj-shade--img { background: none !important; opacity: min(1, var(--rxpj-shade, 1)); }
.rxpj-shade--img .rx-pic { position: absolute; inset: 0; display: block; }
.rxpj .rxpj-shadow { width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; pointer-events: none; }
.rxpj-shade {
	position: absolute; inset: 0; pointer-events: none;
	background:
		linear-gradient(90deg, rgba(0,0,0,calc(var(--rxpj-shade, .55) * .85)) 0%, rgba(0,0,0,calc(var(--rxpj-shade, .55) * .55)) 28%, rgba(0,0,0,0) 55%),
		linear-gradient(0deg, rgba(0,0,0,calc(var(--rxpj-shade, .55) * .75)) 0%, rgba(0,0,0,0) 22%),
		linear-gradient(180deg, rgba(0,0,0,calc(var(--rxpj-shade, .55) * .5)) 0%, rgba(0,0,0,0) 18%);
}

.rxpj-body { position: absolute; inset: 0; }
/* Верх текста — как в макете 1440×1080, от центра экрана (на других высотах блок остаётся у центра) */
.rxpj-slide--cover .rxpj-text { position: absolute; left: calc(64 * var(--u)); top: calc(50% + (var(--rxpj-top) - 540 - 15) * var(--u)); }
.rxpj-text { max-width: calc(560 * var(--u)); }
.rxpj-back { gap: calc(18 * var(--u)); font-size: max(10px, calc(12 * var(--u))); letter-spacing: .233em; height: calc(12 * var(--u)); }
.rxpj-back svg { width: calc(18 * var(--u)); height: auto; }
.rxpj-back i { height: calc(17 * var(--u)); margin-left: calc(-1 * var(--u)); }
.rxpj-title {
	margin-top: calc((var(--rxpj-gap) - 31.76) * var(--u)) !important;
	font-size: max(28px, calc(56 * var(--u))) !important; line-height: 1.25 !important;
	letter-spacing: .161em !important; text-transform: uppercase !important;
	white-space: nowrap;
}
.rxpj-sub { margin-top: calc(15.93 * var(--u)) !important; font-size: max(12px, calc(14 * var(--u))) !important; line-height: calc(18 * var(--u)) !important; text-transform: uppercase !important; }
.rxpj-sub2 { margin-top: calc(8 * var(--u)) !important; }
.rxpj-only-m { display: none; }
.rxpj-para { margin-top: calc(8 * var(--u)) !important; max-width: calc(275 * var(--u)); font-size: max(12px, calc(14 * var(--u))) !important; line-height: calc(18 * var(--u)) !important; }

button.rxpj-play.rxpj-play { display: inline-flex !important; align-items: center; gap: calc(30 * var(--u)); margin-top: calc(49.8 * var(--u)); }
.rxpj-play__c {
	display: flex; align-items: center; justify-content: center;
	width: calc(80 * var(--u)); height: calc(80 * var(--u)); border-radius: 50%;
	background: #8D480A; border: 1px solid rgba(228,227,216,.55);
	transition: transform .4s var(--rx-ease), background-color .4s;
}
.rxpj-play__c svg { width: calc(28 * var(--u)); height: calc(31 * var(--u)); margin-left: calc(10 * var(--u)); color: var(--rx-t); }
.rxpj-play__t { font-size: max(12px, calc(14 * var(--u))); letter-spacing: .178em; }
@media (hover: hover) { button.rxpj-play.rxpj-play:hover .rxpj-play__c { transform: scale(1.06); background: #A5560F; } }

button.rxpj-360.rxpj-360 {
	position: absolute !important; left: 50%; top: calc(50% + 105 * var(--u)); z-index: 2;
	display: flex !important; align-items: center; justify-content: center;
	width: calc(200 * var(--u)); height: calc(200 * var(--u)); margin: calc(-100 * var(--u)) 0 0 calc(-100 * var(--u));
	border: 2px solid var(--rx-o); border-radius: 50%;
	transition: transform .5s var(--rx-ease), background-color .5s;
}
button.rxpj-360.rxpj-360 img { width: calc(115 * var(--u)); height: auto; margin-top: calc(-10 * var(--u)); pointer-events: none; }
@media (hover: hover) { button.rxpj-360.rxpj-360:hover { transform: scale(1.05); background: rgba(255,163,26,.12); } }

/* Обзор: картинка справа, характеристики снизу */
.rxpj-slide--overview { background: #000; }
.rxpj-slide--overview .rxpj-media { inset: auto; left: calc(50% - 186.8 * var(--u)); top: calc(50% - 431.94 * var(--u)); width: calc(840.8 * var(--u)); height: calc(630.6 * var(--u)); }
.rxpj-slide--overview .rxpj-img { object-fit: contain; }
.rxpj-slide--overview .rxpj-media { z-index: 1; } /* в макете тень под чертежом */
.rxpj-slide--overview .rxpj-body { z-index: 2; }
.rxpj-slide--overview .rxpj-body { display: block; padding: 0; }
.rxpj-slide--overview .rxpj-text { position: absolute; left: calc(64 * var(--u)); top: calc(50% - 291.5 * var(--u)); max-width: calc(470 * var(--u)); }
.rxpj-slide--overview .rxpj-para { margin-top: calc(7.5 * var(--u)) !important; }
.rxpj-specs {
	position: absolute; left: calc(50% - 351 * var(--u)); top: calc(50% + 168 * var(--u));
	display: grid; grid-template-columns: repeat(3, calc(357 * var(--u))); row-gap: calc(23.5 * var(--u));
}
.rxpj-specs dt { font-size: max(14px, calc(24 * var(--u))); line-height: calc(30 * var(--u)); letter-spacing: .19em; text-transform: uppercase; }
.rxpj-specs dd { margin-top: calc(7.5 * var(--u)) !important; font-size: max(12px, calc(18 * var(--u))); line-height: calc(23 * var(--u)); text-transform: uppercase; }

/* Навигация */
.rxpj-nav { position: absolute; left: 0; right: 0; bottom: calc(77 * var(--u)); z-index: 5; height: 0; pointer-events: none; }
.rxpj-nav > * { pointer-events: auto; }
button.rxpj-arrow.rxpj-arrow {
	position: absolute !important; top: 0; transform: translateY(-50%);
	display: flex !important; align-items: center; justify-content: center;
	width: calc(40 * var(--u)); height: calc(48 * var(--u));
	color: #FFA149; transition: opacity .3s, transform .3s var(--rx-ease);
}
button.rxpj-arrow.rxpj-arrow svg { width: calc(13.5 * var(--u)); height: calc(25 * var(--u)); }
.rxpj-arrow--prev { left: calc(27.5 * var(--u)); }
.rxpj-arrow--next { right: calc(27.5 * var(--u)); }
button.rxpj-arrow.rxpj-arrow:disabled { opacity: .3; cursor: default; }
@media (hover: hover) {
	.rxpj-arrow--prev:not(:disabled):hover { transform: translate(-4px, -50%); }
	.rxpj-arrow--next:not(:disabled):hover { transform: translate(4px, -50%); }
}
.rxpj-meta { position: absolute; left: 0; right: 0; top: 0; height: 0; white-space: nowrap; }
/* как в макете: [куб  01/06] прижаты вправо к x=530, подпись по центру x≈610, полоса 710–1070 */
.rxpj-lead { position: absolute; right: calc(50% + 196 * var(--u)); top: 0; transform: translateY(-50%); display: flex; align-items: center; }
.rxpj-meta .rxpj-label { position: absolute; left: calc(50% - 110 * var(--u)); top: 0; transform: translate(-50%, -50%); text-align: center; }
.rxpj-meta .rxpj-track { position: absolute; left: calc(50% - 10 * var(--u)); top: 0; transform: translateY(-50%); }
.rxpj-cube { width: calc(53.14 * var(--u)); height: auto; margin-right: calc(46.5 * var(--u)); pointer-events: none; overflow: visible; }
svg.rxpj-cube { filter: drop-shadow(0 0 calc(2.5 * var(--u)) rgba(255,161,73,.75)); }
.rxpj-cube__f { opacity: 0; transition: opacity .45s var(--rx-ease); }
.rxpj-cube[data-face="left"] .rxpj-cube__f--left, .rxpj-cube[data-face="right"] .rxpj-cube__f--right,
.rxpj-cube[data-face="top"] .rxpj-cube__f--top, .rxpj-cube[data-face="bottom"] .rxpj-cube__f--bottom,
.rxpj-cube[data-face="back-left"] .rxpj-cube__f--back-left, .rxpj-cube[data-face="back-right"] .rxpj-cube__f--back-right { opacity: 1; }
.rxpj-count { font-size: max(12px, calc(16 * var(--u))); letter-spacing: .134em; font-variant-numeric: tabular-nums; margin-right: 0; }
.rxpj-label { color: var(--rx-o); font-size: max(12px, calc(16 * var(--u))); letter-spacing: .2em; padding-left: .2em; }
.rxpj-track { position: relative; display: block; width: calc(360 * var(--u)); height: 1.5px; background: #CCCBCB; }
.rxpj-fill {
	position: absolute; left: 0; top: -.25px; height: 2px; width: 0;
	background: linear-gradient(90deg, #8B643F 0 47%, #F2C896 47% 100%);
	box-shadow: 0 0 6px rgba(242,200,150,.55);
	transition: width .6s var(--rx-ease);
}
.rxpj-label, .rxpj-count { transition: opacity .35s; }
.rxpj.is-turning .rxpj-label, .rxpj.is-turning .rxpj-count { opacity: .35; }

/* Превью в редакторе: каждый слайд — карточка 16:10 */
.rxpj-slide.rxpj-slide--preview { position: relative !important; inset: auto; visibility: visible !important; height: auto; min-height: 0; perspective: none; aspect-ratio: 16 / 10; container-type: size; --u: min(100cqw / 1440, 100cqh / 900); color: var(--rx-t); font-family: var(--rx-ff); border-radius: 6px; }
.rxpj-slide--preview .rxpj-body { padding-bottom: 0; }
.rxpj-slide--preview .rxpj-title { font-size: calc(56 * var(--u)) !important; }
.rxpj-slide--preview :is(.rxpj-sub, .rxpj-para, .rxpj-back, .rxpj-play__t, .rxpj-specs dt, .rxpj-specs dd) { font-size: calc(14 * var(--u)) !important; }
.rxpj-slide--preview .rxpj-specs dt { font-size: calc(24 * var(--u)) !important; }
.rxpj-slide--preview .rxpj-specs dd { font-size: calc(18 * var(--u)) !important; }
.rxpj-slide--preview .rxpj-back { font-size: calc(12 * var(--u)) !important; }
.rxpj-slide--preview::after { content: attr(data-label); position: absolute; right: 12px; top: 10px; padding: 3px 8px; border-radius: 4px; background: rgba(0,0,0,.6); color: var(--rx-o); font: 600 11px/1.2 system-ui, sans-serif; letter-spacing: .08em; }
.rx-in-editor.rxpj { height: auto; min-height: 0; }

/* Мобилка — по макету 375×812 (и планшеты в портрете). Числа — базовые линии текста из SVG макета. */
@media (max-width: 767px), (max-width: 1100px) and (orientation: portrait) {
	.rxpj { --u: calc(100cqw / 375); --uh: min(100cqh / 812, 100cqw / 375); }
	.rxpj .rxpj-img { object-position: var(--rxpj-pos-m, 50% 50%); }

	/* Текст: --rxpj-top-m = базовая линия BACK; заголовок ниже на 48, подзаголовок ещё на 38, строки по 18 */
	.rxpj-slide .rxpj-text, .rxpj-slide--overview .rxpj-text {
		position: absolute; left: calc(16 * var(--u)); right: calc(16 * var(--u)); top: calc((var(--rxpj-top-m) - 18.62) * var(--u));
		max-width: none; padding: 0;
	}
	.rxpj-back { gap: 0; font-size: 12px; height: 12px; letter-spacing: .233em; }
	.rxpj-back svg { width: 18px; margin-right: 18px; }
	.rxpj-back i { height: 17px; margin-left: calc(21px - .233em); }
	.rxpj-title { margin-top: calc((var(--rxpj-gap-m) - 38.88) * var(--u)) !important; font-size: calc(32.5 * var(--u)) !important; line-height: calc(40 * var(--u)) !important; letter-spacing: .148em !important; }
	.rxpj-sub { margin-top: calc(16.11 * var(--u)) !important; letter-spacing: .006em; font-size: calc(14 * var(--u)) !important; line-height: calc(18 * var(--u)) !important; }
	.rxpj-sub2, .rxpj-slide .rxpj-para, .rxpj-slide--overview .rxpj-para { margin-top: calc(8 * var(--u)) !important; }
	.rxpj-para { max-width: calc(275 * var(--u)); letter-spacing: .008em; font-size: calc(14 * var(--u)) !important; line-height: calc(18 * var(--u)) !important; }
	.rxpj-slide.is-sub-sm .rxpj-sub { margin-top: calc(8.38 * var(--u)) !important; font-size: calc(12 * var(--u)) !important; line-height: calc(15 * var(--u)) !important; }
	.rxpj-slide.is-m-nosub2 .rxpj-sub2 { display: none; }
	.rxpj-only-d { display: none; }
	.rxpj-only-m { display: block; }

	/* Play: круг 80 по центру (центр y=479.5), подпись — базовая линия 537.5 */
	button.rxpj-play.rxpj-play { position: absolute !important; left: 50%; top: calc((438.5 - var(--rxpj-top-m) + 18.62) * var(--u)); transform: translateX(-50%); flex-direction: column; gap: calc(2.6 * var(--uh)); margin: 0; }
	.rxpj-play__c { width: calc(82 * var(--uh)); height: calc(82 * var(--uh)); background: rgba(255,123,0,.45); border-color: rgba(228,227,216,.9); }
	.rxpj-play__c svg { width: calc(29 * var(--uh)); height: calc(33.6 * var(--uh)); margin-left: calc(6.6 * var(--uh)); }
	.rxpj-play__t { font-size: calc(14 * var(--uh)); line-height: calc(18 * var(--uh)); letter-spacing: .178em; padding-left: .178em; }
	/* 360°: круг 116, иконка 77×37, центр y=440 */
	button.rxpj-360.rxpj-360 { top: calc(50% + 33.25 * var(--uh)); width: calc(119.5 * var(--uh)); height: calc(119.5 * var(--uh)); margin: calc(-59.75 * var(--uh)) 0 0 calc(-59.75 * var(--uh)); border-width: 1.5px; }
	button.rxpj-360.rxpj-360 img { width: calc(77 * var(--uh)); margin: calc(1.9 * var(--uh)) 0 0; }

	/* Обзор: чертёж на всю ширину, y 358.9–640.1 */
	.rxpj-slide--overview .rxpj-media { left: 0; right: 0; width: auto; top: calc(358.9 * var(--u)); height: calc(281.2 * var(--u)); }
	.rxpj-specs { display: none; }

	/* Навигация: линия стрелок y=745; куб, счётчик (база 772) и подпись (база 791) по центру */
	.rxpj-nav { bottom: calc(67 * var(--uh)); }
	button.rxpj-arrow.rxpj-arrow { width: 40px; height: 40px; }
	button.rxpj-arrow.rxpj-arrow svg { width: calc(11.8 * var(--uh)); height: calc(18.9 * var(--uh)); }
	.rxpj-arrow--prev { left: calc(16.65 * var(--uh)); }
	.rxpj-arrow--next { right: calc(16.65 * var(--uh)); }
	.rxpj-meta { left: 50%; right: auto; width: 0; }
	.rxpj-lead { position: static; transform: none; display: block; }
	.rxpj-meta .rxpj-cube { position: absolute; left: 0; top: calc(-50.55 * var(--uh)); transform: translateX(-50%); width: calc(53.14 * var(--uh)); margin: 0; }
	svg.rxpj-cube { filter: drop-shadow(0 0 3px rgba(255,161,73,.8)); }
	.rxpj-meta .rxpj-count { position: absolute; left: 0; top: calc(16.38 * var(--uh)); transform: translateX(-50%); margin: 0; font-size: calc(12 * var(--uh)); line-height: calc(12 * var(--uh)); letter-spacing: .16em; }
	.rxpj-meta .rxpj-label { left: 0; top: calc(35.38 * var(--uh)); transform: translateX(-50%); font-size: calc(12 * var(--uh)); line-height: calc(12 * var(--uh)); letter-spacing: .21em; padding-left: .21em; }
	.rxpj-track { display: none; }
}

/* ============================================================
 * УСЛУГА — секции
 * ============================================================ */
.rxs { --u: calc(var(--rx-vw, 100vw) / 1440); background: #000; }
.rxs-title-m { display: none !important; }
.rxs-num, .rxs-title { display: block; font-size: max(16px, calc(24 * var(--u))) !important; line-height: calc(30 * var(--u)) !important; text-transform: uppercase !important; }
.rxs-text { font-size: max(13px, calc(16 * var(--u))) !important; line-height: calc(20 * var(--u)) !important; }

/* Тёмные полосы: свечение вырезано из макета под каждую секцию */
.rxs-band { position: relative; background: #000; }
.rxs-glow { background-color: #000; background-position: 0 0; background-size: 100% 100%; background-repeat: no-repeat; }
.rxs-glow--info { background-image: url(img/s/bg-info.webp); }
.rxs-glow--spaces { background-image: url(img/s/bg-spaces.webp); }
.rxs-glow--exp { background-image: url(img/s/bg-exp.webp); }
.rxs-glow--details { background-image: url(img/s/bg-details.webp); }
@media (max-width: 767px) {
	.rxs-glow--info { background-image: url(img/s/bg-info-m.webp); }
	.rxs-glow--spaces { background-image: url(img/s/bg-spaces-m.webp); }
	.rxs-glow--exp { background-image: url(img/s/bg-exp-m.webp); }
	.rxs-glow--details { background-image: url(img/s/bg-details-m.webp); }
}

/* Первый экран */
.rxs-hero { position: relative; height: calc(870 * var(--u)); min-height: 560px; overflow: hidden; }
.rxs-hero__media, .rxs-hero__media .rx-pic { position: absolute; inset: 0; display: block; }
.rxs .rxs-hero__img { width: 100%; height: 100%; object-fit: cover; object-position: var(--rxs-pos, 50% 50%); }
.rxs-hero::after {
	content: ''; position: absolute; inset: 0; pointer-events: none;
	background: linear-gradient(90deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.25) 40%, rgba(0,0,0,0) 65%), linear-gradient(180deg, rgba(0,0,0,.35) 0%, rgba(0,0,0,0) 20%);
}
.rxs-hero__body { position: relative; z-index: 1; padding: calc(236.8 * var(--u)) 0 0 calc(64 * var(--u)); }
.rxs-back { gap: calc(18 * var(--u)); height: calc(16 * var(--u)); font-size: max(12px, calc(16 * var(--u))); letter-spacing: .277em; }
.rxs-back svg { width: calc(18 * var(--u)); height: auto; }
.rxs-back i { height: calc(22 * var(--u)); margin-left: 0; }
.rxs-label { display: flex; align-items: center; gap: calc(24 * var(--u)); margin-top: calc(42.47 * var(--u)); color: var(--rx-o); font-size: max(13px, calc(18 * var(--u))); line-height: 1; text-transform: uppercase; }
.rxs-label i { flex: 0 0 calc(96 * var(--u)); height: 1px; background: currentColor; }
.rxs-hero__title { margin-top: calc(3.93 * var(--u)) !important; font-size: max(30px, calc(56 * var(--u))) !important; line-height: 1.25 !important; letter-spacing: .15em !important; text-transform: uppercase !important; white-space: nowrap; }
.rxs-hero__place, .rxs-hero__sub { font-size: max(12px, calc(14 * var(--u))) !important; line-height: calc(18 * var(--u)) !important; text-transform: uppercase !important; }
.rxs-hero__place { margin-top: calc(15.13 * var(--u)) !important; }
.rxs-hero__sub { margin-top: calc(8 * var(--u)) !important; }
button.rxs-scroll.rxs-scroll {
	display: inline-flex !important; align-items: center; gap: calc(26 * var(--u));
	height: calc(54 * var(--u)); margin-top: calc(40.3 * var(--u)); padding: 0 calc(30 * var(--u)) 0 calc(3 * var(--u));
	border: 1px solid #979797; border-radius: 999px;
	transition: border-color .4s, background-color .4s;
}
.rxs-scroll__c { display: flex; align-items: center; justify-content: center; width: calc(48 * var(--u)); height: calc(48 * var(--u)); border-radius: 50%; background: var(--rx-t); color: #0b0b0b; transition: transform .4s var(--rx-ease); }
.rxs-scroll__c svg { width: calc(22 * var(--u)); height: auto; }
.rxs-scroll__t { font-size: max(12px, calc(14 * var(--u))); letter-spacing: .167em; }
@media (hover: hover) { button.rxs-scroll.rxs-scroll:hover { border-color: var(--rx-t); background: rgba(0,0,0,.25); } button.rxs-scroll.rxs-scroll:hover .rxs-scroll__c { transform: rotate(90deg); } }

/* О проекте */
.rxs-info {
	display: grid; grid-template-columns: calc(319 * var(--u)) calc(482 * var(--u)) calc(239 * var(--u)) 1fr;
	align-items: start; padding: calc(75 * var(--u)) calc(24 * var(--u)) calc(38.1 * var(--u));
}
.rxs-info__text { max-width: calc(300 * var(--u)); margin-top: calc(3.5 * var(--u)) !important; }
.rxs-info .rxs-head { margin-top: calc(-1.6 * var(--u)); }
.rxs-specs { grid-column: 3 / 5; display: grid; grid-template-columns: calc(239 * var(--u)) 1fr; margin-top: calc(-4.5 * var(--u)) !important; font-size: max(13px, calc(16 * var(--u))); line-height: calc(24 * var(--u)); text-transform: uppercase; }
.rxs-specs dt { color: #858585; }

/* Видео */
.rxs-video__frame { position: relative; height: calc(533 * var(--u)); overflow: hidden; }
.rxs-video__frame .rx-pic { position: absolute; inset: 0; display: block; }
.rxs .rxs-video__img, .rxs .rxs-exp__img { width: 100%; height: 100%; object-fit: cover; object-position: var(--rxs-pos, 50% 50%); }
button.rxs-playbtn.rxs-playbtn, :is(button, a).rxs-go.rxs-go {
	position: absolute !important; left: 50%; top: 50%; z-index: 1;
	display: flex !important; align-items: center; justify-content: center;
	border-radius: 50%; border: 1px solid rgba(228,227,216,.85);
	color: var(--rx-t);
	backdrop-filter: blur(2px); -webkit-backdrop-filter: blur(2px);
	transition: transform .4s var(--rx-ease), background-color .4s;
}
button.rxs-playbtn.rxs-playbtn { width: calc(80 * var(--u)); height: calc(80 * var(--u)); margin: calc(-40 * var(--u)) 0 0 calc(-40 * var(--u)); background: rgba(232,128,24,.72); }
button.rxs-playbtn.rxs-playbtn svg { width: calc(28 * var(--u)); height: calc(32 * var(--u)); margin-left: calc(5 * var(--u)); }
@media (hover: hover) { button.rxs-playbtn.rxs-playbtn:hover, :is(button, a).rxs-go.rxs-go:hover { transform: scale(1.07); } }

/* Галерея */
.rxs-gallery { display: grid; grid-template-columns: calc(382 * var(--u)) 1fr; padding: calc(72.4 * var(--u)) 0 0; }
.rxs-gallery__side { position: relative; display: flex; flex-direction: column; padding: 0 0 0 calc(24 * var(--u)); margin-top: calc(-0.8 * var(--u)); }
.rxs-gallery__side .rxs-text { max-width: calc(248 * var(--u)); margin-top: calc(40.1 * var(--u)) !important; }
.rxs-garrows { display: flex; gap: calc(24 * var(--u)); }
.rxs-garrows--desk { margin-top: auto; padding-bottom: 0; }
.rxs-garrows--mob { display: none; }
button.rxs-garrow.rxs-garrow {
	display: flex !important; align-items: center; justify-content: center;
	width: calc(48 * var(--u)); height: calc(48 * var(--u)); border-radius: 50%;
	border: 1px solid var(--rx-o2); color: var(--rx-o2);
	transition: background-color .35s, color .35s, opacity .3s;
}
button.rxs-garrow.rxs-garrow svg { width: calc(22 * var(--u)); height: auto; }
button.rxs-garrow.rxs-garrow:disabled { opacity: .35; cursor: default; }
@media (hover: hover) { button.rxs-garrow.rxs-garrow:not(:disabled):hover { background: var(--rx-o2); color: #000; } }
.rxs-gallery__track {
	display: flex; gap: calc(24 * var(--u)); min-width: 0;
	overflow-x: auto; scrollbar-width: none; overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory; scroll-padding-left: 0;
	cursor: grab;
}
.rxs-gallery__track::-webkit-scrollbar { display: none; }
.rxs-gallery__track.is-js { scroll-snap-type: none; }
.rxs-gallery__track.is-drag { cursor: grabbing; }
.rxs-gallery__track.is-drag * { pointer-events: none; }
.rxs-gallery__item { flex: 0 0 calc(446 * var(--u)); height: calc(488 * var(--u)); overflow: hidden; scroll-snap-align: start; }
.rxs-gallery__item .rx-pic { display: block; width: 100%; height: 100%; }
.rxs .rxs-gallery__img { width: 100%; height: 100%; object-fit: cover; object-position: var(--gp, 50% 50%); -webkit-user-drag: none; transition: transform 1s var(--rx-ease); }
.rxs-empty { padding: 40px; color: #858585; font: 14px/1.4 system-ui, sans-serif; }

/* День / ночь — шторка */
.rxs-compare { padding: calc(71.8 * var(--u)) 0 0; background: #000; }
.rxs-compare__head { padding: 0 calc(24 * var(--u)); }
.rxs-compare__head .rxs-text { margin-top: calc(11.1 * var(--u)) !important; max-width: calc(250 * var(--u)); }
.rxs-cmp { position: relative; height: calc(533 * var(--u)); margin: calc(10.1 * var(--u)) 0 0 calc(9 * var(--u)); overflow: hidden; touch-action: pan-y; }
.rxs .rxs-cmp__a, .rxs .rxs-cmp__b { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: var(--cmp-pos, 50% 50%); pointer-events: none; }
.rxs-cmp__a { clip-path: inset(0 calc(100% - var(--p)) 0 0); }
.rxs-cmp__line { position: absolute; top: 0; bottom: 0; left: var(--p); width: 2px; margin-left: -1px; background: #9A5B12; pointer-events: none; }
.rxs-cmp__line span { position: absolute; left: 50%; top: calc(50% + 25 * var(--u)); width: calc(30 * var(--u)); height: calc(30 * var(--u)); min-width: 22px; min-height: 22px; transform: translate(-50%, -50%); border-radius: 50%; background: #E3962A; box-shadow: 0 0 0 1px #9A5B12, 0 0 12px rgba(227,150,42,.5); transition: transform .3s var(--rx-ease); }
.rxs-cmp:hover .rxs-cmp__line span, .rxs-cmp.is-drag .rxs-cmp__line span { transform: translate(-50%, -50%) scale(1.2); }
.rxs-cmp__range { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; -webkit-appearance: none; appearance: none; background: none; }
.rxs-cmp__range::-webkit-slider-thumb { -webkit-appearance: none; width: 44px; height: 9999px; }

/* Real-time + GO */
.rxs-exp { background: #000; }
.rxs-exp__head { display: grid; grid-template-columns: calc(305.5 * var(--u)) 1fr; align-items: start; padding: calc(71.9 * var(--u)) calc(24 * var(--u)) calc(40.1 * var(--u)); }
.rxs-exp__head .rxs-text { margin-top: calc(15.1 * var(--u)) !important; }
.rxs-exp__frame { position: relative; height: calc(800 * var(--u)); overflow: hidden; }
.rxs-exp__frame .rx-pic { position: absolute; inset: 0; display: block; }
:is(button, a).rxs-go.rxs-go { top: 41.75%; width: calc(120 * var(--u)); height: calc(120 * var(--u)); margin: calc(-60 * var(--u)) 0 0 calc(-60 * var(--u)); background: rgba(176,78,0,.82); text-decoration: none; }
:is(button, a).rxs-go.rxs-go svg { width: calc(66 * var(--u)); height: auto; }

/* Модалка видео */
.rx-modal { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 4vmin; background: rgba(0,0,0,.88); opacity: 0; transition: opacity .35s; }
.rx-modal.is-open { opacity: 1; }
.rx-modal__box { position: relative; width: min(1280px, 100%); aspect-ratio: 16 / 9; max-height: 100%; background: #000; }
.rx-modal__box iframe, .rx-modal__box video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
button.rx-modal__close.rx-modal__close { all: unset; position: absolute; right: 0; top: -44px; width: 36px; height: 36px; cursor: pointer; color: #E4E3D8; display: flex; align-items: center; justify-content: center; }
button.rx-modal__close.rx-modal__close::before, button.rx-modal__close.rx-modal__close::after { content: ''; position: absolute; width: 24px; height: 1.5px; background: currentColor; transform: rotate(45deg); }
button.rx-modal__close.rx-modal__close::after { transform: rotate(-45deg); }
.rx-modal__empty { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: #858585; font: 14px/1.4 system-ui, sans-serif; text-align: center; padding: 20px; }
html.rx-lock, html.rx-lock body { overflow: hidden !important; }

/* Мобилка — по макету 375 */
@media (max-width: 767px) {
	.rxs { --u: calc(var(--rx-vw, 100vw) / 375); }
	.rxs-num, .rxs-title { font-size: 14px !important; line-height: 18px !important; }
	.rxs-head.has-m .rxs-title-d { display: none !important; }
	.rxs-head.has-m .rxs-title-m { display: block !important; }
	.rxs-text { font-size: 10px !important; line-height: 13px !important; }

	.rxs-hero { height: 100svh; min-height: 600px; max-height: 900px; }
	.rx-in-editor.rxs-hero { height: 812px; }
	.rxs-hero::after { background: linear-gradient(180deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.3) 40%, rgba(0,0,0,0) 60%); }
	.rxs .rxs-hero__img { object-position: var(--rxs-pos-m, 50% 50%); }
	.rxs-hero__body { padding: 105.1px 16px 0; }
	.rxs-back { gap: 18px; height: 12px; font-size: 12px; letter-spacing: .233em; }
	.rxs-back svg { width: 18px; }
	.rxs-back i { height: 17px; margin-left: 3px; }
	.rxs-label { gap: 24px; margin-top: 11.7px; font-size: 14px; }
	.rxs-label i { flex-basis: 64px; }
	.rxs-hero__title { margin-top: 13.9px !important; font-size: min(32.5px, 8.67vw) !important; line-height: 40px !important; letter-spacing: .148em !important; }
	.rxs-hero__place, .rxs-hero__sub { font-size: 12px !important; line-height: 15px !important; }
	.rxs-hero__place { margin-top: 7.9px !important; }
	.rxs-hero__sub { margin-top: 8px !important; max-width: 220px; }
	button.rxs-scroll.rxs-scroll { display: none !important; }

	.rxs-info { grid-template-columns: 157px 1fr; padding: 58px 16px 36px; row-gap: 32px; }
	.rxs-info__text { margin-top: 0 !important; max-width: none; }
	.rxs-specs { grid-column: 1 / -1; grid-template-columns: 196px 1fr; align-items: center; row-gap: 8px; margin: 0 !important; font-size: 14px; line-height: 18px; }
	.rxs-specs dd { font-size: 10px; line-height: 13px; }

	.rxs-video { padding: 3.6px 16px 0; background: #000; }
	.rxs-video__frame { height: auto; aspect-ratio: 343 / 240; }
	button.rxs-playbtn.rxs-playbtn { width: 64px; height: 64px; margin: -32px 0 0 -32px; }
	button.rxs-playbtn.rxs-playbtn svg { width: 22px; height: 26px; margin-left: 4px; }

	.rxs-gallery { grid-template-columns: 1fr; padding: 89.6px 0 0; }
	.rxs-gallery__side { padding: 0 16px; }
	.rxs-gallery__side .rxs-text { max-width: 160px; margin-top: 24px !important; }
	.rxs-garrows--desk { display: none; }
	.rxs-garrows--mob { display: flex; gap: 22px; padding: 52.9px 14px 0; }
	button.rxs-garrow.rxs-garrow { width: 50px; height: 50px; }
	button.rxs-garrow.rxs-garrow svg { width: 22px; }
	.rxs-gallery__track { gap: 24px; padding: 0 16px 0 15px; margin-top: 53.8px; scroll-padding-left: 15px; }
	.rxs-gallery__item { flex-basis: 303px; height: 331.5px; }

	.rxs-compare { padding-top: 79.1px; }
	.rxs-compare__head { padding: 0 16px; }
	.rxs-compare__head .rxs-text { margin-top: 11.1px !important; max-width: 200px; }
	.rxs-cmp { height: auto; aspect-ratio: 343 / 240; margin: 39.8px 16px 0; }
	.rxs-cmp__line span { width: 22px; height: 22px; top: 50%; }
	/* как в мобильном макете: кадр ПК (1440×533), уменьшенный по высоте, по центру */
	.rxs .rxs-cmp__a, .rxs .rxs-cmp__b { left: 50%; width: 189.04%; transform: translateX(-50%); }
	.rxs-cmp__a { clip-path: inset(0 calc(100% - (50% + (var(--p) - 50%) / 1.8904)) 0 0); }

	.rxs-exp__head { grid-template-columns: 203px 1fr; padding: 117.3px 16px 39.8px; }
	.rxs-exp__head .rxs-text { margin-top: -1.4px !important; }
	.rxs-exp__frame { height: auto; aspect-ratio: 343 / 240; margin: 0 16px; }
	:is(button, a).rxs-go.rxs-go { top: 50%; width: 64px; height: 64px; margin: -32px 0 0 -32px; }
	:is(button, a).rxs-go.rxs-go svg { width: 45.4px; }
	.rxs-gallery { padding-bottom: 0; }
	.rxs-exp + .rxs-gallery { padding-top: 80.9px; }
}

@media (prefers-reduced-motion: reduce) {
	.rxpj *, .rxs *, .rx-modal { transition: none !important; }
}

/* ============================================================
 * Страница услуги (rtex/sservice): название + текст + фото или видео
 * ============================================================ */
.rxs-svc { padding: max(130px, calc(200 * var(--u))) calc(64 * var(--u)) calc(120 * var(--u)); color: #E4E3D8; }
.rxs-svc .rxs-label { margin-top: calc(42.47 * var(--u)); }
.rxs-svc__title { margin: calc(3.93 * var(--u)) 0 0 !important; font-size: max(30px, calc(56 * var(--u))) !important; line-height: 1.25 !important; letter-spacing: .15em !important; text-transform: uppercase !important; white-space: nowrap; color: #E4E3D8 !important; }
.rxs-svc__sub { margin: calc(15 * var(--u)) 0 0 !important; font-size: max(13px, calc(16 * var(--u))) !important; line-height: 1.4 !important; letter-spacing: .08em; text-transform: uppercase !important; color: #E4E3D8 !important; }
.rxs-svc__text { max-width: max(520px, calc(760 * var(--u))); margin-top: calc(56 * var(--u)); }
.rxs-svc__text p { margin: 0 0 1.1em !important; font-size: max(14px, calc(18 * var(--u))) !important; line-height: 1.6 !important; color: #B3B3B3 !important; }
.rxs-svc__text p:last-child { margin-bottom: 0 !important; }
.rxs-svc__media { margin-top: calc(72 * var(--u)); }
.rxs-svc__frame { position: relative; overflow: hidden; aspect-ratio: 1312 / 680; background: #0b0b0b; }
.rxs-svc__frame .rx-pic { position: absolute; inset: 0; display: block; }
.rxs .rxs-svc__img { width: 100%; height: 100%; object-fit: cover; object-position: var(--rxs-pos, 50% 50%); }
@media (max-width: 767px) {
	.rxs-svc { padding: 105px 16px 64px; }
	.rxs-svc .rxs-label { margin-top: 11.7px; }
	.rxs-svc__title { margin-top: 13.9px !important; font-size: min(32.5px, 8.67vw) !important; line-height: 40px !important; letter-spacing: .148em !important; }
	.rxs-svc__sub { margin-top: 8px !important; font-size: 12px !important; }
	.rxs-svc__text { max-width: none; margin-top: 32px; }
	.rxs-svc__text p { font-size: 14px !important; }
	.rxs-svc__media { margin-top: 40px; }
	.rxs-svc__frame { aspect-ratio: 343 / 240; }
}

/* Дневная версия страницы услуги: светлый фон, цвета как у секции Services на главной днём */
html.theme-day .rxs-svc { background: #F4F2EE; color: #284A78; }
html.theme-day .rxs-svc .rxs-svc__title,
html.theme-day .rxs-svc .rxs-svc__sub { color: #284A78 !important; }
html.theme-day .rxs-svc .rxs-svc__text p { color: #4E4E4E !important; }
html.theme-day .rxs-svc .rxs-back { color: #303129; }
html.theme-day .rxs-svc__frame { background: #E6E3DD; }
/* Шапка WoodMart поверх светлой страницы днём — тёмная (по умолчанию она светлая под тёмный фон) */
html.theme-day body.rx-svc-page .whb-header .wd-logo img,
html.theme-day body.rx-svc-page .whb-header .wd-header-mobile-nav img { filter: brightness(.19); }
html.theme-day body.rx-svc-page .whb-header .wd-nav > li > a,
html.theme-day body.rx-svc-page .whb-header .woodmart-nav-link,
html.theme-day body.rx-svc-page .whb-header .wd-header-mobile-nav a { color: #303129 !important; }
html.theme-day body.rx-svc-page .whb-header .wd-nav > li > a:hover { color: #BE7200 !important; }
html.theme-day body.rx-svc-page .whb-header .wd-button-wrapper a,
html.theme-day body.rx-svc-page .whb-header a.btn { color: #303129 !important; border-color: rgba(48, 49, 41, .45) !important; }

/* Фон страницы услуги — как у секции Process на главной (день/ночь), приглушённый.
   Закреплён, как фон About: страница едет поверх неподвижного фона. clip-path режет fixed-слой
   по секции — работает и на iOS, где background-attachment: fixed игнорируется.
   Картинка — плотная середина оригинала 2880px без белых полей, поэтому заполняет весь экран. */
.rxs-svc { position: relative; clip-path: inset(0); isolation: isolate; }
.rxs-svc::before {
	content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none;
	background: url(img/s/svc-bg-night.webp) center / cover no-repeat;
	opacity: .6;
}
html.theme-day .rxs-svc::before { background-image: url(img/s/svc-bg-day.webp); opacity: .35; }
.rx-in-editor.rxs-svc::before { position: absolute; }

/* 2.8.0: значок GO на видео страницы услуги (Real-time) — по центру кадра */
.rxs-svc__frame :is(button, a).rxs-go.rxs-go { top: 50%; }

/* 2.13.0: блок 360° под страницей услуги (rtex/s360) — продолжение той же страницы:
   отступы как между текстом и фото, рамка как у фото, круг 360° как на слайде проекта */
.rxs-svc:has(+ .rxs-s360) { padding-bottom: 0; }
.rxs-svc.rxs-s360 { padding-top: calc(72 * var(--u)); }
.rxs-svc.rxs-s360 .rxs-label { margin-top: 0; }
.rxs-s360__head .rxs-svc__sub { margin-top: calc(15 * var(--u)) !important; }
.rxs-s360__head + .rxs-svc__media { margin-top: calc(32 * var(--u)); }
.rxs-s360 > .rxs-svc__media:first-child { margin-top: 0; }
.rxs-s360__frame[data-rx-pano] { cursor: pointer; }
.rxs-s360__shade { position: absolute; inset: 0; z-index: 1; pointer-events: none; background: radial-gradient(circle at 50% 50%, rgba(0,0,0,.28) 0%, rgba(0,0,0,.12) 45%, rgba(0,0,0,0) 75%); }
.rxs-s360 .rxs-svc__img { transition: transform 1.2s var(--rx-ease); }
.rxs .rxs-s360__frame button.rxs-360 {
	position: absolute !important; left: 50%; top: 50%; z-index: 2;
	display: flex !important; align-items: center; justify-content: center;
	width: calc(160 * var(--u)); height: calc(160 * var(--u)); margin: calc(-80 * var(--u)) 0 0 calc(-80 * var(--u)); padding: 0;
	border: 2px solid var(--rx-o); border-radius: 50%; background: rgba(0,0,0,.08);
	backdrop-filter: blur(2px); -webkit-backdrop-filter: blur(2px);
	cursor: pointer; transition: transform .5s var(--rx-ease), background-color .5s;
}
.rxs .rxs-s360__frame button.rxs-360 img { width: calc(92 * var(--u)); height: auto; margin-top: calc(-8 * var(--u)); pointer-events: none; }
.rxs .rxs-s360__frame button.rxs-360:disabled { cursor: default; opacity: .75; }
.rxs .rxs-s360__frame button.rxs-360:focus-visible { outline: 1px solid var(--rx-o); outline-offset: 4px; }
@media (hover: hover) {
	.rxs-s360__frame[data-rx-pano]:hover button.rxs-360 { transform: scale(1.05); background: rgba(255,163,26,.12); }
	.rxs-s360__frame[data-rx-pano]:hover .rxs-svc__img { transform: scale(1.03); }
}
@media (max-width: 767px) {
	.rxs-svc.rxs-s360 { padding-top: 40px; }
	.rxs-s360__head .rxs-svc__sub { margin-top: 8px !important; }
	.rxs-s360__head + .rxs-svc__media { margin-top: 20px; }
	.rxs .rxs-s360__frame button.rxs-360 { width: 96px; height: 96px; margin: -48px 0 0 -48px; border-width: 1.5px; }
	.rxs .rxs-s360__frame button.rxs-360 img { width: 60px; margin-top: 1px; }
}

/* ============================================================
 * 2.9.0: всплывающая карусель фото (.rx-lb), галереи без лимита
 * ============================================================ */
.rx-modal.rx-lb { padding: 0; background: rgba(0,0,0,.94); font-family: var(--rx-ff, 'Orbitron', sans-serif); }
.rx-lb__stage { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: 72px 112px; touch-action: pan-y; user-select: none; -webkit-user-select: none; }
.rx-lb__img { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; opacity: 0; transform: translateX(var(--rx-lb-from, 0)); transition: opacity .35s ease, transform .35s cubic-bezier(.22,.61,.36,1); -webkit-user-drag: none; }
.rx-lb__img.is-in { opacity: 1; transform: none; }
.rx-lb button.rx-lb__nav { all: unset; position: absolute; top: 50%; z-index: 2; width: 56px; height: 56px; margin-top: -28px; display: flex; align-items: center; justify-content: center; box-sizing: border-box; border: 1px solid rgba(255,159,46,.55); border-radius: 50%; color: #FF9F2E; cursor: pointer; transition: background .3s, color .3s, transform .3s; }
.rx-lb button.rx-lb__nav--prev { left: 32px; }
.rx-lb button.rx-lb__nav--next { right: 32px; }
.rx-lb button.rx-lb__nav svg { width: 22px; height: auto; }
@media (hover: hover) { .rx-lb button.rx-lb__nav:hover { background: #FF9F2E; color: #000; } }
.rx-lb__count { position: absolute; left: 50%; bottom: 26px; transform: translateX(-50%); color: #FF9F2E; font-size: 16px; letter-spacing: .16em; white-space: nowrap; }
.rx-lb__count b { font-weight: inherit; }
.rx-lb button.rx-lb__close.rx-modal__close { position: absolute; top: 18px; right: 20px; z-index: 3; width: 44px; height: 44px; }
.rx-lb.is-single .rx-lb__nav, .rx-lb.is-single .rx-lb__count { display: none; }
@media (max-width: 767px) {
	.rx-lb__stage { padding: 64px 0 96px; }
	.rx-lb button.rx-lb__nav { top: auto; bottom: 18px; margin-top: 0; width: 48px; height: 48px; }
	.rx-lb button.rx-lb__nav--prev { left: 16px; }
	.rx-lb button.rx-lb__nav--next { right: 16px; }
	.rx-lb__count { bottom: 33px; font-size: 14px; }
	.rx-lb button.rx-lb__close.rx-modal__close { top: 10px; right: 8px; }
}

/* Слайд куба с каруселью: кнопка VIEW GALLERY как PLAY FILM, тап по слайду тоже открывает */
.rxpj-slide.has-gallery .rxpj-media { cursor: pointer; }
.rxpj-galicon { width: calc(30 * var(--u)); height: auto; color: var(--rx-t); }
.rxpj-text > .rxpj-play ~ button.rxpj-gal.rxpj-gal { display: flex !important; width: fit-content; margin-top: calc(32 * var(--u)); }
@media (max-width: 767px) {
	.rxpj-galicon { width: calc(32 * var(--uh)); }
	.rxpj-play ~ button.rxpj-gal.rxpj-gal { top: calc((438.5 - var(--rxpj-top-m) + 18.62 + 128) * var(--u)); }
	button.rxpj-play.rxpj-gal.rxpj-gal { margin: 0; }
}

/* Шторка день/ночь: несколько пар, стрелки и счётчик справа от заголовка */
.rxs-compare__head { position: relative; }
.rxs-cmp-nav { position: absolute; right: calc(24 * var(--u)); bottom: 0; display: flex; align-items: center; gap: calc(28 * var(--u)); color: #FF9F2E; }
.rxs-cmp-nav__count { font-size: max(14px, calc(18 * var(--u))); letter-spacing: .1em; white-space: nowrap; }
.rxs-cmp-nav__count b { font-weight: inherit; }
.rxs-cmp-nav__btns { display: flex; gap: calc(16 * var(--u)); }
.rxs-cmp-nav button.rxs-garrow.rxs-garrow { color: #FF9F2E; }
.rxs-cmp-set { position: relative; }
.rxs-cmp[hidden] { display: none !important; }
.rxs-compare--many .rxs-cmp.is-on { animation: rxs-cmp-in .45s ease; }
@keyframes rxs-cmp-in { from { opacity: 0; } to { opacity: 1; } }
@media (max-width: 767px) {
	.rxs-cmp-nav { position: static; justify-content: space-between; margin-top: 20px; }
	.rxs-cmp-nav button.rxs-garrow.rxs-garrow { width: 44px; height: 44px; }
}

/* SPACES / DETAILS: тап по фото — на весь экран */
.rxs-gallery__item[data-rx-i] { cursor: zoom-in; }

/* Страница услуги: галерея — сетка 2 колонки (мобилка — 1), тап — на весь экран */
.rxs-svc__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(16 * var(--u)); }
.rxs-svc button.rxs-svc__cell { all: unset; position: relative; display: block; overflow: hidden; aspect-ratio: 3 / 2; background: #0b0b0b; cursor: zoom-in; }
.rxs-svc__cell .rx-pic { position: absolute; inset: 0; display: block; }
.rxs .rxs-svc__gimg { width: 100%; height: 100%; object-fit: cover; object-position: var(--gp, 50% 50%); transition: transform .6s cubic-bezier(.22,.61,.36,1); }
@media (hover: hover) { .rxs-svc button.rxs-svc__cell:hover .rxs-svc__gimg { transform: scale(1.04); } }
.rxs-svc button.rxs-svc__cell:focus-visible { outline: 1px solid #FF9F2E; outline-offset: 2px; }
html.theme-day .rxs-svc button.rxs-svc__cell { background: #E6E3DD; }
@media (max-width: 767px) {
	.rxs-svc__grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
}

/* Фото день / ночь (rtxs_pic): на страницах проектов и услуг sections.css может не грузиться — правило дублируем */
html.theme-day .rx-night-only,
html.theme-night .rx-day-only { display: none !important; }

/* ============================================================
 * 2.10.0: фоновое видео ПК / мобилка × день / ночь (.rxbv), вертикальное окно видео
 * ============================================================ */
.rxbv { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.rxbv video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .8s ease; }
.rxbv.is-on video { opacity: 1; }
.rxbv::after { content: ''; position: absolute; inset: 0; background: #000; opacity: var(--rxbv-dim, 0); }
.rxbv-host { isolation: isolate; }
.rxbv-ph { padding: 14px 16px; border: 1px dashed #FF9F2E; border-radius: 6px; background: rgba(0,0,0,.6); color: #FF9F2E; font: 13px/1.4 system-ui, sans-serif; }
.rx-modal--v .rx-modal__box { width: auto; height: min(100%, 92svh); aspect-ratio: 9 / 16; }
.rx-modal--v button.rx-modal__close.rx-modal__close { top: 8px; right: 8px; z-index: 2; }
@media (prefers-reduced-motion: reduce) { .rxbv { display: none; } }

/* 2.11.0: встроенный 3D-тур / Matterport / видео на странице услуги */
.rxs-svc__frame--embed { aspect-ratio: 16 / 9; }
.rxs-svc__frame--embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
@media (max-width: 767px) { .rxs-svc__frame--embed { aspect-ratio: 4 / 5; } }

/* ============================================================
 * 2.12.0: панорама 360° на весь экран (Pannellum в плагине), вращение пальцем / мышью
 * ============================================================ */
.rx-modal.rx-pano { padding: 0; background: #000; }
.rx-pano__view { position: absolute; inset: 0; }
.rx-pano .pnlm-container { background: #000; font-family: var(--rx-ff, 'Orbitron', sans-serif); }
.rx-pano .pnlm-orientation-button, .rx-pano .pnlm-fullscreen-toggle-button, .rx-pano .pnlm-compass { display: none !important; } /* только пальцем / мышью, без гироскопа */
.rx-pano .pnlm-controls-container { top: auto; bottom: 24px; left: 24px; }
.rx-pano .pnlm-load-box { background: rgba(0,0,0,.6); border-radius: 12px; }
.rx-pano .pnlm-lbar-fill { background: #FF9F2E; }
.rx-pano .pnlm-about-msg { display: none !important; }
.rx-pano__hint { position: absolute; left: 50%; top: 50%; z-index: 3; display: flex; flex-direction: column; align-items: center; gap: 10px; transform: translate(-50%, -50%); padding: 22px 28px; border: 1px solid rgba(255,159,46,.55); border-radius: 50%; color: #FF9F2E; background: rgba(0,0,0,.35); pointer-events: none; transition: opacity .6s; }
.rx-pano__hint svg { width: 64px; height: 32px; animation: rx-pano-hint 1.8s ease-in-out infinite; }
.rx-pano__hint span { font-size: 14px; letter-spacing: .16em; }
.rx-pano.is-touched .rx-pano__hint { opacity: 0; }
@keyframes rx-pano-hint { 0%, 100% { transform: translateX(-8px); } 50% { transform: translateX(8px); } }
.rx-pano .rx-lb__nav, .rx-pano .rx-lb__count, .rx-pano .rx-lb__close { z-index: 4; }
.rx-pano .rx-lb__count { text-shadow: 0 1px 6px rgba(0,0,0,.6); }
