/*!
Theme Name: Cotswold Lakes and Escapes
Author: Athena Web Designs Ltd
Author URI: https://www.athenawebdesigns.co.uk/
Description: A custom theme built for Cotswold Lakes and Escapes
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
Text Domain: cle

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/

/*--------------------------------------------------------------
# Generic
--------------------------------------------------------------*/

/* Normalize
--------------------------------------------- */

/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
	========================================================================== */

/**
* 1. Correct the line height in all browsers.
* 2. Prevent adjustments of font size after orientation changes in iOS.
*/
html {
	line-height: 1.15;
	-webkit-text-size-adjust: 100%;
}

/* Sections
	========================================================================== */

/**
* Remove the margin in all browsers.
*/
body {
	margin: 0;
}

/**
* Render the `main` element consistently in IE.
*/
main {
	display: block;
}

/**
* Correct the font size and margin on `h1` elements within `section` and
* `article` contexts in Chrome, Firefox, and Safari.
*/
h1 {
	font-size: 2em;
	margin: 0.67em 0;
}

/* Grouping content
	========================================================================== */

/**
* 1. Add the correct box sizing in Firefox.
* 2. Show the overflow in Edge and IE.
*/
hr {
	box-sizing: content-box;
	height: 0;
	overflow: visible;
}

/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
pre {
	font-family: monospace, monospace;
	font-size: 1em;
}

/* Text-level semantics
	========================================================================== */

/**
* Remove the gray background on active links in IE 10.
*/
a {
	background-color: transparent;
}

/**
* 1. Remove the bottom border in Chrome 57-
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
*/
abbr[title] {
	border-bottom: none;
	text-decoration: underline;
	text-decoration: underline dotted;
}

/**
* Add the correct font weight in Chrome, Edge, and Safari.
*/
b,
strong {
	font-weight: bolder;
}

/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
code,
kbd,
samp {
	font-family: monospace, monospace;
	font-size: 1em;
}

/**
* Add the correct font size in all browsers.
*/
small {
	font-size: 80%;
}

/**
* Prevent `sub` and `sup` elements from affecting the line height in
* all browsers.
*/
sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sub {
	bottom: -0.25em;
}

sup {
	top: -0.5em;
}

/* Embedded content
	========================================================================== */

/**
* Remove the border on images inside links in IE 10.
*/
img {
	border-style: none;
}

/* Forms
	========================================================================== */

/**
* 1. Change the font styles in all browsers.
* 2. Remove the margin in Firefox and Safari.
*/
button,
input,
optgroup,
select,
textarea {
	font-family: inherit;
	font-size: 100%;
	line-height: 1.15;
	margin: 0;
}

/**
* Show the overflow in IE.
* 1. Show the overflow in Edge.
*/
button,
input {
	overflow: visible;
}

/**
* Remove the inheritance of text transform in Edge, Firefox, and IE.
* 1. Remove the inheritance of text transform in Firefox.
*/
button,
select {
	text-transform: none;
}

/**
* Correct the inability to style clickable types in iOS and Safari.
*/
button,
[type="button"],
[type="reset"],
[type="submit"] {
	-webkit-appearance: button;
}

/**
* Remove the inner border and padding in Firefox.
*/
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
	border-style: none;
	padding: 0;
}

/**
* Restore the focus styles unset by the previous rule.
*/
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
	outline: 1px dotted ButtonText;
}

/**
* Correct the padding in Firefox.
*/
fieldset {
	padding: 0.35em 0.75em 0.625em;
}

/**
* 1. Correct the text wrapping in Edge and IE.
* 2. Correct the color inheritance from `fieldset` elements in IE.
* 3. Remove the padding so developers are not caught out when they zero out
*		`fieldset` elements in all browsers.
*/
legend {
	box-sizing: border-box;
	color: inherit;
	display: table;
	max-width: 100%;
	padding: 0;
	white-space: normal;
}

/**
* Add the correct vertical alignment in Chrome, Firefox, and Opera.
*/
progress {
	vertical-align: baseline;
}

/**
* Remove the default vertical scrollbar in IE 10+.
*/
textarea {
	overflow: auto;
}

/**
* 1. Add the correct box sizing in IE 10.
* 2. Remove the padding in IE 10.
*/
[type="checkbox"],
[type="radio"] {
	box-sizing: border-box;
	padding: 0;
}

/**
* Correct the cursor style of increment and decrement buttons in Chrome.
*/
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
	height: auto;
}

/**
* 1. Correct the odd appearance in Chrome and Safari.
* 2. Correct the outline style in Safari.
*/
[type="search"] {
	-webkit-appearance: textfield;
	outline-offset: -2px;
}

/**
* Remove the inner padding in Chrome and Safari on macOS.
*/
[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
}

/**
* 1. Correct the inability to style clickable types in iOS and Safari.
* 2. Change font properties to `inherit` in Safari.
*/
::-webkit-file-upload-button {
	-webkit-appearance: button;
	font: inherit;
}

/* Interactive
	========================================================================== */

/*
* Add the correct display in Edge, IE 10+, and Firefox.
*/
details {
	display: block;
}

/*
* Add the correct display in all browsers.
*/
summary {
	display: list-item;
}

/* Misc
	========================================================================== */

/**
* Add the correct display in IE 10+.
*/
template {
	display: none;
}

/**
* Add the correct display in IE 10.
*/
[hidden] {
	display: none;
}

/* Box sizing
--------------------------------------------- */

/* Inherit box-sizing to more easily change it's value on a component level.
@link http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
*,
*::before,
*::after {
	box-sizing: inherit;
}

html {
	box-sizing: border-box;
}

/*--------------------------------------------------------------
# Base
--------------------------------------------------------------*/

/* Typography
--------------------------------------------- */
body,
button,
input,
select,
optgroup,
textarea {
	color: #404040;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
	font-size: 1rem;
	line-height: 1.5;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	clear: both;
}

p {
	margin-bottom: 1.5em;
}

dfn,
cite,
em,
i {
	font-style: italic;
}

blockquote {
	margin: 0;
}

address {
	margin: 0 0 1.5em;
}

pre {
	background: #eee;
	font-family: "Courier 10 Pitch", courier, monospace;
	line-height: 1.6;
	margin-bottom: 1.6em;
	max-width: 100%;
	overflow: auto;
	padding: 1.6em;
	color: #222;
}

code,
kbd,
tt,
var {
	font-family: monaco, consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
}

abbr,
acronym {
	border-bottom: 1px dotted #666;
	cursor: help;
}

mark,
ins {
	background: #fff9c0;
	text-decoration: none;
}

big {
	font-size: 125%;
}

/* Elements
--------------------------------------------- */
body {
	background: #fff;
}

hr {
	background-color: #ccc;
	border: 0;
	height: 1px;
	margin-bottom: 1.5em;
}

ul,
ol {
	padding-left: 1.3em;
	margin-top: 0;
}

ul {
	list-style: circle;
}

ol {
	list-style: decimal;
}

li > ul,
li > ol {
	margin-bottom: 0;
	margin-left: 1.5em;
}

li {
	margin: 0.5em 0;
}

li::marker {
	color: var(--colour-2);
}

dt {
	font-weight: 700;
}

dd {
	margin: 0 1.5em 1.5em;
}

/* Make sure embeds and iframes fit their containers. */
embed,
iframe,
object {
	max-width: 100%;
}

img {
	height: auto;
	max-width: 100%;
}

figure {
	margin: 1em 0;
}

table {
	margin: 0 0 1.5em;
	width: 100%;
}

th,
td {
	padding: 0.4em;
	vertical-align: top;
}

thead tr:nth-child(odd) th,
tbody tr:nth-child(even) th,
tbody tr:nth-child(even) td {
	background-color: color-mix(in srgb, currentColor 5%, transparent);
}

th {
	text-align: inherit;
}

a {
	color: var(--colour-1);
}

a:hover {
	text-decoration: underline;
}

p {
	margin: 1.5em 0;
	text-wrap: pretty;
}


h1, h2, h3, h4, h5, h6 {
	margin-top: 0;
	line-height: 1;
	font-family: 'adobe-caslon-pro', serif;
	font-weight: 600;
	text-wrap: pretty;
}

.title-inherit-colour h1,
.title-inherit-colour h2,
.title-inherit-colour h3,
.title-inherit-colour h4,
.title-inherit-colour h5,
.title-inherit-colour h6 {
	color: inherit;
}

h1 {
	margin-bottom: 0.5em;
	font-size: 4.3em;
}

h2 {
	margin-bottom: 0.5em;
	font-size: 2.1em;
	line-height:1.2em;
}

h3 {
	margin-bottom: 1em;
	font-size: 1.3em;
	font-family: inherit;
	font-weight: normal;
}

h4 {
	margin-bottom: 0.3em;
	font-size: 1.2em;
	font-weight: normal;
}

h5 {
	margin-bottom: 0.2em;
	font-size: 1em;
}

h6 {
	margin-bottom: 0.1em;
	font-size: 1em;
}

.img-blk img {
	display: block;
	width: 100%;
}

.text-content {
	text-wrap: pretty;
}

.text-content > ul:first-child > li:first-child,
.text-content > :first-child,
.trim-first > :first-child,
.trim-content > :first-child {
	margin-top: 0;
}

.text-content > ul:last-child > li:last-child,
.text-content > :last-child,
.trim-last > :last-child,
.trim-content > :last-child {
	margin-bottom: 0;
}

/* Forms
--------------------------------------------- */
.button,
button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
	display: inline-block;
	padding: 1em 1.6em;
	border: 1px solid;
	border-radius: 5px;
	background: transparent;
	text-align: center;
	line-height: 1;
	font-family: inherit;
	font-weight: 600;
	color: var(--colour-1);
	text-decoration: none;
	cursor: pointer;
	-webkit-transition: all 200ms;
	transition: all 200ms;
}

.button:hover,
button:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover {
	background-color: var(--colour-1);
	border-color: var(--colour-1);
	color: var(--colour-1-inverted);
	text-decoration: none;
}

.button:focus,
button:active,
button:focus,
input[type="button"]:active,
input[type="button"]:focus,
input[type="reset"]:active,
input[type="reset"]:focus,
input[type="submit"]:active,
input[type="submit"]:focus {
}

.button::after,
button::after {
	display: inline-block;
	content: '';
	position: relative;
	top: 0.1em;
	width: 1.5em;
	height: 0.8em;
	margin-left: 0.5em;
	background: center no-repeat url('images/arrow-right-blue.svg');
	background-size: contain;
}

