/**
 * style.css
 * ---------
 * This is the main style sheet that defines the overall layout. Mobile first with media queries used for desktop overrides.
**/


:root {
	--background: #F3F4F4; /* Main background */
	
	--foundation: #13A966; /* Main dominant colour - college green */
	--foundationText: #FFFFFF;

	--secondary: #166D46; /* sub background colour */
	--secondaryText: #FFFFFF;
	--yellow: #F9BE00; /* highlight colour */

	--accent: #B5DB85;  /* Highlights, calls to action, etc. */
	--on-accent: #E9F7D8; /* Anything that appears on an accented colour */
	--surface: #89c045; /* Cards, panels, etc. that sit on the background */
	--on-surface: #CCF0A0; /* Text or icons that appear on the Surface color */
	--interactive: #9084A4; /* For buttons, links, and other clickable elements */
	--on-interactive: #E0DEE5;
	
	--Green: #12A966;
	--Celadon: #87D4B4;
	--DarkEmerald: #095534;
	--Mint: #00DBA1;
	--MintToneLight: #E2FAF5;
	--MintToneDark: #B9CEC7;
	--Amber: #F4BA18;
	--AmberToneLight: #FEF7E5;
	--AmberToneDark: #ECE5D3;
	--Silver: #CDCDCD;
	--Alabaster: #E6E6E6;
	--Black: #010101;
	--White: #FFFFFF;	
    --Pale: #E8F1F6;
}


@media (min-width: 992px){
	.container{
		max-width: 1336px !important;
	}
}

@font-face {
	font-family: 'Cera Pro';
	font-style: normal;
	font-weight: normal;
	font-display: auto;
	src: url('fonts/Cera/Cera-Pro-Regular.ttf') format('truetype');
}
@font-face {
	font-family: 'Cera Pro';
	font-style: normal;
	font-weight: 400;
	font-display: auto;
	src: url('fonts/Cera/Cera-Pro-Medium.ttf') format('truetype');
}
@font-face {
	font-family: 'Cera Pro';
	font-style: normal;
	font-weight: 500;
	font-display: auto;
	src: url('fonts/Cera/Cera-Pro-Bold.ttf') format('truetype');
}
@font-face {
	font-family: 'Cera Pro';
	font-style: normal;
	font-weight: 900;
	font-display: auto;
	src: url('fonts/Cera/Cera-Pro-Black.ttf') format('truetype');
}

body {
	overflow-y: scroll;
	overflow-x: hidden;
	background: var(--White); 
    font-family: 'Cera Pro', sans-serif;
    font-size: 20px;
    font-weight: 400;
    /*
    line-height: 30px;
    margin-block-end: 20px;
    margin-block-start: 20px;
    margin-inline-end: 0px;
    margin-inline-start: 0px;
    */
}

header {
    background: var(--DarkEmerald); 
    color:  var(--White);
    height: 156px;
}

header a {
    color:  var(--White) !important; 
}

header .logo {
    height: 38px;
}

footer .logo {
    height: 30px;
}

.btn {
    --bs-btn-border-radius: 50rem;
  }

.actionButton {
    /* Default state */
    --bs-btn-bg: var(--Mint);
    --bs-btn-border-color: transparent;

    /* Hover state */
    --bs-btn-hover-bg: var(--MintToneLight);
    --bs-btn-hover-border-color: transparent;

    /* Active / Pressed state */
    --bs-btn-active-bg: var(--secondary);
    --bs-btn-active-border-color: transparent;
}

.btn.actionButton,
.btn.actionButton:hover,
.btn.actionButton:focus,
.btn.actionButton:active {
  color: var(--Black) !important;
  text-decoration: none;
}


.actionButtonOutline {
    /* Default state */
    --bs-btn-bg: transparent;
    --bs-btn-border-color: var(--Mint);

    /* Hover state */
    --bs-btn-hover-bg: transparent;
    --bs-btn-hover-border-color: var(--Amber);

    /* Active / Pressed state */
    --bs-btn-active-bg: var(--secondary);
    --bs-btn-active-border-color: transparent;
}

