/* Subtle, consistent micro-interactions. No content depends on these styles. */
:root {
    --sdh-motion-ease: cubic-bezier(.22, 1, .36, 1);
    --sdh-motion-slow: 650ms;
}

/* Supersede the classic theme's CSS-hidden reveal state. Visibility never
   depends on script execution; the progressive observer supplies motion only. */
.reveal-on-scroll { opacity: 1; transform: none; }
.faq-accordion-panel,
.service-children { transition-duration: 650ms; transition-timing-function: var(--sdh-motion-ease); }
.faq-accordion:not(.sdh-accordion-ready) .faq-accordion-panel,
.service-block:not(.sdh-accordion-ready) .service-children { max-height: none; }

:is(.lab-button, .nova-button, .wp-block-button__link, .btn, .sdh-services__quote) {
    transition-duration: var(--sdh-motion-slow);
    transition-timing-function: var(--sdh-motion-ease);
}

:is(.lab-button, .lab-text-link, .sdh-services__quote) > span[aria-hidden="true"] {
    display: inline-block;
    transition: translate var(--sdh-motion-slow) var(--sdh-motion-ease);
}

:is(.lab-button, .lab-text-link, .sdh-services__quote):is(:hover, :focus-visible) > span[aria-hidden="true"] {
    translate: 3px 0;
}

.lab-service-row {
    transition-duration: 650ms;
    transition-timing-function: var(--sdh-motion-ease);
}

.lab-service-row__mark {
    transition-duration: 650ms;
    transition-timing-function: var(--sdh-motion-ease);
}

.lab-faq__list summary i::before,
.lab-faq__list summary i::after {
    transition: transform 600ms var(--sdh-motion-ease);
}

:is(.lab-faq__list details, .single-faq-block, .single-faq-list details, .wp-block-details) > summary:focus-visible {
    outline: 2px solid #6955f5;
    outline-offset: 5px;
}

/* Kept only while the measured accordion animation is active. */
.sdh-faq-animating { overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto !important; }
    .faq-accordion-panel, .service-children { transition: none !important; }
    :is(.lab-button, .lab-text-link, .nova-button, .wp-block-button__link, .btn, .sdh-services__quote,
        .lab-service-row, .lab-service-row__mark, .lab-faq__list summary i)::before,
    :is(.lab-button, .lab-text-link, .nova-button, .wp-block-button__link, .btn, .sdh-services__quote,
        .lab-service-row, .lab-service-row__mark, .lab-faq__list summary i)::after,
    :is(.lab-button, .lab-text-link, .nova-button, .wp-block-button__link, .btn, .sdh-services__quote,
        .lab-service-row, .lab-service-row__mark),
    :is(.lab-button, .lab-text-link, .sdh-services__quote) > span[aria-hidden="true"] {
        transition: none !important;
        animation: none !important;
    }
    :is(.lab-button, .lab-text-link, .sdh-services__quote) > span[aria-hidden="true"] { translate: none; }
}

@media print {
    .sdh-faq-animating { height: auto !important; overflow: visible !important; }
}
