﻿/* Global colours */

:root {
	--ccc-red: #C73040;
	--ccc-purple: #593B8A;
	--ccc-gold: #937744;
	--ccc-white: #FFFFFF;
	--ccc-grey: #94908C;
	--ccc-yellow: #FF9015; 
	--ccc-green: #478F42;
	--ccc-beige: #E6E2DD;
	--ccc-darkgreen: #364230;
}

/* Main layout */

body {
	background-color: var(--ccc-off-white) !important;
}

/* Base styles */

div, p {
	box-sizing: border-box;
}

.main {
	max-width: 800px;
	margin: 0 auto;
	padding: 10px;
}

a {
	color: var(--ccc-purple);
	text-decoration: underline;
}

/* Header, logo and page type text */

.header {
	padding: 10px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 10px;
}


.logo {
}

	.logo img {
		max-width: 140px;
	}

.page-title {
	font-family: Lora, serif;
	font-weight: 400;
	color: var(--ccc-gold);
	font-size: 2em;
	text-align: right;
}

/* Home */

.home {
	padding: 0 20px;
}

	.home .leader {
		font-size: 160%;
		font-family: Lora, serif;
	}

	.home h4 {
		font-family: Lora, serif;
		font-weight: 400;
	}

.info .live-link {
	background-image: linear-gradient(90deg, #ac38e8, #0177ff);
	width: 360px;
	height: 60px;
	font-weight: 600;
	font-size: 120%;
	color: white !important;
	display: block;
	border-radius: 4px;
	text-align: center;
	line-height: 57px;
	box-shadow: rgba(0, 0, 0, 0.14) 0px 5px 6px 0px, rgba(0, 0, 0, 0.15) 0px 2px 2px 0px;
	margin: 20px auto;
	text-decoration: none !important;
}

/* Deceased details */

.deceased {
}

	.deceased .info-box {
		background-color: var(--ccc-white);
		border-radius: 6px;
		padding: 30px;
		display: flex;
		align-items: center;
		flex-direction: column;
		font-family: Lora, serif;
		text-align: center;
	}

	.deceased .grave-photo {
		padding-bottom: 30px;
	}


		.deceased .grave-photo img {
			max-width: 100%;
			height: auto;
			border-radius: 6px;
		}

	.deceased .service-type {
		margin: auto;
		height: 24px;
		font-size: 0.8em;
		border-radius: 12px;
		padding: 4px 12px;
		background-color: var(--ccc-white);
		box-shadow: 0 4px 8px 3px rgba(148,144,140,0.4);
		color: var(--ccc-gold);
	}

	.deceased h2 {
		margin: 0;
		padding: 20px 0 10px;
		font-weight: 400;
		font-size: 2.2em;
		text-align: center;
	}

	.deceased .birth-death {
		font-size: 2.2em;
		font-weight: 400;
		color: var(--ccc-gold);
	}

	.deceased .date-of-birth-title {
		font-size: 1.0em;
		font-weight: 100;
		margin-top: 20px;
		color: var(--ccc-grey);
	}

	.deceased .date-of-birth {
		font-size: 1.2em;
		font-weight: 100;
		margin-top: 10px;
	}




.deceased .inscription-label {
		padding-top: 20px;
		font-family: Roboto, sans-serif;
		font-size: 0.9em;
		color: var(--ccc-grey);
	}

	.deceased .inscription-text {
		font-style: italic;
		font-size: 1.5em;
		text-align: center;
	}

	.deceased .vitals {
		width: 100%;
		padding-top: 30px;
	}

	.deceased .vitals-row, 
	.deceased-other .vitals-row {
		display: flex;
		justify-content: space-evenly;
	}

	.deceased .vitals-cell,  
	.deceased-other .vitals-cell {
		flex-grow: 1;
	}
	
	.deceased .vitals-cell {
		text-align: center;
		padding: 12px;
	}
	
	.deceased-other .vitals-cell {
		padding: 12px 24px 12px 0;
	}

	.deceased .vitals-label, 
	.deceased-other .vitals-label {
		font-family: Roboto, sans-serif;
		font-size: 0.8em;
		color: var(--ccc-grey);
	}

	.deceased .vitals-value,
	.deceased-other .vitals-value {
		padding-top: 7px;
	}

	.deceased .location {
		background-color: var(--ccc-white);
		border-radius: 6px;
		padding: 10px;
		font-family: Lora, serif;
		margin-top: 10px;
	}

		.deceased .location .map img {
			width: 100%;
			height: auto;
		}

		.deceased .location .cemetery-name {
			padding: 30px 20px 0;
			color: var(--ccc-yellow);
		}

		.deceased .location .location-description {
			padding: 10px 20px 20px;
		}
		
/* Deceased details - veterans */

.veteran-box .info-title {
	font-family: Roboto, sans-serif;
	font-size: 0.8em;
	color: var(--ccc-grey);
}

.veteran-box .info-text {
	padding-top: 7px;
}

.veteran-box {
	margin-bottom: 26px;
	padding: 30px 45px;
	display: flex;
	align-items: center;
	flex-direction: column;
	text-align: center;
}

.veteran-box .vet-badge {
	height: 24px;
	font-size: 16px;
	font-weight: 700;
	border-radius: 12px;
	padding: 0 20px;
	background-color: var(--ccc-red);
	box-shadow: 0 6px 14px 0 #C730401A;
	color: var(--ccc-white);
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.veteran-box .vet-badge img {
	filter: grayscale(1) brightness(10); /* Make the red poppy white */
	width: 12px;
	height: 12px;
	margin-right: 6px;
}

.veteran-box .public-story {
	margin-top: 46px;
}

.veteran-box .public-story p {
	font-weight: 400;
	text-align: left;
}

.veteran-box .veteran-photo {
	width: 100%;
	margin-top: 24px;
}

.veteran-box .veteran-photo img {
	max-height: 430px;
	max-width: 100%;
	width: auto;
	border-radius: 6px;
}

.rank-unit-image-box {
	display: flex;
	flex-direction: row;
	justify-content: center;
	align-items: center;
	gap: 16px;
}

/* Deceased others, interred and adjoining */

.deceased-others-title {
	padding: 30px 20px 20px;
	font-family: Lora, serif;
}

.deceased-other {
	background-color: var(--ccc-white);
	border-radius: 6px;
	padding: 20px;
	margin-bottom: 10px;
}

.deceased-other .name {
	font-family: Lora, serif;
	font-size: 1.2em;
	color: var(--ccc-yellow);
}

.deceased-other .cemetery-name {
	margin-top: 6px;
	font-size: 0.9em;
	margin-bottom: 10px;
}

/* Daily service */

.daily-service .info-box {
	background-color: var(--ccc-white);
	border-radius: 6px;
	padding: 30px;
	display: flex;
	align-items: center;
	flex-direction: column;
	font-family: Lora, serif;
	text-align: center;
}

.daily-service .service-type-holder {
}

.daily-service .service-type {
	margin: auto;
	height: 24px;
	font-size: 0.8em;
	border-radius: 12px;
	padding: 4px 12px;
	background-color: var(--ccc-white);
	box-shadow: 0 4px 8px 3px rgba(148,144,140,0.4);
	color: var(--ccc-gold);
}

.daily-service h2 {
	padding: 20px 0 10px;
	font-weight: 400;
	font-size: 2.2em;
	text-align: center;
}

.daily-service .service-time {
	color: var(--ccc-gold);
	padding-bottom: 8px;
	font-size: 1.4em;
}

.daily-service .service-date {
	color: var(--ccc-gold);
	padding-bottom: 6px;
	font-size: 1.4em;
}

.daily-service .cemetery {
	padding-top: 6px;
}

.daily-service .funeral-director {
	padding-top: 6px;
	font-size: 0.9em;
}

.daily-service .daily-service-location {
	padding-top: 30px;
	font-family: Lora, serif;
}

.daily-service .location-header {
	display: flex;
	justify-content: space-between;
	font-size: 0.9em;
	padding: 0 10px 10px;
}

.daily-service .location-time {
	font-family: Lora, serif;
}

.daily-service .location-box {
	background-color: var(--ccc-white);
	border-radius: 6px;
	padding: 10px;
	display: flex;
	align-items: center;
}

.daily-service .location-map {
	margin-right: 30px;
	background-color: var(--ccc-beige);
	border-radius: 4px;
}

	.daily-service .location-map img {
		display: block;
		width: 160px;
		height: 160px;
		border-radius: 6px;
	}

.daily-service .location-description {
	color: var(--ccc-green);
	font-size: 1.2em;
	padding-bottom: 6px;
}

.daily-service .location-cemetery {
	font-family: Roboto, sans-serif;
	font-size: 0.9em;
	color: var(--ccc-grey);
}

/* News articles */

.news-article {
	background-color: var(--ccc-white);
	border-radius: 6px;
	padding: 30px;
}

	.news-article h2 {
		margin-top: 0;
		font-family: Lora,serif;
		font-weight: 500;
	}

	.news-article .publish-date {
		padding-bottom: 20px;
		color: var(--ccc-grey);
	}

	.news-article .image {
		margin-bottom: 20px;
	}
	.news-article .image img {
		max-width: 100%;
		border-radius: 6px;
	}
	
	.news-article .content {
		font-family: Lora, serif;
		line-height: 1.5em;
	}

		.news-article .content img {
			max-width: 100%;
			height: auto;
			display: block;
		}


/* Events */

.event {
	background-color: var(--ccc-white);
	border-radius: 6px;
	padding: 30px;
	display: flex;
	align-items: flex-start;
}

	.event .event-date {
		white-space: nowrap;
		font-family: Lora, serif;
		padding-right: 30px;
	}

		.event .event-date .event-date-day {
			font-size: 2.5em;
		}

		.event .event-date .event-date-month {
			font-size: 1.4em;
		}

	.event h2 {
		margin-top: 0;
		font-family: Lora,serif;
		font-weight: 500;
	}

	.event .location {
		font-size: 0.9em;
		padding-bottom: 10px;
	}

	.event .event-time {
		font-size: 0.9em;
		padding-bottom: 10px;
	}

/* Resting place */

.resting-place {
	padding: 30px;
}

.resting-place h2 {
	margin-top: 0;
	font-family: Lora,serif;
	font-weight: 500;
}

.resting-place .map {
	margin-top: 20px;
	background-color: var(--ccc-beige);
	border-radius: 6px;
}

.resting-place .price-label {
	margin-top: 20px;
	font-size: 0.9em;
}

.resting-place .price {
	font-family: Lora, serif;
	font-size: 1.8em;
	font-weight: bold;
}

.resting-place .availability-holder {
	display: flex;
	margin-top: 16px;
}

.resting-place .availability {
	background-color: var(--ccc-white);
	display: flex;
	padding: 0 16px;
	height: 28px;
	border-radius: 28px;
	font-size: 0.9em;
	align-items: center;
	color: var(--ccc-gold);
}

.resting-place .availability.available {
	color: var(--ccc-green);
}

.resting-place .attributes {
	display: flex;
	align-items: center;
	justify-content: start;
	margin-top: 20px;
}

.resting-place .attributes div {
	color: var(--ccc-green);
	padding-left: 22px;
	background-position: center left;
	background-repeat: no-repeat;
}

.resting-place .attributes .attribute-tenure {
	margin-right: 40px;
	background-image: url('/img/icon-clock-green.svg');
}

.resting-place .attributes .attribute-price {
	background-image: url('/img/icon-grid-green.svg');
}

.resting-place .description {
	margin-top: 20px;
}

.resting-place .enquire-holder,
.resting-place-enquiry .enquire-holder {
	margin-top: 40px;
	display: flex;
}

.resting-place .enquire,
.resting-place-enquiry .enquire {
	height: 38px;
	color: var(--ccc-white);
	background-color: var(--ccc-darkgreen);
	border-radius: 38px;
	border: none;
	font-size: 18px;
	padding: 0 40px;
	text-decoration: none;
	display: flex;
	align-items: center;
	font-family: Lora, serif;
	cursor: pointer;
}

/* Resting place enquiry */

.resting-place-enquiry {
	background-color: var(--ccc-white);
	padding: 30px;
	border-radius: 6px;
}

.resting-place-enquiry .title {
	font-family: Lora, serif;
	font-weight: 500;
	margin-top: 0;
}

.resting-place-summary {
	display: flex;
	align-items: center;
	justify-content: start;
}

.resting-place-summary .map {
	width: 180px;
	height: 180px;
}

.resting-place-summary-name {
	margin-left: 20px;
}

.resting-place-summary-name .culture-type {
	font-size: 110%;
}

.resting-place-summary-name .price {
	margin-top: 6px;
	color: var(--ccc-grey);
}

.resting-place-enquiry h3 {
	margin-top: 30px;
	color: var(--ccc-green);
	font-family: Lora, serif;
	font-size: 130%;
}

/* Location */

.location
{
	background-color: var(--ccc-white);
	padding: 30px;
	border-radius: 6px;
}

.location .title
{
	font-family: Lora, serif;
	font-weight: 500;
	margin-top: 0;
}

.location .cemetery-name
{
	font-family: Lora, serif;
	color: var(--ccc-grey);
}

.location-images
{
	margin-top: 20px;
	position: relative;
	aspect-ratio: 1.33;
}

.location-image
{
	position: absolute;
}

.location-image img
{
	max-width: 100%;
	border-radius: 6px;
}

.glide__slide img
{
	max-width: 100%;
}

.glide__track
{
	border-radius: 6px;
}

.glide__arrow {
	cursor: pointer;
	padding: 0;
	background-color: transparent;
	border: 0;
	outline: 0;
}

.slider__arrow {
	position: absolute;
	top: 50%;
	z-index: 1;
	width: 32px;
	height: 32px;
	margin-top: -9px;
	border-radius: 50%;
	background-color: var(--ccc-green);
	-webkit-transition: all 0.2s ease-in-out;
	transition: all 0.2s ease-in-out;
	-webkit-box-shadow: 0 0.5rem 4rem 0 rgba(0, 0, 0, 0.5);
	box-shadow: 0 0.5rem 4rem 0 rgba(0, 0, 0, 0.5);
}
.slider__arrow:hover {
	background-color: var(--ccc-darkgreen);
}
.slider__arrow--next {
	right: 1.5rem;
}
.slider__arrow--prev {
	left: 1.5rem;
}

.location-audio
{
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: 30px;
	background-color: var(--ccc-white);
	border-radius: 6px;
	box-shadow: 0 0 10px 5px rgba(0,0,0,0.1);
	padding: 12px 24px;
}

.location-audio .audio-icon img
{
	max-height: 30px;
}

.location-audio .audio-caption
{
	font-family: Lora, serif;
	flex-grow: 1;
	margin: 0 24px;
}

.location .description
{
	margin-top: 20px;
	font-family: Lora, serif;
	color: var(--ccc-grey);
	line-height: 150%;
}

.location .map {
	margin-top: 20px;
	background-color: var(--ccc-white);
	border-radius: 6px;
}

/* Walk */

.walk {
	background-color: var(--ccc-white);
	border-radius: 6px;
	padding: 30px;
}

.walk-header {
	aspect-ratio: 1.33;
	background-size: cover;
	background-position: left center;
	border-top-left-radius: 6px;
	border-top-right-radius: 6px;
	display: flex;
	flex-direction: column;
	justify-content: end;
}

.walk-header-text {
	height: 100%;
	padding: 30px;
	display: flex;
	flex-direction: column;
	justify-content: end;
	align-items: start;
	background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.6));
}

