:root {
    --afdc-red-rgb: 218, 0, 46;
    --afdc-blue-rgb: 37, 102, 187;
    --afdc-dark-gray-rgb: 77, 77, 77;
    --afdc-teal-rgb: 58, 153, 166;
    --afdc-red-faded: #FAD9E0;
    --afdc-blue-faded: #D1E5FF;
    --afdc-teal-faded: #CDE5E8;
    --afdc-purple-faded: #e2d1e1;
    --afdc-yellow-faded: #EEE5C8;
    --afdc-green-faded: #C8EEDC;

    --afdc-red: rgb(var(--afdc-red-rgb));
    --afdc-blue: rgb(var(--afdc-blue-rgb));
    --afdc-dark-gray: rgb(var(--afdc-dark-gray-rgb));
    --afdc-teal: rgb(var(--afdc-teal-rgb));
    --afdc-yellow: #FFC977;
    --afdc-dark-yellow:  #af7d31;
    --afdc-purple:  #6a4468;
}

/*****************
 *** Overrides ***
 *****************/

body {
    font-family: 'Inter', sans-serif;
}

.btn,
.btn.btn-sm {
    font-weight: 600;
}

.btn.btn-xs {
    --bs-btn-padding-y: 0.125rem;
    --bs-btn-padding-x: 0.25rem;
    --bs-btn-font-size: 0.875rem;
}

.dropdown-toggle::after {
    display: none;
}

/*****************
         *** Utilities ***
         *****************/

.btn-afdc-red {
    --bs-btn-bg: var(--afdc-red);
    --bs-btn-border-color: var(--afdc-red);
    --bs-btn-color: white;
    --bs-btn-hover-bg: var(--afdc-red);
    --bs-btn-hover-border-color: var(--afdc-red);
    --bs-btn-hover-color: white;
    --bs-btn-active-bg: var(--afdc-red);
    --bs-btn-active-border-color: var(--afdc-red);
    --bs-btn-active-color: white;
}

.btn-outline-afdc-red {
    color: var(--afdc-red);
    background: transparent;
    border-color: var(--afdc-red);
}

.btn-afdc-blue {
    --bs-btn-bg: var(--afdc-blue);
    --bs-btn-border-color: var(--afdc-blue);
    --bs-btn-color: white;
    --bs-btn-hover-bg: var(--afdc-blue);
    --bs-btn-hover-border-color: var(--afdc-blue);
    --bs-btn-hover-color: white;
    --bs-btn-active-bg: var(--afdc-blue);
    --bs-btn-active-border-color: var(--afdc-blue);
    --bs-btn-active-color: white;
}

.btn-afdc-dark-gray {
    --bs-btn-bg: var(--afdc-dark-gray);
    --bs-btn-border-color: var(--afdc-dark-gray);
    --bs-btn-color: white;
    --bs-btn-hover-bg: var(--afdc-dark-gray);
    --bs-btn-hover-border-color: var(--afdc-dark-gray);
    --bs-btn-hover-color: white;
    --bs-btn-active-bg: var(--afdc-dark-gray);
    --bs-btn-active-border-color: var(--afdc-dark-gray);
    --bs-btn-active-color: white;
}

.btn-afdc-teal {
    --bs-btn-bg: var(--afdc-teal);
    --bs-btn-border-color: var(--afdc-teal);
    --bs-btn-color: white;
    --bs-btn-hover-bg: var(--afdc-teal);
    --bs-btn-hover-border-color: var(--afdc-teal);
    --bs-btn-hover-color: white;
    --bs-btn-active-bg: var(--afdc-teal);
    --bs-btn-active-border-color: var(--afdc-teal);
    --bs-btn-active-color: white;
}

.btn-afdc-red.btn-subtle {
    background: var(--afdc-red-faded);
    border-color: var(--afdc-red-faded);
    color: var(--afdc-red);
}

.btn-afdc-blue.btn-subtle {
    background: var(--afdc-blue-faded);
    border-color: var(--afdc-blue-faded);
    color: var(--afdc-blue);
}

.fw-extrabold {
    font-weight: 800;
}

.text-afdc-red {
    color: var(--afdc-red);
}

.text-afdc-blue {
    color: var(--afdc-blue);
}

.text-afdc-dark-gray {
    color: var(--afdc-dark-gray);
}

.text-afdc-teal {
    color: var(--afdc-teal);
}
 
