@charset "UTF-8";
/* -----------------------------------------------------------------------------
   WORDPRESS DECLARATION
   -----------------------------------------------------------------------------
   Required for WordPress theme recognition and metadata.
----------------------------------------------------------------------------- */
/*!
Theme Name: M1 (Huddle) Theme
Theme URI: http://epixmedia.co.uk/
Description: Custom theme for M1 Agency
Author: Epix Media Team
Version: 1.1
Tags: none
*/
/* -----------------------------------------------------------------------------
   BASE
   -----------------------------------------------------------------------------
   Core styles shared across the entire site.
   Includes variables, fonts, mixins, resets, utilities, and global defaults.
----------------------------------------------------------------------------- */
/* -----------------------------------------------------------------------------
   BASE STYLES ENTRY
----------------------------------------------------------------------------- */
/**
 * -----------------------------------------------------------------------------
 * Core imports
 * -----------------------------------------------------------------------------
 *
 * 1. _config
 *    Global variables, mixins, and theme configuration.
 *
 * 2. utils/__utils
 *    Utility classes and helper functions used across the project.
 *
 * 3. _globals
 *    Global resets, typography, layout rules, and default element styling.
 */
/* -----------------------------------------------------------------------------
   VARIABLES
----------------------------------------------------------------------------- */
/**
 * -----------------------------------------------------------------------------
 * Colour variables
 * -----------------------------------------------------------------------------
 *
 * Global colour palette used across the theme.
 * Brand colours should be updated here only.
 */
:root {
  --colorBlack: #000000;
  --colorWhite: #ffffff;
  --colorOffWhite: #f6f6f6;
  --colorGrey: #808080;
  --colorTransparent: rgba(0, 0, 0, 0);
  /* Brand colours */
  --colorBrand-1: #500032;
  --colorBrand-2: #D7C8B9;
  --colorBrand-3: #A04669;
  --colorBrand-4: #E6CDE1;
}

/**
 * -----------------------------------------------------------------------------
 * Font variables
 * -----------------------------------------------------------------------------
 *
 * SCSS variables for typography usage.
 * - $titles → headings
 * - $copy → body text
 */
@font-face {
  font-family: "SharpSans";
  src: url("/wp-content/themes/m1-huddle/fonts/SharpSans-Book.woff2") format("woff2"), url("/wp-content/themes/m1-huddle/fonts/SharpSans-Book.woff") format("woff");
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: "SharpSans";
  src: url("/wp-content/themes/m1-huddle/fonts/SharpSans-Bold.woff2") format("woff2"), url("/wp-content/themes/m1-huddle/fonts/SharpSans-Bold.woff") format("woff");
  font-weight: bold;
  font-style: normal;
}
/* -----------------------------------------------------------------------------
   UTILITY IMPORTS
----------------------------------------------------------------------------- */
/**
 * -----------------------------------------------------------------------------
 * HTML RESET
 * -----------------------------------------------------------------------------
 * Normalises browser default styles to create a consistent baseline.
 */
/*
* HTML5 Boilerplate
*
* What follows is the result of much research on cross-browser styling.
* Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal,
* Kroc Camen, and the H5BP dev community and team.
*
* Detailed information about this CSS: h5bp.com/css
*
* ==|== normalize ==========================================================
*/
/* =============================================================================
  HTML5 display definitions
  ========================================================================== */
article, aside, details, figcaption, figure, footer, header, hgroup, nav, section {
  display: block;
}

audio, canvas, video {
  display: inline-block;
  *display: inline;
  *zoom: 1;
}

audio:not([controls]) {
  display: none;
}

[hidden] {
  display: none;
}

/* =============================================================================
  Base
  ========================================================================== */
/*
* 1. Correct text resizing oddly in IE6/7 when body font-size is set using em units
* 2. Prevent iOS text size adjust on device orientation change, without disabling user zoom: h5bp.com/g
*/
html {
  font-size: 100%;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
}

html, button, input, select, textarea {
  font-family: sans-serif;
  color: #222;
}

body {
  margin: 0;
  font-size: 1em; /*line-height: 1.4;*/
}

/*
* Remove text-shadow in selection highlight: h5bp.com/i
* These selection declarations have to be separate
* Also: hot pink! (or customize the background color to match your design)
*/
::-moz-selection {
  background: #3CF;
  color: #fff;
  text-shadow: none;
}

::selection {
  background: #3CF;
  color: #fff;
  text-shadow: none;
}

/* =============================================================================
  Links
  ========================================================================== */
a:focus {
  outline-style: none;
}

/* Improve readability when focused and hovered in all browsers: h5bp.com/h */
a:hover, a:active {
  outline: 0;
}

/* =============================================================================
  Typography
  ========================================================================== */
abbr[title] {
  border-bottom: 1px dotted;
}

b, strong {
  font-weight: bold;
}

blockquote {
  margin: 1em 40px;
}

dfn {
  font-style: italic;
}

hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #ccc;
  margin: 1em 0;
  padding: 0;
}

ins {
  background: #ff9;
  color: #000;
  text-decoration: none;
}

mark {
  background: #ff0;
  color: #000;
  font-style: italic;
  font-weight: bold;
}

/* Redeclare monospace font family: h5bp.com/j */
pre, code, kbd, samp {
  font-family: monospace, serif;
  _font-family: "courier new", monospace;
  font-size: 1em;
}

/* Improve readability of pre-formatted text in all browsers */
pre {
  white-space: pre;
  white-space: pre-wrap;
  word-wrap: break-word;
}

q {
  quotes: none;
}

q:before, q:after {
  content: "";
  content: none;
}

small {
  font-size: 85%;
}

/* Position subscript and superscript content without affecting line-height: h5bp.com/k */
sub, sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sup {
  top: -0.5em;
}

sub {
  bottom: -0.25em;
}

/* =============================================================================
  Lists
  ========================================================================== */
ul, ol {
  margin: 1em 0;
  padding: 0 0 0 40px;
}

dd {
  margin: 0 0 0 40px;
}

nav ul, nav ol {
  list-style: none;
  list-style-image: none;
  margin: 0;
  padding: 0;
}

/* =============================================================================
  Embedded content
  ========================================================================== */
/*
* 1. Improve image quality when scaled in IE7: h5bp.com/d
* 2. Remove the gap between images and borders on image containers: h5bp.com/i/440
*/
img {
  border: 0;
  -ms-interpolation-mode: bicubic;
  vertical-align: middle;
}

/*
* Correct overflow not hidden in IE9
*/
svg:not(:root) {
  overflow: hidden;
}

/* =============================================================================
  Figures
  ========================================================================== */
figure {
  margin: 0;
}

/* =============================================================================
  Forms
  ========================================================================== */
form {
  margin: 0;
}

fieldset {
  border: 0;
  margin: 0;
  padding: 0;
}

/* Indicate that 'label' will shift focus to the associated form element */
label {
  cursor: pointer;
}

/*
* 1. Correct color not inheriting in IE6/7/8/9
* 2. Correct alignment displayed oddly in IE6/7
*/
legend {
  border: 0;
  *margin-left: -7px;
  padding: 0;
  white-space: normal;
}

/*
* 1. Correct font-size not inheriting in all browsers
* 2. Remove margins in FF3/4 S5 Chrome
* 3. Define consistent vertical alignment display in all browsers
*/
button, input, select, textarea { /*font-size: 100%;*/
  margin: 0;
  vertical-align: baseline;
  *vertical-align: middle;
}

/*
* 1. Define line-height as normal to match FF3/4 (set using !important in the UA stylesheet)
*/
button, input {
  line-height: normal;
}

/*
* 1. Display hand cursor for clickable form elements
* 2. Allow styling of clickable form elements in iOS
* 3. Correct inner spacing displayed oddly in IE7 (doesn't effect IE6)
*/
button, input[type=button], input[type=reset], input[type=submit] {
  cursor: pointer;
  -webkit-appearance: button;
  *overflow: visible;
}

/*
* Re-set default cursor for disabled elements
*/
button[disabled], input[disabled] {
  cursor: default;
}

/*
* Consistent box sizing and appearance
*/
input[type=checkbox], input[type=radio] {
  box-sizing: border-box;
  padding: 0;
  *width: 13px;
  *height: 13px;
}

input[type=search] {
  -webkit-appearance: textfield;
  -moz-box-sizing: content-box;
  -webkit-box-sizing: content-box;
  box-sizing: content-box;
}

input[type=search]::-webkit-search-decoration, input[type=search]::-webkit-search-cancel-button {
  -webkit-appearance: none;
}

/*
* Remove inner padding and border in FF3/4: h5bp.com/l
*/
button::-moz-focus-inner, input::-moz-focus-inner {
  border: 0;
  padding: 0;
}

/*
* 1. Remove default vertical scrollbar in IE6/7/8/9
* 2. Allow only vertical resizing
*/
textarea {
  overflow: auto;
  vertical-align: top;
  resize: vertical;
}

/* Colors for form validity */
input:invalid, textarea:invalid {
  background-color: #f0dddd;
}

/* =============================================================================
  Tables
  ========================================================================== */
/*table { border-collapse: collapse; border-spacing: 0; }
td { vertical-align: top; }
*/
/* =============================================================================
  Chrome Frame Prompt
  ========================================================================== */
.chromeframe {
  margin: 0.2em 0;
  background: #ccc;
  color: black;
  padding: 0.2em 0;
}

/* ==|== primary styles =====================================================
  Author:
  ========================================================================== */
/* ==|== media queries ======================================================
  EXAMPLE Media Query for Responsive Design.
  This example overrides the primary ('mobile first') styles
  Modify as content requires.
  ========================================================================== */
@media only screen and (min-width: 35em) {
  /* Style adjustments for viewports that meet the condition */
}
/* ==|== non-semantic helper classes ========================================
  Please define your styles before this section.
  ========================================================================== */
/* For image replacement */
.ir {
  display: block;
  border: 0;
  text-indent: -999em;
  overflow: hidden;
  background-color: transparent;
  background-repeat: no-repeat;
  text-align: left;
  direction: ltr;
  *line-height: 0;
}

.ir br {
  display: none;
}

/* Hide only visually, but have it available for screenreaders: h5bp.com/v */
.visuallyhidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}

/* Extends the .visuallyhidden class to allow the element to be focusable when navigated to via the keyboard: h5bp.com/p */
.visuallyhidden.focusable:active, .visuallyhidden.focusable:focus {
  clip: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  position: static;
  width: auto;
}

/* Hide visually and from screenreaders, but maintain layout */
.invisible {
  visibility: hidden;
}

/* Contain floats: h5bp.com/q */
.clearfix:before, .clearfix:after {
  content: "";
  display: table;
}

.clearfix:after {
  clear: both;
}

.clearfix {
  *zoom: 1;
}

/* ==|== print styles =======================================================
  Print styles.
  Inlined to avoid required HTTP connection: h5bp.com/r
  ========================================================================== */
@media print {
  * {
    background: transparent !important;
    color: black !important;
    box-shadow: none !important;
    text-shadow: none !important;
    filter: none !important;
    -ms-filter: none !important;
  } /* Black prints faster: h5bp.com/s */
  a, a:visited {
    text-decoration: underline;
  }
  a[href]:after {
    content: " (" attr(href) ")";
  }
  abbr[title]:after {
    content: " (" attr(title) ")";
  }
  .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after {
    content: "";
  } /* Don't show links for images, or javascript/internal links */
  pre, blockquote {
    border: 1px solid #999;
    page-break-inside: avoid;
  }
  thead {
    display: table-header-group;
  } /* h5bp.com/t */
  tr, img {
    page-break-inside: avoid;
  }
  img {
    max-width: 100% !important;
  }
  @page {
    margin: 0.5cm;
  }
  p, h2, h3 {
    orphans: 3;
    widows: 3;
  }
  h2, h3 {
    page-break-after: avoid;
  }
}
/* -----------------------------------------------------------------------------
    GLOBAL DEFAULTS
 ----------------------------------------------------------------------------- */
/**
 * -----------------------------------------------------------------------------
 * Base resets + text wrapping
 * -----------------------------------------------------------------------------
 */
* {
  box-sizing: border-box;
  overflow-wrap: break-word;
  word-wrap: break-word;
}

/**
 * -----------------------------------------------------------------------------
 * HTML & Body defaults
 * -----------------------------------------------------------------------------
 *
 * - Controls document-level behaviours (e.g. locking scroll when menus are open)
 * - Sets global font, colours, and base typography
 * - Uses flex column so the footer can sit at the bottom of the viewport
 * - Optional focus outline helper class for debugging accessibility
 */
html.menu-open {
  overflow: hidden;
}

body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  margin: 0;
  padding: 0;
  background-color: var(--colorWhite);
  text-align: left;
  font-family: "SharpSans", sans-serif;
}
body.show-focus-outlines a:focus,
body.show-focus-outlines input:focus,
body.show-focus-outlines textarea:focus,
body.show-focus-outlines select:focus,
body.show-focus-outlines button:focus {
  outline: deeppink solid 1px;
}

/**
 * -----------------------------------------------------------------------------
 * Global hover fade
 * -----------------------------------------------------------------------------
 *
 * Applies a subtle opacity hover to most links/buttons,
 * excluding buttons/menus/pagination and any element explicitly opted out.
 */
a:not(.btn):not(.menu-item a):not(.page-numbers):not(.hamburger):not(button):not(.no-hover-opacity),
button:not(.no-hover-opacity) {
  opacity: 1;
  transition: opacity 0.5s;
}
a:not(.btn):not(.menu-item a):not(.page-numbers):not(.hamburger):not(button):not(.no-hover-opacity):hover,
button:not(.no-hover-opacity):hover {
  opacity: 0.8;
}

/**
 * -----------------------------------------------------------------------------
 * Image defaults
 * -----------------------------------------------------------------------------
 */
img {
  border: 0;
  height: auto;
  max-width: 100%;
  z-index: 0;
}

/**
 * -----------------------------------------------------------------------------
 * Main defaults
 * -----------------------------------------------------------------------------
 *
 * - Ensures main fills available height (pairs with body flex column)
 * - Provides base heading sizes + weights
 * - Contains shared WYSIWYG/content styling patterns
 */