.btn.actionButtonOutline,
.btn.actionButtonOutline:hover,
.btn.actionButtonOutline:focus,
.btn.actionButtonOutline:active {
  color: var(--White) !important;
  text-decoration: none;
}

main a {
    color: var(--DarkEmerald) !important;
    text-decoration: none;
}

main a:hover {
    text-decoration: underline;
}


/* 1. Default (Inactive) Tab Styling */
.nav-tabs .nav-link {
    color: var(--DarkEmerald);
    text-transform: uppercase !important;
}
  
/* 2. Hover & Focus States */
.nav-tabs .nav-link:hover,
.nav-tabs .nav-link:focus {
    color: var(--Green);
    border-color: #e9ecef #e9ecef #dee2e6; /* Prevents visual jumping */
  }
  
/* 3. Active Tab Styling */
.nav-tabs .nav-link.active {
    color: var(--Black); /* Active text color */
    background-color: #fff; /* Active background */
    border-color: #dee2e6 #dee2e6 #fff; /* Matches tab border outline */
}


a.noUnderline {
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}

a.noHoverUnderline {
    text-decoration: none !important;
}

.filter-pane {
    font-size: 18px;
}

.filter-pane h3 {
    font-weight: 700 !important;
    color: var(--Black) !important;
    font-size: 20px;
}

.filter-pane .form-check-label {
    color: var(--secondary) !important;
}




.pageSubHeader {
	background: var(--Celadon); 
	color:  var(--Black); 
}



.courseCard {
    color:  var(--White); 
    line-height: 18px !important;
}

.courseCard .folder-name {
    color: var(--White);
}

.courseCard .card-body {
    background: var(--DarkEmerald);
    color:  var(--White); 
}

.courseCard .course-extraInfo {
    color: var(--Mint);
    font-size: 16px;
}


.accordion-button:not(.collapsed) {
    color: var(--White);
    background-color: var(--DarkEmerald);
    font-size: 20px !important;
    text-transform: uppercase !important;
}

.accordion-button.collapsed {
    color: var(--White);
    background-color: var(--DarkEmerald);
    font-size: 20px !important;
    text-transform: uppercase !important;
}

.accordion-button:focus {
    /* box-shadow: 0 0 0 0.1rem rgba(255, 128, 0, 0.4); */
    box-shadow: none;
}

.accordion-button::after {
    filter: brightness(0) invert(1);
  }

h3.title {
    margin-top: 30px;
}

p.tagline {
	/* background: #E8F1F6; */
	color: #0f5144;
	/* border-left: 2px solid #0f5144; */
	/* padding: 20px; */
    font-size: 16px;
	font-style: italic;
}

.footer-wrapper {
	background: var(--DarkEmerald);
}

/* Universal selector - turn everything white */
.footer-wrapper * {
    color: var(--White);
}

.footer hr {
	background-color: var(--on-surface);
}

.footerHeading {
    color: var(--White);
    text-transform: uppercase;
    font-weight: bold;
    font-size: 16px;
}

.footer-copyright {
    background: var(--Celadon);
    color: var(--Black);
    font-size: 16px;
}





/* On a wide screen lay it out like a table going sideways */
@media only screen and (min-width: 600px) {
	.topBar {
		display: table;
		table-layout: auto;
		width: 100%;
	}

	.topBar li {
		display: table-cell;
		border-right: 1px solid white; /* Optional: Adds table-like borders */
		text-align: left; /* Align text properly */
		list-style: none; /* Removes bullets */
		white-space: nowrap;
	}

	.topBar li.empty {
		width: 100%;
		display: table-cell;
	}        

	.topBar li:last-child {
		border-right: none;
		background: var(--interactive);
	}

	.topBar li:last-child a {
		color: black;
	}

	.topBar li:last-child a:hover {
		color: var(--on-interactive);
	}
}



.header {
	background: white;
}


.pageWrapper {
	background: #F7F7F7;
	font-family: 'Open Sans', 'sans-serif';
	font-size: 0.95rem;
	letter-spacing: 0.2px !important;	
}



.header a{
	color: black;
}


h1 {
    font-size: 40px;
    font-weight: 400;
    text-transform: uppercase;
    line-height: 45px;
}

