/* Picture This Image Hotspots */
.pt-ihs {
	position: relative;
	display: block;
	line-height: 0;
}
.pt-ihs > img {
	display: block;
	width: 100%;
	height: auto;
	max-width: 100%;
}
.pt-ihs__spot {
	--pt-ihs-size: 40px;
	position: absolute;
	left: 50%;
	top: 50%;
	width: var(--pt-ihs-size);
	height: var(--pt-ihs-size);
	transform: translate(-50%, -50%);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	z-index: 1;
	line-height: 1;
	text-decoration: none;
	-webkit-tap-highlight-color: transparent;
}
.pt-ihs__spot:hover,
.pt-ihs__spot:focus-visible,
.pt-ihs__spot.is-active,
.pt-ihs__spot.is-open {
	z-index: 5;
}
.pt-ihs__spot:focus { outline: none; }
.pt-ihs__spot:focus-visible {
	outline: 3px solid #fff;
	outline-offset: 2px;
	box-shadow: 0 0 0 5px rgba(0, 0, 0, .6);
	border-radius: 8px;
}

/* Pin icon */
.pt-ihs__pin {
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: var(--pt-ihs-size);
	color: #54595f;
	transition: color .2s;
}
.pt-ihs__pin svg {
	width: var(--pt-ihs-size);
	height: var(--pt-ihs-size);
	fill: #54595f;
}
.elementor-widget:not(.pt-ihs-pins-yes) .pt-ihs__pin { display: none; }

/* Editor-only outline so invisible hotspots can be placed */
.elementor-editor-active .pt-ihs-outline-yes .pt-ihs__spot {
	outline: 2px dashed rgba(255, 0, 110, .9);
	outline-offset: -2px;
	border-radius: 8px;
	background: rgba(255, 0, 110, .12);
}

/* Tooltip */
.pt-ihs__tip {
	--pt-ihs-gap: 6px;
	--pt-ihs-tip-max: 400px;
	--pt-ihs-shift: 0px;
	position: absolute;
	left: 50%;
	bottom: calc(100% + var(--pt-ihs-gap));
	transform: translateX(calc(-50% + var(--pt-ihs-shift)));
	box-sizing: border-box;
	width: max-content;
	max-width: min(var(--pt-ihs-tip-max), calc(100vw - 16px));
	padding: 5px 20px;
	background-color: rgba(12, 12, 12, .5);
	color: #fff;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.5;
	text-align: center;
	white-space: normal;
	box-shadow: 0 0 40px rgba(0, 0, 0, .18);
	display: none; /* hidden tips take no space, so no sideways scroll on phones */
	pointer-events: none;
	z-index: 10;
}
.pt-ihs__tip p { margin: 0; }
.pt-ihs__spot.is-below .pt-ihs__tip {
	bottom: auto;
	top: calc(100% + var(--pt-ihs-gap));
}
.pt-ihs__spot:hover .pt-ihs__tip,
.pt-ihs__spot:focus-visible .pt-ihs__tip,
.pt-ihs__spot.is-active .pt-ihs__tip,
.pt-ihs__spot.is-open .pt-ihs__tip {
	display: block;
	animation: pt-ihs-fade .35s ease;
}
@keyframes pt-ihs-fade {
	from { opacity: 0; }
	to   { opacity: 1; }
}
@media (hover: none) {
	/* Touch screens: a tap follows the link, same as before. */
	.pt-ihs__spot:hover .pt-ihs__tip,
	.pt-ihs__spot.is-active .pt-ihs__tip { display: none; }
	.pt-ihs__spot.is-open .pt-ihs__tip { display: block; }
}
@media (prefers-reduced-motion: reduce) {
	.pt-ihs__tip { animation: none !important; }
	.pt-ihs__pin { transition: none; }
}
