/* Native equivalents of the original Framer Motion interactions. */
[hidden] { display: none !important; }
.contact-trap { display: none; }
.PageForms_submit:disabled { opacity: 0.65; cursor: wait; }
.PageForms_success.is-error { color: #8b3f32; }
.ProductCard_card { transition: transform 280ms ease; }
.ProductCard_card:hover { transform: translateY(-6px); }
.ProductCard_imageWrap img { transition: transform 650ms ease-out; }
.ProductCard_imageWrap img:hover { transform: scale(1.045); }
.reveal-pending { opacity: 0; transform: translateY(34px); }
.reveal-visible { animation: sun-reveal 800ms cubic-bezier(0.22, 1, 0.36, 1) var(--reveal-delay, 0s) both; }
[data-enter] { animation: sun-enter var(--enter-duration, 0.8s) cubic-bezier(0.22, 1, 0.36, 1) var(--enter-delay, 0s) backwards; }
[data-enter="scale"] { animation-name: sun-scale; }
.Navbar_mobileMenu.is-open { animation: sun-fade 240ms ease both; }
.Navbar_mobileMenu.is-open .Navbar_mobilePanel { animation: sun-menu 340ms ease-out both; }
.Navbar_mobileMenu.is-closing { animation: sun-fade 240ms ease reverse both; }
.Navbar_mobileMenu.is-closing .Navbar_mobilePanel { animation: sun-menu 240ms ease-in reverse both; }
body.menu-open { overflow: hidden; }
/* Backdrop filters create a containing block for fixed children. */
.Navbar_navbar.menu-open { backdrop-filter: none; }
@keyframes sun-reveal { from { opacity: 0; transform: translateY(34px); } to { opacity: 1; transform: none; } }
@keyframes sun-enter { from { opacity: 0; transform: translateY(var(--enter-y, 34px)); } to { opacity: 1; transform: none; } }
@keyframes sun-scale { from { opacity: 0; transform: scale(0.98); } to { opacity: 1; transform: none; } }
@keyframes sun-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes sun-menu { from { opacity: 0; transform: translateY(-22px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation: none !important; transition: none !important; }
    .reveal-pending { opacity: 1; transform: none; }
}
