@charset "utf-8";
/* CSS Document */
/*-- carousel container styles / function --*/

#postcontent .card-carousel {
	width: 100%;
	display: flex;
	flex-direction: row;
	justify-content: center;
	column-gap: 40px;
	row-gap: 40px;
	margin: 80px 0;
	position: relative; 
	height: min-content;
}

#postcontent .card-carousel::-webkit-scrollbar {
  display: none; /* Chrome, Safari, Opera */
}

#postcontent .card-carousel .cards {
	display: flex;
	flex-direction: row;
	column-gap: 60px;
	align-items: stretch;
	position: relative;
	padding: 80px 0;
	overflow-x: scroll;
    scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	/* Optional: Hide scrollbar */
	-ms-overflow-style: none; /* IE and Edge */
	scrollbar-width: none; /* Firefox */
	-webkit-overflow-scrolling: touch;
	scroll-marker-group: after;
	anchor-name: --my-carousel;
	width: 100vw;
	padding-left: 50vw;
    padding-right: 50vw;
    scroll-padding-left: 30vw;
    scroll-padding-right: 30vw;
}

#postcontent .card-carousel .cards .card {
	flex: 0 0 100%;
	width: 100%;
	height: 100%;
	min-width: 480px;
	max-width: 480px;
	z-index: 1;
	scroll-snap-align: center;
	container-type: scroll-state;
	container-name:scroll-cards;
	opacity: 1;
	filter: grayscale(0) blur(0px);

@supports (container-type: scroll-state) {
		  > * {transition: filter .5s ease;
			  @container not scroll-state(snapped: x) {filter: grayscale(1) blur(3px);}}}}

/* --- Fallback scroll buttons - for Firefox, Safari etc --- */

#postcontent .card-carousel .scroll-buttons {
	position: absolute;
	display: flex; 
	flex-direction: column;
	align-items: center;
	row-gap: 30px;
	left: calc(50% + 270px);
	top: 160px;
	z-index: 2;	
}

#postcontent .card-carousel .scroll-buttons button {
	background-color: var(--brand-grey);
	border: none;
	border-radius: 50%;
	cursor: pointer;
	display: flex;
	height: 60px;
	width: 60px;
	justify-content: center;
	align-items: center;
	transition: all .7s ease;
	z-index: 2;
}

#postcontent .card-carousel .scroll-buttons button:after {
	content: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjYiIGhlaWdodD0iMjYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTE2LjQ3NCAyMS4yMS03Ljg5NS03Ljg5NCA3Ljg5NS03Ljg5NSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjwvc3ZnPg==);
	display: inline-block;
	padding-right: 2px;
	padding-top: 2px;
	transition: all .7s ease;
	scale: 1;
}

#postcontent .card-carousel .scroll-buttons button#right:after {
	transform: rotate(180deg);
}

#postcontent .card-carousel .scroll-buttons button:hover,
#postcontent .card-carousel .scroll-buttons button:focus {
	opacity: 1;
	background-color: var(--brandGreen);
}

#postcontent .card-carousel .scroll-buttons button.disabled {
	opacity: 0.6;
	background-color: var(--grey-4-tint-2);
	cursor: unset;
	pointer-events: none; /* ensures it’s not clickable */
}

#postcontent .card-carousel .scroll-buttons button:hover:after,
#postcontent .card-carousel .scroll-buttons button:focus:after,
#postcontent .card-carousel .scroll-buttons button.disabled:after {
	scale: 0.7;
}