main {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 200px;
  /* Base heading sizes */
}
main h1 {
  font-size: 56px;
  line-height: 1.2;
}
@media (max-width: 768px) {
  main h1 {
    font-size: 40px;
    line-height: 1.2;
  }
}
@media (max-width: 576px) {
  main h1 {
    font-size: 36px;
    line-height: 1.2;
  }
}
main h2 {
  font-size: 40px;
  line-height: 1.2;
}
@media (max-width: 767px) {
  main h2 {
    font-size: 32px;
    line-height: 1.2;
  }
}
main h3 {
  font-size: 32px;
  line-height: 1.2;
}
@media (max-width: 767px) {
  main h3 {
    font-size: 24px;
    line-height: 1.2;
  }
}
main h4 {
  font-size: 24px;
  line-height: 1.2x;
}
@media (max-width: 767px) {
  main h4 {
    font-size: 20px;
    line-height: 1.2;
  }
}
main h5 {
  font-size: 20px;
  line-height: 1.2;
}
@media (max-width: 767px) {
  main h5 {
    font-size: 18px;
    line-height: 1.2;
  }
}
main h6 {
  font-size: 18px;
  line-height: 1.2;
}
main h1,
main h2,
main h3,
main h4,
main h5,
main h6 {
  font-weight: normal;
}
main {
  /**
   * -----------------------------------------------------------------------------
   * Base list styling
   * -----------------------------------------------------------------------------
   */
}
main ul,
main ol {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 0;
}
main ul li,
main ol li {
  position: relative;
  left: 0;
  margin: 0;
  padding: 0;
}
main ul li:before,
main ol li:before {
  position: absolute;
  left: 0;
}
main ul li .list-icon-clip,
main ol li .list-icon-clip {
  clip-path: polygon(28.75% 100%, 28.75% 92.5%, 0% 92.5%, 0% 25%, 16.25% 25%, 16.25% 0%, 83.75% 0%, 83.75% 16.25%, 100% 16.25%, 100% 100%);
}
main ul,
main ol {
  /**
   * Tick list variant (icon bullets)
   */
}
main ul.tick-text-list li,
main ol.tick-text-list li {
  position: relative;
  padding-left: 21px;
}
main ul.tick-text-list li:before,
main ol.tick-text-list li:before {
  position: absolute;
  content: url(images/list-tick.svg);
  height: 9px;
  left: 0;
  top: -1px;
}
main {
  /**
   * -----------------------------------------------------------------------------
   * Default link styling inside main
   * -----------------------------------------------------------------------------
   */
}
main a:not(.btn):not(.no-underline):not(.page-numbers) {
  text-decoration: underline;
}
main {
  /**
  * -----------------------------------------------------------------------------
  * Flexible content wrapper on default post pages
  * -----------------------------------------------------------------------------
  */
}
main .flexible-content--post {
  gap: 60px;
}
main .flexible-content--post section:first-child {
  padding-top: 60px;
}
@media (min-width: 768px) {
  main .flexible-content--post section:first-child {
    padding-top: 112px;
  }
}
main .flexible-content--post section:last-child {
  padding-bottom: 60px;
}
@media (min-width: 768px) {
  main .flexible-content--post section:last-child {
    padding-bottom: 112px;
  }
}
main {
  /**
   * -----------------------------------------------------------------------------
   * WYSIWYG / content wrapper
   * -----------------------------------------------------------------------------
   *
   * Used across blocks to standardise typography spacing and element behaviour.
   */
}
main .content {
  /* Content-specific heading weights */
}
main .content h1,
main .content h2 {
  color: var(--colorBrand-1);
  font-weight: 400;
  padding: 20px 0 12px;
}
main .content h3 {
  color: var(--colorBrand-1);
  font-weight: 400;
}
main .content h4,
main .content h5,
main .content h6 {
  font-weight: 500;
}
main .content p {
  margin-bottom: 16px;
}
main .content details[open] summary::before {
  transform: rotate(90deg);
}
main .content summary {
  display: flex;
  align-items: start;
  gap: 8px;
  list-style: none;
}
main .content summary::before {
  content: "▶︎";
  flex-shrink: 0;
  transition: transform 0.2s;
  color: var(--colorBrand-1);
}
main .content summary::-webkit-details-marker {
  display: none;
}
main .content summary.cmplz-service-header::before {
  margin-top: 10px;
}
main .content .cmplz-open svg {
  display: none;
}
main .content {
  /**
   * Larger bold text variant (used for emphasis blocks)
   */
}
main .content.with-bold-text b,
main .content.with-bold-text strong {
  font-size: 24px;
  font-weight: bold;
}
@media (max-width: 767px) {
  main .content.with-bold-text b,
  main .content.with-bold-text strong {
    font-size: 20px;
  }
}
main .content {
  /* Prevent long strings (URLs etc) from breaking layouts */
}
main .content * {
  word-break: break-word;
}
main .content {
  /**
   * -----------------------------------------------------------------------------
   * Unordered list bullets (dot bullets)
   * -----------------------------------------------------------------------------
   *
   * Excludes .tick-text-list which uses icons.
   */
}
main .content ul:not(.tick-text-list) {
  --bullet-size: 0.375em;
}
main .content ul:not(.tick-text-list) li {
  position: relative;
  list-style: none;
  padding-left: calc(var(--bullet-size) + 10px);
}
main .content ul:not(.tick-text-list) li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.8em;
  transform: translateY(-20%);
  width: var(--bullet-size);
  height: var(--bullet-size);
  background-color: var(--colorBrand-3);
  border-radius: 50%;
}
main .content ul:not(.tick-text-list) {
  /* (Nested safeguard) tick list styling if applied here */
}
main .content ul:not(.tick-text-list).tick-text-list li {
  position: relative;
  padding-left: 22px;
}
main .content ul:not(.tick-text-list).tick-text-list li:before {
  position: absolute;
  top: -1px;
  left: 0;
  content: url(images/list-tick.svg);
  height: 9px;
}
main .content {
  /**
   * -----------------------------------------------------------------------------
   * Ordered list styling (custom counter + divider)
   * -----------------------------------------------------------------------------
   */
}
main .content ol {
  list-style: none;
  counter-reset: list-counter;
}
main .content ol li {
  position: relative;
  counter-increment: list-counter;
  padding-left: 3.2ch;
}
main .content ol li::before {
  position: absolute;
  top: 0.3em;
  left: 0;
  content: counter(list-counter);
  font-weight: bold;
  padding-right: 0.6ch;
  margin-right: 0.6ch;
  border-right: 2px solid var(--colorBrand-3);
  line-height: 1;
  text-align: right;
  width: 2ch;
}
main .content ol {
  /* Adjust spacing for wider numbers */
}
main .content ol li:nth-child(n+10) {
  padding-left: 4.2ch;
}
main .content ol li:nth-child(n+10)::before {
  width: 3ch;
}
main .content ol li:nth-child(n+100) {
  padding-left: 5.2ch;
}
main .content ol li:nth-child(n+100)::before {
  width: 4ch;
}
main .content {
  /**
   * Utility: larger list gaps
   */
}
main .content.ul-flex-20px ul {
  gap: 20px;
}
main .content {
  /**
   * -----------------------------------------------------------------------------
   * HR styling
   * -----------------------------------------------------------------------------
   */
}
main .content hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid var(--colorBrand-3);
  padding: 0;
  margin: 80px 0 !important;
}
@media (max-width: 767px) {
  main .content hr {
    margin: 40px 0 !important;
  }
}
main .content {
  /**
   * -----------------------------------------------------------------------------
   * Links inside content
   * -----------------------------------------------------------------------------
   */
}
main .content a:not(.btn):not(.no-hover-opacity) {
  text-decoration: underline;
  transition-property: color;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
main .content a:not(.btn):not(.no-hover-opacity):hover {
  opacity: 0.8;
}
main .content {
  /**
   * Variant: remove underlines in content
   */
}
main .content.no-underline a {
  text-decoration: none;
}
main .content {
  /**
   * -----------------------------------------------------------------------------
   * Button spacing inside content
   * -----------------------------------------------------------------------------
   */
}
main .content .btn {
  margin-top: 30px !important;
}
main .content .btn:first-of-type {
  margin-top: 0 !important;
}
main .content * + .btn {
  margin-top: 30px !important;
}
main .content * + .btn:first-of-type {
  margin-top: 30px !important;
}
main .content b,
main .content strong {
  font-weight: 700;
}
main .content img {
  margin: 64px 0;
}
main .content {
  /**
   * -----------------------------------------------------------------------------
   * WP caption blocks
   * -----------------------------------------------------------------------------
   */
}
main .content .wp-caption {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 64px 0;
  max-width: 100%;
}
main .content .wp-caption img {
  margin: 0;
}
main .content .wp-caption .wp-caption-text {
  font-weight: normal;
}
main .content {
  /**
   * -----------------------------------------------------------------------------
   * Blockquotes
   * -----------------------------------------------------------------------------
   */
}
main .content.blockquote-border blockquote {
  border-left: 5px solid var(--colorBrand-1);
  padding-left: 32px;
}
main .content blockquote {
  display: flex;
  flex-direction: column;
  gap: 10px;
  font-size: 24px;
  line-height: normal;
}
@media (max-width: 981px) {
  main .content blockquote {
    font-size: 24px;
    line-height: 34px;
  }
}
main .content blockquote:before {
  content: "";
  display: block;
  width: 31px;
  height: 24px;
  background-image: url(images/quotation-mark-icon.svg);
  background-repeat: no-repeat;
  background-size: contain;
}
main .content {
  /**
   * -----------------------------------------------------------------------------
   * Single post content constraints
   * -----------------------------------------------------------------------------
   */
}
main .content.single-post-content *:not(img):not(.wp-caption) {
  max-width: 876px;
}
main .content.single-post-content img {
  max-width: 1024px;
  width: 100%;
}

/* -----------------------------------------------------------------------------
   VIDEO PAUSE BUTTON (HERO / BACKGROUND VIDEO)
----------------------------------------------------------------------------- */
.video-pause-btn-container {
  position: relative;
  display: flex;
  align-self: flex-start;
  align-items: center;
  height: 45px;
  width: 45px;
  cursor: pointer;
}
.video-pause-btn-container .video-pause-btn {
  position: relative;
  display: block;
  transition: all 0.25s;
  z-index: 99;
  border-top: 0;
  border-right: transparent;
  border-bottom: 0;
  border-left: 3px solid var(--colorWhite);
  background: transparent;
  width: 30px;
  height: 25px;
  transform: scale(0.75);
  left: 13px;
}
.video-pause-btn-container .video-pause-btn:before {
  content: "";
  position: absolute;
  bottom: 0;
  margin-left: -3px;
  background: var(--colorWhite);
  width: 3px;
  height: 100%;
}
.video-pause-btn-container {
  /* Paused state becomes a play triangle */
}
.video-pause-btn-container.is-paused .video-pause-btn {
  border-top: 12.05px solid transparent;
  border-bottom: 12.05px solid transparent;
  border-left: 19px solid var(--colorWhite);
  height: 0;
  left: 13px;
}
.video-pause-btn-container.is-paused .video-pause-btn:before {
  height: 0;
}
.video-pause-btn-container {
  /* Dim overlay behind the control */
}
.video-pause-btn-container:after {
  position: absolute;
  content: "";
  height: 100%;
  width: 100%;
  background-color: var(--colorBrand-1);
  opacity: 0.5;
  top: 0;
  left: 0;
  z-index: 20;
}

/* Hide the reCAPTCHA badge (ensure you still meet Google's disclosure requirements) */
.grecaptcha-badge {
  visibility: hidden;
}

/**
 * -----------------------------------------------------------------------------
 * Focus outlines toggle
 * -----------------------------------------------------------------------------
 *
 * Default behaviour removes outlines unless .show-focus-outlines is on body.
 */
body:not(.show-focus-outlines) button:focus,
body:not(.show-focus-outlines) a:focus,
body:not(.show-focus-outlines) [tabindex]:focus {
  outline: none;
}

/* -----------------------------------------------------------------------------
   WRAPPERS
----------------------------------------------------------------------------- */
/**
 * Standard content wrapper (site-wide)
 * - Uses responsive padding
 * - Adds max-width constraint at xl+
 */
.wrapper {
  width: 100%;
  margin: 0 auto;
  max-width: 100%;
  position: relative;
  padding-inline: 24px;
}
@media screen and (min-width: 768px) {
  .wrapper {
    padding-inline: 40px;
  }
}
@media screen and (min-width: 1024px) {
  .wrapper {
    padding-inline: 70px;
  }
}
.wrapper-archive {
  padding-inline: 8px;
}
@media screen and (min-width: 768px) {
  .wrapper-archive {
    padding-inline: 24px;
  }
}
@media screen and (min-width: 1024px) {
  .wrapper-archive {
    padding-inline: 54px;
  }
}

/* -----------------------------------------------------------------------------
   BUTTONS
----------------------------------------------------------------------------- */
/**
 * Base button component
 * - Supports .light / .dark variants
 * - Uses layered chevrons so the chevron can swap on hover without layout shift
 */
.btn {
  display: inline-flex;
  align-self: flex-start;
  justify-content: center;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  margin: 12px;
  min-height: 45px;
  font-weight: normal;
  border: 1px solid transparent;
  transition: all 0.2s ease-in-out;
  position: relative;
  /**
   * -----------------------------------------------------------------------------
   * LIGHT button (default)
   * -----------------------------------------------------------------------------
   */
}
.btn.light {
  background-color: var(--colorWhite);
  color: var(--colorBlack);
}
.btn.light:hover {
  background-color: var(--colorBrand-4);
  border-color: var(--colorBrand-4);
}
.btn.light::before {
  /* corner color */
  background: white;
}
.btn {
  /**
   * LIGHT variant: white border on hover
   */
}
.btn.light.light--white-border:hover {
  border-color: var(--colorBrand-2);
}
.btn {
  /**
   * -----------------------------------------------------------------------------
   * DARK button
   * -----------------------------------------------------------------------------
   */
}
.btn.black {
  background-color: var(--colorBlack);
  color: var(--colorWhite);
}
.btn.black:hover {
  background-color: var(--colorBrand-1);
  color: var(--colorWhite);
  border-color: var(--colorBrand-1);
}
.btn.black::before {
  /* corner color */
  background: black;
}
.btn {
  /**
   * DARK variant: white border on hover
   */
}
.btn.black.black--white-border:hover {
  border-color: var(--colorBrand-2);
}
.btn {
  /**
  * -----------------------------------------------------------------------------
  * PLUM button
  * -----------------------------------------------------------------------------
  */
}
.btn.dark {
  background-color: var(--colorBrand-1);
  color: var(--colorWhite);
}
.btn.dark:hover {
  background-color: var(--colorBrand-3);
  border-color: var(--colorBrand-1);
}
.btn.dark::before {
  /* corner color */
  background: var(--colorBrand-1);
}
.btn:hover::before {
  inset: -8px;
}
.btn::before {
  content: "";
  position: absolute;
  inset: -12px;
  pointer-events: none;
  transition: all 0.2s ease-in-out;
  /* corner color */
  /* mask creates the 4 corner "L" shapes */
  -webkit-mask: linear-gradient(#fff 0 0) top left, linear-gradient(#fff 0 0) top left, linear-gradient(#fff 0 0) top right, linear-gradient(#fff 0 0) top right, linear-gradient(#fff 0 0) bottom left, linear-gradient(#fff 0 0) bottom left, linear-gradient(#fff 0 0) bottom right, linear-gradient(#fff 0 0) bottom right;
  -webkit-mask-size: 16px 1px, 1px 16px, 16px 1px, 1px 16px, 16px 1px, 1px 16px, 16px 1px, 1px 16px;
  -webkit-mask-repeat: no-repeat;
  mask: linear-gradient(#fff 0 0) top left, linear-gradient(#fff 0 0) top left, linear-gradient(#fff 0 0) top right, linear-gradient(#fff 0 0) top right, linear-gradient(#fff 0 0) bottom left, linear-gradient(#fff 0 0) bottom left, linear-gradient(#fff 0 0) bottom right, linear-gradient(#fff 0 0) bottom right;
  mask-size: 16px 1px, 1px 16px, 16px 1px, 1px 16px, 16px 1px, 1px 16px, 16px 1px, 1px 16px;
  mask-repeat: no-repeat;
}
.btn.no-corners {
  margin: 0;
}
.btn.no-corners::before {
  display: none;
}

a.full-card-click::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.link-arrow::after {
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  background: url("images/btn-black-chevron.svg") no-repeat 50% 50%;
  background-size: contain;
  vertical-align: middle;
  margin-left: 4px;
  transition: all 0.2s ease-in-out;
}
.link-arrow-white::after {
  background: url("images/btn-white-chevron.svg") no-repeat 50% 50%;
}

.group:hover .link-arrow::after {
  background-image: url("images/btn-white-chevron.svg");
}

/* -----------------------------------------------------------------------------
   SLICK SLIDER OVERRIDES
----------------------------------------------------------------------------- */
.slick-slider.slick-dotted {
  margin-bottom: 0 !important;
}
.slick-slider {
  /**
   * Text selection behaviour (ALL slick sliders)
   *
   * Notes:
   * - Slick applies `user-select: none` globally to support dragging.
   * - This prevents highlighting/copying text inside slides.
   * - We re-enable text selection for slide content,
   *   while keeping interactive elements non-selectable
   *   to avoid awkward drag/selection behaviour.
   */
}
.slick-slider .content,
.slick-slider .content * {
  -webkit-user-select: text !important;
  -moz-user-select: text !important;
  -ms-user-select: text !important;
  user-select: text !important;
}
.slick-slider {
  /**
   * Keep images/buttons/links behaving normally
   */
}
.slick-slider img,
.slick-slider button,
.slick-slider .slider-btn,
.slick-slider a {
  -webkit-user-select: none !important;
  user-select: none !important;
}
.slick-slider .slick-track {
  display: flex;
  min-width: 100%;
}
@media (min-width: 768px) {
  .slick-slider .slick-track {
    margin-left: -16px;
  }
}
.slick-slider .slick-track .slick-slide {
  display: flex !important;
}
.slick-slider .slick-track .slick-slide div:not([class]) {
  height: 100%;
  width: 100%;
}
.slick-slider {
  /**
   * 4-slide layout sizing + spacing
   */
}
.slick-slider.four-slides-slider .slick-list {
  padding: 0 !important;
}
@media (max-width: 767px) {
  .slick-slider.four-slides-slider .slick-list {
    margin: 0 -10px;
  }
}
.slick-slider.four-slides-slider .slick-track .slick-slide {
  margin-left: 26px;
  margin-right: 26px;
  max-width: 268px !important;
  height: auto !important;
  width: 100% !important;
  justify-content: center;
}
@media (max-width: 767px) {
  .slick-slider.four-slides-slider .slick-track .slick-slide {
    margin-left: 10px;
    margin-right: 10px;
  }
}
.slick-slider {
  /**
   * 3-slide layout sizing + spacing
   */
}
.slick-slider.three-slides-slider .slick-list, .slick-slider.three-slides-slider-dots .slick-list {
  padding: 0 12% 0 0 !important;
}
@media (max-width: 767px) {
  .slick-slider.three-slides-slider .slick-list, .slick-slider.three-slides-slider-dots .slick-list {
    margin: 0 -10px;
  }
}
.slick-slider.three-slides-slider .slick-track .slick-slide, .slick-slider.three-slides-slider-dots .slick-track .slick-slide {
  margin-left: 16px;
  margin-right: 16px;
  height: auto !important;
}
@media (max-width: 767px) {
  .slick-slider.three-slides-slider .slick-track .slick-slide, .slick-slider.three-slides-slider-dots .slick-track .slick-slide {
    margin-left: 10px;
    margin-right: 10px;
  }
}

/**
 * -----------------------------------------------------------------------------
 * Slick dots
 * -----------------------------------------------------------------------------
 */
.slick-dots {
  position: relative !important;
  bottom: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  flex-direction: row !important;
  margin-top: 0 !important;
  text-align: left !important;
  gap: 10px !important;
  color: transparent !important;
}
.slick-dots.hidden {
  display: none !important;
}
.slick-dots li {
  list-style: none !important;
  width: 8px !important;
  height: 8px !important;
  opacity: 0.4 !important;
  border-radius: 0;
  background-color: var(--colorBlack) !important;
  margin: 0 !important;
  padding: 0 !important;
}
.slick-dots li button {
  width: 8px !important;
  height: 8px !important;
}
.slick-dots li:hover {
  opacity: 1 !important;
}
.slick-dots li:before {
  content: none !important;
}
.slick-dots li.slick-active {
  opacity: 1 !important;
  width: 12px !important;
  height: 12px !important;
}
.slick-dots li.slick-active button {
  width: 12px !important;
  height: 12px !important;
}
.slick-dots > li:only-child {
  display: none;
}

.slider-nav-white .slick-dots li {
  background-color: var(--colorWhite) !important;
}

/* -----------------------------------------------------------------------------
   SLIDER ARROW BUTTONS
----------------------------------------------------------------------------- */
/**
 * Slider arrow button
 * - Uses layered background images so the arrow can swap on hover
 * - .slider-prev flips the arrow using scaleX
 */
.slider-btn {
  position: relative;
  width: 50px;
  height: 50px;
  background-color: var(--colorBlack);
  border: 1px solid transparent;
  transition: background-color 200ms cubic-bezier(0.4, 0, 0.2, 1), border-color 200ms cubic-bezier(0.4, 0, 0.2, 1);
}
.slider-btn::before, .slider-btn::after {
  content: "";
  position: absolute;
  inset: 0;
  background-size: 22px 15px;
  background-repeat: no-repeat;
  background-position: center;
  transition: opacity 200ms cubic-bezier(0.4, 0, 0.2, 1);
}
.slider-btn::before {
  background-image: url(images/slider-arrow-white-next.svg);
  opacity: 1;
}
.slider-btn::after {
  background-image: url(images/slider-arrow-black-next.svg);
  opacity: 0;
}
.slider-btn.slider-prev::before, .slider-btn.slider-prev::after {
  transform: scaleX(-1);
}
.slider-btn:hover {
  background-color: var(--colorWhite);
  border-color: var(--colorBlack);
}
.slider-btn:hover::before {
  opacity: 0;
}
.slider-btn:hover::after {
  opacity: 1;
}

.slider-nav-white .slider-btn {
  background-color: var(--colorWhite) !important;
}
.slider-nav-white .slider-btn::before {
  background-image: url(images/slider-arrow-black-next.svg);
  opacity: 1;
}
.slider-nav-white .slider-btn::after {
  background-image: url(images/slider-arrow-white-next.svg);
  opacity: 0;
}
.slider-nav-white .slider-btn:hover {
  background-color: var(--colorBlack);
  border-color: var(--colorWhite);
}
.slider-nav-white .slider-btn:hover::before {
  opacity: 1;
}
.slider-nav-white .slider-btn:hover::after {
  opacity: 0;
}

/* -----------------------------------------------------------------------------
   FORMS (CONTACT FORM 7)
----------------------------------------------------------------------------- */
/**
 * Form wrapper styling used on Contact page and any CF7 embeds.
 */
.form-wrapper {
  width: 100%;
}
.form-wrapper .form-container {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
}
.form-wrapper .form-container .form-row-container {
  display: flex;
  justify-content: space-between;
  column-gap: 56px;
  row-gap: 16px;
  width: 100%;
}
.form-wrapper .form-container .form-row-container .form-field {
  display: flex;
  flex-direction: column;
  gap: 5px;
  width: calc(50% - 12px);
}
@media (max-width: 767px) {
  .form-wrapper .form-container .form-row-container .form-field {
    width: 100%;
  }
}
.form-wrapper .form-container .form-row-container .form-field {
  /* Validation message */
}
.form-wrapper .form-container .form-row-container .form-field .wpcf7-not-valid-tip {
  display: flex;
  align-items: center;
  margin-top: 0;
  background-color: rgba(255, 0, 0, 0.2117647059);
  min-height: 30px;
  font-weight: bold;
  font-size: 12px;
  color: var(--colorBrand-1);
  padding: 5px 10px;
}
.form-wrapper .form-container .form-row-container .form-field.full-width {
  width: 100%;
}
.form-wrapper .form-container .form-row-container .form-field label:not(.wpcf7-list-item label) {
  display: flex;
  flex-direction: column;
  row-gap: 4px;
  width: 100%;
  font-size: 14px;
}
.form-wrapper .form-container .form-row-container .form-field .wpcf7-form-control-wrap {
  width: 100%;
}
.form-wrapper .form-container .form-row-container .form-field .wpcf7-radio,
.form-wrapper .form-container .form-row-container .form-field .wpcf7-checkbox {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  width: 100%;
}
.form-wrapper .form-container .form-row-container .form-field .wpcf7-list-item {
  margin-left: 0;
}
.form-wrapper .form-container .form-row-container .form-field .wpcf7-list-item label {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  width: 100%;
}
.form-wrapper .form-container .form-row-container .form-field {
  /* Text inputs/select */
}
.form-wrapper .form-container .form-row-container .form-field input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=file]):not([type=hidden]),
.form-wrapper .form-container .form-row-container .form-field select {
  border: 1px solid var(--colorBrand-1);
  width: 100%;
  min-height: 46px;
  padding: 12px;
  transition: 150ms border-color ease-in;
  border-radius: 0;
}
.form-wrapper .form-container .form-row-container .form-field input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=file]):not([type=hidden]):invalid,
.form-wrapper .form-container .form-row-container .form-field select:invalid {
  background-color: var(--colorWhite);
  border-color: #FF0000;
}
.form-wrapper .form-container .form-row-container .form-field input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=file]):not([type=hidden]):hover,
.form-wrapper .form-container .form-row-container .form-field select:hover {
  border-color: color-mix(in srgb, var(--colorBrand-3) 85%, black);
}
.form-wrapper .form-container .form-row-container .form-field input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=file]):not([type=hidden]) option[value=""],
.form-wrapper .form-container .form-row-container .form-field select option[value=""] {
  color: #9ca3af;
}
.form-wrapper .form-container .form-row-container .form-field input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=file]):not([type=hidden]):has(option[value=""]:checked),
.form-wrapper .form-container .form-row-container .form-field select:has(option[value=""]:checked) {
  color: #9ca3af;
}
.form-wrapper .form-container .form-row-container .form-field input[type=checkbox]:invalid,
.form-wrapper .form-container .form-row-container .form-field input[type=radio]:invalid,
.form-wrapper .form-container .form-row-container .form-field textarea:invalid {
  border-color: #FF0000;
}
.form-wrapper .form-container .form-row-container .form-field textarea {
  border: 1px solid var(--colorBrand-1);
  border-radius: 0;
  padding: 12px;
  min-height: 180px;
  height: 180px;
  width: 100%;
  transition: 150ms border-color ease-in;
}
.form-wrapper .form-container .form-row-container .form-field textarea:hover {
  border-color: color-mix(in srgb, var(--colorBrand-3) 85%, black);
}
.form-wrapper .form-container .form-row-container .form-field {
  /* Submit spinner positioning */
}
.form-wrapper .form-container .form-row-container .form-field .form-submit-button-container {
  position: relative;
  margin-top: 16px;
}
.form-wrapper .form-container .form-row-container .form-field .form-submit-button-container .wpcf7-spinner {
  position: absolute;
  margin: 0 auto;
  bottom: -30px;
  left: 0;
  right: 0;
}
.form-wrapper .form-container .form-row-container .form-field {
  /* Custom checkbox/radio styling */
}
.form-wrapper .form-container .form-row-container .form-field input[type=checkbox],
.form-wrapper .form-container .form-row-container .form-field input[type=radio] {
  display: grid;
  place-content: center;
  appearance: none;
  background-color: var(--colorWhite);
  border-radius: 0;
  width: 18px;
  height: 18px;
  border: 1px solid var(--colorBrand-1);
  cursor: pointer;
  flex: 0 0 18px;
  margin-top: 4px;
  transition: 150ms border-color ease-in;
}
.form-wrapper .form-container .form-row-container .form-field input[type=checkbox]::before,
.form-wrapper .form-container .form-row-container .form-field input[type=radio]::before {
  content: "" !important;
  transition: 150ms transform ease-in;
  transform: scale(0) !important;
}
.form-wrapper .form-container .form-row-container .form-field input[type=checkbox]:checked::before,
.form-wrapper .form-container .form-row-container .form-field input[type=radio]:checked::before {
  transform: scale(1) !important;
}
.form-wrapper .form-container .form-row-container .form-field input[type=checkbox]:hover,
.form-wrapper .form-container .form-row-container .form-field input[type=radio]:hover {
  border-color: color-mix(in srgb, var(--colorBrand-3) 85%, black);
}
.form-wrapper .form-container .form-row-container .form-field input[type=checkbox]::before {
  width: 9px;
  height: 9px;
  clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
  background-color: var(--colorBrand-1);
}
.form-wrapper .form-container .form-row-container .form-field input[type=radio] {
  border-radius: 100%;
}
.form-wrapper .form-container .form-row-container .form-field input[type=radio]::before {
  display: flex;
  justify-content: center;
  align-items: center;
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 50%;
  box-shadow: inset 10px 10px var(--colorBrand-1);
  background: none;
  border: none;
  top: 2px;
  bottom: 0;
  left: 2px;
  right: 0;
}
.form-wrapper .form-container .form-row-container .form-field input[type=radio]::after {
  display: none;
}
.form-wrapper .form-container .form-row-container .form-field {
  /* Custom select arrow */
}
.form-wrapper .form-container .form-row-container .form-field .select-container {
  position: relative;
  cursor: pointer;
}
.form-wrapper .form-container .form-row-container .form-field .select-container select {
  -webkit-appearance: none;
  padding: 12px;
  cursor: pointer;
  background-color: var(--colorWhite);
}
.form-wrapper .form-container .form-row-container .form-field .select-container:after {
  position: absolute;
  top: 0;
  right: 0;
  display: block;
  content: "";
  width: 46px;
  height: 46px;
  background-image: url(images/select-arrow-black.svg);
  background-size: 11px 7px;
  background-repeat: no-repeat;
  background-position: center;
  pointer-events: none;
}
.form-wrapper .form-container .form-row-container .form-row {
  display: flex;
  column-gap: 24px;
  row-gap: 24px;
  width: 100%;
}
.form-wrapper .form-container .form-row-container .form-row.full-width {
  flex-direction: column;
}
.form-wrapper .form-container .form-row-container .form-row.full-width .form-field {
  width: 100%;
}
@media (max-width: 1023px) {
  .form-wrapper .form-container .form-row-container .form-row {
    column-gap: 28px;
  }
}
@media (max-width: 767px) {
  .form-wrapper .form-container .form-row-container .form-row {
    flex-direction: column;
  }
}
.form-wrapper {
  /* CF7 response output */
}
.form-wrapper .wpcf7-response-output {
  margin: 30px 0 0 0 !important;
  padding: 5px 20px !important;
}
.form-wrapper.btn-colour-light .wpcf7-submit {
  background-color: var(--colorWhite);
  color: var(--colorBlack);
}
.form-wrapper.btn-colour-light .wpcf7-submit:hover {
  background-color: var(--colorBrand-3);
  border-color: var(--colorBrand-3);
  color: var(--colorWhite);
}

