html, body {
	margin: 0;
	height: 100%;
	font: 18px/24px sans-serif;
	background: #ffc293;
	display: flex;
	flex-direction: column;
}

*[id]:before { 
	display: block; 
	content: ""; 
	margin-top: -3rem;
	height: 3rem;
	visibility: hidden; 
}

/* Just between mobile and a real screen, this makes the site fit nicely */
@media (min-width: 700px) and (max-width: 900px) {
	body {
		font: 14px/19px sans-serif;
	}
}

/* Layout */

.container {
	max-width: 900px;
	margin: 0 auto;
}

@media (min-width: 900px) {
	.container {
		width: 900px; /* Same as above, but for IE 11*/
	}
}

/* Header */

.website-header {
	min-height: 100vh;
	position: relative;
	background:  url(../img/kk3.jpg) center no-repeat;
	background-size: cover;
	/*background-attachment: fixed;*/
	font-size: 1.25em;
	font-weight: 100;
	text-align: center;
	flex: 0 0 auto;
		display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: stretch;

	overflow: hidden;
}

.website-header .text {
	flex: 0 0 auto;
	color: white;
}

.website-header .text p {
	text-shadow: 0 0 3px rgba(0, 0, 0, 0.5);
}

.website-header .text a {
	color: white;
}

.website-header h1 {
	background: url(../img/xoxo2.svg) center no-repeat;
	overflow: hidden;
	background-size: contain;
	width: 100%;
	max-width: 600px;
	height: 300px;
	margin: 0 auto;
	float: none;
	z-index: 2;
}

.website-header.small {
	margin-top: 2rem;
	min-height: 160px;
}

.website-header.small .text {
	flex: 1 1 auto;
	padding: 20px;
	text-align: left;
}

.website-header.small h1 {
	height: 100px;
	width: 200px;
	float: left;
	margin: 5px 15px 0 0;
	background-position: top;
}

@media (max-width: 700px) {
	.website-header {
		min-height: initial;
	}

	.website-header.small {
		display: none;
	}
}

.website-navigation {
	position: absolute;
	top: calc(50vh - 230px);
	left: 0;
	right: 0;
	font-size: 1.1em;
	line-height: 2em;
	z-index: 10;

	display: flex;
	flex-direction: row;
	justify-content: flex-start;
	align-items: stretch;
	text-align: center;

	transition: background-color ease-in-out 150ms, box-shadow ease-in-out 150ms;
}

.website-navigation:focus {
	outline: none;
}

.website-navigation a:link,
.website-navigation a:visited {
	text-decoration: none;
	color: inherit;
}

.website-navigation ul {
	padding: 0;
	list-style: none;
	display: inline;
}

.website-navigation li {
	flex: 1 1 auto;
	display: inline-block;
	position: relative;
}

.website-navigation li ul {
	position: absolute;
	top: 2em;
	left: 0;
	display: none;
	z-index: 20;
	background: white;
	box-shadow: 0 3px 5px -2px rgba(0, 0, 0, 0.3);
}

.website-navigation li:hover > ul {
	display: block;
}

.website-navigation li ul li {
	display: block;
	white-space: nowrap;
	margin: 0;
	padding: 0;
	border: none;
	color: black;
}

.website-navigation li ul li a {
	display: block;
	padding: 0 0.5em;
}

.website-navigation li:hover > ul > li:hover {
	background: #ffc293;
	color: white;
}

.website-navigation li {
	display: inline-block;
	padding: 0 0.5em;
	margin: 0 0.25em;
	color: white;
	border-bottom: 2px solid white;
}

.website-navigation a {
	display: inline-block;
}

.website-navigation li:hover {
	background: white;
	color: black;
}

.website-navigation.fixed {
	position: fixed;
	top: 0;
	bottom: auto;
	color: black;
	background: white;
	box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}

.website-navigation.fixed li {
	color: inherit;
	border: 0;
	padding: 0;
}

.website-navigation.fixed li a {
	padding: 0 0.5em;
}

