/* MAIN SHEET */

:root{
	--paragraph-font:"Lateef", serif;
	--body-color:#fafafa;
	--gold: #D2C8A8;
	--font-color:#222739;
	--font-awesome:"Font Awesome 7 Pro";
}

.ccm-pagination-wrapper .pagination {
	--bs-pagination-padding-x: 0.75rem;
	--bs-pagination-padding-y: 0.375rem;
	--bs-pagination-font-size: 1rem;
	--bs-pagination-color: var(--brand-orange);
	--bs-pagination-bg: white;
	--bs-pagination-border-width: var(--bs-border-width);
	--bs-pagination-border-color: var(--brand-orange);
	--bs-pagination-border-radius: var(--bs-border-radius);
	--bs-pagination-hover-color: var(--brand-orange);
	--bs-pagination-hover-bg: var(--bs-tertiary-bg);
	--bs-pagination-hover-border-color: var(--brand-orange);
	--bs-pagination-focus-color: var(--brand-orange);
	--bs-pagination-focus-bg: var(--bs-secondary-bg);
	--bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(253, 126, 13, 0.25);
	--bs-pagination-active-color: #fff;
	--bs-pagination-active-bg: var(--brand-orange);
	--bs-pagination-active-border-color: var(--brand-orange);
	--bs-pagination-disabled-color: var(--bs-secondary-color);
	--bs-pagination-disabled-bg: var(--bs-secondary-bg);
	--bs-pagination-disabled-border-color: var(--bs-border-color);
	
	width: fit-content;
	margin: 0 auto;
}

*{
	margin:0;
	padding:0;
	box-sizing: border-box;
}

body{
	font-family:var(--paragraph-font);
	background:var(--body-color);
	font-size:16px;
	color:var(--font-color);
	font-optical-sizing: auto;
}

body.mobile-nav-open {
	overflow: hidden;
}

.ccm-toolbar-visible body{
}

a{
	text-decoration:none;
	color:var(--brand-orange);
}

.container-fluid {
	max-width: calc(1320px + 8rem);
	padding: 0 4rem;
}

.container-fluid.medium{
	max-width: calc(1100px + 8rem);
	padding: 0 4rem;
}

.container-fluid.narrow{
	max-width: calc(720px + 8rem);
	padding: 0 4rem;
}

@media screen and (max-width:1150px){
	.container-fluid {
		max-width: calc(1320px + 4rem);
		padding: 0 2rem;
	}
}

@media screen and (max-width:640px){
	.container-fluid {
		max-width: calc(1320px + 2rem);
		padding: 0 1rem;
	}
	
	.container-fluid.no-padding{
		padding:0;
	}
}

.small-margin{
	margin:2rem 0;
}

.standard-margin{
	margin:3rem 0;
}

.large-margin{
	margin:3rem 0;
}

@media screen and (min-width:1400px){
	margin:6rem 0;
}

.standard-padding{
	padding:4rem 0;
}

.small-padding{
	padding:2rem 0;
}

.fluid-row{
	display:flex;
	flex-wrap:wrap;
	gap:4rem;
}

/* MODALS */

.modal {
	--bs-modal-border-color: transparent;
	--bs-modal-border-width: 0;
	--bs-modal-border-radius: 5px;
	--bs-modal-box-shadow: var(--bs-box-shadow-sm);
}

a{
	text-decoration: none;
}

a.biglink{
	display:block;
	position:absolute;
	inset:0;
	z-index:15;
}

p{
	line-height:1.75;
	color:var(--font-color);
}

p.smaller {
	font-size: .875rem;
}

h1, h2, h3, h4, h5 {
	font-weight: 800;
	margin-bottom: .25em;

}

h1.large{
	font-size:calc(2.5rem + 1vw);
}

h1.xLarge{
	font-size:calc(3rem + 1vw);
}

h2.large {
	font-size: calc(2rem + 1vw);
}

.size-l {
	font-size: 3em;
}

@media (max-width: 1000px) {
	.size-l {
		font-size: 2.5em;
	}
}

@media (max-width: 720px) {
	.size-l {
		font-size: 2.25em;
	}
}

div.title {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	margin-bottom:2rem;
}

div.title.border-left div.info {
	border-left: 3px solid var(--brand-orange);
	padding-left: 1rem;
}

div.title p.subtitle{
	margin-bottom:0;
}

@media screen and (max-width:920px){
	div.title {
		flex-direction: column;
		align-items: flex-start;
		gap: 1rem;
	}
}

.ccm-toolbar-visible header#main-header{
	top:48px;
}

header#main-header .wrapper{
	display:flex;
	align-items:flex-end;
	justify-content:space-between;
}

