/* A disclosure opens from its own top edge. No persistent render loop/layer. */
.fold-details > :not(summary), .fold-copy { transform-origin: 50% 0; }
.fold-details[data-fold-state="opening"]:not(.mobile-menu),
.fold-details[data-fold-state="closing"]:not(.mobile-menu),
.fold-copy:is([data-fold-state="opening"], [data-fold-state="closing"]) {
  overflow: clip;
  min-height: 0;
  overflow-anchor: none;
}
.fold-copy:is([data-fold-state="opening"], [data-fold-state="closing"]) {
  box-sizing: border-box;
  /* Product copy padding is part of the measured box, so it folds with text. */
  min-height: 0 !important;
}
.fold-details[data-fold-state="opening"] > :not(summary),
.fold-details[data-fold-state="closing"] > :not(summary) { will-change: transform, opacity; }
.mobile-menu.fold-details > .mobile-menu-panel { transform-origin: 90% 0; }
.mobile-menu.fold-details:is([data-fold-state="opening"], [data-fold-state="closing"]) > .mobile-menu-panel {
  will-change: transform, opacity, clip-path;
}
.fold-details .sw-service-toggle::after { transition: transform .25s ease; }
.fold-details[data-fold-state="closing"] .sw-service-toggle::after { transform: rotate(90deg); }
.mobile-menu.fold-details[data-fold-state="closing"] > summary::after {
  background: linear-gradient(currentColor,currentColor) center / 13px 1.5px no-repeat,
              linear-gradient(currentColor,currentColor) center / 1.5px 13px no-repeat;
}
@media (prefers-reduced-motion: reduce) {
  .fold-details > :not(summary), .fold-copy { will-change: auto !important; }
  .fold-details .sw-service-toggle::after { transition: none; }
}