.button:hover::after,
button:hover::after {
	background-image: url('images/arrow-right-white.svg');
}

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="range"],
input[type="date"],
input[type="month"],
input[type="week"],
input[type="time"],
input[type="datetime"],
input[type="datetime-local"],
input[type="color"],
textarea,
select {
	max-width: 100%;
	color: #666;
	border: 1px solid #ccc;
	border-radius: 5px;
	padding: 0.8em 1.2em;
	font-family: inherit;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
input[type="range"]:focus,
input[type="date"]:focus,
input[type="month"]:focus,
input[type="week"]:focus,
input[type="time"]:focus,
input[type="datetime"]:focus,
input[type="datetime-local"]:focus,
input[type="color"]:focus,
textarea:focus {
	color: #111;
}

textarea {
	width: 100%;
	height: 6.3em;
}

input,
textarea,
select {
	max-width: 100%;
}

.form-fields,
.wpcf7 form {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-start;
	gap: calc(var(--page-padding) / 4) calc(var(--page-padding) / 2);
}

.form-field {
	flex: 1 1 auto;
	min-width: 12em;
	margin: 0;
}

.form-field-full {
	width: 100%;
}

.form-field-half {
	width: calc(50% - (var(--page-padding) / 2));
}

.form-field-third {
	width: calc(32% - (var(--page-padding) / 3));
	min-width: 7em;
}

.form-field-name-title {
	width: 2em;
	min-width: 4em;
}

.form-field-submit {
	display: flex;
	align-items: stretch;
	flex: 0;
	align-self: stretch;
	position: relative;
	margin-left: auto;
	text-align: right;
	width: auto;
	min-width: auto;
	order: 1;
}

.wpcf7 .form-field-submit .wpcf7-spinner {
	position: absolute;
	top: 0;
	left: 0;
	margin-left: 0;
}

.wpcf7 .wpcf7-form-control-wrap {
	display: block;
}

.form-field-submit button,
.form-field-submit input {
	flex: 1;
}

form .description {
	opacity: 0.8;
	margin: 0 0 0.4em;
	line-height: 1.3;
	font-size: 0.9em;
}

.form-field label {
	display: block;
	font-size: 0.9em;
}

.wpcf7-list-item {
	margin: 0 0.8em 0 0;
}

.form-field input[type="text"],
.form-field input[type="email"],
.form-field input[type="url"],
.form-field input[type="password"],
.form-field input[type="search"],
.form-field input[type="number"],
.form-field input[type="tel"],
.form-field input[type="range"],
.form-field input[type="date"],
.form-field input[type="month"],
.form-field input[type="week"],
.form-field input[type="time"],
.form-field input[type="datetime"],
.form-field input[type="datetime-local"],
.form-field input[type="color"],
.form-field textarea,
.form-field select {
	width: 100%;
}

.form-field .wpcf7-checkbox label,
.form-field .wpcf7-radio label {
	font-family: inherit;
	color: inherit;
	font-size: 0.9em;
}

.wpcf7 [type="checkbox"],
.wpcf7 [type="radio"],
.wpcf7 .wpcf7-list-item-label {
	vertical-align: middle;
}

.wpcf7-not-valid-tip {
	margin-top: 0.3em;
	font-size: 0.85em;
	line-height: 1.1;
}

.wpcf7 form .wpcf7-response-output {
	flex: 1 1 50%;
	min-width: 50%;
	margin: 0;
	padding: 0.7em 1em;
}

.form-field-validation-error {
	display: block;
	font-size: 0.9em;
	color: red;
}

.form-field .file-field-preview {
	float: left;
	width: 4.7em;
	margin-right: 1em;
}

.form-field .file-field-preview a {
	display: block;
}

.form-field .file-field-preview img {
	display: block;
	width: 100%;
	aspect-ratio: 1/1;
	object-fit: cover;
	border-radius: 5px;
}

.form-field .file-field-preview label {
	margin: -0.5em 0.3em 0;
	padding: 1em 0.5em 0.5em;
	border-radius: 0 0 5px 5px;
	background-color: #e7ecf1;
	text-align: center;
	font-size: 0.7em;
	line-height: 1;
	font-style: italic;
}

.form-field .file-field-preview label input {
	vertical-align: middle;
}

.form-field .file-field-replace {
	display: block;
	font-size: 0.8em;
	font-style: italic;
}

.form-field .file-field-replace + input {
	clear: none;
	width: auto;
}

/*--------------------------------------------------------------
# Layouts
--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Components
--------------------------------------------------------------*/

/* Global
--------------------------------------------- */
:root {
	--colour-1: #002b51;
	--colour-2: #35b8c0;
	--colour-3: #197278;
	--colour-1: #003150;
	--colour-2: #aaa38e;
	--colour-3: #44697d;
	--colour-1-inverted: #fff;
	--colour-2-inverted: #fff;
	--colour-3-inverted: #fff;
	--colour-text: #2d2d2d;
	--admin-bar-height: 32px;
	--header-height: 8.3rem;
	--header-height-scrolled-down: 7rem;
	--page-padding: 3.5rem;
	--section-gap: 9rem;
}

body {
	background-color: #fff;
	word-wrap: break-word;
	line-height: 1.5;
	font-family: 'Work Sans', sans-serif;
	font-optical-sizing: auto;
	font-weight: 400;
	font-style: normal;
	font-size: 16px;
	color: var(--colour-text);
	margin: 0;
	accent-color: var(--colour-1);
}

body.admin-bar {
	--header-height-scrolled-down: calc(7rem + var(--admin-bar-height));
}

.wrapper-wide,
.wrapper-large,
.wrapper {
	width: 90%;
	width: calc(100% - (var(--page-padding) * 2));
	margin: 0 auto;
}

.wrapper-large {
	max-width: 2000px;
}

.wrapper {
	max-width: 1200px;
}

::selection {
	background: var(--colour-2);
	color: var(--colour-2-inverted);
}

/* Global
--------------------------------------------- */
.clear-float {
	clear: both;
}

.text-content:before,
.text-content:after,
.cf:before,
.cf:after {
	content: " ";
	display: table;
}

.text-content:after,
.cf:after {
	clear: both;
}

.cf {
	*zoom: 1;
}

.clear:before,
.clear:after,
.entry-content:before,
.entry-content:after,
.comment-content:before,
.comment-content:after,
.site-content:before,
.site-content:after {
	content: "";
	display: table;
	table-layout: fixed;
}

.clear:after,
.entry-content:after,
.comment-content:after,
.site-header:after,
.site-content:after,
.site-footer:after {
	clear: both;
}

/* Posts and pages
--------------------------------------------- */
.sticky {
	display: block;
}

.updated:not(.published) {
	display: none;
}

.page-links {
	clear: both;
	margin: 0 0 1.5em;
}

/* Comments
--------------------------------------------- */
.comment-content a {
	word-wrap: break-word;
}

.bypostauthor {
	display: block;
}

/* Widgets
--------------------------------------------- */
.widget {
	margin: 0 0 1.5em;
}

.widget select {
	max-width: 100%;
}

/* Media
--------------------------------------------- */
.page-content .wp-smiley,
.entry-content .wp-smiley,
.comment-content .wp-smiley {
	border: none;
	margin-bottom: 0;
	margin-top: 0;
	padding: 0;
}

/* Make sure logo link wraps around logo image. */
.custom-logo-link {
	display: inline-block;
}

/* Captions
--------------------------------------------- */
.wp-caption {
	margin-bottom: 1.5em;
	max-width: 100%;
}

.wp-caption img[class*="wp-image-"] {
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.wp-caption .wp-caption-text {
	margin: 0.8075em 0;
}

.wp-caption-text {
	text-align: center;
}

/* Galleries
--------------------------------------------- */
.gallery {
	margin-bottom: 1.5em;
	display: grid;
	grid-gap: 1.5em;
}

.gallery-item {
	display: inline-block;
	text-align: center;
	width: 100%;
}

.gallery-columns-2 {
	grid-template-columns: repeat(2, 1fr);
}

.gallery-columns-3 {
	grid-template-columns: repeat(3, 1fr);
}

.gallery-columns-4 {
	grid-template-columns: repeat(4, 1fr);
}

.gallery-columns-5 {
	grid-template-columns: repeat(5, 1fr);
}

.gallery-columns-6 {
	grid-template-columns: repeat(6, 1fr);
}

.gallery-columns-7 {
	grid-template-columns: repeat(7, 1fr);
}

.gallery-columns-8 {
	grid-template-columns: repeat(8, 1fr);
}

.gallery-columns-9 {
	grid-template-columns: repeat(9, 1fr);
}

.gallery-caption {
	display: block;
}


/* Accessibility
--------------------------------------------- */

/* Text meant only for screen readers. */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	background-color: #f1f1f1;
	border-radius: 3px;
	box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
	clip: auto !important;
	clip-path: none;
	color: #21759b;
	display: block;
	font-size: 0.875rem;
	font-weight: 700;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000;
}

/* Do not show the outline on the skip link target. */
#primary[tabindex="-1"]:focus {
	outline: 0;
}

/* Alignments
--------------------------------------------- */
.alignleft {

	/*rtl:ignore*/
	float: left;

	/*rtl:ignore*/
	margin-right: 1.5em;
	margin-bottom: 1.5em;
}

.alignright {

	/*rtl:ignore*/
	float: right;

	/*rtl:ignore*/
	margin-left: 1.5em;
	margin-bottom: 1.5em;
}

.aligncenter {
	clear: both;
	display: block;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 1.5em;
}


/* Header
--------------------------------------------- */
.site-header {
	--gap: 2rem;

	position: fixed;
	z-index: 10;
	width: 100%;
	padding: calc(var(--page-padding) * 0.7) 0;
	background-color: #fff;
	transition: all 200ms;
}

.scrolled-down .site-header {
	padding: calc(var(--page-padding) * 0.5) 0;
}

.site-header-inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--gap);
}

.site-header .logo {
	display: block;
	width: 256px;
	margin-right: auto;
}

.site-header .logo img {
	display: block;
	width: 100%;
}

.header-search {
	line-height: 1;
}

.header-search .search-toggle {
	padding: 0;
	border: none;
	width: 1.7em;
}

.header-search .search-toggle:hover {
	background-color: transparent;
	color: var(--colour-1);
}

.header-search.active .search-toggle {
	background-color: var(--colour-1);
	color: var(--colour-1-inverted);
}

.header-search .search-toggle svg {
	display: block;
	width: 100%;
	transition: all 200ms;
}

.header-search .search-toggle:hover svg,
.header-search.active .search-toggle svg {
	transform: scale(0.7);
}

.header-search .search-toggle path {
	fill: currentColor;
}

.header-search .search-toggle::after {
	display: none;
}

.header-search form {
	display: none;
	gap: 1em;
	flex-wrap: wrap;
	position: absolute;
	top: 100%;
	right: 0;
	min-width: 100%;
	max-width: calc(100vw - (var(--page-padding) * 2));
	padding: 1.5em;
	border: 1px solid #dbdbdb;
	border-top: none;
	border-radius: 0 0 10px 10px;
	background-color: #fff;
}

.header-search.active form {
	display: flex;
}

.header-search label {
	flex: 1 1 8em;
}

.header-search .search-field {
	display: block;
	width: 100%;
}

.header-spacer {
	height: var(--header-height);
}

/* Navigation
--------------------------------------------- */
.main-navigation {
	display: flex;
	align-items: center;
	gap: var(--gap);
	position: relative;
}

.main-navigation .button {
	border-width: 2px;
}

.main-navigation .menu-container {
}

.main-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.main-navigation .menu-container > ul {
	display: flex;
	justify-content: space-between;
	gap: 2rem;
}

.main-navigation .menu-container > ul > li > ul {
	overflow-y: auto;
	display: none;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 11em), 1fr));
	gap: 1em 2.5em;
	flex-wrap: wrap;
	position: absolute;
	top: 100%;
	left: 0;
	width: 100%;
	max-height: calc(100vh - var(--header-height));
	padding: 2.5em;
	border: 1px solid #dbdbdb;
	border-top: none;
	border-radius: 0 0 10px 10px;
	background-color: #fff;
}

.main-navigation .menu-container > ul > li.focus > ul,
.main-navigation .menu-container > ul > li:hover > ul {
	display: grid;
}

.main-navigation .menu-container > ul > li > ul > li:nth-child(2):last-child > ul {
	columns: 9em;
}

.main-navigation li {
	margin: 0;
	padding: 0;
}

.main-navigation .menu-container > ul > li {
	padding: 1em 0;
}

.main-navigation .menu-container > ul > li > ul > li:nth-child(2):last-child {
	grid-column: span 2;
}

.main-navigation .menu-container > ul > li > ul > li.menu-item-has-children {
	margin-bottom: 1.5em;
}