.website-navigation.fixed li:hover,
.website-navigation.fixed li.active:hover {
	background: #ffc293;
	color: white;
}

.website-navigation.fixed li.active {
	color: #ffc293;
}

.website-navigation.fixed li ul {
	top: calc(2em - 1px);
}

.website-navigation.fixed li ul li {
	background: #ffc293;
	color: white;
}

.website-navigation.fixed li:hover > ul > li:hover {
	background: white;
	color: black;
}


@media (max-width: 700px) {
	.website-navigation,
	.website-navigation.fixed {
		position: fixed;
		top: 0;
		bottom: auto;
		flex-direction: column;
		color: white;
		line-height: 2.5em;
	}

	.website-header.small + .website-navigation + .website-content {
		margin-top: calc(2.5em - 10px);
	}

	.website-navigation.fixed,
	.website-navigation:focus {
		background: #ffc293 url(../img/xoxo2.svg) center 0.5em no-repeat;
		background-size: auto 1.5em;
		box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
	}

	.website-navigation li ul {
		position: static;
		display: block;
		box-shadow: none;
		text-indent: 0.75em;
		background:#ffc293; 
	}

	.website-navigation li ul li {
		color: white;
	}

	.website-navigation li ul li a {
		overflow: hidden;
		text-overflow: ellipsis;
	}

	.website-navigation li,
	.website-navigation.fixed li {
		padding: 0;
		margin: 0;
		color: white;
		border: 0;
	}

	.website-navigation a {
		display: block;
		padding: 0 0.75em;
	}

	.website-navigation li:hover,
	.website-navigation li.active:hover,
	.website-navigation.fixed li:hover,
	.website-navigation.fixed li.active:hover,
	.website-navigation li:hover > ul > li:hover ,
	.website-navigation li.active:hover > ul > li:hover,
	.website-navigation.fixed li:hover > ul > li:hover,
	.website-navigation.fixed li.active:hover > ul > li:hover {
		color: #ffc293;
		background: white;
	}

	.website-navigation li.active,
	.website-navigation.fixed li.active {
		color: white;
		background: rgba(0, 0, 0, 0.1);
	}

	.website-navigation::before {
		content: '\2630';
		font-size: 1.5em;
		padding-left: 0.5em;
		display: block;
		cursor: pointer;
		text-align: left;
	}

	/* When the menu is open, overlay a 'dismissal' button on top of it */
	.website-navigation:focus + .website-content::after {
		content: '';
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		height: 2.475em;
		z-index: 30;
	}

	.website-navigation .container {
		max-height: 0;
		width: 100%;
		overflow: hidden;
		transition: max-height ease-in-out 150ms;
		display: flex;
		flex-direction: column;
		align-items: stretch;
	}

	.website-navigation:focus {
		background-color: #ffc293;
	}

	.website-navigation:focus .container {
		max-height: calc(100vh - 2.5em - 74px);
		overflow: auto;
	}

	.website-navigation:focus + .website-content::before {
		content: '';
		position: fixed;
		top: 0;
		bottom: 0;
		left: 0;
		right: 0;
		background: rgba(0, 0, 0, 0.4);
	}
}

.website-content {
	flex: 1 1 auto;
	padding: 40px 20px;
	background: white;
	color: #333;
}

.website-content a:link,
.website-content a:visited {
	color: #1a7181;
}

.website-content a:active {
	color: #374763;
}

.website-content figure {
	margin: 1em 0;
	max-width: 100%;
}

.website-content figure img {
	max-width: 100%;
}

.website-content figure figcaption {
	font-size: 0.8em;
}

.website-content table th,
.website-content table td {
	vertical-align: top;
}

.website-content h2 {
	font-size: 1.25em;
}

.website-content h3 {
	font-size: 1.0em;
	/*margin: 0;*/
}

.website-content h3 + p {
	margin-top: 0;
}

.website-content h4 {
	font-size: 1em;
	margin: 0;
}

