@media (prefers-color-scheme: dark) {
	/* custom scrollbar */
	html{
		scroll-behavior: smooth;
	}
	* {
	  scrollbar-color: #000 transparent;
	  scrollbar-width: thin;
	}
	::-webkit-scrollbar {
	  width: 8px;
	}
	::-webkit-scrollbar-track {
	  background: #fff; 
	}
	/* Handle */
	::-webkit-scrollbar-thumb {
	  background: #000; 
	  border-radius: 4px;
	}
	/* Handle on hover */
	::-webkit-scrollbar-thumb:hover {
	  background: red; 
	}
	/* custom scrollbar end */
	.scrollToTop{
	  /*display: none;*/
	  z-index: 999;
	  position: fixed;
	  right: 4rem;
	  bottom: 2rem;
	  transform: rotate(45deg);
	  width: 35px;
	  height: 35px;
	  border-top: 0.5em solid #000;
	  border-left: 0.5em solid #000;
	  transition: all .5s ease-in-out;
	}
	.goBack {
	  display: flex;
	  margin: 25px 0px 25px 10px;
	  transform: rotate(-45deg);
	  width: 35px;
	  height: 35px;
	  border-top: 0.5em solid #000;
	  border-left: 0.5em solid #000;
	  transition: all .5s ease-in-out;
	}
	.scrollToTop:hover,
	.goBack:hover{
		filter: drop-shadow(1.5rem 1.5rem);
	}
	a{
		text-decoration: none;
		color: inherit;
	}
	body{
		background: #2a2a2a;
	}
	.calendar{
		position: relative;
		display: flex;
		flex-direction: column;
		justify-content: space-between;
		height: 350px;
		padding: 2rem;
		color: #000;
		text-decoration: none;
		overflow: hidden;
		border-radius: 2rem;
	}
	.calendar_img{
		position: absolute;
		top: 0;
		right: 0;
		width: 0%;
		height: 100%;
		transition: all .5s ease-in-out;
	}
	.calendar_img img{
		width: 100%;
	  height: 100%;
		object-fit: cover;
		object-position: center;
		filter: grayscale(1);
		mix-blend-mode: soft-light;

	}
		.calendar:hover .calendar_img{
			width: 100%;
			height: 100%;		
		}
	.calendar_title{
	  font-weight: 400;
	  line-height: 1;
	  font-family: var(--font-title);
	}
		.calendar_title span{
		  display: block;
		}
	.calendar_date{
		font-size: 2.1rem;
		font-weight: 700;
		font-family: var(--font-title);
	}
		.calendar_date span{
			font-weight: 300;
		}
		.calendar_month{
			font-family: var(--font-title);
			font-weight: 300;
			display: block;
			font-size: 1.5rem;
			margin-top: -10px;
		}
	.calendar_local{
		font-size: 1.2rem;
		font-weight: 400;
		line-height: 0.8;
	}
		@media screen and (max-width: 768px) {
			.calendar{
				height: 280px;
			}
		}
	section + section{
		color: #fff;
	}
	.page_header{
		position: relative;
		margin-bottom: 6vh;
		justify-content: space-between;
		align-items: flex-end;
	}
	.page_date{
	  font-size: 5rem;
	  font-family: var(--font-title);
	  width: min-content;
	  line-height: .8;
	}
	.page_date span{
		font-size: 2rem;
	}
	.page_local{
		font-size: 1rem;
		font-family: var(--font-title);
		line-height: 1;
	}
		.page_local span{
			display: flex;
			font-size: 2rem;
			margin-bottom: .5rem;
		}
	.page_title{
		font-size: calc(2.375rem + 1.5vw) /*4rem*/;
		font-family: var(--font-title);
	  font-weight: 400;
	  line-height: .8;
	}	
		.page_title span{
			display: block;
		}
	hr{
		margin: 0;
		opacity: 1;
	}
	.page_program{
		list-style: none;
		padding: 0;
		font-size: 3.2vh;
	}
		.page_program li a{
			display: flex;
			justify-content: space-between;
			border-top: 1px solid #000;
			padding: 2rem 0;
			text-align: left;
		}
		.page_program li a:hover .page_program_event{
			text-decoration: underline;
			text-underline-offset: 5px;
			text-decoration-color: #000;
			text-decoration-thickness: .2rem;
			font-variation-settings: "wght" 800;
		}
			.page_program_date{
				flex: 0 0 10%;
				font-weight: 800;
			}
			.page_program_activity{
				flex: 0 0 15%;
			}
			.page_program_event{
				flex: 0 0 35%;
				font-variation-settings: "wght" 400;
				text-decoration-thickness: 0rem;
				transition: all .5s ease-in-out;
			}
			.page_program_local{
				flex: 0 0 20%;
			}

			@media screen and (max-width: 768px) {
				.page_local{
					margin-top: 1rem;
					line-height: 1;
					display: flex;
	    		flex: 1 0 100%;
				}
				.page_program li a{
					justify-content: flex-start;
					flex-direction: column;
				}
				/* select all class starting with page_program_ */
				[class^="page_program_"] {
					width: 100%;
				}
			}

	/* buttons / links */
	.link-group{
		margin: 2rem 0;
		padding: 0;
	}
	.link-group li{
		display: block;
		margin: 1rem 0;
	}
	.link-group li a{
		display: block;
		font-size: calc(1.5rem + 1.1vw);
		font-family: var(--font-title);
		padding: 1rem;
		transition: all .5s ease-in-out;
		text-decoration: none;
		border-left: 1px solid #000;
	}
	.link-group li:hover a{
		padding-left: 4rem;
	}
	.highlight-block{
		background: #cac8c8;
	  border-radius: 20px;
	  padding: 15px 20px 20px;
	  color: #000;
	  display: inline-block;
	  mix-blend-mode: luminosity;
	  line-height: 1;
	}
	.main-font{
		font-family: var(--font-title);
		font-weight: 400;
	}
	.eng{
		font-size: .775em;
		line-height: 100%;
		color: #6c6c6c;
	}
	.bio-id{
		font-family: var(--font-title);
	  letter-spacing: -2px;
	  line-height: 1;
	}
	.bio-note{
		margin-bottom: 0rem;
	  line-height: inherit;
	  text-align: justify;
	  text-justify: inter-word;
	  text-align-last: start;
	  hyphens: auto;
	}
	/*
	.bio-note-eng{
		font-size: .775em;
		line-height: 1;
		margin: 1rem 0 0 0;
		padding: 0 .75rem;
		color: #6c6c6c;
	}*/
	.bio-pic{
		position: relative;
	  aspect-ratio: 1 /1;
	  margin-bottom: 1rem;
	  /*height: 100%;
	  width: auto;*/
	}
	.bio-pic img {
	  position: absolute;
	  top: 0;
	  right: 0;
	  bottom: 0;
	  left: 0;
	  width: 100%;
	  height: 100%;
	  object-fit: cover;
	  object-position: center top;
	  border-radius: 2.5rem;
	  filter: grayscale(1);
	}
	.bio-pic .photo_credtis {
	  position: absolute;
	  bottom: 50px;
	  right: -23px;
	  margin-right: -5px;
	  transform: rotate(-90deg);
	  font-size: 50%;
	}
	/* REGULAMENTO */
	.regulamento{
		counter-reset: my-sec-counter;
	}
	.regulamento h1{
		font-family: var(--font-title);
		margin-top: 1.5rem;
		font-weight: normal;
	}
	.regulamento h1::before{
		counter-increment: my-sec-counter;
	  content: counter(my-sec-counter) " . ";
	  font-weight: 700;
	}
	.regulamento li{
		padding: 5px 0;
	}
	.comissao-cientifica{
		display: flex;
	  flex-wrap: wrap;
	  list-style-type: none;
	  padding: 0;
	  gap: 15px;
	}
	.comissao-cientifica li{
		flex: 1 0 25%;
	}
	.comissao-cientifica li div + div{
		font-size: 1.2rem;
	}
	.comissao-cientifica li:last-child{
		flex: 6 0 25%;
	}

	/* tables */
	.table tr{
		border-color: #000;
	}
	.table td{
		padding: 2rem .5rem;;
	}
	.table td:first-child{
		font-family: var(--font-title);
		font-weight: 700;
	}
	.table td:nth-child(2) {
	  width: 75%;
	}
	.table tr:last-child{
		border-color: transparent;
	}
	.table h1{
		line-height: inherit;
		margin: 0;
	}
		@media screen and (max-width: 768px) {
			.table th,
			.table td {
			  display: block;
			  border-width: 0;
			}
			.table td:nth-child(2) {
			  width: 100%;
			}
		}

	/* acao posters */
	.acao-posters ul{
		list-style: none;
		display: flex;
		flex-wrap: wrap;
		padding: 0;
	}
	.acao-posters ul li{
		flex: 0 0 16.666667%;
		padding: 15px 15px;
	}
	.acao-posters ul li:hover img:hover {
	  filter: grayscale(0);
	  opacity: 1;
	  transform: translateY(-10px);
	  box-shadow: 0 16px 20px -6px rgba(0, 0, 0, .5);
	}
	.acao-posters img {
	  box-shadow: 0 10px 12px -6px rgba(0,0,0,.9);
	  transition: all 0.5s ease-in-out;
	  filter: grayscale(1);
	}
		@media screen and (max-width: 768px) {
			.acao-posters ul li{
				flex: 0 0 50%;
				padding: 10px;
			}
			.acao-posters img{
				filter: grayscale(0);
			}
		}
	ul.equipa{
		padding: 0;
	}
	ul.equipa li{
		list-style: none;
		display: flex;
		justify-content: space-between;
		font-family: var(--font-title);
		border-top: 1px solid #000;
		padding: 2.5rem 0;
	}
	ul.equipa ul {
	  flex: 0 0 50%;
	  padding: 0;
	}
	ul.equipa li li{
		border: none;
		padding: 0;
		line-height: 1.2;
	}
	ul.equipa li li span{
		font-size: 60%;
		font-weight: 300;
		display: contents;
	}
	/* edicoes anteriores */
	.edicoes-posters ul{
		list-style: none;
		display: flex;
		flex-wrap: wrap;
		padding: 0;
	}
	.edicoes-posters ul li{
		flex: 0 0 16.666667%;
		padding: 7.5px 15px;
	}
	.edicoes-posters ul li:hover img:hover {
	  filter: grayscale(0);
	  opacity: 1;
	  transform: translateY(-10px);
	  box-shadow: 0 16px 20px -6px rgba(0, 0, 0, .5);
	}
	.edicoes-posters img {
	  box-shadow: 0 10px 12px -6px rgba(0,0,0,.9);
	  transition: all 0.5s ease-in-out;
	  filter: grayscale(1);
	}
		@media screen and (max-width: 768px) {
			.edicoes-posters ul li{
				flex: 0 0 50%;
				padding: 10px;
			}
		}
	/* parceiros */
	.partners h1{
		font-family: var(--font-title);
		margin: 0;
	}
	.partners img{
		padding: 10px;
	}

	/* FX */
	.img-shadow {
	  position: relative;
	  z-index: 1;
	  box-shadow: 0px 5.7px 8.6px hsl(0deg 0% 0% / 0.07), 0px 11px 16.5px hsl(0deg 0% 0% / 0.15), 0px 19.6px 29.4px hsl(0deg 0% 0% / 0.22), 0px 34.5px 51.8px hsl(0deg 0% 0% / 0.29);
	}
	/* imagem filters */
	.fx-multiply{
		mix-blend-mode: multiply;
	}
	.border-full{
		border: 1px solid #000;
		border-radius: 2rem;
		padding: 2rem;
	}
	/* colors */
	.festival{
		border: 1px solid #000;
		background: #fff;
	}
	.accao{
		background: #cfe0ff;
	}
	.conferencia{
		background: #ffe4c4;
	}
	.olhares{
		background: #defbce;
	}
	.primeirOlhar{
		background: #f5f5dc;
	}
	.luso-galaico{
		background: #fdffc2;
	}
	.historias{
		background: #e8e186;
	}
	.filmedaminhavida{
		background: #ffd05e;
	}
	.tpc{
		background: #ddc2ff;
	}
	.oficinas{
		background: #6ddfdf;
	}
	.escola-cinema{
		background: #d7f3fa;
	}
	.filme-concerto{
		background: antiquewhite;
	}
	.forum{
		background: #fbc58b;
	}
	.credits{
		color: #fff;
	}
	.footer .col-md-2 img{
		filter: invert(100%) brightness(200%);
	}
	.footer-menu li a{
		color: #fff;
	}
	.footer-menu li a:after{
	  color: #fff;
	}
	.footer-menu li a:hover::after{
		top: 0;
	}
	.footer-menu li a span{
	  display: block;
	  transition: transform 500ms ease-in-out;
	}
	.footer-menu li a:hover span{
		transform: translateY(-100%);
	}
		@media screen and (max-width: 768px) {
			.footer{
				padding: 2rem;
			}
		}
	.footer-organizacao ul{
		color: #fff;
	}
	.navbar-brand,
	.navbar-toggler{
		filter: invert(100%) brightness(200%);
	}
	.nav-link{
		color: #fff;
	}
	.dropdown-item::before,
	.nav-link::before{
	  color: #fff;
	}
	.dropdown-item:hover {
	  background-color: transparent;
	}

	/* bootstrap override */
	.dropdown-toggle::after {
	  margin-left: 0em;
	  vertical-align: 0.155em;
	}

	/* forms */
	.form-control {
	  font-size: 1.4rem;
	}
	form h1 span{
		display: block;
		font-size: 80%;
	}
	label {
	  margin: 0.5rem 0;
	}
	label span{
		display: block;
	}
	input, textarea {
	  border: 1px solid #000 !important;
	  outline: 0;
	  border-radius: 10px !important;
	  padding: 10px !important;
	  background-color: inherit !important;
	}
	.required .control-label::after {
	  content: " *";
	  font-weight: bold;
	  color: red;
	}
	.required-asterisk{
		font-weight: bold;
		color: red;
	}
	input[type=submit] {
	  border: 2px solid #000 !important;
	  cursor:pointer;
	  animation: pulse 2s infinite;
	}
		@keyframes pulse {
			0% {
				transform: scale(1);
				box-shadow: 0 0 0 0 rgba(0,0,0, 0.5);
			}
			75% {
				transform: scale(1);
				box-shadow: 0 0 0 15px rgba(0,0,0, 0);
			}
			100% {
				transform: scale(1);
				box-shadow: 0 0 0 0 rgba(0,0,0, 0);
			}
		}
	.table > :not(caption) > * > *{
		background-color: transparent;
	}
}