.itinerary-header {
	display: flex;
}
.itinerary-header-left {
	width: 50%;
	position: relative;
	display: flex;
}
.itinerary-header-left img {
	object-fit: cover;
}
.return-link {
	position: absolute;
	top: 30px;
	left: 30px;
}
.return-link a {
    border-radius: 5px;
    display: block;
    padding: 13px 16px;
    color: #fff;
    text-decoration: none;
    background-color: #f77700;
    transition: 0.3s ease background-color;
}
.return-link a:hover {
	background-color: #ed4999;
}
.itinerary-header-right {
	width: 50%;
	padding: 80px 35px;
}
.itinerary-header-right h1 {
	margin-top: 20px;
}
.special-text {
	letter-spacing: 1px;
	color: #000;
	font-family: "Museo Sans 900"!important;
    font-size: 14px!important;
    text-transform: uppercase;
}
.itinerary-current {
	padding:15px 30px 15px 30px;
	background: linear-gradient(-45deg, #2BB673, #00C0FF, #BF0C8E, #ed4999, #f77700);
	background-size: 500% 500%;
	/*will-change: background-position;
	animation: gradient-anim 16s ease infinite;*/ 
	color: #fff;
	display: flex;
	align-items: center;
	margin:20px 0px;
}
.itinerary-current-left {
	width: 35%;
	text-align: left;
}
.itinerary-current-middle {
	width: 30%;
	text-align: center;
}
.itinerary-controls {
	display: flex;
	justify-content: center;
	align-items: center;
}
.itinerary-prev {
	
}
.itinerary-next {
	
}
.arrow-prev, .arrow-next {
	text-align: center;
	position: relative;
    float: left;
    height: 35px;
    width: 35px;
    margin:0 5px;
    display: block;
    cursor: pointer;
    border: 1px solid #fff;
    border-radius: 50%;
    color:#fff;
    opacity:1;
    transition: ease opacity 0.4s;
}
.arrow-prev:hover, .arrow-next:hover {
	opacity:0.5;
}
.arrow-prev .fas {
	font-size: 15px;
    left: 12px;
    top: 8px;
    position:absolute;
}
.arrow-next .fas {
	font-size: 15px;
    left: 12px;
    top: 9px;
    position: absolute;
}
.itinerary-total {
	letter-spacing: 3px;
}
.itinerary-current-right {
	width: 35%;
	text-align: right;
}
#current-group-subtitle {
	color: #fff;
	margin-top: 10px;
}
#current-group-title {
	font-family: "ProspectusL", sans-serif, Arial;
	font-weight: bold;
	font-size: 36px;
}
.itinerary-body {
	display: flex;
}
.itinerary-groups {
	width: 50%;
	position: relative;
	scroll-snap-type: y mandatory;
	scroll-behavior: smooth;
	max-height: 550px;
	overflow-y: scroll;
}
.itinerary-map {
	min-height: 450px;
    height: 100%;
	position: relative;
	
}
@media only screen and (max-width: 800px) {
	.itinerary-header, .itinerary-body, .itinerary-current {
		flex-wrap: wrap;
	}
	.itinerary-header-left, .itinerary-header-right, .itinerary-groups, .itinerary-map, .itinerary-current-left, .itinerary-current-middle, .itinerary-current-right {
		width: 100%;
	}
	.itinerary-header-right {
		padding: 30px 30px;
	}
	.itinerary-current-right  {
		order: 1;
		text-align: left;
	}
	.itinerary-current-left {
		order: 2;
	}
	.itinerary-current-middle {
		order: 3;
		margin-top: 15px;
	}
}

.itinerary-stop {
	background-color: #f6f6f6;
	scroll-snap-align: start;
}
.stop-heading {
	position: relative;
}
.stop-image {
	position: absolute;
	top:0;
	left:0;
	width: 100%;
	height: 100%;
	display: flex;
}
.stop-image img {
	width: 100%;
	object-fit: cover;
}
.stop-title {
	position: relative;
	display: flex;
	justify-content: flex-end;
	align-items: flex-end;
	text-align: right;
	color: #fff;
	padding: 30px 30px 30px 30px;
	min-height: 380px;
	background-image: url(https://tourismburnaby.com/wp-content/uploads/2019/05/triangle-pink-bottom-right.svg);
	background-size: contain;
	background-position: bottom right;
	background-repeat: no-repeat;
}
.stop-title-content {
	width: 50%;
}
.circle-number {
	margin-left: auto;
    line-height: 0.9;
    border-radius: 50%;
    width: 36px;
    height: 36px;
    padding: 8px;
    border: 2px solid #fff;
    text-align: center;
    font-size: 18px;
}
.stop-title h3 {
	font-size: 32px;
	line-height: 1.1!important;
	margin:0;
	margin-top: 15px;
	color: #fff;
}
.stop-desc {
	font-size: 15px;
	padding: 40px;
}

#map-element {
	width: 100%;
    height: 400px;
    border: 0;
    margin: 0;
    position: sticky!important;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
	max-height: 100dvh;
}
#map-element img {
   max-width: inherit !important;
}
.gm-style-iw {
	padding: 10px 20px 20px 20px!important;
	border-radius: 0px!important;
}
.gm-style-iw-d p {
	margin-bottom: 10px;
}
.directions-link {
	display: inline-block;
	padding: 7px 14px;
	background-color: #f77700;
	color: #fff!important;
	font-weight: bold;
	text-decoration: none!important;
	text-transform: uppercase;
}
.directions-link:hover {
	background-color: #ed4999;
}

