/*
	(c)2021 - visuallizard.com

	Responsive styles using Media Queries
*/

body:not(.debug)::before,
body:not(.debug)::after { transform: translateX(-999vw); }

body::before,
body::after { transform: translateX(-999vw); }


/* Larger Desktop sizes (more than 1400px): */
@media only screen and (width > 1400px) {
	body:before { content: 'x-large'; }

}

/* Desktop sizes (up to 1400px): */
@media only screen and (width < 1400px) {
	body:before { content: 'large'; }

}

/* Desktop sizes (up to 1200px): */
@media only screen and (width < 1200px) {
	body:before { content: 'large'; }

	.site-header-container { padding-inline: 1rem; }
}

/* Medium Tablet sizes (up to 000px):  usually when mobile nav mode kicks in */
@media only screen and (width < 1000px) {
	body:before { content: 'medium'; }

	.container { padding-inline: 1.5rem; }

	/* 	Site Header */
	.site-header { padding: 0; }
	.site-header-container { justify-content: space-between; padding-inline: 1.5rem; }
	.site-title { margin-top: 1rem; }
	.site-title-img { max-height: 80px; }

	.search-form { float: none; position: absolute; top: 290px; width: calc(100% - 3rem); max-width: 380px; }
	.search-form .search-input { font-size: 16px; }
	body:not(.p-home) .search-form { display: none; }

	/* MOBILE nav */
	.main-nav { z-index: 100; background: var(--blue-navy); color: #fff; font-size: 18px; box-shadow: none; border-radius: 0; }
	.main-nav .nav-list,
	.main-nav li > .sub-list { width: 100%; max-height: 9999px; transform: scale(1); transition: max-height .2s ease-in; background: transparent; margin: 0; padding: 0; position: relative; top: auto; left: auto; opacity: 1; visibility: visible; border: none; box-shadow: none; }
	.main-nav .nav-item { border-top: 1px solid rgba(255,255,255,.1); display: flex; flex-wrap: wrap; overflow: hidden; }
	.main-nav .nav-link, .main-nav .nav-1 > .nav-item > .nav-link { -webkit-tap-highlight-color: transparent; width: 100%; border: none; border-radius: 0; padding-right: 0; }
	.main-nav .nav-link:hover { opacity: .8; }
	.main-nav .nav-item:hover > .nav-link { color: inherit; border: none; }

	.main-nav .nav-item[data-nav-status='has-active'] > .nav-link,
	.main-nav .nav-item[data-nav-status='active'] > .nav-link { background-color: transparent; color: var(--orange-regular); }

	.main-nav .nav-1 { display: block; }
	.main-nav .nav-1 li a { font-size: 16px; color: #fff; padding: .5rem .5rem; }
	.main-nav .nav-1 > li > a { font-weight: bold; color: rgba(255,255,255,.8); text-align: left; padding-top: 2rem; font-size: 18px; letter-spacing: .15em; }

	.main-nav .has-sub > .nav-link::after { content: none; }

	.main-nav .sub-list .sub-list { left: auto; display: block; visibility: visible; opacity: 1; transform: scale(1); left: auto; position: static; top: auto; margin: 0; padding: 0; }

	.main-nav .nav-2 { /* text-align: center;  */}
	.main-nav .nav-2 > li { padding: 0; margin-block-end: 0; position: relative; }
	.main-nav .nav-2 li a { border-bottom: none; }

	.main-nav li > .nav-3 > li { padding-left: 1rem; }
	.main-nav li > .nav-4 > li { padding-left: 2rem; }
	.main-nav li > .nav-5 > li { padding-left: 3rem; }

	.js         .main-nav { max-height: 100vh; display: block; position: absolute; left: -100%; left: -100vw; top: 0px; width: 100%; width: 100vw; height: auto; min-height: 100vh; padding: 4em 1rem 1rem; margin: 0; overflow: hidden; transition: transform .2s ease-in;  z-index: 1000; }
	.js .nav-on .main-nav { max-height: none; transform: translateX(100%); }

	.nav-toggle { width: auto; min-width: 0; margin: auto 0;  color: inherit; padding: 0; border: none; z-index: 1001; background: transparent; transition: color .2s; flex-shrink: 0; display: flex; align-items: center; column-gap: .25rem; }
	.nav-toggle-label { text-transform: uppercase; letter-spacing: 0.05em; }
	.nav-toggle svg { transition: .2s transform;  width: 44px; height:44px; }

	.js .nav-on .nav-toggle,
	.js .nav-on .nav-toggle:hover { color: #fff; }
	.js .nav-on .nav-toggle::before { content: 'Close Menu'; }
	.js .nav-on .nav-toggle svg { transform: rotate(90deg); }

	.js .nav-on main,
	.js .nav-on .site-footer { max-height: 0; overflow: hidden; /* hide content when navigation is open */ }



	/* Social */
	.social-block { flex-direction: column; text-align: center; padding-block: 1rem; }
	.social-block h2, .social-block::after { font-size: 20px; }
	.social-block .social { margin-block: 1rem; }


	/* Footer */
	.footer-logo { margin-bottom: 1rem; }
	.footer-nav { margin-left: 2rem; }


	/* 	General styles */

	.main-container { flex-direction: column; }
	.sidebar { width: 100%; padding: 1rem 0; max-width: none; border-inline-end: none; }
	.primary { width: 100%; padding: 0; }

	.breadcrumbs { font-size: .75rem; font-weight: 700; margin-bottom: 1rem; }


	.cke > .c2, .cke > .c3, .cke > .c4, .cke > .c5, .cke > .c6 {
		width: auto;
	 }

	.region-row { display: block; }
	.region-cell { padding: 0; }

	.flex { display: block; }
	.flex > div + div { margin: 0 0 1em 0; }


	:where(.primary :where(p, ul, ol)) { font-size: 1rem; }
	:where(.primary :where(p, ul, ol)).intro,
	:where(.intro :where(p, ul, ol)) { font-size: 1.25rem; }

	h1, .h1 { font-size: 35px; }
	h2, .h2 { font-size: 28px; }
	h3, .h3 { font-size: 22px; }

	table { font-size: 12px; }

	/* Forms */
	.fm-form [type="url"],
	.fm-form [type="tel"],
	.fm-form [type="text"],
	.fm-form [type="date"],
	.fm-form [type="email"],
	.fm-form [type="number"],
	.fm-form [type="password"],
	.fm-form select,
	.fm-form textarea { -webkit-appearance: none; }

	/* .fm-form [type="date"] {  min-height: 46px; } */
	.fm-form [class^="input-"] { width: 100%; }

	.button { font-size: 1rem; min-width: 0; }
	.button.large { font-size: 100%;  margin-left: 0; margin-right: 0; }


	.pagination-links { font-size: 16px; }
	.pagination-links li:not([class]) { display: none; }

	.img-left, .image:has(img.img-left),
	.img-right, .image:has(img.img-right) { float: none; margin-left: 0; margin-right: 0; max-width: 100%; }


	/* 	Modules */

	/* 	Toggles */
	.toggle { top: .6rem; }
	.toggle-head { }
	.toggle-head > .toggle-title {  }
	.is-toggle-on .toggle-details {  }


	/* 	Staff */
	.staff-item { width: 45%; min-width: 0; }


}

/* Small Mobile sizes (up to 480px): */
@media only screen and (max-width: 480px) {
	body:before { content: 'small'; }

	/* 	News */
	.article-item  { width: 100%; }

	/* 	Events */
	.event-item { width: 100%; }

}
