body{
  margin:0;
  font-family:"Helvetica Neue",Arial,Helvetica,sans-serif;
  background:#fff;
  color:#1f1f1f;
  line-height:1.6;
}
.site{
  max-width:980px;
  margin:0 auto;
  padding:0 1rem 2.5rem;
}
.site-header{
  padding:0.6rem 0 0.9rem;
  border-bottom:1px solid #e5e5e5;
  position:sticky;
  top:0;
  z-index:1000;
  background:#fff;
}
.brand-row{
  text-align:center;
  padding:0.3rem 0 0.6rem;
}
.brand-title{
  font-size:0.85rem;
  font-weight:600;
  letter-spacing:0.2rem;
  text-transform:uppercase;
  color:#777;
  margin:0;
}
.brand-title a{
  color:inherit;
  text-decoration:none;
}
.nav-row{
  background:#222;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:0.5rem 0.75rem;
  border-radius:2px;
  overflow:visible;
}
.main-nav{
  flex:1;
  overflow:visible;
}
.menu{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  gap:1.25rem;
  align-items:center;
  white-space:nowrap;
}
.menu > li{
  position:relative;
}
.menu > li > a{
  color:#f2f2f2;
  font-weight:500;
  font-size:0.95rem;
  text-decoration:none;
  padding:0.25rem 0;
  display:inline-flex;
  align-items:center;
  gap:0.35rem;
}
.menu > li > a:hover{
  text-decoration:none;
  color:#fff;
}
.has-submenu > a::after{
  content:"▾";
  font-size:0.7rem;
  color:#cfcfcf;
}
.submenu{
  list-style:none;
  margin:0;
  padding:0.5rem 0;
  position:absolute;
  top:100%;
  left:0;
  min-width:220px;
  background:#f7f7f7;
  border:1px solid #d9d9d9;
  box-shadow:0 6px 18px rgba(0,0,0,0.08);
  display:none;
  z-index:10;
  white-space:normal;
}
.submenu li a{
  display:block;
  padding:0.45rem 0.9rem;
  color:#1f1f1f;
  text-decoration:none;
  font-weight:500;
}
.submenu li a:hover{
  background:#ededed;
}
.has-submenu:hover .submenu,
.has-submenu:focus-within .submenu{
  display:block;
}
a{
  color:#1e73be;
  text-decoration:none;
}
a:hover{
  text-decoration:underline;
}
h1{
  margin:1.4rem 0 0.5rem;
  font-size:2rem;
  color:#111;
}
.lang-switch{
  display:flex;
  gap:0.35rem;
  align-items:center;
  flex-wrap:nowrap;
  margin:0;
}
.lang-btn{
  border:0;
  background:transparent;
  color:#d8d8d8;
  padding:0.2rem 0.4rem;
  cursor:pointer;
  font-size:0.9rem;
}
.lang-btn.active{
  background:#3a3a3a;
  color:#fff;
  border-radius:2px;
}
.lang-btn:hover{
  color:#fff;
  background:#2d2d2d;
  border-radius:2px;
}
.lang-content{
  display:none;
}
.lang-content.active{
  display:block;
}
img{
  max-width:100%;
  height:auto;
}
.embedded-media{
  margin:1rem 0;
  text-align:center;
}
.embedded-media img{
  max-width:720px;
  width:100%;
  height:auto;
  border:1px solid #e5e5e5;
}
.embedded-caption{
  font-size:0.9rem;
  color:#666;
  margin-top:0.35rem;
}
footer{
  margin-top:2rem;
  border-top:1px solid #e5e5e5;
  padding-top:1rem;
  color:#666;
  font-size:0.92rem;
}
h2{
  margin:1.5rem 0 0.5rem;
  font-size:1.35rem;
  color:#111;
}
.event-lead{
  font-size:1.05rem;
  color:#444;
  margin:0 0 1rem;
}
.event-highlight{
  margin:1.25rem 0 1.75rem;
  padding:1rem 1.15rem;
  background:#f7f7f7;
  border:1px solid #e5e5e5;
  border-radius:2px;
}
.event-highlight h2{
  margin-top:0;
  font-size:1.2rem;
}
.event-dl{
  margin:0.75rem 0 0;
}
.event-dl dt{
  font-weight:600;
  margin-top:0.65rem;
  color:#333;
}
.event-dl dt:first-child{
  margin-top:0;
}
.event-dl dd{
  margin:0.15rem 0 0;
}
.event-table-wrap{
  overflow-x:auto;
  margin:1rem 0;
  -webkit-overflow-scrolling:touch;
}
.event-table{
  width:100%;
  border-collapse:collapse;
  font-size:0.95rem;
}
.event-table th,
.event-table td{
  border:1px solid #d9d9d9;
  padding:0.5rem 0.65rem;
  text-align:left;
  vertical-align:top;
}
.event-table thead th{
  background:#f0f0f0;
  font-weight:600;
}
.event-note{
  font-size:0.95rem;
  color:#555;
}
.event-footer-note{
  margin-top:1.5rem;
  padding-top:1rem;
  border-top:1px solid #e5e5e5;
}
.schedule-table{
  table-layout:fixed;
}
.schedule-table th,
.schedule-table td{
  font-size:12px;
  padding:6px;
}
.schedule-time{
  width:70px;
  background:#fafafa;
  text-align:right;
  font-size:11px;
  color:#777;
}
.schedule-purple{
  background:#9b59b6;
  color:#fff;
}
.schedule-blue{
  background:#5dade2;
  color:#111;
}
.schedule-gray{
  background:#7f8c8d;
  color:#fff;
}
.schedule-green{
  background:#a3cb38;
  color:#111;
}
.schedule-brown{
  background:#a1887f;
  color:#111;
}
.visually-hidden{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
