/* Shared rhythm, taken from the payment FAQ disclosure. */
:root {
    --site-motion-duration: 600ms;
    --site-motion-ease: cubic-bezier(.4, 0, .2, 1);
    --site-motion-offset: 20px;
    --cabinet-motion-duration: var(--site-motion-duration);
    --cabinet-motion-ease: var(--site-motion-ease);
}
body :is(button, a, input, select, textarea, [role="button"], .card,
    .benefit-card, .service-card, .economy-item, .contact-card, .info-card,
    .hw-section-card, .hw-view, .hw-carousel-track, .carousel-track,
    .auth-overlay, .auth-box, .nav-menu, .mobile-menu-overlay,
    .note-viewer-popup, .note-viewer-backdrop, .ep-nav-tab,
    .ep-category-toggle, .cat-progress-item-toggle, .topic-progress-item-toggle) {
    transition-duration: var(--site-motion-duration) !important;
    transition-timing-function: var(--site-motion-ease) !important;
}
/* Existing disclosure bodies get a clipping inner row instead of arbitrary max-heights. */
body .site-disclosure {
    display: grid;
    grid-template-rows: 0fr;
    max-height: none !important;
    overflow: hidden;
    opacity: 0;
    transform: translateY(var(--site-motion-offset));
    transition: grid-template-rows var(--site-motion-duration) var(--site-motion-ease),
        opacity var(--site-motion-duration) var(--site-motion-ease),
        transform var(--site-motion-duration) var(--site-motion-ease) !important;
}
body .expanded > .site-disclosure {
    grid-template-rows: 1fr;
    opacity: 1;
    transform: translateY(0);
}
.site-disclosure > .site-disclosure-inner { min-height: 0; overflow: hidden; }
@media (prefers-reduced-motion: reduce) {
    body :is(button, a, input, select, textarea, [role="button"], .card,
        .benefit-card, .service-card, .economy-item, .contact-card, .info-card,
        .hw-section-card, .hw-view, .hw-carousel-track, .carousel-track,
        .auth-overlay, .auth-box, .nav-menu, .mobile-menu-overlay,
        .note-viewer-popup, .note-viewer-backdrop, .ep-nav-tab,
        .ep-category-toggle, .cat-progress-item-toggle, .topic-progress-item-toggle,
        .site-disclosure) { transition-duration: .01ms !important; }
}
body :is(.hero-content, .hero-dashboard-mockup, .about-card, .service-card, .benefit-card,
    .auth-box, .toast, .toast-remove, .animate-section-enter, .animate-section-exit,
    .animate-card-enter, .animate-nav-enter) {
    animation-duration: var(--site-motion-duration);
    animation-timing-function: var(--site-motion-ease);
}
@media (prefers-reduced-motion: reduce) {
    body :is(.hero-content, .hero-dashboard-mockup, .about-card, .service-card, .benefit-card,
        .auth-box, .toast, .toast-remove, .animate-section-enter, .animate-section-exit,
        .animate-card-enter, .animate-nav-enter) { animation-duration: .01ms !important; }
}
