/* Weierken motion system 1.5.0 — restrained, performant and accessibility aware. */
:root {
  --we-motion-ease: cubic-bezier(.22, 1, .36, 1);
  --we-motion-fast: 260ms;
  --we-motion-base: 680ms;
  --we-motion-slow: 920ms;
}

.we-scroll-progress {
  position: fixed;
  z-index: 9999;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  pointer-events: none;
  transform: scaleX(var(--we-scroll-progress, 0));
  transform-origin: left center;
  background: linear-gradient(90deg, #e47a2f 0%, #f2b66c 52%, #e47a2f 100%);
  box-shadow: 0 0 18px rgba(228, 122, 47, .3);
}

.site-header {
  transition: background-color var(--we-motion-fast) ease, box-shadow var(--we-motion-fast) ease, transform var(--we-motion-fast) ease;
}

.site-header.is-scrolled {
  box-shadow: 0 14px 34px rgba(3, 31, 25, .1);
}

.brand-logo {
  transition: transform 420ms var(--we-motion-ease), filter 420ms ease;
}

.brand:hover .brand-logo,
.brand:focus-visible .brand-logo {
  transform: translateY(-1px) scale(1.025);
}

.primary-nav > a:not(.nav-cta),
.nav-products > a {
  position: relative;
}

.primary-nav > a:not(.nav-cta)::after,
.nav-products > a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -.4rem;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform 360ms var(--we-motion-ease);
}

.primary-nav > a:not(.nav-cta):hover::after,
.primary-nav > a:not(.nav-cta):focus-visible::after,
.primary-nav > a.active::after,
.nav-products > a:hover::after,
.nav-products > a:focus-visible::after {
  transform: scaleX(1);
  transform-origin: left center;
}

.nav-mega {
  transform-origin: top center;
  transition: opacity 240ms ease, visibility 240ms ease, transform 380ms var(--we-motion-ease) !important;
}

@media (min-width: 861px) {
  .nav-wrap { position: relative; }
  .nav-products { position: static; }
}

.nav-products:not(:hover):not(:focus-within) .nav-mega {
  transform: translate(-50%, 12px) scale(.985);
}

.nav-products:hover .nav-mega,
.nav-products:focus-within .nav-mega {
  transform: translate(-50%, 0) scale(1);
}

.nav-mega a,
.footer-grid a {
  transition: color var(--we-motion-fast) ease, transform var(--we-motion-fast) var(--we-motion-ease);
}

.nav-mega a:hover,
.nav-mega a:focus-visible {
  transform: translateX(4px);
}

.btn,
.nav-cta,
.catalog-filter-button {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transition: color var(--we-motion-fast) ease, background-color var(--we-motion-fast) ease, border-color var(--we-motion-fast) ease, box-shadow 380ms ease, transform 380ms var(--we-motion-ease) !important;
}

.btn::before,
.nav-cta::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background: rgba(255, 255, 255, .13);
  transform: translateX(-105%) skewX(-18deg);
  transition: transform 560ms var(--we-motion-ease);
}

.btn:hover,
.btn:focus-visible,
.nav-cta:hover,
.nav-cta:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 14px 32px rgba(3, 31, 25, .16);
}

.btn:hover::before,
.btn:focus-visible::before,
.nav-cta:hover::before,
.nav-cta:focus-visible::before {
  transform: translateX(105%) skewX(-18deg);
}

.btn span,
.text-link span,
.we2-arrow {
  display: inline-block;
  transition: transform 360ms var(--we-motion-ease);
}

.btn:hover span,
.btn:focus-visible span,
.text-link:hover span,
.text-link:focus-visible span,
a:hover .we2-arrow,
a:focus-visible .we2-arrow {
  transform: translateX(5px);
}

.we-motion-ready .we-motion-item,
.we-motion-ready .reveal {
  opacity: 0;
  transform: translate3d(0, 28px, 0);
  transition: opacity var(--we-motion-base) var(--we-motion-ease), transform var(--we-motion-base) var(--we-motion-ease);
  transition-delay: var(--we-motion-delay, 0ms);
  will-change: opacity, transform;
}