/* -----------------------------------------------------------------------------
   PAGINATION
----------------------------------------------------------------------------- */
/**
 * Pagination styling for numbered links.
 */
.pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  background-color: var(--colorWhite);
  transition: all 200ms cubic-bezier(0.4, 0, 0.2, 1);
}
.pagination .page-numbers:not(.current):hover {
  background-color: var(--colorBlack);
}
.pagination .page-numbers:not(.current):hover span {
  color: var(--colorWhite);
}
.pagination .page-numbers span {
  font-weight: 500;
  font-size: 20px;
  color: var(--colorBlack);
}
.pagination .page-numbers.current {
  background-color: var(--colorBlack);
}
.pagination .page-numbers.current span {
  color: var(--colorWhite);
}
.pagination .page-numbers.next, .pagination .page-numbers.prev {
  display: none;
}

/* -----------------------------------------------------------------------------
   IMAGE + VIDEO BLOCK
----------------------------------------------------------------------------- */
/**
 * Shared styling for the image/video flexible content block.
 */
.image-video-block .video-play-btn {
  position: absolute;
  height: 80px;
  width: 80px;
  -webkit-appearance: none;
  border: none;
  outline: none;
  background: none;
  top: calc(50% - 40px);
}
.image-video-block .video-pause-btn-container {
  position: absolute;
  z-index: 10;
  right: 20px;
  top: 20px;
  display: flex;
  align-items: center;
  pointer-events: none;
}
.image-video-block .video-pause-btn-container.hidden {
  display: none;
}
.image-video-block .video-block-video.show-video-controls {
  cursor: pointer !important;
}
.image-video-block .video-block-video.show-video-controls::-webkit-media-controls-panel {
  display: flex !important;
  opacity: 1 !important;
}
.image-video-block .inner-wrapper {
  align-items: center;
}
.image-video-block {
  /* Responsive embed wrapper */
}
.image-video-block .video-wrapper {
  position: relative;
  height: 100%;
  z-index: 0;
}
.image-video-block .video-wrapper:before, .image-video-block .video-wrapper:after {
  display: none;
}
.image-video-block .video-wrapper p,
.image-video-block .video-wrapper iframe,
.image-video-block .video-wrapper video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 10;
}
.image-video-block .video-wrapper.with-file {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
}
.image-video-block .js-video-poster.is-hidden {
  opacity: 0;
  pointer-events: none;
}
.image-video-block lite-youtube {
  max-width: 100% !important;
}

/* -----------------------------------------------------------------------------
   GENERIC VIDEO CONTAINER (legacy helper)
----------------------------------------------------------------------------- */
.video-container {
  position: relative;
  padding-bottom: 56.25%; /* 16:9 */
  height: 0;
  max-width: 100%;
  overflow: hidden;
}

.video-container iframe,
.video-container object,
.video-container embed {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

/* -----------------------------------------------------------------------------
   MODAL (BASE + LIGHTBOX)
----------------------------------------------------------------------------- */
/**
 * Base modal layer
 */
.modal {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1000000000000000000;
  width: 100%;
  height: 100%;
  display: none;
}
.modal:after {
  position: absolute;
  content: "";
  top: 0;
  left: 0;
  z-index: -1;
  width: 100%;
  height: 100%;
  background-color: var(--colorWhite);
  opacity: 0.8;
}

.modal-open .modal {
  overflow-x: hidden;
  overflow-y: auto;
}

.fade {
  transition: opacity 0.15s linear;
}

/**
 * Modal dialog containers
 */
.modal-dialog {
  position: relative;
  width: auto;
  background-color: var(--colorWhite);
  padding: 20px;
}
.modal-dialog.modal-dialog-2 {
  background-color: transparent;
}
.modal-dialog.modal-dialog-2 .modal-scroll {
  overflow: unset;
}
@media (max-width: 767px) {
  .modal-dialog {
    padding: 15px;
  }
}
.modal-dialog .modal-scroll {
  overflow-x: auto;
  max-height: 80vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.modal-dialog .modal-scroll .modal-close-btn {
  position: absolute;
  top: -10px;
  right: -10px;
  width: 35px;
  height: 35px;
  background-color: var(--colorWhite);
  border: 1px solid var(--colorBrand-1);
  z-index: 1;
  border-radius: 100%;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-text-decoration-color, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.modal-dialog .modal-scroll .modal-close-btn:hover {
  opacity: 1;
  border: 1px solid var(--colorBrand-2);
}
.modal-dialog .modal-scroll .modal-close-btn span {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
}
.modal-dialog .modal-scroll .modal-close-btn span .modal-x {
  width: 13px;
}

.modal.fade .modal-dialog {
  transition: transform 0.3s ease-out;
  transform: translate(0, -50px);
}

.modal.show .modal-dialog {
  transform: none;
}

.modal-content {
  display: inline-block;
  position: relative;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

/**
 * -----------------------------------------------------------------------------
 * Lightbox modal
 * -----------------------------------------------------------------------------
 */
.modal.lightbox {
  display: block;
  opacity: 0;
  visibility: hidden;
}
.modal.lightbox .modal-close-button {
  background-image: url(images/close-x-button.svg);
  background-repeat: no-repeat;
  background-size: 14px 14px;
  background-position: center;
  position: absolute;
  top: 30px;
  right: 30px;
  width: 48px;
  height: 48px;
  -webkit-appearance: none;
  background-color: var(--colorBlack);
  border: none;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  transform: scale(0.95);
}
.modal.lightbox .modal-close-button:hover {
  filter: brightness(90%);
}
.modal.lightbox.team-modal {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.modal.lightbox.team-modal .modal-close-button {
  position: relative;
  top: unset;
  right: unset;
  z-index: 999;
}
.modal.lightbox.open {
  opacity: 1;
  visibility: visible;
  pointer-events: all;
  transition: opacity 0.2s ease-out;
}
.modal.lightbox.open .full-img-container,
.modal.lightbox.open .modal-close-button {
  transform: scale(1);
}
.modal.lightbox .full-img-container {
  display: flex;
  flex-direction: column;
  gap: 20px;
  position: absolute;
  height: calc(100vh - 60px);
  top: auto;
  bottom: auto;
  align-items: center;
  justify-content: center;
  margin: 30px;
  width: calc(100% - 60px);
  transition: transform 0.3s ease-out;
  transform: scale(0.95);
}
.modal.lightbox .full-img {
  max-height: 75%;
  max-width: 100%;
}
.modal.lightbox .full-img.hide {
  opacity: 0;
  visibility: hidden;
}
@media (max-width: 549px) {
  .modal.lightbox .full-img.no-caption {
    max-height: 100%;
  }
}
.modal.lightbox .caption {
  color: white;
  font-size: 20px;
  margin: 0;
  text-align: center;
  display: none;
  max-width: 1024px;
}
@media (max-width: 767px) {
  .modal.lightbox .caption {
    font-size: 18px;
  }
}

/**
 * -----------------------------------------------------------------------------
 * Breadcrumbs
 * -----------------------------------------------------------------------------
 */
ul#breadcrumbs {
  margin-top: 30px;
  padding: 0;
}
ul#breadcrumbs li {
  display: none;
  padding: 0;
}
ul#breadcrumbs li:nth-last-of-type(2) {
  display: block;
}
ul#breadcrumbs li a {
  display: flex;
  align-items: center;
  text-decoration: none;
  font-size: 16px;
  gap: 10px;
  color: var(--colorBrand-1);
}
ul#breadcrumbs li a:before {
  position: relative;
  content: url("images/chevron-brand-1-reversed-icon.svg");
  height: 18px;
}
ul#breadcrumbs li a:hover {
  opacity: 0.8;
}