.walk .cemetery-name {
	font-size: 0.9em;
	font-family: Lora, serif;
	height: 24px;
	border-radius: 24px;
	display: flex;
	align-items: center;
	color: var(--ccc-grey);
	background-color: var(--ccc-white);
	padding: 0 10px;
}

.walk .title {
	color: var(--ccc-white);
	font-family: Lora, serif;
	font-weight: 500;
	font-size: 2em;
}

.walk .subtitle {
	color: var(--ccc-white);
	font-family: Lora, serif;
	font-size: 1.1em;
}

.walk .map {
	background-color: var(--ccc-white);
	border-bottom-left-radius: 6px;
	border-bottom-right-radius: 6px;
}

.walk .map img {
	border-top: none;
	border-bottom-left-radius: 6px;
	border-bottom-right-radius: 6px;
}

.walk .walk-stats {
	padding: 20px;
	display: flex;
	justify-content: space-evenly;
	align-items: start;
}

.walk-duration {
	margin-right: 40px;
}

.walk .walk-duration-label, .walk .walk-distance-label {
	color: var(--ccc-grey);
	font-size: 0.8em;
}

.walk .walk-duration-value, .walk .walk-distance-value {
	margin-top: 10px;
	font-weight: bold;
	font-size: 1.1em;
}

