/**
 * Theme Name: Unified Dating
 * Theme URI: https://www.unifieddating.com/
 * Author: Henry Cotton
 * Author URI: https://dynamicarray.co.uk/
 * Description: Custom theme for Unified Dating Ltd.
 * Version: 1.0.1
 * Text Domain: unified-dating
 * Requires at least: 5.4.1
 * Tested up to: 6.3.0
 * Requires PHP: 7.3.33
 */

:root {
	--ud-white: #fff;
	--ud-grey: #a39e9e;
	--ud-dark-grey: #343333;
	--ud-black: #2a2929;
	--ud-background: #f2f2f2;
	--ud-pink: #ec3291;
	--ud-blue: #0f449f;
	--ud-red: #7d0202;
}

::-webkit-scrollbar {
	width: 0.25rem;
}

::-webkit-scrollbar-thumb {
	background: var(--ud-background);
}

::-webkit-scrollbar-thumb:active {
	background: var(--ud-blue);
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

* {
	font-family: 'Roboto', sans-serif;
	color: var(--ud-black);
}

body {
	margin: 0;
	width: 100%;
	font-weight: 400;
	line-height: 30px;
	font-size: 18px;
	min-height: calc(100vh - 32px);
	color: var(--talenscio-black);
	font-display: swap;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

a {
	text-decoration: none;
}

a:hover {
	text-decoration: underline;
}

button {
	padding: 0.5rem 2rem;
	font-size: 110%;
	border-color: var(--ud-blue);
	background-color: var(--ud-blue);
	color: var(--ud-white);
	margin: 0 0 0 auto;
}


input,
textarea {
	padding: 0.5rem;
	border: 1px solid var(--ud-blue);
	border-radius: 0.25rem;
}

header {
	border-bottom: 1rem solid var(--ud-pink);

	.top-header {
		display: flex;
		flex-direction: column;
		align-items: center;
		background-color: var(--ud-background);
		padding: 2rem 5vw;

		img {
			display: block;
			width: 100%;
			height: auto;
		}

		.socials-wrap {
			display: flex;
			flex-direction: column;
			align-items: center;
			width: 60%;
			margin: 2rem 0;

			h3 {
				color: var(--ud-blue);
				font-weight: 500;
			}

			.social-links {
				display: flex;
				align-items: center;
				justify-content: space-between;
				width: 100%;
			}
		}

		.header-button {
			border: 0.25rem solid var(--ud-blue);
			padding: 1rem 2rem;
			margin: 0.25rem;

			a {
				color: var(--ud-blue);
				font-size: 110%;
				font-weight: 600;
				white-space: nowrap;
			}
		}
	}

	.bottom-header {

		ul,
		li {
			list-style: none;
			padding-inline-start: 0;
			margin: 0;
		}

		li {
			background-color: var(--ud-pink);
		}

		li:nth-of-type(2n) {
			background-color: var(--ud-blue);
		}

		li a {
			display: block;
			border-bottom: 1px solid var(--ud-white);
			padding: 0.5rem;
			color: var(--ud-white);
			font-weight: 500;
		}

		li.menu-item-has-children>a {
			color: var(--ud-grey);
			pointer-events: none;
		}

		ul.sub-menu li a {
			padding-left: 2.5rem;
		}
	}
}

main {
	padding: 2rem 5vw;
}

body.kc-css-system .kc-css-8247 {
	margin: 0 !important;
}

a.woocommerce-terms-and-conditions-link,
a.woocommerce-privacy-policy-link {
	color: var(--ud-pink);
}

div.thumbnail img {
	width: 100%;
	height: auto;
	object-fit: contain;
}

div.gallery {
	display: flex;
	flex-wrap: wrap;
	align-items: center;

	img {
		object-fit: cover;
		width: 20vw;
		height: 20vw;
		border: 1px solid var(--ud-blue);
		margin: 0.25rem;
	}
}



div.membership-page {
	width: 90%;
	margin: 1rem auto;

	div.memberships {
		display: flex;
		flex-direction: column;

		div.membership {
			display: flex;
			flex-direction: column;
			align-items: center;
			justify-content: center;
			margin: 1rem 0;
			border-radius: 0.5rem;
			background-color: var(--ud-blue);


			h2,
			h4,
			p {
				margin: 1.5rem 0;
				color: var(--ud-white);
			}

			h4 {
				background-color: var(--ud-background);
				color: var(--ud-dark-grey);
				font-size: 200%;
				border-radius: 0.5rem;
				padding: 1.5rem;
				margin: 0.25rem 0;
			}
		}

		div.membership:nth-of-type(2n) {
			background-color: var(--ud-pink);
		}
	}
}

form.ud-form {
	background-color: var(--ud-white);
	padding: 5% 10%;
}

form.ud-form div.form-section {
	padding: 1rem 0;
}

form.ud-form div.form-section h4 {
	margin: 0 0 0.5rem 0;
	font-size: 1.25rem;
}

form.ud-form div.form-section textarea {
	width: 100%;
	min-height: 7.5rem;
}

form.ud-form div.form-field {
	display: flex;
	align-items: flex-start;
	justify-content: flex-start;
	padding: 1rem 0;
	margin: 0;
}

form.ud-form div.form-field.checkbox {
	padding: 0;
}

form.ud-form div.form-field>label {
	flex-basis: 40%;
	margin: 0 0 0.5rem 0;
	font-weight: 600;
	font-size: 1.25rem;
}

form.ud-form div.form-field input,
form.ud-form select {
	padding: 0.5rem;
	border-radius: 0.25rem;
	border-width: 0.1rem;
	flex-basis: 60%;
	border-style: solid;
	border-color: var(--ud-grey);
}

form.ud-form div.form-field input.invalid,
form.ud-form div.form-field select.invalid {
	border-color: var(--ud-red);
}

form.ud-form div.form-field input[type='checkbox'],
form.ud-form div.form-field input[type='radio'] {
	flex-basis: 10%;
	padding: 0;
	border: none;
	margin-right: 1rem;
}

form.ud-form div.form-field.checkbox {
	flex-direction: row;
	align-items: center;
}

form.ud-form div.form-field.checkbox p {
	white-space: break-spaces;
	margin: 0;
	flex-basis: 90%;
}

form.ud-form div#location-field {
	display: flex;
	flex-direction: column;
	flex-basis: 60%;
}

form.ud-form div#location-field input {
	border-radius: 0.25rem 0.25rem 0 0;
	border-bottom: none;
}

