/* ----- Variables ----- */
:root {
	--black: #000;
	--black-op30: rgba(0,0,0,0.3);
	--black-op50: rgba(0,0,0,0.5);
	--light-grey: #f2f2f2;
	--medium-grey: #c2c2c2;
	--white: #fff;
	--green: #8ded70;
	--green-lighter-01: #adf295;

	--container-width:1440px;
	
	--doc-narrow-desktop:800px; /* was 690px in Figma design */
	--doc-wide-desktop:1120px; /* was 690px in Figma design */
}

/* ----- Fonts ----- */
@font-face {
  font-family: "GT-Flexa";
  src: url("https://filmchief.com/festivals/thisisshort/fonts/gt-flexa/GT-Flexa-Standard-Regular.ttf"); /* IE9 Compat Modes */
  src: url("https://filmchief.com/festivals/thisisshort/fonts/gt-flexa/GT-Flexa-Standard-Regular.otf") format("opentype"), /* Open Type Font */
    url("https://filmchief.com/festivals/thisisshort/fonts/gt-flexa/GT-Flexa-Standard-Regular.ttf") format("truetype"), /* Safari, Android, iOS */
    url("https://filmchief.com/festivals/thisisshort/fonts/gt-flexa/GT-Flexa-Standard-Regular.woff") format("woff"), /* Modern Browsers */
    url("https://filmchief.com/festivals/thisisshort/fonts/gt-flexa/GT-Flexa-Standard-Regular.woff2") format("woff2"); /* Modern Browsers */
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: "GT-Flexa";
  src: url("https://filmchief.com/festivals/thisisshort/fonts/gt-flexa/GT-Flexa-Standard-Light.ttf"); /* IE9 Compat Modes */
  src: url("https://filmchief.com/festivals/thisisshort/fonts/gt-flexa/GT-Flexa-Standard-Light.otf") format("opentype"), /* Open Type Font */
    url("https://filmchief.com/festivals/thisisshort/fonts/gt-flexa/GT-Flexa-Standard-Light.ttf") format("truetype"), /* Safari, Android, iOS */
    url("https://filmchief.com/festivals/thisisshort/fonts/gt-flexa/GT-Flexa-Standard-Light.woff") format("woff"), /* Modern Browsers */
    url("https://filmchief.com/festivals/thisisshort/fonts/gt-flexa/GT-Flexa-Standard-Light.woff2") format("woff2"); /* Modern Browsers */
  font-weight: 300;
  font-style: normal;
}
@font-face {
  font-family: "GT-Flexa-X-Compressed";
  src: url("https://filmchief.com/festivals/thisisshort/fonts/gt-flexa/GT-Flexa-X-Compressed-Medium.ttf"); /* IE9 Compat Modes */
  src: url("https://filmchief.com/festivals/thisisshort/fonts/gt-flexa/GT-Flexa-X-Compressed-Medium.otf") format("opentype"), /* Open Type Font */
    url("https://filmchief.com/festivals/thisisshort/fonts/gt-flexa/GT-Flexa-X-Compressed-Medium.ttf") format("truetype"), /* Safari, Android, iOS */
    url("https://filmchief.com/festivals/thisisshort/fonts/gt-flexa/GT-Flexa-X-Compressed-Medium.woff") format("woff"), /* Modern Browsers */
    url("https://filmchief.com/festivals/thisisshort/fonts/gt-flexa/GT-Flexa-X-Compressed-Medium.woff2") format("woff2"); /* Modern Browsers */
  font-weight: 500;
  font-style: normal;
}

/* ----- Document ----- */
body {
	background-color:var(--light-grey);
	color:var(--black);
	font-family: 'GT-Flexa', sans-serif;
	font-size:16px;
	font-weight:300;
	line-height:150%;
}
.min-line-height {
    min-height:24px; /* Certain elements like flex blocks don't grow to the line height of 24px, so apply this utility class to make sure that they do */
    padding-bottom:4.4px;
}

