@charset "utf-8";


/*------------------------------------------------------------------------- CORE STYLES
*/
body {
	background:	 url(../images/obituary/page-bg.jpg) center top no-repeat; 
	background-size: cover;
	color: #111;
	display: flex;
	flex-flow: column nowrap;
	min-height: 100vh;
}
#page {
	background: transparent;
}
.image-wrapper img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/*------------------------------------------------------------------------- HEADER  
*/
#header {
	padding: 40px 0;
	background: transparent;
	text-align: center;
	min-height: 0;
}
#header h1 {
	width: 80%;
	max-width: 356px;
	aspect-ratio: 3.59;
	background: url(../images/obituary/sds-obituary.svg) center center / 100% no-repeat;
	margin: 0 auto 30px;
	position: relative;
	font-size: 0;
	height: auto;
}
#header ul {
	margin: 0;
	padding: 0;
}
#header ul li {
	list-style-type: none;
	margin: 0 auto;
	padding: 0;
	display: flex;
	flex-flow: row wrap;
	align-items: center;	
	background: transparent;
}
#header ul li {
	position: relative;
	display: inline-block;
	font-size: 24px;
	text-transform: uppercase;
	letter-spacing: 3px;
}
#header ul li:not(:last-of-type)::after {
	content: '';
	background: url(../images/obituary/icons/bullet.svg) center center / 14px 14px no-repeat;
	display: inline-block;
	width: 80px;
	height: 16px;
	margin: 0;
	text-align: center;
}
#header .back-button {
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	justify-content: center;
	text-transform: uppercase;
	letter-spacing: 2px;
	font-size: 15px;
	width: 90px;
	height: 40px;
	margin: 0 auto 40px;
	background-color: #333;
	color: #fff;
	transition: all 0.25s ease;
}
#header .back-button::before {
	content: '';
	display: block;
	width: 10px;
	height: 10px;
	transform: scaleX(-1);
	background: url(../images/bullet-point.svg) center center / 100% no-repeat;
	margin-right: 10px;
	transition: inherit;
}
#header .back-button:hover {
	background-color: #57577b;
}
#header .back-button:hover::before {
	transform: scaleX(-1) translateX(5px);
}

@media (max-width:680px) {
	#header ul li {
		position: relative;
		display: inline-block;
		font-size: 20px;
	}
	#header ul li:not(:last-of-type)::after {
		width: 40px;
		background-size: 12px 12px;
		height: 12px;
	}
}
@media (max-width:560px) {
	#header ul li {
		position: relative;
		display: inline-block;
		font-size: 16px;
	}
	#header ul li:not(:last-of-type)::after {
		width: 30px;
		background-size: 10px 10px;
		height: 10px;
	}
}
@media (max-width:480px) {
	#header ul li:not(:last-of-type)::after {
		width: 20px;
		background-size: 6px 6px;
	}
	#header ul li {
		font-size: 13px;
	}
}
@media (max-width:360px) {
	#header ul li {
		width: 100%;
		font-size: 16px;
		margin-bottom: 5px;
	}
	#header ul li:not(:last-of-type)::after {
		display: none;
	}
}

/*------------------------------------------------------------------------- CAROUSEL
*/
#carousel {
	height: 440px;
	background: transparent;
}
@media (max-width:480px)
{
	#carousel {
		height: 320px;
	}
}