.we-motion-ready .we-motion-item.we-motion-left {
  transform: translate3d(-34px, 0, 0);
}

.we-motion-ready .we-motion-item.we-motion-right {
  transform: translate3d(34px, 0, 0);
}

.we-motion-ready .we-motion-item.we-motion-scale {
  transform: scale(.965);
}

.we-motion-ready .we-motion-item.is-inview,
.we-motion-ready .reveal.is-inview,
.we-motion-ready .reveal.visible {
  opacity: 1;
  transform: none;
  will-change: auto;
}

.we-motion-ready .page-hero-inner > *,
.we-motion-ready .product-hero-copy > *,
.we-motion-ready .message-page > * {
  opacity: 0;
  transform: translateY(24px);
  animation: we-intro-in 760ms var(--we-motion-ease) forwards;
}

.we-motion-ready .page-hero-inner > *:nth-child(2),
.we-motion-ready .product-hero-copy > *:nth-child(2),
.we-motion-ready .message-page > *:nth-child(2) { animation-delay: 90ms; }
.we-motion-ready .page-hero-inner > *:nth-child(3),
.we-motion-ready .product-hero-copy > *:nth-child(3),
.we-motion-ready .message-page > *:nth-child(3) { animation-delay: 170ms; }
.we-motion-ready .product-hero-copy > *:nth-child(4) { animation-delay: 240ms; }
.we-motion-ready .product-hero-copy > *:nth-child(5) { animation-delay: 300ms; }
.we-motion-ready .product-hero-copy > *:nth-child(6) { animation-delay: 360ms; }

.we-motion-ready .page-hero.has-image::before {
  animation: we-hero-image-in 1.25s var(--we-motion-ease) both;
}

.we-motion-ready .product-hero-image,
.we-motion-ready .we2-about-media,
.we-motion-ready .factory-collage {
  overflow: hidden;
}

.we-motion-ready .product-hero-image > img,
.we-motion-ready .we2-about-media img,
.we-motion-ready .factory-collage img {
  animation: we-image-in 1.05s var(--we-motion-ease) both;
}

.we2-slide.is-active .we2-kicker,
.we2-slide.is-active h1,
.we2-slide.is-active .we2-slide-content > p,
.we2-slide.is-active .we2-hero-actions {
  opacity: 0;
  transform: translateY(26px);
  animation: we-intro-in 800ms var(--we-motion-ease) forwards;
}

.we2-slide.is-active h1 { animation-delay: 100ms; }
.we2-slide.is-active .we2-slide-content > p { animation-delay: 190ms; }
.we2-slide.is-active .we2-hero-actions { animation-delay: 280ms; }

.we3-scroll-cue {
  animation: we-scroll-cue 2.2s ease-in-out infinite;
}

.product-card,
.category-card,
.guide-card,
.catalog-card,
.we2-category-tile,
.we2-advantage-card,
.weierken-case-card,
.quality-grid article,
.values-grid article,
.process-steps article,
.workbook-category-group,
.source-gallery-item {
  transition: border-color var(--we-motion-fast) ease, box-shadow 420ms ease, transform 420ms var(--we-motion-ease) !important;
}

.product-card:hover,
.category-card:hover,
.guide-card:hover,
.catalog-card:hover,
.we2-category-tile:hover,
.we2-advantage-card:hover,
.weierken-case-card:hover,
.quality-grid article:hover,
.values-grid article:hover,
.process-steps article:hover,
.workbook-category-group:hover,
.source-gallery-item:hover {
  transform: translateY(-7px);
  box-shadow: 0 22px 52px rgba(3, 31, 25, .12);
}

.product-image,
.category-image,
.guide-card-image,
.catalog-card > img,
.we2-category-tile,
.weierken-case-card__image,
.source-gallery-item {
  overflow: hidden;
}

