@charset "utf-8";
/* CSS Document */

* {
    box-sizing: border-box;
}

/*-- 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;
	/* opacity: 1 !important; remember to remove */
	padding-top: 80px;
}

#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: 40px 0 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(0.7) blur(3px);}}
	
		> .article a {pointer-events: auto;
			@container not scroll-state(snapped: x) {pointer-events: none;}}
		
		> .article:has(a):hover .picture img {pointer-events: auto;
			@container not scroll-state(snapped: x) {pointer-events: none;}}
		
		> .article:hover .picture img {
			@container not scroll-state(snapped: x) {transform: scale(1) !important;}}
		
		> .article .picture img.still {opacity: 0 !important;
			@container not scroll-state(snapped: x) {opacity: 1 !important;}}
		
		> .article:hover .content h3 {
			@container not scroll-state(snapped: x) {color: var(--brand-grey) !important;}}
		
		> .article:has(a):hover .content a.more-link {
			@container not scroll-state(snapped: x) {color: var(--brand-grey) !important;}}
		
		> .article:hover .content a.more-link:after {
			@container not scroll-state(snapped: x) {margin-left: 8px !important;}}
	}}

/* --- 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: 0px;
    box-shadow: 0px 10px 30px 5px #0000001A;
	height: 100%;
	overflow: hidden;
	position: relative;
    z-index: 2;
	display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

#postcontent .card-carousel .cards .card .article a:not(.more-link) {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 3;
    text-decoration: none;
	background: none;
    cursor: pointer;
	z-index: 4;
}

#postcontent .card-carousel .cards .card .article .picture {
	aspect-ratio: 5/3;
	width: 100%;
	transition: all .4s ease-in-out;
	overflow: hidden;
	position: relative;
	background: var(--background-grey-4-tint-3);
	flex: 1 0 auto;
}

#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: 0px;
    transition: transform .4s ease-in-out;
	transition-delay: 0s !important;
    position: absolute;
	z-index: 2;
}

#postcontent .card-carousel .cards .card .article:has(a):hover .picture img {
    transform: scale(1.1);
	cursor: pointer;
}

#postcontent .card-carousel .cards .card .article .picture img.still {
	opacity: 0;
	z-index: 3;
	transition: opacity .2s ease-in, transform .4s ease-in-out;
}

#postcontent .card-carousel .cards .card .article .content {
	padding: 30px;
	display: flex;
	flex-direction: column;
	row-gap: 20px;
	background: #ffffff;
	flex: 1 0 auto;
	height: 100%;
}

#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;
	transition: color .4s;
}

#postcontent .card-carousel .cards .card .article:has(a):hover .content h3 {
    color: var(--brandGreen);
}

#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;
}

#postcontent .card-carousel .cards .card .article:has(a):hover .content a.more-link {
    color: var(--brandGreen);
}

#postcontent .card-carousel .cards .card .article:has(a):hover .content a.more-link:after {
    margin-left: 0.9375rem;
}

/*-- header styles --*/

#postcontent .card-carousel .header {
	display: flex;
	flex-direction: column;
	justify-content: center;
	row-gap: 20px;
	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:has(.cards.sml) .header {
    width: 33%;
}

#postcontent .card-carousel .header h2 {
    font-family: "PT Serif", serif;
    font-size: 40px;
    font-weight: 400;
    line-height: 52px;
    margin: 0;
	margin-bottom: 10px;
	text-align: left;
	opacity: 1 !important;
	z-index: 1;
}

#postcontent .card-carousel .header p {
	font-size: 16px;
    line-height: 26px;
    font-weight: 400;
	margin: 0;
	color: var(--brand-grey);
}

	/*-- promo card styles --*/

#postcontent .card-carousel .cards .card.promo {
	padding: 0px;
	
	@supports (container-type: scroll-state) {
		> .article:hover .content h3 {
			@container not scroll-state(snapped: x) {color: var(--white) !important;}}
		
		> .article:has(a):hover .content a.more-link {
			@container not scroll-state(snapped: x) {color: var(--white) !important;}}
	}}

#postcontent .card-carousel .cards .card.promo .article .picture {
	display: none;
}

#postcontent .card-carousel .cards .card.promo .article .content {
	background: var(--brand-grey) !important;
	height: 100%;
	height: -webkit-fill-available;
	justify-content: center;
	padding: 30px;
}

#postcontent .card-carousel .cards .card.promo .article .content h3 {
	font-family: "PT Serif", serif;
	font-size: 32px;
	font-weight: 400;
	line-height: 42px;
	color: #ffffff;
}

#postcontent .card-carousel .cards .card.promo .article .content a.more-link {
	color: #ffffff !important;
}

@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;
	}
	
	#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) + 25vh);
	}
	
	#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;
		}
	}
}

