/* Variables */
:root {
	--primary-brand: #0265A7;
	--secondary-brand: #26336D;
	--accent-2: #26336D;
	--light-grey: #EAEAEA;
	--primary-text: #fff;
	--secondary-text: #fff;
	--btn-text: #fff;
	--body-font: "roboto", sans-serif;
	--font-light: 300;
}

body {
  display: flex;
  flex-direction: column;
	color: var(--dark-font-color);
	font-family: var(--body-font);
	line-height: 1.5;
}

h1, .h1, h2, .h2, h3, .h3, h4, 
.h4, h5, .h5, h6, .h6 {
  font-family: var(--body-font);  
  font-weight: var(--font-bold);
}

a {
	color: var(--primary-brand);
}

.ck-editor a {
    text-decoration: underline;
}

.page-content {
	font-family: var(--sans-serif-font);
}

.wrapper {
  flex: 1 0 auto;
}

footer {
    flex-shrink: 0;
	text-align: center;
    margin-bottom: 1rem;
}

main {
	position: relative;
	/*margin-top: 158px;*/
}


.border-box {
	position: relative;
	box-shadow: 0px 3px 10px #00000029;
	display: block;
}

.border-box::before {
	content: "";
	position: absolute;
	width: 100%;
	height: 10px;
	background: transparent linear-gradient(90deg, #0265A7 0%, #013354 100%) 0% 0% no-repeat padding-box;
	top: 0;
	left: 0;
	right: 0;
}

.content-container {
	padding: 0;
}

.page-template h1 {
	margin: 0 0 1.5rem;
}

.page-content {
	padding: 1rem 2rem 5rem;
}

.page-content-inner {
	margin: 0 1rem;
}

.page-content ul {
	list-style: unset;
	padding-left: 1rem;
}

blockquote {
    border-left: 5px solid var(--primary-brand);
}

blockquote::before {
    color: var(--primary-brand);
}

.btn-primary {
    background: var(--primary-brand);
}

@media (max-width: 62em){
	h3 {
		font-size: 1.2rem;
	}
	
	.content-container {
		padding: 0 2rem;
	}
	
	.page-content.rich-text {
		padding: 1rem 0 5rem;
	}
}

@media (min-width: 62em){
	/*main {
		margin-top: 155.59px;
	}*/
	.page-content {
		padding: 3rem 2rem 5rem;
	}

	.page-content.no-side-nav {
		padding: 3rem 0 5rem;
	}
	
	.page-template h1 {
		font-size: 2.5rem;
	}
	
	.has-side-nav .page-content-inner {
		margin: 0 calc(8.333% - 2rem) 0 1rem;
	}
	
	.page-template >.row {
		margin: 0;
	}
}

@media (min-width: 99em){
	.page-content {
		padding: 3.25rem 2rem 5rem;
	}
}

/* show and hide on different screen sizes */
.mobile-only {
	display: block;
}

.desktop-only {
	display: none;
}

@media all and (min-width: 62em){
	.desktop-only {
		display: block;
	}
	.mobile-only {
		display: none;
	}
}

/* Header */
header {
    z-index: 100;
    position: sticky;
	top: 0;
    left: 0;
    right: 0;
    background: white;
}

.main-nav-wrapper.public {
	display: none;
}

.school .logo img {
    height: calc(80px + 1rem);
	padding-bottom: 0;
}

a.nav-link {
   padding: 1rem 0.75rem;
   margin: 0;
}

.school .logo {
	display: block;
}

/* Mega Menu */

.main-dropdown .nav-link::before {
	content: none;
}

.main-dropdown-menu {
	border-radius: 0 0 5px 5px;
}

a.nav-link-2 {
	font-family: var(--body-font);
	font-weight: var(--font-regular);
}

a.nav-link-3 {
	font-family: var(--body-font);
    font-weight: var(--font-medium);
}

a.nav-link-4 {
	font-family: var(--body-font);
    font-weight: var(--font-light);
}

a.nav-link-5{
	font-family: var(--body-font);
	font-weight: var(--font-light);
}

.nav-item.hidden {
	display: none;
}

#search-form {
	position: relative;
}

#search-term {
	margin-bottom: 0;
	background: var(--light-grey);
	border-radius: 100px;
    border: none;
    padding: 0.95rem 1.25rem;
}

