/* Full-bleed backgrounds, one shared content measure. */
body{--shell:min(1200px,calc(100% - 64px));--header:96px;background:#fff}
body .site-frame{width:100%;max-width:none;box-shadow:none}
body .site-header{width:100%;left:0;right:0;transform:none}
.shell{width:var(--shell);margin-inline:auto}
.site-header .nav-shell{width:min(1320px,calc(100% - 48px));grid-template-columns:auto 1fr auto;gap:24px}
.site-header .desktop-nav{justify-content:flex-end;gap:20px}
.site-header .desktop-nav a,.mobile-panel nav a{font-family:Inter,'Helvetica Neue',Arial,sans-serif;font-weight:400;font-size:13px;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}
.site-header .brand-copy strong{font-size:13px}
.site-header .brand-copy>span{font-size:10px;white-space:nowrap;line-height:1.5}
.site-header .nav-actions .button-primary,.site-header:not(.scrolled) .nav-actions .button-primary,.site-header.scrolled .nav-actions .button-primary{display:inline-flex;min-height:44px;padding:10px 16px;background:transparent;color:var(--ink);border:1px solid var(--ink);border-radius:3px;box-shadow:none;font-size:12px;font-weight:400;letter-spacing:.05em;white-space:nowrap}
.site-header .nav-actions .button-primary:before{display:none}
.site-header .nav-actions .button-primary:hover{background:var(--ink);color:#fff}
.mobile-panel{width:100%;overflow-y:auto;align-content:start;padding-top:120px}
.mobile-panel nav{gap:4px}.mobile-panel nav a{font-size:19px;padding:8px 0}
.site-footer .brand-copy>span{white-space:normal;max-width:230px;line-height:1.5}
.hero-layout{gap:48px;min-height:560px}
.hero h1{font-size:clamp(56px,6vw,84px)}
.hero-visual{min-height:540px}.visual-shell{width:100%;max-width:none}
.section{padding-block:80px}
.service-editorial-intro{padding-top:calc(var(--header) + 56px);padding-bottom:40px}
.service-editorial-intro h1{font-size:clamp(46px,5.5vw,76px)}
.service-wide-image img{height:clamp(300px,42vw,520px);object-fit:cover}
/* Gallery uses identical columns and rhythm for every media card. */
.gallery-videos,.media-gallery-page .reception-section,.media-gallery-page .gallery-venue{padding-block:0 64px}
.gallery-section-heading,.media-gallery-page .reception-heading,.media-gallery-page .gallery-venue-heading{margin-bottom:24px}
.gallery-section-heading .eyebrow,.media-gallery-page .reception-heading .eyebrow,.media-gallery-page .gallery-venue-heading .eyebrow{margin-bottom:12px}
.gallery-section-heading h2,.media-gallery-page .reception-heading h2,.media-gallery-page .gallery-venue h2{font-size:36px;line-height:1.15;letter-spacing:-.035em}
.gallery-section-heading>p:last-child{margin-top:12px;color:var(--muted)}
.gallery-video-grid,.media-gallery-page .reception-mosaic{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 24px}
.gallery-video-card{min-width:0}
.gallery-video-thumb{position:relative;display:block;width:100%;aspect-ratio:16/10;padding:0;border:0;border-radius:12px;overflow:hidden;background:#10131a;cursor:pointer;color:#fff}
.gallery-video-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .2s}
.gallery-video-thumb:hover img{transform:scale(1.025)}
.gallery-video-thumb:after{content:"";position:absolute;inset:40% 0 0;background:linear-gradient(transparent,#000b)}
.gallery-play{position:absolute;z-index:1;inset:50% auto auto 50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:48px;height:48px;padding-left:3px;border-radius:50%;background:#fff;color:#10131a}
.gallery-video-label{position:absolute;z-index:1;bottom:14px;left:16px;font-size:12px;letter-spacing:.04em}
.gallery-video-card h3{font-size:17px;line-height:1.4;font-weight:500;margin-top:12px;letter-spacing:-.015em}
.media-gallery-page .reception-photo:nth-child(n){grid-column:auto;height:auto;aspect-ratio:4/3;border-radius:12px}
.media-gallery-page .reception-photo img{width:100%;height:100%;object-fit:cover}
.media-gallery-page .reception-photo>span{font-size:12px;padding:6px 10px;bottom:12px;right:12px}
.media-gallery-page .gallery-venue{display:grid;grid-template-columns:1fr 2fr;gap:32px;align-items:start}
.media-gallery-page .gallery-venue figure>img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:12px}
.media-gallery-page .gallery-venue figcaption{font-size:13px}
.gallery-local-dialog,.media-expand-dialog{margin:auto;padding:16px;border:0;border-radius:12px;background:#10131a;color:#fff;max-width:94vw;max-height:94dvh}
.gallery-local-dialog::backdrop,.media-expand-dialog::backdrop{background:#000d}
.gallery-local-dialog header{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:12px}
.gallery-local-dialog h2{font-size:17px;line-height:1.4;letter-spacing:0}
.gallery-local-dialog button,.media-expand-dialog button{padding:9px 14px;border:1px solid #ffffff80;border-radius:5px;background:none;color:#fff;cursor:pointer}
.gallery-local-dialog video{display:block;max-width:88vw;max-height:76dvh;width:auto;height:auto;margin:auto;background:#000}
.media-expand-dialog button{display:block;margin:0 0 12px auto}
.media-expand-dialog img{max-width:88vw;max-height:80dvh;width:auto;height:auto;object-fit:contain}
main img[data-expand-photo]{cursor:zoom-in}
main img[data-expand-photo]:focus-visible,.gallery-video-thumb:focus-visible{outline:3px solid var(--blue);outline-offset:4px}
@media(min-width:1280px){.site-header .desktop-nav{display:flex}.site-header .menu-toggle{display:none}}
@media(max-width:1279px){.site-header .desktop-nav{display:none}.site-header .menu-toggle{display:block}.site-header .nav-shell{grid-template-columns:1fr auto}}
@media(max-width:900px){.gallery-video-grid,.media-gallery-page .reception-mosaic{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-layout{grid-template-columns:1fr;gap:32px;min-height:0}.hero-visual{min-height:0}.visual-shell{max-width:580px;margin-inline:auto}.media-gallery-page .gallery-venue{grid-template-columns:1fr}}
@media(max-width:620px){body{--shell:calc(100% - 40px);--header:80px}.site-header .nav-shell{width:calc(100% - 32px);gap:12px}.site-header .brand{gap:8px}.site-header .brand-symbol{width:56px}.site-header .brand-copy strong{font-size:11px}.site-header .brand-copy>span{display:none}.site-header .nav-actions{gap:8px}.site-header .nav-actions .button-primary{font-size:10px;padding:8px 10px;min-height:40px}.section{padding-block:56px}.hero h1{font-size:clamp(48px,12vw,70px)}.service-editorial-intro{padding-top:calc(var(--header) + 36px);padding-bottom:32px}.service-editorial-intro h1{font-size:46px}.gallery-video-grid{grid-template-columns:1fr;gap:24px}.media-gallery-page .reception-mosaic{gap:12px}.media-gallery-page .reception-photo>span{font-size:10px;right:6px;bottom:6px}.gallery-videos,.media-gallery-page .reception-section,.media-gallery-page .gallery-venue{padding-bottom:44px}.gallery-section-heading h2,.media-gallery-page .reception-heading h2,.media-gallery-page .gallery-venue h2{font-size:30px}.gallery-local-dialog header{gap:12px}.gallery-local-dialog h2{max-width:220px}}
.dj-hero-photo{transform:none;object-position:center}
@media(max-width:620px){
 .service-editorial-intro h1,.lighting-intro h1{font-size:clamp(30px,8.8vw,46px)}
 .site-header .brand-copy strong{white-space:nowrap;font-size:10px;letter-spacing:.04em}
 .site-header .nav-actions .button-primary,.site-header:not(.scrolled) .nav-actions .button-primary,.site-header.scrolled .nav-actions .button-primary{font-size:10px;padding:8px 10px;min-height:40px}
}