/* ----- Framework ----- */
.page-container {
    max-width:var(--container-width);
    margin:0 auto;
}
.container-fluid {
	padding-left:20px;
	padding-right:20px;
}
.page-container > .container-fluid {
    flex: 1; /* Fill remaining height of the page to make the footer end up at the bottom of the page if there is not much content, such as the empty search page. */
}
.main-unpadded {
    margin-left:-20px;
    margin-right:-20px;
}



body,
blockquote,
input,
button,
select,
textarea,
.navbar-search .search-query,
.jqx-widget,
.selectpicker.inner,
.popover {
	font-family: 'GT-Flexa', sans-serif;
	font-size:14px;
	line-height:1.5;
}
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
	font-family: 'GT-Flexa', sans-serif;
	color:#000;
}
.cond {
	font-family: 'GT-Flexa-X-Compressed', sans-serif;
	font-weight:500;
}

a {
	text-decoration: underline;
}
a.btn,
a.list-group-item,
a.dropdown-toggle,
.dropdown-menu a,
.nav.nav-tabs>li>a,
.nav.nav-tabs>li>a:focus,
.nav.nav-tabs>li>a:hover {
	text-decoration: none;
}

.navbar-left>.navbar-body>.list-unstyled li.active, .navbar-left>.navbar-body>.list-unstyled li.active a:hover, .navbar-left>.navbar-body>.list-unstyled li.active.dropdown:hover {
    background: none;
}
a, .pagination>li>a, .pagination>li>span, .btn-link {
    color: #000;
}
a:active, 
a:focus,
a:hover {
	color:rgba(0, 0, 0, 0.75);
}
.navbar-left>.navbar-body>.list-unstyled li a:hover, .navbar-left>.navbar-body>.list-unstyled li.dropdown:hover {
    background: none;
	color:#444;
    text-decoration: underline;
}
.nav>li>a:focus, .nav>li>a:hover {
	color:#444;
    text-decoration: underline;
    background: none;
}
.nav .open>a, .nav .open>a:focus, .nav .open>a:hover {
    background: none;
    border:none;
}

.container-full {
    max-width: 1440px; /* Figma 2023 design */
	padding: 0 20px; /* Figma 2023 design */
}
.navbar-brand {
	padding:20px 0; /* Figma 2023 design */
	display:flex;
}

.content-body {
    padding-bottom: 190px;
}
footer.page-footer {
    height: 160px;
}

footer .page-footer-inner {
    background-color: var(--white);
}

@media only screen and (max-width: 576px) {
	footer.page-footer {
		position:static;
	}
	.content-body {
		padding-bottom: 0;
	}
	footer.page-footer {
		height: auto;
	}
}
footer .page-footer-inner {
	text-align:left;
	font-size:14px;
	color:#000;
}
.above-footer {
	margin:0 -20px;
	background-color:var(--light-grey);
	padding:20px;
	color:#000;
	flex-wrap:wrap;
}
.above-footer>div {
	margin-right:15px;
}


/* Copied from https://thisisshort.filmchief.com/admin/subsite/4 */
footer {
	background-color:var(--white);
	font-size:12px;
}
.above-footer {
    border-top:1px solid var(--black);
}
.above-footer .nav > .nav-item:first-child > .nav-link {
    padding-left:0;
}
footer .platform-credits {
    display:flex;
    justify-content:center;
    padding:20px 0;
    gap:20px;
}
footer .platform-credits .platform-creators {
    margin-left:auto;
    display:flex;
    
}
footer .platform-credits .platform-design {
    margin-left:80px;
}
footer .platform-credits .platform-funding img {
    height:57px;
}
footer .platform-credits .platform-development img,
footer .platform-credits .platform-design img {
    height:25px;
}
@media only screen and (max-width: 767px) {
    footer .platform-credits .platform-funding img {
        width:335px;
        height:auto;
    }
    footer .platform-credits {
        flex-direction:column;
        align-items:center;
    }
    footer .platform-credits .platform-creators {
        margin-left:0;
    }
}




.panel {
    background-color: transparent;
}
.panel-default {
	border:none;	
}
.panel-default>.panel-heading {
    background-color: transparent;
	border:none;
}
.panel-default>.panel-body {
    background-color: transparent;
	border:none;
}

