/* Shared layout for the standalone sections. */
.document-category { display: block; text-decoration: none; color: inherit; }
.document-category:focus-visible { outline: 3px solid var(--red); outline-offset: 5px; }
.document-category:hover h3 { text-decoration: underline; text-underline-offset: 5px; }
.document-list { margin: 32px 0; border-top: 1px solid #d4cfc5; }
.document-row { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 28px 0; border-bottom: 1px solid #d4cfc5; }
.document-row h3 { margin: 0 0 10px; font-size: 22px; }
.document-row p { margin: 0; color: #686259; font-size: 14px; }
.document-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.document-actions a { padding: 12px 16px; border: 1px solid #b9b1a4; color: #151412; text-underline-offset: 4px; }
.document-actions a:hover { border-color: var(--red); color: var(--red); }
.documents-empty { padding: 32px; margin: 28px 0; border: 1px solid #d4cfc5; background: #eeeae3; }
@media(max-width: 760px) { .document-row { align-items: flex-start; flex-direction: column; } }
.document-card .document-download { position: relative; z-index: 1; display: grid; gap: 8px; margin-top: 20px; padding-top: 16px; border-top: 1px solid currentColor; color: inherit; text-decoration: underline; text-underline-offset: 4px; }
.document-card .document-download span { margin: 0; padding: 0; border: 0; color: inherit; }
.document-download small { font-size: 12px; text-decoration: none; }
.gallery.gallery-video-background { background: #000; }
.gallery-video-background::before, .gallery-video-background::after { content: none; }
.gallery-pattern-video { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.gallery-video-background .pattern-toggle { margin: 24px 0 0; background: #151015; border-color: #66535c; color: #eee6eb; }
.video-repertoire.video-pattern-dark { background: #000; color: #fff; }
.video-pattern-dark::before, .video-pattern-dark::after { content: none; }
.video-pattern-dark .repertoire-pattern {
  position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%;
  object-fit: cover; pointer-events: none; filter: none; opacity: 1;
}
.video-pattern-dark .video-collage-copy h2 { color: #fff; }
.video-pattern-dark .video-collage-copy p:not(.section-label),
.video-pattern-dark .video-collage-note { color: #dedbdd; }
.video-pattern-dark .video-collage-copy .section-label { color: #ee9fbc; }
.video-pattern-dark .pattern-toggle { margin: 24px 0 0; background: #151015; border-color: #66535c; color: #eee6eb; }
/* Source patterns remain intact; light treatment is applied only in the page. */
.pattern-host { position: relative; isolation: isolate; overflow: hidden; }
.pattern-host .brand-pattern {
  position: absolute; z-index: -1; pointer-events: none;
  top: 0; right: -12%; width: 100%; height: min(100%, 740px);
  object-fit: cover; opacity: .24; mix-blend-mode: multiply;
  filter: invert(1) grayscale(1) sepia(.65);
  mask-image: linear-gradient(90deg, transparent 5%, #000 80%), linear-gradient(#000, transparent);
  mask-composite: intersect;
}
.pattern-pink .brand-pattern { filter: grayscale(1) brightness(9) invert(1) sepia(.3) hue-rotate(285deg); opacity: .32; }
.pattern-green .brand-pattern { filter: grayscale(1) brightness(5) invert(1) sepia(.6) hue-rotate(65deg); opacity: .3; }
.pattern-toggle { position: relative; z-index: 2; display: block; margin: 0 0 24px auto; padding: 8px 12px; border: 1px solid #b6afa2; border-radius: 2px; background: #f7f6f1; color: #49453c; font: inherit; font-size: 12px; cursor: pointer; }
.studio.pattern-host .pattern-toggle { position: absolute; bottom: 12px; right: 24px; margin: 0; }
.pattern-toggle:hover { border-color: #151412; color: #151412; }
@media(max-width: 760px) {
 .pattern-host .brand-pattern { right: -25%; width: 125%; height: 540px; opacity: .2; }
}
.site-header:not(.is-scrolled):not(.is-open) .main-nav a { color: #fff; }
.site-header:not(.is-scrolled):not(.is-open) .main-nav .nav-ticket:hover { color: #151412; }
.interior-page main { padding-top: 100px; min-height: 65vh; }
.page-bar { display: flex; align-items: baseline; flex-wrap: wrap; gap: 12px; padding: 28px clamp(20px, 5vw, 80px) 0; color: #625e56; }
.page-bar a { text-decoration: underline; text-underline-offset: 4px; }
.page-bar h1 { margin: 0; font: inherit; color: #151412; font-weight: 700; }
.page-story { max-width: 950px; margin: 0 auto; padding: 40px 24px 64px; }
.interior-page .page-story p, .interior-page .page-story h3, .interior-page .page-story li, .interior-page .page-story span { color: #151412; opacity: 1; }
.interior-page .page-story .history-depth article { padding: 0 0 24px; background: transparent; }
.interior-page .page-story .heritage-project-copy { display: block; max-height: none; overflow: visible; -webkit-mask-image: none; mask-image: none; }
.footer-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-content: start; gap: 12px 24px; }
@media (min-width: 1001px) {
  .site-footer { grid-template-columns: minmax(180px, 1fr) minmax(300px, 1.3fr) minmax(190px, 1fr) auto; }
}
.footer-links a { line-height: 1.4; }
.site-footer-compact { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) auto; }
.site-footer-compact::after { content: none; }
.site-footer-compact .footer-socials { grid-column: auto; margin-top: 20px; padding: 0; border-top: 0; }
@media (max-width: 760px) {
  .site-footer-compact { grid-template-columns: minmax(0, 1fr); }
  .site-footer-compact .footer-top { justify-self: start; }
}
.footer-links a[aria-current="page"] { text-decoration: underline; text-underline-offset: 5px; }
@media (max-width: 760px) {
  .interior-page main { padding-top: 86px; }
  .page-bar { padding-top: 20px; font-size: 13px; }
  .page-story { padding: 32px 20px 48px; }
}
/* Consistent navigation and editorial pages. */
.hero::after { content: none; }
.nav-group { position: relative; }
.nav-group summary { cursor: pointer; padding: 12px 0; list-style: none; }
.nav-group summary::-webkit-details-marker { display: none; }
.nav-group summary::after { content: "⌄"; margin-left: 8px; }
.nav-group[open] summary::after { content: "⌃"; }
.nav-submenu { position: absolute; top: 100%; left: 0; min-width: 220px; padding: 10px; background: #fafaf8; color: #151412; box-shadow: 0 12px 32px #0002; border: 1px solid #dedbd4; }
.site-header .nav-submenu a { display: block; padding: 12px; color: #151412 !important; font-size: 14px; }
.nav-submenu a:hover { background: #eeeae2; }
.nav-group:has([aria-current="page"]) summary { color: var(--red); }
.page-bar { padding-bottom: 24px; max-width: 1280px; margin: auto; }
.page-story { padding-block: 56px; }
.page-story .history-depth article + article { border-top: 1px solid #d6d2c9; padding-top: 24px; }
.page-story p, .page-story li { max-width: 72ch; }
.page-story h3 { max-width: 30ch; }
.studio-enrol { margin-top: 28px; }
.contact-form select { width: 100%; padding: 14px; border: 1px solid #b8b2a9; background: #fff; color: #151412; font: inherit; }
.contact-form select:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }
@media (max-width: 1080px) {
.main-nav:not(.is-open) { visibility: hidden; pointer-events: none; }
.nav-group summary { padding: 17px 0; font-size: 1.08rem; border-bottom: 1px solid var(--line); }
.nav-submenu { position: static; box-shadow: none; border: none; padding: 0 0 8px 16px; }
.site-header .nav-submenu a { padding: 13px 0; }
}
@media (max-width: 760px) {
.hero { min-height: 760px; min-height: max(690px, 88svh); align-items: end; }
.hero-mobile-image { background-image: url("assets/optimized/IMG_5302.webp"); background-position: 50% 28%; background-size: cover; }
.hero-content { padding-top: 260px; padding-bottom: 36px; }
.hero-shade { background: linear-gradient(0deg, #000 0%, #000d 32%, #0002 72%, #0005 100%); }
.hero-content h1 { font-size: clamp(70px, 20vw, 104px); }
.page-bar { padding-bottom: 20px; }
.page-story { padding-block: 32px; }
}
