/**
 * Блок интерактивных точек-подсказок на фото перегородки.
 */

.hotspots {
	padding: clamp(3rem, 8vw, 6rem) 0;
	background: #0f0f10;
	color: rgb(var(--color-primary));
}

.hotspots__head {
	text-align: center;
	margin-bottom: clamp(1.75rem, 4vw, 2.75rem);
}

.hotspots__title {
	font-family: var(--font-serif);
	font-weight: 300;
	font-size: clamp(1.75rem, 4vw, 2.75rem);
	line-height: 1.15;
	letter-spacing: -0.01em;
	margin: 0 0 0.75rem;
}

.hotspots__subtitle {
	font-size: 0.9375rem;
	color: rgb(var(--color-primary) / 0.7);
	margin: 0 auto;
	max-width: 52ch;
}

.hotspots__container {
	position: relative;
}

/* «Сцена» сохраняет пропорции картинки, чтобы координаты в % были стабильны */
.hotspots__stage {
	position: relative;
	width: 100%;
	overflow: hidden;
	border-radius: 16px;
	box-shadow: 0 30px 80px rgb(0 0 0 / 0.45);
	isolation: isolate;
	line-height: 0; /* убирает щель под img */
}

.hotspots__bg {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
	user-select: none;
	-webkit-user-drag: none;
}

/* ---- ТОЧКА ---- */
.hotspots__point {
	position: absolute;
	left: var(--hx, 50%);
	top: var(--hy, 50%);
	transform: translate(-50%, -50%);
	width: 32px;
	height: 32px;
	padding: 0;
	margin: 0;
	background: transparent;
	border: 0;
	cursor: pointer;
	color: #fff;
	z-index: 2;
	line-height: 0;
}

.hotspots__point:focus { outline: none; }
.hotspots__point:focus-visible .hotspots__dot {
	box-shadow: 0 0 0 3px rgb(var(--color-accent) / 0.6);
}