.main-navigation .menu-container > ul > li.menu-item-has-children > a::after {
	display: inline-block;
	content: '';
	width: 0.5em;
	height: 0.4em;
	vertical-align: middle;
	margin-left: 0.3em;
	background: center no-repeat url('images/arrow-dropdown-blue.svg');
	background-size: contain;
}

.main-navigation .menu-container > ul > li > ul > li > a {
	font-weight: bold;
}

.main-navigation .menu-container > ul > li > ul > li:not(.menu-item-has-children) > a {
	padding: 0.7em 0.8em;
	border: 1px solid #ddd;
	border-radius: 5px;
}

.main-navigation .menu-container > ul > li > ul > li:not(.menu-item-has-children) > a:hover {
	border-color: var(--colour-1);
	text-decoration: none;
}

.main-navigation .menu-container > ul > li > ul > li.menu-item-has-children > a {
	margin-bottom: 1em;
	padding-bottom: 0.4em;
	border-bottom: 2px solid #eee;
}

.main-navigation .menu-container a {
	display: block;
	text-decoration: none;
	color: inherit;
}

.main-navigation .menu-container a:hover {
	text-decoration: underline;
}

.main-navigation .menu-container a[href="#"] {
	cursor: text;
}

.main-navigation .menu-container a[href="#"]:hover {
	text-decoration: none;
}

.menu-toggle {
	display: none;
	position: relative;
	width: 31px;
	padding: 6px 0;
	border: 3px solid;
	border-width: 3px 0;
	border-radius: 0;
	background: none;
	color: var(--colour-1);
	line-height: 0;
	font-size: 0;
}

.menu-toggle:hover {
	background: none;
}

.menu-toggle::before {
	display: block;
	content: '';
	border-top: inherit;
}

.site-main .comment-navigation,
.site-main
.posts-navigation,
.site-main
.post-navigation {
	margin: 0 0 1.5em;
}

.comment-navigation .nav-links,
.posts-navigation .nav-links,
.post-navigation .nav-links {
	display: flex;
}

.comment-navigation .nav-previous,
.posts-navigation .nav-previous,
.post-navigation .nav-previous {
	flex: 1 0 50%;
}

.comment-navigation .nav-next,
.posts-navigation .nav-next,
.post-navigation .nav-next {
	text-align: end;
	flex: 1 0 50%;
}

.single-post-navigation {
	display: flex;
	gap: var(--page-padding);
	flex-wrap: wrap;
}

.single-post-navigation a {
	overflow: hidden;
	flex: 1 1 calc(50% - var(--page-padding));
	display: flex;
	flex-direction: column;
	justify-content: center;
	position: relative;
	min-width: min(100%, 19em);
	padding: calc(var(--page-padding) * 2) var(--page-padding);
	background-color: var(--colour-1);
	border-radius: 5px;
	color: var(--colour-1-inverted);
	text-decoration: none;
}

.single-post-navigation a.next-post {
	text-align: right;
}

.single-post-navigation a:hover {
	text-decoration: none;
}

.single-post-navigation a img {
	opacity: 0.7;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: all 200ms;
}

.single-post-navigation a:hover img {
	opacity: 0.2;
	transform: scale(1.1);
}

.single-post-navigation a .label {
	display: block;
	position: relative;
}

.single-post-navigation a .title {
	display: block;
	position: relative;
	font-size: 1.5em;
	line-height: 1.2;
}

/* Page Banner
--------------------------------------------- */
.page-banner {
	overflow: hidden;
	display: flex;
	flex-direction: column;
	justify-content: center;
	position: relative;
	padding: var(--section-gap) 0;
	min-height: min(50vh, 20em);
	background-color: var(--colour-1);
	color: #fff;
	text-align: center;
}

.home .page-banner {
	min-height: calc(100vh - var(--header-height) - var(--page-padding) - 2em);
}

.page-banner img,
.page-banner video {
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform-origin: bottom center;
}

.page-banner video {
	object-position: top;
}

.page-banner::before {
	opacity: 0.15;
	content: '';
	position: absolute;
	z-index: 1;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: #000;
}

.page-banner.no-background::before {
	display: none;
}

.page-banner .banner-caption {
	position: relative;
	z-index: 1;
}

.page-banner .banner-caption .pre-title {
	margin: 0 0 1.5em;
	font-family: inherit;
	font-weight: normal;
	font-size: 1.3em;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-weight: 300;
}

.page-banner .banner-caption h1 {
	margin: 0;
}

.page-banner .banner-caption .sub-title {
	margin: 0;
	font-family: inherit;
	font-weight: normal;
	font-size: 2.1em;
}

.page-banner .buttons {
	margin-top: 3em;
	justify-content: center;
}

.page-banner .button {
	border: none;
	background-color: var(--colour-2);
	color: var(--colour-2-inverted);
}

.page-banner .button:nth-child(even) {
	background-color: var(--colour-1);
	color: var(--colour-1-inverted);
}

.page-banner .button::after {
	background-image: url('images/arrow-right-white.svg');
}

/* Property Search Form
--------------------------------------------- */
.property-search-form {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1.3em;
	flex-wrap: wrap;
	position: relative;
	z-index: 3;
	padding: 1.5em 2em;
	background-color: var(--colour-1);
	color: var(--colour-1-inverted);
}

.property-search-form.size-small {
	gap: 1.5em;
}

.page-banner + .property-search-form {
	width: calc(100% - (var(--page-padding) * 4));
	margin: calc(var(--page-padding) * -1) auto 0;
}

.property-search-form > svg:first-child {
	display: none;
	opacity: 0.06;
	position: absolute;
	top: -2.5em;
	right: -1em;
	width: 13em;
	pointer-events: none;
}

.property-search-form.size-small > svg:first-child {
	display: block;
}

.property-search-form .mobile-toggle {
	display: none;
	width: 100%;
	border: none;
	color: inherit;
}

.property-search-form .mobile-toggle::after {
	width: 0.6em;
	height: 0.6em;
	background-image: url('images/arrow-dropdown-white.svg');
}

.property-search-form .mobile-toggle svg {
	display: inline-block;
	width: 1.2em;
	margin-right: 0.5em;
	vertical-align: middle;
}

.property-search-form .search-form-field {
	flex: 1 1 min-content;
	display: flex;
	gap: 0.8em;
	position: relative;
	line-height: 1.2;
	cursor: pointer;
	transition: all 200ms;
}

.property-search-form.size-small .submit,
.property-search-form.size-small .search-form-field {
	flex: 1 1 calc(50% - 1.5em);
	min-width: 11em;
}

.property-search-form .search-form-field:hover,
.property-search-form .search-form-field.active {
	color: var(--colour-3-inverted);
}

.property-search-form .search-form-field::before {
	opacity: 0;
	content: '';
	position: absolute;
	top: -0.5em;
	right: -0.5em;
	bottom: -0.5em;
	left: -0.5em;
	border-radius: 5px;
	background-color: var(--colour-3);
	transform: scale(0);
	transition: all 200ms;
}

.property-search-form .search-form-field.active::before,
.property-search-form .search-form-field:hover::before {
	opacity: 0.2;
	transform: scale(1);
}

.property-search-form .search-form-field.active::before {
	opacity: 1;
	border-bottom-right-radius: 0;
	border-bottom-left-radius: 0;
}

.property-search-form .search-form-field > svg {
	display: block;
	position: relative;
	width: auto;
	min-width: 1.5em;
	height: 2.46em;
}

.property-search-form .search-form-field-text {
	position: relative;
}

.property-search-form .search-form-field-text > label {
	display: block;
	margin-bottom: 0.5em;
	font-weight: bolder;
	white-space: nowrap;
	font-size: 0.9em;
	cursor: inherit;
}

.property-search-form .search-form-field-value {
	font-size: 0.9em;
	white-space: nowrap;
}

.property-search-form .search-form-field-value::after {
	display: inline-block;
	content: '';
	width: 0.5em;
	height: 0.4em;
	vertical-align: middle;
	margin-left: 0.3em;
	background: center no-repeat url(images/arrow-dropdown-white.svg);
	background-size: contain;
}

.property-search-form .search-form-field-input {
	overflow-y: auto;
	display: none;
	position: absolute;
	z-index: 1;
	top: calc(100% + 0.5em);
	left: -0.5em;
	width: max-content;
	max-width: 80vw;
	max-height: 50vh;
	padding: 1em;
	box-shadow: 0 30px 30px rgba(0,0,0,0.1);
	scrollbar-color: var(--colour-3-inverted) transparent;
    scrollbar-width: thin;
	background-color: var(--colour-3);
	color: var(--colour-3-inverted);
	cursor: default;
}

.property-search-form .search-form-field.active .search-form-field-input {
	display: block;
}

.property-search-form .field-dates .search-form-field-input {
	max-height: inherit;
}

.property-search-form .search-form-field-input > select,
.property-search-form .search-form-field-input > input {
	display: block;
	width: 100%;
}

.property-search-form .search-form-field-input-options {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 8em), 1fr));
	gap: 1px;
	width: 24em;
	max-width: 70vw;
	background-color: rgba(255,255,255,0.2);
}

.property-search-form .search-form-field-input-options-column {
	padding-top: 1.3em;
	background-color: var(--colour-3);
}

.property-search-form .search-form-field-input-options-column h4 {
	font-family: inherit;
	letter-spacing: 0.05em;
	font-weight: bold;
	font-size: 0.8em;
	text-transform: uppercase;
	padding: 0 0.7em 0.1em;
}

.property-search-form .search-form-field-input-options-column .search-form-field-input-options {
	grid-template-columns: 1fr;
	width: auto;
}

.property-search-form .search-form-field-input-options label {
	order: var(--order);
	padding: 0.5em;
	background-color: var(--colour-3);
}

.property-search-form .search-form-field-input-options.order-column-first > label:nth-child(even) {
	/* order: calc(var(--order) - 2); */
}

/*
.property-search-form .search-form-field-input-options.count-16 > :nth-child(9),
.property-search-form .search-form-field-input-options.count-8 > :nth-child(5) {
	order: 2;
}

.property-search-form .search-form-field-input-options.count-16 > :nth-child(2),
.property-search-form .search-form-field-input-options.count-8 > :nth-child(2) {
	order: 3;
}

.property-search-form .search-form-field-input-options.count-8 > :nth-child(6) {
	order: 4;
}

.property-search-form .search-form-field-input-options.count-16 > :nth-child(3),
.property-search-form .search-form-field-input-options.count-8 > :nth-child(3) {
	order: 5;
}

.property-search-form .search-form-field-input-options.count-8 > :nth-child(7) {
	order: 6;
}

.property-search-form .search-form-field-input-options.count-16 > :nth-child(4),
.property-search-form .search-form-field-input-options.count-8 > :nth-child(4) {
	order: 7;
}

.property-search-form .search-form-field-input-options.count-8 > :nth-child(8) {
	order: 8;
}

.property-search-form .search-form-field-input-options.count-16 > :nth-child(5) {
	order: 9;
}

.property-search-form .search-form-field-input-options.count-16 > :nth-child(6) {
	order: 11;
}

.property-search-form .search-form-field-input-options.count-16 > :nth-child(7) {
	order: 13;
}

.property-search-form .search-form-field-input-options.count-16 > :nth-child(8) {
	order: 15;
}
*/

.property-search-form input[name="dates"] {
	margin-bottom: 1px;
	border: none;
	border-radius: 0;
}

.property-search-form .submit {
	flex: 1 1 max-content;
	display: flex;
	justify-content: center;
	align-items: center;
	/* margin-left: auto; */
	position: relative;
	border: none;
	background-color: var(--colour-2);
	color: var(--colour-2-inverted);
}

.property-search-form .submit::after {
	display: none;
}

