/* Public-site motion. Content is visible without JavaScript; glass blur stays static. */
:root {
  --motion-fast: 150ms;
  --motion-base: 240ms;
  --motion-slow: 360ms;
  --motion-feedback: 180ms;
  --motion-press: 80ms;
  --motion-distance: 10px;
  --ease-standard: cubic-bezier(.4, 0, .2, 1);
  --ease-enter: cubic-bezier(.22, 1, .36, 1);
  --ease-exit: cubic-bezier(.4, 0, 1, 1);
}

/* Retire individual paragraph/label entrances, including their inline stagger. */
body :is(.reveal, .reveal-img, .reveal-item, .reveal-word, .field-label,
  .form-page-title, .form-page-subtitle, .section-header, .input-group,
  .course-section-header, .course-btn, .next-btn, .submit-btn) {
  opacity: 1;
  transform: none;
  transition-delay: 0s !important;
}
body :is(.reveal, .reveal-img, .reveal-item, .reveal-word, .field-label) {
  transition: none;
}
body .barista-section :is(.reveal-item, .reveal-word) { opacity: 1; transform: none; transition: none; }
.motion-revealed { animation: smiths-section-enter var(--motion-slow) var(--ease-enter); }
.motion-page-enter { animation: smiths-page-enter var(--motion-base) var(--ease-enter); }
.motion-feedback { animation: smiths-feedback var(--motion-feedback) var(--ease-enter); }
@keyframes smiths-section-enter {
  from { opacity: 0; transform: translateY(var(--motion-distance)); }
  to { opacity: 1; transform: none; }
}
@keyframes smiths-page-enter {
  from { opacity: .94; transform: translateY(3px); }
  to { opacity: 1; transform: none; }
}
@keyframes smiths-feedback { from { opacity: .55; } to { opacity: 1; } }

/* Preserve the existing scroll shrink while the glass layer fades independently. */
body .site-nav {
  transition: padding-top var(--motion-base) var(--ease-standard),
    padding-bottom var(--motion-base) var(--ease-standard);
}
body .site-nav::before, body .site-nav::after {
  transition: opacity var(--motion-base) var(--ease-standard);
}
body .nav-dropdown {
  transform: translateY(5px);
  transition: opacity var(--motion-fast) var(--ease-exit),
    transform var(--motion-fast) var(--ease-exit), visibility 0s linear var(--motion-fast);
}
body .nav-item-has-menu:is(:hover, :focus-within) .nav-dropdown,
body .nav-item-has-menu > a[aria-expanded="true"] + .nav-dropdown {
  transform: none;
  transition: opacity var(--motion-fast) var(--ease-enter),
    transform var(--motion-fast) var(--ease-enter), visibility 0s;
}

