/* Portfolio slider copied from the live site (css/styles.css), used in 01 Weddings only.
   Colours are pinned to the live site's values via --ps-* so the redesign's palette can't change it. */
.pslider { --ps-linen: #efe8df; --ps-gold: #a8875f; --ps-ink: #2a2622; }
.pslider { position: relative; }
.pslider-frame { position: relative; width: 100%; aspect-ratio: 3 / 2; max-height: 82vh; overflow: hidden; background: var(--ps-linen); outline: none; touch-action: pan-y; }
.section-alt .pslider-frame { background: #e6ded3; }
.pslider-frame:focus-visible { box-shadow: 0 0 0 2px var(--ps-gold); }
.pslide { position: absolute; inset: 0; margin: 0; opacity: 0; transition: opacity 1.2s ease-in-out; }
.pslide.is-active, .pslider:not(.is-ready) .pslide:first-of-type { opacity: 1; z-index: 1; }
.pslide-bg { position: absolute; inset: -40px; width: calc(100% + 80px); height: calc(100% + 80px); max-width: none; object-fit: cover; filter: blur(28px) saturate(1.1) brightness(.96); opacity: .72; }
.pslide img:not(.pslide-bg) { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.pslide img:not([src]) { visibility: hidden; }
.pslider-arrow { position: absolute; top: 50%; z-index: 3; width: 44px; height: 44px; margin-top: -22px; border: 0; border-radius: 50%; background: rgba(247,243,238,.55); cursor: pointer; opacity: .55; transition: opacity .3s, background .3s; }
.pslider-arrow:focus-visible { opacity: 1; outline: 1px solid var(--ps-ink); }
.pslider-prev { left: 14px; } .pslider-next { right: 14px; }
.pslider-arrow span { position: absolute; top: 50%; left: 50%; width: 10px; height: 10px; border-top: 1.5px solid var(--ps-ink); border-right: 1.5px solid var(--ps-ink); }
.pslider-prev span { transform: translate(-30%, -50%) rotate(-135deg); }
.pslider-next span { transform: translate(-70%, -50%) rotate(45deg); }
@media (hover: hover) {
  .pslider:hover .pslider-arrow { opacity: 1; }
  .pslider-arrow:hover { background: rgba(247,243,238,.9); }
  .pslider-thumb:not([aria-current="true"]):hover { opacity: .85; }
}
/* thumbnail strip below each slider: centred on desktop, scrolls with snap when it overflows */
.pslider-thumbs { display: flex; gap: 10px; margin-top: 16px; padding: 4px 2px 6px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding: 0 12px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.pslider-thumbs::-webkit-scrollbar { display: none; }
.pslider-thumb { flex: 0 0 auto; width: 72px; aspect-ratio: 4 / 5; padding: 0; border: 2px solid transparent; background: #ddd4c8; cursor: pointer; opacity: .55; transition: opacity .3s, border-color .3s; scroll-snap-align: center; }
.pslider-thumb:first-child { margin-left: auto; } .pslider-thumb:last-child { margin-right: auto; }   /* centred, yet scrollable when it overflows */
.pslider-thumb img { width: 100%; height: 100%; object-fit: cover; }
.pslider-thumb[aria-current="true"] { opacity: 1; border-color: var(--ps-gold); }
.pslider-thumb:focus-visible { outline: 1px solid var(--ps-ink); outline-offset: 2px; opacity: 1; }
@media (prefers-reduced-motion: reduce) { .pslide, .pslider-thumb { transition: none; } }
@media (max-width: 900px) {
  .pslider-frame { aspect-ratio: 4 / 5; max-height: 78vh; }
  .pslider-arrow { width: 38px; height: 38px; margin-top: -19px; opacity: .8; }
  .pslider-prev { left: 8px; } .pslider-next { right: 8px; }
  .pslider-thumbs { gap: 8px; margin-top: 12px; }
  .pslider-thumb { width: 58px; }
}
/* fit into the redesign's ivory band */
#weddings .split-head { margin-bottom: clamp(40px, 5vw, 64px); }
#weddings .split-head .display { font-size: clamp(2.6rem, 6vw, 6rem); white-space: nowrap; }
