/* Phil Pearson / photography edition. All colour belongs to the supplied photos.
   No recolouring, face reconstruction, sharpening or page-level grayscale filter. */
:root{--gallery-gap:20px;--track-height:360px}
.brand-wordmark{display:block;width:156px;height:auto;max-height:74px;object-fit:contain;object-position:left center}
.footer-brand .brand-wordmark{width:220px;max-height:none}
.site-header{background:linear-gradient(180deg,rgba(8,8,8,.88),rgba(8,8,8,.50) 72%,transparent)}
.site-header .brand-name{display:none}
.desktop-nav a[aria-current=page]{color:var(--pink-soft)}
/* The approved homepage collage and right-side headline position are retained. */
.hero-image{filter:none}
.hero-image,.final-photo{pointer-events:none}
.hero-ghost{opacity:.55}
.skip-link{position:fixed;top:8px;left:8px;z-index:9999;transform:translateY(-200%)}
.skip-link:focus{transform:none}
/* Page-specific, photograph-led heroes. The photo is separate from the copy. */
.page-hero.photo-led{min-height:820px;isolation:isolate;display:grid;align-items:center;overflow:hidden;background:#080808}
.page-hero-photo{position:absolute;inset:calc(var(--header) + 30px) var(--gutter) 55px 46%;margin:0;display:flex;flex-direction:column;justify-content:center;z-index:0}
.page-hero-photo::before{content:"";position:absolute;inset:12% -18px 8% 18px;border:1px solid rgba(255,45,149,.36);transform:rotate(2deg);z-index:-1}
.page-hero-photo img{display:block;width:100%;height:auto;max-height:660px;object-fit:contain;position:relative}
.page-hero-photo figcaption{font:700 .6rem/1.5 "Space Grotesk",sans-serif;letter-spacing:.17em;color:#c2b6bd;margin-top:16px;text-align:right}
.page-hero-photo-stage-magician img{height:min(640px,76svh);width:100%;object-fit:contain}
.photo-led .page-hero-shade{background:linear-gradient(90deg,#080808 0%,#080808 32%,rgba(8,8,8,.9) 39%,transparent 48%);z-index:1;pointer-events:none}
.photo-led .page-hero-inner{position:relative;width:min(calc(100% - (var(--gutter)*2)),var(--shell));max-width:var(--shell);margin-inline:auto;padding:calc(var(--header) + 62px) 0 64px;z-index:2;pointer-events:none}
.photo-led .page-hero-inner>*{width:43%;max-width:620px;pointer-events:auto}
.photo-led h1{font-size:clamp(3.4rem,5.5vw,6.2rem);line-height:.92;letter-spacing:-.055em;overflow-wrap:normal;margin-top:18px}
.photo-led .page-hero-lead{font-size:clamp(1rem,1.2vw,1.17rem);line-height:1.65}
.photo-led .page-hero-actions{display:flex}
.photo-led .page-proof{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin-top:30px}
.photo-led .page-proof span{font-size:.61rem;line-height:1.4;letter-spacing:.06em;min-width:0}
.photo-led .page-hero-inner .micro-label{line-height:1.65}
/* Keep a clear, unforced rhythm in the existing copy layouts. */
.split-copy>*{min-width:0}
.split-copy h2{font-size:clamp(3rem,5.3vw,5.8rem);line-height:.91;letter-spacing:-.055em;overflow-wrap:normal}
.location-chapter .split-copy h2{font-size:clamp(2rem,3.7vw,4.1rem);line-height:1}
.outcome-card h3,.sticky-copy h2,.positioning h2,.about-copy h2{line-height:.89}
.positioning-grid{grid-template-columns:1fr 1fr}
.positioning h2{font-size:clamp(3.2rem,6.3vw,6.7rem)}
.editorial-photo img{filter:none}
.editorial-photo:hover img{filter:none;transform:scale(1.025)}
.photo-a img{object-position:60% 40%}
.photo-b img{object-position:50% 36%}
.outcome-image{min-height:0;aspect-ratio:3/2}
.outcome-image img{height:100%;filter:none}
.outcome-image:hover img{filter:none}
.experience-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:stretch}
.experience-card{grid-row:auto;grid-template-columns:1fr;grid-template-rows:auto 1fr!important;min-height:0}
.experience-media{aspect-ratio:3/2;height:auto;min-height:0;overflow:hidden}
.experience-media img{width:100%;height:100%;filter:none;object-position:center 38%}
.experience-media::after{background:linear-gradient(0deg,rgba(8,8,8,.22),transparent 28%)}
.experience-card:hover .experience-media img{filter:none}
.experience-stage .experience-media{background:radial-gradient(ellipse at center,#261a13,#080808)}
.experience-stage .experience-media img{object-fit:contain;transform:none}
.experience-wedding .experience-media{order:0!important}
.experience-copy{padding:clamp(26px,3vw,44px);min-height:330px;gap:8px}
.experience-copy h3{font-size:clamp(2.1rem,3.7vw,4rem);line-height:.94}
.about-media{min-height:0;aspect-ratio:3/4}
.about-media img{width:94%;height:100%;filter:none;object-position:center 30%}
.hub-card-bg{filter:none;opacity:.95}
.hub-card-bg img{width:100%;height:100%;object-fit:cover;object-position:center 38%}
.hub-card::after{background:linear-gradient(0deg,rgba(8,8,8,.94),rgba(8,8,8,.4) 44%,transparent 72%)}
.hub-card-copy{position:relative;z-index:2;max-width:100%}
.hub-card-copy h2{font-size:clamp(2.4rem,4vw,4.6rem);line-height:.96}
.hub-card:hover .hub-card-bg{filter:none}
/* Genuine standalone photography; a small corner cue opens the uncropped version. */
.photo-zoom{display:block;position:relative;overflow:hidden;isolation:isolate;text-decoration:none;background:#101011;cursor:zoom-in}
.photo-zoom img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.photo-zoom:hover img{transform:scale(1.018)}
.zoom-cue{position:absolute;right:15px;bottom:15px;width:38px;height:38px;border:1px solid rgba(255,255,255,.5);display:grid;place-items:center;color:white;background:rgba(8,8,8,.55);backdrop-filter:blur(6px);font-size:20px;line-height:1;pointer-events:none}
.inline-photos{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(20px,3.5vw,50px);margin-top:64px;align-items:start}
.inline-photos figure{position:relative;min-width:0}
.inline-photos figure:nth-child(2){margin-top:60px}
.inline-photos figure::before{content:"";position:absolute;left:-10px;top:20%;height:35%;width:4px;background:var(--pink)}
.inline-photos .photo-zoom img{height:auto;object-fit:contain;max-height:740px}
.inline-photos figcaption{font:500 .68rem/1.6 "Space Grotesk",sans-serif;letter-spacing:.1em;text-transform:uppercase;padding-top:14px;color:#a89ca3}
.light-section .inline-photos figcaption{color:#595158}
.inline-portrait{grid-template-columns:1fr 1fr;max-width:1100px;margin-inline:auto}
.inline-portrait .photo-zoom{background:#080808}
.inline-portrait .photo-zoom img{max-height:650px;object-fit:contain}
.photo-band{background:#080808;padding:0;overflow:hidden}
.photo-band figure{position:relative}
.photo-band .photo-zoom{aspect-ratio:2.15;max-height:750px;clip-path:polygon(0 1%,7% 0,16% 1%,23% .4%,30% 1%,42% 0,58% 1%,69% .2%,86% 1%,100% 0,100% 99%,92% 100%,79% 99.4%,68% 100%,55% 99%,38% 100%,25% 99.2%,10% 100%,0 99%)}
.photo-band .photo-zoom img{object-position:center 42%;filter:none}
.photo-band figcaption{display:flex;justify-content:space-between;gap:20px;padding:20px var(--gutter);border-bottom:1px solid var(--line);font:700 .64rem/1.6 "Space Grotesk",sans-serif;letter-spacing:.15em;color:#cec4ca}
.photo-band figcaption span:last-child{color:var(--pink-soft);white-space:nowrap}
/* Horizontal editorial filmstrip: full photographs, no forced square crops. */
.photo-gallery-section{padding:clamp(80px,8vw,128px) 0;background:#0c0b0e;overflow:hidden}
.photo-gallery-section.is-paper{background:var(--paper);color:var(--ink)}
.gallery-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:36px;margin-bottom:42px}
.gallery-heading>div:first-child{min-width:0;max-width:800px}
.gallery-heading h2{font-size:clamp(3rem,6vw,6.4rem);line-height:.91;letter-spacing:-.055em;margin:0 0 20px}
.gallery-heading h2 span{color:var(--pink)}
.gallery-heading p:not(.micro-label){margin-bottom:0;font-size:1rem;max-width:620px;color:#aba1a7}
.is-paper .gallery-heading p{color:#5a4d55}
.is-paper .micro-label{color:#a5145c}
.gallery-controls{display:flex;gap:18px;align-items:center;flex:none}
.gallery-layout{padding:10px 0;border:none;border-bottom:1px solid currentColor;background:none;color:inherit;text-transform:uppercase;letter-spacing:.12em;font:700 .67rem/1.5 "Space Grotesk",sans-serif;cursor:pointer;white-space:nowrap}
.gallery-arrows{display:flex;gap:8px}
.gallery-arrow{width:48px;height:48px;border:1px solid #64515d;background:transparent;color:inherit;border-radius:50%;display:grid;place-items:center;font-size:20px;cursor:pointer;transition:background .2s ease}
.gallery-arrow:hover:not(:disabled){background:var(--pink);border-color:var(--pink);color:#080808}
.gallery-arrow:disabled{opacity:.28;cursor:default}
.photo-track{display:flex;gap:var(--gallery-gap);overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-x:contain;padding:4px 0 16px;scrollbar-width:thin;scrollbar-color:var(--pink) #272026;touch-action:pan-x pan-y;cursor:grab}
.photo-track:focus-visible{outline:2px solid var(--pink);outline-offset:7px}
.photo-track.is-dragging{scroll-snap-type:none;scroll-behavior:auto;cursor:grabbing;user-select:none}
.photo-track.is-dragging a{cursor:grabbing}
.gallery-item{flex:0 0 calc(var(--track-height) * var(--photo-ratio));min-width:0;scroll-snap-align:start;scroll-margin-inline:0}
.gallery-item .photo-zoom{height:var(--track-height)}
.gallery-item .photo-zoom img{object-fit:contain;transform:none;user-select:none;-webkit-user-drag:none}
.gallery-item figcaption{display:flex;gap:14px;align-items:baseline;padding-top:14px;font:500 .71rem/1.6 "Space Grotesk",sans-serif;color:#b0a5ad}
.gallery-item figcaption span{color:var(--pink-soft);font-size:.63rem}
.is-paper .gallery-item figcaption{color:#574e53}
.is-paper .gallery-item figcaption span{color:#a5145c}
.gallery-foot{display:flex;justify-content:space-between;gap:22px;margin-top:15px;font:600 .58rem/1.6 "Space Grotesk",sans-serif;letter-spacing:.15em;color:#b09da8}
.is-paper .gallery-foot{color:#65545d}
.photo-gallery-section.is-expanded .photo-track{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 22px;overflow:visible;cursor:default}
.photo-gallery-section.is-expanded .gallery-item{align-self:start}
.photo-gallery-section.is-expanded .gallery-item .photo-zoom{height:300px}
.photo-gallery-section.is-expanded .gallery-arrows{display:none}
/* Supplied photographs sit alongside existing quoted testimonials, never invented endorsements. */
.proof-photo-card{padding:0 0 32px!important}
.proof-photo-card .photo-zoom{height:330px;margin:0 0 30px}
.proof-photo-card .photo-zoom img{object-fit:contain;transform:none}
.proof-photo-card>span.number,.proof-photo-card>h3,.proof-photo-card>p{margin-left:30px;margin-right:30px}
.proof-photo-card>h3{margin-top:24px}
.social-proof-strip .option-grid{align-items:start}
.new-video-thumb{filter:none}
.video-card:hover .new-video-thumb{filter:none}
.final-photo{filter:none}
/* Taped showreel frame: no custom poster overlay or reveal mask. */
.showreel-section{content-visibility:visible;scroll-margin-top:calc(var(--header) + 24px)}
.showreel-embedded{opacity:1;clip-path:none;transform:none}
.showreel-embedded::before{display:none}
.showreel-player-shell{position:relative;isolation:isolate}
.showreel-player-shell::before{content:"";position:absolute;inset:-10px;background:var(--paper);clip-path:polygon(0 3%,99% 0,100% 93%,96% 100%,2% 97%);transform:rotate(-.5deg);z-index:0;pointer-events:none}
.showreel-frame{position:relative;z-index:1;width:100%;aspect-ratio:16/9;min-height:210px;background:#000;overflow:hidden}
.showreel-frame iframe{display:block;position:absolute;inset:0;width:100%;height:100%;min-height:210px;border:0;opacity:1;visibility:visible;clip-path:none}
.showreel-player-shell .tape{pointer-events:none;height:14px;z-index:2}
.showreel-player-shell .tape-top{top:-21px;right:9%;transform:rotate(2deg)}
.showreel-player-shell .tape-bottom{bottom:-23px;left:7%;transform:rotate(-2deg)}
.showreel-fallback{position:relative;margin:34px 0 0;color:#bfb1ba;font-size:.7rem;letter-spacing:.09em;line-height:1.6;display:flex;justify-content:space-between;align-items:center;gap:12px;z-index:3}
.showreel-fallback a{color:var(--pink-soft);letter-spacing:0;font-size:.78rem;white-space:nowrap;text-underline-offset:4px}
/* Top-layer lightbox with keyboard controls and uncropped image display. */
body.gallery-open{overflow:hidden}
.photo-lightbox{width:100vw;height:100dvh;max-width:none;max-height:none;border:0;margin:0;padding:0;background:rgba(6,5,7,.98);color:#fff;overflow:hidden}
.photo-lightbox::backdrop{background:rgba(0,0,0,.95)}
.lightbox-shell{display:grid;grid-template-rows:72px minmax(0,1fr) 68px;height:100%;width:min(1700px,100%);margin:auto}
.lightbox-top{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 28px;border-bottom:1px solid #282029;font-size:.66rem;letter-spacing:.15em}
.lightbox-title{color:var(--pink-soft);font-weight:700}
.lightbox-close{width:44px;height:44px;border:1px solid #574652;background:none;border-radius:50%;font-size:25px;cursor:pointer;color:white}
.lightbox-stage{display:grid;grid-template-columns:65px minmax(0,1fr) 65px;align-items:center;min-height:0;padding:18px}
.lightbox-image-wrap{min-width:0;min-height:0;height:100%;position:relative;display:flex;align-items:center;justify-content:center}
.lightbox-image{max-width:100%;max-height:100%;height:auto;width:auto;object-fit:contain}
.lightbox-image.loading{opacity:.35}
.lightbox-nav{width:46px;height:46px;background:#151015;border:1px solid #64505c;border-radius:50%;font-size:21px;color:white;cursor:pointer;justify-self:center}
.lightbox-nav:hover,.lightbox-close:hover{background:var(--pink);color:#080808}
.lightbox-bottom{padding:14px 28px;display:flex;align-items:center;justify-content:space-between;gap:22px;border-top:1px solid #282029}
.lightbox-caption{font-size:.85rem;color:#dbd2d8;line-height:1.4}
.lightbox-count{font-size:.72rem;color:var(--pink-soft);white-space:nowrap}
.lightbox-error{position:absolute;inset:auto 20px 20px;text-align:center;color:#fff}
@media(min-width:1600px){:root{--track-height:420px}.photo-led .page-hero-photo{left:48%}.photo-led{min-height:880px}}
@media(max-width:1080px){
 .positioning-grid{grid-template-columns:1fr}.experience-grid{grid-template-columns:1fr 1fr}.experience-card{display:flex;flex-direction:column}.experience-copy{flex:1}
 .experience-media{width:100%}.photo-led h1{font-size:clamp(3rem,5.8vw,4.5rem)}.gallery-heading{align-items:start}.gallery-controls{flex-direction:column;gap:10px;align-items:flex-end}
 .photo-gallery-section.is-expanded .photo-track{grid-template-columns:repeat(2,minmax(0,1fr))}
 .split-copy h2{font-size:clamp(3rem,6.1vw,5rem)}
}
@media(max-width:900px){
 .page-hero.photo-led{display:flex;align-items:stretch;flex-direction:column;min-height:0;overflow:visible}
 .page-hero-photo{position:relative;inset:auto;order:0;margin:calc(var(--header) + 30px) var(--gutter) 0;width:calc(100% - (var(--gutter)*2));z-index:1}
 .page-hero-photo img{height:auto;max-height:560px;width:100%;object-fit:contain}
 .page-hero-photo-stage-magician img{max-height:540px}
 .page-hero-photo figcaption{display:none}.page-hero-photo::before{inset:10px -8px -8px 12px}
 .photo-led .page-hero-shade{display:none}.photo-led .page-hero-inner{order:1;padding:50px 0 58px}
 .photo-led .page-hero-inner>*{width:100%;max-width:760px}
 .photo-led h1{font-size:clamp(3.1rem,8.8vw,5.6rem)}
 .photo-led .page-proof{max-width:600px}.photo-led .page-hero-lead{max-width:690px}
 .inline-photos{gap:22px}.inline-photos figure:nth-child(2){margin-top:32px}
}
@media(max-width:760px){
 :root{--track-height:310px;--gallery-gap:14px}
 .brand-wordmark{width:127px;max-height:62px}.footer-brand .brand-wordmark{width:190px}
 .experience-grid{grid-template-columns:1fr}.experience-copy{min-height:0;padding:28px;gap:12px}.experience-copy h3{font-size:clamp(2.7rem,9vw,3.8rem)}
 .experience-media{height:auto}.experience-stage .experience-media{aspect-ratio:4/3}
 .about-media{width:min(100%,500px);min-height:0}.about-media img{width:94%;height:100%}
 .gallery-heading{display:block;margin-bottom:28px}.gallery-heading h2{font-size:clamp(2.65rem,10vw,4.8rem)}
 .gallery-controls{flex-direction:row;justify-content:space-between;align-items:center;margin-top:25px}
 .gallery-arrow{width:44px;height:44px}.gallery-item{flex-basis:min(calc(var(--track-height) * var(--photo-ratio)),84vw)}
 .gallery-foot{font-size:.52rem;gap:12px;letter-spacing:.08em}.photo-gallery-section.is-expanded .photo-track{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 12px}
 .photo-gallery-section.is-expanded .gallery-item .photo-zoom{height:220px}
 .inline-photos{grid-template-columns:1fr;gap:32px;margin-top:40px}.inline-photos figure:nth-child(2){margin-top:0}.inline-photos .photo-zoom img{max-height:650px}
 .inline-photos figure::before{left:-6px;width:3px}.photo-band .photo-zoom{aspect-ratio:1.35}
 .photo-band figcaption{font-size:.52rem;padding:16px 18px;gap:12px;letter-spacing:.07em}
 .photo-band figcaption span:last-child{display:none}
 
 .showreel-fallback{flex-direction:column;align-items:flex-start;font-size:.65rem;gap:7px}.showreel-player-shell::before{inset:-6px}.showreel-player-shell .tape{width:72px;height:10px}.showreel-player-shell .tape-top{top:-13px}.showreel-player-shell .tape-bottom{bottom:-14px}
 .proof-photo-card .photo-zoom{height:290px}.social-proof-strip .option-grid{gap:20px}
 .lightbox-shell{grid-template-rows:64px minmax(0,1fr) 84px}.lightbox-top{padding:10px 16px;font-size:.56rem}
 .lightbox-stage{grid-template-columns:1fr;padding:10px;position:relative}.lightbox-image-wrap{grid-column:1;grid-row:1}
 .lightbox-nav{position:absolute;z-index:2;top:calc(50% - 22px);width:38px;height:38px;background:rgba(8,8,8,.72)}
 .lightbox-prev{left:14px}.lightbox-next{right:14px}.lightbox-bottom{padding:12px 16px}.lightbox-caption{font-size:.73rem}.lightbox-count{font-size:.64rem}
 .location-chapter .split-copy h2{font-size:clamp(1.85rem,7.3vw,3.4rem)}
}
@media(max-width:390px){.photo-gallery-section.is-expanded .photo-track{grid-template-columns:1fr}.photo-gallery-section.is-expanded .gallery-item .photo-zoom{height:330px}.photo-led h1{font-size:2.9rem}.photo-led .page-proof span{font-size:.54rem}.gallery-foot span:first-child{display:none}}
@media(prefers-reduced-motion:reduce){.photo-track{scroll-behavior:auto}.photo-zoom img{transition:none}.photo-zoom:hover img{transform:none}}
/* On phones/tablets the original wide collage gets a dedicated portrait area.
   Desktop stays right-aligned; mobile copy starts below Phil, never over his face. */
@media(max-width:900px){
 .hero{min-height:0;display:block}
 .hero-image{inset:var(--header) 0 auto;height:460px;background-size:auto 100%;background-position:22% top;translate:0 0!important}
 .hero-shade{inset:var(--header) 0 auto;height:465px;background:linear-gradient(0deg,#080808 0%,transparent 23%);pointer-events:none}
 .hero-shade::after{display:none}
 .hero-inner{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"copy" "proof";width:calc(100% - (var(--gutter)*2));margin-inline:auto;padding:calc(var(--header) + 440px) 0 36px;row-gap:24px}
 .hero-copy{justify-self:start;max-width:670px;width:100%;padding:0}
 .hero h1{font-size:clamp(3.9rem,10vw,5.7rem);line-height:.87;max-width:100%;margin:24px 0}
 .hero-lead{font-size:1rem;line-height:1.65}
 .proof-rail{grid-template-columns:1fr 1fr;margin-top:20px}
 .proof-item{padding:14px!important;min-height:75px;border-bottom:1px solid rgba(255,255,255,.1)}
 .proof-item:nth-child(2){border-right:0}.proof-item:nth-child(3),.proof-item:nth-child(4){border-bottom:0}
 .hero-ghost,.scroll-cue{display:none}
}
@media(max-width:480px){
 .hero-image{height:420px;background-position:22% top}
 .hero-shade{height:425px}
 .hero-inner{padding-top:calc(var(--header) + 412px)}
 .hero h1{font-size:clamp(3.35rem,16.2vw,4.25rem);line-height:.88}
 .hero .status-pill{font-size:.59rem;letter-spacing:.09em}
}
.clients-heading>*{min-width:0}
@media(max-width:760px){.clients-heading h2{font-size:clamp(2.55rem,12.8vw,4.3rem);line-height:.91}}


/* V4.17 homepage image refinements */
.home-stage-refresh .experience-stage .experience-media img{object-fit:contain!important;object-position:center!important;}
.social-proof-strip .membership-photo-card{position:relative;top:-28px;}
@media(max-width:900px){.social-proof-strip .membership-photo-card{top:0;}}