/*------------------------------------------------------------------------- CAROUSEL SLIDES
*/
#carousel-slides {
	height: 100%;
	position: relative;
}
#carousel .slide {
	opacity: 0;
	width: 100%;
	max-width: 1080px;
	height: 100%;
	position: absolute;
	transition: 2s linear opacity;
	pointer-events: none;
	margin: 0 auto;
	left: 0;
	right: 0;
}
#carousel .slide.active {
	opacity: 1;
	pointer-events: auto;
}
.feature-blob {
	background: #333;
	width: 200px;
	height: 200px;
	position: absolute;
	right: 20px;
	top: 40px;
	display: grid;
	align-items: center;
	border-radius: 50%;
	transition: 0.2s linear background;
}
.feature-blob:hover {
	cursor: pointer;
	background: #000;
}
.feature-blob a {
	display: block;
}
.feature-blob p {
	color: #fff;
	text-align: center;
	line-height: 1em;
	margin: 0 auto;
}
.feature-blob p:first-of-type {
	text-transform: uppercase;
	font-weight: bold;	
	font-size: 14px;
}
.feature-blob p.telephone {
	font-size: 40px;
	line-height: 0.8em;
	margin: 5px auto 20px;
}
.feature-blob p:last-of-type {
	font-size: 16px;
}
#carousel .slide .text-overlay {
	position: absolute;
	width: calc(90vw - 520px);
	max-width: 280px;
	top: 30px;
	left: 500px;
}
#carousel .slide .text-overlay p {
	font-size: 17px;
	text-transform: uppercase;
	letter-spacing: 5px;
	text-align: left;
	font-weight: bold;
	margin: 0;
	line-height: 1.2em;
	position: relative;
}
#carousel .slide .text-overlay p::after {
	content: '';
	display: block;
	width: 60px;
	height: 1px;
	background: #000;
	margin: 40px 0;
}
#carousel .slide img {
	width: auto;
	height: 100%;
	transition: 2s linear filter, 2s linear opacity;
	filter: blur(40px);
	opacity: 0;
}
#carousel .slide.active img {
	filter: blur(0);
	opacity: 1;
}

@media (max-width: 1080px) {
	.feature-blob {
		right: auto;
		top: auto;
		bottom: 40px;
		left: 20px;
	}
}
@media (max-width: 768px) {
	#carousel .slide .text-overlay {
		width: 100%;
		max-width: calc(100% - 40px);
		top: auto;
		bottom: 20px;
		left: 20px;
		right: 0;
	}
	#carousel .slide .text-overlay p {
		text-align: center;
	}
	#carousel .slide .text-overlay p::after {
		display: none;
	}
	#carousel .slide .image-wrapper {
		height: calc(100% - 100px);
		transition: 0.2s linear all;
		margin-left: -30px;
	}
	.feature-blob {
		top: 0;
		bottom: auto;
		right: 20px;
		left: auto;
	}
}

@media (max-width:480px) {
	#carousel .slide .image-wrapper {
		opacity: 0;
		filter: grayscale(100%);
		height: 90%;
		position: absolute;
		left: 0;
		right: 0;
		top: 0;
		bottom: 0;
		margin: auto;
	}
	#carousel .slide .image-wrapper img {
		position: absolute;
		left: 50%;
		transform: translateX(-50%);
	}
	#carousel .slide .text-overlay,
	.feature-blob {
		position: relative;
		top: auto; 
		left: auto;
		right: auto; 
		bottom: auto;
		margin: 0 auto;		
	}
	.feature-blob {
		margin-top: 20px;
	}
}

/*------------------------------------------------------------------------- FEATURED USES AND USERS
*/
#featured-uses {
	padding:				40px 0;	
}
#featured-uses .container {
	display:				flex;
	flex-flow:				row wrap;
	justify-content:		center;
	padding:				0 20px;
}
.featured-use {
	width:					180px;
	height:					140px;
	margin:					0 5px 10px;
	background:				#333 url(../images/obituary/featured/club.jpg) center center / auto 100% no-repeat;
	padding:				10px;
	display: 				grid;
	align-items: 			end;
	flex: 					1 0 auto;
	transition: 			0.2s linear all;
}
.featured-use:hover {
	background-size: 		auto 120%;
}
.featured-use h4 {
	font-size:				13px;
	text-transform:			uppercase;
	letter-spacing:			5px;
	text-align:				left;
	font-weight:			bold;
	margin:					0;
	line-height:			1.2em;
	position:				relative;
	color:					#fff;
}
.featured-use.alumni { 		background-image: url(../images/obituary/featured/alumni.jpg); }
.featured-use.war { 		background-image: url(../images/obituary/featured/war.jpg); }
.featured-use.staff { 		background-image: url(../images/obituary/featured/staff.jpg); }
.featured-use.archivist { 	background-image: url(../images/obituary/featured/archivist.jpg); }
.featured-use.club { 		background-image: url(../images/obituary/featured/club.jpg); }


