.soe-bus-case-study {
    .soe-eh {
        border-bottom: 1px solid #DCDDDE;
    }
    
    .soe-callout {
        border-radius: 0 !important;
        box-shadow: none;
        .soe-callout-content {
            padding: 1.6rem 0;
            text-align:left;
            h3 {
                font-family: 'Lora', serif;
                font-size: var(--Heading-L);
                text-transform: none;
                font-weight: 400;
            }
        }
        span.soe-callout-tags {
            text-align: left;
            margin: 0 0 1rem 0;
            span {
                background-color: var(--silver) !important;
                padding: 0.5rem 1rem;
                border-radius: 1.6rem;
                font-weight: 600;
                font-size: 1.5rem;
                color: var(--green);
                &:hover {
                    text-decoration:none !important;
                }
            }
        }
    }
    .Video.col-sm-6 {
        width: 100%;
    }
    .Video .soe-callout {
        height: inherit !important;
        span.soe-callout-tags {
            text-align: left;
            margin: 0 0 1rem 0;
            @media screen and (min-width:768px) {
                display: block;
                position: absolute;
                top:0;
                left:0;
                width: 100%;
                padding: 1.6rem 1.6rem 4.8rem;
                background: linear-gradient(0deg, rgba(0, 0, 0, 0.00) 25.96%, rgba(0, 0, 0, 0.40) 59.42%, rgba(0, 0, 0, 0.40) 100%);
            }
            
            span {
                background-color: var(--silver) !important;
                padding: 0.5rem 1rem;
                border-radius: 1.6rem;
                font-weight: 600;
                font-size: 1.5rem;
                color: var(--green);
                &:hover {
                    text-decoration:none !important;
                }
            }
        }
        .soe-callout-content {
            width: 100%;
            padding: 2.5rem 0;
            @media screen and (min-width:768px) {
                color: white;
                position:absolute;
                bottom:0;
                padding: 4.8rem 1.6rem 1.6rem 1.6rem;
                background: linear-gradient(180deg, rgba(0, 0, 0, 0.00) 0%, rgba(0, 0, 0, 0.70) 50.48%, rgba(0, 0, 0, 0.70) 100%);
            }
            p:last-child {
                @media screen and (min-width:768px) {
                    visibility:hidden;
                    height: 0px;
                    padding:0;
                    margin:0;
                }        
            }
        }
    }
}
.callout-icon {
    max-width: 12rem;
    padding-bottom: 2.5rem;
    @media screen and (min-width: 768px) {
        max-width: 100%;
        padding-bottom: 0;
    }
}
.carousel {
	margin-right: -2rem;
	@media screen and (min-width: 768px) {
		margin-right: 0;
	}
}

.carousel-contents {
	display: flex;
	flex-direction: row;
	gap: 1.5rem;
	width: 100%;
	overflow-x: scroll;
	overflow-y: visible;
	padding: 0.5rem 0.5rem;
	margin-left: -0.5rem;
	@media screen and (min-width: 768px) {
		gap: 3rem;
		overflow-x: visible;
		flex-wrap: wrap;
		width: 100%;
	}
}

.carousel-card {
	width: 100%;
	min-width: 21.9rem;
	height: 100%;
	height: 35.5rem;
	background-color: var(--silver);
	background-size: cover;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: flex-start;
	position: relative;
	&.carousel-card-article {
		justify-content: flex-end;
	}
	@media screen and (min-width: 768px) {
		min-width: calc((100% / 3 - 3rem) + (3rem/3));
		width: calc((100% / 3 - 3rem) + (3rem/3));
		
	}
	@media screen and (min-width: 992px) {
		max-width: calc((100% / 3 - 3rem) + (3rem/3));
		height: 42rem;
	}
	.carousel-card-text {
		padding: 1.5rem;
		display: flex;
		flex-direction: column;
		gap: 0.5rem;
		color: var(--text);
	}
	.carousel-heading {
		font-family: 'Lora', serif;
		font-size: 2.8rem;
		line-height: 120%;
	}

	.carousel-top {
		position: relative;
		display: flex;
        align-items: center;
        justify-content: center;
        height: 100%;
        overflow: hidden;
		img {
			max-width: 100%;
			height: auto;
		}
	}

	.carousel-bottom {
		overflow: hidden;
		width: 100%;
		min-height: 5.5rem;
		position: relative;
		img {
			width: 100%;
			height: auto;
		}
	}

	img.carousel-button {
		border: 1px solid var(--green);
		border-radius: 100%;
		background-color: white;
		width: 4rem;
		height: 4rem;
		right: 1.5rem;
		bottom: 1.5rem;
		position: absolute
	}

	a::before {
		content: '';
		position: absolute;
		inset: 0;
		z-index: 1;
		cursor: pointer;
	}
	
	a:hover::before, a:focus::before {
		outline: 5px auto var(--sky);
		outline: 5px auto -webkit-focus-ring-color;
		outline-offset: 2px;
	}

	a:focus, a:hover {
		outline: none;
		text-decoration: none;
	}


	&.dark {
		.carousel-card-text {
			color: white;
		}
	}
}
.half-callout {
    border: 1px solid #D8D8D8;
    .half-callout-content {
        padding: 1.5rem;
    }
}
.homepage-carousel {
      position: relative;
      width: 100%;
      overflow: hidden;
    .carousel-slide {
        position: absolute;
        width: 100%;
        left: 0; 
        top: 0;
        opacity: 0;
        animation: carouselAni 16s infinite;
        transition: opacity 0.5s;
        img {
            display:block;
            width: 100%;
            height: auto;
            object-fit: cover;
        }
    }
}

