﻿:root {
    --primary: #0F295B;
    --primary-dark: #061098;
    --secondary: #a7a9ac;
    --smooth: .25s ease-in-out;
    --bs-accordion-active-bg: var(--bs-primary-bg-subtle);
    --bs-primary-bg-subtle: #ffd9b0;
    --secondary-dark: #080011;
    --secondary-light: #e3e3e3;
    --transition: 0.3s ease;
	--toggler-size: 30px;
}

html,
body {
  height: 100%;
}

/*override variable*/
.card-img-top {
    --bs-card-inner-border-radius: 0rem;
}
html{
	overflow:hidden;
}


body {
  display: grid;
  grid-template-rows: auto 1fr auto;
}

.archive-img{
	height:100px;
	width:100px;
	overflow: hidden;
}


.card-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;

  .card {
    flex: 1 1 calc(33.333% - 1rem); // 3 cards per row
    display: flex;
    flex-direction: column;
    min-height: 100%;
    background-color: #fff;
    border: 1px solid #dee2e6;
    border-radius: 0.5rem;
    box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);

    .card-body {
      flex-grow: 1;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
    }
  }
}


body.is-mobile .grid-layout{
	display:none;
}
body.is-desktop .grid-layout-mobile{
	display:none;
}



.sidebar { grid-area: sidebar; }
.main    { grid-area: main; }

.grid-layout{
	display: grid;
	grid-template-rows: 1fr;
    grid-row-gap: 1rem;
	transition: grid-template-columns 1s ease;
}

.toggle-switch:has(#layout-toggle:checked) ~ .grid-layout{
  grid-template-areas: "main";
  grid-template-columns: 1fr;
}


.toggle-switch:has(#layout-toggle:checked) ~ .grid-layout .sidebar{
	display:none;
}

.custom-col {
  min-width: 250px;   
  flex: 1 0 auto;    
}


.toggle-btn {
  position: absolute; 
  top: -0.5rem;
  left: calc(5% - 3rem);
  z-index: 1000;
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 40px;
  height: 40px;
  background: transparent;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  padding: 6px;
  transition: background 0.3s ease;
}

.toggle-btn .toggle_line {
  width: 100%;
  height: 4px;
  background-color: #1b68b6;
  border-radius: 2px;
  transition: transform 0.3s ease;
}

.toggle_line:nth-child(2){
    top: calc(var(--toggler-size) / 5 * 2)
}
.toggle_line:nth-child(3) {
        top: calc(var(--toggler-size) / 5 * 4)
    }


    #layout-toggle:not(:checked) ~ .toggle-btn .toggle_line {
        background: #d68d0e;
    }
        #layout-toggle:not(:checked) ~ .toggle-btn .toggle_line:nth-child(1) {
            transform: translateY(calc(var(--toggler-size) / 5 * 2)) rotate(45deg);
        }
       #layout-toggle:not(:checked) ~ .toggle-btn .toggle_line:nth-child(2) {
            opacity: 0;
        }
        #layout-toggle:not(:checked) ~ .toggle-btn .toggle_line:nth-child(3) {
            transform: translateY(calc(var(--toggler-size) / 5 * -1)) rotate(-45deg);
        }
	.mobile-view{
		display:none;
	}

/*Screen*/
@media (max-width: 768px) {
	.switch{
		display:none !important;
	}
	.toggle-switch {
		display:none;
	}
	.mobile-view{
		display:flex;
	}
	
}

.sidebar { grid-area: sidebar; }
.sidebar-content    { grid-area: main; }

.sidebar-left {
	grid-template-areas:
    	"sidebar main";
    grid-template-columns: 2fr 10fr;
    grid-column-gap: 1rem;
}
.sidebar-right {
	grid-template-areas:
    	"main sidebar";
    grid-template-columns: 10fr 2fr;
    grid-column-gap: 1rem;
}

.sidebar-none {
	display: grid;
    grid-template-rows: 1fr;
	grid-template-areas:
		"sidebar"
		"main";
    grid-template-columns: 1fr;
    grid-column-gap: 1rem;
}

