/* 9.8.3 — visual tap acknowledgement for the public mobile storefront. */
@media (hover:none) and (pointer:coarse) {
  button:not(:disabled), a[href], summary, [role="button"], input[type="submit"], input[type="button"] { touch-action:manipulation; -webkit-tap-highlight-color:transparent; }
  :is(button:not(:disabled),a[href],summary,[role="button"],input[type="submit"],input[type="button"]):is(:active,.gando-touch-pressed) { filter:brightness(.89); opacity:.79; }
  :is(button,a,[role="button"],input[type="submit"])[aria-busy="true"] { cursor:progress; }
}
@media(prefers-reduced-motion:reduce){.gando-touch-pressed{transition:none!important}}

/* Seasonal rail swap: no opacity/pointer-events freeze on the old rail. */
.home-product-zone--seasonal .product-carousel--seasonal{opacity:1;pointer-events:auto}
.home-product-zone--seasonal .season-switcher button.is-season-pending{position:relative;padding-inline-end:23px}
.home-product-zone--seasonal .season-switcher button.is-season-pending::after{content:"";position:absolute;inset-inline-end:7px;top:calc(50% - 5px);height:10px;width:10px;border:2px solid currentColor;border-left-color:transparent;border-radius:50%;animation:gando-season-spin .65s linear infinite}
@keyframes gando-season-spin{to{transform:rotate(360deg)}}
@keyframes gando-season-enter{from{opacity:.36;transform:translateY(8px)}to{opacity:1;transform:none}}
.product-carousel--seasonal.gando-season-enter>[data-product-card]{animation:gando-season-enter .24s ease-out both}
.product-carousel--seasonal.gando-season-enter>[data-product-card]:nth-child(2){animation-delay:25ms}
.product-carousel--seasonal.gando-season-enter>[data-product-card]:nth-child(3){animation-delay:45ms}
@media (max-width:700px){
  /* Cards are server-rendered: do not postpone their layout via content visibility. */
  .home-product-stacks{content-visibility:visible!important;contain-intrinsic-size:none!important}
  .home-product-zone .product-carousel>.reveal:not(.in){opacity:0;transform:translateY(8px)}
  .home-product-zone .product-carousel>.reveal.in{transition:opacity .24s ease-out,transform .24s ease-out}
}
@media(prefers-reduced-motion:reduce){.product-carousel--seasonal.gando-season-enter>[data-product-card]{animation:none!important}}

/* 9.8.4 — unmistakable press feedback on every mobile bottom-navigation item.
 * Keep the background highlight separate from the icon/text and do not move the layout.
 */
@media (max-width:700px) {
  .bottom-nav > :is(a,button) {
    position:relative;
    isolation:isolate;
    overflow:hidden;
    border-radius:14px;
    -webkit-tap-highlight-color:transparent;
    touch-action:manipulation;
    transition:transform .13s ease-out;
  }
  .bottom-nav > :is(a,button)::before {
    content:"";
    position:absolute;
    inset:2px;
    border-radius:12px;
    z-index:-1;
    pointer-events:none;
    background:rgba(24,116,62,.17);
    opacity:0;
    transform:scale(.8);
    transition:opacity .13s ease-out,transform .17s ease-out;
  }
  .bottom-nav > .center::before {
    background:rgba(255,255,255,.24);
  }
  html[data-theme="dark"] .bottom-nav > :is(a,button):not(.center)::before {
    background:rgba(140,216,164,.2);
  }
  .bottom-nav > :is(a,button):is(:active,.gando-nav-pressed,.gando-nav-tap) {
    transform:scale(.92);
    filter:none!important;
    opacity:1!important;
  }
  .bottom-nav > :is(a,button):is(:active,.gando-nav-pressed,.gando-nav-tap)::before {
    opacity:1;
    transform:scale(1);
  }
  .bottom-nav > :is(a,button):focus-visible {
    outline:2px solid var(--g);
    outline-offset:-2px;
  }
}
@media (prefers-reduced-motion:reduce) {
  .bottom-nav > :is(a,button),
  .bottom-nav > :is(a,button)::before { transition:none!important; }
}
