/* Short feedback, gentle navigation, and native disclosure semantics. */
:root{--tm-ease:cubic-bezier(.22,1,.36,1);--tm-exit:cubic-bezier(.4,0,1,1)}
.btn,.icon-button,.favorite,.chip,.tm-color-choice{transition:background-color 160ms ease,color 160ms ease,border-color 160ms ease,box-shadow 160ms ease,transform 160ms var(--tm-ease)}
.btn:active,.icon-button:active,.favorite:active{transform:scale(.97)}
.product-image img{transition:transform 420ms var(--tm-ease)}
.quick-view{transition:transform 240ms var(--tm-ease),opacity 180ms ease}
.ttp-category-panel{--tm-panel-offset:12px;animation:tm-category-enter 240ms var(--tm-ease)}
.ttp-category-panel[data-direction="back"]{--tm-panel-offset:-12px}
@keyframes tm-category-enter{from{opacity:0;transform:translateX(var(--tm-panel-offset))}to{opacity:1;transform:none}}
#mobile-menu[open]{animation:menu-slide-in 300ms var(--tm-ease) both}
#mobile-menu.is-closing[open]{animation:menu-slide-out 220ms var(--tm-exit) both}
dialog::backdrop{backdrop-filter:none}
/* Keep the dialog in the top layer until the close transition completes. */
@supports (transition-behavior:allow-discrete){
 dialog:not(#mobile-menu){opacity:0;transform:translateY(8px);transition:opacity 180ms ease,transform 240ms var(--tm-ease),display 240ms allow-discrete,overlay 240ms allow-discrete}
 dialog:not(#mobile-menu)[open]{opacity:1;transform:none;animation:none}
 dialog.cart-drawer:not(#mobile-menu){transform:translateX(100%)}
 dialog.cart-drawer:not(#mobile-menu)[open]{transform:none}
 dialog:not(#mobile-menu)::backdrop{opacity:0;transition:opacity 200ms ease,display 240ms allow-discrete,overlay 240ms allow-discrete}
 dialog:not(#mobile-menu)[open]::backdrop{opacity:1}
 @starting-style{
  dialog:not(#mobile-menu)[open]{opacity:0;transform:translateY(8px)}
  dialog.cart-drawer:not(#mobile-menu)[open]{transform:translateX(100%)}
  dialog:not(#mobile-menu)[open]::backdrop{opacity:0}
 }
}
/* Progressive enhancement: unsupported browsers retain working native details. */
@supports (interpolate-size:allow-keywords){
 .accordion details,.faq-wrap details{interpolate-size:allow-keywords}
 .accordion details::details-content,.faq-wrap details::details-content{block-size:0;opacity:0;overflow:clip;transition:block-size 240ms var(--tm-ease),opacity 180ms ease,content-visibility 240ms allow-discrete}
 .accordion details[open]::details-content,.faq-wrap details[open]::details-content{block-size:auto;opacity:1}
}
.product-summary .accordion>details>summary::after{transition:transform 200ms var(--tm-ease)}
@media(hover:hover) and (pointer:fine){.product-card:hover .product-image img{transform:scale(1.025)}}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 .accordion details::details-content,.faq-wrap details::details-content{transition:none!important}
 .btn:active,.icon-button:active,.favorite:active,.product-card:hover .product-image img{transform:none}
}