#search-button {
	cursor: pointer;
    border: none;
    background: transparent;
    position: absolute;
    right: 0.5rem;
    top: 52%;
    transform: translateY(-50%);
}

#search-button i {
	color: var(--secondary-brand);
}

@media (min-width: 36em){
	.nav-app-wrapper {
		width: auto;
	}
	
	.logo-row-wrapper{
		margin-bottom: 0;
	}
}

@media (max-width: 62em) {
	.school .logo img {
		transition: all .2s ease;
		height: 70px;
	}
	
	/* .sticky-active .logo img {
		height: 70px;
    	display: block;
    	padding-bottom: 0.5rem;
	} */
	
	.logo-row-wrapper {
		width: 100%;
	}
	
	#nav-app .optionbox {
    	top: 71px;
	}
	
	#main-nav > ul {
		top: 0;
		overflow: scroll;
		height: 100dvh;
		flex-wrap: nowrap;
		padding: 10% 1.5rem 15%;
	}
	
	#main-nav > ul.desktop-only {
		display: none;
	}
	
	#main-nav .menu-close {
		top: 1.5rem;
	}
	
	#main-nav > ul > li:nth-last-child(2) {
		flex-grow: unset;
		padding-bottom: 0;
	}
	
	.main-dropdown-menu a {
		padding: .5rem 0;
		display: inline-block;
	}
	
	.nav-link-wrapper ul {
		margin-left: .75rem;
	}
	.nav-link-ul li.col-xs-12 {
		padding-left: 0;
	}
	
	.main-nav-wrapper {
		padding: 0; 
	}
	
	.main-dropdown-menu {
		padding: 0 0 0 0.75rem;
	}
	.main-dropdown-menu > li {
		padding: 0;
	}
	
	a.nav-link {
		padding: 0.5rem 0;
	}
	
	a.nav-link-3, a.nav-link-4 {
		font-weight: var(--font-light);
	}
	
	.arrow::after {
		margin-left: 2px;
		color: rgba(255, 255, 255, 0.4);
		content: "\f078";
		font-size: .75rem;
		font-family: "Font Awesome 5 Free";
		font-weight: 900;
	}
	.collapsed-menu {
		display: flex;
		justify-content: flex-end;
		align-items: center;
		gap: 1rem;
		position: relative;
	}
	.search {
		color: white;
	}
	
	.search:hover {
		color: white;
		filter: none;
	}
	
	.main-dropdown-menu.search {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		width: 100%;
		margin: auto;
		background: white;
		box-shadow: 0px 3px 10px #00000033;
		padding: 2rem 1rem;
		border-radius: 5px;
	}
	
	.nav-link.search {
		display: flex;
		flex-direction: column;
		justify-content: center;
	}
}

