/* Before & After (client 7 Oct 2026): one drag-to-reveal slider per bride (the slider the client liked); dots switch between a bride's photo pairs. */
.pfn-bac-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 28px; align-items: start; }
@media (max-width: 1099.98px) { .pfn-bac-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 34px 22px; } }
@media (max-width: 639.98px) { .pfn-bac-grid { grid-template-columns: minmax(0, 1fr); gap: 30px; } }
.pfn-js .pfn-bac.pfn-more-item:not(.is-shown) { display: none; }
.pfn-bac { position: relative; min-width: 0; margin: 0; }
.pfn-bas__hint { margin: 0 0 22px; text-align: center; font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--wp--preset--color--ink-soft, #6b6b6b); }
.pfn-bas__stage { position: relative; border-radius: 8px; overflow: hidden; background: var(--wp--preset--color--sage, #ecefe6); }
.pfn-bas__track { display: flex; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; cursor: grab; }
.pfn-bas__track::-webkit-scrollbar { display: none; }
.pfn-bas__track.is-dragging { cursor: grabbing; scroll-snap-type: none; }
.pfn-bas__track:focus-visible { outline: 2px solid var(--wp--preset--color--cerise, #c2185b); outline-offset: -2px; }
.pfn-bas__slide { position: relative; flex: 0 0 100%; min-width: 0; aspect-ratio: 4 / 5; scroll-snap-align: center; scroll-snap-stop: always; }
.pfn-bas .pfn-reveal__layer { position: absolute; inset: 0; overflow: hidden; background: var(--wp--preset--color--sage, #ecefe6); }
.pfn-bas .pfn-reveal__layer img { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; object-fit: cover; pointer-events: none; -webkit-user-drag: none; }
.pfn-bas .pfn-reveal__layer.is-fit { background: #fff; }
.pfn-bas .pfn-reveal__layer.is-fit img { object-fit: contain; }
.pfn-bas__nav { position: absolute; top: 50%; width: 42px; height: 42px; margin-top: -21px; padding: 0; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .92); box-shadow: 0 3px 12px rgba(0, 0, 0, .25); cursor: pointer; z-index: 3; }
.pfn-bas__nav[hidden] { display: none; }
.pfn-bas__nav--prev { left: 10px; }
.pfn-bas__nav--next { right: 10px; }
.pfn-bas__nav::before { content: ""; position: absolute; top: 50%; left: 50%; width: 9px; height: 9px; margin: -5px 0 0 -3px; border: solid var(--wp--preset--color--green, #3d4a3c); border-width: 0 0 2px 2px; transform: rotate(45deg); }
.pfn-bas__nav--next::before { margin-left: -7px; transform: rotate(-135deg); }
.pfn-bas__nav:focus-visible { outline: 2px solid var(--wp--preset--color--cerise, #c2185b); outline-offset: 2px; }
.pfn-bas__dots { display: flex; justify-content: center; gap: 8px; margin: 12px 0 0; }
.pfn-bas__dot { width: 9px; height: 9px; padding: 0; border: 0; border-radius: 50%; background: rgba(61, 74, 60, .25); cursor: pointer; transition: background .2s ease, transform .2s ease; }
.pfn-bas__dot.is-active { background: var(--wp--preset--color--green, #3d4a3c); transform: scale(1.25); }
.pfn-bas__dot:focus-visible { outline: 2px solid var(--wp--preset--color--cerise, #c2185b); outline-offset: 3px; }
.pfn-bac__name { margin: 12px 0 0; text-align: center; font-size: 1.05rem; }
.pfn-bac__caption { margin: 6px 0 0; text-align: center; font-size: .9rem; color: var(--wp--preset--color--ink-soft, #6b6b6b); }
@media (prefers-reduced-motion: reduce) { .pfn-bas__dot { transition: none; } }