.walk .walk-duration-value {
	display: flex;
	align-items: center;
}

.walk .walk-duration-value img {
	height: 18px;
	margin-right: 8px;
}

.walk-locations-label {
	margin-top: 20px;
	font-family: Lora, serif;
	font-size: 1.2em;
}

.walk-locations {
	display: flex;
	justify-content: start;
	align-items: start;
	flex-wrap: nowrap;
	overflow: auto;
	margin-top: 20px;
}

.walk-location {
	flex-basis: 180px;
	min-width: 180px;
	margin-right: 10px;
	display: block;
}

.walk-location img {
	max-width: 100%;
	border-top-left-radius: 6px;
	border-top-right-radius: 6px;
	display: block;
}

.walk .walk-location-name {
	background-color: #52565d;
	color: var(--ccc-white);
	text-align: center;
	padding: 16px 8px;
	font-size: 0.9em;
	font-weight: bold;
	border-bottom-left-radius: 6px;
	border-bottom-right-radius: 6px;
}

.walk .description
{
	margin-top: 20px;
	font-family: Lora, serif;
	color: var(--ccc-grey);
	line-height: 150%;
}

/* Maps */

.map {
	display: block;
}

.map img {
	max-width: 100%;
	border-radius: 6px;
}

/* Get the app */