@media (max-width: 768px) {
   .sidebar-left,
   .sidebar-right{
		display: grid;
		grid-template-areas:
		 "sidebar"
		 "main";
        grid-template-columns: 1fr;
    }
	.widget-area{
		height:14rem;
	}
	.dummy-col{
		display:none;
	}
}

@media ( min-width: 769px) and (max-width: 1124px ) {

     .sidebar-left{
		grid-template-areas:
    	 "sidebar main";
        grid-template-columns: 1fr 2fr;
    }
	
	.sidebar-right {	
		grid-template-areas:
		"main sidebar";
        grid-template-columns:2fr 1fr;
    }


    .sidebar-none-grid {
        grid-template-columns: 1fr;
    }
}



.sidebar {
  transition: transform 0.3s ease;
}

.sidebar {
  height: 100%;
  background: #f8f9fa;
}


.sidebar-toggle-btn {
  display: inline-block;
  background: #333;
  color: #fff;
  padding: 0.5rem 1rem;
  cursor: pointer;
}

.sidebar-content {
  display: flex;
	flex-direction:column;
  position: relative;
  height:90vh;
 gap: 1rem;
}



.main-content{
  padding: 1rem;
  min-height:40vh;
  width: 100%;
  flex: 1;
  overflow-y: auto;   
  height: 88vh;      
  z-index: 1;         
}


.widget-area {
  width: 100%;       
  bottom: -3rem;         
  /* background: rgba(255, 255, 255, 0.3); 
 backdrop-filter: blur(10px);         
  -webkit-backdrop-filter: blur(10px); */
  border-left: 1px solid rgba(255,255,255,0.2);
  z-index: 2; 
  padding: 1rem; 	
	overflow-y: auto;   
	height:38vh;
}

/*.widget-area::before {
  content: "";
  position: absolute;
  left: -1rem;         
  top: 0rem;;
  width: 100%;
  height: 2rem;
background: rgba(255, 255, 255, 0.3);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}*/


.dummy-col{
	height: 32vh;  
}

.truncated-text {
  height: 20vh;     
  overflow-y: auto;          
  padding-right: 10px;       
  scrollbar-gutter: stable; 
	
scrollbar-width: none;
}
.truncated-text::-webkit-scrollbar {
  width: 0px;
  background: transparent;
}

.toggle-switch {
  position: absolute;
	top:4.5rem;
}



.toggle-switch input {
  display: none; 
}
.switch {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 120px;
  background: #ddd;
  border-radius: 30px;
  cursor: pointer;
  padding: 5px;
  position: relative;
	z-index:1000;
	left: calc(1%);
}


.switch span {
  flex: 1;
  text-align: center;
  font-size: 14px;
  z-index: 2;
}

.switch::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 54px;
  height: 24px;
  background: var(--bs-primary); ; 
  border-radius: 30px;
  transition: left 0.3s ease;
  z-index: 1;
}

/* When checked, move highlight to Right */
.toggle-switch input:checked + .switch::after {
  left: 63px;
}
/*hides switch when sideber is hidden*/
#layout-toggle:checked ~ .toggle-switch{
	display:none;
	transition: left 0.3s ease;
}

.toggle-switch:has(#sideToggle:checked) ~ .sidebar-left{
	display:none;
}
.toggle-switch:has(#sideToggle:not(:checked)) ~ .sidebar-left{
	display:grid;
}

.toggle-switch:has(#sideToggle:not(:checked)) {
	left:calc(1% + 3rem);
}
.toggle-switch:has(#sideToggle:checked) {
	right:calc(1% + 4rem);
}
.toggle-switch:has(#sideToggle:checked) .toggle-btn{
	left:9rem;
}
/*
.toggle-switch:has(#sideToggle:checked) .switch{
right:5rem;
}
*/

.toggle-switch:has(#sideToggle:checked) ~ .sidebar-right{
	display:grid;
}
.toggle-switch:has(#sideToggle:not(:checked)) ~ .sidebar-right{
	display:none;
}


/*Custom There modal*/



