/* v21: direct subpages and calm black/white structure with gold rules. */
body.public-site.subpage .public-header{position:relative;inset:auto;background:#000;border-bottom:1px solid var(--gold);width:100%}
.page-heading{background:#000;color:#fff;text-align:center;padding:36px 6% 24px}
body.public-site .page-heading h1{color:#fff;font-family:'Novanta Display',Georgia,serif;font-size:clamp(30px,3.5vw,48px);line-height:1.2;margin:0;letter-spacing:0;text-wrap:balance}
.page-heading-rule{height:1px;background:var(--gold);max-width:1120px;margin:24px auto 0}
body.public-site.subpage main>.section:first-child{padding-top:28px}
body.public-site :is(.card,.form-panel,.wide,.sitemap-group,.partner-card){border-radius:22px;border:1px solid #ffffff24;box-shadow:0 8px 36px #0002}
body.public-site .section-head{gap:32px}
body.public-site .button{border-radius:999px;box-shadow:0 5px 22px #0002}
body.public-site .book-categories{border-top:1px solid var(--gold);border-bottom:1px solid var(--gold);padding:16px 0;gap:14px}
body.public-site .book-categories a{color:#fff;background:#000;border:0;border-radius:0;padding:8px 12px}
body.public-site .book-categories a[aria-current=true]{text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:8px}
body.public-site .transition-controls button,body.public-site .book-controls button{background:transparent!important;color:#fff!important;border:0!important;border-radius:0!important;box-shadow:none!important;font-size:30px;min-height:44px;min-width:44px;padding:8px 14px!important}
body.public-site .transition-controls{width:100%;justify-content:space-between}
body.public-site .transition-caption{left:5%;right:5%;bottom:20px}
body.public-site .transition-caption>p{display:none}
body.public-site .book-controls{background:#000;color:#fff;border-top:1px solid var(--gold)}
body.public-site .transition-dots{display:none!important}
body.public-site .gallery-zoom{display:block;background:transparent!important;border:0!important;border-radius:0!important;padding:0!important;width:100%;height:100%;box-shadow:none!important;cursor:zoom-in;transform:none!important}
body.public-site .gallery-zoom img{display:block;width:100%;height:100%;object-fit:cover}
.gallery-lightbox{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;padding:55px 5% 65px;margin:0;border:0;background:#000;color:#fff;overflow:hidden}
.gallery-lightbox::backdrop{background:#000e}
.gallery-lightbox>img{display:block;width:100%;height:calc(100% - 45px);object-fit:contain}
body.public-site .gallery-lightbox button{position:absolute;background:transparent!important;color:#fff!important;border:0!important;border-radius:0!important;padding:8px!important;min-width:44px;min-height:44px;font-size:32px;transform:none}
.lightbox-close{top:8px;right:15px}.lightbox-prev{left:10px;bottom:14px}.lightbox-next{right:10px;bottom:14px}
body.public-site .lightbox-caption{text-align:center;margin:12px 50px 0;color:#fff!important;font:15px/1.4 system-ui}
.lightbox-open{overflow:hidden}
body.public-site.legal-page{background:#fff;color:#000}
body.public-site.legal-page .shell{background:#fff;max-width:1440px;padding-inline:6%}
body.public-site.legal-page .legal-hub{padding-top:32px;padding-bottom:60px}
body.public-site.legal-page .legal-introduction :is(h2,p){color:#000!important}
body.public-site.legal-page .legal-jump{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:28px 0 36px;border-block:1px solid var(--gold);background:#fff}
body.public-site.legal-page main .legal-jump a{padding:16px 18px;color:#000!important;background:transparent;border-bottom:1px solid #ddd;border-radius:0;font:500 16px/1.4 system-ui}
body.public-site.legal-page .legal-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
body.public-site.legal-page .legal-card,body.public-site.legal-page .legal-contact{background:#000;color:#fff;border-radius:24px;padding:32px;box-shadow:0 12px 32px #0001;border:1px solid #111;scroll-margin-top:25px}
body.public-site.legal-page .legal-card :is(h2,p,span),body.public-site.legal-page .legal-contact :is(h2,p,a){color:#fff!important}
body.public-site.legal-page .legal-card h2{font:500 clamp(23px,2.2vw,30px)/1.25 system-ui;letter-spacing:-.5px;margin:10px 0 20px;border-bottom:1px solid var(--gold);padding-bottom:18px}
body.public-site.legal-page .legal-card p{font:400 16px/1.75 system-ui;margin:0}
body.public-site.legal-page .legal-contact{margin-top:30px}
@media(max-width:780px){
 .page-heading{padding:85px 22px 16px}
 body.public-site .page-heading h1{font-size:29px}
 .page-heading-rule{margin-top:18px}
 body.public-site .hero.hero-centered .hero-content{top:26%}
 /* Background videos are ambient: no native controls, tap or PiP affordance. */
 body.public-site :is(.hero-video,.scene-video){pointer-events:none!important;user-select:none}
 body.public-site :is(.hero-video,.scene-video)::-webkit-media-controls{display:none!important}
 body.public-site .scene-video-toggle,body.public-site .scene-video-status{display:none!important}
 body.public-site .home-scene:has(.scene-video){aspect-ratio:auto;min-height:330px}
 /* Photo surfaces are landscape; logos retain their original proportions. */
 body.public-site .hero>img{height:auto!important;aspect-ratio:16/9;object-fit:cover}
 body.public-site .scene-backdrop:has(>img){inset:0 0 auto;height:auto;aspect-ratio:16/9}
 body.public-site .scene-backdrop>img{aspect-ratio:16/9;filter:blur(2px)}
 body.public-site :is(.gallery img,.editorial-media img,.event-overview-card>img,.card>img,.partner-logo img,.closing-film>img){width:100%;height:auto!important;aspect-ratio:16/9;object-fit:cover}
 body.public-site .editorial-media{min-height:0}
 body.public-site .gallery{columns:1}
 body.public-site .transition-stage{height:auto;aspect-ratio:16/9}
 body.public-site .gallery-zoom{height:auto;aspect-ratio:16/9}
 body.public-site .transition-slide .gallery-zoom{height:100%;aspect-ratio:auto}
 body.public-site .closing-film.video-placeholder{aspect-ratio:16/9}
 body.public-site.legal-page .legal-jump{grid-template-columns:1fr 1fr}
 body.public-site.legal-page .legal-jump a{padding:13px 8px;font-size:14px}
 body.public-site.legal-page .legal-cards{grid-template-columns:1fr;gap:18px}
 body.public-site.legal-page .legal-card,body.public-site.legal-page .legal-contact{padding:24px;border-radius:22px}
 body.public-site.legal-page .legal-card h2{text-align:left;font-size:23px}
 .gallery-lightbox{padding:65px 12px 75px}
}
