/*
 * Site-wide button hover — the home page's treatment on every button:
 * a 2px lift and the letter slide (buttons.js rebuilds the label as two
 * stacked rows of characters). Colours stay whatever each button was given.
 */
:root { --ttc-btn-ease: cubic-bezier(0.2, 0.7, 0.2, 1); }

.elementor-button, a.button, button.button:not(.ttc-hdr__link), .single_add_to_cart_button, .checkout-button, .ttc-btn {
  transition: transform 0.3s var(--ttc-btn-ease), background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}
.elementor-button:hover, a.button:hover, button.button:not(.ttc-hdr__link):hover, .single_add_to_cart_button:hover, .checkout-button:hover, .ttc-btn:hover { transform: translateY(-2px); }
.elementor-button:active, a.button:active, button.button:active, .single_add_to_cart_button:active, .checkout-button:active, .ttc-btn:active { transform: translateY(0); }

/* The letter slide. */
.ttc-letters { display: inline-block; position: relative; overflow: hidden; line-height: inherit; vertical-align: middle; }
.ttc-letters__row { display: block; white-space: pre; }
.ttc-letters__row + .ttc-letters__row { position: absolute; top: 100%; left: 0; }
.ttc-letters__c { display: inline-block; transition: transform 0.5s var(--ttc-btn-ease); transition-delay: calc(var(--i, 0) * 14ms); }
.ttc-has-letters:hover .ttc-letters__c, .ttc-btn:hover .ttc-letters__c { transform: translateY(-100%); }

@media (prefers-reduced-motion: reduce) {
  .elementor-button:hover, a.button:hover, button.button:hover, .single_add_to_cart_button:hover, .checkout-button:hover, .ttc-btn:hover { transform: none; }
  .ttc-letters__c { transition: none; }
}