.get-the-app {
	padding-top: 30px;
	display: flex;
	align-items: center;
	flex-direction: column;
	font-family: Lora, serif;
}

	.get-the-app h4 {
		color: #593B8A;
	}

	.get-the-app-inner {
		display: flex;
		flex-direction: row;
		justify-content: center;
		align-items: center;
		gap: 40px;
	}

	.get-the-app a {
		display: block;
	}
	
.ios-store-link img,
.android-store-link img {
	width: 160px;
}

/* Footer */

.footer {
	margin: 40px 0;
	border-top: solid 1px #CCC3B8;
	padding: 20px 10px;
	color: #B0A597;
	font-size: 80%
}

	.footer a {
		color: #B0A597;
		text-decoration: none;
	}

		.footer a:hover {
			text-decoration: underline;
		}

.footer-left {
	float: left;
}

.footer-right {
	float: right;
}

/* Utility styles */

.float-clear {
	height: 1px;
	clear: both;
}

/* Form Layout */

.row {
	display: flex;
	flex-wrap: wrap;
	margin: 0 -15px;
}

.col-6 {
	flex: 0 0 50%;
	width: 50%;
	box-sizing: border-box;
	padding: 0 15px;
}

.mb-4 {
	margin-bottom: 1.5rem !important;
}