hr {
    border-top: 1px solid #000;
}

.panel {
	box-shadow:none;
}
.panel-heading {
	padding:40px 15px;
}
.panel-heading h2 {
	font-family: 'GT-Flexa-X-Compressed', sans-serif;
	font-size:7.5em;
	color:#000;
	line-height:1;
	margin:0;
}
.panel-heading h3 {
	font-size:2em;
	color:#000;
	line-height:1;
	margin:0;
}
.panel-heading h4 {
	font-size:1.75em;
	color:#000;
	line-height:1;
	text-align:center;
}
.panel-heading {
	text-align:center;
}
.fc-panel .panel-title h4,
.fc-panel h4.panel-title {
	margin-top:5px;
	margin-bottom:5px;
	font-size:1.5em;
}
.panel-heading {
	border-bottom:1px solid #000;
}


.inline-edit .fa.fa-pencil {
    color: #D0D0D0;
}


.btn-default {
    background-color: #d4d4d4;
    border-color: #d4d4d4;
    color: #000;
}
.btn-default:hover {
    color: #000;
    background-color: #c4c4c4;
    border-color: #c4c4c4;
}
.btn-default.disabled, .btn-default[disabled], fieldset[disabled] .btn-default, .btn-default.disabled:hover, .btn-default[disabled]:hover, fieldset[disabled] .btn-default:hover, .btn-default.disabled:focus, .btn-default[disabled]:focus, fieldset[disabled] .btn-default:focus, .btn-default.disabled:active, .btn-default[disabled]:active, fieldset[disabled] .btn-default:active, .btn-default.disabled.active, .btn-default[disabled].active, fieldset[disabled] .btn-default.active {
    background-color: #dcdcdc;
    border-color: #dcdcdc;
    color: #757575;
}

.btn-primary {
	background-color:#000;
	border-color:#000;
}
.btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active, .open>.dropdown-toggle.btn-primary {
    background-color: #444;
    border-color: #444;
    color: #fff;
}
.btn-primary.disabled, .btn-primary.disabled.active, .btn-primary.disabled.focus, .btn-primary.disabled:active, .btn-primary.disabled:focus, .btn-primary.disabled:hover, .btn-primary[disabled], .btn-primary[disabled].active, .btn-primary[disabled].focus, .btn-primary[disabled]:active, .btn-primary[disabled]:focus, .btn-primary[disabled]:hover, fieldset[disabled] .btn-primary, fieldset[disabled] .btn-primary.active, fieldset[disabled] .btn-primary.focus, fieldset[disabled] .btn-primary:active, fieldset[disabled] .btn-primary:focus, fieldset[disabled] .btn-primary:hover {
    background-color: #000;
    border-color: #000;
	opacity:0.2;
}
.btn-primary:not(:disabled):not(.disabled):hover, .btn-primary:not(:disabled):not(.disabled):focus, .btn-primary:not(:disabled):not(.disabled):active, .btn-primary.active:not(:disabled):not(.disabled), .open>.dropdown-toggle.btn-primary {
    background-color: var(--green);
    border-color: var(--green);
    color: #000;
}

.alert-info {
    background-color: #C2E3FC;
    border-color: #57B4FF;
    color: #0362C0;
}
.alert-danger {
    background-color: #F9AEBA;
    border-color: #D93636;
    color: #AB1111;
}


/* Improve padding on tags */
.label {
	padding:0.3em 0.6em;
	font-weight: normal;
}



/* Break down Bootstrap's horizontal form */
.form-custom .form-group {
	float:none;
}
.form-custom .form-group>.col-sm-3,
.form-custom .form-group>.col-sm-6 {
	float:none;
	width:100%;
}
.form-custom .control-label {
	text-align:left;
}
@media (min-width: 768px) {
	.form-horizontal.form-custom .control-label {
		padding-top: 7px;
		margin-bottom: 0;
		text-align: left;
	}
}

/* Less wide forms */
.form-custom .panel-body {
	max-width:640px;
	margin:0 auto;
}



html.account .content-body-wrapper > .row, 
html.portal_account .content-body-wrapper > .row, 
html.shop_account .content-body-wrapper > .row {
    max-width:640px;
	margin:0 auto;
}