/**
* -----------------------------------------------------------------------------
* Block Decoration
* -----------------------------------------------------------------------------
*/
section.block-deco_top {
  margin-top: 48px;
  position: relative;
}
section.block-deco_top::before {
  content: "";
  position: absolute;
  top: -48px;
  left: 0;
  height: 48px;
  width: 100%;
  background: linear-gradient(90deg, var(--deco-top-long) 75%, var(--deco-top-short) 75%);
}
section.block-deco_top--reverse::before {
  background: linear-gradient(90deg, var(--deco-top-short) 25%, var(--deco-top-long) 25%);
}
section.block-deco_bottom {
  margin-bottom: 48px;
  position: relative;
}
section.block-deco_bottom::after {
  content: "";
  position: absolute;
  bottom: -48px;
  left: 0;
  height: 48px;
  width: 100%;
  background: linear-gradient(90deg, var(--deco-bottom-long) 75%, var(--deco-bottom-short) 75%);
}
section.block-deco_bottom--reverse::after {
  background: linear-gradient(90deg, var(--deco-bottom-short) 25%, var(--deco-bottom-long) 25%);
}

.apply-outlines {
  position: relative;
}
.apply-outlines::after {
  content: "";
  background: url("images/block-outline-black.svg") no-repeat center;
  background-size: 100% 100%;
  position: absolute;
  inset: -75px 0;
  width: 100%;
  height: calc(100% + 150px);
}
@media (max-width: 767px) {
  .apply-outlines::after {
    background: url("images/block-outline-black-mobile.svg") no-repeat center;
    background-size: 100% 100%;
    height: calc(100% + 150px);
  }
}
.apply-outlines-black::after {
  background-image: url("images/block-outline-black.svg");
}
@media (max-width: 767px) {
  .apply-outlines-black::after {
    background-image: url("images/block-outline-black-mobile.svg");
  }
}
.apply-outlines-yellow::after {
  background-image: url("images/block-outline-yellow.svg");
}
@media (max-width: 767px) {
  .apply-outlines-yellow::after {
    background-image: url("images/block-outline-yellow-mobile.svg");
  }
}
@media (max-width: 899px) {
  .apply-outlines.quote-outlines::after {
    display: none;
  }
}

/* -----------------------------------------------------------------------------
   SPECIFICS
   -----------------------------------------------------------------------------
   Page-level and module-specific styles layered on top of base styles.
----------------------------------------------------------------------------- */
/* -----------------------------------------------------------------------------
   SPECIFICS
----------------------------------------------------------------------------- */
/**
 * -----------------------------------------------------------------------------
 * Contextual partials
 * -----------------------------------------------------------------------------
 *
 * Imports the main “section” styles for the site:
 * - _header: global header + navigation styling
 * - _page:   page-level layouts / components
 * - _footer: global footer styling
 */
header {
  position: sticky;
  top: 0;
  z-index: 1000;
}
header > div:first-child {
  position: relative;
  z-index: 1002;
  transition: padding 0.3s ease;
}
header > div:first-child .logo-container {
  transition: padding 0.3s ease;
}
header > div:first-child .logo-container img {
  transition: width 0.3s ease, height 0.3s ease;
}
header {
  /*
   * Compact header presentation after scrolling.
   */
}
header.is-scrolled > div:first-child {
  padding-top: 18px !important;
  padding-bottom: 18px !important;
}
header.is-scrolled > div:first-child .logo-container {
  padding: 12px !important;
}
header.is-scrolled > div:first-child .logo-container img {
  width: 57px !important;
  height: 57px !important;
}
@media (max-width: 768px) {
  header {
    min-height: 75px;
  }
}
header {
  /**
   * -----------------------------------------------------------------------------
   * Desktop navigation (main UL)
   * -----------------------------------------------------------------------------
   */
}
header ul.menu {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  column-gap: 40px;
  row-gap: 10px;
}
header ul.menu li {
  display: flex;
  align-items: center;
  padding: 0;
  color: white;
}
header ul.menu li a {
  font-weight: 500;
  transition-property: color, background-color;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
header ul.menu li .menu-link-wrap {
  display: flex;
}
header ul.menu li {
  /**
   * -----------------------------------------------------------------------------
   * Hide certain desktop items on tablet (mid-range)
   * -----------------------------------------------------------------------------
   */
}
@media (min-width: 767px) and (max-width: 1199px) {
  header ul.menu li:not(#mobile-menu li):not(#desktop-menu .button) {
    display: none;
  }
}
header ul.menu li {
  /**
   * -----------------------------------------------------------------------------
   * Desktop dropdown menu behaviour
   * -----------------------------------------------------------------------------
   */
}
@media (min-width: 1200px) {
  header ul.menu li .sub-menu-wrapper {
    display: none;
    position: absolute;
    top: 40px;
    z-index: 1;
    min-width: 250px;
    padding-top: 10px;
    margin-top: -10px;
  }
  header ul.menu li .sub-menu-wrapper .sub-menu {
    display: flex;
    flex-direction: column;
    padding: 0;
    background-color: var(--colorWhite);
  }
  header ul.menu li .sub-menu-wrapper li {
    margin-right: 0;
    display: flex;
    gap: 20px;
    align-items: flex-start;
    border-bottom: 1px solid #E4E4E4;
  }
  header ul.menu li .sub-menu-wrapper li:last-of-type {
    margin-bottom: 0;
  }
  header ul.menu li .sub-menu-wrapper li .menu-link-wrap {
    width: 100%;
  }
  header ul.menu li .sub-menu-wrapper li a {
    width: 100%;
    padding: 11px 20px;
    color: var(--colorBlack);
  }
  header ul.menu li .sub-menu-wrapper li a:hover {
    color: var(--colorBlack) !important;
    background-color: var(--colorBrand-4);
  }
  header ul.menu li .sub-menu-wrapper li:not(.button) > span.menu-link-wrap > a {
    transform-origin: left;
  }
  header ul.menu li.menu-item-has-children {
    position: relative;
    display: flex;
    gap: 6px;
  }
  header ul.menu li.menu-item-has-children .menu-item-chevron {
    position: relative;
    display: inline-block;
    transform-origin: center;
    transition: transform 0.2s ease-in;
    content: url(images/menu-down-arrow-white.svg);
  }
  header ul.menu li.menu-item-has-children .menu-item-chevron.scheme-black {
    content: url(images/menu-down-arrow-black.svg);
  }
  header ul.menu li.menu-item-has-children {
    /**
     * Dropdown open state (class toggled via JS)
     */
  }
  header ul.menu li.menu-item-has-children.open {
    color: var(--colorBrand-2);
  }
  header ul.menu li.menu-item-has-children.open .menu-item-chevron {
    transform: rotate(-180deg);
  }
  header ul.menu li.menu-item-has-children.open .sub-menu-wrapper {
    display: block;
    opacity: 1;
    animation-name: fadeInOpacity;
    animation-timing-function: ease-in;
    animation-duration: 0.2s;
  }
}
header ul.menu li {
  /**
   * -----------------------------------------------------------------------------
   * Link hover colour (non-buttons)
   * -----------------------------------------------------------------------------
   */
}
header ul.menu li:not(.menu-item-chevron):not(.button) a:hover {
  color: var(--colorBrand-2);
}
@media (min-width: 1200px) {
  header ul.menu li.btn-style {
    display: block;
  }
  header ul.menu li.btn-style a {
    display: inline-flex;
    align-self: flex-start;
    justify-content: center;
    align-items: center;
    padding: 8px 12px;
    min-height: 45px;
    font-weight: normal;
    border: 1px solid transparent;
    transition: background-color 200ms cubic-bezier(0.4, 0, 0.2, 1), color 200ms ease-in, border-color 200ms ease-in;
    position: relative;
    background-color: var(--colorWhite);
    color: var(--colorBlack);
  }
  header ul.menu li.btn-style a:hover {
    background-color: var(--colorBrand-4);
    color: var(--colorBlack) !important;
    border-color: var(--colorBrand-4);
  }
}
header ul.menu.scheme-white li {
  color: white;
}
header ul.menu.scheme-black li {
  color: black;
}
header ul.menu.scheme-black li:not(.menu-item-chevron):not(.button) a:hover {
  color: var(--colorBrand-1);
}
header ul.menu.scheme-black li.menu-item-has-children.open {
  color: var(--colorBrand-1);
}
header ul.menu {
  /**
   * -----------------------------------------------------------------------------
   * Main nav button styling
   * -----------------------------------------------------------------------------
   */
}
header ul.menu.menu-main-nav li a {
  font-size: 16px;
  line-height: 24px;
  cursor: pointer;
}
header ul.menu.menu-main-nav li.button a {
  display: inline-flex;
  align-self: flex-start;
  justify-content: center;
  align-items: center;
  gap: 6px;
  padding: 10px 22px 10px 16px;
  min-height: 46px;
  z-index: 10;
  font-weight: bold;
  background-color: var(--colorBrand-2);
  color: var(--colorBlack);
  border: 1px solid transparent;
  transition: background-color 200ms ease-in, color 200ms ease-in, border-color 200ms ease-in;
}
header ul.menu.menu-main-nav li.button a:after {
  content: "";
  position: relative;
  top: 1px;
  width: 7px;
  height: 12px;
  background-image: url(images/btn-black-chevron.svg);
  background-repeat: no-repeat;
  background-size: 7px 12px;
}
header ul.menu.menu-main-nav li.button a:hover {
  background-color: var(--colorBrand-1);
  color: var(--colorWhite);
  border-color: var(--colorWhite);
}
header ul.menu.menu-main-nav li.button a:hover:after {
  background-image: url(images/btn-white-chevron.svg);
}
header {
  /**
   * -----------------------------------------------------------------------------
   * Mobile menu overlay
   * -----------------------------------------------------------------------------
   */
}
header #mobile-menu {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1001;
  width: 100%;
  height: 100%;
  display: none;
}
header #mobile-menu .menu-inner {
  position: relative;
  width: 100%;
  height: 100%;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  display: none;
}
@media (min-width: 1200px) {
  header #mobile-menu .menu-inner {
    display: none !important;
  }
}
header #mobile-menu .menu-inner .menu-scroll .nav-wrapper {
  min-height: calc(100vh - 110px);
  padding-top: 110px;
}
@media (max-width: 768px) {
  header #mobile-menu .menu-inner .menu-scroll .nav-wrapper {
    min-height: calc(100vh - 90px);
    padding-top: 90px;
  }
}
header #mobile-menu .menu-inner .menu-scroll .nav-wrapper nav {
  padding-bottom: 250px;
}
@media (max-width: 768px) {
  header #mobile-menu .menu-inner .menu-scroll .nav-wrapper nav {
    padding-bottom: 180px;
  }
}
header #mobile-menu .menu-inner .menu-scroll .nav-wrapper nav ul.menu {
  flex-direction: column;
  row-gap: 0;
  width: 100%;
  /**
   * -----------------------------------------------------------------------------
   * Mobile main nav
   * -----------------------------------------------------------------------------
   */
}
header #mobile-menu .menu-inner .menu-scroll .nav-wrapper nav ul.menu.menu-main-nav li {
  margin: 0 30px;
  border-top: 1px solid var(--colorWhite);
  text-transform: uppercase;
}
header #mobile-menu .menu-inner .menu-scroll .nav-wrapper nav ul.menu.menu-main-nav li .menu-link-wrap {
  flex: 1;
}
header #mobile-menu .menu-inner .menu-scroll .nav-wrapper nav ul.menu.menu-main-nav li:not(.button) a {
  padding: 16px 0;
}
header #mobile-menu .menu-inner .menu-scroll .nav-wrapper nav ul.menu.menu-main-nav li a {
  font-size: 40px;
  line-height: 44px;
}
@media (max-width: 768px) {
  header #mobile-menu .menu-inner .menu-scroll .nav-wrapper nav ul.menu.menu-main-nav li a {
    font-size: 18px;
    line-height: 20px;
  }
}
header #mobile-menu .menu-inner .menu-scroll .nav-wrapper nav ul.menu.menu-main-nav li.button {
  display: none;
}
@media (max-width: 768px) {
  header #mobile-menu .menu-inner .menu-scroll .nav-wrapper nav ul.menu.menu-main-nav li.button {
    display: block;
    margin-top: 20px;
    border-bottom: none;
  }
  header #mobile-menu .menu-inner .menu-scroll .nav-wrapper nav ul.menu.menu-main-nav li.button a {
    padding-top: 5px;
    padding-bottom: 5px;
    width: 100%;
  }
}
header #mobile-menu .menu-inner .menu-scroll .nav-wrapper nav ul.menu.menu-main-nav li.menu-item a:not(.menu-item-chevron) {
  flex: 1;
}
header #mobile-menu .menu-inner .menu-scroll .nav-wrapper nav ul.menu.menu-main-nav li {
  /**
   * Mobile dropdown behaviour (class toggled via JS)
   */
}
header #mobile-menu .menu-inner .menu-scroll .nav-wrapper nav ul.menu.menu-main-nav li.menu-item-has-children {
  display: flex;
  flex-wrap: wrap;
  column-gap: 10px;
}
header #mobile-menu .menu-inner .menu-scroll .nav-wrapper nav ul.menu.menu-main-nav li.menu-item-has-children a.menu-item-chevron {
  position: relative;
  width: 21px;
  height: 12px;
  transform-origin: center;
  transition: transform 0.2s ease-in;
  background-image: url(images/menu-down-arrow.svg);
  background-size: 21px 12px;
  background-repeat: no-repeat;
  background-position: center;
}
header #mobile-menu .menu-inner .menu-scroll .nav-wrapper nav ul.menu.menu-main-nav li.menu-item-has-children.open-mob .menu-item-chevron {
  transform: rotate(-180deg);
}
header #mobile-menu .menu-inner .menu-scroll .nav-wrapper nav ul.menu.menu-main-nav li.menu-item-has-children .sub-menu-wrapper {
  width: 100%;
  display: none;
}
header #mobile-menu .menu-inner .menu-scroll .nav-wrapper nav ul.menu.menu-main-nav li.menu-item-has-children .sub-menu-wrapper .sub-menu {
  display: flex;
  flex-direction: column;
  padding: 0 0 10px 0;
}
header #mobile-menu .menu-inner .menu-scroll .nav-wrapper nav ul.menu.menu-main-nav li.menu-item-has-children .sub-menu-wrapper .sub-menu li {
  margin-left: 0;
  margin-right: 0;
  text-transform: capitalize;
  border: 0;
}
header #mobile-menu .menu-inner .menu-scroll .nav-wrapper nav ul.menu.menu-main-nav li.menu-item-has-children .sub-menu-wrapper .sub-menu li:last-of-type {
  border-bottom: none;
}
header #mobile-menu .menu-inner .menu-scroll .nav-wrapper nav ul.menu.menu-main-nav li.menu-item-has-children .sub-menu-wrapper .sub-menu li a {
  padding: 8px 0;
  font-size: 24px;
  line-height: 26px;
}
@media (max-width: 768px) {
  header #mobile-menu .menu-inner .menu-scroll .nav-wrapper nav ul.menu.menu-main-nav li.menu-item-has-children .sub-menu-wrapper .sub-menu li a {
    font-size: 16px;
    line-height: 18px;
  }
}
header #mobile-menu .menu-inner .menu-scroll .nav-wrapper nav ul.menu.menu-main-nav {
  /**
   * Divider line under mobile list items (except sub-menu items and buttons)
   */
}
header #mobile-menu .menu-inner .menu-scroll .nav-wrapper nav ul.menu.menu-main-nav li:not(.sub-menu-wrapper li):not(.button) {
  position: relative;
}
header #mobile-menu .menu-inner .menu-scroll .nav-wrapper nav ul.menu.menu-main-nav li:not(.sub-menu-wrapper li):not(.button):after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 1px;
  margin: 0 auto;
  background-color: var(--color-brand-3);
  width: calc(100% - 60px);
}
@media (max-width: 1199px) {
  header #mobile-menu .menu-inner .menu-scroll .nav-wrapper nav ul.menu.menu-main-nav li:not(.sub-menu-wrapper li):not(.button):after {
    width: calc(100% - 120px);
  }
}
@media (max-width: 767px) {
  header #mobile-menu .menu-inner .menu-scroll .nav-wrapper nav ul.menu.menu-main-nav li:not(.sub-menu-wrapper li):not(.button):after {
    width: calc(100% - 60px);
  }
}
header #mobile-menu .menu-inner .menu-scroll .nav-wrapper nav ul.menu.menu-main-nav li:not(.sub-menu-wrapper li):not(.button) a {
  column-gap: 20px;
}
header #mobile-menu .menu-inner .menu-scroll .nav-wrapper nav ul.menu.menu-main-nav li:not(.sub-menu-wrapper li):not(.button):last-of-type:after {
  display: none;
}
header #mobile-menu .menu-inner .menu-scroll .nav-wrapper nav ul.menu.menu-utility-nav {
  gap: 30px;
}
header {
  /**
   * -----------------------------------------------------------------------------
   * Mobile nav toggle button (hamburger)
   * -----------------------------------------------------------------------------
   */
}
header #mobile-nav-btn {
  height: 50px;
  margin: 0 0 0 auto;
  gap: 8px;
}
header #mobile-nav-btn div {
  width: 18px;
  flex-shrink: 0;
}
header #mobile-nav-btn div span {
  display: block;
  width: 100%;
  height: 1px;
  margin: 4px auto;
  border-radius: 0;
  background-color: var(--colorBlack);
  transition: all 0.3s ease;
}
header #mobile-nav-btn {
  /**
    * Open state (class toggled via JS)
  */
}
header #mobile-nav-btn.is-opened div {
  height: 25px;
  padding-top: 0;
}
header #mobile-nav-btn.is-opened div span {
  transform: none;
}
header #mobile-nav-btn.is-opened span {
  transform: none;
}
header #mobile-nav-btn.is-opened span:first-child {
  transform: translateY(8px) rotate(45deg);
}
header #mobile-nav-btn.is-opened span:nth-child(2) {
  transform: scaleX(0);
  opacity: 0;
}
header #mobile-nav-btn.is-opened span:last-child {
  transform: translateY(-2px) rotate(-45deg);
}