.property-search-form .submit svg {
	display: inline-block;
	width: 1.5em;
	margin-right: 0.5em;
	vertical-align: middle;
}

body .air-datepicker {
	--adp-border-color-inline: #fff;
	--adp-border-radius: 0;
	--adp-accent-color: var(--colour-2);
	--adp-day-name-color: var(--colour-2);
	--adp-color-disabled: #ddd;
	--adp-cell-background-color-selected: var(--adp-accent-color);
	--adp-cell-background-color-selected-hover: color-mix(in srgb, var(--adp-accent-color), #fff 10%);
	--adp-background-color-selected-other-month: color-mix(in srgb, var(--adp-accent-color), #fff 60%);

	-webkit-user-select: none;
	-ms-user-select: none;
	user-select: none;
}

/* Sale Property Search Form
--------------------------------------------- */
.wppf_results_layout.sale-property-search-form {
	display: flex;
	align-items: stretch;
}

.single-wppf_property .wppf_results_layout.sale-property-search-form {
	margin: 0 auto;
}

.single-wppf_property .wppf_results_layout.sale-property-search-form.wrapper-large {
	width: 90%;
	width: calc(100% - (var(--page-padding) * 2));
}

.sale-property-search-form .wppf_result_container,
.sale-property-search-form .wppf_search {
	display: flex;
	flex: 1;
}

.sale-property-search-form .wppf_result_container {
	margin: 0;
	border: none;
	background: none;
}

.sale-property-search-form form {
	flex: 1;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1.3em;
	flex-wrap: wrap;
}

.sale-property-search-form .field_wppf_area {
	display: none;
}

/* Page Sections
--------------------------------------------- */
.page-section {
	margin: var(--section-gap) auto;
}

.buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 1em 2em;
}

.column-pre-title,
.section-pre-title {
	margin-bottom: 1.2em;
	font-size: 1.5em;
}

.column-pre-title {
	margin-bottom: 1em;
	font-size: 1.2em;
}

/* Section Intro
--------------------------------------------- */
.section-intro {
	display: grid;
	grid-template-columns: auto max-content;
	gap: 1.3em 0;
	margin-bottom: var(--page-padding);
}

.section-intro .section-title {
	align-self: center;
	margin: 0;
}

.section-intro:has(.button:nth-child(2)) .section-title {
	grid-row: span 2;
}

.section-intro .intro-text {
	grid-row-start: 2;
}

.section-intro .button {
	grid-row: 1 / 3;
	grid-column: 2;
	align-self: center;
	margin-left: 5vw;
	padding: 1.6em;
}

/* Page Section: One Column
--------------------------------------------- */
.section-type-one-column {
	max-width: 44em;
}

.single-post .section-type-one-column {
	max-width: 56em;
}

.page .section-type-one-column:first-child:not(:last-child) {
	text-align: center;
}

.page .section-type-one-column:first-child:not(:last-child)::after {
	content: '';
	width: 10em;
	margin: calc(var(--section-gap) / 1.75) auto;
	border-bottom: 1px solid #ddd;
}

.section-type-one-column .section-title {
	font-size: 2.45em;
}

/* Page Section: Two Columns
--------------------------------------------- */
.section-type-two-columns.columns-text-text + .section-type-two-columns.columns-text-text {
	margin-top: calc((var(--section-gap) * -1) + var(--page-padding));
}

.section-type-two-columns .columns {
	display: flex;
	gap: calc(var(--section-gap) / 2) var(--page-padding);
}

.section-type-two-columns.columns-image-text .columns,
.section-type-two-columns.columns-text-image .columns {
	row-gap: var(--page-padding);
}

.section-type-two-columns .col {
	flex: 1 1 50%;
}

.section-type-two-columns .column-image-container {
	overflow: hidden;
	position: relative;
}

.section-type-two-columns.columns-image-text .col-image .column-image-container img,
.section-type-two-columns.columns-text-image .col-image .column-image-container img,
.section-type-two-columns.columns-image-text .col-image .column-image-container,
.section-type-two-columns.columns-text-image .col-image .column-image-container {
	height: 100%;
	max-height: inherit;
}

.section-type-two-columns.columns-image-text .col-text,
.section-type-two-columns.columns-text-image .col-text {
	align-self: center;
}

.section-type-two-columns .column-image-container img {
	display: block;
	width: 100%;
	object-fit: cover;
}

.section-type-two-columns.columns-image-image .column-image-container img,
.section-type-two-columns.columns-text-text .column-image-container img {
	max-height: 50vh;
}

.section-type-two-columns .column-image-title-container {
	position: absolute;
	z-index: 2;
	bottom: 0;
	left: 0;
	width: 100%;
	padding: calc(var(--page-padding) * 0.75);
	color: #fff;
	pointer-events: none;
}

.section-type-two-columns .column-image-title-container::before {
	opacity: 0.7;
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 150%;
	background: linear-gradient(to top, #000, transparent);
}

.section-type-two-columns .column-image-title-container h2,
.section-type-two-columns .column-image-title-container h3 {
	position: relative;
	font-family: inherit;
}

.section-type-two-columns .column-image-title-container h2 {
	font-size: 1.5em;
}

.section-type-two-columns .column-image-title-container h3 {
	font-size: 1.2em;
	font-weight: normal;
}

.section-type-two-columns .column-image-container .column-image-link {
	opacity: 0;
	position: absolute;
	z-index: 1;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: var(--colour-1);
	transition: all 200ms;
}

.section-type-two-columns .column-image-container .column-image-link:hover {
	opacity: 0.5;
}

.section-type-two-columns .col-list {
	flex-basis: 40%;
	padding-left: var(--page-padding);
	border-left: 2px solid #eee;
	font-size: 1.3em;
}

.section-type-two-columns .col-list .column-title {
	margin-bottom: 1.2em;
	font-family: inherit;
	font-size: 1em;
}

.section-type-two-columns .col-list ul {
	display: flex;
	flex-direction: column;
	gap: 1em;
	list-style: none;
	margin: 0;
	padding: 0;
}

.section-type-two-columns .col-list li {
	position: relative;
	padding-left: 2.5em;
}

.section-type-two-columns .col-list li img {
	position: absolute;
	top: 0.7em;
	left: 0;
	width: 1.3em;
	max-height: 1.7em;
	object-fit: contain;
	transform: translateY(-50%);
}

.section-type-two-columns .col-form {
	display: flex;
}

/* Page Section: Boxes
--------------------------------------------- */
.section-type-boxes .section-intro {
	margin-bottom: 1.8em;
}

.section-type-boxes .items {
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-auto-rows: auto;
	gap: calc(var(--page-padding) / 2);
}

.section-type-boxes.item-count-even .items {
	grid-template-columns: 1fr 1fr;
}

.section-type-boxes.item-count-1 .items {
	display: block;
}

.section-type-boxes.item-count-2 .items {
	display: flex;
}

.section-type-boxes .box {
	overflow: hidden;
	position: relative;
	background-color: var(--colour-1);
	color: var(--colour-1-inverted);
	text-decoration: none;
}

.section-type-boxes .box:nth-child(4n),
.section-type-boxes .box:nth-child(4n+1) {
	background-color: var(--colour-2);
}

.section-type-boxes.item-count-odd .box:nth-child(1) {
	grid-row: span 2;
}

.section-type-boxes.item-count-odd .box {
	background-color: var(--colour-2);
}

.section-type-boxes.item-count-odd .box:nth-child(2),
.section-type-boxes.item-count-odd .box:nth-child(4n),
.section-type-boxes.item-count-odd .box:nth-child(4n+3) {
	background-color: var(--colour-1);
}

.section-type-boxes .box-image {
	display: block;
	width: 100%;
	height: 100%;
	aspect-ratio: 2/1;
	object-fit: cover;
}

.section-type-boxes .box-text {
	padding: calc(var(--page-padding) * 0.75);
}

.section-type-boxes.style-image .box-text {
	position: absolute;
	z-index: 2;
	bottom: 0;
	left: 0;
	width: 100%;
}

.section-type-boxes.style-image .box-text::before {
	opacity: 0.7;
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 150%;
	background: linear-gradient(to top, #000, transparent);
}

.section-type-boxes.style-image .box-title {
	position: relative;
	margin: 0;
	font-family: inherit;
	font-size: 1.5em;
	font-weight: bolder;
}

.section-type-boxes.style-image .box-text-text {
	position: relative;
	margin-top: 0.4em;
	font-size: 1.2em;
}

.section-type-boxes.style-colour .box {
	display: flex;
	flex-direction: column;
}

.section-type-boxes.item-count-odd.style-colour .box:nth-child(1),
.section-type-boxes.item-count-odd.style-colour .box:nth-child(2),
.section-type-boxes.item-count-odd.style-colour .box:nth-child(3) {
	justify-content: center;
}

.section-type-boxes.style-colour .box-title {
	font-size: 2.1em;
}

/* Page Section: Property Carousel
--------------------------------------------- */
.section-type-property-carousel {
}

/* Page Section: Testimonials
--------------------------------------------- */
.section-type-testimonials .section-intro {
	margin-bottom: 0;
}

.section-type-testimonials .testimonial-row {
	padding: 30px var(--page-padding);
}

.section-type-testimonials .testimonial-grid-item-image {
	display: none;
}

/* Page Section: Gallery
--------------------------------------------- */
.section-type-gallery {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 17em), 1fr));
	gap: 1em;
}

.section-type-gallery a {
	overflow: hidden;
	position: relative;
}

.section-type-gallery a::after {
	opacity: 0;
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: var(--colour-1);
	transition: all 200ms;
	pointer-events: none;
}

.section-type-gallery a:hover::after {
	opacity: 0.3;
}

.section-type-gallery img {
	display: block;
	width: 100%;
	aspect-ratio: 1/1;
	object-fit: cover;
	transition: all 30s;
}

.section-type-gallery a:hover img {
	transform: scale(1.1);
	transition: all 10s;
}

/* Page Section: Call to Action
--------------------------------------------- */
.section-type-call-to-action {
	position: relative;
	padding: calc(var(--page-padding) * 2);
	background-color: var(--colour-1);
	color: var(--colour-1-inverted);
}