.text-afdc-purple {
    color: var(--afdc-purple);
}
.text-afdc-dark-yellow{
    color: var(--afdc-dark-yellow);
}

.bg-afdc-blue {
    background-color: var(--afdc-blue);
}
.bg-afdc-purple {
    background-color: var(--afdc-purple);
}
.bg-afdc-teal {
    background-color: var(--afdc-teal);
}
.bg-afdc-red {
    background-color: var(--afdc-red);
}

.bg-afdc-dark-gray {
    background-color: var(--afdc-dark-gray);
}

.bg-afdc-yellow {
    background-color: var(--afdc-yellow);
}
.bg-afdc-dark-yellow {
    background-color: var(--afdc-dark-yellow);
}

.bg-afdc-blue-faded {
    background-color: var(--afdc-blue-faded);
}

.bg-afdc-red-faded {
    background-color: var(--afdc-red-faded);
}

.bg-afdc-teal-faded {
    background-color: var(--afdc-teal-faded);
}

.bg-afdc-purple-faded {
    background-color: var(--afdc-purple-faded);
}

.bg-afdc-yellow-faded {
    background-color: var(--afdc-yellow-faded);
}

.bg-afdc-green-faded {
    background-color: var(--afdc-green-faded);
}

.w-fit {
    width: fit-content;
}

.h-fit {
    height: fit-content;
}

.f-playfair {
    font-family: 'Playfair Display', serif;
}

.max-w-100 {
    max-width: 100%;
}

.my-6 {
    margin-top: 6rem !important;
    margin-bottom: 6rem !important;
}

.border-afdc-red {
    border-color: var(--afdc-red);
}

.border-afdc-blue {
    border-color: var(--afdc-blue);
}

.border-afdc-teal {
    border-color: var(--afdc-teal);
}

.border-afdc-dark-gray {
    border-color: var(--afdc-dark-gray) !important;
}

@media (min-width: 992px) {
    .w-lg-25 {
        width: 25% !important;
    }
    .w-lg-auto {
        width: auto !important;
    }
}
/*********************
 *** Page-specific ***
 **********************/

body {
    width: 100%;
    overflow-x: hidden;
}

nav .nav-buttons>button {
    min-width: 100px;
}

header {
    min-height: 500px;
    position: relative;
    isolation: isolate;
    margin-bottom: 5rem;
}

header h1 {
    z-index: 1;
    isolation: isolate;
    padding-top: 325px;
}

header h1>.text::before {
    content: " ";
    width: 100%;
    height: 100%;
    display: block;
    position: absolute;
    z-index: -1;
    padding-left: 1000px;
    margin-left: -1000px;
    box-sizing: content-box;
    margin-top: -1rem;
}

header h1.afdc-header-blue>.text::before {
    background-color: rgba(var(--afdc-blue-rgb), 0.6);
}

header h1.afdc-header-red>.text::before {
    background-color: rgba(var(--afdc-red-rgb), 0.6);
}

header h1 {
    font-size: 60px;
    text-shadow: 0px 1px 8px rgba(0, 0, 0, 0.75);
}

.btn {
    transition: filter 200ms;
}

.btn:not(.btn-subtle):hover {
    filter: brightness(1.1);
}

.btn-subtle:hover {
    filter: brightness(0.95);
}

header>.header-buttons {
    transform: translateY(45px);
}

header>.header-buttons button {
    transition: transform 200ms, box-shadow 200ms;
    box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.25);
}

header>.header-buttons button:hover {
    transform: scale(105%);
    box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);
}

.home-paragraph>h2 {
    font-size: 40px;
}

.home-paragraph>p {
    font-size: 20px;
}

.home-paragraph a {
    text-decoration: none;
}

.home-paragraph a:hover {
    text-decoration: underline;
}

.home-icon-links>a {
    text-align: center;
    color: black;
    min-width: 125px;
}

.home-icon-links>a>p {
    margin-top: 1rem;
}

/* 
=========================
This is for the login 
and sign up modal popup on 
the browse courses page
==========================
*/
a#feedback_send_button {
    float: none;
    width: 60px;
    background: #2D3E50;
    padding: 0px;
    color: #fff;
}

.address_editor {
    display: block;
    /*min-width: 640px;*/
    font-size: 85%;
}

.address_editor .address {
    display: inline-block;
    width: 45%;
    float: left;
}

.address_editor .address_controls {
    width: 40%;
    float: left;
    display: inline-block;
}