/*
 * Property Hive archive and single-property pages always use the compact
 * header presentation.
 */
body.post-type-archive-property header > div:first-child,
body.single-property header > div:first-child,
body.propertyhive header > div:first-child,
body.propertyhive-page header > div:first-child {
  padding-top: 18px !important;
  padding-bottom: 18px !important;
}
body.post-type-archive-property header > div:first-child .logo-container,
body.single-property header > div:first-child .logo-container,
body.propertyhive header > div:first-child .logo-container,
body.propertyhive-page header > div:first-child .logo-container {
  padding: 12px !important;
}
body.post-type-archive-property header > div:first-child .logo-container img,
body.single-property header > div:first-child .logo-container img,
body.propertyhive header > div:first-child .logo-container img,
body.propertyhive-page header > div:first-child .logo-container img {
  width: 57px !important;
  height: 57px !important;
}

.page-header .page-header-slider .slick-track {
  margin: 0;
}
.page-header .page-header-slider .slick-list, .page-header .page-header-slider .slick-track, .page-header .page-header-slider .slick-slide > div {
  height: 100%;
}

/* -----------------------------------------------------------------------------
   PAGE SPECIFIC STYLES
----------------------------------------------------------------------------- */
/**
 * -----------------------------------------------------------------------------
 * Contact Template
 * -----------------------------------------------------------------------------
 *
 * Ensures the embedded map spans full width and maintains
 * a consistent height across devices.
 */
body.page-template-template-contact .map-container iframe {
  width: 100%;
  height: 500px;
}

/* -----------------------------------------------------------------------------
   HIGHLIGHT HEADINGS BLOCK
----------------------------------------------------------------------------- */
.highlight-headings-block .border-top-animate {
  position: relative;
}
.highlight-headings-block .border-top-animate::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background: var(--colorBlack);
  transform: scaleX(0);
  transform-origin: left center;
}
.highlight-headings-block .border-top-animate.text-white::after {
  background: var(--colorWhite);
}
.highlight-headings-block .border-top-animate.aos-animate::after {
  animation: borderReveal 2s ease forwards;
}
.highlight-headings-block .border-top-animate:nth-child(2).aos-animate::after {
  animation-delay: 500ms;
}
.highlight-headings-block .border-top-animate:nth-child(3).aos-animate::after {
  animation-delay: 1000ms;
}
@keyframes borderReveal {
  from {
    transform: scaleX(0);
  }
  to {
    transform: scaleX(1);
  }
}

/* -----------------------------------------------------------------------------
   CLIENTS SLIDER – CSS marquee
----------------------------------------------------------------------------- */
@keyframes clients-marquee {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(-50%, 0, 0);
  }
}
.clients-marquee {
  overflow: hidden;
  position: relative;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}
.clients-marquee:hover .clients-marquee__track {
  animation-play-state: paused;
}

.clients-marquee__track {
  display: flex;
  width: max-content;
  animation: clients-marquee 30s linear infinite;
  will-change: transform;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  -webkit-transform-style: preserve-3d;
  transform-style: preserve-3d;
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

.clients-marquee__item {
  flex-shrink: 0;
  padding: 0 24px;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}
.clients-marquee__item img {
  display: block;
  width: 200px;
  height: auto;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}
.clients-marquee__item a:focus-visible img {
  outline: 2px solid deeppink;
  outline-offset: 4px;
}

/* --------------------------------------------------------------------------
   PROPERTY HIVE SEARCH ARCHIVE

   Quick layout controls:
   - max-width: overall search page width
   - form flex values: desktop search control widths
   - property card flex-basis: number of cards per row
   - gap: spacing between controls or cards
---------------------------------------------------------------------------- */
.property-search-layout {
  --property-search-border: #e1e3e5;
  --property-search-control: #f2f3f3;
  width: calc(100% - 48px);
  max-width: 1240px;
  margin-inline: auto;
  padding-bottom: 80px;
  color: #29292b;
  /* Property results flex layout. */
}
.property-search-layout ul.properties {
  display: flex;
  flex-wrap: wrap;
  gap: 36px 30px;
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}
.property-search-layout ul.properties::before, .property-search-layout ul.properties::after {
  display: none;
}
.property-search-layout ul.properties > li.property-search-card {
  flex: 0 0 calc((100% - 60px) / 3);
  float: none !important;
  clear: none !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0;
  list-style: none;
}
.property-search-layout {
  /* Individual property card. */
}
.property-search-layout .property-search-card {
  position: relative;
}
.property-search-layout .property-search-card > .thumbnail {
  position: relative;
  float: none !important;
  overflow: hidden;
  width: 100% !important;
  aspect-ratio: 3/2;
  border-radius: 4px;
  background: #ececec;
}
.property-search-layout .property-search-card > .thumbnail > a {
  display: block;
  width: 100%;
  height: 100%;
}
.property-search-layout .property-search-card > .thumbnail img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.35s ease;
}
.property-search-layout .property-search-card > .thumbnail .flag {
  top: auto !important;
  right: 14px !important;
  bottom: 14px !important;
  left: auto !important;
  padding: 7px 15px !important;
  border-radius: 5px;
  background: rgba(35, 36, 40, 0.86) !important;
  color: #fff !important;
  font-size: 15px !important;
  line-height: 1.1;
  text-transform: none !important;
}
.property-search-layout .property-search-card:hover > .thumbnail img {
  transform: scale(1.025);
}
.property-search-layout .property-search-card > .details {
  display: flex;
  float: none !important;
  flex-direction: column;
  width: 100% !important;
  padding-top: 11px;
}
.property-search-layout .property-search-card > .details h3 {
  order: 0;
  margin: 2px 0 3px;
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.24;
}
.property-search-layout .property-search-card > .details h3 a {
  color: #111;
  text-decoration: none;
}
.property-search-layout .property-search-card > .details h3 a:hover {
  color: var(--colorBrand-1);
}
.property-search-layout .property-search-card > .details > div {
  display: none;
}

/* Hide the theme sidebar on the Property Hive archive. */
body.post-type-archive-property #sidebar {
  display: none;
}

/* Breadcrumb. */
.property-search-breadcrumb {
  display: flex;
  align-items: center;
  gap: 11px;
  width: 100%;
  padding: 17px 0;
  border-bottom: 1px solid var(--property-search-border);
  font-size: 12px;
}
.property-search-breadcrumb__home {
  display: inline-flex;
  color: #000;
}
.property-search-breadcrumb__home svg {
  width: 8px;
  height: 10px;
}

.property-search-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}

/* Search form and controls. */
.property-search-form {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 32px;
  width: 100%;
  padding: 30px 0 50px;
  border-bottom: 1px solid var(--property-search-border);
}
.property-search-form:after {
  display: none;
}
.property-search-form .control {
  min-width: 0;
  margin: 0;
  padding: 0;
}
.property-search-form .control:has(select) {
  position: relative;
}
.property-search-form .control:has(select)::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 15px;
  z-index: 2;
  width: 0;
  height: 0;
  margin: 0;
  border-top: 4px solid #999;
  border-right: 4px solid transparent;
  border-left: 4px solid transparent;
  transform: translateY(-50%);
  pointer-events: none;
}
.property-search-form .control-department {
  display: flex;
  flex: 0 1 420px;
  gap: 8px;
}
.property-search-form .control-department > label {
  display: flex;
  flex: 1 1 0;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 0;
  height: 42px;
  margin: 0;
  padding: 0 10px;
  border: 1px solid #d1d5d8;
  border-radius: 5px;
  background: var(--property-search-control);
  color: #3d3d40;
  font-size: 13px;
  line-height: 1.15;
  text-align: center;
  white-space: normal;
  overflow-wrap: break-word;
  overflow: hidden;
  cursor: pointer;
  transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}
.property-search-form .control-department > label:hover {
  border-color: var(--colorBrand-1);
}
.property-search-form .control-department > label:has(input:checked) {
  border-color: var(--colorBrand-1);
  background: var(--colorBrand-1);
  color: #fff;
}
.property-search-form .control-department > label:focus-visible {
  outline: deeppink solid 1px;
}
.property-search-form .control-department input[type=radio] {
  position: absolute;
  overflow: hidden;
  width: 1px;
  height: 1px;
  clip-path: inset(50%);
  white-space: nowrap;
}
.property-search-form .control-address_keyword {
  position: relative;
  z-index: 2;
  flex: 0 0 160px;
  margin-right: -32px;
}
.property-search-form .control-address_keyword > label {
  position: absolute;
  overflow: hidden;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}
.property-search-form .control-address_keyword input {
  display: block;
  box-sizing: border-box;
  width: 100%;
  height: 42px !important;
  margin: 0;
  padding: 0 12px 0 36px !important;
  border: 1px solid #d6dce1 !important;
  border-right: 0 !important;
  border-radius: 5px 0 0 5px !important;
  background-color: #fff !important;
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20fill%3D%22none%22%3E%3Cpath%20d%3D%22M7%2012.6562C10.125%2012.6562%2012.6562%2010.125%2012.6562%207C12.6562%203.875%2010.125%201.34375%207%201.34375C3.875%201.34375%201.34375%203.875%201.34375%207C1.34375%2010.125%203.875%2012.6562%207%2012.6562ZM7%202.65625C9.40625%202.65625%2011.3438%204.65625%2011.3438%207C11.3438%209.40625%209.40625%2011.3438%207%2011.3438C4.59375%2011.3438%202.65625%209.40625%202.65625%207C2.65625%204.59375%204.59375%202.65625%207%202.65625ZM14%2014.6562C14.1875%2014.6562%2014.3438%2014.5938%2014.4688%2014.4688C14.7188%2014.1875%2014.7188%2013.8125%2014.4688%2013.5312L11%2010.0625C10.7188%209.8125%2010.3438%209.8125%2010.0625%2010.0625C9.8125%2010.3438%209.8125%2010.7188%2010.0625%2011L13.5312%2014.4688C13.6562%2014.5938%2013.8125%2014.6562%2014%2014.6562Z%22%20fill%3D%22%23979FAC%22%2F%3E%3C%2Fsvg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: 10px 50% !important;
  background-size: 16px 16px !important;
  color: #3d3d40;
  font: inherit;
  font-size: 14px !important;
  line-height: normal;
  box-shadow: none !important;
  appearance: none;
  transition: border-color 0.2s ease;
}
.property-search-form .control-address_keyword input::placeholder {
  color: #3d3d40;
  opacity: 1;
}
.property-search-form .control-address_keyword input:hover {
  border-color: var(--colorBrand-1) !important;
  box-shadow: inset -1px 0 0 var(--colorBrand-1) !important;
}
.property-search-form .control-address_keyword input:focus {
  position: relative;
  z-index: 3;
  outline: none;
  border-color: var(--colorBrand-1) !important;
  box-shadow: inset -1px 0 0 var(--colorBrand-1) !important;
}
.property-search-form .control-address_keyword + .control-radius {
  position: relative;
  z-index: 3;
  flex: 0 0 86px;
  width: 86px;
  margin: 0;
}
.property-search-form .control-address_keyword + .control-radius > label {
  position: absolute;
  overflow: hidden;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}
.property-search-form .control-address_keyword + .control-radius::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 15px;
  z-index: 4;
  width: 0;
  height: 0;
  margin: 0;
  border-top: 4px solid #5f6468;
  border-right: 4px solid transparent;
  border-left: 4px solid transparent;
  transform: translateY(-50%);
  pointer-events: none;
}
.property-search-form .control-address_keyword + .control-radius select {
  display: block;
  box-sizing: border-box;
  width: 86px;
  height: 42px !important;
  margin: 0;
  padding: 0 20px 0 10px !important;
  border: 1px solid #d6dce1 !important;
  border-radius: 0 5px 5px 0 !important;
  background: #f3f4f4 !important;
  color: #3d3d40;
  font: inherit;
  font-size: 14px !important;
  line-height: normal;
  box-shadow: none !important;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  transition: border-color 0.2s ease;
}
.property-search-form .control-address_keyword + .control-radius select:hover {
  border-color: var(--colorBrand-1) !important;
}
.property-search-form .control-address_keyword + .control-radius select:focus {
  outline: none;
  border-color: #b9c0c6 !important;
}
.property-search-form label {
  display: block;
  margin-bottom: 7px;
  font-size: 14px;
}
.property-search-form .control-address_keyword > label,
.property-search-form .control-radius > label,
.property-search-form .control-minimum_price > label,
.property-search-form .control-maximum_price > label,
.property-search-form .control-minimum_rent > label,
.property-search-form .control-maximum_rent > label,
.property-search-form .control-minimum_bedrooms > label,
.property-search-form .control-property_type > label,
.property-search-form .control-minimum_floor_area > label,
.property-search-form .control-maximum_floor_area > label,
.property-search-form .control-commercial_property_type > label {
  position: absolute;
  overflow: hidden;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}
