.v {
  background-color: #efe;
}

.v1 {
  text-align: center;
  margin: 0.5rem 1rem 2.5rem;
  font-style: italic;
  color: #69f;
  font-size: calc(clamp(1rem, 3vw, 2rem));
  text-wrap: balance;
}

.v4 {
  display: flex;
}

.weekday {
  flex: 1;
  text-align: center;
  text-transform: uppercase;
}

.day {
  display: inline-block;
  vertical-align: top;
  flex: 1;
  min-height: 5em;
  height: 13vh;
  max-height: 10em;
  background-color: #fd8;
  margin: 5px;
  text-align: center;
  overflow: hidden;
}

.v6 {
  visibility: hidden;
}

.v7 {
  float: left;
  padding: 0.5em;
  text-align: center;
}

.v8 {
  display: block;
  font-weight: bold;
}

.v9 {
  display: block;
}

.v10 {
  color: #fff;
  margin: 2px;
  border-radius: 3px;
  font-size: 0.9em;
  max-height: 3em;
  overflow: hidden;
  cursor: pointer;
}

.v12 {
  float: right;
}

.v13 {
  text-align: center;
  font-size: calc(max(2em, 5vw));
}

.v14 {
  font-size: 2em;
  text-align: center;
}

.v15 {
  margin: 2em;
}

.v16 {
  max-width: 60em;
  margin: 2em;
  font-family: sans;
  font-size: 1.5em;
  text-align: justify;
}

.v17 {
  font-weight: bold;
  font-size: 1.1em;
  color: #182;
}

.map {
  display: block;
  margin: 1em;
  width: calc(min(70em, 50vw - 3em));;
  height: calc(min(50vw - 3em, 80vh - 9em));
}

.glass {
  position: fixed;
  left: 0;
  top: 0;
  bottom: 0;
  right: 0;
}

.popup {
  position: fixed;
  top: 5em;
  left: 50%;
  transform: translateX(-50%);
  margin: 0.5em;
  max-width: 100vw;
  height: calc(100vh - 9em);
  border: 4px solid;
  box-shadow: 5px 5px 15px #999;
  background-color: white;
  background-position-x: CENTER;
  padding: 0 3em 1em;
  overflow: auto;
  background-size: cover;
}

.title {
  text-align: center;
  font-size: 1.5em;
  font-family: serif;
  font-weight: bold;
  background-color: #fffb;
  padding: 1em;
}

.spacer {
  height: 100%;
}

.loc {
  background-color: #fffb;
  padding: 0.5em;
}

.loc::before {
  content: "📍";
  padding: 0.5em;
}

.date {
  background-color: #fffb;
  padding: 0.5em;
  font-weight: bold;
}

.date::before {
  content: "📆";
  padding: 0.5em;
}

.time1 {
  background-color: #fffb;
  padding: 0.5em;
  font-weight: bold;
}

.time1::before {
  content: "⌚";
  padding: 0.5em;
}

.reg {
  background-color: #fffb;
  padding: 0.5em;
}

.reg::before {
  content: "🧘";
  padding: 0.5em;
}

.link {
  background-color: #fffb;
  padding: 0.5em;
}

.link::before {
  content: "🔗";
  padding: 0.5em;
}

.chan {
  font-size: 0.7em;
  padding-right: 0.2em;
  text-transform: uppercase;
}

.button {
  background-color: #239;
  color: #dff;
  padding: 3px;
  text-decoration: none;
  border-radius: 3px;
}

.title1 {
  text-align: center;
  clear: both;
  font-size: 4em;
}

.banner {
  font-size: 2rem;
  text-wrap: balance;
  text-align: center;
  background: linear-gradient(#adf, #69f);
  border-bottom: black solid 1px;
}

.towns {
  display: flex;
}

.town {
  font-size: 1rem;
  flex: 1;
  text-align: center;
  font-family: sans;
  text-transform: uppercase;
}

.v11::before {
  content: "« ";
}

.v12::after {
  content: " »";
}

.'past'.'day' {
  background-color: #ddd;
}

.v7 .v10 {
  display: inline-block;
  cursor: default;
  width: 5.5em;
  height: 3em;
}

.v13::before {
  background-color: black;
  width: 30vw;
  display: inline-block;
  height: 1px;
  content: " ";
  vertical-align: middle;
  margin: 0 5vw 0 0;
}

.v13::after {
  background-color: black;
  width: 30vw;
  display: inline-block;
  height: 1px;
  content: " ";
  vertical-align: middle;
  margin: 0 0 0 5vw;
}

@media (max-width: 50rem) {
.v2 {
  display: none;
}

.v5 {
  display: none;
}

}
@media ((max-width: 90rem) and (max-height: 45rem)), (max-width: 70rem) {
.v3 {
  display: none;
}

}
@media (max-width: 40em) {
.v15 {
  width: calc(100% - 4em);
}

.v16 {
  margin: 1em;
  font-size: 1.1em;
}

}
@media (min-width: 40em) {
.v15 {
  float: left;
  max-width: calc(50% - 2em);
}

}