@media (min-width: 62em){
	#main-nav {
		position: relative;
	}
	#main-nav > ul {
		width: fit-content;
		row-gap: 0;
	}
	
	#main-nav > ul.mobile-only {
		display: none;
	}
	
	#main-nav > ul.desktop-only {
		display: flex;
		margin: auto;
		justify-content: center;
	}
	
	#main-nav > ul > li {
		position: unset; 
		padding: 0;
	}
	
	#main-nav > ul > li:nth-last-child(2) {
		flex-grow: unset;
	}
	
	.main-dropdown-menu {
		top: 53.59px;
		left: 0;
		right: 0;
		width: calc(100% - 4rem);
		margin: 0 2rem;
		padding: 0;
		background: #f6f6f6;
	}
	
	.main-dropdown-menu > li {
		display: flex;
		gap: 2rem;
		justify-content: space-between;
		padding: 0;
	}
	
	a.nav-link-2 {
		width: 30%;
		display: block;
		padding: 1rem;
		background: #EEEFF0;
		border-bottom: 1px solid #E0E0E0;
		text-align: center;
		font-family: var(--body-font);
		font-size: 1.05rem;
	}
	
	.nav-link-wrapper {
		width: 70%;
		display: none;
		position: absolute;
		top: 0;
		left: 30%;
		z-index: 50;
		min-height: 100%;
		height: fit-content;
   		max-height: calc(100vh - 180px);
		overflow-y: scroll;
		font-family: var(--body-font);
		font-weight: var(--font-regular);
		padding: 1rem 3rem;
    	font-size: 1.05rem;
		background: #f6f6f6;
		box-shadow: 15px 15px 10px -15px #00000033;
	}
	.nav-link-wrapper ul {
		margin-left: 0.25rem;
	}
	
	.nav-link-wrapper a {
		padding: 0 0 0.75rem;
		display: block;
	}
	
	
	#nav-app .optionbox {
		top: 72px;
	}
	
	.main-dropdown, .no-dropdown {
		transition: all .3s ease-in-out;
	}

	.main-dropdown .nav-link:hover, 
	.main-dropdown .nav-link:focus,
	.no-dropdown .nav-link:hover,
	.no-dropdown .nav-link:focus {
		background: var(--primary-brand);
		color: white;
	}
	
	.nav-link-2 {
		position: relative;
		z-index: 100;
	}
	
	.nav-link-2::after {
		content: '';
		opacity: 0;
		width: 0;
		height: 0;
		border-style: solid;
		border-width: 12px 0 12px 10px;
		border-color: transparent transparent transparent var(--primary-brand);
		position: absolute;
		right: -10px;
		top: 50%;
		z-index: 100;
		transform: translateY(-50%);
		transition: all .2s ease;
	}
	
	.nav-link-2:hover, 
	.nav-link-2:focus,
	.nav-link-2.active{
		color:white;
		background: var(--primary-brand);
	}
	
	.nav-link-2:hover::after,
	.nav-link-2:focus::after,
	.nav-link-2.active::after{
		opacity: 1;
		z-index: 100;
	}
	
	.nav-link-2.no-dropdown::after {
		content: none;
	}
	
	.main-dropdown .nav-link::before {
		left: 20%;
		right: unset;
	}
	
	.nav-item:hover,
	.nav-item:focus {
		color: var(--primary-brand);
	}
}

/* Footer */
.footer-top {
	position: relative;
	margin-bottom: 1.25rem;
}
.portal-logo {
	display: block;
    width: fit-content;
    position: absolute;
    bottom: -24px;
    left: 0;
    right: 0;
    background: white;
    padding: 0 1rem;
    margin: auto;
}

.portal-logo img {
	width: 32px;
}

.border-line {
	position: relative;
	width: 100%;
	height: 15px;
	background: transparent linear-gradient(90deg, #FFFFFF00 0%, #26336D 27%, #26336D 73%, #80808000 100%) 0% 0% no-repeat padding-box;
}


/* Home */
.login-wrapper {
	/*margin-top: calc(-2rem + -51px);*/
	padding-top: 1rem;
    background: white;
    position: relative;
    text-align: center;
}

.login-box {
	padding: 2rem 1rem;
}

.tiles {
	gap: 1rem;
	justify-content: space-between;
	margin: 0;
}

.tile-item {
	flex-basis: 100%;
	max-width: 100%;
}
.tile-link {
	position: relative;
	display: block;
    background: var(--primary-brand);
    color: white;
	text-align: center;
	aspect-ratio: 1/1;
	padding: 2rem 1rem;
	display: flex;
    flex-direction: column;
    justify-content: center;
	width: 100%;
    height: 100%;
}

.tile-link img {
	width: auto;
	height: 50%;
	max-height: 80px;
	object-fit: contain;
}

.tile-link h3 {
	margin: 1rem 0 0;
	font-family: var(--body-font);
	font-weight: var(--font-bold);
	font-size: 1.2rem;
}

.tile-link p {
	font-family: var(--body-font);
	font-weight: var(--font-regular);
	margin: 1rem 0;
	line-height: 1.7;
}

.tile-hover {
	position: absolute;
    background: transparent linear-gradient(135deg, #26336D 0%, #0265A7 49%, #8DD5EE 100%) 0% 0% no-repeat padding-box;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    right: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0.75rem;
	transition: all .3s ease-in-out;
	opacity: 0;
}

.tile-link:hover {
	transform: scale(1.05);
}

.tile-link:hover .tile-hover {
	opacity: 1;
}

@media (min-width: 32em) {
	.tile-item {
		flex-basis: calc(50% - .5rem);
		max-width: calc(50% - .5rem);
	}
}

@media (min-width: 62em){
	.login-box {
		width: 70%;
		padding: 2rem 3rem;
		margin: auto;
	}
	
	.tile-item {
		flex-basis: calc((100% / 3) - .75rem);
		max-width: calc((100% / 3) - .75rem);
	}
	
	.tile-link h3 {
		font-size: 1.2rem;
	}
}

@media (min-width: 75em){
	.login-wrapper {
		/*margin-top: calc(-3% + -20px);*/
		padding-top: 3rem;
	}
	.tile-item {
		flex-basis: calc(20% - 1rem);
		max-width: calc(20% - 1rem);
	}
}

@media (min-width: 99em){
	.tile-link h3 {
		font-size: 1.5rem;
	}
	.tile-link img {
		max-height: 120px;
	}
}

/* Landing Template */
.landing-title {
	margin: 0 0 2rem;
}
.landing-box {
	text-align: center;
	padding: 2rem 1rem;
	color: var(--secondary-brand);
	margin-bottom: 2rem;
}

.landing-box:hover,
.landing-box:focus {
	background: rgba(141, 213, 238, 0.4);
}
@media (min-width: 75em){
	.landing-box {
		padding: 2.5rem 2rem;
	}
}

/* Search Results */
.search-result .row {
    display: block;
    margin-left: 0;
    margin-right: 0;
}

.search-result {
    flex-basis: 100%;
    max-width: 100%;
}

/* Breadcrumbs */
.breadcrumbs {
	margin-bottom: 1.5rem;
	display: flex;
	flex-wrap: wrap;
    align-items: center;
}
.breadcrumbs span {
	display: flex;
    align-items: center;
    font-family: var(--body-font);
    color: #767575;
}

.breadcrumbs a {
	color: #767575;
}

/* Side Navigation */
#nav-secondary {
    background: #F2F2F2;
    padding: 2rem;
	border-radius: 0;
}

#nav-secondary a {
	display: block;
	width: fit-content;
	padding: 5px 8px;
    color: var(--dark-font-color);
	border-radius: 10px;
}