.property-search-form input:not([type=submit]):not([type=radio]):not([type=checkbox]),
.property-search-form select {
  box-sizing: border-box;
  width: 100%;
  height: 42px;
  margin: 0;
  padding: 0 15px;
  border: 1px solid #d1d5d8;
  border-radius: 5px;
  background-color: var(--property-search-control);
  color: #000;
  font: inherit;
  font-size: 14px;
}
.property-search-form select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  padding-right: 40px;
  background-image: none;
  transition: border-color 0.2s ease;
}
.property-search-form select:hover {
  border-color: var(--colorBrand-1);
}
.property-search-form input[type=submit] {
  flex: 0 0 140px;
  align-self: end;
  width: 140px;
  height: 42px;
  min-height: 42px;
  margin: 0;
  border-radius: 5px;
  background: #000;
  color: #fff;
  font: inherit;
  font-size: 14px;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.property-search-form input[type=submit]:hover {
  background-color: var(--colorBrand-1);
}

/* Result count, sorting and pagination. */
.propertyhive-result-count {
  width: 100%;
  margin: 0;
  padding: 16px 0 28px;
  font-size: 12px;
}
.propertyhive-ordering {
  display: none;
}
.propertyhive-pagination {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  margin-top: 56px;
  border: 0;
  font-size: 12px;
  line-height: 1;
  vertical-align: middle;
}
.propertyhive-pagination ul.page-numbers {
  display: flex;
  align-items: center;
  gap: 9px;
  width: auto;
  margin: 0;
  padding: 0;
  border: 0;
  list-style: none;
}
.propertyhive-pagination ul.page-numbers::before, .propertyhive-pagination ul.page-numbers::after {
  display: none;
}
.propertyhive-pagination ul.page-numbers > li {
  display: block;
  float: none;
  margin: 0;
  padding: 0;
  border: 0;
  list-style: none;
}
.propertyhive-pagination a.page-numbers,
.propertyhive-pagination span.page-numbers,
.propertyhive-pagination > a,
.propertyhive-pagination > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 32px;
  height: 32px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 3px;
  background: transparent;
  color: #29292b;
  font: inherit;
  font-size: 12px;
  font-weight: 400;
  line-height: 1;
  text-align: center;
  text-decoration: none;
  box-shadow: none;
  transition-property: background-color, color !important;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important;
  transition-duration: 150ms !important;
}
.propertyhive-pagination a.page-numbers:hover,
.propertyhive-pagination > a:hover {
  background: #f2f3f3;
  color: #000;
}
.propertyhive-pagination .page-numbers.current,
.propertyhive-pagination > .current {
  background: #000;
  color: #fff;
}
.propertyhive-pagination .page-numbers.prev,
.propertyhive-pagination .page-numbers.next,
.propertyhive-pagination > .prev,
.propertyhive-pagination > .next {
  width: 20px;
  color: #29292b;
  font-size: 0;
}
.propertyhive-pagination .page-numbers.prev::before,
.propertyhive-pagination > .prev::before {
  content: "‹";
  font-size: 16px;
  line-height: 1;
}
.propertyhive-pagination .page-numbers.next::before,
.propertyhive-pagination > .next::before {
  content: "›";
  font-size: 16px;
  line-height: 1;
}
.propertyhive-pagination .page-numbers.dots,
.propertyhive-pagination > .dots {
  width: 20px;
  color: #29292b;
  pointer-events: none;
}
.propertyhive-pagination .view-all,
.propertyhive-pagination .view_all,
.propertyhive-pagination .propertyhive-view-all {
  width: auto;
  min-width: 96px;
  height: 32px;
  margin-left: 14px;
  padding: 0 14px;
  border: 1px solid #000;
  border-radius: 0;
  background: #000;
  color: #fff;
  white-space: nowrap;
}
.propertyhive-pagination .view-all:hover,
.propertyhive-pagination .view_all:hover,
.propertyhive-pagination .propertyhive-view-all:hover {
  background: #fff;
  color: #000;
}

.property-search-layout {
  text-align: center;
}
.property-search-layout .property-search-breadcrumb,
.property-search-layout .property-search-toolbar,
.property-search-layout .property-search-form,
.property-search-layout .propertyhive-result-count,
.property-search-layout ul.properties {
  text-align: left;
}

.propertyhive-view-all {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: auto;
  min-width: 65px;
  height: 30px;
  margin: 56px 0 0 14px;
  padding: 0 12px;
  border: 1px solid #000;
  border-radius: 0;
  background: #000;
  color: #fff;
  font-size: 12px;
  font-weight: 400;
  line-height: 1;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  vertical-align: middle;
  box-shadow: none;
  transition-property: background-color, color !important;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important;
  transition-duration: 150ms !important;
}
.propertyhive-view-all:hover, .propertyhive-view-all:focus-visible {
  background: #fff;
  color: #000;
}

/* Card text supplied by the theme hooks. */
.property-search-card__location, .property-search-card__strapline, .property-search-card__floor-area {
  margin: 0;
  color: #55565a;
  font-size: 12px;
  line-height: 1.35;
}
.property-search-card__location {
  order: -1;
}
.property-search-card__strapline, .property-search-card__floor-area {
  order: 1;
}
.property-search-card__strapline {
  margin-bottom: 3px;
}
.property-search-card__floor-area {
  margin-top: 2px;
}
.property-search-card > .thumbnail .property-search-card__availability {
  position: absolute;
  right: 20px;
  bottom: 20px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 23px;
  padding: 0 10px;
  border: 1px solid transparent;
  border-radius: 4px;
  background: rgba(45, 47, 56, 0.85);
  color: #fff;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.2;
  text-transform: none;
  white-space: nowrap;
  pointer-events: none;
}

/* --------------------------------------------------------------------------
   PROPERTY SEARCH – SHORTLIST HEART
---------------------------------------------------------------------------- */
.property-search-card__shortlist {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 10;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #000;
  overflow: hidden;
  transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1), box-shadow 150ms cubic-bezier(0.4, 0, 0.2, 1);
}
.property-search-card__shortlist.is-active {
  background: var(--colorBrand-1);
  box-shadow: 0 0 0 2px #fff;
}
.property-search-card__shortlist.is-loading {
  cursor: wait;
}
.property-search-card__shortlist.is-loading .property-search-card__shortlist-icon {
  opacity: 0;
  transform: translate(-50%, -50%) scale(0.85);
}
.property-search-card__shortlist.is-loading::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 20;
  display: block;
  box-sizing: border-box;
  width: 16px;
  height: 16px;
  margin: -8px 0 0 -8px;
  border: 2px solid rgba(255, 255, 255, 0.35);
  border-top-color: #fff;
  border-radius: 50%;
  animation: property-shortlist-spinner 600ms linear infinite;
  pointer-events: none;
}
.property-search-card__shortlist.is-loading .property-search-card__shortlist-native {
  pointer-events: none;
}
.property-search-card__shortlist:not(.is-loading):hover .property-search-card__shortlist-icon {
  transform: translate(-50%, -50%) scale(1.1);
}
.property-search-card__shortlist-native {
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: 50%;
}
.property-search-card__shortlist-native a,
.property-search-card__shortlist-native button,
.property-search-card__shortlist-native input[type=button],
.property-search-card__shortlist-native input[type=submit] {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: 100% !important;
  max-height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  opacity: 0 !important;
  cursor: pointer !important;
}
.property-search-card__shortlist-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  transform: translate(-50%, -50%);
  transition: opacity 120ms ease, transform 150ms cubic-bezier(0.4, 0, 0.2, 1);
  pointer-events: none;
}
.property-search-card__shortlist-icon svg {
  display: block;
  width: 18px;
  height: 18px;
}
.property-search-card__shortlist-icon path {
  fill: #fff;
}

@keyframes property-shortlist-spinner {
  to {
    transform: rotate(360deg);
  }
}
/* --------------------------------------------------------------------------
   PROPERTY HIVE – SHORTLIST EMPTY STATE
---------------------------------------------------------------------------- */
body.post-type-archive-property.property-shortlist-page .epx-shortlist-enquiry-success {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 300px;
  padding: 30px 10px;
  text-align: center;
}
body.post-type-archive-property.property-shortlist-page .epx-shortlist-enquiry-success h2 {
  margin: 0 0 12px !important;
  color: var(--colorBrand-1);
  font-size: 28px;
  line-height: 1.2;
  font-weight: 700;
}
body.post-type-archive-property.property-shortlist-page .epx-shortlist-enquiry-success p {
  max-width: 430px;
  margin: 0 !important;
  color: #202023;
  font-size: 16px;
  line-height: 1.5;
}
body.post-type-archive-property.property-shortlist-page .epx-shortlist-enquiry-success__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  margin: 0 0 22px;
  border-radius: 50%;
  background: var(--colorBrand-1);
  color: #fff;
  font-size: 34px;
  font-weight: 700;
  line-height: 1;
}
body.post-type-archive-property.property-shortlist-page .propertyhive-shortlist-enquiry-button {
  display: none !important;
}
body.post-type-archive-property.property-shortlist-page .half-map-view,
body.post-type-archive-property.property-shortlist-page .half-map-view.is-detached {
  display: none !important;
}
body.post-type-archive-property.property-shortlist-page.has-shortlisted-properties .propertyhive-shortlist-enquiry-button {
  display: inline-flex !important;
}
body.post-type-archive-property.property-shortlist-page.has-shortlisted-properties .half-map-view,
body.post-type-archive-property.property-shortlist-page.has-shortlisted-properties .half-map-view.is-detached {
  display: block !important;
}

/*
 * If the shortlist is empty, don't reserve the map column either.
 */
@media screen and (min-width: 1200px) {
  body.post-type-archive-property.property-shortlist-page:not(.has-shortlisted-properties) #container {
    width: 100%;
  }
}
/* --------------------------------------------------------------------------
   PROPERTY HIVE – SHORTLIST ENQUIRY
---------------------------------------------------------------------------- */
#shortlistEnquiry {
  box-sizing: border-box;
  width: min(620px, 100vw - 40px);
  max-width: 100%;
  padding: 40px;
  background: #fff;
  color: #202023;
}
#shortlistEnquiry *,
#shortlistEnquiry *::before,
#shortlistEnquiry *::after {
  box-sizing: border-box;
}
#shortlistEnquiry h2,
#shortlistEnquiry h3 {
  margin-top: 0;
  color: var(--colorBrand-1);
  font-weight: 700;
}
#shortlistEnquiry > p {
  margin-bottom: 0;
}
#shortlistEnquiry form {
  width: 100%;
  margin: 20px 0 0;
}
#shortlistEnquiry form p {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0 0 20px;
}
#shortlistEnquiry form p:last-child {
  margin-bottom: 0;
}
#shortlistEnquiry form label {
  display: block;
  margin: 0;
  color: #202023;
  font-size: 14px;
  font-weight: 700;
}
#shortlistEnquiry form input[type=text],
#shortlistEnquiry form input[type=email],
#shortlistEnquiry form input[type=tel],
#shortlistEnquiry form input[type=number],
#shortlistEnquiry form select,
#shortlistEnquiry form textarea {
  display: block;
  box-sizing: border-box;
  width: 100%;
  min-height: 52px;
  margin: 0;
  padding: 12px 15px;
  border: 1px solid #e3e3e3;
  border-radius: 0;
  background: #fff;
  color: #202023;
  font: inherit;
  font-size: 16px;
  line-height: 1.4;
  box-shadow: none;
  appearance: none;
  -webkit-appearance: none;
}
#shortlistEnquiry form input[type=text]:focus,
#shortlistEnquiry form input[type=email]:focus,
#shortlistEnquiry form input[type=tel]:focus,
#shortlistEnquiry form input[type=number]:focus,
#shortlistEnquiry form select:focus,
#shortlistEnquiry form textarea:focus {
  border-color: var(--colorBrand-1);
  outline: 1px solid var(--colorBrand-1);
  outline-offset: 0;
}
#shortlistEnquiry form textarea {
  min-height: 140px;
  resize: vertical;
}
#shortlistEnquiry form input[type=submit],
#shortlistEnquiry form button[type=submit] {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 52px;
  margin: 10px 0 0;
  padding: 10px 20px;
  border: 0;
  border-radius: 0;
  background: var(--colorBrand-1);
  color: #fff;
  font: inherit;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.2;
  text-align: center;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  box-shadow: none;
  transition-property: background-color, color !important;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important;
  transition-duration: 150ms !important;
}
#shortlistEnquiry form input[type=submit]:hover, #shortlistEnquiry form input[type=submit]:focus-visible,
#shortlistEnquiry form button[type=submit]:hover,
#shortlistEnquiry form button[type=submit]:focus-visible {
  opacity: 1 !important;
  background: var(--colorBrand-3);
  color: #fff;
}

.propertyhive-shortlist-enquiry-button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: 52px;
  margin: 0 0 30px 0 !important;
  padding: 10px 20px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: var(--colorBrand-1) !important;
  color: #fff !important;
  font: inherit;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1.2;
  text-align: center;
  text-decoration: none !important;
  cursor: pointer;
  box-shadow: none !important;
  transition-property: background-color, color !important;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important;
  transition-duration: 150ms !important;
}
.propertyhive-shortlist-enquiry-button:hover, .propertyhive-shortlist-enquiry-button:focus-visible {
  opacity: 1 !important;
  background: var(--colorBrand-3) !important;
  color: #fff !important;
}

/* --------------------------------------------------------------------------
   PROPERTY SEARCH – TABLET AND DESKTOP MAP
---------------------------------------------------------------------------- */
@media screen and (min-width: 768px) {
  body.post-type-archive-property {
    --property-map-width: 33.333vw;
  }
  body.post-type-archive-property .property-search-map-layout {
    display: flex;
    align-items: flex-start;
    width: 100%;
  }
  body.post-type-archive-property #container {
    flex: 0 0 calc(100% - var(--property-map-width));
    width: calc(100% - var(--property-map-width));
    max-width: none;
    min-height: 720px;
    margin: 0;
  }
  body.post-type-archive-property #content {
    width: 100%;
    max-width: none;
  }
  body.post-type-archive-property .property-search-layout {
    position: relative;
  }
  body.post-type-archive-property .half-list-view {
    float: none !important;
    width: 100% !important;
    max-width: none !important;
  }
  body.post-type-archive-property .half-map-view.is-detached {
    position: sticky !important;
    z-index: 20;
    isolation: isolate;
    top: 0;
    display: block !important;
    flex: 0 0 var(--property-map-width);
    width: var(--property-map-width) !important;
    height: 100vh !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  body.post-type-archive-property .half-map-view.is-detached .propertyhive-map-canvas-wrapper,
  body.post-type-archive-property .half-map-view.is-detached .propertyhive-map-canvas {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-height: none !important;
  }
}
/* --------------------------------------------------------------------------
   PROPERTY SEARCH – EMPTY SHORTLIST FULL-WIDTH LIST
---------------------------------------------------------------------------- */
body.post-type-archive-property.property-shortlist-page:not(.has-shortlisted-properties) #container {
  flex-basis: 100% !important;
  width: 100% !important;
  max-width: none !important;
}
body.post-type-archive-property.property-shortlist-page:not(.has-shortlisted-properties) #content,
body.post-type-archive-property.property-shortlist-page:not(.has-shortlisted-properties) .half-list-view,
body.post-type-archive-property.property-shortlist-page:not(.has-shortlisted-properties) #content .half-list-view {
  float: none !important;
  width: 100% !important;
  max-width: none !important;
}