form.ud-form div#location-field select {
	border-radius: 0 0 0.25rem 0.25rem;
}

form.ud-form button {
	display: block;
	background-color: var(--ud-grey);
	border-color: var(--ud-grey);
	color: var(--ud-white);
	padding: 1rem 2rem;
	font-size: 110%;
	font-weight: 500;
	margin-left: auto;
	border: none;
	border-radius: 0.25rem;
}

form.ud-form button:hover {
	cursor: pointer;
	background-color: var(--ud-white);
	color: var(--ud-grey);
}

div.form-success {
	background-color: var(--ud-blue);
	border-radius: 0.5rem;
	padding: 2.5%;
	margin: 5rem 20%;

	p {
		color: var(--ud-background);
		margin: 1rem 0;
	}

	span,
	a {
		color: var(--ud-pink);
	}
}

div.select-wrapper {
	position: relative;
	height: 2.7rem;
}

div.select {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	border: 0.1rem solid var(--ud-black);
	background-color: var(--ud-white);
	max-height: 33vh;
	overflow-y: auto;
	-ms-overflow-style: none;
	scrollbar-width: none;
}

div.select::-webkit-scrollbar {
	display: none;
}

div.select div.select-option {
	padding: 0.5rem 1rem;
	margin: 0 0.5rem;
	line-height: 1.5rem;
	border-bottom: 0.1rem solid var(--ud-grey);
}

