page-content, cms-block, cms-container, image-slideshow { display: block; }
cms-block { background: var(--cms-block-background, transparent); padding: var(--cms-block-padding, 0); }

:root { color-scheme: dark; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: #192b32; color: #ece3d9; font-family: Roboto, sans-serif; text-size-adjust: 100%; -webkit-text-size-adjust: 100%; }
@media (max-width: 500px) { html { font-size: 16px; } }
@media (min-width: 501px) { html { font-size: 23px; } }
a { color: inherit; }
img { max-width: 100%; }
#page-shell { display: flex; flex-direction: column; min-height: 100vh; }
#page-main { flex: 1; width: min(100% - 40px, 800px); margin: 0 auto; padding: 162px 0 70px; }

#main-nav { position: fixed; inset: 0 0 auto; z-index: 1000; height: 142px; display: flex; align-items: center; justify-content: center; background: #8e9a7c; border-bottom: 1px solid #eee; }
#main-nav .logo img { position: relative; top: 32px; width: auto; height: 110px; object-fit: contain; }
#main-nav .nav-links { display: flex; align-items: center; }
#main-nav a { padding: 0 11px; color: white; font-family: 'Hedvig Letters Serif', serif; font-size: 16px; font-weight: 300; letter-spacing: .6px; line-height: 142px; text-decoration: none; text-transform: uppercase; }
#main-nav a:hover { text-decoration: underline; }
#main-nav-toggle { display: none; width: 52px; height: 52px; border: 0; background: transparent; padding: 0; }
#main-nav-toggle span { position: absolute; left: 10px; width: 32px; height: 3px; background: white; transition: top .2s ease, transform .2s ease, opacity .2s ease; }
#main-nav-toggle span:nth-child(1) { top: 15px; }
#main-nav-toggle span:nth-child(2) { top: 25px; }
#main-nav-toggle span:nth-child(3) { top: 35px; }

h1 { margin: 1.6em 5% .7em; color: #c5a77b; font: 700 1.4rem/1.2 'Hedvig Letters Serif', serif; text-align: center; }
h2 { margin: 1.5em 0 .5em; color: #ddd; font: 400 1rem/1.4 Kameron, serif; text-transform: uppercase; }
p { color: #ece3d9; font-family: Kameron, sans-serif; font-size: 1rem; font-weight: 300; letter-spacing: .2px; line-height: 1.4; }
.abstract { max-width: 420px; margin: 1.2rem auto; padding: 0 40px; color: #ece3d9; font: 1.5rem/1.2 'Hedvig Letters Serif', serif; text-align: center; }
.mini { color: #bbb; font-size: .6rem; text-align: center; }
figure { display: block; width: fit-content; margin: 35px auto; text-align: center; }
figure img { display: block; height: auto; margin: auto; }
a.button { display: block; width: fit-content; margin: 35px auto; }
cms-block.hero { margin-top: -20px; }
:target { scroll-margin-top: 155px; }

.event { display: block; margin-bottom: 2px; padding: 10px 20px; background: #fff1; }
.event h1 { margin: .4rem 0; font-size: 1rem; text-align: left; }
.event p { font-size: .8rem; line-height: 1.3; }

#page-footer { padding: 60px 40px 50px; background: #8e9a7c; color: white; font-family: 'Hedvig Letters Serif', serif; }
.footer-content { display: flex; max-width: 800px; margin: auto; justify-content: space-between; gap: 40px; }
.footer-content p { margin: 0; color: white; font-size: .6rem; line-height: 1.35; }
.footer-logo { width: 180px; height: fit-content; }

@media (min-width: 1000px) { cms-block.hero { margin-left: -100px; margin-right: -100px; } }
@media (min-width: 1200px) { cms-block.hero { margin-left: -190px; margin-right: -190px; } }
@media (max-width: 875px) {
  #main-nav { height: 142px; padding: 0; }
  #main-nav.closed .logo { position: absolute; top: 0; left: 50%; display: flex; width: 132px; height: 142px; align-items: center; justify-content: center; padding: 0; line-height: normal; transform: translateX(-50%); }
  #main-nav .logo img { top: 0; width: 110px; height: 110px; }
  #main-nav-toggle { position: absolute; top: 45px; right: 18px; display: block; }
  #main-nav.closed .nav-links { display: none; }
  #main-nav.open { display: block; height: auto; background: #8e9a7cf5; border-bottom: 0; backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); border-bottom: 1px solid #eee; }
  #main-nav.open .logo { display: none; }
  #main-nav.open .nav-links { display: flex; flex-direction: column; align-items: flex-start; padding: 82px 30px 30px; }
  #main-nav.open .nav-links a { padding: 0; font-size: 28px; font-weight: 400; line-height: 2; text-transform: none; }
  #main-nav.open #main-nav-toggle span:nth-child(1) { top: 25px; transform: rotate(45deg); }
  #main-nav.open #main-nav-toggle span:nth-child(2) { opacity: 0; }
  #main-nav.open #main-nav-toggle span:nth-child(3) { top: 25px; transform: rotate(-45deg); }
  #page-main { padding-top: 162px; }
  :target { scroll-margin-top: 155px; }
}
@media (max-width: 550px) { .footer-content { flex-direction: column; } }
@media (max-width: 550px) { cms-block.hero { margin-left: -20px; margin-right: -20px; } }