.section-type-call-to-action > img {
	opacity: 0.2;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.section-type-call-to-action .cta-content {
	display: flex;
	align-items: center;
	gap: var(--page-padding);
	position: relative;
}

.section-type-call-to-action .text {
	flex: 1;
	position: relative;
	font-size: 1.3em;
}

.section-type-call-to-action .text:last-child {
	text-align: center;
}

.section-type-call-to-action .divider {
	align-self: stretch;
	position: relative;
	border-left: 1px solid;
}

.section-type-call-to-action .buttons {
	flex: 1;
	gap: 1.3em 2em;
	position: relative;
}

.section-type-call-to-action .buttons:first-child {
	justify-content: center;
}

.section-type-call-to-action .button {
	flex: 1 1 max-content;
	color: inherit;
}

.section-type-call-to-action .buttons:first-child .button:first-child:last-child {
	flex: none;
}

.section-type-call-to-action .button::after {
	background-image: url('images/arrow-right-white.svg');
}

.section-type-call-to-action .button:hover {
	border-color: var(--colour-1-inverted);
	background-color: var(--colour-1-inverted);
	color: var(--colour-1);
}

.section-type-call-to-action .button:hover::after {
	background-image: url('images/arrow-right-blue.svg');
}

/* Page Section: Contact
--------------------------------------------- */
.section-type-contact .departments {
	display: flex;
	gap: var(--page-padding);
	flex-wrap: wrap;
}

.section-type-contact .department {
	flex: 1 1 calc(50% - var(--page-padding));
	min-width: min(100%, 24em);
	padding: var(--page-padding);
	background-color: var(--colour-1);
	color: var(--colour-1-inverted);
}

.section-type-contact .department:nth-child(even) {
	background-color: var(--colour-2);
	color: var(--colour-2-inverted);
}

.section-type-contact .department-name {
	font-size: 2.7em;
}

.section-type-contact .department button,
.section-type-contact .department .button,
.section-type-contact .department input[type="submit"],
.section-type-contact .department a {
	color: inherit;
}

.section-type-contact .contact-details {
	columns: 2 14em;
	gap: 2em;
	margin: 2em auto 0;
}

.section-type-contact .contact-details a {
	text-decoration: none;
}

.section-type-contact .contact-detail {
	position: relative;
	margin-bottom: 1em;
	padding-left: 1.4em;
	break-inside: avoid;
}

.section-type-contact .contact-detail-address .value a {
	font-weight: 300;
	font-style: italic;
	font-size: 0.9em;
}

.section-type-contact .contact-detail-email .value {
	display: block;
	overflow: hidden;
	/* white-space: nowrap; */
	text-overflow: ellipsis;
}

.section-type-contact .contact-detail .value::before {
	content: '';
	position: absolute;
	top: 0.2em;
	left: 0;
	width: 0.7em;
	height: 100%;
	background: top left no-repeat;
	background-size: contain;
}

.section-type-contact .contact-detail-address .value::before {
	background-image: url('images/pin-white.svg');
}

.section-type-contact .contact-detail-phone .value::before {
	width: 0.9em;
	background-image: url('images/phone-white.svg');
}

.section-type-contact .contact-detail-email .value::before {
	top: 0.45em;
	width: 0.9em;
	background-image: url('images/email-white.svg');
}

.section-type-contact .contact-detail strong {
	display: block;
}

.section-type-contact .department-form {
	margin-top: 1.5em
}

.section-type-contact input[type="text"],
.section-type-contact input[type="email"],
.section-type-contact input[type="url"],
.section-type-contact input[type="password"],
.section-type-contact input[type="search"],
.section-type-contact input[type="number"],
.section-type-contact input[type="tel"],
.section-type-contact input[type="range"],
.section-type-contact input[type="date"],
.section-type-contact input[type="month"],
.section-type-contact input[type="week"],
.section-type-contact input[type="time"],
.section-type-contact input[type="datetime"],
.section-type-contact input[type="datetime-local"],
.section-type-contact input[type="color"],
.section-type-contact textarea,
.section-type-contact select {
	border: none;
}

.section-type-contact .wpcf7-not-valid-tip {
	opacity: 0.7;
	color: inherit;
}

.section-type-contact .department-google-map {
	height: 30em;
	margin-top: var(--page-padding);
}

/* Page Section: Instagram
--------------------------------------------- */
.section-type-instagram {
}

/* Page Section: Resort Map
--------------------------------------------- */
.section-type-resort-map .resort-map-controls {
	display: flex;
	gap: var(--page-padding);
	margin-bottom: var(--page-padding);
}

.section-type-resort-map .resort-map-controls .lakes {
	flex: 0.8;
}

.section-type-resort-map .resort-map-controls .lakes select {
	display: block;
	width: 100%;
}

.section-type-resort-map .resort-map-controls .filters {
	flex: 1;
}

.section-type-resort-map .resort-map-controls .filters .checkbox-list {
	display: flex;
	align-items: center;
	gap: 0.2em 2em;
	flex-wrap: wrap;
	min-height: 3em;
}

.section-type-resort-map .resort-google-map {
	height: 50em;
}

.section-type-resort-map .resort-marker-label {
	text-shadow: 2px 0 #fff, -2px 0 #fff, 0 2px #fff, 0 -2px #fff;
}

.resort-google-map .marker-content {
	display: flex;
	align-items: center;
	gap: 1em;
}

.resort-google-map a.marker-content {
	text-decoration: none;
}

.resort-google-map .marker-content > img:first-child {
	flex: 1;
	align-self: stretch;
	width: 7em;
	object-fit: cover;
}

.resort-google-map .marker-content > img:first-child[src$=".svg"] {
	width: auto;
	width: 3em;
	object-fit: contain
}

.resort-google-map .marker-content h3 {
	margin: 0 0 0.3em;
	font-size: 1.6em;
	font-family: 'Work Sans', sans-serif;
}

.resort-google-map .marker-content h4 {
	margin: 0 0 0.6em;
	font-family: 'Work Sans', sans-serif;
	font-weight: 300;
}

.resort-google-map .marker-content p {
	margin: 0.5em auto;
}

.resort-google-map .marker-content button {
	padding: 0.6em 1em 0.4em;
	font-size: 0.9em;
}

.section-type-resort-map .bottom-text {
	margin-top: var(--page-padding);
}

/* Property Archive
--------------------------------------------- */
.section-type-property-archive-top {
	display: flex;
	gap: var(--page-padding);
}

.section-type-property-archive-top .property-search-form {
	flex: 1 1 50%;
}

.property-archive-description {
	flex: 1 1 50%;
}

.archive-grid {
	display: grid;
	align-items: start;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 25em), 1fr));
	gap: var(--page-padding);
}

.archive-grid-small {
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 16em), 1fr));
	gap: var(--page-padding) calc(var(--page-padding) / 2);
}

.post-grid .post-image {
	display: block;
	margin-bottom: 2em;
	background-color: #eee;
}

.post-grid .post-image img,
.post-grid .post-image .image-placeholder {
	display: block;
	width: 100%;
	aspect-ratio: 3/2;
	object-fit: cover;
}

.post-grid .post-date {
	display: none;
	margin-bottom: 1em;
	text-decoration: none;
}

.post-grid .entry-title {
	font-size: 1.6em;
}

.post-grid .entry-title a {
	text-decoration: none;
}

.post-grid .wppf_property h2 {
	font-size: 1.2em;
}

.post-grid .more-tag {
	display: none;
	padding: 0.4em 0.7em;
	font-size: 0.9em;
}

@media screen and (min-width: 936px) {
	.post-grid.page-1 article:first-child {
		align-self: stretch;
		grid-column: span 2;
		display: flex;
		flex-direction: column;
		justify-content: center;
		position: relative;
		padding: var(--page-padding);
		color: var(--colour-1-inverted);
	}

	.post-grid.page-1 article:first-child .post-image {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		margin: 0;
		background-color: var(--colour-1);
	}

	.post-grid.page-1 article:first-child .post-image img {
		opacity: 0.15;
		position: absolute;
		width: 100%;
		height: 100%;
	}

	.post-grid.page-1 article:first-child .post-date {
		display: block;
		position: relative;
	}

	.post-grid.page-1 article:first-child .entry-title {
		position: relative;
		font-size: 2.3em;
	}

	.post-grid.page-1 article:first-child a {
		color: inherit;
	}

	.post-grid.page-1 article:first-child .post-excerpt {
		position: relative;
	}

	.post-grid.page-1 article:first-child .more-tag {
		display: inline-block;
		position: relative;
	}

	.post-grid.page-1 article:first-child .more-tag::after {
		background-image: url('images/arrow-right-white.svg');
	}
}

.pagination .nav-links {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 1.1em;
	font-size: 1.2em;
}

.pagination .page-numbers {
	opacity: 0.35;
}

.pagination a.page-numbers:hover,
.pagination .page-numbers.current {
	opacity: 1;
}

.pagination .prev,
.pagination .next {
	opacity: 1;
	margin: 0 0.6em;
	font-size: 0.8em;
}

.pagination a {
	text-decoration: none;
}

/* Property Grid
--------------------------------------------- */
.property-row {
	--items-in-view: 3;
	--gap: calc(var(--page-padding) / 2);

	display: flex;
	align-items: flex-start;
	gap: var(--gap);
}

.property-row .property-grid-item {
	width: calc(((100vw - (var(--page-padding) * 2)) - (var(--gap) * (var(--items-in-view) - 1))) / var(--items-in-view));
}

.property-grid-item {
	--inner-gap-y: 1.5em;
	--inner-gap-x: 1em;
	--inner-gap: var(--inner-gap-y) var(--inner-gap-x);
	align-self: stretch;
	display: flex;
	flex-direction: column;
	position: relative;
}

.property-grid-item-image,
.property-grid-item-image img {
	display: block;
	margin: 0;
	width: 100%;
	aspect-ratio: 3/2;
}

.property-grid-item-image {
	position: relative;
	background-color: #eee;
	transition: all 200ms;
}

.property-grid-item-image:hover {
	background-color: var(--colour-1);
}

.property-grid-item-image img {
	max-width: inherit;
	max-height: inherit;
	object-fit: cover;
	transition: all 200ms;
	pointer-events: none;
}

.property-grid-item-image:hover img {
	opacity: 0.5;
}

.property-status {
	display: inline-block;
	padding: 0.3em 0.8em;
	border: 2px solid;
	text-transform: uppercase;
	font-size: 0.8em;
	font-weight: bold;
}

.property-grid-item-status {
	position: absolute;
	bottom: var(--inner-gap-y);
	left: var(--inner-gap-y);
	max-width: calc(100% - (1.5em * 2));
	color: #fff;
}

.property-grid-item-text {
	flex: 1;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: var(--inner-gap);
	flex-wrap: wrap;
	padding: var(--inner-gap-y);
	border: 1px solid #eee;
	border-top: none;
}

.property-grid-item-title {
	flex: 1 1 calc(100% - var(--inner-gap-x) - 9em);
	flex: 1;
	color: inherit;
}

.property-grid-item-title h2 {
	margin: 0;
	font-family: inherit;
	font-size: 1.5em;
	font-weight: 700;
}

.property-grid-item-title h3 {
	opacity: 0.6;
	margin: 0.45em 0 0;
	font-family: inherit;
	font-size: 1em;
	font-weight: 400;
}

.property-grid-item-rooms {
	display: flex;
	justify-content: space-between;
	gap: 0.8em;
	width: 7.6em;
	line-height: 1;
}

.property-grid-item-rooms span {
	display: flex;
	gap: 0.2em;
	align-items: center;
}

.property-grid-item-rooms svg {
	display: inline-block;
	width: auto;
	height: 1em;
}

.property-grid-item-rooms path,
.property-grid-item-rooms circle,
.property-grid-item-rooms rect {
	fill: currentColor
}

.property-grid-item-rooms strong {
	font-size: 0.85em;
}

.property-grid-item-price {
	width: 100%;
}

.property-grid-item-price .property-price {
	line-height: 1.2;
	font-size: 1.8em;
	font-weight: 300;
}

.property-grid-item .flex-line-break {
	width: 100%;
}

.property-grid-item-excerpt {
	width: 100%;
}

ul.property-features {
	display: flex;
	flex-direction: column;
	gap: 1em;
	list-style: none;
	padding: 0;
	margin: 0;
}

ul.property-features li {
	display: flex;
	align-items: center;
	gap: 0.6em;
	margin: 0;
}

ul.property-features img,
ul.property-features svg {
	display: inline-block;
	width: 1.6em;
}

div.property-features ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0 1em;
	list-style-position: inside;
	padding: 0;
	color: var(--colour-2);
}

div.property-features li {
	margin: 0.2em 0;
}

div.property-features li::marker {
	color: var(--colour-1);
}

.property-grid-item ul.property-features li span {
	max-width: 7em;
}

.property-grid-item-button {
	width: 100%;
}

.property-grid-item-button .button {
	padding: 0;
	border: none;
}

.property-grid-item-button .button:hover {
	opacity: 0.6;
	background-color: transparent;
	color: var(--colour-1);
}

.property-grid-item-button .button:hover::after {
	background-image: url('images/arrow-right-blue.svg');
}

.property-grid-item a {
	text-decoration: none;
}