div.select div.select-option:hover {
	cursor: pointer;
	color: var(--ud-white);
	background-color: var(--ud-pink);
}

div.select div.select-option:first-of-type,
div.select div.select-option:first-of-type:hover {
	padding: 0.5rem 1.5rem;
	margin: 0;
	background-color: unset;
	color: unset;
	cursor: unset;
}

div.select.open div.select-option:first-of-type {
	background-color: var(--ud-grey);
	color: var(--ud-background);
	pointer-events: none;
}

div.select.closed div.select-option:not(:first-of-type) {
	display: none;
}

div.select div.select-option.hidden {
	display: none;
}

div.select.closed div.select-option.selected {
	display: block;
	background-color: var(--ud-pink);
	color: var(--ud-white);
	padding: 0.5rem 1.5rem;
	margin: 0;
	border: none;
}

.woocommerce .col2-set .col-1,
.woocommerce-page .col2-set .col-1 {
	width: 66%;
}

.woocommerce .col2-set .col-2,
.woocommerce-page .col2-set .col-2 {
	width: 30%;
}

div.calendar {
	margin: 1rem 0 1rem auto;
	padding: 1rem 0.5vw;
	border-top: 0.15rem solid var(--ud-grey);
	border-bottom: 0.15rem solid var(--ud-grey);
	width: fit-content;
	max-width: 80vw;
	overflow-x: auto;

	div.calendar-header {
		display: flex;
		align-items: center;
		justify-content: space-between;
		margin-bottom: 2rem;
	}

	div.calendar-header svg {
		width: 2rem;
	}

	div.month {
		display: grid;
		grid-template-columns: repeat(7, 1fr);
		grid-template-areas: "mon tue wed thur fri sat sun";
		width: calc(50vw - 0.5rem);
		min-width: 50rem;
	}

	div.day {
		position: relative;
		border: 0.1rem solid var(--ud-grey);
		background-color: var(--ud-white);
		width: calc(7vw - 0.5rem);
		height: calc(7vw - 0.5rem);
		margin: 0.25rem;
		padding: 0.5rem;
		min-width: 7rem;
		min-height: 7rem;

		span {
			pointer-events: none;
		}
	}

	div.day.disabled {
		cursor: auto;
		pointer-events: none;
		background-color: var(--ud-background);
	}

	div.day:not(.selected):hover {
		border-color: var(--ud-blue);
		color: var(--ud-blue);
		cursor: pointer;
	}

	div.day.selected {
		background-color: var(--ud-blue);
		color: var(--ud-white);

		span {
			color: var(--ud-white);
		}
	}
}

div.calendar div.day span {
	position: relative;
	font-weight: 500;
}

div.calendar .name.hidden,
div.calendar .month.hidden {
	display: none;
}

div.calendar svg.hidden {
	opacity: 0;
	pointer-events: none;
}

div.month {

	div.day-0 {
		grid-column: sun;
	}

	div.day-1 {
		grid-column: mon;
	}

	div.day-2 {
		grid-column: tue;
	}

	div.day-3 {
		grid-column: wed;
	}

	div.day-4 {
		grid-column: thur;
	}

	div.day-5 {
		grid-column: fri;
	}

	div.day-6 {
		grid-column: sat;
	}
}