/* Зелёный плюсик */
.hotspots__dot {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: linear-gradient(135deg, #3ecf67 0%, #1fa84d 100%);
	box-shadow:
		0 6px 14px rgb(31 168 77 / 0.45),
		inset 0 0 0 1px rgb(255 255 255 / 0.3);
	transition: transform 280ms cubic-bezier(.2,.6,.2,1);
}

.hotspots__point:hover .hotspots__dot,
.hotspots__point.is-open .hotspots__dot {
	transform: scale(1.12);
}

.hotspots__plus {
	position: relative;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: transform 300ms cubic-bezier(.2,.6,.2,1);
}

.hotspots__point.is-open .hotspots__plus {
	transform: rotate(45deg);
}

/* Пульсация */
.hotspots__pulse {
	position: absolute;
	inset: 0;
	border-radius: 50%;
	background: rgb(62 207 103 / 0.55);
	animation: hotspotsPulse 2.1s ease-out infinite;
	z-index: 1;
}

@keyframes hotspotsPulse {
	0%   { transform: scale(0.85); opacity: 0.75; }
	70%  { transform: scale(2.1);  opacity: 0;    }
	100% { transform: scale(2.1);  opacity: 0;    }
}

/* Отключаем пульс для чувствительных к движению */
@media (prefers-reduced-motion: reduce) {
	.hotspots__pulse { animation: none; opacity: 0.45; }
	.hotspots__dot,
	.hotspots__plus { transition: none; }
}

/* ---- ПАНЕЛЬ-ПОДСКАЗКА ---- */
.hotspots__panel {
	position: absolute;
	width: clamp(240px, 28vw, 320px);
	padding: 1rem 1.125rem 1.125rem;
	background: #fff;
	color: #111;
	border-radius: 14px;
	box-shadow: 0 20px 50px rgb(0 0 0 / 0.35);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(8px) scale(0.96);
	transform-origin: top left;
	transition:
		opacity 220ms ease,
		transform 260ms cubic-bezier(.2,.6,.2,1),
		visibility 0s linear 220ms;
	z-index: 3;
	text-align: left;
	line-height: 1.45;
	white-space: normal;
}

.hotspots__point:hover .hotspots__panel,
.hotspots__point:focus-visible .hotspots__panel,
.hotspots__point.is-open .hotspots__panel {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateY(0) scale(1);
	transition-delay: 0s;
}

/* Размещение панели: по умолчанию — вправо-вниз от точки */
.hotspots__point--right .hotspots__panel { left: calc(100% + 14px); top: -6px; transform-origin: top left; }
.hotspots__point--left  .hotspots__panel { right: calc(100% + 14px); top: -6px; transform-origin: top right; }
.hotspots__point--right.hotspots__point--up .hotspots__panel { top: auto; bottom: -6px; transform-origin: bottom left; }
.hotspots__point--left.hotspots__point--up  .hotspots__panel { top: auto; bottom: -6px; transform-origin: bottom right; }

.hotspots__panel-title {
	display: block;
	font-family: var(--font-sans);
	font-weight: 600;
	font-size: 0.8125rem;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	margin-bottom: 0.5rem;
	color: #111;
}

.hotspots__panel-text {
	display: block;
	font-size: 0.875rem;
	color: #2a2a2a;
}

.hotspots__panel-text p { margin: 0 0 0.5rem; }
.hotspots__panel-text p:last-child { margin-bottom: 0; }

/* ---- МОБИЛЬНАЯ ВЕРСИЯ ---- */
@media (max-width: 767px) {
	.hotspots {
		padding: clamp(2rem, 7vw, 3rem) 0;
	}

	.hotspots__head {
		margin-bottom: 1.25rem;
		padding: 0 1rem;
	}
	.hotspots__title { font-size: clamp(1.5rem, 6vw, 1.9rem); }
	.hotspots__subtitle { font-size: 0.8125rem; }

	/* На мобильном убираем container-отступы — картинка «в край» */
	.hotspots__container {
		padding-left: 0;
		padding-right: 0;
		max-width: none;
	}

	/* Вертикальная сцена 9:16 — показываем только перегородку (правая часть исходной картинки) */
	.hotspots__stage {
		aspect-ratio: 9 / 16;
		max-height: calc(100svh - 80px);
		border-radius: 0;
		overflow: visible; /* чтобы панель-подсказка могла чуть выходить за край */
		box-shadow: none;
	}

	/* Картинку обрезаем через отдельный слой (img сам по себе покроет всё) */
	.hotspots__bg {
		width: 100%;
		height: 100%;
		object-fit: cover;
		/* Сдвигаем кадр вправо, чтобы в центре оказалась сама перегородка */
		object-position: 78% center;
		/* Картинка обрезается до сцены, но точки и панели рисуются поверх */
		clip-path: inset(0);
	}

	/* Используем отдельные mobile-координаты для точек */
	.hotspots__point {
		left: var(--hx-m, var(--hx, 50%));
		top:  var(--hy-m, var(--hy, 50%));
		width: 38px;
		height: 38px;
	}
	.hotspots__dot {
		width: 38px;
		height: 38px;
	}

	/* На мобильном — сбрасываем все десктопные позиционирования
	 * и заново задаём единую логику: панель центрируется под/над точкой,
	 * ширина фиксированная, не уходит за край экрана. */
	.hotspots__panel,
	.hotspots__point--right .hotspots__panel,
	.hotspots__point--left .hotspots__panel,
	.hotspots__point--right.hotspots__point--up .hotspots__panel,
	.hotspots__point--left.hotspots__point--up .hotspots__panel {
		position: absolute;
		left: 50%;
		right: auto;
		top: calc(100% + 14px);
		bottom: auto;
		width: min(88vw, 360px);
		max-width: min(88vw, 360px);
		transform: translateX(-50%) translateY(6px) scale(0.97);
		transform-origin: top center;
	}

	/* Если точка в нижней половине вертикальной сцены — панель показываем сверху */
	.hotspots__point--mup .hotspots__panel {
		top: auto;
		bottom: calc(100% + 14px);
		transform: translateX(-50%) translateY(-6px) scale(0.97);
		transform-origin: bottom center;
	}
	.hotspots__point--mup.is-open .hotspots__panel {
		transform: translateX(-50%) translateY(0) scale(1);
	}

	.hotspots__point.is-open .hotspots__panel {
		transform: translateX(-50%) translateY(0) scale(1);
	}

	.hotspots__panel {
		padding: 0.875rem 1rem 1rem;
	}
	.hotspots__panel-title { font-size: 0.75rem; }
	.hotspots__panel-text  { font-size: 0.8125rem; line-height: 1.5; }
}

/* Чтение с клавиатуры — скрываем лишнее */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	-webkit-clip-path: inset(50%);
	clip-path: inset(50%);
	height: 1px;
	width: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	word-wrap: normal !important;
}
