/* Quiet, material-led feedback for the public desktop site. */
.studio-site {
  --motion-ease: cubic-bezier(0.22, 1, 0.36, 1);
}
.studio-site .scroll-return[hidden] { display: none; }
.studio-site .scroll-return {
  display: none;
  position: fixed;
  right: 20px;
  bottom: 24px;
  z-index: 30;
  width: 56px;
  min-height: 76px;
  padding: 5px 4px 7px;
  border: 1px solid #b9c9ae;
  border-radius: 28px 28px 15px 15px;
  color: #f4f6e8;
  background: #193b32;
  box-shadow: 0 6px 22px #193b321a;
  cursor: pointer;
}
.scroll-return-ring { width: 46px; height: 46px; fill: none; transform: rotate(-90deg); }
.scroll-return-ring circle {
  stroke: #d8e79b;
  stroke-width: 1.5;
  stroke-dasharray: 100;
  stroke-dashoffset: calc(100 * (1 - var(--scroll-progress, 0)));
  stroke-linecap: round;
}
.scroll-return-arrow {
  position: absolute;
  top: 17px;
  left: 15px;
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.scroll-return > span { display: block; font-size: 11px; line-height: 1.5; letter-spacing: 1px; }

@media (min-width: 1024px) and (hover: hover) and (pointer: fine) {
  .studio-site .scroll-return:not([hidden]) { display: block; }
  .studio-site :is(.btn, .scroll-return, .pagination a, .filter-choices a, .category-tabs a, .product-arrow) {
    transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease,
      box-shadow 220ms ease, transform 220ms var(--motion-ease);
  }
  .studio-site :is(.btn, .scroll-return):not(:disabled):not([aria-disabled="true"]):hover {
    transform: translateY(-2px);
    box-shadow: 0 5px 14px #193b3215;
  }
  .studio-site :is(.btn, .scroll-return, .pagination a):not(:disabled):not([aria-disabled="true"]):active {
    transform: translateY(1px) scale(0.985);
    box-shadow: none;
  }
  .studio-site .btn > span[aria-hidden],
  .studio-site .category-main .chevron,
  .studio-site .discovery-shortcuts strong > span {
    display: inline-block;
    transition: transform 240ms var(--motion-ease);
  }
  .studio-site .btn:is(:hover, :focus-visible) > span[aria-hidden],
  .studio-site .discovery-shortcuts > a:is(:hover, :focus-visible) strong > span {
    transform: translate(2px, -2px);
  }
  .studio-site :is(.product-card, .request-card, .supplier-card, .supplier-row, .discovery-shortcuts > a) {
    transition: border-color 200ms ease, background-color 200ms ease,
      box-shadow 250ms ease, transform 300ms var(--motion-ease);
  }
  .studio-site :is(.product-card, .request-card, .supplier-card, .supplier-row):is(:hover, :focus-within) {
    transform: translateY(-3px);
    border-color: #9aac8d;
    box-shadow: 0 9px 24px #193b3210;
  }
  .studio-site .product-image > img { transition: transform 650ms var(--motion-ease), filter 300ms ease; }
  .studio-site .product-card:is(:hover, :focus-within) .product-image > img {
    transform: scale(1.025);
    filter: brightness(1.025);
  }
  .studio-site .filter-choices a:is(:hover, :focus-visible),
  .studio-site .pagination a:is(:hover, :focus-visible) { background: #eaf0df; border-color: #91a583; }
  .studio-site .form-field > label { transition: color 180ms ease; }
  .studio-site .form-field:focus-within > label { color: #2d6552; }
  .studio-site .form-field :is(input, select, textarea) {
    transition: border-color 180ms ease, box-shadow 180ms ease, background-color 180ms ease;
    scroll-margin-block: 90px;
  }
  .studio-site .form-field :is(input, select, textarea):focus {
    border-color: #2d6552;
    box-shadow: 0 0 0 4px #2d655210;
  }
  .studio-site .form-field.is-invalid > label { color: #98462f; }
  .studio-site .form-field.is-invalid :invalid { border-color: #a24c32; background-color: #fffaf7; }
  .studio-site .header-search form { transition: box-shadow 220ms ease, border-color 220ms ease; }
  .studio-site .header-search form:focus-within { border-color: #2d6552; box-shadow: 0 0 0 4px #2d655215; }
  .studio-site .header-search form:focus-within .search-key { opacity: 0; }
  .studio-site .search-key { transition: opacity 150ms ease; }
  .studio-site .nav-links > a:focus-visible::after { transform: scaleX(1); }
  .studio-site .advanced-filters summary svg { transition: transform 220ms var(--motion-ease); }
  .studio-site .advanced-filters[open] summary svg { transform: rotate(180deg); }
}

@media (min-width: 1024px) and (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .studio-site .hero-slide:not([hidden]) > img { animation: material-arrive 550ms var(--motion-ease); }
  .studio-site .advanced-filters[open] > :not(summary) { animation: detail-arrive 240ms var(--motion-ease); }
  @keyframes material-arrive { from { opacity: 0.8; transform: scale(1.015); } to { opacity: 1; transform: none; } }
  @keyframes detail-arrive { from { opacity: 0.6; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
}
@media (prefers-reduced-motion: reduce) {
  .studio-site *, .studio-site *::before, .studio-site *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
  .studio-site :is(.btn, .scroll-return, .pagination a, .product-card, .request-card, .supplier-card, .supplier-row):is(:hover, :active, :focus-within),
  .studio-site .product-card:is(:hover, :focus-within) .product-image > img,
  .studio-site .btn:is(:hover, :focus-visible) > span[aria-hidden] { transform: none; }
}
@media print { .studio-site .scroll-return { display: none !important; } }