div.archive-page,
div.trip-page {
	padding: 2.5% 10%;
	background-color: var(--ud-white);

	div.events-header img,
	div.trip-header img {
		display: block;
		width: 100%;
		height: auto;
		margin: 5% 0;
	}

	div.events-header img {
		max-width: 60rem;
		margin: 5% auto;
	}

	form.archives-filter {
		display: flex;
		align-items: center;
		justify-content: flex-start;
		flex-direction: column;
		padding: 0.5rem 0 1rem;
		margin-bottom: 1rem;

		input,
		select {
			border-color: var(--ud-dark-grey);
			flex-basis: calc(18% - 1rem);
			width: calc(18% - 1rem);
			margin: 0 0.5rem;
		}

		input,
		select,
		button {
			display: block;
			border-radius: 0.1rem;
			padding: 0.5rem;
			height: 3rem;
			width: 100%;
			margin: 0.25rem 0;
		}

		input {
			margin-left: 0;
		}

		button {
			padding: 0.5rem 2rem;
			font-size: 110%;
			border-color: var(--ud-blue);
			background-color: var(--ud-blue);
			color: var(--ud-white);
			margin: 0 0 0 auto;
		}

		button:hover {
			cursor: pointer;
			background-color: var(--ud-background);
			color: var(--ud-blue);
		}
	}

	div.tabs {
		display: flex;
		flex-wrap: wrap;

		a.tab {
			display: block;
			flex-basis: calc(40% - 0.5rem);
			border: 0.25rem solid var(--ud-pink);
			background-color: var(--ud-background);
			border-radius: 0.25rem;
			padding: 1rem;
			margin: 0.25rem;
			text-align: center;
			color: var(--ud-dark-grey);
			font-weight: 600;
			text-transform: uppercase;
		}

		a.tab.selected {
			flex-basis: calc(60% - 0.5rem);
			border-color: var(--ud-blue);
			background-color: var(--ud-blue);
			color: var(--ud-background);
		}

		div.subtabs {
			display: flex;
			flex-basis: 80%;
			order: 100;
			margin: 0.5rem 10%;


			a.tab {
				text-transform: none;
				padding: 0.75rem;
			}
		}

	}


	div.events,
	div.walks {
		display: flex;
		align-items: center;
		justify-content: space-between;
		flex-wrap: wrap;
		flex-direction: column;

		a.event-tile {
			margin: 1rem 0.5rem;
			flex-basis: calc(100% - 1rem);

			img {
				max-height: 10rem;
			}
		}
	}

	button#load-more {
		display: block;
		text-align: center;
		margin: 2.5rem auto 0;
		font-size: 125%;
		background: none;
		border-color: var(--ud-blue);
		color: var(--ud-blue);


	}

	button#load-more:hover {
		background-color: var(--ud-blue);
		color: var(--ud-white);
		cursor: pointer;
		font-weight: 600;
	}

	div.archive-block {
		margin: 3rem 0;

		button.checkout {
			display: block;
			color: var(--ud-white);
			background-color: var(--ud-pink);
			border: 0.5rem solid var(--ud-blue);
			padding: 1rem 2rem;
			border-radius: 0.5rem;
			font-size: 125%;
			font-weight: 600;
			margin: 1rem 40% 0 auto;
			cursor: pointer;
		}

		button.checkout.disabled {
			pointer-events: none;
			background-color: var(--ud-grey);
			border-color: var(--ud-black);
		}

		button.checkout:hover {
			background-color: var(--ud-blue);
		}
	}

	div.ticket {
		padding: 1rem;
		border-radius: 0.5rem;
		margin: 0.5rem 0;
		background-color: var(--ud-background);
		border: 1px solid var(--ud-dark-grey);
		width: 60%;

		div.changer {
			display: flex;
			align-items: center;
			justify-content: space-between;

			div.minus,
			div.plus,
			div.quantity {
				width: 3rem;
				height: 3rem;
				border-radius: 0.5rem;
				border: 0.25rem solid var(--ud-blue);
				color: var(--ud-blue);
			}

			div.minus:hover,
			div.plus:hover {
				cursor: pointer;
				background-color: var(--ud-blue);
				color: var(--ud-white);
			}

			div.plus:hover svg,
			div.minus:hover svg {
				color: var(--ud-white);
			}

			div.name,
			div.quantity {
				flex-basis: 60%;
				font-weight: 600;
				font-size: 120%;
				text-align: center;
			}

			div.quantity {
				display: flex;
				align-items: center;
				justify-content: center;
				flex-basis: unset;
				background-color: var(--ud-white);
				color: var(--ud-black);
			}
		}

		div.price {
			margin-top: 1.5rem;
			font-weight: 700;
			font-size: 140%;
			color: var(--ud-dark-grey);
		}
	}
}

