/* Norzen AR — front-end styles */

.arpv-wrap {
	position: relative;
	max-width: 100%;
	margin: 1.5em 0;
}

.arpv-model {
	display: block;
	width: 100%;
	border-radius: 10px;
	overflow: hidden;
	--poster-color: transparent;
}

/* AR button */
.arpv-ar-button {
	position: absolute;
	bottom: 16px;
	left: 50%;
	transform: translateX(-50%);
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 18px;
	background: #111;
	color: #fff;
	border: none;
	border-radius: 999px;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
	transition: transform 0.15s ease, background 0.15s ease;
}

.arpv-ar-button:hover {
	background: #000;
	transform: translateX(-50%) translateY(-2px);
}

/* Draws attention to the button after arriving via the QR handoff */
@keyframes arpv-ar-pulse {
	0%, 100% { box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25), 0 0 0 0 rgba(17, 17, 17, 0.45); }
	50% { box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25), 0 0 0 12px rgba(17, 17, 17, 0); }
}

.arpv-ar-button.arpv-ar-pulse {
	animation: arpv-ar-pulse 1.4s ease-out 3;
}

/* Hide the AR button when AR isn't available */
.arpv-model:not([ar-status]) .arpv-ar-button,
.arpv-model[ar-status="not-presenting"] .arpv-ar-button {
	display: inline-flex;
}

/* Progress bar */
.arpv-progress {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 4px;
	background: rgba(0, 0, 0, 0.08);
	border-radius: 0 0 10px 10px;
	overflow: hidden;
	opacity: 1;
	transition: opacity 0.3s ease;
}

.arpv-progress.hide {
	opacity: 0;
}

.arpv-progress-bar {
	width: 0;
	height: 100%;
	background: #111;
	transition: width 0.2s ease;
}

/* Hotspots */
.arpv-hotspot {
	width: 20px;
	height: 20px;
	border-radius: 50%;
	border: 2px solid #fff;
	background: #111;
	box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.15);
	cursor: pointer;
	padding: 0;
}

.arpv-hotspot-label {
	position: absolute;
	left: 26px;
	top: 50%;
	transform: translateY(-50%);
	white-space: nowrap;
	background: #fff;
	color: #111;
	padding: 5px 10px;
	border-radius: 6px;
	font-size: 13px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.15s ease;
}

.arpv-hotspot:hover .arpv-hotspot-label,
.arpv-hotspot:focus .arpv-hotspot-label {
	opacity: 1;
}

/* QR handoff card (desktop only) */
.arpv-qr {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-top: 14px;
	padding: 14px;
	background: #fff;
	border: 1px solid #e6e6e6;
	border-radius: 12px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
	max-width: 420px;
}

.arpv-qr[hidden] {
	display: none;
}

.arpv-qr-canvas {
	flex: 0 0 auto;
	width: 150px;
	height: 150px;
	background: #fff;
	border-radius: 8px;
}

.arpv-qr-canvas img,
.arpv-qr-canvas canvas {
	display: block;
	width: 150px;
	height: 150px;
}

.arpv-qr-text {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.arpv-qr-text strong {
	font-size: 15px;
	color: #111;
}

.arpv-qr-text span {
	font-size: 13px;
	line-height: 1.4;
	color: #666;
}

/* "Open in AR" deep-link fallback (mobile) */
.arpv-open-ar {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-top: 12px;
	padding: 12px 22px;
	width: 100%;
	max-width: 420px;
	background: #111;
	color: #fff;
	border: none;
	border-radius: 10px;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
}

.arpv-open-ar[hidden] {
	display: none;
}

.arpv-open-ar:hover {
	background: #000;
}

/* CTA */
.arpv-cta {
	display: inline-block;
	margin-top: 12px;
	padding: 10px 20px;
	background: #111;
	color: #fff;
	border-radius: 8px;
	text-decoration: none;
	font-weight: 600;
}

.arpv-cta:hover {
	background: #000;
	color: #fff;
}

/* Errors (editors only) */
.arpv-error {
	padding: 12px 16px;
	background: #fff3f3;
	border: 1px solid #ffc9c9;
	border-radius: 8px;
	color: #b02a37;
	font-size: 14px;
}

/* Branding credit */
.arpv-credit {
	margin-top: 10px;
	text-align: center;
	font-size: 11px;
	letter-spacing: 0.4px;
}

.arpv-credit a {
	color: #9a8043;
	text-decoration: none;
	opacity: 0.8;
}

.arpv-credit a:hover {
	opacity: 1;
	text-decoration: underline;
}

/* WooCommerce section */
.arpv-woo-section {
	margin: 2em 0;
}

.arpv-woo-heading {
	margin-bottom: 0.5em;
}