header#main-header .logo{
	width:140px;
}

header#main-header .logo a{
	display:block;
}

header#main-header .logo a img{
	width:100%;
	height:auto;
}

/* Header Contact Details */

header#main-header .rhs{
	display:flex;
	gap:1rem;
}

header#main-header .contact-details{
	display:flex;
	gap:1rem;
}

header#main-header .contact-details a{
	display:flex;
	gap:.5rem;
	color:var(--font-color);
	align-items:center;
	transition: all 0.3s;
}

header#main-header .contact-details a:hover {
	color: var(--brand-orange);
	transition: all 0.3s;
}

header#main-header .contact-details a i{
	color:var(--brand-orange);
}

@media screen and (max-width:860px){
	header#main-header .contact-details{
		display:none;
	}
}


/* Footer */

footer#main-footer{
	padding:2rem;
	background-color:var(--body-color);
}

footer#main-footer .container-fluid {
	padding-top: 2rem;
	border-top: 1px solid var(--gold);
}

footer#main-footer .footer-content{
	text-align:center;
}

footer#main-footer .ccm-block-social-links{
	margin:1rem 0;
}

footer#main-footer p.address, footer#main-footer p.contact-details {
	font-size:1.25rem;
	color: var(--font-color);
	font-weight: 300;
}

footer#main-footer p.contact-details span {
	color: var(--gold);
	margin: 0 0.75rem;
}

footer#main-footer p.contact-details a {
	transition: all 0.3s;
}


footer#main-footer p.contact-details a:hover {
	color: var(--gold);
	transition: all 0.3s;
}


footer#main-footer p.contact-details i:before {
	top: 3px;
	position: relative;
	color: var(--gold);
}

footer#main-footer p.copyright{
	font-size:.875rem;
}

footer#main-footer p.credit{
	font-size:.75rem;
	color:#fff;
}

footer#main-footer p.credit a:hover{
	color:#fff;
}


.ccm-block-social-links ul.list-inline {
	display: flex !important;
	gap: .5rem;
	justify-content: center;
}

.ccm-block-social-links ul.list-inline li{
	margin:0!important;
}

.ccm-block-social-links ul.list-inline li a {
	display: flex;
	width: 36px;
	height: 36px;
	color: var(--brand-orange);
	background: transparent;
	align-items: center;
	justify-content: center;
	border-radius: 3px;
	font-size: 1.25rem;
	box-shadow: 0 0 0 1px #86421b;
	transition: all 0.3s;
}

.ccm-block-social-links ul.list-inline li a i {
	transition: all 0.3s;
}

.ccm-block-social-links ul.list-inline li a:hover {
	box-shadow: 0 0 0 1px #fff;
	transition: all 0.3s;
}

.ccm-block-social-links ul.list-inline li a:hover i  {
	color: #fff;
	transition: all 0.3s;
}


nav.footer-nav ul{
	display: flex;
    justify-content: center;
	list-style:none;
	padding:0;
}

nav.footer-nav ul li a{
	font-size:.75rem;
}

nav.footer-nav ul li a:hover{
	color:#fff;
}

nav.footer-nav ul li:not(:last-child)::after {
	content: "";
	display: inline-block;
	width: 1px;
	height: .875rem;
	background: #fff;
	margin: 0 .75rem;
	opacity: 0.5;
	vertical-align: middle;
}



ul.list{
	list-style:none;
	margin:1rem 0;
	padding:0;
}

ul.list li {
	position: relative;
	padding-left: 1.75rem;
	margin: .75rem 0;
	font-weight: 500;
	font-size: .875rem;
}

ul.list li:before{
	content:'';
	font-family:'Font Awesome 7 Jelly Fill';
	font-weight: 400;
	position:absolute;
	top:0;
	left:0;
	color:var(--gold-color);
}

ul.list.checks li:before{
	content:'\f00c';
}

ul.list.crosses li:before{
	content:'\f00d';
}

/* IMAGE PICKER */

div.image-picker .image-folder-wrapper {
	background: var(--body-color-lighter);
	/* padding: 10px; */
	/* border-bottom: 1px solid #ddd; */
	margin-bottom: 10px;
	border-radius: 12px;
	overflow: hidden;
	box-shadow:var(--inset-shadow);
}



div.image-picker .folder-images{
}

div.image-picker .folder-images .wrapper {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
	padding: 16px;
	background: var(--olive-white);
}

div.image-picker .folder-name {
	padding: 9px 24px;
	display: flex;
	gap: 10px;
	align-items: center;
	box-shadow: 0 0 4px rgba(0,0,0,0.2);
	position: relative;
	background: #f2f4ee;
	font-weight: 500;
}

