/* One interaction vocabulary; layout dimensions never animate. */
.ten10-site {
  --ten10-image-scale: 1.05;
  --ten10-image-duration: 600ms;
  --ten10-control-duration: 180ms;
  --ten10-button-scale: 1.02;
}
.ten10-motion-gentle { --ten10-image-scale: 1.025; --ten10-image-duration: 480ms; --ten10-button-scale: 1.01; }
.ten10-reveal-pending { opacity: 0; }
.ten10-motion-media { display: block; overflow: hidden; border-radius: var(--radius-media); }
.ten10-motion-media > a { display: block; }
.ten10-motion-media img.ten10-motion-image { display: block; width: 100%; margin: 0; transform: none; transition: transform var(--ten10-image-duration) var(--ease-out); }
.ten10-site .ten10-motion-card .ten10-motion-image { transform: none; }
.woocommerce ul.products li.product .ten10-motion-media { margin-bottom: 1.1rem; }
.woocommerce ul.products li.product .ten10-motion-media img { margin: 0; }
.ten10-ed-path > .ten10-motion-media { display: block; min-height: 0; padding: 0; border: 0; margin-bottom: 20px; }
.ten10-ed-path > .ten10-motion-media img { margin: 0; }
.ten10-site :is(.ten10-motion-card h3, .ten10-motion-card .woocommerce-loop-product__title, .ten10-live-directory__item strong) { transition: color var(--ten10-control-duration) ease; }
.ten10-site :is(.ten10-ed-primary .elementor-button, .ten10-el-button .elementor-button, .button, .woocommerce button.button, .woocommerce a.button) {
  transition: transform var(--ten10-control-duration) var(--ease-out), background-color var(--ten10-control-duration) ease, border-color var(--ten10-control-duration) ease, color var(--ten10-control-duration) ease;
}
.ten10-site :is(.ten10-ed-link .elementor-button, .ten10-ed-path > span:not(.ten10-motion-media), .ten10-ed-shop-all, .ten10-ed-shop-intro a) {
  background-image: linear-gradient(currentColor, currentColor);
  background-size: 0 1px;
  background-position: left bottom;
  background-repeat: no-repeat;
  transition: background-size 280ms var(--ease-out), color 180ms ease, border-color 180ms ease;
}
.ten10-site :is(.ten10-ed-link .elementor-button, .ten10-ed-path > span:not(.ten10-motion-media), .ten10-ed-shop-all, .ten10-ed-shop-intro a):focus-visible {
  background-size: 100% 1px;
  color: var(--color-accent);
}
.ten10-site :is(input:not([type=checkbox]):not([type=radio]), textarea, select) { transition: border-color 180ms ease, box-shadow 180ms ease; }
.ten10-site :is(input, textarea, select):focus-visible { border-color: var(--color-accent); }
.ten10-site :is(input,textarea,select)[aria-invalid="true"] { border-color: #b33c35; }
.ten10-cart-feedback { position: fixed; z-index: 80; bottom: 24px; left: 50%; transform: translateX(-50%); width: max-content; max-width: calc(100vw - 32px); padding: 16px 24px; margin: 0; border: 1px solid var(--color-line); border-radius: var(--radius-control); background: var(--color-canvas); color: var(--color-ink); box-shadow: 0 8px 32px #0002; }
.ten10-cart-feedback[hidden] { display: none; }
.ten10-site .is-feedback-loading { pointer-events: none; }

@media (hover: hover) and (pointer: fine) {
  .ten10-site .ten10-motion-card:hover :is(h3, .woocommerce-loop-product__title),
  .ten10-site .ten10-motion-card:focus-within :is(h3, .woocommerce-loop-product__title) { color: var(--color-accent); }
  .ten10-site :is(.ten10-ed-link .elementor-button, .ten10-ed-shop-all, .ten10-ed-shop-intro a):hover,
  .ten10-site .ten10-ed-path:hover > span:not(.ten10-motion-media) { background-size: 100% 1px; }
}
@media (prefers-reduced-motion: no-preference) {
  @media (hover: hover) and (pointer: fine) {
    .ten10-image-hover:not(.ten10-motion-none) .ten10-motion-card:is(:hover, :focus-within) .ten10-motion-image { transform: scale(var(--ten10-image-scale)); }
    .ten10-site:not(.ten10-motion-none) :is(.ten10-ed-primary .elementor-button, .ten10-el-button .elementor-button, .button, .woocommerce button.button, .woocommerce a.button):not(:disabled):not(.disabled):not(.is-feedback-loading):not([class*="elementor-animation-"]):hover { transform: scale(var(--ten10-button-scale)); }
    .ten10-site:not(.ten10-motion-none) .ten10-ed-link .elementor-button:hover .elementor-button-text { translate: 3px 0; }
  }
  .ten10-site:not(.ten10-motion-none) :is(.ten10-ed-primary .elementor-button, .ten10-el-button .elementor-button, .button):not(:disabled):not(.disabled):active { transform: scale(.98); transition-duration: 80ms; }
  .ten10-ed-link .elementor-button-text { transition: translate 180ms var(--ease-out); }
  .ten10-site:not(.ten10-motion-none) :is(.catalog-filter-panel.is-open, .ten10-ed-guide details[open] > :not(summary)) { animation: ten10-feedback-in 240ms var(--ease-out) both; }
  @media (max-width: 1024px) {
    .ten10-site:not(.ten10-motion-none) .mega-panel.is-open .mega-panel__grid { animation: ten10-feedback-in 240ms var(--ease-out) both; }
  }
}
@keyframes ten10-feedback-in { from { opacity: 0; translate: 0 8px; } to { opacity: 1; translate: 0 0; } }
@media (max-width: 767px) {
  .ten10-ed-path > .ten10-motion-media { grid-row: span 3; margin: 0; }
  .ten10-site { --motion-panel: 300ms; }
}
/* Controls remain functional and content stays visible with motion disabled. */
.ten10-motion-none { --motion-instant: 0ms; --motion-fast: 0ms; --motion-base: 0ms; --motion-panel: 0ms; --ten10-image-duration: 0ms; --ten10-control-duration: 0ms; }
.ten10-motion-none :is(.side-panel, .menu-scrim, .mega-scrim, .panel-scrim, .mega-panel, .home-hero__slide, .home-hero__media img, .home-hero__progress, .selection-story__media img) { animation: none !important; transition: none !important; }
.ten10-motion-none .ten10-reveal-pending, .elementor-editor-active .ten10-reveal-pending { opacity: 1; }
.ten10-motion-none :is(.button:active, .ten10-motion-image, .selection-story__media img) { transform: none !important; }
html:has(.ten10-motion-none) { scroll-behavior: auto; }
@media (prefers-reduced-motion: reduce) {
  .ten10-reveal-pending { opacity: 1; }
  .ten10-site :is(.ten10-motion-image, .button:active) { transform: none !important; }
  .ten10-site *, .ten10-site *::before, .ten10-site *::after { animation-delay: 0ms !important; transition-delay: 0ms !important; }
}
@media print { .ten10-reveal-pending { opacity: 1; } }
