.glide {
  position: relative;
  width: 100%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

.glide * {
  -webkit-box-sizing: inherit;
          box-sizing: inherit;
}

.glide__track {
  overflow: hidden;
}

.glide__slides {
  position: relative;
  width: 100%;
  list-style: none;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d;
  -ms-touch-action: pan-Y;
      touch-action: pan-Y;
  overflow: hidden;
  margin: 0;
  padding: 0;
  white-space: nowrap;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  will-change: transform;
}

.glide__slides--dragging {
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

.glide__slide {
  width: 100%;
  height: 100%;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  white-space: normal;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  -webkit-touch-callout: none;
  -webkit-tap-highlight-color: transparent;
}

.glide__slide a {
  -webkit-user-select: none;
          user-select: none;
  -webkit-user-drag: none;
  -moz-user-select: none;
  -ms-user-select: none;
}

.glide__arrows {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

.glide__bullets {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

.glide--rtl {
  direction: rtl;
}

/*# sourceMappingURL=glide.core.min.css.map */

/**
 * Main
 *
 * Main css file loaded on frontend
 */
/**
 * General configuration
 */
/**
 * Config for Gorko Utility Class Generator
 *
 * @see https://github.com/hankchizljaw/gorko
 */
/**
 * BASE SIZE
 * All calculations are based on this. It's recommended that
 * you keep it at 1rem because that is the root font size. You
 * can set it to whatever you like and whatever unit you like.
 */
/**
 * SIZE SCALE
 * This is a Perfect Fourth scale that powers all the utilities that
 * it is relevant for (font-size, margin, padding). All items are
 * calcuated off the base size, so change that and cascade across
 * your whole project.
 */
/**
 * COLORS
 * Colors are shared between backgrounds and text by default.
 * You can also use them to power borders, fills or shadows, for example.
 */
/**
 * CORE CONFIG
 * This powers everything from utility class generation to breakpoints
 * to enabling/disabling pre-built components/utilities.
 */
/**
 * Mixins
 *
 * sass mixins, currently media query helpers
 */
.bg-dark {
  background: #2b2b2b;
}

.bg-mid {
  background: #505050;
}

.bg-light {
  background: #e2e2e2;
}

.bg-white {
  background: #fff;
}

.bg-black {
  background: #000;
}

.color-dark {
  color: #2b2b2b;
}

.color-mid {
  color: #505050;
}

.color-light {
  color: #e2e2e2;
}

.color-white {
  color: #fff;
}

.color-black {
  color: #000;
}

.flow-space-300 {
  --flow-space: 0.75rem;
}

.flow-space-400 {
  --flow-space: 1rem;
}

.flow-space-500 {
  --flow-space: 1.33rem;
}

.flow-space-600 {
  --flow-space: 1.77rem;
}

.flow-space-700 {
  --flow-space: 2.36rem;
}

.flow-space-800 {
  --flow-space: 3.15rem;
}

.flow-space-900 {
  --flow-space: 4.2rem;
}

.flow-space-major {
  --flow-space: 5.6rem;
}

.font-base {
  font-family: gill-sans-nova, sans-serif;
}

.font-title {
  font-family: rift, sans-serif;
}

.gap-300 {
  margin: 0.75rem;
}

.gap-400 {
  margin: 1rem;
}

.gap-500 {
  margin: 1.33rem;
}

.gap-600 {
  margin: 1.77rem;
}

.gap-700 {
  margin: 2.36rem;
}

.gap-800 {
  margin: 3.15rem;
}

.gap-900 {
  margin: 4.2rem;
}

.gap-major {
  margin: 5.6rem;
}

.gap-left-300 {
  margin-left: 0.75rem;
}

.gap-left-400 {
  margin-left: 1rem;
}

.gap-left-500 {
  margin-left: 1.33rem;
}

.gap-left-600 {
  margin-left: 1.77rem;
}

.gap-left-700 {
  margin-left: 2.36rem;
}

.gap-left-800 {
  margin-left: 3.15rem;
}

.gap-left-900 {
  margin-left: 4.2rem;
}

.gap-left-major {
  margin-left: 5.6rem;
}

.gap-right-300 {
  margin-right: 0.75rem;
}

.gap-right-400 {
  margin-right: 1rem;
}

.gap-right-500 {
  margin-right: 1.33rem;
}

.gap-right-600 {
  margin-right: 1.77rem;
}

.gap-right-700 {
  margin-right: 2.36rem;
}

.gap-right-800 {
  margin-right: 3.15rem;
}

.gap-right-900 {
  margin-right: 4.2rem;
}

.gap-right-major {
  margin-right: 5.6rem;
}

.gap-top-300 {
  margin-top: 0.75rem;
}

.gap-top-400 {
  margin-top: 1rem;
}

.gap-top-500 {
  margin-top: 1.33rem;
}

.gap-top-600 {
  margin-top: 1.77rem;
}

.gap-top-700 {
  margin-top: 2.36rem;
}

.gap-top-800 {
  margin-top: 3.15rem;
}

.gap-top-900 {
  margin-top: 4.2rem;
}

.gap-top-major {
  margin-top: 5.6rem;
}

.gap-bot-300 {
  margin-bottom: 0.75rem;
}

.gap-bot-400 {
  margin-bottom: 1rem;
}

.gap-bot-500 {
  margin-bottom: 1.33rem;
}

.gap-bot-600 {
  margin-bottom: 1.77rem;
}

.gap-bot-700 {
  margin-bottom: 2.36rem;
}

.gap-bot-800 {
  margin-bottom: 3.15rem;
}

.gap-bot-900 {
  margin-bottom: 4.2rem;
}

.gap-bot-major {
  margin-bottom: 5.6rem;
}

.pad-300 {
  padding: 0.75rem;
}

.pad-400 {
  padding: 1rem;
}

.pad-500 {
  padding: 1.33rem;
}

.pad-600 {
  padding: 1.77rem;
}

.pad-700 {
  padding: 2.36rem;
}

.pad-800 {
  padding: 3.15rem;
}

.pad-900 {
  padding: 4.2rem;
}

.pad-major {
  padding: 5.6rem;
}

.pad-top-300 {
  padding-top: 0.75rem;
}

.pad-top-400 {
  padding-top: 1rem;
}

.pad-top-500 {
  padding-top: 1.33rem;
}

.pad-top-600 {
  padding-top: 1.77rem;
}

.pad-top-700 {
  padding-top: 2.36rem;
}

.pad-top-800 {
  padding-top: 3.15rem;
}

.pad-top-900 {
  padding-top: 4.2rem;
}

.pad-top-major {
  padding-top: 5.6rem;
}

.pad-bot-300 {
  padding-bottom: 0.75rem;
}

.pad-bot-400 {
  padding-bottom: 1rem;
}

.pad-bot-500 {
  padding-bottom: 1.33rem;
}

.pad-bot-600 {
  padding-bottom: 1.77rem;
}

.pad-bot-700 {
  padding-bottom: 2.36rem;
}

.pad-bot-800 {
  padding-bottom: 3.15rem;
}

.pad-bot-900 {
  padding-bottom: 4.2rem;
}

.pad-bot-major {
  padding-bottom: 5.6rem;
}

.leading-loose {
  line-height: 1.7;
}

.leading-tight {
  line-height: 1.3;
}

.leading-flat {
  line-height: 1.1;
}

.measure-compact {
  max-width: 30ch;
}

.measure-short {
  max-width: 40ch;
}

.measure-medium {
  max-width: 50ch;
}

.measure-long {
  max-width: 65ch;
}

.text-300 {
  font-size: 0.75rem;
}

.text-400 {
  font-size: 1rem;
}

.text-500 {
  font-size: 1.33rem;
}

.text-600 {
  font-size: 1.77rem;
}

.text-700 {
  font-size: 2.36rem;
}

.text-800 {
  font-size: 3.15rem;
}

.text-900 {
  font-size: 4.2rem;
}

.text-major {
  font-size: 5.6rem;
}

.weight-light {
  font-weight: 300;
}

.weight-normal {
  font-weight: 400;
}

.weight-semibold {
  font-weight: 600;
}

.weight-bold {
  font-weight: 700;
}

.align-left {
  text-align: left;
}

.align-right {
  text-align: right;
}

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

/**
 * Reset
 *
 * Based on Andy Bell's "Modern CSS Reset" with a few modifications
 * specific to Vault Automotive Storage
 *
 * @see https://piccalil.li/blog/a-modern-css-reset/
 */
/* Box sizing rules */
*,
*::before,
*::after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

/* Remove default margin */
body,
h1,
h2,
h3,
h4,
p,
figure,
blockquote,
dl,
dd {
  margin: 0;
}

/* Set core root defaults */
html {
  scroll-behavior: smooth;
}

/* Set core body defaults */
body {
  line-height: 1.5;
  min-height: 100vh;
  text-rendering: optimizeSpeed;
}

/* Remove list styles on ul, ol elements with a class attribute */
ul[class],
ol[class] {
  list-style: none;
  margin: 0;
  padding-left: 0;
}

/* A elements that don't have a class get default styles */
a:not([class]) {
  -webkit-text-decoration-skip: ink;
          text-decoration-skip-ink: auto;
}

/* Make images easier to work with */
img,
picture {
  display: inline-block;
  height: auto;
  max-width: 100%;
}

/* Inherit fonts for inputs and buttons */
input,
button,
textarea,
select {
  font: inherit;
}

/* Remove user-agent styles on address element */
address {
  font-style: normal;
}

/* Remove all animations and transitions for people that prefer not to see them */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    -webkit-animation-duration: .01s !important;
            animation-duration: .01s !important;
    -webkit-animation-iteration-count: 1 !important;
            animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    -webkit-transition-duration: .01s !important;
            transition-duration: .01s !important;
  }
}

/**
 * Base
 *
 * Sets basic styles for body, and for links, headings and
 * (generally) global elements like scrollbars and selections
 */
body {
  font-weight: 400;
  font-family: gill-sans-nova, sans-serif;
  background: #e2e2e2;
  color: #2b2b2b;
  font-size: 1.33rem;
  line-height: 1.5;
  overflow: auto;
  overflow-wrap: break-word;
  position: static;
}

@media (prefers-color-scheme: dark) {
  body {
    background: #2b2b2b;
    color: #fff;
  }
}

body.ns {
  margin-right: var(--scrollbar-width, 0.75rem);
  overflow: hidden;
  position: sticky;
}

a:not([class]), a:focus {
  color: currentColor;
}

a:not([class]):visited, a:not([class]):active, a:focus:visited, a:focus:active {
  color: currentColor;
}

:focus {
  outline: 2px dashed #2b2b2b;
  outline-offset: .25rem;
}

@media (prefers-color-scheme: dark) {
  :focus {
    outline-color: #fff;
  }
}

main:focus {
  outline: none;
}

h1,
h2,
h3,
h4 {
  font-family: rift, sans-serif;
  font-size: 4.2rem;
  font-weight: 400;
  line-height: 1.1;
}

::-moz-selection {
  background: rgba(43, 43, 43, 0.99);
  color: #fff;
}

::selection {
  background: rgba(43, 43, 43, 0.99);
  color: #fff;
}

html {
  scrollbar-color: #e2e2e2 #2b2b2b;
  scrollbar-width: thin;
}

::-webkit-scrollbar {
  height: .75rem;
  width: .75rem;
}

::-webkit-scrollbar-track {
  background: #2b2b2b;
}

::-webkit-scrollbar-thumb {
  background-color: #e2e2e2;
  border: 2px solid #2b2b2b;
  border-radius: .25rem;
}

/**
 * Inputs
 *
 * General, default input styles
 */
input, textarea, select {
  background-color: #fff;
  border: 2px solid #fff;
  padding: .75rem 1rem;
}

/**
 * Auto flex
 * Set the minimum item size with `--auto-flex-min-size` and you'll
 * get a fully responsive flex flow with no media queries.
 *
 * Needs the additional min function to ensure items don't overflow,
 * and needs to use \#{}\ hack so sass doesn't parse min.
 */
.auto-flex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  margin: calc(0 - var(--auto-flex-gap, 1.33rem));
}

.auto-flex > * {
  -webkit-box-flex: 1;
      -ms-flex: 1 0 16rem;
          flex: 1 0 16rem;
  -ms-flex: 1 0 min(var(--auto-flex-min-size, 16rem), 100%);
      flex: 1 0 min(var(--auto-flex-min-size, 16rem), 100%);
  max-width: 100%;
  padding: var(--auto-flex-gap, 1.33rem);
}

/**
 * Backgrounds
 *
 * Actual background utility classes are configured in var/_config.scss,
 * this is for changing focus and selection styles with background colour.
 */
.bg-dark ::-moz-selection, .bg-mid ::-moz-selection {
  background: rgba(255, 255, 255, 0.99);
  color: #2b2b2b;
}
.bg-dark ::selection, .bg-mid ::selection {
  background: rgba(255, 255, 255, 0.99);
  color: #2b2b2b;
}

.bg-dark :focus, .bg-mid :focus {
  outline-color: #fff;
}

/**
 * Dark Scheme
 *
 * Sets dark background and light colour but only when
 * prefers-color-scheme is set to dark
 */
@media (prefers-color-scheme: dark) {
  .dark-scheme {
    background: #2b2b2b;
    color: #fff;
  }
}

/**
 * Flex center
 *
 * centers an item vertically and horizontally using flexbox
 */
.flex-center {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

/**
 * Flow
 *
 * Applies a margin to sibling elements based on a --flow-space custom property.
 */
.flow > * + *, .flow > * + ul, .flow > * + ol {
  margin-top: 1.77rem;
  margin-top: var(--flow-space, 1.77rem);
}

/**
 * Hero
 *
 * Set element to be 'hero' height, filling the whole screen
 * minus the header height
 */
.hero {
  height: 935px;
  max-height: calc(100vh - 100px);
}

/**
 * Image Cover
 *
 * Position image absolutely within parent container and use object-fit: cover
 * to fill the parent element without stretching.
 *
 * Also contains parent class and background rules so JS snippet for browsers that
 * don't support object-fit can use background images and background-size: cover
 */
.img-cover-parent {
  background-position: center;
  background-size: cover;
  position: relative;
}

.img-cover-parent--none .img-cover {
  opacity: 0;
}

.img-cover {
  height: 100%;
  left: 0;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
  position: absolute;
  top: 0;
  width: 100%;
}

/**
 * Image Darken
 *
 * Will add pseudo element between image and content with effect
 * of darkening the image. Sets positive z-index to fix IE11 bug
 */
.img-darken {
  position: relative;
}

.img-darken::before {
  background: rgba(0, 0, 0, 0.45);
  bottom: 0;
  content: '';
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
  z-index: 1;
}

.img-darken img {
  z-index: 0;
}

.img-darken > *:not(img) {
  position: relative;
  z-index: 1;
}

/**
 * Auto Margins
 *
 * Utility classes to add margin-*: auto to elements
 */
.gap-left-auto {
  margin-left: auto;
}

.gap-top-auto {
  margin-top: auto;
}

.gap-right-auto {
  margin-right: auto;
}

.gap-bot-auto {
  margin-bottom: auto;
}

/**
 * Screen Reader
 *
 * Hide element from visual browsers, accessible to screen readers.
 */
.sr, .wpcf7 .screen-reader-response {
  border: 0;
  clip: rect(0 0 0 0);
  height: auto;
  margin: 0;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

.sr:focus, .wpcf7 .screen-reader-response:focus {
  clip: auto;
  width: auto;
  z-index: 10;
}

/**
 * Wrap
 *
 * Sets a max width, adds a consistent gutter and horizontally
 * centers the contents.
 */
.wrap {
  margin-left: auto;
  margin-right: auto;
  max-width: 70rem;
  max-width: var(--wrap-width, 70rem);
  padding-left: 1.33rem;
  padding-right: 1.33rem;
  position: relative;
}

/**
 * Icons
 *
 * Basic styling for icons inserted by TCA_Icons.
 */
.v-icon {
  -ms-flex-item-align: center;
      align-self: center;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
}

.v-icon__svg {
  height: 1em;
  width: 1em;
}

.v-icon.inline {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
}

.v-icon.inline .v-icon__svg {
  position: relative;
  top: .1em;
  vertical-align: middle;
}

/**
 * Glide JS
 *
 * Core Glide styling is concatenated by Gulp, extra elements like
 * pagination and navigation are styled here to reduce bundle size
 *
 * Based on glide.theme.css, unused elements removed, colours and
 * sizes updated with theme, and converted to SASS format
 */
.glide__bullets {
  bottom: 3.15rem;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  left: 50%;
  list-style: none;
  position: absolute;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  z-index: 2;
}

.glide__bullet {
  background-color: rgba(255, 255, 255, 0.5);
  border: 2px solid transparent;
  border-radius: 50%;
  -webkit-box-shadow: 0 0.25em 0.5em 0 rgba(0, 0, 0, 0.1);
          box-shadow: 0 0.25em 0.5em 0 rgba(0, 0, 0, 0.1);
  cursor: pointer;
  height: 0.75rem;
  line-height: 0;
  margin: 0 0.75rem;
  padding: 0;
  -webkit-transition: all .3s ease-in-out;
  transition: all .3s ease-in-out;
  width: 0.75rem;
}

.glide__bullet:focus {
  outline: none;
}

.glide__bullet:hover, .glide__bullet:focus {
  background-color: rgba(255, 255, 255, 0.5);
  border: 2px solid #fff;
}

.glide__bullet--active {
  background-color: #fff;
}

/**
 * Contact Form 7
 *
 * Basic styling for CF7, based on plugin source with unnecessary
 * rules removed and simplified, and converted to SASS
 */
.wpcf7-response-output {
  font-size: 1rem;
  font-weight: 700;
  background-color: rgba(0, 160, 210, 0.1);
  border: 2px solid #00a0d2;
  margin: 1.77rem 0 1rem;
  padding: 0.75rem 1rem;
}

.wpcf7-form.init .wpcf7-response-output {
  display: none;
}

.wpcf7-form.sent .wpcf7-response-output {
  background-color: rgba(70, 180, 80, 0.1);
  border-color: #46b450;
}

.wpcf7-form.failed .wpcf7-response-output,
.wpcf7-form.aborted .wpcf7-response-output {
  background-color: rgba(220, 50, 50, 0.1);
  border-color: #dc3232;
}

.wpcf7-form.spam .wpcf7-response-output {
  background-color: rgba(245, 110, 40, 0.1);
  border-color: #f56e28;
}

.wpcf7-form.invalid .wpcf7-response-output,
.wpcf7-form.unaccepted .wpcf7-response-output {
  background-color: rgba(255, 185, 0, 0.1);
  border-color: #ffb900;
}

.wpcf7-not-valid-tip {
  color: #dc3232;
}

.wpcf7-list-item {
  display: inline-block;
  margin: 0 0 0 1em;
}

.wpcf7-list-item-label::before,
.wpcf7-list-item-label::after {
  content: ' ';
}

.wpcf7 .wpcf7-submit:disabled {
  cursor: not-allowed;
}

/**
 * Contact Form 7
 *
 * Basic styling for CF7, based on plugin source with unnecessary
 * rules removed and simplified, and converted to SASS
 */
.gform_wrapper.gform-theme .gform_confirmation_message {
  padding: 80px 15px;
  border: 2px dashed #fff;
}

.gform_wrapper.gform-theme .gform_heading {
  display: none;
}

.gform_wrapper.gform-theme .gform_validation_errors {
  background-color: rgba(225, 36, 0, 0.1);
  border-color: #e12400;
}

.gform_wrapper.gform-theme .gform_validation_errors:focus {
  outline: 0;
  border-color: #e12400;
}

.gform_wrapper.gform-theme .gform_validation_errors .gform_submission_error {
  color: #e12400;
}

.gform_wrapper.gform-theme .gform_validation_errors .gform_submission_error .gform-icon {
  border-color: #e12400;
  color: #e12400;
}

.gform_wrapper.gform-theme .gform_fields {
  row-gap: 15px;
}

.gform_wrapper.gform-theme .gform_fields .gfield.gfield_error input,
.gform_wrapper.gform-theme .gform_fields .gfield.gfield_error textarea {
  border-color: #e12400;
}

.gform_wrapper.gform-theme .gform_fields .gfield.gfield--type-consent .gfield_consent_description {
  color: inherit;
}

.gform_wrapper.gform-theme .gform_fields .gfield.gfield--type-consent .gfield_consent_description:focus {
  outline: 2px dashed #fff;
  outline-offset: .25rem;
  border-color: #fff;
}

.gform_wrapper.gform-theme .gform_fields .gfield.gfield--type-consent .ginput_container_consent label {
  color: inherit;
}

.gform_wrapper.gform-theme .gform_fields .gfield .gfield_validation_message {
  color: #e12400;
  margin-top: 1px;
  text-align: right;
}

.gform_wrapper.gform-theme .gform_fields .gfield .ginput_container input,
.gform_wrapper.gform-theme .gform_fields .gfield .ginput_container textarea {
  border-radius: 0px;
  font-size: inherit;
}

.gform_wrapper.gform-theme .gform_fields .gfield .ginput_container input:focus,
.gform_wrapper.gform-theme .gform_fields .gfield .ginput_container textarea:focus {
  outline: 2px dashed #fff;
  outline-offset: .25rem;
  border-color: #fff;
}

.gform_wrapper.gform-theme .gform_fields .gfield .gfield_label {
  font-size: inherit;
  color: inherit;
  margin-bottom: 3px;
}

.gform_wrapper.gform-theme .gform_fields .gfield .gfield_label .gfield_required {
  color: inherit;
  position: relative;
}

.gform_wrapper.gform-theme .gform_fields .gfield .gfield_label .gfield_required.gfield_required_asterisk {
  position: absolute;
  bottom: 4px;
}

.gform_wrapper.gform-theme .gform_footer input[type=submit] {
  font-size: inherit !important;
  font-weight: 600 !important;
  background: transparent !important;
  border: 2px solid #fff !important;
  color: inherit !important;
  cursor: pointer;
  display: inline-block;
  padding: 10px 40px !important;
  text-align: center;
  text-decoration: none;
  -webkit-transition: all .1s;
  transition: all .1s;
}

.gform_wrapper.gform-theme .gform_footer input[type=submit]:hover {
  background: #6c6a6a !important;
  color: inherit !important;
}

.gform_wrapper.gform-theme .gform_footer input[type=submit]:focus {
  outline: 2px dashed #fff !important;
  outline-offset: .25rem;
  border-color: #fff !important;
}

/* #background-color: rgba(#46b450, .1);
#border-color: #46b450;
*/
/**
 * Button
 */
.b-btn {
  font-weight: 600;
  background: #2b2b2b;
  border: 2px solid transparent;
  -webkit-box-shadow: 0 5px 5px 0 rgba(0, 0, 0, 0.16);
          box-shadow: 0 5px 5px 0 rgba(0, 0, 0, 0.16);
  color: #fff;
  cursor: pointer;
  display: inline-block;
  padding: 0.75rem 2.36rem;
  text-align: center;
  text-decoration: none;
  -webkit-transition: all .1s;
  transition: all .1s;
}

.b-btn:hover, .b-btn:focus {
  background: #505050;
}

.b-btn[data-colour='light'] {
  background: #fff;
  color: #2b2b2b;
}

/**
 * Social
 *
 * List of social media icons
 */
.b-social {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
}

.b-social__item + * {
  margin-left: 1.33rem;
}

/**
 * App
 *
 * Wrapper for full website, using flexbox with min-height
 * of 100vh to ensure footer sits at bottom of viewport,
 * and setting overflow so 100vw can be used safely
 */
.l-app {
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  min-height: 100vh;
  overflow-x: hidden;
  position: relative;
}

.l-app__footer {
  margin-top: auto;
}

/**
 * Footer
 *
 * Styling for colophon bar and footer at bottom of page.
 */
.l-footer__topWrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 2.36rem 0;
}

@media screen and (min-width: 768px) {
  .l-footer__topWrap::before {
    content: '';
    -webkit-box-flex: 500;
        -ms-flex: 500 0 0px;
            flex: 500 0 0;
    -webkit-box-ordinal-group: -3;
        -ms-flex-order: -4;
            order: -4;
  }
  .l-footer__topWrap::after {
    content: '';
    -webkit-box-flex: 1000;
        -ms-flex: 1000 0 0px;
            flex: 1000 0 0;
    -webkit-box-ordinal-group: -1;
        -ms-flex-order: -2;
            order: -2;
  }
}

.l-footer__col {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 1;
      -ms-flex: 1 0 auto;
          flex: 1 0 auto;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  max-width: 100%;
}

.l-footer__col--menu {
  -webkit-box-ordinal-group: -4;
      -ms-flex-order: -5;
          order: -5;
}

.l-footer__col--contact {
  -webkit-box-ordinal-group: -2;
      -ms-flex-order: -3;
          order: -3;
}

.l-footer__col--info {
  -webkit-box-ordinal-group: 0;
      -ms-flex-order: -1;
          order: -1;
}

@media screen and (min-width: 768px) {
  .l-footer__col--info {
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
    text-align: right;
  }
}

.l-footer__menu {
  -webkit-columns: 2 15ch;
     -moz-columns: 2 15ch;
          columns: 2 15ch;
}

.l-footer__menu:not(.dud) {
  margin-bottom: 2.36rem;
}

.l-footer h3 {
  font-family: gill-sans-nova, sans-serif;
  font-weight: 700;
  color: inherit;
  font-size: inherit;
}

.l-footer__social:not(.dud) {
  margin-bottom: 2.36rem;
}

.l-footer__logo {
  height: 3rem;
  width: auto;
}

.l-footer__bottom {
  border-top: 1px solid #fff;
}

.l-footer__bottomWrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.l-footer__icon {
  height: 1em;
  vertical-align: -.12em;
  width: 1.125em;
}

.l-footer__covey {
  color: currentColor;
  text-decoration: none;
}

/**
 * Header
 *
 * Styling for general header bar. For navigation see _nav.scss
 */
.l-header {
  position: relative;
  z-index: 2;
}

.l-header__wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  height: 100%;
}

.l-header__phone {
  position: absolute;
  right: 20px;
  top: 0;
  line-height: 1;
}

@media screen and (max-width: 575px) {
  .l-header__phone {
    font-size: 20px;
    right: 22px;
  }
}

.l-header__phone a {
  text-decoration: none;
}

.l-header__brand, .l-header__logo {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.l-header__brand {
  display: block;
  -webkit-box-flex: 1;
      -ms-flex: 1 0 auto;
          flex: 1 0 auto;
}

.l-header__logo {
  height: 4.25rem;
}

.l-header__logo img {
  height: 100%;
  width: auto;
}

@media (prefers-color-scheme: dark) {
  .l-header__logo img {
    -webkit-filter: brightness(1) invert(1);
            filter: brightness(1) invert(1);
  }
}

@media screen and (max-width: 575px) {
  .l-header__logo img {
    height: 3.5rem;
  }
}

.l-header__nav {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  padding-top: 30px;
}

@media screen and (max-width: 991px) {
  .l-header__nav {
    font-size: 1.33rem;
  }
}

@media screen and (max-width: 575px) {
  .l-header__nav {
    padding-top: 10px;
  }
}

.l-header__social {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

@media screen and (max-width: 767px) {
  .l-header__social {
    padding: 1rem;
  }
}

/**
 * Main
 *
 * Main content element of the site, sets position in stacking context
 */
.l-main {
  position: relative;
  z-index: 1;
}

/**
 * Navigation
 *
 * Primary menu styling, displayed as a horizontal row > 768px,
 * and displays as a fly-in menu < 768px.
 */
.l-nav__toggle {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background: none;
  border: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding: 0;
  z-index: 2;
}

@media (prefers-color-scheme: dark) {
  .l-nav__toggle {
    -webkit-filter: invert(1);
            filter: invert(1);
  }
}

@media screen and (min-width: 768px) {
  .l-nav__toggle {
    display: none;
  }
}

.l-nav__wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
}

@media screen and (max-width: 767px) {
  .l-nav__wrap {
    background: #2b2b2b;
    color: #fff;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    height: 100%;
    left: 100%;
    overflow: auto;
    position: fixed;
    top: 0;
    -webkit-transition: all .2s;
    transition: all .2s;
    visibility: hidden;
    width: 100%;
    will-change: transform;
    z-index: 1;
  }
}

.l-nav__menu {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: 100%;
}

@media screen and (max-width: 767px) {
  .l-nav__menu {
    font-size: 3.15rem;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .l-nav__menu:not(.dud) {
    margin: auto 0;
  }
}

.l-nav .menu-item a {
  padding: 0.75rem 0.25rem;
  text-decoration: none;
}

@media screen and (max-width: 767px) {
  .l-nav .menu-item a {
    display: block;
    width: 100%;
  }
}

.l-nav .current-menu-item a {
  font-weight: 700;
}

.l-nav[data-state='closed'] .l-nav__icon--close {
  display: none;
}

.l-nav[data-state='open'] .l-nav__icon--menu {
  display: none;
}

@media screen and (max-width: 767px) {
  .l-nav[data-state='open'] .l-nav__wrap {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
    visibility: visible;
  }
}

/**
 * Accordion
 *
 * Collapsible items with title visible, on click content expands
 *
 */
.s-accordion_title {
  position: relative;
  padding: 1rem 1rem 5rem;
  background: #505050;
  cursor: pointer;
  font-size: 46px;
}

@media screen and (max-width: 991px) {
  .s-accordion_title {
    font-size: 34px;
  }
}

.s-accordion_title:hover {
  background: #2b2b2b;
}

.s-accordion_title::after {
  display: block;
  position: absolute;
  bottom: 1rem;
  left: 50%;
  width: 50px;
  height: 50px;
  overflow: hidden;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  font-size: 46px;
  color: #505050;
  content: '+';
  background: #fff;
  border-radius: 100%;
}

.s-accordion_content {
  max-height: 0;
  overflow: hidden;
  -webkit-transition: max-height .2s;
  transition: max-height .2s;
}

.s-accordion_open {
  padding-bottom: 2em;
}

.s-accordion_open .s-accordion_title::after {
  content: '-';
}

/**
 * Carousel
 *
 * Slider of hero images with overlayed titles.
 */
.s-carousel__title {
  line-height: 1;
  max-width: 25ch;
}

/**
 * Contact
 *
 * Title and Contact Form 7 contact form.
 */
.s-contact__form p {
  margin-bottom: 1rem;
}

.s-contact__form input, .s-contact__form select, .s-contact__form textarea {
  margin-top: .5rem;
  width: 100%;
}

.s-contact__form input[type='checkbox'], .s-contact__form input[type='submit'] {
  width: auto;
}

.s-contact__form .wpcf7-submit {
  display: block;
  margin-left: auto;
}

/**
 * Content Split
 *
 * > 768px: displays image on 50% of width, content block on other 50%
 * < 768px: content block with image below
 */
.s-contentSplit {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.s-contentSplit > * {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
}

@media screen and (min-width: 768px) {
  .s-contentSplit > * {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
  }
}

.s-contentSplit__text {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

@media screen and (max-width: 767px) {
  .s-contentSplit__text {
    padding: 1rem;
  }
}

.s-contentSplit__img {
  min-height: 300px;
  position: relative;
}

@media screen and (min-width: 768px) {
  .s-contentSplit--r .s-contentSplit__img {
    -webkit-box-ordinal-group: 0;
        -ms-flex-order: -1;
            order: -1;
  }
}

@media screen and (min-width: 768px) {
  .s-contentSplit--l .s-contentSplit__text {
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
  }
}

/**
 * Gallery
 *
 * Gallery of images using CSS Grid. Size of images are set in HTML
 * and grid span with grid-auto-flow: dense packs them into grid.
 *
 * Uses auto-flex utility class as fallback when grid is not supported.
 */
.s-gallery {
  --auto-flex-gap: .33rem;
}

@supports (display: grid) {
  .s-gallery__grid {
    display: grid;
    gap: .66rem;
    grid-auto-flow: dense;
    grid-template-columns: repeat(auto-fill, minmax(min(13rem, 100%), 1fr));
  }
  .s-gallery__grid > * {
    padding: 0;
  }
}

.s-gallery__item {
  position: relative;
}

.s-gallery__item::before {
  content: '';
  display: block;
  height: 0;
  padding-top: 90%;
  padding-top: var(--gallery-ratio, 90%);
  width: 100%;
}

@supports (display: grid) {
  @media screen and (min-width: 30rem) {
    .s-gallery__item--large {
      grid-column: span 2;
      grid-row: span 2;
    }
    .s-gallery__item--wide {
      --gallery-ratio: 45%;
      grid-column: span 2;
    }
  }
}

/**
 * Get In Touch
 *
 * Section with columns for phone, email and address
 */
.s-getInTouch__icon {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.s-getInTouch a {
  display: inline-block;
  text-decoration: none;
}

/**
 * Packages
 *
 * Grid of items with image and title visible, on hover (or activation)
 * a panel slides in with content
 */
.s-packages {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.s-packages__item {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
  overflow: hidden;
  position: relative;
}

@media screen and (max-width: 991px) {
  .s-packages__item {
    margin-bottom: 1.33rem;
  }
}

@media screen and (min-width: 992px) {
  .s-packages__item {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
  }
  .s-packages__item > * {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
  }
  .s-packages__item:nth-child(2n-1) .s-packages__panel--text {
    -webkit-transform: translateX(-200%);
            transform: translateX(-200%);
  }
  .s-packages__item:nth-child(2n-1) .s-packages__content {
    margin-left: auto;
  }
  .s-packages__item:hover .s-packages__panel--text, .s-packages__item[data-visible] .s-packages__panel--text {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
    visibility: visible;
  }
  .s-packages__item[data-visible] .s-packages__flip {
    clip: auto;
    width: auto;
    z-index: 10;
  }
}

.s-packages__panel {
  position: relative;
  z-index: 1;
}

@media screen and (max-width: 767px) {
  .s-packages__panel {
    padding: 1.33rem;
  }
}

@media screen and (min-width: 992px) {
  .s-packages__panel--text {
    -webkit-transition: all .4s;
    transition: all .4s;
    visibility: hidden;
    will-change: transform;
  }
}

.s-packages__name {
  position: relative;
  z-index: 2;
}

.s-packages__flip {
  left: 0;
  position: absolute;
  top: 0;
  z-index: 10;
}

@media screen and (max-width: 991px) {
  .s-packages__flip {
    display: none;
  }
}

.s-packages__content ul {
  list-style: none;
  margin-bottom: 0;
  padding: 0;
}

@media screen and (max-width: 991px) {
  .s-packages__title {
    display: none;
  }
}

/**
 * Slider
 *
 * Contained slider of images with fixed aspect ratio
 */
.s-slider__wrap {
  --wrap-width: 80rem;
  padding-left: 0;
  padding-right: 0;
}

@media screen and (min-width: 768px) {
  .s-slider__wrap {
    padding-left: 6.33rem;
    padding-right: 6.33rem;
  }
}

.s-slider__slide {
  position: relative;
}

.s-slider__slide::before {
  content: '';
  display: block;
  height: 0;
  padding-top: 75%;
  width: 100%;
}

@media screen and (max-width: 767px) {
  .s-slider__arrows {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: distribute;
        justify-content: space-around;
    margin-top: 1.77rem;
  }
}

.s-slider__arrow {
  background: none;
  border: 2px solid currentColor;
  border-radius: 50%;
  cursor: pointer;
  height: 2.36rem;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 2.36rem;
}

@media screen and (min-width: 768px) {
  .s-slider__arrow {
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
  }
  .s-slider__arrow--prev {
    left: -5rem;
  }
  .s-slider__arrow--next {
    right: -5rem;
  }
}

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