#nav-secondary .cookie a {
    display: flex;
}

.cookie span {
	margin-left: 5px;
}

.cookie i {
    font-size: 1.5rem;
    font-weight: var(--font-regular);
}

.current-page {
    background: #F2F2F2;
}

#nav-secondary .secondary-nav-item a.active {
	color: var(--primary-brand);
	font-weight: var(--font-bold);
}

.secondary-nav-item {
	padding: 0 1rem;
}

.secondary-nav-item.current {
	font-weight: var(--font-bold);
}
.secondary-nav-item a:hover {
	background: rgba(141, 213, 238, 0.4);
}

.sidebar-wrapper {
	margin: 2.5rem auto 1rem;
	padding: 0 1rem;
}

.secondary-nav-ul.landing{
	display: none;
}

.secondary-nav-ul.hide-children {
	display: none!important;
}

.current-dropdown i {
	font-size: 1.2rem;
}

@media (max-width: 1199px){
	.sidebar-wrapper {
		margin: 1rem auto;
	}
	#nav-secondary {
		padding: 0.5rem 1rem 1rem;
	}
	.nav-secondary-ul {
		margin-bottom: 0;
	}

	.search-results-template .content {
        padding: 0 1rem!important;
    }
}

@media (min-width: 62em){
	#nav-secondary {
		padding: 3rem 0;
		display: block!important;
	}
	
	.nav-secondary-content {
		width: fit-content;
		/*margin-left: calc((100vw - 57rem)/2);*/
	}
	
	.sidebar-wrapper {
		background: #f2f2f2;
		margin: unset;
		min-height: 100vh;
		padding: 0;
	}
	
	.sidebar {
		position: sticky;
		top: 155.59px;
		max-width: 400px;
		width: fit-content;
		margin-left: calc((100vw - 61rem) / 2 + 2rem);
	}

	.search-sidebar {
		margin-top: 2rem;
	}
	
	.secondary-nav-item.active {
		font-size: 1rem; 
	}
}

@media (min-width: 75em){
	.sidebar {
		margin-left: calc((100vw - 71rem) / 2 + 3rem);
	}
}

@media (min-width: 99em){
	.sidebar {
		margin-left: calc((100vw - 91rem) / 2 + 2rem);
		margin-right: 1rem;
	}
}