/* --------------------------------------------------------------------------
   PROPERTY HIVE SEARCH ARCHIVE — TABLET AND MOBILE

   Breakpoints:
   - 1199px: two-column form and two property cards
   - 767px: one-column form and one property card
---------------------------------------------------------------------------- */
@media screen and (max-width: 1199px) {
  .property-search-form {
    flex-wrap: wrap;
    gap: 16px;
  }
  .property-search-form .control {
    flex: 1 1 calc(50% - 8px);
  }
  .property-search-form .control-department {
    flex: 1 0 100%;
  }
  .property-search-form .control-address_keyword {
    flex: 0 0 160px;
    margin-right: -16px;
  }
  .property-search-form .control-address_keyword + .control-radius {
    flex: 0 0 86px;
    width: 86px;
  }
  .property-search-form input[type=submit] {
    flex: 1 0 100%;
    width: 100%;
    height: 42px;
    min-height: 42px;
    max-height: 42px;
  }
  .property-search-layout ul.properties {
    gap: 42px 24px;
  }
  .property-search-layout ul.properties > li.property-search-card {
    flex-basis: calc((100% - 24px) / 2);
  }
}
@media screen and (max-width: 1023px) {
  .property-search-layout ul.properties {
    gap: 42px 24px;
  }
  .property-search-layout ul.properties > li.property-search-card {
    flex-basis: calc((100% - 24px) / 2);
  }
}
@media screen and (max-width: 767px) {
  /*
   * Mobile map layout.
   *
   * Stack the map above the property list on mobile and cap it at 400px high.
   * Do not force display here so the existing empty-shortlist rules can still
   * hide the map when there are no shortlisted properties.
   */
  body.post-type-archive-property #content {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: none;
  }
  body.post-type-archive-property .half-map-view,
  body.post-type-archive-property .half-map-view.is-detached {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    z-index: 1 !important;
    isolation: isolate;
    order: -1;
    float: none !important;
    width: 100% !important;
    height: 400px !important;
    max-height: 400px !important;
    margin: 0 0 30px !important;
    padding: 0 !important;
  }
  body.post-type-archive-property .half-map-view .propertyhive-map-canvas-wrapper,
  body.post-type-archive-property .half-map-view .propertyhive-map-canvas,
  body.post-type-archive-property .half-map-view.is-detached .propertyhive-map-canvas-wrapper,
  body.post-type-archive-property .half-map-view.is-detached .propertyhive-map-canvas {
    width: 100% !important;
    height: 100% !important;
    max-height: 400px !important;
  }
  body.post-type-archive-property .half-list-view {
    order: 0;
    float: none !important;
    width: 100% !important;
    max-width: none !important;
  }
  .property-search-layout {
    width: calc(100% - 36px);
    padding-bottom: 50px;
  }
  .property-search-layout ul.properties {
    gap: 38px;
  }
  .property-search-layout ul.properties > li.property-search-card {
    flex-basis: 100%;
  }
  .property-search-breadcrumb {
    min-height: 56px;
    font-size: 15px;
  }
  .property-search-form {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 16px 0;
    padding: 26px 0 36px;
  }
  .property-search-form .control {
    flex: 0 0 100%;
    width: 100%;
  }
  .property-search-form .control-department {
    flex: 0 0 100%;
    flex-direction: column;
    width: 100%;
    gap: 8px;
  }
  .property-search-form .control-department > label {
    flex: 0 0 42px;
    width: 100%;
    height: 42px;
  }
  .property-search-form .control-address_keyword {
    flex: 1 1 0;
    width: calc(100% - 86px);
    margin-right: 0;
  }
  .property-search-form .control-address_keyword input {
    height: 42px !important;
    border: 1px solid #d6dce1 !important;
    border-right: 0 !important;
    border-radius: 5px 0 0 5px !important;
  }
  .property-search-form .control-address_keyword + .control-radius {
    flex: 0 0 86px;
    width: 86px;
  }
  .property-search-form .control-address_keyword + .control-radius select {
    width: 86px;
    height: 42px !important;
    border: 1px solid #d6dce1 !important;
    border-radius: 0 5px 5px 0 !important;
  }
  .property-search-form input[type=submit] {
    flex: 0 0 100%;
    width: 100%;
    height: 42px;
    min-height: 42px;
    max-height: 42px;
  }
  .propertyhive-result-count {
    padding-bottom: 24px;
  }
  .propertyhive-pagination {
    margin-top: 42px;
  }
  .propertyhive-pagination ul.page-numbers {
    gap: 4px;
  }
  .propertyhive-pagination a.page-numbers,
  .propertyhive-pagination span.page-numbers,
  .propertyhive-pagination > a,
  .propertyhive-pagination > span {
    width: 30px;
    height: 30px;
  }
  .propertyhive-pagination .page-numbers.prev,
  .propertyhive-pagination .page-numbers.next,
  .propertyhive-pagination > .prev,
  .propertyhive-pagination > .next {
    width: 18px;
  }
  .propertyhive-pagination .view-all,
  .propertyhive-pagination .view_all,
  .propertyhive-pagination .propertyhive-view-all {
    width: auto;
    padding-inline: 10px;
  }
  .propertyhive-view-all {
    min-width: 65px;
    height: 30px;
    margin: 42px 0 0 8px;
    padding-inline: 10px;
  }
}
@media screen and (max-width: 586px) {
  #shortlistEnquiry {
    width: calc(100vw - 30px);
    padding: 28px 20px;
  }
  #shortlistEnquiry form input[type=text],
  #shortlistEnquiry form input[type=email],
  #shortlistEnquiry form input[type=tel],
  #shortlistEnquiry form input[type=number],
  #shortlistEnquiry form select,
  #shortlistEnquiry form textarea,
  #shortlistEnquiry form input[type=submit],
  #shortlistEnquiry form button[type=submit] {
    min-height: 50px;
  }
  .propertyhive-shortlist-enquiry-button {
    min-height: 52px;
  }
}
/* --------------------------------------------------------------------------
   PROPERTY SEARCH – CUSTOM LEAFLET MAP PIN
---------------------------------------------------------------------------- */
.propertyhive-map-canvas img.leaflet-marker-icon[data-epx-property-marker=true],
.leaflet-container img.leaflet-marker-icon[data-epx-property-marker=true] {
  display: block !important;
  visibility: visible !important;
  width: 25px !important;
  height: 41px !important;
  max-width: none !important;
  max-height: none !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  opacity: 1 !important;
}

@media screen and (max-width: 586px) {
  .epx-shortlist-enquiry-success {
    min-height: 240px;
    padding: 20px 0;
  }
  .epx-shortlist-enquiry-success h2 {
    font-size: 24px !important;
  }
}
/* --------------------------------------------------------------------------
   PROPERTY HIVE SINGLE PROPERTY

   Quick layout controls:
   --property-single-width: maximum page width
   --property-single-sidebar: desktop sidebar width
   --property-single-gap: space between the desktop columns
---------------------------------------------------------------------------- */
/* Scope global Property Hive overrides to single-property pages. */
body.single-property {
  --property-single-width: 1156px;
  --property-single-main: 668px;
  --property-single-sidebar: 360px;
  --property-single-gap: 128px;
  background: #f6f6f6;
  color: #202023;
}
body.single-property .alert {
  text-align: center;
  margin-top: 30px;
  color: red;
}
body.single-property #container {
  position: relative;
  z-index: 0;
}
body.single-property #container,
body.single-property #content,
body.single-property .property.type-property {
  width: 100%;
}
body.single-property #container,
body.single-property #content {
  max-width: none;
  margin: 0;
  padding: 0;
}
body.single-property .property.type-property > .summary.entry-summary,
body.single-property #sidebar {
  display: none !important;
}

/* Main property component. */
.property-single {
  width: calc(100% - 48px);
  max-width: var(--property-single-width);
  margin: 0 auto;
  padding: 82px 0 90px;
  font-size: 16px;
  box-sizing: border-box;
}
.property-single *,
.property-single *::before,
.property-single *::after {
  box-sizing: border-box;
}
.property-single {
  /* Property title and address. */
}
.property-single__header {
  margin: 0 0 100px;
  text-align: center;
}
.property-single__header h1 {
  max-width: 900px;
  margin: 0 auto 20px;
  color: var(--colorBrand-1);
  font-size: 32px;
  line-height: 42px;
  font-weight: normal;
  text-transform: uppercase;
}
.property-single__header p {
  margin: 0;
  color: #979DAD;
  font-size: 20px;
}
.property-single {
  /* Desktop content and sidebar columns. */
}
.property-single__layout {
  display: flex;
  align-items: start;
  width: 100%;
  min-width: 0;
  gap: var(--property-single-gap);
}
.property-single__main {
  flex: 0 1 var(--property-single-main);
  width: var(--property-single-main);
  min-width: 0;
  max-width: 100%;
}
.property-single__sidebar {
  flex: 0 0 var(--property-single-sidebar);
  width: var(--property-single-sidebar);
  min-width: 0;
  max-width: 100%;
}
.property-single {
  /* Gallery. */
}
.property-single__gallery,
.property-single__gallery .images,
.property-single__gallery .flexslider {
  display: flex;
  float: none !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  justify-content: center;
}
.property-single__gallery .images {
  display: block;
}
.property-single__gallery .slides {
  display: block;
  gap: 0;
  margin: 0;
  padding: 0;
}
.property-single__gallery #slider {
  position: relative;
  overflow: hidden;
  aspect-ratio: 1.48/1;
  border: 0;
  border-radius: 0;
  background: #ececec;
}
.property-single__gallery #slider .flex-viewport,
.property-single__gallery #slider .slides,
.property-single__gallery #slider .slides > li,
.property-single__gallery #slider .slides > li > a,
.property-single__gallery #slider .slides > li > a > img {
  width: 100%;
  height: 100%;
}
.property-single__gallery #slider .slides > li > a {
  display: block;
}
.property-single__gallery #slider img {
  display: block;
  object-fit: cover;
}
.property-single__gallery #slider .flex-direction-nav {
  margin: 0;
  padding: 0;
  list-style: none;
}
.property-single__gallery #slider .flex-direction-nav li {
  margin: 0;
  padding: 0;
}
.property-single__gallery #slider .flex-direction-nav a {
  position: absolute;
  z-index: 10;
  top: 50%;
  display: block;
  width: 57px;
  height: 57px;
  margin: -28.5px 0 0;
  overflow: visible;
  opacity: 1;
  color: transparent;
  font-size: 0;
  text-indent: -9999px;
  text-shadow: none;
  cursor: pointer;
  transform: none;
}
.property-single__gallery #slider .flex-direction-nav a::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 39px;
  height: 39px;
  border-top: 2px solid rgba(255, 255, 255, 0.6);
  border-right: 2px solid rgba(255, 255, 255, 0.6);
  font-size: 0;
}
.property-single__gallery #slider .flex-direction-nav .flex-prev {
  left: 10px;
}
.property-single__gallery #slider .flex-direction-nav .flex-prev::before {
  transform: translate(-35%, -50%) rotate(-135deg);
}
.property-single__gallery #slider .flex-direction-nav .flex-next {
  right: 10px;
}
.property-single__gallery #slider .flex-direction-nav .flex-next::before {
  transform: translate(-65%, -50%) rotate(45deg);
}
.property-single__gallery #slider:hover .flex-direction-nav .flex-prev {
  left: 10px;
  opacity: 1;
}
.property-single__gallery #slider:hover .flex-direction-nav .flex-next {
  right: 10px;
  opacity: 1;
}
.property-single__gallery #carousel {
  max-width: 290px !important;
  margin: 30px auto 38px !important;
  border: 0;
  background: transparent;
}
.property-single__gallery #carousel .slides {
  gap: 0;
}
.property-single__gallery #carousel li {
  height: 50px;
  overflow: hidden;
  cursor: pointer;
}
.property-single__gallery #carousel img {
  display: block;
  width: 50px !important;
  height: 50px !important;
  object-fit: cover;
}
.property-single__gallery #carousel .flex-direction-nav {
  display: none !important;
}
.property-single__gallery-dots {
  display: flex;
  justify-content: center;
  gap: 20px;
  margin: 22px 0 0;
  padding: 0;
  list-style: none;
}
.property-single__gallery-dots button {
  display: block;
  width: 8px;
  height: 8px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #D9D8D8;
  font-size: 0;
  cursor: pointer;
  transition-property: background-color !important;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important;
  transition-duration: 150ms !important;
}
.property-single__gallery-dots button:hover, .property-single__gallery-dots button:focus-visible {
  background: var(--colorBrand-1);
}
.property-single__gallery-dots .is-active button {
  background: var(--colorBrand-1);
}
.property-single__gallery .flex-direction-nav a {
  color: #fff;
  text-shadow: none;
}
.property-single {
  /*
   * Shared table structure and header styling.
   *
   * This applies to the details table, available-area table and every table
   * rendered inside a property section.
   */
}
.property-single__details, .property-single__area-table, .property-single__section table {
  width: 100%;
  border: 0;
  border-collapse: collapse;
  font-size: 16px;
}
.property-single__details th,
.property-single__details td, .property-single__area-table th,
.property-single__area-table td, .property-single__section table th,
.property-single__section table td {
  border: 0;
  padding: 10px 15px;
  text-align: left;
  vertical-align: top;
}
.property-single__details thead, .property-single__area-table thead, .property-single__section table thead {
  background: transparent;
}
.property-single__details thead th, .property-single__area-table thead th, .property-single__section table thead th {
  font-weight: 700;
  border-bottom: 1px solid #E3E3E3;
}
.property-single {
  /* Main property details table. */
}
.property-single__details {
  margin: 0 0 46px;
}
.property-single__details th {
  font-weight: 700;
}
.property-single__details tbody th {
  width: 43%;
}
.property-single__details tbody tr > * + * {
  border-left: 1px solid #E3E3E3;
}
.property-single__details tbody tr:nth-child(odd) {
  background: #F7F4F1;
}
.property-single__details tbody tr:nth-child(even) {
  background: #fff;
}
.property-single {
  /*
   * Available-area and imported section tables.
   *
   * These use internal column dividers and internal row borders, but no
   * border around the outside of the table.
   */
}
.property-single__area-table tbody tr:nth-child(odd), .property-single__section table tbody tr:nth-child(odd) {
  background: #F7F4F1;
}
.property-single__area-table tbody tr:nth-child(even), .property-single__section table tbody tr:nth-child(even) {
  background: #fff;
}
.property-single__area-table tbody tr > * + *, .property-single__section table tbody tr > * + * {
  border-left: 1px solid #E3E3E3;
}
.property-single__area-table tbody tr + tr > *, .property-single__section table tbody tr + tr > * {
  border-top: 1px solid #E3E3E3;
}
.property-single__area-table {
  min-width: 520px;
  margin-top: 20px;
}
.property-single__section table {
  margin: 20px 0 0;
}
.property-single {
  /* Main content sections. */
}
.property-single__strapline {
  margin: 0 0 38px;
  color: var(--colorBrand-3);
  font-size: 24px;
  line-height: 34px;
  font-weight: normal;
  text-transform: uppercase;
}
.property-single__section {
  margin: 0 0 38px;
}
.property-single__section h2 {
  margin: 0 0 22px;
  color: #111;
  font-size: 20px;
  font-weight: 700;
}
.property-single__section:last-of-type {
  margin: 0;
}
.property-single__copy {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
}
.property-single__copy > :first-child {
  margin-top: 0;
}
.property-single__copy > :last-child {
  margin-bottom: 0;
}
.property-single__copy p {
  margin: 0 0 18px;
}
.property-single__copy a {
  color: var(--colorBrand-1);
}
.property-single__features ul, .property-single__related ul {
  display: block;
  margin: 0;
  padding: 0;
  list-style: none;
}
.property-single__features li, .property-single__related li {
  position: relative;
  margin: 0 0 8px;
  padding-left: 20px;
}
.property-single__features li::before, .property-single__related li::before {
  content: "";
  position: absolute;
  top: 7px;
  left: 0;
  width: 10px;
  height: 10px;
  background-image: url("data:image/svg+xml,%3Csvg width='10' height='10' viewBox='0 0 10 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cmask id='arrow-mask' fill='white'%3E%3Cpath d='M4.94922 0L9.89897 4.94975L4.94922 9.8995L-0.000533434 4.94975L4.94922 0Z'/%3E%3C/mask%3E%3Cpath d='M9.89897 4.94975L10.6061 5.65686L11.3132 4.94975L10.6061 4.24265L9.89897 4.94975ZM4.94922 0L4.24211 0.707107L9.19186 5.65686L9.89897 4.94975L10.6061 4.24265L5.65633 -0.707107L4.94922 0ZM9.89897 4.94975L9.19186 4.24265L4.24211 9.1924L4.94922 9.8995L5.65633 10.6066L10.6061 5.65686L9.89897 4.94975Z' fill='black' mask='url(%23arrow-mask)'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 10px 10px;
}
.property-single__related a {
  color: var(--colorBrand-1);
}
.property-single__map iframe {
  display: block;
  width: 100%;
  height: 360px;
  border: 0;
}
.property-single {
  /* Virtual tour embeds. */
}
.property-single__virtual-tour-embed {
  width: 100%;
  max-width: 100%;
}
.property-single__virtual-tour-embed iframe,
.property-single__virtual-tour-embed video,
.property-single__virtual-tour-embed embed,
.property-single__virtual-tour-embed object {
  display: block;
  width: 100% !important;
  max-width: 100%;
  aspect-ratio: 16/9;
  height: auto;
  border: 0;
}
.property-single__table-scroll {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.property-single {
  /* Actions sidebar. */
}
.property-single__sidebar {
  padding-top: 2px;
}
.property-single__back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0 0 26px;
  color: #252529;
  font-size: 16px;
  text-decoration: none;
}
.property-single__back::before {
  content: "";
  display: block;
  flex: 0 0 10px;
  width: 10px;
  height: 10px;
  background-image: url("data:image/svg+xml,%3Csvg width='10' height='10' viewBox='0 0 10 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cmask id='arrow-mask' fill='white'%3E%3Cpath d='M4.94922 0L9.89897 4.94975L4.94922 9.8995L-0.000533434 4.94975L4.94922 0Z'/%3E%3C/mask%3E%3Cpath d='M9.89897 4.94975L10.6061 5.65686L11.3132 4.94975L10.6061 4.24265L9.89897 4.94975ZM4.94922 0L4.24211 0.707107L9.19186 5.65686L9.89897 4.94975L10.6061 4.24265L5.65633 -0.707107L4.94922 0ZM9.89897 4.94975L9.19186 4.24265L4.24211 9.1924L4.94922 9.8995L5.65633 10.6066L10.6061 5.65686L9.89897 4.94975Z' fill='black' mask='url(%23arrow-mask)'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 10px 10px;
  transform: rotate(180deg);
}
.property-single__button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 100%;
  min-height: 52px;
  margin: 0 0 23px;
  padding: 10px 15px;
  background: var(--colorBrand-1);
  color: #fff;
  font-size: 14px;
  text-align: center;
  text-decoration: none;
  transition-property: background-color !important;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important;
  transition-duration: 150ms !important;
}
.property-single__button:last-of-type {
  margin: 0;
}
.property-single__button:hover, .property-single__button:focus-visible {
  opacity: 1 !important;
  background: var(--colorBrand-3);
  color: #fff;
}
.property-single {
  /*
   * Property Hive Shortlist Add On.
   *
   * Keep the plugin's native markup and AJAX behaviour, but make its button
   * visually identical to the custom sidebar action buttons.
   */
}
.property-single__shortlist-button {
  width: 100%;
  margin: 0 0 23px;
}
.property-single__shortlist-button a,
.property-single__shortlist-button button,
.property-single__shortlist-button input[type=button],
.property-single__shortlist-button input[type=submit] {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-height: 52px;
  margin: 0;
  padding: 10px 15px;
  border: 0;
  border-radius: 0;
  background: var(--colorBrand-1);
  color: #fff;
  font: inherit;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  box-shadow: none;
  transition-property: background-color !important;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important;
  transition-duration: 150ms !important;
}
.property-single__shortlist-button a:hover, .property-single__shortlist-button a:focus-visible,
.property-single__shortlist-button button:hover,
.property-single__shortlist-button button:focus-visible,
.property-single__shortlist-button input[type=button]:hover,
.property-single__shortlist-button input[type=button]:focus-visible,
.property-single__shortlist-button input[type=submit]:hover,
.property-single__shortlist-button input[type=submit]:focus-visible {
  opacity: 1 !important;
  background: var(--colorBrand-3);
  color: #fff;
}
.property-single__shortlist-button p,
.property-single__shortlist-button div {
  margin-top: 0;
  margin-bottom: 0;
}
.property-single__view-shortlist {
  width: 100%;
  margin-bottom: 23px;
}
.property-single__download {
  position: relative;
  gap: 8px;
  margin-top: 18px;
}
.property-single__download::before {
  content: "";
  display: block;
  flex: 0 0 12px;
  width: 12px;
  height: 12px;
  background-image: url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8.44444 9.293C8.44444 9.293 8.46563 9.27181 8.508 9.22944C8.55037 9.18706 8.57156 9.10789 8.57156 8.99193C8.57156 8.87596 8.52919 8.7756 8.44444 8.69086C8.3597 8.60611 8.25934 8.56374 8.14337 8.56374C8.02741 8.56374 7.92705 8.60611 7.8423 8.69086C7.75756 8.7756 7.71519 8.87596 7.71519 8.99193C7.71519 9.10789 7.75756 9.20825 7.8423 9.293C7.92705 9.37774 8.02741 9.42011 8.14337 9.42011C8.25934 9.42011 8.3597 9.37774 8.44444 9.293ZM10.1572 9.293C10.1572 9.293 10.1784 9.27181 10.2208 9.22944C10.2631 9.18706 10.2843 9.10789 10.2843 8.99193C10.2843 8.87596 10.2419 8.7756 10.1572 8.69086C10.0724 8.60611 9.97209 8.56374 9.85612 8.56374C9.74016 8.56374 9.6398 8.60611 9.55505 8.69086C9.47031 8.7756 9.42794 8.87596 9.42794 8.99193C9.42794 9.10789 9.47031 9.20825 9.55505 9.293C9.6398 9.37774 9.74016 9.42011 9.85612 9.42011C9.97209 9.42011 10.0724 9.37774 10.1572 9.293ZM11.1407 7.49327V9.63421C11.1407 9.81262 11.0782 9.96427 10.9534 10.0892C10.8285 10.214 10.6768 10.2765 10.4984 10.2765H0.650094C0.471682 10.2765 0.320033 10.214 0.195145 10.0892C0.0702565 9.96427 0.0078125 9.81262 0.0078125 9.63421V7.49327C0.0078125 7.31486 0.0702565 7.16321 0.195145 7.03832C0.320033 6.91343 0.471682 6.85099 0.650094 6.85099H3.76114L4.66435 7.76089C4.92305 8.01066 5.22635 8.13555 5.57425 8.13555C5.92215 8.13555 6.22545 8.01066 6.48415 7.76089L7.39405 6.85099H10.4984C10.6768 6.85099 10.8285 6.91343 10.9534 7.03832C11.0782 7.16321 11.1407 7.31486 11.1407 7.49327ZM8.9663 3.68642C9.04212 3.86929 9.0109 4.0254 8.87263 4.15475L5.87532 7.15206C5.79503 7.2368 5.69468 7.27918 5.57425 7.27918C5.45382 7.27918 5.35347 7.2368 5.27318 7.15206L2.27587 4.15475C2.1376 4.0254 2.10638 3.86929 2.1822 3.68642C2.25803 3.51247 2.38961 3.42549 2.57694 3.42549H4.28969V0.428179C4.28969 0.312212 4.33206 0.211855 4.4168 0.12711C4.50155 0.0423641 4.60191 -8.58307e-06 4.71787 -8.58307e-06H6.43062C6.54659 -8.58307e-06 6.64695 0.0423641 6.73169 0.12711C6.81644 0.211855 6.85881 0.312212 6.85881 0.428179V3.42549H8.57156C8.75889 3.42549 8.89047 3.51247 8.9663 3.68642Z' fill='white'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 12px 12px;
}
.property-single__download + .property-single__download {
  margin-top: 0;
}
.property-single {
  /* Agent information. */
}
.property-single__agents {
  margin-top: 48px;
}
.property-single__agents h2 {
  margin: 0 0 14px;
  color: #111;
  font-size: 16px;
  font-weight: 700;
}
.property-single__agents > :first-child {
  margin-top: 0;
}
.property-single__agents > :last-child {
  margin-bottom: 0;
}
.property-single__agents > p {
  margin: 0 0 26px;
  font-size: 16px;
}
.property-single__agent {
  display: flex;
  min-height: 126px;
  background: var(--colorBrand-2);
}
.property-single__agent > div {
  display: flex;
  flex: 1 1 100%;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: 40px 20px;
}
.property-single__agent--has-photo .property-single__agent-photo {
  flex: 0 0 44%;
  width: 44%;
  min-width: 0;
  height: auto;
  max-height: 164px;
}
.property-single__agent--has-photo > div {
  flex: 0 0 56%;
  width: 56%;
  min-width: 0;
}
.property-single__agent h3 {
  margin: 0 0 6px;
  color: #000;
  font-size: 18px;
  font-weight: 700;
}
.property-single__agent a {
  color: #000;
  font-size: 16px;
  text-decoration: none;
}
.property-single__agent > div > a.property-single__agent-contact {
  color: var(--colorBrand-1);
}
.property-single__agent + .property-single__agent {
  margin-top: 30px;
}
.property-single__agent-photo {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}
.property-single {
  /* Hidden enquiry lightbox content. */
}
.property-single__enquiry {
  width: min(620px, 100vw - 40px);
  padding: 34px;
}
.property-single {
  /*
   * Single-property enquiry modal.
   *
   * The PHP opens this from the "Enquire about this property" button and
   * submits through WordPress to every valid negotiator attached to the
   * property.
   */
}
.property-single__enquiry-overlay {
  position: fixed;
  inset: 0;
  z-index: 2147483646;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  padding: 20px;
  background: rgba(0, 0, 0, 0.6);
  overflow-y: auto;
}
.property-single__enquiry-overlay[hidden] {
  display: none !important;
}
.property-single__enquiry-modal {
  position: relative;
  box-sizing: border-box;
  width: min(620px, 100vw - 40px);
  max-width: 100%;
  max-height: calc(100vh - 40px);
  padding: 40px;
  overflow-y: auto;
  background: #fff;
  color: #202023;
}
.property-single__enquiry-modal *,
.property-single__enquiry-modal *::before,
.property-single__enquiry-modal *::after {
  box-sizing: border-box;
}
.property-single__enquiry-modal {
  /*
   * Keep the enquiry form typography and controls exactly aligned with
   * #shortlistEnquiry in _property-search.scss.
   */
}
.property-single__enquiry-modal h2,
.property-single__enquiry-modal h3 {
  margin-top: 0;
  color: var(--colorBrand-1);
  font-weight: 700;
}
.property-single__enquiry-modal form {
  width: 100%;
  margin: 20px 0 0;
}
.property-single__enquiry-modal form p {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0 0 20px;
}
.property-single__enquiry-modal form p:last-child {
  margin-bottom: 0;
}
.property-single__enquiry-modal form label {
  display: block;
  margin: 0;
  color: #202023;
  font-size: 14px;
  font-weight: 700;
}
.property-single__enquiry-modal form input[type=text],
.property-single__enquiry-modal form input[type=email],
.property-single__enquiry-modal form input[type=tel],
.property-single__enquiry-modal form input[type=number],
.property-single__enquiry-modal form select,
.property-single__enquiry-modal form textarea {
  display: block;
  box-sizing: border-box;
  width: 100%;
  min-height: 52px;
  margin: 0;
  padding: 12px 15px;
  border: 1px solid #e3e3e3;
  border-radius: 0;
  background: #fff;
  color: #202023;
  font: inherit;
  font-size: 16px;
  line-height: 1.4;
  box-shadow: none;
  appearance: none;
  -webkit-appearance: none;
}
.property-single__enquiry-modal form input[type=text]:focus,
.property-single__enquiry-modal form input[type=email]:focus,
.property-single__enquiry-modal form input[type=tel]:focus,
.property-single__enquiry-modal form input[type=number]:focus,
.property-single__enquiry-modal form select:focus,
.property-single__enquiry-modal form textarea:focus {
  border-color: var(--colorBrand-1);
  outline: 1px solid var(--colorBrand-1);
  outline-offset: 0;
}
.property-single__enquiry-modal form textarea {
  min-height: 140px;
  resize: vertical;
}
.property-single__enquiry-modal form input[type=submit],
.property-single__enquiry-modal form button[type=submit] {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 52px;
  margin: 10px 0 0;
  padding: 10px 20px;
  border: 0;
  border-radius: 0;
  background: var(--colorBrand-1);
  color: #fff;
  font: inherit;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.2;
  text-align: center;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  box-shadow: none;
  transition-property: background-color, color !important;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important;
  transition-duration: 150ms !important;
}
.property-single__enquiry-modal form input[type=submit]:hover, .property-single__enquiry-modal form input[type=submit]:focus-visible,
.property-single__enquiry-modal form button[type=submit]:hover,
.property-single__enquiry-modal form button[type=submit]:focus-visible {
  opacity: 1 !important;
  background: var(--colorBrand-3);
  color: #fff;
}
.property-single__enquiry-close {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: #202023;
  font-size: 30px;
  font-weight: 300;
  line-height: 1;
  cursor: pointer;
}
.property-single__enquiry-close:hover, .property-single__enquiry-close:focus-visible {
  color: var(--colorBrand-1);
}
.property-single__enquiry-intro {
  margin: 0;
  padding-right: 35px;
  color: #202023;
}
.property-single__enquiry-honeypot {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}
.property-single__enquiry-success {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 300px;
  padding: 30px 10px;
  text-align: center;
}
.property-single__enquiry-success h2 {
  margin: 0 0 12px;
  color: var(--colorBrand-1);
  font-size: 28px;
  line-height: 1.2;
  font-weight: 700;
}
.property-single__enquiry-success p {
  max-width: 430px;
  margin: 0;
  color: #202023;
  font-size: 16px;
  line-height: 1.5;
}
.property-single__enquiry-success-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  margin: 0 0 22px;
  border-radius: 50%;
  background: var(--colorBrand-1);
  color: #fff;
  font-size: 34px;
  font-weight: 700;
  line-height: 1;
}
.property-single__enquiry-status {
  margin: -13px 0 23px;
  font-size: 14px;
  line-height: 1.4;
}
.property-single__enquiry-status--success {
  color: #236b2d;
}
.property-single__enquiry-status--error {
  color: #a32020;
}