/* Animating the slides */
.carousel-slide:nth-child(1) { animation-delay: 0s; position:relative;  }
.carousel-slide:nth-child(2) { animation-delay: 4s; }
.carousel-slide:nth-child(3) { animation-delay: 8s; }
.carousel-slide:nth-child(4) { animation-delay: 12s; }

@keyframes carouselAni {
  0%    { opacity: 0; }
  5%    { opacity: 1; }
  25%   { opacity: 1; }
  30%   { opacity: 0; }
  100%  { opacity: 0; }
}
ul.icon-list {
    list-style: none;
    margin: 1rem 0;
    padding: 0;
    li {
        display: flex;
        gap: 1rem;
        padding-bottom: 1rem;
        .icon-list-img {
            max-width: 6.4rem;
            height: auto;
        }
    }
}

ul.icon-list.full-width {
    display: flex;
    gap: 1rem;
    flex-direction: row;
    flex-wrap: wrap;
    width: 100%;
    li {
        width: 100%;
        padding-bottom: 0;
        .icon-list-img {
            max-width: 4rem;
            height: auto;
        }

        @media screen and (min-width: 768px) {
            width: calc(50% - 0.5rem);
        }
    }
}

.half-callout {
    border: 1px solid #D8D8D8;
    .half-callout-content {
        padding: 1.5rem;
    }
}
#open-menu {
	background: none;
	border: none;
}

.menu {
  position: fixed;
  top: 0; 
  left: 0;
  width: 100%;
  height: 100vh;
  background: var(--green);
  color: white;
  display: none;
  flex-direction: column;
  padding: 2rem 1.5rem 3rem 1.5rem;
  z-index: 1000;
  .menu-screen-top {
	display: flex;
	width: 100%;
	justify-content: flex-end;
  }

  hr {
		border-top: 1px solid #ffffff;
		margin: 0;
	}
}

.menu[aria-hidden="false"] {
  display: flex;
}

.menu-screen {
  display: none;
  flex-direction: column;
  height: 100%;
  width: 100%;
}

.menu-screen.active {
  display: flex;
}

.menu ul {
  list-style: none;
  padding: 0;
  margin-top: 2rem;
}

.menu li {
  margin-bottom: 1.5rem;
}

.menu-item-section-head {
	font-size: 2rem;
	font-family: 'Montserrat', sans-serif;
	font-weight: 700;
	padding-bottom: 1.5rem;
	border-bottom: 1px solid white;
	margin-bottom: 1.5rem;
	display: flex;
	width: 100%;
	justify-content: space-between;
}

.menu-item-large {
	font-size: 2rem;
	font-family: 'Montserrat', sans-serif;
	font-weight: 600;
	padding: 1rem 0;
	margin-bottom: 1rem;
	width: 100%;
	display: block;
}

.menu-item-small {
	font-size: 1.7rem;
	font-family: 'Montserrat', sans-serif;
	font-weight: 500;
	padding: 1rem 0;
	margin-bottom: 0.5rem;
	width: 100%;
	display: block;
}

.has-children {
	background: none;
	border: none;
	display: flex;
	width: 100%;
	justify-content: space-between;
}

.close-menu, .back-btn {
  background: none;
  border: none;
  font-size: 1.5rem;
  color: white;
  align-self: flex-start;
  width: auto;
  margin-bottom: 2.5rem;
}

.mobile-menu {
	display: none;
	background-color: var(--green);
	color: white;
	padding: 2rem 1.5rem 3rem 1.5rem;
	height: 100%;
	width: 100%;
	position: fixed;
	top: 0;
	left: 0;
	a {
		color: white;
	}
	button {
		background: none;
		border: none;
	}

	.mobile-menu-top {
		width: 100%;
		display: flex;
		justify-content: flex-end;
		.mobile-menu-close {
			padding: 1rem;
		}
	}

	ul {
		list-style-type: none;
		padding: 0;
		margin: 0;
	}

	.menu-item-section-head {
		font-size: 2rem;
		font-family: 'Montserrat', sans-serif;
		font-weight: 700;
		padding-bottom: 1.5rem;
		border-bottom: 1px solid white;
		margin-bottom: 1.5rem;
	}

	.menu-item-parent{
		display: flex;
		width: 100%;
		justify-content: space-between;
	}
}


.site-search {
	position: relative;

	label {
		position: absolute;
		top: 1rem;
		left: 1.5rem;
		color: white;
		font-size: 2rem;
		font-weight: 400;
		transition: all 0.2s ease-in-out;
	}

	input#search-input {
		background: none;
		border: none;
		border: 1px solid white;
		min-height: 4.8rem;
		padding: 1rem 1.5rem;
		height: auto;
		color: white;
		font-size: 2rem;
		font-weight: 400;
	}

	button.soe-search-btn {
		background: none;
		border: none;
		position: absolute;
		top: 1rem;
		right: 1.5rem;
	}


	/** if active/focused **/
	input#search-input:focus ~ label, input#search-input:valid ~ label{
		font-size: 1.4rem;
	}

	input#search-input:focus ~ .soe-search-btn, input#search-input:valid ~ .soe-search-btn{
		top: 2.2rem;
	}

	input#search-input:focus, input#search-input:valid {
		padding-top: 3rem;
	}
}
.soe-tag-btn {
    padding: 1.6rem 0;
}