@media (min-width: 160em){
	.sidebar {
		margin-left: calc((2560px - 91rem) / 2 + 2rem);
	}
}

/*@media (min-width: 103em){
	.page-content.has-side-nav {
		flex-basis: 66.67%;
    	max-width: 66.67%;
	}
}*/

@media (min-width: 125em){
	.sidebar-wrapper {
		flex-basis: 33.33%;
		max-width: 33.33%;
	}
	
	.page-content.has-side-nav {
		flex-basis: 58.333%;
    	max-width: 58.333%;
	}
}

/* News, Event Article */
.archive-link {
	margin-bottom: .5rem;
}

.article-template h1 {
	margin: 0 0 1rem;
}

.news-date {
	margin-bottom: 1rem;
}

.img-wrapper img {
    border-radius: 6px;
}

.img-wrapper.no-cover {
	background: var(--primary-brand);
    border-radius: 6px;
}

.img-wrapper.no-cover img {
    bottom: .5rem;
    width: 35%;
}

.news-article .news-title {
	transition: all .2s ease;
}

.news-article:hover .news-title,
.news-article:focus .news-title{
	color: var(--primary-brand);
}

.article-template .event-details {
}

.article-template .secondary-nav-item {
	margin-bottom: 0;
}

.article-template .upcoming-events-title {
	margin: 0 0 1rem;
}

.article-template .nav-secondary-ul {
    margin-left: -1rem;
}

.article-template .nav-secondary {
    background: #F2F2F2;
    padding: 2rem;
    border-radius: 0;
}

.article-template .page-content {
	order: -1;
}

.article-template .secondary-nav-item a {
	color: var(--dark-font-color);
}

@media (min-width: 62em){
	.article-template .nav-secondary {
		padding: 3rem 0 0 2rem;
	}
	
	.article-template .page-content {
		order: unset;
	}

}

/*Calendar*/
.staff-content .fc-event-title::before {
	content: none;
}

/* Staff Directory */
.profiles .intro-content {
	margin-bottom: 3rem;
}

.profiles .intro-content p {
	margin-bottom: .5rem;
}
.profile-img-wrapper {
    background: var(--light-grey);
	width: 200px;
    height: 300px;
    aspect-ratio: 2/3;
	display: flex;
    justify-content: center;
    flex-direction: column;
}

.profile-img {
	aspect-ratio: 2/3;
    object-fit: cover;
    width: 100%;
}

.profile-img.placeholder {
	width: 50%;
	aspect-ratio: unset;
	margin: auto;
}

.profile-item {
	margin-bottom: 3.5rem;
}

.page-content .doc-links {
	list-style: none;
	padding-left: 0;
}

.doc-links li {
	padding-bottom: .5rem;
}

/* Secure Login */
.input-field label {
	margin-bottom: 0.5rem;
    display: block;
}

input[type='submit']{
	border-radius: 5px;
    margin-top: 1rem;
    background: var(--primary-brand);
}

@media (min-width: 62em){
	.login-form {
		width: 50%;
		max-width: 600px;
	}
}

.slider-text .text-wrapper {
    width: 100%;
}

.slider-text .text-wrapper h3 {
    margin-top: 0;
}

@media (min-width: 62em){
	.slider-text .text-wrapper {
		width: 100%;
		max-height: 480px;
		overflow-y: auto;
		margin: 2rem 0;
		padding-top: 0;
		padding-bottom: 0;
	}
	
	.img-slider .swiper-horizontal>.swiper-pagination-bullets, 
	.img-slider .swiper-pagination-bullets.swiper-pagination-horizontal, 
	.img-slider .swiper-pagination-custom, 
	.img-slider .swiper-pagination-fraction {
		left: 3rem;
		bottom: 2rem;
	}
}

/* Edsby page */
.--Edsby .table tr:nth-child(odd){
	background: unset;
}

.--Edsby .table figure.image {
	width: 100px;
	margin-bottom: 0;
}

.--Edsby .table td {
    border: 1px solid #F7F6F4;
}

.--Edsby .table td > h4 {
    margin-bottom: 0.5rem;
    font-size: 1.2rem;
}

.--Edsby .table td p i {
    display: inline-block;
    margin-top: 0.5rem;
    font-size: .9rem;
}