.website-content h5 {
	float: left;
	margin: 0 1ch 0 0;
	font: inherit;
	font-weight: bold;
}

.website-content .important-dates {
	margin: 0 -0.25em;
}

.website-content .important-dates td {
	margin: 0;
	padding: 0 0.25em;
}

.website-content > .container > section {
	margin-bottom: 3em;
	padding-bottom: 2em;
	box-shadow: 0 7px 10px -12px #000; /* subtiel lijntje */
}

.website-content > .container > section:last-child {
	box-shadow: none;
	margin-bottom: 0;
}

header h1 {
	background: url(../img/bnaic-logo.svg) center no-repeat;
	overflow: hidden;
	background-size: contain;
	height: 200px;
	color: rgba(0, 0, 0, 0.0);
}

body > footer {
	flex: 0 0 auto;
	color: black;
	padding: 20px;
}

footer a {
	color: black;
}

@media (max-width: 700px) {
	.website-content {
		padding: 20px;
	}
	
	body > footer {
		text-align: center;
	}
}

/* Registration form */
.form-grouping + .form-grouping {
	margin-top: 2em;
}

.form-group {
	display: block;
	margin-bottom: 0.125em;
}

.form-group label {
	box-sizing: border-box;
	display: block;
}

.form-group.required label::after {
	content: '*';
	color: red;
}

.form-group.choice ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.form-group.choice label.option::after {
	content: none;
}

.form-group input,
.form-group select,
.form-group textarea {
	display: block;
	font: inherit;
}

.form-group input,
.form-group textarea {
	box-sizing: border-box;
	width: 100%;
}

.form-group input[type=checkbox],
.form-group input[type=radio] {
	display: inline-block;
	width: auto;
}

.form-group .hint {
	background: #f55;
	padding: 0.25em 0.5em;
	color: white;
}

.dikkat {
    background: #f55;
    padding: 0.25em 0.5em;
    color: white;
}

.form-group + .explanation {
	margin-top: 0;
}

.form-controls {
	margin-top: 1em;
}

.form-controls button {
	display: inline-block;
	font: inherit;
	padding: 0.5em 1em;
	cursor: pointer;
}

@media (min-width: 700px) {
	/* Labels fit next to the field here */
	.form-group:not(.label-inside) label:not(.option) {
		display: inline-block;
		width: 200px;
		vertical-align: top;
		text-align: right;
		padding-right: 1em;
		line-height: 1.8em;
	}

	.form-group input,
	.form-group select,
	.form-group textarea {
		display: inline-block;
	}

	.form-group.choice ul {
		display: inline-block;
		vertical-align: top;
	}

	.form-group.checkbox,
	.form-group + .explanation {
		margin-left: 200px;	
	}

	.form-group input:not([type=radio]):not([type=checkbox]),
	.form-group textarea {
		width: 500px;
	}

	.form-group .hint,
	.form-controls {
		margin-left: 200px;
		max-width: 500px;
		box-sizing: border-box;
	}
}

/* Hotels */

.embedded-map {
	width: 100%;
	height: 450px;
}

.marker-label {
	background: url(../img/spotlight-poi-dotless-red.png) center no-repeat;
	background-size: contain;
	padding: 0.1em 0.6em 1.0em 0.7em;
	font-size: 0.4em;
	cursor: pointer;
	color: white;
}

.marker-label.green {
	background-image: url(../img/spotlight-poi-dotless-green.png);
}

.hotels {
	border-spacing: 0;
	width: 100%;
}

.hotels tr,
.hotels td {
	line-height: 1.66;
}

.hotels thead th {
	text-align: left;
	font-weight: normal;
	color: black;
}

.hotels thead .groups th {
	text-align: center;
}

.hotels tbody td {
	border-top: 1px solid #ccc;
}

.hotels .distance,
.hotels .price,
.hotels .breakfast {
	text-align: right;
}

.hotels .distance time::before {
	content: '/ ';
}

