/* Shared, font-independent action icons. Keep labels and hit targets unchanged. */
:root {
  --knwn-action-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m6 3.5 4.5 4.5L6 12.5' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.route-shell[data-route-path][data-product-line] :is(.route-button, .route-button-secondary, .route-text-link) {
  gap: 8px;
}
.route-shell[data-route-path][data-product-line] :is(.route-button, .route-button-secondary, .route-text-link, .route-menu a, .route-mobile-panel a, .route-bridge a, .route-card > a)::after {
  content: "";
  display: inline-block;
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  vertical-align: -0.15em;
  background: currentColor;
  -webkit-mask: var(--knwn-action-chevron) center / contain no-repeat;
  mask: var(--knwn-action-chevron) center / contain no-repeat;
  transition: transform 160ms ease;
}
.route-shell[data-route-path][data-product-line] :is(.route-button, .route-button-secondary, .route-text-link, .route-menu a, .route-mobile-panel a, .route-bridge a, .route-card > a):hover::after {
  transform: translateX(2px);
}
.route-shell[data-route-path][data-product-line] .route-header-row > .route-button::after,
.route-shell[data-route-path][data-product-line] a:has(> .route-action-icon)::after {
  content: none;
}
.route-action-icon {
  display: inline-block;
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  vertical-align: -0.15em;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform 160ms ease;
}
a:hover > .route-action-icon,
button:hover > .route-action-icon {
  transform: translateX(2px);
}
/* Research cards use their link's pseudo-element as the full-card hit area. */
.route-shell[data-route-path][data-product-line] .route-library-grid .route-card > a::after {
  width: auto;
  height: auto;
  background: none;
  -webkit-mask: none;
  mask: none;
  transform: none;
}
@media (prefers-reduced-motion: reduce) {
  .route-shell[data-route-path][data-product-line] :is(a, button)::after,
  .route-action-icon {
    transition: none;
    transform: none !important;
  }
}