.form-group {
	margin-bottom: 20px;
}

.form-label {
	margin-bottom: 0.5rem;
}

.form-control {
	width: 100%;
	box-sizing: border-box;
	border: none;
	border-bottom: 1px solid black;
	padding-top: 8px;
	padding-bottom: 8px;
}

.form-check + .form-check {
	margin-top: 1em;
}

.form-check {
	display: grid;
	grid-template-columns: 1em auto;
	gap: 0.5em;
}

.form-check-input {
	appearance: none;
	-webkit-appearance: none;
	margin: 0;
	font: inherit;
	color: var(--ccc-darkgreen);
	width: 1.15em;
	height: 1.15em;
	border: 0.15em solid var(--ccc-darkgreen);
	border-radius: 50%;
	transform: translateY(-0.05em);
	display: grid;
	place-content: center;
}

.form-check-input::before {
	content: "";
	width: 1.15em;
	height: 1.15em;
	border-radius: 50%;
	transform: scale(0);
	box-shadow: inset 1em 1em var(--ccc-darkgreen);
}

.form-check-input:checked::before {
	transform: scale(1);
}

.form-check-label {
	display: inline-block;
	margin-bottom: 5px;
	padding-left: 5px;
}

input:focus {
	outline: none;
}

.field-validation-error
{
	display: inline-block;
	padding-top: 3px;
	color: red !important;
}

.form-control .input-validation-error
{
	border-color: red;
}

/* Mobile Layout */

@media only screen and (max-width: 600px) {
	.main {
		width: 100%;
		margin: 0 auto;
		padding: 0;
	}
	
	.header {
		padding-left: 20px;
		padding-top: 20px;
		padding-right: 20px;
	}
	
	.location,
	.walk,
	.daily-service .info-box,
	.daily-service .location-box,
	.deceased .info-box,
	.deceased .location,
	.event,
	.news-article {
		border-radius: 0;
	}
}