html.account .content-body-wrapper > .row > div, 
html.portal_account .content-body-wrapper > .row > div, 
html.shop_account .content-body-wrapper > .row > div {
    width:100%;
}




/* Border radius on buttons (fully rounded) but not so much on dropdowns (subtly rounded, like inputs) */
.btn {
	border-radius:2rem;
}
.fc-tagger > .btn {
	border-radius:0.5rem;
}

.form-control {
    border: 1px solid #ced4da;
    border-radius: .25rem;
    -webkit-box-shadow: none;
    box-shadow: none;
    -webkit-transition: none;
    -o-transition: none;
    transition: none;
}
.form-control:focus {
    border-color: none;
    outline: 0;
    -webkit-box-shadow: inset 0 1px 1px rgb(0 0 0 / 8%), 0 0 8px rgb(120 120 120 / 60%);
    box-shadow: inset 0 1px 1px rgb(0 0 0 / 8%), 0 0 8px rgb(120 120 120 / 60%);
}
.form-control.bootstrap-select {
	background-color:transparent;
}

.modal-content {
	background-color:var(--light-grey);
}




/* A bunch of important hacks */

nav a {
	text-decoration:none;
}

.content-title-wrapper {
	align-items:center;
	justify-content: center;
	width:100%;
}

.navbar-header {
	display:flex;
}

html.shop_request-accreditation_hub-join .content-body {
	padding-top:90px;
}

html[class*="shop_checkout-return"] .content-body,
html.shop_subscription-cancel .content-body,
html.shop_account-close .content-body {
	padding-top:140px;
}




/* ---------------- STUFF COPIED FROM https://thisisshort.filmchief.com/admin/subsite/4 */


/* ----- Top navbar ----- */
nav.navbar-main {
	padding:20px;
	background-color:transparent;
	width:100%;
    justify-content: flex-start;
	position:fixed;
	max-width:var(--container-width);
	top:0;
	height:120px;
	margin:0 auto;
	z-index:150;
	transition: all 0.2s ease!important;
}
/* Taller top navbar and logo on main page */
nav.navbar-main {
	height:140px;
}
.navbar-brand-small {
	max-width:80px;
	transition: all 0.2s ease!important;
}
@media only screen and (max-width: 767px) {
	nav.navbar-main {
		height: 80px;
		padding: 10px 20px;
	}	
	.navbar-brand-small {
		max-width: 40px;
	}
}

.navbar-brand {
    padding:0;
}
.navbar-brand:focus,
.navbar-brand:hover {
    filter:brightness(1.1);
}
.navbar-brand-small .logo-white,
.navbar-brand-small .logo-green {
	display:none;
}
.navbar-brand-secondary,
.navbar-brand-secondary > img {
    height:80px;
}
.navbar-brand-secondary {
    margin-left:40px;
}



/* Top navbar when body scrolled down */
body.scrolled .navbar-main {
    height:60px;
    background-color:var(--light-grey);
	transition: all 0.2s ease!important;
}
body.scrolled .navbar-brand > img {
    filter: brightness(0);
}
body.scrolled .navbar-brand-small {
    max-width: 40px;
}
body.scrolled .navbar-brand-secondary {
    margin-left: 20px;
}
body.scrolled .navbar-brand-secondary, 
body.scrolled .navbar-brand-secondary > img {
    height: 40px;
}
body.scrolled .navbar-brand-secondary > img {
    filter: invert(100%);
}
body.scrolled .navbar-main > .navbar-main-button {
    color: var(--black);
}

/* ----- Sign in page corrections ----- */
.center-block {
    padding: 15px;
}
article .h2-before,
.panel .h2-before {
	margin-top:90px;
    font-size: 16px;
    font-weight: 300;
    text-align: center;
}

