/* Owner-approved private review. Reuse the existing three type roles. */
.review-home-heading{text-align:center;padding:65px 0 18px}.review-home-heading h1{max-width:760px;margin:0 auto 22px;line-height:1.2}.review-home-heading .caption{max-width:none}.commission-site .home-publications{padding-top:24px;padding-bottom:20px}.review-home-quote{padding-top:70px;padding-bottom:25px}.home-intro h2{margin-bottom:24px}
.review-featured{padding:65px 0 80px}.review-featured h2{text-align:center;margin-bottom:40px}.review-featured-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}.review-featured-grid article{min-width:0}.review-featured-grid img{width:100%;aspect-ratio:3/4;object-fit:cover}.commission-site .review-wedding-name{margin-top:16px}.commission-site .review-wedding-venue{margin-top:4px;text-transform:none;color:#555}
.review-carousel{width:100%;min-width:0;max-width:466.667px;justify-self:start}.review-carousel-viewport{position:relative;aspect-ratio:4/5;overflow:hidden;background:#f5f2ef;touch-action:pan-y}.review-carousel-track{height:100%;width:100%}.review-carousel .review-slide{position:absolute;inset:0;margin:0;width:100%;height:100%}.review-carousel .review-slide img{width:100%;height:100%;max-height:none;object-fit:cover}.review-carousel .review-slide[hidden]{display:none!important}.review-carousel-controls{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:12px}.review-carousel-controls button{border:0;background:none;color:#242323;min-width:44px;min-height:44px;padding:8px;font:400 12px/1.6 HaasRegular,Arial,sans-serif;letter-spacing:.06em}.review-carousel-controls button[data-prev],.review-carousel-controls button[data-next]{font-size:22px}.review-carousel-controls button:hover{color:#320013}.review-carousel-controls [data-position]{margin:0;min-width:48px;text-align:center}.review-portrait-section h2{margin-bottom:24px}.approach-mirrored>.review-carousel{grid-column:2;grid-row:1;justify-self:end}.approach-mirrored>div:not(.review-carousel){grid-column:1;grid-row:1}
.review-pending-photo{width:100%;aspect-ratio:4/5;max-width:466.667px;display:flex;align-items:center;justify-content:center;border:1px solid #dfdcd5;background:#f5f2ef;text-align:center;padding:24px}.review-pending-photo p{margin:0;max-width:260px}
.review-carousel-strip{width:100%;max-width:none;margin:40px 0 0}.review-carousel-strip .review-carousel-viewport{aspect-ratio:auto;height:auto;background:none;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;touch-action:pan-x pan-y}.review-carousel-strip .review-carousel-viewport::-webkit-scrollbar{display:none}.review-carousel-strip .review-carousel-track{display:flex;width:max-content;height:auto;gap:8px;padding-inline:8px}.review-carousel-strip .review-slide{position:relative;inset:auto;flex:none;width:calc((100vw - 48px)/5);height:auto;aspect-ratio:3/4;scroll-snap-align:center}.review-carousel-strip .review-slide img{display:block}.review-carousel-strip .review-carousel-controls{margin-bottom:24px}.review-carousel-strip+.commission-process{padding-top:45px}.review-one-line{white-space:nowrap}
@media(min-width:1700px){.review-carousel-strip .review-slide{width:calc((100vw - 56px)/6)}}
@media(max-width:767px){.review-home-heading{padding:40px 0 20px;width:calc(100% - 40px)}.review-home-heading h1{max-width:480px}.review-home-heading .caption{max-width:310px;margin-inline:auto}.commission-site .home-publications{padding-top:22px;padding-bottom:12px}.review-home-quote{padding:48px 0 0}.review-featured{padding:30px 0 55px}.review-featured h2{margin-bottom:28px}.review-featured-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 12px}.review-wedding-name{letter-spacing:0!important}.review-carousel{max-width:466.667px;margin-inline:auto}.approach-mirrored>.review-carousel,.approach-mirrored>div:not(.review-carousel){grid-column:auto;grid-row:auto}.review-carousel-strip{max-width:none;margin-top:25px}.review-carousel-strip .review-slide{width:50vw}.review-carousel-strip .review-carousel-track{padding-inline:25vw;gap:8px}.review-carousel-strip .review-carousel-viewport{scroll-padding-inline:25vw}.review-one-line{font-size:clamp(20px,6.6667vw,26px)!important;letter-spacing:-.045em!important}.commission-lead:has(.review-one-line){width:calc(100% - 32px)}.review-pending-photo{max-width:100%}}
@media(prefers-reduced-motion:reduce){.review-carousel *{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
/* Keep Storyflow's 500px internal canvas from widening the parent mobile grid. */
.copy-review-enquiry,.commission-contact>.enquiry-intro,.copy-review-enquiry>.enquiry-embed{min-width:0}.copy-review-enquiry>.enquiry-embed{width:100%}
@media(max-width:767px){.commission-contact{grid-template-columns:minmax(0,1fr)}}
/* Keep the complete location/format subtitle together on narrow phones. */
.review-home-heading .caption{white-space:nowrap;max-width:none!important}
@media(max-width:767px){.review-home-heading .caption{font-size:clamp(9px,2.9vw,12px)!important;letter-spacing:.02em}}
/* Give the desktop title the full wrapper; balance shorter-screen line breaks. */
.review-home-heading h1{max-width:none;text-wrap:balance}
.review-home-heading h1 .heading-together{white-space:nowrap}
/* Equal-height, manual review carousel: full quotes stay readable while navigating. */
.review-testimonials{outline:none}.home-review-panels{display:grid;align-items:center}.home-review-slide{grid-area:1/1;margin:0;min-width:0;visibility:hidden;opacity:0;pointer-events:none}.home-review-slide.is-current{visibility:visible;opacity:1;pointer-events:auto;animation:review-appear .28s ease-out}.review-testimonials blockquote{margin:0;font:400 18px/1.6 Ivy,Georgia,serif}.review-testimonials figcaption{margin-top:24px}.review-testimonials .review-carousel-controls{margin-top:20px}.home-review-panels{touch-action:pan-y}@keyframes review-appear{from{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.home-review-slide.is-current{animation:none}}
/* Decoded image fades retain an opaque old frame, avoiding a white flash. */
.review-carousel:not(.review-carousel-strip) .review-slide{opacity:0;z-index:0}
.review-carousel:not(.review-carousel-strip) .review-slide.is-current{opacity:1;z-index:2}
.review-carousel:not(.review-carousel-strip) .review-slide.is-underlay{opacity:1;z-index:1}
.review-carousel:not(.review-carousel-strip) .review-slide.is-incoming{z-index:2;transition:opacity .38s ease}
@media(prefers-reduced-motion:reduce){.review-carousel:not(.review-carousel-strip) .review-slide.is-incoming{transition:none}}

/* Mobile title grouping and image-width, two-arrow controls. */
.approach-day-together{white-space:nowrap}
@media(max-width:767px){.review-approach-heading{text-wrap:balance}}
[data-review-carousel]>.review-carousel-controls{width:100%;justify-content:space-between;gap:0}
[data-review-carousel]>.review-carousel-controls [data-position].sr-only{min-width:1px}
.review-carousel-strip>.review-carousel-controls{width:calc((100vw - 48px)/5);margin-inline:auto}
@media(min-width:1700px){.review-carousel-strip>.review-carousel-controls{width:calc((100vw - 56px)/6)}}
@media(max-width:767px){.review-carousel-strip>.review-carousel-controls{width:50vw}}

/* Centre the Weddings introduction on desktop and mobile. */
body[data-page="/weddings"] .copy-review-fit{text-align:center}

/* Supplied Portrait Experience video keeps its complete portrait frame. */
.commission-intro.image-intro>video.portrait-setup-video{display:block;width:100%;max-width:466.667px;height:auto;aspect-ratio:9/16;object-fit:contain;justify-self:start;background:#f5f2ef}
@media(max-width:767px){.commission-intro.image-intro>video.portrait-setup-video{justify-self:center}}