.product-image img,
.category-image img,
.guide-card-image img,
.catalog-card > img,
.we2-category-tile img,
.weierken-case-card__image img,
.source-gallery-item img {
  transition: transform 720ms var(--we-motion-ease), filter 420ms ease;
}

.product-card:hover img,
.category-card:hover img,
.guide-card:hover img,
.catalog-card:hover > img,
.we2-category-tile:hover img,
.weierken-case-card:hover img,
.source-gallery-item:hover img {
  transform: scale(1.045);
}

.we2-stat-row strong,
.we-facts strong {
  font-variant-numeric: tabular-nums;
}

.catalog-filter-button:hover,
.catalog-filter-button:focus-visible {
  transform: translateY(-2px);
}

.product-card.we-filter-enter {
  animation: we-filter-enter 520ms var(--we-motion-ease) both;
}

.faq-section details,
.buyer-faq-list details,
.we2-faq-section details {
  transition: border-color var(--we-motion-fast) ease, background-color var(--we-motion-fast) ease, box-shadow var(--we-motion-fast) ease;
}

.faq-section details[open],
.buyer-faq-list details[open],
.we2-faq-section details[open] {
  box-shadow: 0 16px 34px rgba(3, 31, 25, .08);
}

.faq-section summary::after,
.buyer-faq-list summary::after,
.we2-faq-section summary::after {
  transition: transform 380ms var(--we-motion-ease);
}

.faq-section details[open] summary::after,
.buyer-faq-list details[open] summary::after,
.we2-faq-section details[open] summary::after {
  transform: rotate(45deg);
}

.faq-section details[open] > :not(summary),
.buyer-faq-list details[open] > :not(summary),
.we2-faq-section details[open] > :not(summary) {
  animation: we-faq-in 420ms var(--we-motion-ease) both;
}

.rfq-form input,
.rfq-form textarea,
.rfq-form select {
  transition: border-color var(--we-motion-fast) ease, box-shadow var(--we-motion-fast) ease, background-color var(--we-motion-fast) ease;
}

.rfq-form input:focus,
.rfq-form textarea:focus,
.rfq-form select:focus {
  box-shadow: 0 0 0 4px rgba(228, 122, 47, .16);
}

@keyframes we-intro-in {
  to { opacity: 1; transform: none; }
}

@keyframes we-hero-image-in {
  from { transform: scale(1.08); filter: saturate(.75); }
  to { transform: scale(1); filter: saturate(1); }
}

@keyframes we-image-in {
  from { opacity: 0; transform: scale(1.06); }
  to { opacity: 1; transform: scale(1); }
}

@keyframes we-scroll-cue {
  0%, 100% { transform: translateY(0); opacity: .72; }
  50% { transform: translateY(8px); opacity: 1; }
}

@keyframes we-filter-enter {
  from { opacity: 0; transform: translateY(14px) scale(.985); }
  to { opacity: 1; transform: none; }
}

@keyframes we-faq-in {
  from { opacity: 0; transform: translateY(-6px); }
  to { opacity: 1; transform: none; }
}

@media (max-width: 860px) {
  .primary-nav {
    transition: opacity 260ms ease, visibility 260ms ease, transform 420ms var(--we-motion-ease) !important;
  }

  .primary-nav:not(.open) {
    opacity: 0;
    transform: translateY(-12px);
  }

  .primary-nav.open {
    opacity: 1;
    transform: none;
  }
}

@media (hover: none), (pointer: coarse) {
  .product-card:hover,
  .category-card:hover,
  .guide-card:hover,
  .catalog-card:hover,
  .we2-category-tile:hover,
  .we2-advantage-card:hover,
  .weierken-case-card:hover,
  .source-gallery-item:hover {
    transform: none;
    box-shadow: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
  .we-motion-ready .we-motion-item,
  .we-motion-ready .reveal,
  .we-motion-ready .page-hero-inner > *,
  .we-motion-ready .product-hero-copy > *,
  .we-motion-ready .message-page > * {
    opacity: 1 !important;
    transform: none !important;
  }
  .we-scroll-progress { display: none; }
}