.hotels .notes td {
	border-top: 0;
	font-style: italic;
	padding-left: 1em;
	line-height: 1.33;
	padding-bottom: 0.33em;
	color: #333;
}

@media (max-width: 700px) {
	.hotels,
	.hotels tbody,
	.hotels tbody tr {
		display: block;
	}

	.hotels thead {
		display: none;
	}

	.hotels tbody tr {
		padding: 0.5em 0;
		border-bottom: 1px solid #ccc;
	}
	
	.hotels tbody td {
		display: inline;
		border: none;
	}

	.hotels td:nth-of-type(1) {
		display: block;
	}

	.hotels td:nth-of-type(3)::after {
		content: ' to Het Kasteel /';
	}

	.hotels td:nth-of-type(4)::after {
		content: ' to Martinitoren /';
	}

	.hotels td:nth-of-type(5)::after {
		content: ' to Station /';
	}

	.hotels td:nth-of-type(6)::after {
		content: ' /';
	}

	.hotels td:nth-of-type(7)::before {
		content: 'Breakfast ';
	}
}

/* Payment details */
.payment-details::after {
	content: '';
	display: block;
	clear: both;
}

.payment-details dt {
	font-weight: bold;
	float: left;
	width: 15ch;
	clear: both;
}

.payment-details dt::after {
	content: ':';
}

.payment-details dd {
	margin: 0 0 1em 1em;
	min-width: 35ch;
	float: left;
}

.rates th,
.rates td {
	padding-right: 1em;
}

.rates th {
	text-align: left;
}

.rates thead th {
	vertical-align: bottom;
}

.rates thead th:nth-of-type(1) {
	visibility: hidden;
}

.rates tbody th {
	font-weight: normal;
}

.rates .hide-on-overflow {
	display: none;
}

@media (min-width: 700px) {
	.rates .hide-on-overflow {
		display: initial;
	}

	.rates thead {
		display: none;
	}

	.rates tbody .early::before {
		content: 'early ';
	}

	.rates tbody .regular::before {
		content: 'regular ';
	}
}

/* Committee page */
.committee .affinity {
	display: inline-block;
}

/* Sponsors */

.sponsors {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
}

.sponsors h2 {
	display: block;
	width: 100%;
}

.sponsors .sponsor {
	display: inline-block;
	box-sizing: border-box;
	padding: 10px;
	text-align: center;
}

.sponsors .main.sponsor {
	width: 50%;
}

.sponsors .regular.sponsor {
	width: 25%;
}

.sponsors .small.sponsor {
	width: 17.5%;
}

.sponsors .sponsor img {
	width: 100%;
}

@media (min-width: 700px) {
	.sponsors .sponsor {
		padding: 20px;
	}
}

/* Talks */

.talks {
	list-style: none;
	padding: 0;
}

.talk .speaker .photo {
	height: 150px;
	vertical-align: middle;
	float: left;
	margin: 0 1em 0 0;
}

.talk .speaker::after {
	content: '';
	display: block;
	clear: both;
}

.short.talk .title::after {
	content: ' (Short Paper)';
	opacity: 0.6;
}

section.talk {
	position: relative;
	margin-bottom: 3em;
}

section.talk .speaker {
	margin-bottom: 1em;
}

@media (min-width: 700px) {
	section.talk {
		padding-left: calc(220px + 1em);
		min-height: calc(150px + 2.5em + 6em);
	}

	section.talk .speaker {
		position: absolute;
		top: calc(3rem + 3.5em);
		left: 0;
		width: 220px;
	}

	section.talk .speaker .photo {
		margin: 0 auto;
		float: none;
	}

	section.talk .speaker > * {
		display: block;
		text-align: center;
	}
}

/* Backlinks */

.meta-link {
	display: inline-block;
	font-size: 0.65em;
	line-height: 1.0em;
	text-decoration: none;
	vertical-align: baseline;
	color: #555 !important;
}