div.archive-page.embed {
	padding: 0;
}

div.trip-page {
	padding: 0;
	width: 90%;
	margin: 1rem auto;

	h1 {
		font-size: 250%;
		line-height: 5rem;
		margin-top: 2.5rem;
		margin-bottom: 5rem;
		color: var(--ud-dark-grey);

		span {
			font-size: 80%;
			color: var(--ud-blue);
		}
	}
}

a.event-tile,
a.trip-tile {
	display: block;
	color: var(--ud-black);
	text-decoration: none;
	flex-basis: calc((100%/3) - 2rem);
	margin: 1rem;
	border-radius: 1.5rem;
	overflow: hidden;
	box-shadow: #cbcbcb 0 0;
	transition: box-shadow 0.1s ease-in-out;
	padding-bottom: 1rem;

	img {
		border-radius: 0.5rem;
		object-fit: cover;
		width: 100%;
		max-height: 10vw;
	}

	h3,
	div.info {
		padding: 0.5rem 0.75rem 0;
		margin: 0;

		div.date {
			color: var(--ud-dark-grey);
			font-weight: 600;
		}

		div.tags {
			display: flex;
			align-items: center;

			div.tag {
				font-size: 80%;
				border: 1px solid var(--ud-pink);
				border-radius: 0.25rem;
				width: fit-content;
				padding: 0.1rem 0.2rem;
				margin-right: 0.1rem;
			}
		}
	}

	h3 {
		font-size: 1.25rem;
		color: var(--ud-dark-grey);
	}
}

a.trip-tile {
	border-radius: 0.5rem;
	border: 1px solid var(--ud-pink);

	img {
		max-height: 25vh;
		border-radius: 0.5rem 0.5rem 0 0;
	}

	h3 {
		font-size: 150%;
		color: var(--ud-blue);
	}

	div.info {
		display: flex;
		align-items: center;
		justify-content: space-between;
	}
}

a.event-tile:hover {
	box-shadow: var(--ud-blue) 0px 0px 8px 3px;
}

a.trip-tile:hover {
	box-shadow: var(--ud-pink) 0px 0px 8px 3px;
}

div.sub-box {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	border: 0.25rem solid var(--ud-pink);
	background-color: var(--ud-blue);
	font-size: 120%;

	h1 {
		color: var(--ud-pink);
		margin: 0;
		padding: 5rem 2rem;
		font-size: 300%;
	}

	div.expiry,
	div.credits {
		padding: 1rem;
		border-left: 0.25rem var(--ud-pink);

		span,
		p {
			color: var(--ud-white);
		}

		p {
			font-weight: 600;
			font-size: 125%;
			margin: 0.25rem 0 0 0;
			text-align: right;
		}
	}

	a.cancel {
		display: block;
		margin-left: auto;
		margin-right: 0.5rem;
		background-color: var(--ud-red);
		color: var(--ud-white);
		font-weight: 600;
		padding: 1rem 1.5rem;
		border-radius: 2.5rem;
		font-size: 90%;
		text-transform: uppercase;
	}
}

div.front-page {
	position: relative;
	height: 75vh;
	width: 100vw;
	display: flex;
	flex-direction: column;
	justify-content: space-around;
	align-items: center;

	div.background-image {
		position: absolute;
		top: 0;
		left: 0;
		height: 75vh;
		width: 100vw;
		z-index: -1;

		img {
			width: 100%;
			height: 100%;
			object-fit: cover;
		}
	}

	div.action {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;

		h2,
		a {
			text-align: center;
			color: var(--ud-white);
			font-weight: 500;
			font-size: 125%;
		}

		a {
			font-size: 150%;
			color: var(--ud-pink);
			background-color: var(--ud-background);
			width: fit-content;
			padding: 1rem 2rem;
			border-radius: 0.25rem;
			border: 0.5rem solid var(--ud-blue);
		}
	}
}



footer {
	text-align: center;
	border-top: 1rem solid var(--ud-pink);
	padding: 0.25rem;
}