/* --- Native scroll buttons (progressive enhancement) --- */
@supports (selector(::scroll-button(*))) {
	/* Hide the fallback dots in supporting browsers */
	#postcontent .card-carousel .scroll-buttons {
		display: none;
	}	
	
	#postcontent .card-carousel .cards::scroll-button(*) {
		position: absolute;
		position-anchor: --my-carousel;
		align-items: center;
		background-color: var(--brand-grey);
		border: none;
		border-radius: 50%;
		cursor: pointer;
		display: flex;
		height: 60px;
		width: 60px;
		justify-content: center;
		transition: all .7s ease;
		z-index: 2;
		left: calc(anchor(left) + 50vw + 270px);
	}

	#postcontent .card-carousel .cards::scroll-button(left) {
		content:"";
		background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjYiIGhlaWdodD0iMjYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTE2LjQ3NCAyMS4yMS03Ljg5NS03Ljg5NCA3Ljg5NS03Ljg5NSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjwvc3ZnPg==);
		background-size: 26px;
		background-repeat: no-repeat;
		background-position: 46% center;
		display: inline-block;
		transition: all .7s ease;
		top: calc(anchor(top) + 160px);
	}

	#postcontent .card-carousel .cards::scroll-button(right) {
		content: "";
		background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjYiIGhlaWdodD0iMjYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTE2LjQ3NCAyMS4yMS03Ljg5NS03Ljg5NCA3Ljg5NS03Ljg5NSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjwvc3ZnPg==);
		background-size: 26px;
		background-repeat: no-repeat;
		background-position: 46% center;
		transform: rotate(180deg);
		transition: all .7s ease;
		top: calc(anchor(top) + 240px);
	}

	#postcontent .card-carousel .cards::scroll-button(*):hover,
	#postcontent .card-carousel .cards::scroll-button(*):focus {
		content: "";
		background-size: 21px;
		opacity: 1;
		background-color: var(--brandGreen);
	}

	#postcontent .card-carousel .cards::scroll-button(*):disabled {
		content: "";
		background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjYiIGhlaWdodD0iMjYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTE2LjQ3NCAyMS4yMS03Ljg5NS03Ljg5NCA3Ljg5NS03Ljg5NSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjwvc3ZnPg==);
		background-size: 21px;
		background-repeat: no-repeat;
		background-position: 46% center;
		opacity: 0.6;
		background-color: var(--grey-4-tint-2);
		cursor: unset;
		pointer-events: none; /* ensures it’s not clickable */
	}
}

/* --- Fallback dots - for Firefox, Safari etc --- */
#postcontent .card-carousel .carousel-dots {
	position: absolute;
	width: 100%;
    bottom: 0;
    display: flex;
	justify-content: center;
    gap: 20px;
}

#postcontent .card-carousel .carousel-dots button {
	width: 10px;
	height: 10px;
	border: none;
	background: #c5cccc;
    padding: 5px;
    border-radius: 10px;
    cursor: pointer;
    transition: 1s;
}

#postcontent .card-carousel .carousel-dots button.active {
	background: var(--brandGreen);
}

/* --- Native scroll markers (progressive enhancement) --- */
@supports (selector(::scroll-marker-group)) {
  /* Hide the fallback dots in supporting browsers */
  #postcontent .card-carousel .carousel-dots {
    display: none;
  }

#postcontent .card-carousel .cards::scroll-marker-group {
	position: absolute;
	position-anchor: --my-carousel;
	top: calc(anchor(bottom) - 10px);
	justify-self: anchor-center;
	display: flex;
	justify-content: center;
	gap: 20px;
}

#postcontent .card-carousel .cards .card::scroll-marker {
	content: "";
	display: inline;
    background: #c5cccc;
    padding: 5px;
    border-radius: 10px;
    cursor: pointer;
    transition: 1s;
}

#postcontent .card-carousel .cards .card::scroll-marker:target-current {
	background: var(--brandGreen) !important;
	}
}

/*-- card styles --*/

#postcontent .card-carousel .cards .card .article {
	border: 1px;
    border-radius: 8px;
    box-shadow: 0px 10px 30px 5px #0000001A;
	height: 100%;
}

#postcontent .card-carousel .cards .card .article .picture {
	aspect-ratio: 5/3;
	width: 100%;
	transition: all .4s ease-in-out;
	overflow: hidden;
	position: relative;
}

#postcontent .card-carousel .cards .card .article .picture img {
	object-fit: cover;
	height: auto !important;
	width: 100%;
	max-width: 100%;
    aspect-ratio: 5/3;
	border-radius: 8px 8px 0 0;
    transition: transform .4s ease-in-out;
    position: absolute;
	z-index: 2;
}