/* for alternate styles applied to desktops only ---*/
@media only screen and (min-width: 1025px) {
	
	/* so header is hidden behind cards, on desktop */
	#postcontent .card-carousel .cards .card:before {
		content: "";
		background: #ffffff;
		display: block;
		position: absolute;
		top: -30px;
		right: -70px;
		bottom: -30px;
		width: 80px;
		z-index: 1;
	}
	
	#postcontent .card-carousel .cards.sml.bg-alt .card:before {
		background: rgb(247, 248, 248);
	}

	/*-- large card styles --*/
	
	#postcontent .card-carousel .cards.lrg .card {
		
		@supports (container-type: scroll-state) {
			
			> .article .content p {opacity: 0 !important;
				@container scroll-state(snapped: x) {opacity: 1 !important;}}
			
			> .article .content p {max-height: 0px !important;
				@container scroll-state(snapped: x) {max-height: 300px !important;}}
			
			> .article:hover .content h3 {
				@container not scroll-state(snapped: x) {color: var(--white) !important;}}
	}}

	#postcontent .card-carousel .cards.lrg .card .article .picture,
	#postcontent .card-carousel .cards.lrg .card .article .picture img {
		aspect-ratio: 1 / 1.275;
		border-radius: 0px;
	}

	#postcontent .card-carousel .cards.lrg .card .article .picture:after {
		content: "";
		background: linear-gradient(180deg, var(--white) 0%, var(--brand-grey) 100%);
		mix-blend-mode: multiply;
		position: absolute;
		top: 0;
		left: 0;
		bottom: 0;
		right: 0;
		z-index: 2;
	}

	#postcontent .card-carousel .cards.lrg .card .article .content {
		position: absolute;
		top: 0;
		bottom: 0;
		left: 0;
		right: 0;
		z-index: 2;
		background: transparent;
		justify-content: end;
		transition: padding-bottom .4s;
	}

	#postcontent .card-carousel .cards.lrg .card .article .content h3 {
		color: var(--white);
        font-family: PT Serif;
        font-size: 24px;
        font-weight: 400;
        line-height: 32px;
        letter-spacing: 0em;
        text-align: left;
		transition: color .4s ease;
	}
	
	#postcontent .card-carousel .cards.lrg .card .article .content p {
		color: var(--white);
		transition: opacity .7s cubic-bezier(0.25, 0.46, 0.45, 0.94), max-height .4s cubic-bezier(0.09, 0.1, 0.3, 1);;
	}
	
	/*-- small card styles --*/
	
	#postcontent .card-carousel .cards.sml {
		scroll-padding-left: 40vw;
		scroll-padding-right: 40vw;
	}
	
	#postcontent .card-carousel .cards.sml .card {
		min-width: 300px;
		max-width: 300px;
	}
	
	#postcontent .card-carousel .cards.sml .card,
	#postcontent .card-carousel .cards.sml .card .article .content {
		background: var(--background-grey-4-tint-3);
	}
	
	#postcontent .card-carousel .cards.sml.bg-alt .card,
	#postcontent .card-carousel .cards.sml.bg-alt .card .article .picture,
	#postcontent .card-carousel .cards.sml.bg-alt .card .article .content {
		background: #ffffff;
	}
	
	#postcontent .card-carousel .cards.sml .card .article .picture {
		aspect-ratio: 1 / 1;
		padding: 30px 30px 0px 30px;
	}
	
	#postcontent .card-carousel .cards.sml .card .article .picture img {
		aspect-ratio: 1 / 1;
		position: relative;
	}
	
	#postcontent .card-carousel:has(.cards.sml) .scroll-buttons {
		left: calc(50% + 180px);
	}
	
	#postcontent .card-carousel .cards.sml::scroll-button(*) {
        left: calc(anchor(left) + 50vw + 180px);
    }
}

@media only screen and (max-width: 1024px) and (min-width: 601px) {
	
	/*-- small card styles --*/
	
	#postcontent .card-carousel .cards.sml .card {
		width: 60%;
		flex: 1 0 60%;
		max-width: 60%;
		min-width: 60%;
	}
}

@media only screen and (max-width: 1024px) {
	
	/*-- small card styles --*/
	
	#postcontent .card-carousel .cards.sml .card, 
	#postcontent .card-carousel .cards.sml .card .article .content {
		background: var(--background-grey-4-tint-3);
	}
	
	#postcontent .card-carousel .cards.sml.bg-alt .card,
	#postcontent .card-carousel .cards.sml.bg-alt .card .article .picture,
	#postcontent .card-carousel .cards.sml.bg-alt .card .article .content {
		background: #ffffff;
	}
	
	#postcontent .card-carousel .cards.sml .card .content {
		padding: 30px;
	}
	
	#postcontent .card-carousel .cards.sml .card .article .picture {
		aspect-ratio: 1 / 1;
		padding: 30px 30px 0px 30px;
	}
	
	#postcontent .card-carousel .cards.sml .card .article .picture img {
		aspect-ratio: 1 / 1;
		position: relative;
	}
}

/*-- start of flex header and card styles --*/

#postcontent .flex33 div.header,
#postcontent .flex25 div.header {
	text-align: left !important;
	align-items: flex-start;
	justify-content: center;
	width: 30%;
	max-width: none;
    flex: 1 0 30%;
    row-gap: 20px;
	padding-right: 20px;
}

#postcontent .flex25 div.header {
    flex: 1 0 40%;
    width: 40%;
    max-width: calc(40% + 80px);
}

#postcontent .flex33 div.header h2,
#postcontent .flex25 div.header h2 {
	font-family: "PT Serif", serif;
	font-size: 40px;
	font-weight: 400;
	line-height: 52px;
	margin: 0;
	margin-bottom: 10px;
	text-align: left;
}

#postcontent .flex33 div.card {
	border: 1px;
	border-radius: 0px;
	box-shadow: 0px 10px 30px 5px #0000001A;
	padding: 30px;
	background: var(--background-grey-4-tint-3);
}

@media only screen and (max-width: 1024px) {
	
	/*-- flex header and card styles --*/
	#postcontent .flex33 div.header,
	#postcontent .flex25 div.header {
		width: 100%;
		flex: 1 0 100%;
		max-width: none;
		padding: 0;
	}
	
	#postcontent .flex33 div.header h2,
	#postcontent .flex25 div.header h2 {
		font-size: 24px;
		line-height: 36px;
	}
	
	#postcontent .flex33 div.card {
		box-shadow: none;
	}
}