.meta-link:hover,
.meta-link:focus,
.meta-link:active {
	text-decoration: underline;
}

.link-to-schedule::before {
	content: '(';
}

.link-to-schedule::after {
	content: ')';
}

.popup-content .link-to-abstract {
	display: none;
}

/* Accepted papers */

.accepted-papers h3 {
	margin: 0.5em 0;
}

.accepted-papers ul {
	list-style: none;
	padding: 0;
	margin: 0.5em 0;
}

.accepted-papers li {
	margin-bottom: 0.5em;
}

.accepted-papers .speaker {
	font-style: italic;
	display: block;
}

.accepted-papers .title {
	display: block;
	padding-left: 1em;
}

.accepted-papers .abstract {
	display: none;
}

.accepted-papers .meta-link {
	margin: 0 0 0 calc(1.0em / 0.65);
}

.accepted-papers li:target .speaker,
.accepted-papers li:target .title {
	background: hsl(60, 100%, 80%);
}

.table-of-contents,
.table-of-contents + .toc-shadow {
	margin: 1em 0;
}

.table-of-contents + .toc-shadow .toc-shadow-filler {
	display: none;
}

/* Jump-list at the top of the accepted papers section */
@media (min-width: 700px) {
	.table-of-contents {
		display: flex;
		list-style: none;
		padding: 0;
		justify-content: space-between;
	}

	.table-of-contents li {
		flex: 1 1 auto;
		line-height: 2em;
	}
}

@media (min-width: 1200px) {
	.table-of-contents.sticky {
		position: fixed;
		flex-direction: column;
		left: 40px;
		top: 40px;
		max-width: calc((100vw - 1000px) / 2);
		font-size: 0.8em;
	}

	.table-of-contents.sticky + .toc-shadow .toc-shadow-filler {
		display: block;
	}
}

/* Author index */

.author-index {
	list-style: none;
	padding: 0;
}

.author-index li ul {
	padding: 0;
	display: inline;
}

.author-index li ul li {
	display: inline-block;
	padding: 0 0 0 1ch;
}

@media (min-width: 700px) {
	.author-index {
		column-count: 3;
	}
}

/* Schedule */

.schedule {
	font-size: 0.75em;
	margin-bottom: 5em;
	position: relative;
}

.schedule:last-of-type {
	margin-bottom: 2em;
}

.schedule .row {
	display: flex;
	flex-direction: column;
	min-height: 3em;
}

.schedule .row time {
	box-sizing: border-box;

	flex: 0 0 auto;
	align-self: flex-start;
	display: inline-block;
	width: 3em;
	
	text-align: right;
	padding-right: 0.5em;

	line-height: 2em;
	margin: -1em 0;

	top: 3.5em;
	position: -webkit-sticky;
	position: sticky;
}

.schedule .row div {
	flex: 1 1 0;
	display: block;
	background: #eee;
	margin: 0.125em 0.25em;
	padding: 0 0.5em;
	margin-left: 3em;
}

.schedule .row div h3 {
	margin: 0;
	text-align: center; 
}

.schedule .row div a {
	margin-bottom: 0.5em;
}

.schedule .row div .speaker,
.schedule .row div .title {
	display: block;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis; 
}

.schedule .row div .speaker {
	font-style: italic;
}

.schedule .row div .title {
	text-indent: 0.5em;
}

.schedule .row div .affinity {
	display: none;
}

.schedule .row .posters a {
	/*display: none;*/
}

.schedule .row .plenary,
.schedule .row .activity {
	flex: 1 1 0;
	text-align: center;
	text-indent: 0;
	padding: 0.5em;
}

.schedule .row .location {
	display: block;
	text-align: center;
	margin-bottom: 0;
}

.schedule .row .chair {
	display: block;
	text-align: center;
}

.schedule .row .chair::before {
	content: 'Chaired by ';
}

.website-content .schedule a {
	color: inherit;
	text-decoration: none;
	display: block;
	margin: 0 -0.5em;
	padding: 0 0.5em;
}