html.property-enquiry-open {
  overflow: hidden;
}
html.property-enquiry-open body.single-property #container {
  z-index: 2147483645;
}

/* --------------------------------------------------------------------------
   PROPERTY HIVE SINGLE PROPERTY — TABLET AND MOBILE

   Breakpoints:
   - 1023px: reduce the sidebar width and desktop column gap
   - 820px: stack the main content and sidebar
   - 576px: compact spacing, tables, type and map for small screens
---------------------------------------------------------------------------- */
@media screen and (max-width: 1204px) {
  body.single-property {
    --property-single-sidebar: 300px;
    --property-single-gap: 64px;
  }
  .property-single__main {
    flex: 1 1 0;
    width: auto;
    max-width: none;
  }
}
/* Smaller desktop/tablet: retain two columns with tighter dimensions. */
@media screen and (max-width: 1023px) {
  body.single-property {
    --property-single-sidebar: 250px;
    --property-single-gap: 38px;
  }
  .property-single {
    padding-top: 64px;
  }
}
/* Tablet/mobile: stack the main content and sidebar. */
@media screen and (max-width: 820px) {
  .property-single__header {
    margin-bottom: 48px;
  }
  .property-single__layout {
    flex-direction: column;
    gap: 38px;
  }
  .property-single__main {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
  }
  .property-single__sidebar {
    flex: 0 0 auto;
    width: 100%;
    max-width: 520px;
  }
  .property-single__agents {
    margin-top: 42px;
  }
  .property-single__agent {
    max-width: 360px;
  }
}
/* Small mobile spacing and typography. */
@media screen and (max-width: 576px) {
  .property-single {
    width: calc(100% - 36px);
    padding: 44px 0 60px;
  }
  .property-single__header {
    margin-bottom: 35px;
  }
  .property-single__gallery #carousel {
    margin-bottom: 28px !important;
  }
  .property-single__details th,
  .property-single__details td {
    display: block;
    width: 100% !important;
    border: 0 !important;
  }
  .property-single__details th {
    padding-bottom: 2px;
    font-weight: 700;
  }
  .property-single__details td {
    padding-top: 2px;
  }
  .property-single__details tbody th {
    width: 100% !important;
    font-weight: 700;
  }
  .property-single__details tbody tr > * + * {
    border-left: 0;
  }
  .property-single__section {
    margin-bottom: 38px;
  }
  .property-single__map iframe {
    height: 250px;
  }
  .property-single__agent {
    flex-direction: column;
    width: 100%;
    max-width: 300px;
    margin-left: auto;
    margin-right: auto;
  }
  .property-single__agent--has-photo .property-single__agent-photo {
    flex: 0 0 auto;
    width: 100%;
    height: auto;
    aspect-ratio: 150/150;
  }
  .property-single__agent--has-photo > div {
    flex: 0 0 auto;
    width: 100%;
  }
  .property-single__button a,
  .property-single__button button,
  .property-single__button input[type=button],
  .property-single__button input[type=submit], .property-single__shortlist-button a,
  .property-single__shortlist-button button,
  .property-single__shortlist-button input[type=button],
  .property-single__shortlist-button input[type=submit] {
    min-height: 50px;
  }
  .property-single__button {
    min-height: 50px;
  }
}
@media screen and (max-width: 576px) {
  .property-single__enquiry-overlay {
    align-items: flex-start;
    padding: 15px;
  }
  .property-single__enquiry-modal {
    width: 100%;
    max-height: calc(100vh - 30px);
    padding: 30px 20px;
  }
  .property-single__enquiry-modal h2 {
    margin-right: 38px;
  }
  .property-single__enquiry-modal form input[type=text],
  .property-single__enquiry-modal form input[type=email],
  .property-single__enquiry-modal form input[type=tel],
  .property-single__enquiry-modal form textarea,
  .property-single__enquiry-modal form button[type=submit] {
    min-height: 50px;
  }
  .property-single__enquiry-close {
    top: 8px;
    right: 8px;
  }
  .property-single__enquiry-intro {
    padding-right: 0;
  }
}
@media screen and (max-width: 576px) {
  .property-single__enquiry-success {
    min-height: 240px;
    padding: 20px 0;
  }
  .property-single__enquiry-success h2 {
    font-size: 24px;
  }
}
/* Footer */
footer {
  background-color: var(--colorBrand-3);
  color: var(--colorOffWhite);
  /**
      * -----------------------------------------------------------------------------
      * Footer navigation
      * -----------------------------------------------------------------------------
      */
}
footer nav ul.menu {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
footer nav ul.menu li {
  /**
               * Base link styling + hover colour
               */
}
footer nav ul.menu li a {
  transition-duration: 150ms;
  transition-property: color;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  cursor: pointer;
}
footer nav ul.menu li a:hover {
  color: var(--colorBrand-2);
}
footer nav ul.menu li {
  /**
               * -----------------------------------------------------------------------------
               * No-hover items (non-clickable / static text style)
               * -----------------------------------------------------------------------------
               */
}
footer nav ul.menu li.no-hover a:not(ul.sub-menu a) {
  transition-property: none;
  cursor: text;
}
footer nav ul.menu li.no-hover a:not(ul.sub-menu a):hover {
  color: var(--colorWhite);
}
footer nav ul.menu li {
  /**
               * -----------------------------------------------------------------------------
               * Footer sub-menu styling (indented with triangle bullets)
               * -----------------------------------------------------------------------------
               */
}
footer nav ul.menu li .sub-menu-wrapper {
  margin-top: 10px;
  margin-left: 10px;
}
footer nav ul.menu li .sub-menu-wrapper ul.sub-menu {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
footer nav ul.menu li .sub-menu-wrapper ul.sub-menu li {
  position: relative;
  padding-left: 18px;
}
footer nav ul.menu li .sub-menu-wrapper ul.sub-menu li a:hover {
  font-weight: bold;
}
footer nav ul.menu li .sub-menu-wrapper ul.sub-menu li:before {
  content: "";
  position: absolute;
  top: 8px;
  left: 0;
  width: 8px;
  height: 8px;
  background-image: url("images/footer-triangle-bullet.svg");
  background-repeat: no-repeat;
  background-size: 8px 8px;
}
footer nav ul.menu li {
  /**
               * Footer chevrons are not used
               */
}
footer nav ul.menu li .menu-item-chevron {
  display: none;
}

/*# sourceMappingURL=style.css.map */