/* Single Property
--------------------------------------------- */
.section-type-single-property {
	display: flex;
	align-items: flex-start;
	gap: 3rem var(--page-padding);
	margin-top: var(--page-padding);
}

.section-type-single-property .property-media,
.section-type-single-property .property-details {
	flex: 1 1 50%;
}

.section-type-single-property .property-media {
	--column-gap: 0.55em;
	--large-image-columns: 3;
	--large-image-rows: 3;
	--columns: calc(calc(var(--large-image-columns) + 1));
	--column-width: calc(100% / var(--columns));
	position: sticky;
	top: var(--header-height-scrolled-down);
	display: grid;
	grid-template-columns: repeat(var(--columns), 1fr);
	grid-template-rows: 1fr 1fr 1fr;
	grid-auto-rows: auto;
	gap: var(--column-gap);
	width: 100%;
	min-height: min(800px, calc(100vh - var(--header-height-scrolled-down) - var(--page-padding)));
}

.section-type-single-property .property-media .property-image {
	display: none;
}

.section-type-single-property.gallery-open .property-media .property-image:nth-child(3),
.section-type-single-property.gallery-open .property-media .property-image:nth-child(4),
.section-type-single-property.gallery-open .property-media .property-image:nth-child(5),
.section-type-single-property.gallery-open .property-media .property-image:nth-child(6),
.section-type-single-property.gallery-open .property-media .property-image:nth-child(7),
.section-type-single-property.gallery-open .property-media .property-image,
.section-type-single-property .property-media > :first-child,
.section-type-single-property .property-media .property-image:nth-child(2),
.section-type-single-property .property-media .property-image:nth-child(3),
.section-type-single-property .property-media .property-image:nth-child(4) {
	display: block;
}

.section-type-single-property .property-media > :first-child {
	grid-column: span var(--large-image-columns);
	grid-row: span var(--large-image-rows);
	position: relative;
}

.section-type-single-property .property-media > :first-child video,
.section-type-single-property .property-media > :first-child img {
	height: 100%;
}

.section-type-single-property .property-media .property-video .play {
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	padding: 0;
	border: none;
	border-radius: 0;
	background-color: rgba(0,0,0,0.1);
}

.section-type-single-property .property-media .property-video .play:hover {
	background-color: rgba(0,0,0,0.2);
}

.section-type-single-property .property-media .property-video .play::after {
	display: none;
}

.section-type-single-property .property-media .property-video .play svg {
	display: block;
	width: 2.5em;
	transition: all 200ms;
}

.section-type-single-property .property-media .property-video .play:hover svg {
	transform: scale(1.2);
}

.section-type-single-property .property-media video,
.section-type-single-property .property-media .property-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.section-type-single-property .property-media .property-image img {
	aspect-ratio: 1/1;
}

.section-type-single-property .property-media .property-gallery {
	display: none;
	grid-column: span 2;
}

.section-type-single-property .property-media .open-gallery {
	position: absolute;
	bottom: 0.8em;
	right: 0.8em;
	width: calc(var(--column-width) - 0.8em - 0.8em - 0.8em);
	padding: 0.8em;
	border: none;
	background-color: rgba(0,0,0,0.3);
	font-size: 0.85em;
	font-weight: normal;
	color: #fff;
}

.section-type-single-property.gallery-open .property-media .open-gallery {
	display: none;
}

.section-type-single-property .property-media .open-gallery:hover {
	background-color: rgba(0,0,0,0.5);
}

.section-type-single-property .property-media .open-gallery::after {
	display: none;
}

.section-type-single-property .property-media .property-popularity {
	position: absolute;
	top: 0.8em;
	left: 0.8em;
	max-width: calc(100% - var(--column-width) - 1.2em - 0.8em);
	padding: 0.9em 1.2em 0.85em;
	background-color: rgba(255,255,255,0.8);
	font-size: 0.85em;
	line-height: 1.2;
	color: var(--colour-1);
}

.section-type-single-property .property-media .property-popularity strong {
	display: inline-block;
	margin-right: 0.4em;
	text-transform: uppercase;
	letter-spacing: 0.11em;
}

.section-type-single-property .property-video-tour iframe {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 2/1;
}

.section-type-single-property .property-titles {
	padding-top: 0.4em;
	box-shadow: 0 10px 10px 10px rgba(255,255,255,0.8);
	background-color: rgba(255,255,255,0.8);
	color: var(--colour-1);
}

.single-wppf_property .section-type-single-property .property-titles {
	padding-top: 0;
}

.section-type-single-property .property-status {
	margin-bottom: 1.5em;
}

.section-type-single-property .property-title {
	margin: 0;
	font-weight: bolder;
}

.property-sub-title-and-icons {
	margin: 0.3em 0 0;
}

.section-type-single-property .property-sub-title {
	opacity: 0.7;
	display: inline-block;
	margin: 0.3em 0.1em 0 0;
	font-size: 1.4em;
	font-family: inherit;
	font-weight: normal;
	line-height: 1;
}

.section-type-single-property .property-sub-title::after {
	content: ' | ';
}

.section-type-single-property .property-price {
	display: block;
	margin-top: 0.25em;
	line-height: 1.2;
    font-size: 2.8em;
    font-weight: 300;
}

.section-type-single-property .property-icons {
	display: inline-flex;
	gap: 1em 1.2em;
	flex-wrap: wrap;
	color: var(--colour-1);
	line-height: 1;
	list-style: none;
	margin: 1em 0 0;
	padding: 0;
	vertical-align: sub;
}

.section-type-single-property .property-icons li {
	display: flex;
	gap: 0.2em;
	align-items: center;
	margin: 0;
	padding: 0;
}

.section-type-single-property .property-icons svg {
	display: inline-block;
	width: auto;
	height: 1.2em;
}

.section-type-single-property .property-icons circle,
.section-type-single-property .property-icons rect,
.section-type-single-property .property-icons polygon,
.section-type-single-property .property-icons path {
	fill: currentColor;
}

.section-type-single-property .property-icons .value {
	font-weight: bold;
}

.section-type-single-property .property-icons .label {
	display: none;
}

.section-type-single-property .property-buttons {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 1.5em 1em;
	flex-wrap: wrap;
	position: sticky;
	z-index: 2;
	top: var(--header-height-scrolled-down);
	margin-top: 2.5em;
	padding-bottom: 1.5em;
	box-shadow: 0 -14px 20px #fff;
	background-color: #fff;
}

@media screen and (max-width: 1230px) and (max-height: 750px) {
	.section-type-single-property .property-buttons {
		position: static;
	}
}

.section-type-single-property .property-buttons .button-container {
	flex: 1 1 10em;
	display: flex;
	flex-direction: column;
	position: relative;
	text-align: center;
}

.section-type-single-property .property-buttons .button {
	flex: 1;
	display: flex;
	justify-content: center;
	align-items: center;
}

.section-type-single-property .property-buttons .button-container:nth-child(3n-2) .button {
	border: none;
	background-color: var(--colour-1);
	color: var(--colour-1-inverted);
}

.section-type-single-property .property-buttons .button-container:nth-child(3n) .button {
	background-color: var(--colour-2);
	color: var(--colour-2-inverted);
}

.section-type-single-property .property-buttons .button-container:nth-child(3n) .button::after,
.section-type-single-property .property-buttons .button-container:nth-child(3n-2) .button::after {
	background-image: url('images/arrow-right-white.svg');
}

.section-type-single-property .property-buttons .button-extra {
	padding-top: 0.6em;
	font-size: 0.85em;
	line-height: 1.2;
	color: var(--colour-1);
}

.section-type-single-property .property-details {
	--details-gap: 3rem;
}

.section-type-single-property .property-description {
	overflow: hidden;
}

.section-type-single-property .property-map h3,
.section-type-single-property .property-description h3 {
	position: relative;
	margin: var(--details-gap) 0 0.2em;
	font-family: 'adobe-caslon-pro', serif;
	font-size: 2.4em;
}

.section-type-single-property .property-map h3::after,
.section-type-single-property .property-description h3::after  {
	opacity: 0.2;
	content: '';
	position: absolute;
	bottom: 0.6em;
	width: 100vw;
	margin-top: -0.15em;
	margin-left: 0.5em;
	border-top: 1px solid;
}

.section-type-single-property .property-description h3 b,
.section-type-single-property .property-description h3 strong {
	font-weight: inherit;
}

.section-type-single-property .property-description h3:first-child {
	margin-top: calc(var(--details-gap) - 0.5em);
}

.section-type-single-property .property-description ul {
	columns: 16em;
	gap: 2em;
}

.section-type-single-property .property-description ul li {
	break-inside: avoid;
}

.section-type-single-property .property-description .room-dimensions {
	font-weight: 300;
}

.section-type-single-property .property-description h3 + .room-dimensions {
	margin: -0.5em auto;
}

.section-type-single-property .property-map {
	overflow: hidden;
}

.section-type-single-property .property-map .google-map,
.section-type-single-property .property-map iframe {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3/2;
	margin-top: 1.5em;
}

.single-property-enquiry-columns {
	display: flex;
	gap: var(--page-padding);
	flex-wrap: wrap;
}

.single-property-enquiry-columns .col,
.single-property-enquiry-columns > img {
	flex: 1 1 40%;
	width: 19em;
}

.single-property-enquiry-columns > img {
	aspect-ratio: 2/1;
	object-fit: cover;
}

.single-property-enquiry-columns .wppf_property_description_panel {
	float: none;
	width: auto;
}

.single-property-enquiry-columns .field-requests ul {
	margin: 0;
	padding: 0;
}

.single-property-enquiry-columns .wppf_l_group {
	margin-bottom: 0;
}

.wppf_message {
	border: 1px solid;
	color: var(--colour-1);
}

.section-type-related-properties > h2 {
	margin-bottom: 1.5em;
	text-align: center;
}

/* Google Map
--------------------------------------------- */
.google-map {
	height: 400px;
	min-height: 10em;
	max-height: calc(90vh - var(--header-height));
}

.google-map button,
.google-map .button {
	font-weight: inherit;
}

.google-map button::after,
.google-map .button::after {
	display: none;
}

.marker-content {
	display: block;
	width: 100%;
}

.marker-content img {
	max-width: 100%;
}

/* Testimonial Grid
--------------------------------------------- */
.testimonial-row {
	--items-in-view: 2;
	--gap: var(--page-padding);

	display: flex;
	gap: var(--gap);
}

.testimonial-row .testimonial-grid-item {
	width: calc(((100vw - (var(--page-padding) * 2)) - (var(--gap) * (var(--items-in-view) - 1))) / var(--items-in-view));
	scroll-snap-align: center;
}

.testimonial-grid-item {
	display: grid;
	grid-template-columns: 1fr auto;
	/* grid-auto-rows: auto 1fr; */
	gap: 2em;
	padding: var(--page-padding);
	box-shadow: 0 0 30px rgba(0,0,0,0.07);
	container-type: inline-size;
}

.testimonial-grid-item-image {
	grid-column: span 2;
	position: relative;
	margin: calc(var(--page-padding) * -1);
	margin-bottom: min(var(--page-padding), calc(var(--page-padding) - 2em));
}

.testimonial-grid-item-image img {
	display: block;
	width: 100%;
	aspect-ratio: 5/2;
	object-fit: cover;
}

.masonry-grid .testimonial-grid-item-image img {
	aspect-ratio: auto 4/3;
	contain-intrinsic-size: none;
}