.custom-modal {
	z-index: 3;
	display: none;
	padding-top: 100px;
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	overflow: auto;
	background-color: rgb(0,0,0);
	background-color: rgba(0,0,0,0.4)
}

.custom-modal-content {
	margin: auto;
	background-color: #fff;
	position: relative;
	padding: 3rem;
	outline: 0;
	width: 600px

}


.custom-modal header {
  font-weight: bold;
}

.custom-modal-close {
  color: #aaa;
  line-height: 50px;
  font-size: 80%;
  position: absolute;
  right: 0;
  text-align: center;
  top: 0;
  width: 70px;
  text-decoration: none;
}
.custom-modal-close:hover {
  color: black;
}


.custom-modal-window > div {
  border-radius: 1rem;
}

.custom-modal-window div:not(:last-of-type) {
  margin-bottom: 15px;
}

.custom-btn {
  background-color: white ;
  padding: 1em 1.5em;
  border-radius: 0.5rem;
  text-decoration: none;
}
.custom-btn i {
  padding-right: 0.3em;
}
.interior,
.bg-custom{
	  background-image: linear-gradient(to right, #7f53ac 0, #657ced 100%);
  color: black;
}

a {
  color: inherit;
  text-decoration: none;
}

.custom-label{
	display:flex;
	flex-direction:row;
	align-content:center;
	justify-content:space-between;
	width:100%;
}
	.custom-label span {
		align-content: center;
		
	}
.custom-modal-content input,
.custom-modal-content textarea{
  padding: 0.5rem 0.5em;
  border-radius: 0.5rem;
  text-decoration: none;
  margin: 0.5rem 0.5rem;
	width:62%;
}
/* Validation feedback */
#contactForm input:invalid, 
#contactForm textarea:invalid 
{ 
	border:2px solid red; 
}


#contactForm input:valid, 
#contactForm textarea:valid 
{ 
	border:2px solid green; 
}
@media  (max-width: 758px)  {
	.custom-modal-content {
		max-width: 350px;
		padding: 1rem;
	}
}


.gform_wrapper input[type="text"],
.gform_wrapper input[type="email"],
.gform_wrapper input[type="url"],
.gform_wrapper input[type="tel"],
.gform_wrapper input[type="number"],
.gform_wrapper input[type="password"],
.gform_wrapper textarea,
.gform_wrapper select {
    width: 100%; 
    display: block;
}


/** Task 4 **/
.masonry-grid {
	position: relative;
	max-height: 80vh;
	overflow-y: auto;
}

.masonry-item {
	width: calc(33.333% - 16px);
	margin-bottom: 16px;
	position: absolute;
	opacity: 1;
}
.fadeout {
	animation: fadeOut 2s ease forwards;
}


@keyframes fadeOut {
	from {
		opacity: 1;
	}

	to {
		opacity: 0;
	}
}
.fadein {
	animation: fadeIn 2s ease forwards;
}


@keyframes fadeIn {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}

@media (max-width: 1024px) {
	.masonry-item {
		width: calc(50% - 16px);
	}
}

@media (max-width: 768px) {
	.masonry-item {
		width: 100%;
	}
}



#filter-container {
	margin-bottom: 20px;
}

	#filter-container button {
		margin-right: 10px;
		padding: 6px 12px;
		cursor: pointer;
	}

.masonry-item,
#loading-overlay {
	transition: opacity 0.5s ease;
}


.hidehelper {
	opacity: 0;
	pointer-events: none;
}


#loading-overlay {
	position: fixed;
	inset: 0;
	background: rgba(255,255,255,0.8);
	display: none;
	align-items: center;
	justify-content: center;
	z-index: 999;
}

.spinner {
	width: 40px;
	height: 40px;
	border: 8px solid #ccc;
	border-top-color: #333;
	border-radius: 50%;
	animation: spin 3s linear infinite;
}

@keyframes spin {
	to {
		transform: rotate(360deg);
	}
}



