/* Utilities: reveal animations, anchor offset, helpers */
[data-section-anchor] { scroll-margin-top: clamp(4rem, 12vh, 6rem); }

/* Reveal animation utilities */
[data-reveal] { opacity:0; transform: translateY(24px); transition: opacity .65s var(--ease-out), transform .65s var(--ease-out); }
[data-reveal].is-visible { opacity:1; transform:none; }
[data-reveal][data-reveal-delay="50"] { transition-delay:.05s; }
[data-reveal][data-reveal-delay="100"] { transition-delay:.1s; }
[data-reveal][data-reveal-delay="120"] { transition-delay:.12s; }
@media (prefers-reduced-motion: reduce){ [data-reveal] { opacity:1 !important; transform:none !important; transition:none !important; } }

/* Accessible skip link (hidden until focus) */
.skip-link {
	position: absolute;
	top: 0;
	left: 0;
	transform: translateY(-120%);
	background: var(--pn-accent, #e65100);
	color: #fff;
	padding: 0.75rem 1rem;
	z-index: 1000;
	font-weight: 600;
	border-radius: 0 0 6px 6px;
	text-decoration: none;
	line-height: 1.1;
	transition: transform .25s ease;
}
.skip-link:focus-visible, .skip-link:focus { transform: translateY(0); outline: 2px solid #fff; outline-offset: 2px; }
.skip-link:active { transform: translateY(0); }

/* Focus smoothing for interactive elements */
button:focus-visible, a:focus-visible, [role="tab"]:focus-visible, [role="button"]:focus-visible {
	outline: 2px solid var(--pn-accent, #e65100);
	outline-offset: 3px;
	transition: outline-offset .18s ease, box-shadow .18s ease;
	box-shadow: 0 0 0 4px rgba(var(--pn-accent-rgb,230,81,0),0.25);
}
button:focus:not(:focus-visible), a:focus:not(:focus-visible) { outline: none; }

@media (prefers-reduced-motion: reduce) {
	button:focus-visible, a:focus-visible, [role="tab"]:focus-visible, [role="button"]:focus-visible {
		transition: none !important;
		box-shadow: 0 0 0 3px rgba(var(--pn-accent-rgb,230,81,0),0.35);
		outline-offset: 2px;
	}
	.skip-link { transition: none !important; }
}

/* Scroll-to-top default hidden state */
#scroll-to-top[hidden] { display:none !important; }