@keyframes gradient-anim {
	0% {
		background-position: 0% 50%;
	}
	50% {
		background-position: 100% 50%;
	}
	100% {
		background-position: 0% 50%;
	}
}

/* NEW */

.sv-day-toggle {
    padding: 20px;
    border-top: 1px solid black;
    border-bottom: 1px solid black;
	font-family: "ProspectusL Bld";
	font-size: 30px;
	line-height: 28px;
}

.sv-day-content {
    padding: 20px;
    background: #f7f5f5;
}

.sv-day {
    max-height: fit-content;
    transition: 250ms ease-out;

    &.closed{

        max-height: 69px;
        overflow: hidden;
    }
}

.sv-time {
    padding-left: 80px;
    padding-bottom: 40px;
    border-bottom: 1px solid black;
	padding-right: 80px;
}

.sv-time-toggle {
	font-family: "MuseoSans900";
	font-size: 20px;
	padding-bottom: 20px;
	padding-top: 20px;
}

.sv-time-description {
	font-family: "MuseoSans300";
	font-size: 18px;
	
}

.sv-image {
	padding-top:25px;
}

.sv-image:before {
	content: attr(data-stopnum);
    position: absolute;
    left: 20px;
    padding: 12px 18px;
    background: var(--awb-color4);
    color: #ffffff;
    border-radius: 50%;
	font-family: "MuseoSans900";
	font-size: 20px;
}

.sv-day .sv-time-toggle:after, .sv-day-toggle:after {
	content: "-";
    position: absolute;
    right: 30px;
    border: 1px solid black;
    padding: 2px 8px;
    border-radius: 50%;
    font-size: 20px;
    font-family: "MuseoSans300";
    line-height: 22px;
}
.sv-day.closed .sv-day-toggle:after {
	content: "+";
	padding: 2px 6px;
}
.sv-time.closed .sv-time-toggle:after {
	content: "+";
	padding: 2px 6px;
}

.sv-day.closed .sv-time-toggle:before, .sv-day.closed .sv-time-toggle:after {
	position:relative;
}

.sv-time.closed .sv-time-content {
	display:none;
}

.sv-time:last-child{
    border-bottom: none;
}

.sv-stop {
	border-bottom: 1px solid #aaa;
    padding-bottom: 20px;
}

.sv-stop:last-child {
	border-bottom: none;
	padding-bottom: 0px;
}

.fusion-layout-column:has(.itinerary-map) .fusion-column-wrapper, .fusion-layout-column:has(.itinerary-map) .fusion-text {
    position: relative;
    height: 100%;
}

/* ============================================================
   Circular map markers (Google Maps AdvancedMarkerElement)
   ============================================================ */

.sv-map-marker {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 1px solid #F8882A;
	background: #ffffff;
	color: #F8882A;
	font-family: "MuseoSans900", sans-serif;
	font-size: 16px;
	font-weight: 900;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease;

	/* Remove the default Google Maps teardrop shadow */
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
}

.sv-map-marker.active {
	background: #F8882A;
	color: #ffffff;
	border-color: #F8882A;
}


/* ============================================================
   .sv-image::before pseudo-element — stop number badge
   Default (inactive): white bg, orange text, orange border
   Active: orange bg, white text
   ============================================================ */

.sv-image {
	position: relative; /* ensure ::before positions correctly */
}

.sv-image::before {
	content: attr(data-stopnum);
	position: absolute;
	left: -60px;
	top: 20px; /* adjust to match your existing layout */
	width: 44px;
	height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #ffffff;
	color: #F8882A;
	border: 1px solid #F8882A;
	border-radius: 50%;
	font-family: "MuseoSans900", sans-serif;
	font-size: 20px;
	transition: background 0.2s ease, color 0.2s ease;
	box-sizing: border-box;
}

.sv-image.active::before {
	background: #F8882A;
	color: #ffffff;
	border-color: #F8882A;
}