div.image-picker .folder-name:hover {
	color: var(--accent-green);
}

div.image-picker .folder-name i {
	font-size: 24px;
	color: #ecd693;
	text-shadow:0 1px 1px rgba(0,0,0,0.25);
}

/*div.image-picker .folder-name:after{
	content:'\f067';
	position:absolute;
	right:24px;
	top:50%;
	transform:translateY(-50%);
	font-family:'Font Awesome 5 Pro';
}
div.image-picker .folder-name.folder-opened:after{
	content:'\f068';
}*/

div.image-picker .image-thumbnail {
	width: 80px;
	box-shadow: 0 0 0 2px #ccc;
	cursor: pointer;
	transition: all 0.3s;
	position: relative;
	height: 80px;
	display: flex;
	align-items: center;
	flex-direction: column;
	justify-content: center;
}
#sortable-images .image-thumbnail{
	cursor:grab;
}
.sortable-ghost {
	opacity: 0.5;
	border: 2px dashed var(--brand-orange);
}

div.image-picker .image-thumbnail i{
	color:rgb(162, 0, 0);
	font-size:24px;
}
div.image-picker .image-thumbnail span {
	font-size: 12px;
	font-weight: 600;
	word-break: break-word;
	text-align: center;
	line-height: 12px;
	padding: 3px;
}
div.image-picker .image-thumbnail.selected {
	box-shadow: 0 0 0 4px var(--brand-orange);
}

div.image-picker .image-thumbnail:not(.selected):hover{
	box-shadow:0 0 0 4px var(--accent-blue);
	z-index:100;
}

div.image-picker .image-thumbnail img{
	width:100%;
	height:auto;
	display:block;
}

/* PROJECTS LISTING */

.projects-loader {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	padding: 2rem 0;
	font-weight: 600;
}

.projects-loader i {
	font-size: 1.25rem;
}

.results-list.projects {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	grid-column-gap: 2rem;
}

@media screen and (max-width:1023px){
	.results-list.projects {
		grid-column-gap: 1rem;
	}
}

.project-card {
	position: relative;
	margin: 1.5rem 0;
}

.project-slider {
	position: relative;
	aspect-ratio: 16 / 10;
	background: #f3f3f3;
	overflow: hidden;
}

.project-slider-track {
	position: relative;
	width: 100%;
	height: 100%;
}

.project-slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.35s ease;
}

.project-slide.active {
	opacity: 1;
	pointer-events: auto;
}

.project-slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.project-slide.no-image {
	display: flex;
	align-items: center;
	justify-content: center;
	background: #eee;
	color: #666;
	font-size: 0.95rem;
	opacity: 1;
	inset: 0;
	position: absolute;
	flex-direction: column;
	gap:.5rem;
}

.project-slide.no-image i{
	font-size:2rem;
}

.project-slider-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	width: 42px;
	height: 42px;
	border: none;
	border-radius: 50%;
	background: rgba(0,0,0,0.15);
	backdrop-filter: blur(4px);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: all 0.25s ease;
	box-shadow: 0 0 0 2px rgba(255,255,255,0.5);
	color: #fff;
	opacity: 0;
	pointer-events: none;
}

/* Show on hover (desktop only really applies) */
.project-slider:hover .project-slider-arrow {
	opacity: 1;
	pointer-events: auto;
}

.project-slider-arrow:hover {
	color:var(--brand-orange);
	background: rgba(255,255,255,1);
}

.project-slider-arrow.prev {
	left: 12px;
}

.project-slider-arrow.next {
	right: 12px;
}

.project-slider-arrow.next i{
	position:relative;
	left:1px;
}

.project-slider-arrow.prev i{
	position:relative;
	right:2px;
}

.project-card .project-info {
	padding: 1.5rem 0;
}

.project-card .project-type {
	margin-bottom:1rem;
}



@media screen and (max-width:860px){
	.project-slider-arrow{
		display:none;
	}
}

@media screen and (max-width: 769px) {
	.results-list.projects {
		display: flex;
		flex-wrap: wrap;
	}
	.project-card {
		width: 100%;
	}
}


.admin-tools {
	display: flex;
	gap: .5rem;
}

.admin-tool {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	cursor: pointer;
	font-size: 0.75rem;
	border: 1px solid var(--brand-orange);
	padding: .25rem .5rem;
	border-radius: 5px;
	transition:all 0.3s;
}

.admin-tool:hover {
	color:var(--brand-orange);
	box-shadow:0 0 0 3px rgba(237, 116, 48, 0.75);
}

@media (max-width: 991px) {
	.projects-grid {
		grid-template-columns: 1fr;
	}
}

/* PROJECT VIEW TITLE */

