:root {
  --paper: #f8f6f1;
  --white: #fffdf7;
  --ink: #201b16;
  --muted: #615a4f;
  --brown: #211914;
  --line: #ded4c3;
  --gold: #d4ab61;
  --bronze: #815e32;
}

.site-header { color: var(--white); background: #201a15; }
.index-page .site-header {
  position: fixed; inset: 0 0 auto;
  background: linear-gradient(#19130fe8, #19130f75 78%, transparent);
  transition: background-color .2s;
}
.index-page .site-header.past-hero, .index-page .site-header:focus-within {
  background: #201a15;
}
.navigation { position: relative; grid-template-columns: 1fr; min-height: 88px; }
.navigation #site-nav {
  display: grid; align-items: center; justify-self: center;
  grid-template-columns: repeat(2, max-content) minmax(160px, 185px) repeat(2, max-content);
  gap: clamp(.8rem, 2vw, 2rem);
}
.site-header .nav-link {
  color: #f6ebda; text-transform: uppercase; font-size: .75rem;
  letter-spacing: .1em; font-weight: 700;
}
.site-header .nav-link[aria-current]::after { bottom: 8px; }
.site-header .brand { min-height: 48px; }
.center-brand { justify-self: center; }
.center-brand .brand { gap: .5rem; }
.compact-brand { display: none; }
.header-book {
  position: absolute; right: 0; border-radius: 50px;
  font-size: .74rem; text-transform: uppercase; letter-spacing: .08em;
}

.premiere {
  display: grid; align-items: center;
  min-height: max(650px, 91svh); min-height: max(650px, 91dvh);
  overflow: clip;
}
.premiere > img, .premiere > video {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 50%;
}
.premiere > video { z-index: -2; opacity: 0; }
.premiere > video.is-playing { opacity: 1; }
.premiere::after {
  background: linear-gradient(180deg, #100c0adb, #140e0bb3 25%, #18110dad 64%, #130e0bee);
}
.premiere-content { max-width: 1050px; padding: 8rem 0 7rem; text-align: center; }
.premiere .kicker {
  display: block; color: #e5bf7c;
  font-size: clamp(.66rem, 1.1vw, .82rem); letter-spacing: .21em;
}
.premiere h1 { font-size: clamp(4.1rem, 7.9vw, 7.8rem); line-height: .97; margin: 1rem 0 1.1rem; }
.premiere-place { color: #f0e4d1; font-size: clamp(.95rem, 1.7vw, 1.15rem); }
.premiere .actions { justify-content: center; gap: .6rem 1.6rem; margin-top: 1.85rem; }
.premiere .button {
  min-height: 52px; border-radius: 2px; padding-inline: 1.5rem;
  font-size: .79rem; letter-spacing: .07em; text-transform: uppercase;
}
.premiere .video-link { font-size: .93rem; }
.premiere-foot {
  position: absolute; bottom: 0; inset-inline: 0; display: grid;
  grid-template-columns: 1fr auto 1fr; align-items: center; min-height: 64px;
  border-top: 1px solid #ead1a75c;
}
.premiere-foot a, .ambient-control {
  min-height: 44px; display: inline-flex; align-items: center; gap: .45rem;
  color: #f5eadb; font-size: .83rem;
}
.premiere-foot a { grid-column: 2; }
.premiere-foot a:hover { text-decoration: underline; }
.premiere-foot span { color: #e5bf7c; }
.ambient-control {
  grid-column: 3; justify-self: end; padding: .2rem .6rem; border: 1px solid #e5bf7c80;
  border-radius: 2px; background: #20150fad;
}
.ambient-control:hover { background: #322117; }

.feature-inner {
  display: grid; grid-template-columns: 1fr 1fr; align-items: center;
  gap: clamp(1.5rem, 6.1vw, 6rem); padding-block: clamp(3.5rem, 6vw, 6.5rem);
}
.feature h2 { font-size: clamp(3.1rem, 6.3vw, 6.25rem); }
.feature h2 { margin-block: .6rem 1.2rem; }
.feature-copy > p:not(.kicker) { max-width: 43ch; color: var(--muted); margin-block: .75rem; }
.feature-image { aspect-ratio: 1.19; overflow: hidden; background: var(--brown); }
.feature-image img { width: 100%; height: 100%; object-fit: cover; }
.intro-feature { background: var(--white); }
.intro-feature .feature-copy > p:not(.kicker) {
  font-family: "Palatino Linotype", "Book Antiqua", Palatino, var(--serif);
  color: #3c342c;
  font-size: clamp(1.125rem, 1.4vw, 1.25rem);
  line-height: 1.6;
  margin-block: 1rem;
}

.hall-feature { background: #ede5d8; }
.hall-feature .feature-image { aspect-ratio: 1.23; }
.editorial-link {
  display: inline-flex; gap: .75rem; align-items: center; min-height: 46px; margin-top: .65rem;
  border-bottom: 1px solid var(--bronze); font-weight: 700;
}
.editorial-link:hover { color: var(--bronze); }
.occasion-section { padding-block: clamp(3.5rem, 6vw, 6rem); }
.occasion-section h2 { margin: 0 0 clamp(1.2rem, 2.5vw, 2rem); }
.event-photos {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(.6rem, 1.5vw, 1.25rem);
}

.gallery-strip {
  padding-block: clamp(2.5rem, 4.5vw, 4.5rem);
}
.gallery-strip + .gallery-strip { padding-top: 0; }
.gallery-strip .section-heading {
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 1.2rem;
  margin-bottom: clamp(1rem, 2.5vw, 1.85rem);
}
.gallery-strip h2 { margin: 0; font-size: clamp(2.45rem, 4.6vw, 4rem); }
.gallery-strip .section-heading p { color: var(--muted); margin-top: .6rem; }
.gallery-strip .editorial-link { margin-top: 0; }
.strip-controls { display: flex; justify-content: flex-end; gap: .55rem; margin-top: .6rem; }
.strip-controls[hidden] { display: none; }
.strip-controls button {
  width: 46px; height: 46px; background: var(--white);
  border: 1px solid #a7895e; border-radius: 50%; font-size: 1.22rem;
}
.strip-controls button:not([aria-disabled="true"]):hover { background: #ead8b7; }
.strip-controls button[aria-disabled="true"] { opacity: .47; cursor: default; }
.strip-track {
  display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 3rem) / 4);
  gap: 1rem; overflow-x: auto; scroll-snap-type: x mandatory;
  padding: 4px; margin-inline: -4px; scroll-padding-inline: 4px;
}
.strip-track .gallery-card { min-width: 0; scroll-snap-align: start; }
.strip-track .gallery-card figure, .event-photos .gallery-card figure {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 10px;
  background: var(--white);
}
.strip-track .gallery-card img { aspect-ratio: 4 / 3; }
.strip-track .gallery-card .gallery-facade { object-position: center 24%; }
.event-photos .gallery-card img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center 42%;
}
.strip-track figcaption, .event-photos figcaption {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.booking { background: #282017; }
.booking h2 em, .booking .kicker { color: #e5bf7c; }
.site-footer { border-top: 1px solid #e4ca9d30; }
.footer-layout nav { display: flex; flex-wrap: wrap; gap: .25rem 1rem; }
.footer-layout nav a { display: inline-flex; align-items: center; min-height: 44px; font-size: .85rem; }
.footer-layout nav a:hover { text-decoration: underline; text-underline-offset: .2em; }
.subhero-figure { border-radius: 2px; }
.subhero { padding-block: clamp(2rem, 5vw, 5rem); }
.section h2 em, .subhero h1 em { color: #77552d; }
.modal .button:hover { background: #e9cb92; }

@media (max-width: 1050px) {
  .navigation #site-nav { justify-self: start; }
}
@media (max-width: 780px) {
  .navigation { grid-template-columns: 1fr auto; min-height: 68px; }
  .compact-brand { display: block; }
  .center-brand { display: none; }
  .navigation #site-nav { display: flex; justify-self: stretch; }
  .navigation #site-nav.mobile-menu { display: grid; grid-template-columns: 1fr; gap: 0; }
  .navigation #site-nav.mobile-menu[hidden] { display: none; }
  .site-header .nav-link[aria-current]::after { width: 1.9rem; }
  .premiere { min-height: clamp(620px, 88svh, 800px); }
  .premiere-content { padding: 7rem 0 6rem; }
  .premiere h1 { font-size: clamp(3.4rem, 10vw, 6rem); }
  .strip-track { grid-auto-columns: calc((100% - 1rem) / 2); }
}
@media (max-width: 580px) {
  .premiere { min-height: clamp(570px, calc(89svh - 22px), 710px); }
  .premiere-content { padding: 6.2rem 0 4.7rem; }
  .premiere h1 { font-size: clamp(2.85rem, 10.6vw, 4.7rem); }
  .premiere .kicker { letter-spacing: .12em; }
  .premiere .actions { flex-direction: column; margin-top: 1.4rem; }
  .premiere-foot { min-height: 50px; }
  .premiere > img { object-position: 60% center; }
  .feature-inner { grid-template-columns: 1fr; gap: 1.5rem; }
  .hall-feature .feature-copy { grid-row: 1; }
  .feature-image, .hall-feature .feature-image { aspect-ratio: 1.46; }
  .gallery-strip h2 { font-size: clamp(2.45rem, 9vw, 3rem); }
  .gallery-strip .section-heading { grid-template-columns: 1fr; gap: .55rem; }
  .gallery-strip .editorial-link { justify-self: start; }
  .strip-track { grid-auto-columns: calc((100% - .65rem) / 2); gap: .65rem; }
  .event-photos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .event-photos .gallery-card figure, .strip-track .gallery-card figure { border-radius: 6px; }
  .footer-layout nav { grid-row: 2; grid-column: 1 / -1; gap: 0 .9rem; }
}



.language-switch {
  position: absolute;
  left: 0;
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 2px;
  border: 1px solid #dcc4a365;
  border-radius: 5px;
}
.language-switch a {
  display: grid;
  min-width: 36px;
  min-height: 40px;
  place-items: center;
  padding-inline: .28rem;
  color: #fff8ea;
  border-radius: 3px;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .05em;
}
.language-switch a:hover { color: var(--gold); }
.language-switch a[aria-current] { background: var(--gold); color: var(--ink); }

@media (min-width: 781px) and (max-width: 1050px) {
  .navigation { grid-template-columns: auto minmax(0, 1fr) auto; gap: .6rem; }
  .language-switch, .header-book { position: static; }
  .navigation #site-nav {
    justify-self: center;
    grid-template-columns: repeat(2, max-content) 145px repeat(2, max-content);
    gap: clamp(.5rem, 1.2vw, .9rem);
  }
  .site-header .nav-link { font-size: .68rem; }
  .header-book { padding-inline: .65rem; }
}

@media (max-width: 780px) {
  .navigation { grid-template-columns: minmax(0, 1fr) auto auto; }
  .language-switch { position: static; justify-self: end; }
}
@media (max-width: 365px) {
  .navigation .brand { gap: .4rem; }
  .navigation .brand img { width: 34px; height: 34px; }
  .navigation .brand strong { font-size: .91rem; letter-spacing: .12em; }
  .navigation .brand small { letter-spacing: .11em; }
  .navigation .menu-toggle { padding-inline: .6rem; }
  .language-switch a { min-width: 30px; }
}