#postcontent .card-carousel .cards .card .article .picture img.disabled {
	opacity: 0 !important;
	z-index: 3;
	transition: opacity .5s ease-in-out;
}

#postcontent .card-carousel .cards .card .article .content {
	padding: 30px;
	display: flex;
	flex-direction: column;
	row-gap: 20px;
	background: #ffffff;
}

#postcontent .card-carousel .cards .card .article .content h3 {
	color: var(--brand-grey);
    font-family: Open Sans, open-sans, sans-serif, sans-serif;
    font-style: normal;
	font-weight: 600;
    font-size: 24px;
    line-height: 28px;
	margin: 0 !important;
}

#postcontent .card-carousel .cards .card .article .content p {
	color: var(--text-grey);
    font-family: Open Sans;
    font-size: 1rem;
    font-weight: 400;
    line-height: 26px;
    letter-spacing: 0em;
    text-align: left;
    height: min-content;
    margin: 0 !important;
    padding: 0;
}

#postcontent .card-carousel .cards .card .article .content p span {
    font-weight: 600;
}

/*-- header styles --*/

#postcontent .card-carousel .header {
	display: flex;
	flex-direction: column;
	justify-content: center;
	flex: 1 0 30%;
	width: 30%;
    max-width: 480px;
    padding-right: 20px;
	position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
	z-index: 1;
	background: transparent;
}

#postcontent .card-carousel .header h2 {
    font-family: "PT Serif", serif;
    font-size: 40px;
    font-weight: 400;
    line-height: 52px;
    margin: auto 0;
	text-align: left;
	opacity: 1 !important;
	z-index: 1;
}

@media only screen and (max-width: 1024px) {
	#postcontent .card-carousel {
        flex-direction: column;
        width: 100%;
        margin: 80px auto;
    }
	
	#postcontent .card-carousel .header {
		position: unset;
		width: 100%;
		flex: 1 0 100%;
		max-width: none;
		padding: 0;
		background: none;
	}
	
	#postcontent .card-carousel .header h2 {
		font-size: 24px;
		line-height: 36px;
	}
	
	#postcontent .card-carousel .cards {
		padding: 0 0 40px 0;
		scroll-padding: 0px;
		column-gap: 40px;
		width: 100%;
	}
	
	#postcontent .card-carousel .cards .card {
		width: 100%;
		flex: 1 0 100%;
		max-width: 100%;
		min-width: 100%;
		height: auto;
		z-index: 2;
	}
	
	#postcontent .card-carousel .cards .card .article {
		border: 0;
		border-radius: unset;
		box-shadow: 0px 0px;
		height: auto;
	}
	
	#postcontent .card-carousel .cards .card .article .picture img {
		border-radius: unset;
	}
	
	#postcontent .card-carousel .cards .card .article .content {
		padding: 20px 0 0 0;
	}
	
	#postcontent .card-carousel .cards .card .article .content h3 {
		font-weight: 400;
	}
	
	/* --- Fallback scroll buttons - for Firefox, Safari etc --- */
	
	#postcontent .card-carousel .scroll-buttons {
		flex-direction: row;
		justify-content: space-between;
		width: calc(100% + 60px);
		top: 50%;
		left: -30px;
		right: -30px;
	}
	
	/* --- Native scroll buttons (progressive enhancement) --- */
	
	#postcontent .card-carousel .cards::scroll-button(*) {
		top: calc(anchor(top) + 50%);
	}
	
	#postcontent .card-carousel .cards::scroll-button(left) {
		left: calc(anchor(left) - 30px);
	}
	
	#postcontent .card-carousel .cards::scroll-button(right) {
		left: unset;
		right: calc(anchor(right) - 30px);
	}
	
}

@media only screen and (max-width: 600px) {
	
	/* --- Fallback scroll buttons - for Firefox, Safari etc --- */
	#postcontent .card-carousel .scroll-buttons {
		display: none !important;
	}
	
	/* Native scroll buttons (progressive enhancement) */
	@supports (selector(::scroll-button(*))) {
		#postcontent .card-carousel .cards::scroll-button(*) {
			display: none !important;
			content: none !important;
		}
	}
}