.project-title-block .project-type {
	text-transform: capitalize;
	font-weight:600;
}

.project-title-block .project-link {
	display: inline-block;
	text-decoration: none;
	font-weight: 600;
}

/* SINGLE PROJECT GALLERY */
.masonry-grid {
	position: relative;
}

.masonry-grid .grid-sizer,
.masonry-grid .gallery-item {
	width: 24%;
}

.masonry-grid .gutter-sizer {
	width: 1.333%;
}

.masonry-grid .gallery-item {
	margin-bottom: 1rem;
}

.masonry-grid .gallery-thumb-link {
	display: block;
	text-decoration: none;
}

.masonry-grid .gallery-thumb-link img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 0;
	transition: transform 0.25s ease, opacity 0.25s ease;
}

.masonry-grid .gallery-thumb-link:hover img {
	transform: scale(1.015);
	opacity: 0.96;
}

.project-lightbox {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.8);
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 2rem;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.25s ease;
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
}

.project-lightbox.active {
	opacity: 1;
	pointer-events: auto;
}

.project-lightbox-inner {
	max-width: 90vw;
	max-height: 90vh;
	display: flex;
	align-items: center;
	justify-content: center;
}

.project-lightbox-inner img {
	display: block;
	max-width: 100%;
	max-height: 90vh;
	width: auto;
	height: auto;
	box-shadow: 0 10px 40px rgba(0,0,0,0.35);
}

.project-lightbox-close {
	position: absolute;
	top: 1rem;
	right: 1.25rem;
	border: none;
	background: transparent;
	color: #fff;
	font-size: 3rem;
	line-height: 1;
	cursor: pointer;
	padding: 0;
}

body.lightbox-open {
	overflow: hidden;
}

@media (max-width: 991px) {
	.masonry-grid .grid-sizer,
	.masonry-grid .gallery-item {
		width: 49%;
	}

	.masonry-grid .gutter-sizer {
		width: 2%;
	}
}

@media (max-width: 575px) {
	.masonry-grid .grid-sizer,
	.masonry-grid .gallery-item {
		width: 100%;
	}

	.masonry-grid .gutter-sizer {
		width: 0;
	}
}

/* AFFILIATIONS */

section.affiliations-section{
	border-top:1px solid #eee;
}

section.affiliations-section .affiliations {
	display: flex;
	gap: 2rem;
	justify-content: center;
}

section.affiliations-section .affiliation {
	width: 120px;
	height: 120px;
	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;
	filter:opacity(.5);
	transition:all 0.3s;
	mix-blend-mode: multiply;
}

section.affiliations-section .affiliation.phd-logo {
	width:60px;
	filter: saturate(0) opacity(.6);
}

section.affiliations-section .affiliation:hover{
	filter:none;
}

/* BLOG PAGE */

.title-block p.subtitle {
	font-weight: 600;
}

.blog-content .ccm-image-block{
	margin:2rem 0;
}

.blog-content .wrapper ul {
	list-style: none;
	padding-left: 1rem;
}

.blog-content .wrapper ul li {
	position: relative;
	padding-left:1.25rem;
}

.blog-content .wrapper ul li:before {
	content:'';
	width: 0.75rem;
	height: 0.75rem;
	background: var(--brand-orange);
	left:0;
	position: absolute;
	top: 6px;

}


/* ENQUIRY FORM */

#enquiryModal {
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
}

#enquiryModal .modal-dialog {
	padding: 1rem;
}

#enquiryModal .modal-xl {
	--bs-modal-width: 800px;
}

#enquiryModal legend {
	font-weight: 800;
	font-size: 1.25rem;
	letter-spacing: -.045em;
}

#enquiryModal label {
	font-weight: 400;
}

#enquiryModal input:focus,
#enquiryModal .form-control:focus,
#enquiryModal button:focus {
	box-shadow: 0 0 0 0.25rem rgba(237, 116, 48, 0.3);
	border-color:transparent;
}

 #enquiryModal .text-muted {
 font-size: 0.75rem;
 font-style:italic;
 color: var(--brand-orange)!important;
}

#enquiryModal .form-actions .btn-primary {
	font-size: 0.875rem;
	font-family: var(--paragraph-font);
	background: transparent;
	--bs-btn-color: var(--brand-orange);
	--bs-btn-border-color: var(--brand-orange);
}

#enquiryModal .form-actions .btn-primary:hover {
	background: var(--brand-orange);
	color: #fff;
}

@media screen and (max-width: 769px){
	#enquiryModal .modal-content {
		max-height: 700px;
		overflow: scroll;
	}
	#enquiryModal .ccm-dashboard-express-form {
	  grid-template-columns: 1fr;
  }
}