/*------------------------------------------------------------------------- BODY TEXT (INTRO TEXT ON HOME PAGE)
*/
#body-text-area {
	padding: 80px 0 ;
	background: linear-gradient(180deg,rgba(0, 0, 0, 0.05) 50%, rgba(195, 193, 201, 0.9) 100%);
}
#body-text-area::before {
	content: '';
	display: block;
	position: absolute;
	background: url(../images/obituary/shiny-divider.png) center center / 100% auto no-repeat;
	mix-blend-mode: screen;
	width: 300px;
	height: 30px;
	top: -15px;
	left: 20%;
	opacity: 0.8;
	animation: shiny__animation 5s ease-in-out 0s infinite alternate;
}
#body-text-area::after {
	content: '';
	display: block;
	position: absolute;
	background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 20%, rgba(255,255,255,0) 100%);
	opacity: 0.7;
	width: 100%;
	height: 1px;
	top: 0;
	left: 0;
	animation: gradient__animation 5s ease-in-out 0s infinite alternate;
}
#body-text-area h2 {
	font-size:				24px;
	text-transform:			uppercase;
	letter-spacing:			10px;
	text-align:				left;
	font-weight:			bold;
	margin:					0 0 40px;
	line-height:			1.2em;
	position:				relative;
}
#body-text-area h2::after {
	content:				'';
	display:				block;
	width:					60px;
	height:					1px;
	background:				#000;
	margin:					40px 0;
}
#body-text-area h3 {
	font-size:				20px;
	text-transform:			uppercase;
	letter-spacing:			3px;
	text-align:				left;
	margin:					40px 0 20px;
	line-height:			1.2em;
	position:				relative;
}
#body-text-area h4 {
	font-size:				18px;
	text-transform:			uppercase;
	letter-spacing:			10px;
	text-align:				left;
	font-weight:			bold;
	margin:					0 0 40px;
	line-height:			1.2em;
	position:				relative;
}
#body-text-area h4::after {
	content:				'';
	display:				block;
	width:					60px;
	height:					1px;
	background:				#000;
	margin:					40px 0;
}
#body-text-area h5 {
	font-size:				16px;
	text-transform:			uppercase;
	letter-spacing:			3px;
	text-align:				left;
	font-weight:			bold;
	margin:					0 0 10px;
	line-height:			1.2em;
	position:				relative;
}

#body-text-area ul {
	break-inside: 			avoid-column;
	list-style-type:		none;
	margin:					10px 0 20px 0;
}
#body-text-area ul li {
	background: 			url(../images/icons/bullet.svg) left 10px / 10px 10px no-repeat;
	padding:				0 0 0 20px;
}
#body-text-area a {
	font-family:			'requiem-display-italic';
	color:					#333;
	font-weight:			bold;
	transition:				0.2s linear all;
	position:				relative;
	white-space: 			nowrap;
}
#body-text-area a::after {
	background:			 	#333;
	width:					0%;
	position:				absolute;
	bottom:					-2px;
	left:					0;
	right:					0;
	margin:					0 auto;
	content: 				'';
	display: 				block;
	transition: 			0.2s linear;
	height: 				1px;
	opacity:				0;
}
#body-text-area a:hover::after {
	width:					100%;
	opacity:				0.5;
}
#body-text-area strong {
	font-weight:			bold;
}

@media (min-width: 768px)
{
	#body-text-area .column { 
		padding:			0 40px;
	}
}
@media (max-width: 767px)
{
	#body-text-area .row:nth-of-type(2) .column {
		column-count:		1;
	}
		#body-text-area h4 {
		text-align:			center;
	}
	#body-text-area h4::after {
		margin: 			40px auto;
	}
	
}


