/* 1.6.0: typography variables do not overlap Elementor's --display layout variable. */
:root {
  --res-font-display: "Bricolage Grotesque", Arial, sans-serif;
  --res-font-body: "Instrument Sans", Arial, sans-serif;
  --res-font-menu: "Fragment Mono", "Courier New", monospace;
}
html body .site-header[data-header] .brand-suffix {
  padding-bottom: 0;
  transform: translateY(3px);
  font-family: var(--res-font-menu);
  line-height: 1;
}
html body .site-header[data-header] .main-nav {
  display: flex;
  align-items: center;
  gap: 14px;
  padding-inline-end: 0;
}
html body .site-header[data-header] .main-nav .menu { flex: 0 1 auto; }
html body .site-header[data-header] .main-nav .main-nav__link { padding-inline: 10px; }
html body .site-header[data-header] .submenu {
  max-height: calc(100dvh - var(--res-header-height,120px) - 35px);
  overflow-y: auto;
  min-width: 275px;
}
html body .res-language-switch {
  display: flex; align-items: center; flex: 0 0 auto;
  gap: 9px; padding-left: 14px; border-left: 1px solid rgba(255,255,255,.22);
}
html body .res-language-switch a {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 34px; font: 500 10px/1 var(--res-font-menu);
  color: #aaa298; letter-spacing: .1em; text-decoration: none;
  border-bottom: 1px solid transparent;
}
html body .res-language-switch a[aria-current] { color: #f2f0eb; border-bottom-color: #f2f0eb; }
html body .res-language-switch a:hover { color: #fff; }

/* Remove the upper of the two adjacent rules; keep the contact rule itself. */
html body .closing.section { border-bottom: 0 !important; }
html body .res-contact.section {
  padding: clamp(30px,3.8vw,54px) 0 !important;
  min-height: 0;
  border-top: 1px solid var(--line);
}
html body .res-contact-grid { gap: clamp(28px,5vw,70px); }
html body .res-contact-heading h2 { font-size: clamp(31px,3.5vw,49px); margin: 12px 0 14px; }
html body .res-contact-heading p { font-size: 16px; line-height: 1.5; margin: 0; max-width: 480px; }
html body .res-contact-heading .button { margin-top: 17px; min-height: 44px; }
html body .res-contact-details { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,1fr); gap: 20px 24px; }
html body .res-contact-item { padding: 0 0 15px; margin-bottom: 0; }
html body .res-contact-item h3 { margin: 0 0 10px; font-size: 10px; }
html body .res-contact-item p, html body .res-contact-item address, html body .res-contact-email { font-size: clamp(16px,1.4vw,20px); line-height: 1.5; }
html body .res-contact-item:last-child { grid-column: 1 / -1; border-bottom: 0; padding-bottom: 0; }
html body .res-shared-chrome .elementor-widget-resonika_contact { width: 100%; }

/* Same page typography and widths as the existing Tunnel document. */
html body .res-project-document .res-bio-grid { display: grid !important; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 54px; width: 100%; padding: 0; }
html body .res-project-document .res-bio-grid .res-page-story { padding-top: 0; }
html body .res-project-document .res-page-project-links { gap: 16px; }
html body .res-project-document .res-page-project-links .res-page-section-title { margin-bottom: 12px; }
html body .res-project-document .res-manifest-ending { padding: 12px 0 36px; }
html body .res-project-document .res-page-note + .res-page-end { padding-top: 32px; }
html body .res-project-document .res-festival-wordmark { width: min(100%,320px); }
html body .res-project-document .res-construction { padding: 28px 0 70px; min-height: 340px; }
html body .res-project-document .res-page-copy a, html body .res-project-document .res-page-note a { text-decoration: underline; text-underline-offset: 4px; }
html body .res-project-document .res-page-video { width: 100%; }
html body .res-project-document .res-page-intro { min-width: 0; }
html body .res-project-document .res-page-title .elementor-heading-title { overflow-wrap: break-word; }
html body .res-project-document .res-page-caption { overflow-wrap: anywhere; }

.res-video { width: 100%; }
.res-video-screen { position: relative; aspect-ratio: 16/9; overflow: hidden; background: #141414; isolation: isolate; }
.res-video-poster { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; filter: grayscale(1) brightness(.42); z-index: -1; }
.res-video-play { position: absolute; inset: 0; width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 20px; padding: 24px; color: #f5f2ed; background: transparent; border: 0; cursor: pointer; font: 500 11px/1.5 var(--res-font-menu); text-transform: uppercase; letter-spacing: .1em; }
.res-video-play:hover { background: rgba(242,240,235,.06); }
.res-play-symbol { display: flex; align-items: center; justify-content: center; width: 66px; height: 66px; padding-left: 3px; border: 1px solid #c3bdb4; border-radius: 50%; font-size: 18px; }
.res-video-play:focus-visible { outline: 2px solid #fff; outline-offset: -5px; }
.res-video-screen iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.res-video-caption { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; padding-top: 13px; font: 500 10px/1.6 var(--res-font-menu); letter-spacing: .03em; color: #cfc9c0; }
.res-video-caption a { color: #f2f0eb; text-decoration: underline; text-underline-offset: 4px; }
html body .res-video-notice { font: 400 11px/1.5 var(--res-font-body); color: #aaa298; padding-top: 9px; }
html body .feature-image:empty::after { content: "+"; display: flex; align-items: center; justify-content: center; height: 100%; font: 300 24px/1 var(--res-font-menu); color: #817a71; }

@media(max-width:1100px){
  html body .site-header[data-header] .main-nav { display: block; }
  html body .site-header[data-header] .res-language-switch { border-left: 0; border-top: 1px solid var(--line); padding: 14px 0 0; margin-top: 10px; justify-content: flex-start; gap: 22px; }
  html body .site-header[data-header] .res-language-switch a { min-width: 32px; min-height: 36px; font-size: 12px; }
  html body .site-header[data-header] .submenu { max-height: none; min-width: 0; }
  html body .res-contact-details { gap: 18px; }
}
@media(max-width:900px){
  html body .res-contact-grid { grid-template-columns: 1fr; gap: 30px; }
  html body .res-project-document .res-bio-grid { grid-template-columns: 1fr; gap: 0; }
}
@media(max-width:520px){
  html body .res-contact-details { grid-template-columns: 1fr; }
  html body .res-contact-item:last-child { grid-column: auto; }
  html body .res-contact-heading .button { margin-top: 16px; }
  html body .res-contact.section { padding: 32px 0 !important; }
  html body .res-video-play { gap: 10px; padding: 10px; }
  .res-play-symbol { width: 48px; height: 48px; }
}
/* Long German/English words must not stretch a grid track or be clipped. */
html body .closing-grid > *, html body .intro-grid > *, html body .zero-grid > * { min-width: 0; }
html body .closing h2, html body .world-word { overflow-wrap: anywhere; }
@media(max-width:760px){
  html body .closing h2 { font-size: clamp(34px,10.2vw,50px); }
  html body .hero-slider .slide h1, html body .hero-slider .slide h2 { font-size: clamp(28px,9.2vw,52px); overflow-wrap: anywhere; }
  html body .world-card .world-word:not(.world-word--logo) { font-size: clamp(28px,8vw,46px); line-height: 1.05; }
}