h2 {
    font-size: 20px !important;
    /* text-transform: uppercase; */
}

.applyTabButton {
    color: var(--Amber); 
}


#enrolFormWrapper h2 {
    color: var(--DarkEmerald);
    text-transform: uppercase;
    font-size: 22px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0px;
    /* -webkit-text-stroke: 0.4px var(--DarkEmerald); */
}


#enrolFormWrapper .form-check-label {
    margin-bottom: 4px;
}


.customErrorHandlerMessage {
	position: relative;
	z-index: 999; 
	margin: 10px 5px 20px 5px;
	background: #FFFAFA;  padding: 20px 10px;
	border: 1px solid #DD0000;
	border-top: 5px solid #DD0000;
	font-size: 0.8rem;	
}

.customErrorHandlerMessage > .errorLine {
	border-top: 1px dashed #888888;
	padding-top: 10px;
}

/**
* Toast
*/
#toastWrapper {
	visibility: hidden; /* Hidden by default. Visible on click */
	min-width: 250px; /* Set a default minimum width */
	margin-left: -125px; /* Divide value of min-width by 2 */
	background-color: #191919;
	color: #fff;
	text-align: center;
	border-radius: 5px;
	padding: 16px;
	font-size: 0.9rem;
	position: fixed;
	z-index: 15;
	left: 50%;
	bottom: 50px;
}

/* Show the toast when clicking on a button (class added with JavaScript) */
#toastWrapper.show {
	visibility: visible;

	/* Add animation: Take 0.5 seconds to fade in and out the toast, However, delay the fade out process for 2.5 seconds */
	-webkit-animation: fadein 0.5s, fadeout 0.5s 2.5s;
	animation: fadein 0.5s, fadeout 0.5s 2.5s;
}

/* Animations to fade the toast in and out */
@-webkit-keyframes fadein {
	from {bottom: 0; opacity: 0;} 
	to {bottom: 50px; opacity: 1;}
}

@keyframes fadein {
	from {bottom: 0; opacity: 0;}
	to {bottom: 50px; opacity: 1;}
}

@-webkit-keyframes fadeout {
	from {bottom: 50px; opacity: 1;} 
	to {bottom: 0; opacity: 0;}
}

@keyframes fadeout {
	from {bottom: 50px; opacity: 1;}
	to {bottom: 0; opacity: 0;}
}


.helpCursor {
	cursor: help;
}

.btn-group-xs > .btn, .btn-xs {
	margin: 0;
	padding: .3rem .4rem;
	font-size: .8rem;
	line-height: 0.9;
	border-radius: .2rem;
}

/* Dotted box around signature on form */
.signatureBox_wrapper {
    border: 1px dashed #DDDDDD;
    padding: 20px;
    cursor: pointer;
}

.signatureBox_wrapper.is-valid {
	border: 1px dashed #28A745 !important;
}

.signatureBox_wrapper.is-invalid {
	border: 1px dashed #DC3545 !important;
}

.invalid-signature-feedback {
	color: #DC3545 !important;
}
	

/* popups */
#popupModal > .modal-dialog {
	max-width: 60% !important;
	}
	
#popupModal > .modal-dialog > .modal-content {
	font-size: 1.4em;
	}	
	
#popupModal > .modal-dialog > .modal-content > .modal-header {
	background: #54B265;
	}		

#popupModal .modal-title, #popupModal .modal-header button {
	color: white !important;
	}	
	
	
@media (min-width: 768px) {

	.modal-dialog-vertical {
		max-width: 450px;
		}
}

.youtube-embed {
    aspect-ratio: 16 / 9;
    width: 100%;
    max-width: 100%;
  }
  
  .youtube-embed iframe {
    width: 100% !important;
    height: 100% !important;
    border: 0;
  }


.contentWrapper {
    margin-bottom: 2rem;
}


.content {
    padding: 1rem;
}

.rotate {
  transform: rotate(90deg);
  transition: transform 0.2s ease;
}

.chevron {
  transition: transform 0.2s ease;
}  

.amberText {
    color: var(--Amber) !important;
}