.xiancai-factory-gallery {
    --factory-size: 400px;
    --factory-gap: 25px;
    overflow: hidden;
    background: #FFF9F7;
}
.xiancai-factory-gallery .factory-heading { margin-bottom: 36px; }
.xiancai-factory-gallery .factory-copy { max-width: 800px; }
.xiancai-factory-gallery .factory-copy .lead { max-width: 720px; }
.xiancai-factory-gallery .factory-controls { display: flex; align-items: center; gap: 46px; flex-shrink: 0; }
.xiancai-factory-gallery .factory-counter { display: flex; align-items: baseline; gap: 12px; margin: 0; font-variant-numeric: tabular-nums; }
.xiancai-factory-gallery .factory-current { color: #000; font-size: 24px; line-height: 1; }
.xiancai-factory-gallery .factory-total { color: #777; font-size: 12px; white-space: nowrap; }
.xiancai-factory-gallery .factory-arrows { display: flex; gap: 10px; }
.xiancai-factory-gallery .factory-arrows button { display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 1px solid #e6e3e5; border-radius: 50%; background: transparent; color: #222; }
.xiancai-factory-gallery .factory-arrows .factory-prev { border-color: transparent; color: #aaa; }
.xiancai-factory-gallery .factory-arrows button:hover { color: #000; border-color: #aaa; background: #f7f5f6; }
.xiancai-factory-gallery .factory-arrows button:active { background: #e9e5e7; }
.xiancai-factory-gallery .factory-arrows svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.2; }
.xiancai-factory-gallery .factory-viewport { overflow: hidden; min-width: 0; touch-action: pan-y; }
.xiancai-factory-gallery .factory-track { display: flex; align-items: stretch; gap: var(--factory-gap); }
.xiancai-factory-gallery .factory-slide { flex: 0 0 var(--factory-size); width: var(--factory-size); height: var(--factory-size); margin: 0; overflow: hidden; background: var(--tint); }
.xiancai-factory-gallery .factory-slide img { width: 100%; height: 100%; object-fit: cover; display: block; user-select: none; -webkit-user-drag: none; }
.xiancai-factory-gallery.is-ready .factory-track { will-change: transform; }
.xiancai-factory-gallery.is-ready .factory-viewport { cursor: grab; }
.xiancai-factory-gallery.is-dragging .factory-viewport { cursor: grabbing; user-select: none; }
.xiancai-factory-gallery:not(.is-ready) .factory-viewport { overflow-x: auto; }
.xiancai-factory-gallery:not(.is-ready) .factory-arrows { visibility: hidden; }
@media (max-width: 900px) {
    .xiancai-factory-gallery .factory-heading { align-items: flex-start; flex-wrap: wrap; }
    .xiancai-factory-gallery .factory-copy { max-width: 100%; }
}
@media (max-width: 767px) {
    .xiancai-factory-gallery .factory-slide { flex-basis: min(400px, 100%); width: min(400px, 100%); height: auto; aspect-ratio: 1; }
    .xiancai-factory-gallery .factory-controls { margin-top: 26px; justify-content: space-between; gap: 24px; }
    .xiancai-factory-gallery .factory-heading { margin-bottom: 26px; }
    .xiancai-factory-gallery .factory-copy .lead { font-size: 16px; }
}
.xiancai-factory-gallery.is-editor-preview { padding: 32px 0; }
.xiancai-factory-gallery.is-editor-preview .factory-controls { display: none; }
.xiancai-factory-gallery.is-editor-preview .factory-track { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; transform: none; }
.xiancai-factory-gallery.is-editor-preview .factory-slide { width: 100%; height: auto; aspect-ratio: 1; }
.xiancai-factory-gallery.is-editor-preview .factory-slide:nth-child(n+4) { display: none; }