label.login_modal {
    display:block;
}

label:after {
    content:"\a";
    white-space: pre;
}
input.login_modal_el{
    margin-bottom:10px;
    height:30px;
}

.sign_in_modal{
background-color: #fff !important;
border-radius:5px;
	min-height: 540px;
}

a.sign_in_modal_close[style]:hover{
color:red !important;
}

.sign_up_modal{
	background-color:black;
	border-radius: 5px;
	min-height: 540px;
}

.dialog_body
{
	padding: 20px;
	overflow-Y: auto; 
}

.dialog_body label
{
	font-weight: 400;
}

#sign_up_panel label
{
	white-space: nowrap;
}

#login_heading {
    background: #d3dde7;
    margin-top: -20px;
    height: 80px;
    margin-bottom: 80px;
    margin-left: -20px;
    margin-right: -20px;
}

#login_face {
    width: 120px;
    margin: 0 auto;
    display: block;
    padding-top: 5px;
}

#sign_in_modal_form {
    width: 270px;
    margin: 0 auto;
}

button#sign_up,
input#sign_in_button 
{
    display: block;
    width: 100%;
    margin: 5px 0px;
}

button#sign_up
{
	margin-bottom: 15px;
}

.dialog
{
  transform: translate3d(0, 0, 0);
  backface-visibility: hidden;
  perspective: 1000px;
}
.dialog.error
{
  animation: shake 0.82s cubic-bezier(.36,.07,.19,.97) both;
}

@keyframes shake {
  10%, 90% {
    transform: translate3d(-1px, 0, 0);
  }
  
  20%, 80% {
    transform: translate3d(2px, 0, 0);
  }

  30%, 50%, 70% {
    transform: translate3d(-4px, 0, 0);
  }

  40%, 60% {
    transform: translate3d(4px, 0, 0);
  }
}

/* Calendar */

#fullcalendar {
	border: none;
	border-collapse: collapse;
	width: 100%;
}

#fullcalendar table {
	border-collapse: collapse;
	border: solid 1px #666;
	width: 100%;
}

#fullcalendar th {
	text-align: center;
	border: none;
	background-color: #325E9E;
	color: #fff;
	height: 25px;
}

#fullcalendar td {
	border: solid 1px #666;
	height: 60px;
	line-height: 100%;
	padding: 1px;
	vertical-align: top;
	background: white;
}

#fullcalendar td.month {
	border: solid 1px #FFF;
	margin-bottom: 5px;
	height: 33px;
	text-align: center;
	vertical-align: middle;
	background: #FFF;
	font-weight: bold;
	color:#333333;
	font-size: 20px;
}

#fullcalendar td.empty {
	background-color: #eee;
	border: none;
	border-top: solid 1px #666;
}

#fullcalendar .small {
	font-size: 8pt;
}

#fullcalendar .time {
	font-size: 11px;
	font-family: Arial, Helvetica, sans-serif;
	font-weight: bold;
}


/* Small-medium breakpoint */
@media only screen and (max-width: 1000px) {

    /* Remove line breaks on smaller screens */
    .home-paragraph>p>br {
        display: none;
    }
}

/* Small breakpoint */
@media only screen and (max-width: 576px) {
    header h1>.text::before {
        padding-right: 1000px;
    }
}

/* Event Filter Styles */
.filter-btn {
    min-width: 80px;
    text-align: center;
    padding: 0.5rem 0.75rem;
    border-radius: 8px;
    transition: all 0.2s ease;
    font-size: 0.875rem;
    line-height: 1.2;
}

.filter-btn i {
    font-size: 1.2rem;
    margin-bottom: 0.25rem;
    display: block;
}

.filter-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}

.filter-btn.active {
    background-color: var(--afdc-blue);
    color: white;
    border-color: var(--afdc-blue);
}

.filter-btn.active:hover {
    background-color: var(--afdc-blue);
    color: white;
    border-color: var(--afdc-blue);
}



/* Responsive filter layout */
@media (max-width: 768px) {
    .filter-btn {
        min-width: 70px;
        padding: 0.4rem 0.6rem;
        font-size: 0.8rem;
    }
    
    .filter-btn i {
        font-size: 1rem;
    }
}

@media (max-width: 576px) {
    .filter-btn {
        min-width: 60px;
        padding: 0.3rem 0.5rem;
        font-size: 0.75rem;
    }
    
    .filter-btn i {
        font-size: 0.9rem;
    }
}