article h2 {
    font-family: 'GT-Flexa-X-Compressed', sans-serif;
    font-size: 164px;
    font-weight: 500;
    text-align: center;
    line-height: 1;
	margin-top:0;
}
@media only screen and (max-width: 1399px) {
	article h2, .main-slider h2 {
		font-size: 138px;
	}
}
@media only screen and (max-width: 1199px) {
	article h2, .main-slider h2 {
		font-size: 112px;
	}
}
@media only screen and (max-width: 991px) {
	article h2, .main-slider h2 {
		font-size: 68px;
	}
}
@media only screen and (max-width: 767px) {
	article h2, .main-slider h2 {
		font-size: 64px;
	}
}
@media only screen and (max-width: 575px) {
	article h2, .main-slider h2 {
		font-size: 48px;
	}
}


html.base_main_main-without-sidenav .center-block > .panel, html.base_main_main-shop .center-block > .panel {
    margin-top: 0;
}
.panel-sign-in {
	width:100%;
}

/* ----- Main menu ----- */
.navbar-main-button {
	display:block;
	font-size: 20px;
	padding:20px;
}
.navbar-main > .navbar-main-button {
    color:var(--black);
}
.navbar-main-button:focus,
.navbar-main-button:hover {
	text-decoration: none;
	opacity:0.5;
}
#search-icon {
	position: absolute;
	top: 0;
	right: 80px; 
	cursor: pointer;
	z-index: 100;
}
#hamburger-icon {
	position: absolute;
	top: 0;
	right: 0;
	cursor: pointer;
	z-index: 100;
}
.main-menu-viewport {
	position: absolute;
	top: 0;
	right:0;
	width: 410px;
	height: 100vh;
	z-index:152;
	pointer-events:none;
	overflow:hidden;
}
#main-menu {
	position: absolute;
	top: 0;
	right: -400px;
	width: 400px;
	height: auto;
	max-height:100%;
	overflow-x:hidden;
	overflow-y:auto;
	color:var(--black);
	background-color:var(--white);
	transition: right 0.2s ease;
	padding:20px;
	z-index:151;
}
#main-menu.collapse.collapsing,
#main-menu.collapse.in {
	right:0;
	pointer-events: all;
	box-shadow: -2px 5px 8px rgba(0, 0, 0, 0.15)
}
.btn-main-menu-close {
	position:absolute;
	top:0;
	right:0;
}
a.navbar-main-button.btn-main-menu-close:focus,
a.navbar-main-button.btn-main-menu-close:hover {
	color:var(--black-op50);
}
#main-menu .menu-item {
	display:block;
}
#main-menu a:hover {
	text-decoration:none;
}




#main-menu > .menu-item,
#main-menu > .menu-group > .menu-heading {
	font-family: 'GT-Flexa-X-Compressed', sans-serif;
	font-size:40px;
	font-weight:500;
	line-height:1.1;
}
#main-menu > .menu-group > .menu-heading,
#main-menu > .menu-group {
	padding-bottom:10px;
}
#main-menu > .menu-group > .menu-item {
	font-size:16px;
	padding:5px 0 5px 20px;
}
#main-menu .navbar-languages {
	padding-top:30px;
}
#main-menu .navbar-language-switch {
	display:flex;
	gap:20px;
	margin:-10px;
}
#main-menu .navbar-language-switch > * {
	padding:10px;
}
#main-menu .navbar-language-switch .set-locale {
	color:var(--black-op50);
}
#main-menu .navbar-language-switch a.set-locale:focus,
#main-menu .navbar-language-switch a.set-locale:hover {
	color:var(--black);
}


/* CART + CHECKOUT PAGES */
.fc-cart-nonempty {
	margin-top:80px;
}

.shop_checkout .col-page {
	margin-top:80px;
}
.shop_checkout .col-page h1 {
	text-align: center;
}
/* hide the debug info: 
.shop_checkout .col-page > h4,
.shop_checkout pre {
	display:none;
}
*/

/* Page footer */
footer, .above-footer {
	font-family: 'GT-Flexa', sans-serif;
	font-size:16px;
}
footer a ,
.above-footer a {
    text-decoration:none;
}
footer.container-fluid {
	padding-left:0;
	padding-right:0;
}

@media only screen and (max-width: 767px) {
	.page-footer {
		margin-top:40px;
	}
	.above-footer {
		flex-direction: column;
		gap:16px;
	}
}