.testimonial-grid-item-image a {
	opacity: 0.4;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: linear-gradient(to top, #000 0%, transparent 50%);
}

.testimonial-grid-item-property-name {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	margin: 0;
	padding: calc(var(--page-padding) / 2) var(--page-padding);
	color: #fff;
	font-family: inherit;
	font-weight: 300;
	font-size: 1em;
}

.testimonial-grid-item-title {
	margin-bottom: 0.2em;
	color: var(--colour-1);
	font-family: inherit;
}

.testimonial-grid-item-date {
	opacity: 0.6;
}

.testimonial-grid-item-rating {
	align-self: center;
	display: flex;
	justify-content: space-between;
	width: 10em;
	padding: 1em;
	border-radius: 5px;
	background-color: var(--colour-2);
}

.testimonial-grid-item-rating svg {
	width: 1em;
}

.testimonial-grid-item-rating.rating-1 svg:nth-child(n+2) path,
.testimonial-grid-item-rating.rating-2 svg:nth-child(n+3) path,
.testimonial-grid-item-rating.rating-3 svg:nth-child(n+4) path,
.testimonial-grid-item-rating.rating-4 svg:nth-child(5) path {
	fill: none;
	stroke: #fff;
	stroke-width: 6px;
	stroke-linejoin: round;
	paint-order: stroke;
}

.testimonial-grid-item blockquote {
	grid-column: span 2;
	position: relative;
	padding-left: 3em;
}

.testimonial-grid-item blockquote::before {
	content: '\201C';
	position: absolute;
	top: -0.4em;
	left: 0;
	font-size: 5em;
	color: var(--colour-1);
}

.testimonial-grid-item cite {
	grid-column: span 2;
	text-align: right;
	font-size: 0.9em;
}

@container (max-width: 400px) {
	.testimonial-grid-item-image {
		order: -2;
	}

	.testimonial-grid-item-titles,
	.testimonial-grid-item-rating {
		grid-column: span 2;
	}

	.testimonial-grid-item-rating {
		order: -1;
	}
}

@container (max-width: 250px) {
	.testimonial-grid-item blockquote {
		padding-left: 1.7em;
	}

	.testimonial-grid-item blockquote::before {
		top: -0.35em;
		font-size: 3em;
	}
}

/* Drag Scroll
--------------------------------------------- */
.drag-scroll {
	cursor: grab;
	user-select: none;
	-webkit-user-drag: none;
}

.drag-scroll-inner {
	overflow-x: auto;
	padding-bottom: 1.5em;
	scrollbar-color: var(--colour-2) #fff;
	scrollbar-width: thin;
}

.drag-scroll-content {
	width: max-content;
}

.drag-scroll-content > * {
	scroll-snap-align: start;
}

.drag-scroll-inner.scrollable + .drag-scroll-bar {
	display: block;
}

.drag-scroll-bar {
	display: none;
}

.drag-scroll-bar-label {
	margin-top: 1em;
	text-align: center;
	pointer-events: none;
}

@media (pointer: coarse) {
	.drag-scroll-inner {
		scroll-snap-type: x proximity;
	}
}

/* Footer
--------------------------------------------- */
.site-footer {
	margin: var(--section-gap) auto var(--page-padding);
	padding: var(--page-padding) 0;
	background-color: var(--colour-1);
	color: var(--colour-1-inverted);
	font-size: 0.95em;
}

.site-footer .footer-grid {
	display: grid;
	grid-template:
		"a c d" auto
		"b c d" 1fr
		"e e e" auto
		"f f f" auto / auto auto minmax(23em, 1fr);
	gap: var(--page-padding);
}

.site-footer .logo {
	grid-area: a;
}

.site-footer .logo img {
	display: block;
	width: 16em;
}

.site-footer .social-media {
	align-self: start;
	grid-area: b;
	display: flex;
	gap: 0.7em;
	flex-wrap: wrap;
}

.site-footer .social-media svg {
	display: block;
	width: 2em;
}

.site-footer .contact-details-container {
	grid-area: c;
}

.site-footer .contact-details {
	columns: 2 10em;
	gap: 2em;
}

.site-footer .contact-detail {
	margin-bottom: 1.5em;
	break-inside: avoid;
}

.site-footer .contact-detail .value {
	position: relative;
	padding-left: 1.4em;
}

.site-footer .contact-detail-email .value {
	display: block;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
}

.site-footer .contact-detail .value::before {
	content: '';
	position: absolute;
	top: 0.2em;
	left: 0;
	width: 0.7em;
	height: 100%;
	background: top left no-repeat;
	background-size: contain;
}

.site-footer .contact-detail-address .value::before {
	background-image: url('images/pin-white.svg');
}

.site-footer .contact-detail-phone .value::before {
	width: 0.9em;
	background-image: url('images/phone-white.svg');
}

.site-footer .contact-detail-email .value::before {
	top: 0.45em;
	width: 0.9em;
	background-image: url('images/email-white.svg');
}

.site-footer .contact-detail strong {
	display: block;
	margin-bottom: 0.2em;
}

.site-footer .footer-form {
	grid-area: d;
	display: flex;
	flex-direction: column;
	justify-content: center;
	position: relative;
	margin-top: calc((var(--page-padding) * 2) * -1);
	padding: calc(var(--page-padding) * 0.75);
	background-color: var(--colour-3);
	color: var(--colour-2-inverted);
}

.site-footer .footer-form h3 {
	margin-bottom: 1.3em;
	font-size: 1.5em;
}

.site-footer .footer-form form {
	display: flex;
	gap: 1.5em;
}

.site-footer .sign-up-form-column {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	gap: 1.2em;
}

.site-footer .footer-form input[type="text"],
.site-footer .footer-form input[type="tel"],
.site-footer .footer-form input[type="email"] {
	width: 100%;
	border: none;
}

.site-footer .footer-form .wpcf7-not-valid-tip {
	position: absolute;
	font-size: 0.8em;
	color: inherit;
}

.site-footer .footer-form .wpcf7-checkbox {
	display: flex;
	gap: 0.3em 1.5em;
	flex-wrap: wrap;
}

.site-footer .footer-form .wpcf7-checkbox input {
	border: none;
}

.site-footer .footer-form .wpcf7-checkbox .wpcf7-list-item {
	margin: 0;
}

.site-footer .footer-form .wpcf7-submit {
	flex: 1;
	border: none;
	background-color: var(--colour-1);
	color: inherit;
}

.site-footer .footer-form .wpcf7-response-output,
.site-footer .footer-form .wpcf7-spinner {
	position: absolute;
}

.site-footer .footer-form .wpcf7 .wpcf7-response-output {
	top: 100%;
	left: 0;
	width: 100%;
	border: none;
	margin: 0;
	padding: 0.8em 1em;
	background-color: #197278;
}

.site-footer .footer-columns-container {
	grid-area: e;
}

.site-footer .footer-columns {
	display: flex;
	gap: 0.5em var(--page-padding);
	flex-wrap: wrap;
}

.site-footer .footer-small-print {
	grid-area: f;
	opacity: 0.4;
	text-align: right;
	font-weight: 300;
}

.site-footer h3 {
	margin-bottom: 1.1em;
	font-family: inherit;
	font-weight: normal;
	font-size: 1.25em;
}

.site-footer li::marker {
	color: var(--colour-1-inverted);
}

.site-footer a {
	color: inherit;
	text-decoration: none;
}

/* Popup Modal
--------------------------------------------- */
.popup-modal {
	display: none;
	position: fixed;
	z-index: 99;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.popup-modal-background {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: #000;
	opacity: 0.75;
}

.popup-modal-box {
	overflow: hidden;
	position: absolute;
	top: 50%;
	left: 50%;
	width: 90%;
	max-width: 70em;
	background-color: #fff;
	box-shadow: 0 0 40px rgba(0, 0, 0, 0.2);
	transform: translate(-50%, -50%);
}

.popup-modal-box .close-button {
	position: absolute;
	top: 0.3em;
	right: 0.3em;
	padding: 0.2em 0.4em;
	border: none;
	background-color: transparent;
	line-height: 1;
	font-size: 2em;
}

.popup-modal-box .close-button:hover {
	color: inherit;
}

.popup-modal-box .close-button:After {
	display: none;
}

.popup-modal-content {
	overflow-y: auto;
	max-height: 90vh;
	padding: var(--page-padding);
}

/* Cookie Consent
----------------------------------------------- */
html.show--consent {
	margin-bottom: 14em;
}

body {
	--cc-bg: #fff;
	--cc-text: #222;
	--cc-btn-primary-bg: var(--colour-1);
	--cc-btn-primary-text: var(--colour-1-inverted);
	--cc-btn-primary-hover-bg: var(--colour-2);
	--cc-btn-secondary-bg: #eceef5;
	--cc-btn-secondary-text: var(--cc-text);
	--cc-btn-secondary-hover-bg: #e1e3e7;
	--cc-toggle-bg-on: var(--cc-btn-primary-bg);
	--cc-block-text: var(--cc-text);
	--cc-overlay-bg: rgba(0, 0, 0, 0.82);
}

.show--consent .home:not(.scrolled-down) .c--anim #cm.bar.slide {
    transition: visibility .4s 6s ease,opacity .4s 6s ease,transform .4s 6s ease!important
}

.cc_div button:after,
.cc_div .button:after {
	display: none;
}

/* reCAPTCHA
--------------------------------------------- */
.grecaptcha-badge {
	opacity: 0;
	pointer-events: none;
}

/* Media Queries
--------------------------------------------- */
@media screen and (max-width: 1300px) {
	.section-type-single-property .property-sub-title::after {
		content: '';
	}

	.section-type-single-property .property-icons {
		display: flex;
	}
}

@media screen and (max-width: 1230px) {
	.section-type-single-property .property-buttons .button-container:first-child {
		flex-basis: 100%;
	}

	.section-type-single-property .property-buttons .button-extra {
		opacity: 0.6;
	}
}

@media screen and (max-width: 1200px) {
	.main-navigation {
		flex-direction: row-reverse;
	}

	.menu-toggle {
		display: block;
	}

	.main-navigation > .menu-container {
		position: fixed;
		z-index: 20;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		transition: background-color 200ms;
		pointer-events: none;
	}

	.main-navigation.toggled > .menu-container {
		background-color: rgba(0,0,0,0.2);
	}

	.main-navigation .menu-container > ul {
		display: block;
		overflow-y: auto;
		position: absolute;
		top: 0;
		left: 0;
		width: 15em;
		height: 100%;
		max-width: 80%;
		background-color: #fff;
		font-size: 1.5em;
		transform: translateX(-100%);
		pointer-events: all;
	}

	.main-navigation.toggled .menu-container > ul {
		transition: transform 500ms 200ms;
		transform: translateX(0);
	}

	.main-navigation .menu-container > ul ul {
		display: none;
		font-size: 0.85em;
	}

	.main-navigation .menu-container > ul li.focus > ul,
	.main-navigation .menu-container > ul li:hover > ul {
		display: block;
	}

	.main-navigation .menu-container > ul > li > ul > li:nth-child(2):last-child > ul {
		columns: auto;
	}

	.main-navigation .menu-container > ul > li > ul {
		grid-template-columns: 1fr;
		gap: 0;
		overflow: visible;
		position: static;
		max-height: inherit;
		padding: 0;
		border: none;
	}

	.main-navigation .menu-container > ul > li {
		padding: 0;
	}

	.main-navigation .menu-container > ul > li > ul > li.menu-item-has-children {
		margin-bottom: 0;
	}

	.main-navigation ul a,
	.main-navigation ul ul a,
	.main-navigation ul ul li:last-child > a {
		padding: 0.5em 1em;
		border-bottom: 1px solid #ccc;
	}

	.main-navigation .menu-container > ul > li > ul > li.menu-item-has-children > a {
		margin: 0;
		border: none;
		border-bottom: 1px solid #ccc;
		font-weight: normal;
	}

	.main-navigation ul ul a,
	.main-navigation ul ul li:last-child > a {
		padding-left: 2em;
	}

	.main-navigation ul ul ul a,
	.main-navigation ul ul ul li:last-child > a {
		padding-left: 4em;
	}

	.main-navigation .menu-container > ul > li > ul > li > a {
		font-weight: normal;
	}

	.main-navigation .menu-container > ul > li > ul > li:not(.menu-item-has-children) > a {
		padding: 0.5em 1em;
		border: none;
		border-bottom: 1px solid #ccc;
		border-radius: 0;
	}

	.main-navigation li.menu-item-has-children > a::after {
		display: inline-block;
		content: '';
		width: 0.5em;
		height: 0.4em;
		vertical-align: middle;
		margin-left: 0.3em;
		background: center no-repeat url('images/arrow-dropdown-blue.svg');
		background-size: contain;
	}

	.property-row {
		--items-in-view: 2;
	}

	.testimonial-row {
		--items-in-view: 1;
	}

	.section-type-single-property .property-title {
		font-size: 3.4em;
	}

	.section-type-single-property .property-sub-title {
		font-size: 1.2em;
	}

	.site-footer .footer-grid {
		grid-template:
			"a b d" auto
			"c c d" auto
			"e e e" auto
			"f f f" auto / 1fr auto minmax(23em, 1fr);
	}
}

@media screen and (max-width: 1100px) {
	.section-type-two-columns.columns-text-image .columns,
	.section-type-two-columns.columns-image-text .columns {
		flex-direction: column;
	}

	.section-type-two-columns.columns-text-image .col,
	.section-type-two-columns.columns-image-text .col {
		flex: auto;
	}

	.section-type-two-columns .col-image {
		order: -1;
	}

	.section-type-two-columns .col-image.hide-on-one-col {
		display: none;
	}

	.section-type-single-property .property-media {
		--large-image-columns: 2;
		--large-image-rows: 2;
	}

	.section-type-single-property .property-media .property-image:nth-child(5),
	.section-type-single-property .property-media .property-image:nth-child(6) {
		display: block;
	}
}

@media screen and (max-width: 1000px) {
	.section-intro {
		grid-template-columns: 1fr auto;
	}

	.section-intro:has(.button:nth-child(2)) .section-title {
		grid-row: auto;
	}

	.section-intro .intro-text {
		grid-column: span 2;
	}

	.section-intro .button {
		grid-row: auto;
	}

	.section-type-boxes .box-image {
		aspect-ratio: 3/2;
	}

	.section-type-call-to-action .cta-content {
		flex-direction: column;
		text-align: center;
	}

	.section-type-call-to-action .divider {
		display: none;
	}

	.section-type-call-to-action .buttons {
		justify-content: center;
	}

	.section-type-single-property .property-titles {
		margin-bottom: 2em;
	}

	.section-type-single-property .property-buttons {
		margin-top: 2em;
	}

	.site-footer .footer-grid {
		grid-template:
			"a d" auto
			"b d" auto
			"c d" auto
			"c e" auto
			"c e" auto
			"f f" auto / auto minmax(23em, 1fr);
	}

	.site-footer .footer-small-print {
		text-align: inherit;
	}
}

@media screen and (max-width: 900px) {
	.section-type-single-property {
		flex-direction:  column;
	}

	.section-type-single-property .property-media {
		--large-image-columns: 3;
		--large-image-rows: 3;

		position: relative;
		top: auto;
		min-height: inherit;
	}

	.section-type-single-property .property-titles {
		position: static;
	}

	.section-type-single-property .property-sub-title::after {
		content: ' | ';
	}

	.section-type-single-property .property-icons {
		display: inline-flex;
	}

	.section-type-single-property .property-rooms,
	.section-type-single-property div.property-features ul,
	.section-type-single-property ul.property-features {
		justify-content: flex-start;
	}

	.section-type-single-property .property-buttons {
		position: fixed;
		z-index: 5;
		top: auto;
		bottom: 0;
		left: 0;
		width: 100%;
		padding: 1em var(--page-padding);
		box-shadow: none;
		background-color: #fff;
	}

	.section-type-single-property .property-buttons .button-container:first-child {
		flex-basis: auto;
	}

	.section-type-single-property .property-media .property-image:nth-child(5),
	.section-type-single-property .property-media .property-image:nth-child(6) {
		display: none;
	}
}

@media screen and (max-width: 850px) {
	.site-footer .footer-grid {
		grid-template:
			"d d" auto
			"a b" auto
			"c e" auto
			"c e" auto
			"f f" auto / auto auto;
	}
}

@media screen and (max-width: 800px) {
	:root {
		--section-gap: 6rem;
	}

	.section-type-two-columns.columns-text-text + .section-type-two-columns.columns-text-text {
		margin-top: var(--section-gap);
	}

	.section-type-two-columns .columns {
		flex-direction: column;
	}

	.section-type-two-columns .col {
		flex: auto;
	}

	.section-type-two-columns .col-list {
		padding: 0;
		border: none;
	}

	.property-row {
		--items-in-view: 1.4;
	}

	.property-grid-item-status {
		top: var(--inner-gap-y);
		bottom: auto;
		background-color: rgba(0,0,0,0.05);
		box-shadow: 0 0 30px rgba(0,0,0,0.15);
	}

	.property-grid-item-text {
		align-items: flex-end;
		position: absolute;
		bottom: 0;
		left: 0;
		width: 100%;
		border: none;
		color: #fff;
		background: linear-gradient(to top, rgba(0,0,0,0.7), transparent);
		padding-top: calc(var(--inner-gap-y) * 3);
		pointer-events: none;
	}

	.property-grid-item-title h3 {
		opacity: 1;
	}

	.property-grid-item-rooms {
		color: inherit;
	}

	.property-grid-item-price {
		order: -1;
	}

	.property-grid-item-button,
	.property-grid-item-excerpt {
		display: none;
	}

	.site-footer .footer-grid {
		gap: 2rem;
	}

	.site-footer .footer-form {
		margin-bottom: var(--page-padding);
		padding: var(--page-padding);
	}
}

@media screen and (max-width: 782px) {
	:root {
	--admin-bar-height: 46px;
	}
}

@media screen and (max-width: 750px) {
	:root {
		--page-padding: 1.8rem;
		--header-height: 6.0rem;
		--header-height-scrolled-down: 5.2rem
	}

	.site-header {
		--gap: 1.2rem;
	}

	.main-navigation .button {
		display: none;
	}

	.header-search form {
		width: calc(100vw - (var(--page-padding) * 2));
	}

	h1 {
		font-size: 3.5em;
	}

	.page-banner .banner-caption .sub-title {
		font-size: 1.7em;
	}

	.section-type-boxes .items {
		display: flex;
		flex-direction: column;
	}

	.section-type-boxes.item-count-odd .box:nth-child(even),
	.section-type-boxes .box:nth-child(even) {
		background-color: var(--colour-2);
	}

	.section-type-boxes.item-count-odd .box:nth-child(odd),
	.section-type-boxes .box:nth-child(odd) {
		background-color: var(--colour-1);
	}

	.section-type-boxes .box-image {
		height: auto;
		max-height: 50vh;
	}

	.section-type-single-property .property-title {
		font-size: 3em;
	}
}

@media screen and (max-width: 700px) {
	.section-type-single-property .property-sub-title::after {
		content: '';
	}

	.section-type-single-property .property-icons {
		display: flex;
	}
}

@media screen and (max-width: 650px) {
	.section-type-single-property .property-buttons {
		position: static;
		padding: 0;
	}

	.section-type-single-property .property-buttons .button-container:first-child {
		position: fixed;
		z-index: 5;
		top: auto;
		bottom: 0;
		left: 0;
		width: 100%;
		padding: 1em var(--page-padding);
		background-color: #fff;
	}
}

@media screen and (max-width: 600px) {
	.section-type-one-column {
		text-align: inherit;
	}

	.section-intro {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
	}

	.section-intro .section-title,
	.section-intro .button {
		align-self: initial;
	}

	.section-intro .button {
		margin: 0;
	}

	.section-type-property-archive-top {
		flex-direction: column-reverse;
	}

	.property-archive-description,
	.section-type-property-archive-top .property-search-form {
		flex: auto;
	}

	.property-row {
		--items-in-view: 1;
	}

	.section-type-single-property .property-media {
		--large-image-columns: 2;
		--large-image-rows: 2;
	}

	.section-type-single-property .property-media .property-image:nth-child(5),
	.section-type-single-property .property-media .property-image:nth-child(6) {
		display: block;
	}

	.alignleft,
	.alignright,
	.aligncenter,
	.alignnone {
		display: block;
		float: none;
		width: auto;
		margin: 0 auto 0.5em;
	}
}

@media screen and (max-width: 500px) {
	.property-search-form {
		flex-direction: column;
		align-items: stretch;
		padding: 0;
		border-radius: 5px;
	}

	.page-banner + .property-search-form {
		width: calc(100% - (var(--page-padding) * 3));
	}

	.property-search-form.active {
		padding: 1.5em;
		border-radius: 0;
	}

	.sale-property-search-form .wppf_result_container,
	.property-search-form .search-form-field,
	.property-search-form .submit,
	.property-search-form.active .mobile-toggle {
		display: none;
	}

	.sale-property-search-form.active .wppf_result_container,
	.property-search-form .mobile-toggle {
		display: block;
	}

	.property-search-form.active .search-form-field,
	.property-search-form.active .submit {
		display: flex;
	}

	.property-grid-item-text {
		background: linear-gradient(to top, rgba(0,0,0,0.8), transparent);
	}

	.property-grid-item-rooms {
		flex-direction: column;
		align-items: flex-end;
		gap: 0.7em;
		width: auto;
	}

	.property-grid-item-rooms span {
		flex-direction: row-reverse;
	}

	.property-grid-item-rooms svg {
		width: 2.5em;
	}

	.section-type-single-property .property-media {
		--columns: var(--large-image-columns);

		grid-template-rows: auto;
	}

	.section-type-single-property .property-media .property-image:nth-child(7) {
		display: block;
	}

	.section-type-single-property .property-media .property-popularity {
		order: -1;
		position: static;
		grid-column: span var(--large-image-columns);
		max-width: inherit;
		background-color: var(--colour-1);
		color: var(--colour-1-inverted);
	}

	.section-type-resort-map .resort-map-controls {
		flex-direction: column;
	}

	.section-type-resort-map .resort-map-controls .filters .checkbox-list {
		align-items: stretch;
		min-height: inherit;
	}
}

@media screen and (max-width: 480px) {
	h1 {
		font-size: 2.8em;
	}
}

@media screen and (max-width: 440px) {
	.site-footer .footer-grid {
		grid-template:
			"d" auto
			"a" auto
			"b" auto
			"c" auto
			"e" auto
			"f" auto / auto;
	}
}

@media screen and (max-width: 430px) {
	.site-footer .footer-form form {
		flex-direction: column;
	}
}

@media screen and (max-width: 420px) {
	:root {
		--header-height: 23vw;
	}
}

@media screen and (max-width: 367px) {
	.property-search-form .search-form-field-input-options label {
		order: initial;
	}
}

@media screen and (max-width: 360px) {
	.section-type-single-property .property-media {
		--large-image-columns: 1;
		--large-image-rows: 1;
	}

	.section-type-single-property .property-media .property-image:nth-child(5),
	.section-type-single-property .property-media .property-image:nth-child(6),
	.section-type-single-property .property-media .property-image:nth-child(7) {
		display: none;
	}

	.section-type-single-property .property-media .property-image img {
		aspect-ratio: auto 1/1;
	}

	.section-type-single-property .property-media .open-gallery {
		width: calc(var(--column-width) - 0.8em - 0.8em);
	}
}