/* Full-width banner */
.slider {
	width: 100vw;
	max-width: 100vw;
	margin-left: 50%;
	transform: translateX(-50%);
	position: relative;
	font-family: system-ui, sans-serif;
}

	/* Hide radios */
	.slider > input {
		position: absolute;
		opacity: 0;
	}

/* Banner height */
.slider-viewport {
	width: 100%;
	height: 60vh; 
	position: relative;
	overflow: hidden;
}

/* Slides */
.slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity 1s ease-in-out;
}

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

/* Active slide */
#s1:checked ~ .slider-viewport .slide-1,
#s2:checked ~ .slider-viewport .slide-2,
#s3:checked ~ .slider-viewport .slide-3, 
#s4:checked ~ .slider-viewport .slide-4,
#s5:checked ~ .slider-viewport .slide-5,
#s6:checked ~ .slider-viewport .slide-6 {
	opacity: 1;
}


/* Bullets */
.slider-bullets {
	display: flex;
	justify-content: center;
	gap: 10px;
}

	.slider-bullets label {
		width: 12px;
		height: 12px;
		background: #777;
		border-radius: 50%;
		cursor: pointer;
		position: relative;
	}

		.slider-bullets label:hover::after {
			opacity: 1;
			transform: translateX(-50%) translateY(-4px);
		}

		/* Tooltip */
		.slider-bullets label::after {
			content: attr(data-tip);
			position: absolute;
			left: 50%;
			bottom: 150%;
			transform: translateX(-50%);
			background: rgba(0,0,0,0.75);
			color: #fff;
			padding: 4px 8px;
			font-size: 11px;
			border-radius: 4px;
			opacity: 0;
			transition: 0.2s ease;
		}

/* Active bullet */
#s1:checked ~ .slider-bullets label:nth-child(1),
#s2:checked ~ .slider-bullets label:nth-child(2),
#s3:checked ~ .slider-bullets label:nth-child(3),
#s4:checked ~ .slider-bullets label:nth-child(4),
#s5:checked ~ .slider-bullets label:nth-child(5),
#s6:checked ~ .slider-bullets label:nth-child(6) {
	background: #fff;
	transform: scale(1.2);
}


/* Prev/Next */
.slider-nav label {
	display: none;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	background: rgba(0,0,0,0.45);
	color: #fff;
	padding: 10px 14px;
	border-radius: 4px;
	cursor: pointer;
	font-size: 18px;
	user-select: none;
}

.prev {
	left: 12px;
}

.next {
	right: 12px;
}

/* Show correct nav buttons */
#s1:checked ~ .slider-nav .p1,
#s1:checked ~ .slider-nav .n1,
#s2:checked ~ .slider-nav .p2,
#s2:checked ~ .slider-nav .n2,
#s3:checked ~ .slider-nav .p3,
#s3:checked ~ .slider-nav .n3, 
#s4:checked ~ .slider-nav .p4,
#s4:checked ~ .slider-nav .n4,
#s5:checked ~ .slider-nav .p5,
#s5:checked ~ .slider-nav .n5,
#s6:checked ~ .slider-nav .p6,
#s6:checked ~ .slider-nav .n6 {
	display: block;
}

@keyframes autoplay {
	0%,10% {
		opacity: 0;
	}
	10.1%,15% {
		opacity: 0.5;
	}
	15.01%,84.99% {
		opacity: 1;
	}
	85%,90% {
		opacity: 0;
	}
	90.1%,100% {
		opacity: 0;
	}
}

.slider:not(:hover):not(:focus-within) .slide-1 {
	animation: autoplay 12s infinite 0s;
}
.slider:not(:hover):not(:focus-within) .slide-2 {
	animation: autoplay 12s infinite 6s;
}
.slider:not(:hover):not(:focus-within) .slide-3 {
	animation: autoplay 12s infinite 12s;
}
.slider:not(:hover):not(:focus-within) .slide-4 {
	animation: autoplay 12s infinite 18s;
}
.slider:not(:hover):not(:focus-within) .slide-5 {
	animation: autoplay 12s infinite 24s;
}
.slider:not(:hover):not(:focus-within) .slide-6 {
	animation: autoplay 12s infinite 30s;
}