/*------------------------------------------------------------------------- KEY FEATURES AREA
*/
#key-features {
	background:				#c3c1c9;
	padding:				80px 0 120px;
}
#key-features::before {
	content:				'';
	display:				block;
	position:				absolute;
	background:				url(../images/obituary/shiny-divider.png) center center / 100% auto no-repeat;
	mix-blend-mode:			screen;
	width:					300px;
	height:					30px;
	top:					-15px;
	right:					20%;
	opacity:				0.6;
	animation:				shiny__animation 5s ease-in-out 0s infinite alternate-reverse;
}
#key-features::after {
	content:				'';
	display:				block;
	position:				absolute;
	background: 			linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 80%, rgba(255,255,255,0) 100%);
	opacity:				0.7;
	width:					100%;
	height:					1px;
	top:					0;
	left:					0;
	animation:				gradient__animation 5s ease-in-out 0s infinite alternate-reverse;
}
#key-features h3 {
	font-size:				30px;
	font-family:			'requiem-display';
	text-transform:			uppercase;
	text-align:				center;
	letter-spacing:			20px;
	margin:					0 auto;
	transition:				0.2s linear all;
}
#key-features h3::after {
	content:				'';
	display:				block;
	width:					100px;
	height:					1px;
	background:				#000;
	margin:					40px auto;
}
#key-features .image-wrapper {
	position:				absolute;
	left:					-100px;
	top:					-50px;
	transition: 			0.2s linear left;
}
#key-features .image-wrapper img {
	display:				block;
}
#key-features p {
	text-align:				center;
	margin:					0 auto 40px;
	width:					100%;
	max-width:				640px;
}
.features-list {
	list-style:				none;
	margin:					0 40px 0 0;
	padding:				0;
}
.features-list li {
	position:				relative;
	padding:				0 0 0 50px;
	margin:					0 0 30px;
	font-size:				17px;
	font-weight:			bold;
	line-height:			1.3em;
}
.features-list li::before {
	content:				'';
	width:					30px;
	height:					30px;
	display:				block;
	background:				#333 center center / 100% no-repeat;
	position:				absolute;
	left:					0;
}
.features-list li.i-secure-access::before { background-image: url(../images/obituary/icons/secure-access.svg); }
.features-list li.i-search::before { background-image: url(../images/obituary/icons/search.svg); }
.features-list li.i-browse::before { background-image: url(../images/obituary/icons/browse.svg); }
.features-list li.i-photo-view::before { background-image: url(../images/obituary/icons/photo-view.svg); }
.features-list li.i-ocr-text::before { background-image: url(../images/obituary/icons/ocr-text.svg); }
.features-list li.i-design::before { background-image: url(../images/obituary/icons/bespoke-design.svg); }

@media (max-width: 960px)
{
	#key-features .image-wrapper {
		position:			absolute;
		left:				-190px;
	}
}
@media (max-width: 767px)
{
	#key-features {
		padding: 			80px 0 40px;
	}
	#key-features .image-wrapper {
		position:			relative;
		left:				auto;
		top:				auto;
		margin: 			0 auto 20px;
		width: 				100%;
	}
	#key-features .image-wrapper img {
		width: 				auto;
		margin: 			0 auto;
		position:			relative;
		left:				calc(((100vw - 820px) / 2) * 1);
	}
	.features-list {
		margin:				0 auto;	
		max-width: 			480px;
		width:				90%;
	}
}
@media (max-width: 540px)
{
	#key-features h3 {
		font-size:			22px;
		letter-spacing: 	10px;	
	}
	#key-features h3::after {
		width:				60px;
	}
}
@media (max-width: 480px)
{
	#key-features .image-wrapper img {
		width:				600px;
		left:				calc(((100vw - 630px) / 2) * 1);
	}
}

/*------------------------------------------------------------------------- CSS ANIMATIONS
*/
#footer {
	background: #0d0c10 url(../images/obituary/footer-bg.jpg) center top no-repeat;
	background-size: cover;
	color: #fff;
}
#footer .since-1994,
#footer a {
	color: #fff;
}
#footer ul li::after {
	filter: invert(1);
}

/*------------------------------------------------------------------------- CSS ANIMATIONS
*/
@keyframes gradient__animation {
	from {	
		background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 100%, rgba(255,255,255,0) 100%);
	}
	to {
		background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 0%, rgba(255,255,255,0) 100%);
	}
}

@keyframes shiny__animation {
	from {
		left: 100%;
	}
	to {
		left: 0%;
	}
}