body :is(.btn-primary, .btn-secondary, .glass-button, .hero-action, .barista-cta,
  .quote-cta-btn, .send-message-btn, .submit-btn, .next-btn, .course-btn,
  .detail-gallery-button, .detail-gallery-scroll, .gallery-button,
  .quantity-stepper-button, .qty-stepper button, .contact-action, .summary-toggle, .refresh-button) {
  transition: transform var(--motion-fast) var(--ease-standard),
    background-color var(--motion-fast) var(--ease-standard),
    border-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard),
    opacity var(--motion-fast) var(--ease-standard);
}
body :is(button, a, input, textarea, select):focus-visible {
  outline: 2px solid var(--crema, #c08a3e);
  outline-offset: 3px;
}
body :is(input:not([type="checkbox"]):not([type="radio"]), textarea, select) {
  transition: border-color var(--motion-fast) var(--ease-standard),
    background-color var(--motion-fast) var(--ease-standard);
}
body :is(.input-field, .textarea-field, .select-field):focus { transform: none; }
body :is(.form-message.is-error, .form-message.is-success, .has-error .form-error,
  .quota-success-step.show, .success-message.show, .form-step.active, .auth-panel:not([hidden])) {
  animation: smiths-feedback var(--motion-feedback) var(--ease-enter);
}
body :is(.account-form[role="tabpanel"]:not([hidden]), .signup-stage:not([hidden]), .auth-card:not([hidden])) {
  animation: smiths-feedback var(--motion-feedback) var(--ease-enter);
}
body .order-details { transition: none; }
body .profile-details:not([hidden]) { animation: smiths-feedback var(--motion-feedback) var(--ease-enter); }
body :is(.form-step, .quota-success-step, .success-message) { transition: none; transform: none; }
body .warning-text { transform: none; transition: opacity var(--motion-fast) var(--ease-standard); }
body .warning-text.show { transform: none; }
body .order-card.is-open .order-details { animation: smiths-feedback var(--motion-feedback) var(--ease-enter); }

body .product-card {
  transition: transform var(--motion-base) var(--ease-enter), border-color var(--motion-fast) var(--ease-standard);
}
body .product-image { transition: transform var(--motion-base) var(--ease-enter); }
body :is(.product-media, .detail-media, .roaster-gallery-stage) { overflow: hidden; }
body :is(.product-image-link, .detail-media, .roaster-gallery-stage) { position: relative; }
body .motion-gallery-outgoing {
  position: absolute; inset: 0; width: 100%; height: 100%; margin: auto;
  pointer-events: none;
}
body :is(.detail-gallery-controls, .product-gallery-controls) { z-index: 1; }
body .product-card:hover { transform: none; box-shadow: 0 16px 34px rgba(0,0,0,.18); }
body .product-card:hover .product-image { transform: none; }
body .service-card { transition: transform var(--motion-base) var(--ease-enter), border-color var(--motion-fast) var(--ease-standard); }
body .service-card:hover { transform: none; }
body :is(.btn-primary, .btn-secondary, .glass-button, .hero-action, .barista-cta,
  .quote-cta-btn, .send-message-btn, .submit-btn, .next-btn, .course-btn):hover { transform: none; }
@media (hover: hover) and (pointer: fine) {
  body .product-card:hover { transform: translateY(-2px); border-color: rgba(192,138,62,.45); }
  body .product-card:hover .product-image { transform: scale(1.015); }
  body .service-card:hover { transform: translateY(-2px); }
  body :is(.btn-primary, .btn-secondary, .glass-button, .hero-action, .barista-cta,
    .quote-cta-btn, .send-message-btn, .submit-btn, .next-btn, .course-btn):not(:disabled):not([aria-disabled="true"]):hover {
    transform: translateY(-1px);
  }
  body :is(.product-link, .service-link) svg { transition: transform var(--motion-fast) var(--ease-enter); }
  body :is(.product-card:hover .product-link, .service-card:hover .service-link) svg { transform: translateX(2px); }
}
body :is(.btn-primary, .btn-secondary, .glass-button, .hero-action, .barista-cta,
  .quote-cta-btn, .send-message-btn, .submit-btn, .next-btn, .course-btn,
  .detail-gallery-button, .detail-gallery-scroll, .gallery-button, .quantity-stepper-button,
  .qty-stepper button, .contact-action, .summary-toggle, .refresh-button):not(:disabled):not([aria-disabled="true"]):active {
  transform: translateY(1px);
  transition-duration: var(--motion-press);
}
body :is(.footer-col a, .nav-links a, .form-home-link) { transition: color var(--motion-fast) var(--ease-standard); }

/* Dialogs keep their existing focus/hidden behavior; discrete exits are progressive enhancement. */
body .quote-modal {
  opacity: 1;
  transition: opacity var(--motion-fast) var(--ease-exit), display var(--motion-fast) allow-discrete;
}
body .quote-modal[hidden] { opacity: 0; pointer-events: none; }
body .quote-modal:not([hidden]) .form-card,
.order-summary-popup[open] { animation: smiths-panel-enter var(--motion-base) var(--ease-enter); }
.order-summary-popup {
  opacity: 1;
  transition: opacity var(--motion-fast) var(--ease-exit), display var(--motion-fast) allow-discrete,
    overlay var(--motion-fast) allow-discrete;
}
.order-summary-popup:not([open]) { opacity: 0; pointer-events: none; }
.order-summary-popup::backdrop {
  transition: opacity var(--motion-fast) var(--ease-exit), display var(--motion-fast) allow-discrete,
    overlay var(--motion-fast) allow-discrete;
}
.order-summary-popup:not([open])::backdrop { opacity: 0; }
@starting-style {
  body .quote-modal:not([hidden]), .order-summary-popup[open], .order-summary-popup[open]::backdrop { opacity: 0; }
}
@keyframes smiths-panel-enter {
  from { opacity: .7; transform: translateY(6px) scale(.99); }
  to { opacity: 1; transform: none; }
}
body .cart-added-toast { transition-duration: var(--motion-fast); transition-timing-function: var(--ease-enter); }
body .cart-added-toast.is-visible { animation: smiths-feedback var(--motion-feedback) var(--ease-enter); }
body :is(.marquee-track, .gallery-track) { will-change: auto; }

@media (max-width: 820px) {
  :root { --motion-slow: 280ms; --motion-distance: 8px; }
  body :is(.arc-swipe-hint button, .card-swipe-hint button) { animation: none; }
}
@media (prefers-reduced-motion: reduce) {
  :root { --motion-fast: 1ms; --motion-base: 1ms; --motion-slow: 1ms; --motion-feedback: 1ms; --motion-press: 1ms; --motion-distance: 0px; }
  *, *::before, *::after {
    animation: none !important;
    transition-duration: 1ms !important;
    transition-delay: 0s !important;
    scroll-behavior: auto !important;
  }
  body .product-card:hover, body .product-card:hover .product-image,
  body .service-card:hover { transform: none; }
  body .immersive-gallery { height: auto; }
  body .gallery-sticky { position: relative; height: auto; min-height: 0; }
  body .gallery-track { transform: none !important; will-change: auto; }
}