.website-content .schedule a:hover,
.website-content .schedule a:focus {
	text-decoration: underline;
}

.schedule .current-time-indicator {
	display: none;
	position: absolute;
	left: 2.8em;
	right: 0;
	border-bottom: 2px solid rgba(255, 0, 0, 0.4);
	pointer-events: none;
	height: calc(3em + 20vh);
	margin-top: calc(-3em - 20vh);
}

.go-to-now {
	display: none;
	float: right;
}

/* Also switch to desktop (column) layout when rotating the device */
@media (min-width: 700px), (min-width: 500px) and (orientation: landscape) {
	.schedule .row {
		flex-direction: row;
	}

	.schedule .row div {
		overflow: hidden;
		margin-left: initial;
	}

	.schedule .current-time-indicator {
		display: block;
	}

	.go-to-now {
		display: inline;
	}
}

/* colors! */

.schedule .row .demonstrations {
	background: hsl(10, 60%, 80%);
}

.schedule .row .papers {
	background: hsl(50, 80%, 80%);
}

.schedule .row .meeting {
	background: hsl(90, 60%, 80%);
}

.schedule .row .plenary {
	/*font-size: 1.25em;*/
	background: hsl(140, 60%, 80%);
}

.schedule .row .workshop {
	background: hsl(190, 60%, 80%);
}

.schedule .row .posters {
	background: hsl(240, 60%, 90%);
}

.schedule .row .research-business {
	background: hsl(290, 50%, 80%);
}

.schedule .row .social {
	background: hsl(340, 60%, 80%);
}

.schedule .error {
	color: red;
	font-weight: bold;
}

/* Popup */

.popup {
	position: fixed;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 20;
	background: rgba(0, 0, 0, 0.8);
	display: flex;
	align-items: flex-start;
	justify-content: center;
}

.popup .popup-window {
	position: relative;
	flex: 0 1 auto;
	background: white;
	margin: 2.75em 0 0 0;
	display: flex;
	flex-direction: column;
	max-height: calc(100vh - 2.75em);
	max-width: 100%;
}

.popup .popup-window .popup-content {
	flex: 1 1 auto;
	overflow: auto;
	padding: 1em;
}

.popup .popup-window .loading-message {
	display: block;
	padding: 3em 6em;
	text-align: center;
}

.popup .popup-window .close-button {
	position: absolute;
	height: 2.75em;
	width: 2.75em;
	line-height: 2.75em;
	text-align: center;
	top: -2.75em;
	left: 0;
	font: inherit;
	border: 0;
	margin: 0;
	padding: 0;
	background: white;
	color: #0f7f12;
	cursor: pointer;
}

.popup .popup-window .close-button:hover,
.popup .popup-window .close-button:focus {
	background: #0f7f12;
	color: white;
}

.popup-content p:last-child {
	margin-bottom: 0;
}

.popup-content > li {
	list-style: none;
	max-width: 700px;
}

.popup-content > li > .speaker,
.popup-content > li > .title {
	display: block;
}

.popup-content > li > .speaker {
	font-style: italic;
}

.popup-content > li > .title {
	margin: 1em 0;
	font-weight: bold;
}

.popup-content a {
	word-break: break-all;
}

.popup-content .meta-link {
	margin: 0 1em 0 0;
}

.popup-content .talk .affinity {
	display: block;
}

@media (max-width: 700px) {
	.popup .popup-window .popup-content {
		overflow-y: scroll;
		-webkit-overflow-scrolling: touch;
	}
}

@media (min-width: 700px) {
	.popup {
		align-items: center;
	}

	.popup .popup-window {
		margin: 2em;
		max-height: calc(100vh - 8em);
		max-width: 900px;
	}

	.popup .popup-window .close-button {
		top: 0;
		right: 0;
		left: auto;
	}

	.popup-content .talk {
		position: static;
	}

	.popup-content .talk .speaker {
		top: 4.75em;
		left: 1.0em;
	}
}
