@charset "UTF-8";
/*!
Theme Name: Maragidyne
Theme URI: https://burningred.co.uk
Author: burningred
Author URI: https://burningred.co.uk
Description: A customised theme made by burningred for their clients.
Requires at least: 5.3
Tested up to: 5.7
Requires PHP: 5.6
Version: 1.3
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: maragidyne
Tags: one-column, accessibility-ready, custom-colors, custom-menu, custom-logo, editor-style, featured-images, footer-widgets, block-patterns, rtl-language-support, sticky-post, threaded-comments, translation-ready

Maragidyne WordPress Theme, (C) 2022 burningred ltd
*/
:root {
  --clr-primary: #91C4FF;
  --clr-secondary: #2F3B48;
  --clr-tertiary: #ECFCFF;
  --wht-light: #f4f4f4;
  --wht-dark: #fcfcfc;
  --wht-solid: #ffffff;
  --blk-light: #2d2d3a;
  --blk-dark: #303234;
  --blk-solid: #1b1b1b;
  --font-heading: Stage Grotesk, "sans-serif";
  --font-body: Stage Grotesk, serif;
  --font-fa-main: "Font Awesome 6 Pro";
  --font-fa-sharp: "Font Awesome 6 Sharp";
  --font-fa-brands: "Font Awesome 6 Brands";
  --transition: cubic-bezier(0.13, 0.075, 0.005, 0.875);
  --margin-edge: 0;
  --border-round-sm: 2px;
  --border-round-lg: 6px;
  --anim-delay: 8ms;
  --anim-delay-fast: 3ms;
  --section-anim: 210ms;
  --letter-anim: 320ms;
}
@media (min-width: 540px) {
  :root {
    --max-container-width: 540px;
  }
}
@media (min-width: 720px) {
  :root {
    --max-container-width: 720px;
  }
}
@media (min-width: 960px) {
  :root {
    --max-container-width: 960px;
  }
}
@media (min-width: 1140px) {
  :root {
    --max-container-width: 1140px;
  }
}
@media (min-width: 1320px) {
  :root {
    --max-container-width: 1320px;
  }
}

body[data-time-of-day=day] {
  --bg-light: var(--clr-primary);
  --bg-dark: var(--clr-secondary);
  --bg-solid: var(--wht-solid);
  --txt-light: var(--clr-primary);
  --txt-dark: var(--clr-secondary);
  --txt-solid: var(--clr-secondary);
}
body[data-time-of-day=night] {
  --bg-light: var(--clr-primary);
  --bg-dark: var(--wht-solid);
  --bg-solid: var(--clr-secondary);
  --txt-light: var(--clr-tertiary);
  --txt-dark: var(--clr-secondary);
  --txt-solid: var(--clr-primary);
}

@font-face {
  font-family: "Stage Grotesk";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("./../fonts/StageGroteskRegular/StageGrotesk-Regular.woff") format("woff"), url("./../fonts/StageGroteskRegular/StageGrotesk-Regular.woff2") format("woff2");
}
@font-face {
  font-family: "Stage Grotesk";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("./../fonts/StageGroteskRegular/StageGrotesk-Italic.woff") format("woff"), url("./../fonts/StageGroteskRegular/StageGrotesk-Italic.woff2") format("woff2");
}
@font-face {
  font-family: "Stage Grotesk";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("./../fonts/StageGroteskBold/StageGrotesk-Bold.woff") format("woff"), url("./../fonts/StageGroteskBold/StageGrotesk-Bold.woff2") format("woff2");
}
@font-face {
  font-family: "Stage Grotesk";
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url("./../fonts/StageGroteskBold/StageGrotesk-BoldItalic.woff") format("woff"), url("./../fonts/StageGroteskBold/StageGrotesk-BoldItalic.woff2") format("woff2");
}
::-webkit-scrollbar {
  width: 0.25em;
  height: 0.25em;
}

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

::-webkit-scrollbar-track {
  background: var(--wht-solid);
}

body {
  scrollbar-face-color: var(--clr-primary);
  scrollbar-track-color: var(--wht-solid);
}

html {
  overflow-x: hidden;
  border-top: 0.75vh solid var(--clr-primary);
}

body {
  overflow: hidden;
  background: var(--bg-solid);
}
body::before {
  content: "";
  left: 0;
  top: 0;
  display: block;
  background: var(--txt-dark);
  width: 100%;
  height: 100%;
  position: fixed;
  z-index: 50;
  opacity: 0;
  transition: all 180ms ease-in-out;
  pointer-events: none;
}
body.menu--active::before {
  content: "";
  opacity: 0.2;
}

.container--main {
  width: 100%;
  padding-inline: 5vw;
  margin-right: auto;
  margin-left: auto;
}
@media (min-width: 992px) {
  .container--main {
    width: 100%;
    padding-inline: 5vw;
    margin-right: auto;
    margin-left: auto;
  }
  header .container--main, .container--main#footer--end {
    width: 100%;
    padding-inline: 2vw;
    margin-right: auto;
    margin-left: auto;
  }
  footer .container--main {
    width: 100%;
    padding-inline: 0;
    margin-right: auto;
    margin-left: auto;
  }
}

.row--inline {
  margin-block-end: 0.5em;
}
.row--inline .col {
  flex: unset;
  width: auto;
  white-space: nowrap;
}
@media (max-width: 767px) {
  .row--inline {
    white-space: nowrap;
    overflow-x: auto; /* Make the row horizontally scrollable */
    -webkit-overflow-scrolling: touch; /* Enable smooth scrolling on iOS */
    display: flex;
    flex-wrap: nowrap;
    margin-block: 2em;
  }
  .row--inline::-webkit-scrollbar {
    display: none;
  }
}

.flex--nowrap {
  flex-wrap: nowrap;
}

* {
  font-family: var(--font-body);
  color: var(--txt-solid);
}

h1,
.h1 {
  font-size: clamp(38px, 4em, 9.25vw);
  line-height: 0.9;
  padding-bottom: 0.6em;
  letter-spacing: -0.025em;
  display: block;
}
h1 + span.h1,
.h1 + span.h1 {
  display: block;
  margin-block-start: -0.5em;
}
h1 + span.h1 span.letter--hold,
.h1 + span.h1 span.letter--hold {
  color: var(--txt-light);
}

h2,
.h2 {
  font-size: clamp(34px, 2.75em, 3vw);
  line-height: 0.9;
  padding-bottom: 0.5em;
  letter-spacing: -0.025em;
  display: block;
}
h2 + span.h2,
.h2 + span.h2 {
  display: block;
  margin-block-start: -0.5em;
}
h2 + span.h2 span.letter--hold,
.h2 + span.h2 span.letter--hold {
  color: var(--txt-light);
}

h3,
.h3 {
  font-size: clamp(30px, 2.4em, 3vw);
  line-height: 0.9;
  padding-bottom: 0.5em;
  letter-spacing: -0.025em;
  display: block;
}
h3 + span.h3,
.h3 + span.h3 {
  display: block;
  margin-block-start: -0.5em;
}
h3 + span.h3 span.letter--hold,
.h3 + span.h3 span.letter--hold {
  color: var(--txt-light);
}

h4,
.h4 {
  font-size: clamp(26px, 1.8em, 3vw);
  line-height: 0.9;
  padding-bottom: 0.5em;
  letter-spacing: -0.025em;
  display: block;
}
h4 + span.h4,
.h4 + span.h4 {
  display: block;
  margin-block-start: -0.5em;
}
h4 + span.h4 span.letter--hold,
.h4 + span.h4 span.letter--hold {
  color: var(--txt-light);
}

h5,
.h5 {
  font-size: clamp(24px, 1.4em, 4.75vw);
  line-height: 0.9;
  padding-bottom: 0.25em;
  letter-spacing: -0.025em;
  display: block;
}
h5 + span.h5,
.h5 + span.h5 {
  display: block;
  margin-block-start: -0.5em;
}
h5 + span.h5 span.letter--hold,
.h5 + span.h5 span.letter--hold {
  color: var(--txt-light);
}

h6,
.h6 {
  font-size: clamp(12px, 0.8em, 3vw);
  line-height: 1;
  padding-bottom: 0.5em;
  padding-left: 0.25em;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  display: block;
}
h6 + span.h6,
.h6 + span.h6 {
  display: block;
  margin-block-start: -0.5em;
}
h6 + span.h6 span.letter--hold,
.h6 + span.h6 span.letter--hold {
  color: var(--txt-light);
}

p,
li {
  font-size: clamp(20px, 1.1em, 2.5vw);
  line-height: 1.2;
}

p {
  position: relative;
}
p[class*=h] {
  margin-inline-start: 6vw;
  position: relative;
}
p[class*=h]:before {
  content: "";
  display: block;
  position: absolute;
  left: -3vw;
  top: 0.25em;
  height: 5vw;
  width: 0.25em;
  background: var(--txt-light);
}
p.line--hide {
  margin-inline-start: 0 !important;
  position: relative;
}
p.line--hide:before {
  content: none !important;
}

a {
  text-decoration: none;
  cursor: pointer;
  color: var(--txt-solid);
}
a:hover {
  color: var(--clr-primary);
}
a.button {
  text-decoration: none;
  padding: 0.75em 2em;
  margin-block-end: 0.5em;
  display: inline-block;
  position: relative;
  overflow: hidden;
}
a.button:has(svg) {
  padding: 0.75em 4em 0.8em 2em;
}
p > a.button {
  margin-block-start: 0.75em;
}
a.button:before, a.button:after {
  content: "\f061";
  font-family: var(--font-fa-main);
  display: none;
  margin-inline-start: 0.5em;
  position: absolute;
  right: 0;
}
a.button svg {
  margin-inline-start: 0.5em;
  position: absolute;
  top: 50%;
  right: 2em;
  opacity: 1;
  transform: translateY(-50%);
}
a.button svg[data-fa-pseudo-element="::before"] {
  right: 3em;
  opacity: 0;
}
a.button:hover, a.button:focus {
  transition: all 320ms ease-in-out;
}
a.button:hover svg, a.button:focus svg {
  margin-inline-start: 0.5em;
  position: absolute;
  top: 50%;
  right: 1em;
  opacity: 0;
  transition: all 200ms ease-in-out;
  transform: translateY(-50%);
}
a.button:hover svg[data-fa-pseudo-element="::before"], a.button:focus svg[data-fa-pseudo-element="::before"] {
  right: 2em;
  opacity: 1;
  transition: all 200ms ease-in-out;
}
a.button.button__tertiary {
  background: var(--clr-primary);
  color: var(--clr-secondary);
  border-radius: 50vw;
}
a.button.button__secondary {
  background: var(--clr-secondary);
  color: var(--clr-primary);
  border-radius: 50vw;
}
a.button.button__line {
  display: block;
  position: relative;
  padding-inline: 0;
  padding-block-end: 0.2em;
  margin-block-end: 0.25em;
  padding-block-start: 0;
  border-bottom: 3px solid var(--bg-light);
  color: var(--txt-solid);
  font-size: clamp(22px, 1.15em, 2.75vw);
  width: 100%;
  margin-inline-end: 20%;
  padding-inline-end: 20%;
}
a.button.button__line svg {
  right: 0;
}
a.button.button__line svg[data-fa-pseudo-element="::before"] {
  right: 2em;
  opacity: 0;
}
a.button.button__line:hover, a.button.button__line:focus {
  color: var(--bg-light);
  border-bottom: 3px solid var(--bg-dark);
}
a.button.button__line:hover svg, a.button.button__line:focus svg {
  right: -2em;
  opacity: 0;
}
a.button.button__line:hover svg[data-fa-pseudo-element="::before"], a.button.button__line:focus svg[data-fa-pseudo-element="::before"] {
  right: 0em;
  opacity: 1;
}
a.button.button__primary {
  background: none;
  color: var(--txt-solid);
  border: 0.25em solid var(--clr-primary);
  border-radius: 50vw;
}
[data-background-fill=primary] a.button.button__primary {
  border-color: var(--bg-solid);
  color: var(--txt-solid);
}
[data-background-fill=primary] a.button.button__primary:hover, [data-background-fill=primary] a.button.button__primary:focus {
  background: var(--bg-solid);
}
a.button.button__primary:hover, a.button.button__primary:focus {
  background: var(--clr-primary);
}

[data-scroll-in=slide] {
  will-change: transform, opacity;
  position: relative;
  transition: all var(--section-anim) var(--transition);
  transform: translateY(10em);
}
[data-scroll-in=slide][data-scroll-visible=false] {
  opacity: 0;
  transition: all var(--section-anim) var(--transition);
}
[data-scroll-in=slide][data-scroll-visible=true] {
  opacity: 1;
  transform: translateY(0);
  transition: all var(--section-anim) var(--transition);
}

[data-scroll-in=fade] {
  will-change: transform, opacity;
  position: relative;
  transition: all var(--section-anim) var(--transition);
}
[data-scroll-in=fade][data-scroll-visible=false] {
  opacity: 0;
  transition: all var(--section-anim) var(--transition);
}
[data-scroll-in=fade][data-scroll-visible=true] {
  opacity: 1;
  transition: all var(--section-anim) var(--transition);
}

.title--animation .word {
  display: inline-block;
  position: relative;
  text-wrap: nowrap;
}
.title--animation .word span.letter--mask {
  overflow: hidden;
  height: 100%;
  display: inline-block;
  margin-block-end: -5px;
}
.title--animation .word span.letter--mask span.letter--hold {
  position: relative;
  top: 3em;
  transition: top var(--letter-anim) ease-in-out;
  transition-delay: calc(var(--letter-delay) * var(--anim-delay));
}
.title--animation.title--display .word span.letter--mask span.letter--hold {
  top: -0.11em;
  transition: top var(--letter-anim) ease-in-out;
  transition-delay: calc(var(--letter-delay) * var(--anim-delay));
}

@keyframes arrow-reveal {
  from {
    bottom: -175%;
    opacity: 0;
  }
  to {
    bottom: -140%;
    opacity: 1;
  }
}
[data-aspect-ratio=sq] {
  position: relative;
  height: 0;
  width: 100%;
  padding-bottom: 100%;
  overflow: hidden;
}

[data-aspect-ratio=match] {
  position: relative;
  height: 100%;
  width: 100%;
  overflow: hidden;
  min-height: 320px;
}

[data-aspect-ratio=p-4-3] {
  position: relative;
  height: 0;
  width: 100%;
  padding-bottom: 133.3333333333%;
  overflow: hidden;
}

[data-aspect-ratio=l-4-3] {
  position: relative;
  height: 0;
  width: 100%;
  padding-bottom: 75%;
  overflow: hidden;
}

[data-aspect-ratio=p-16-9] {
  position: relative;
  height: 0;
  width: 100%;
  padding-bottom: 177.7777777778%;
  overflow: hidden;
}

[data-aspect-ratio=l-16-9] {
  position: relative;
  height: 0;
  width: 100%;
  padding-bottom: 48%;
  overflow: hidden;
}

[data-aspect-ratio=p-3-1] {
  position: relative;
  height: 0;
  width: 100%;
  padding-bottom: 300%;
  overflow: hidden;
}

[data-aspect-ratio=l-3-1] {
  position: relative;
  height: 0;
  width: 100%;
  padding-bottom: 33.3333333333%;
  overflow: hidden;
}

[data-aspect-ratio] > img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  -o-object-position: var(--posH) var(--posV);
  object-position: var(--posH) var(--posV);
}

[data-aspect-ratio] > iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

[data-img-display=contain] > img {
  -o-object-fit: contain !important;
  object-fit: contain !important;
  -o-object-position: center center !important;
  object-position: center center !important;
  left: 50%;
  transform: translateX(-50%);
}

[data-background-colour=primary] {
  background: var(--clr-primary);
  color: var(--wht-solid);
}
[data-background-colour=primary] :is(h1, h2, h3, h4, h5, h6, p, li) {
  color: var(--wht-solid);
}
[data-background-colour=primary] :is(h1, h2, h3, h4, h5, h6, p, li) span.letter--hold {
  color: var(--wht-solid);
}
[data-background-colour=primary] a {
  color: var(--clr-secondary);
}

[data-background-colour=secondary] {
  background: var(--clr-secondary);
  color: var(--wht-solid);
}

[data-background-colour=tertiary] {
  background: var(--clr-tertiary);
  color: var(--txt-solid);
}

[data-background-colour=dark] {
  background: var(--txt-dark);
  color: var(--bg-light);
}

[data-background-colour=light] {
  background: var(--bg-dark);
  color: var(--txt-light);
}

[data-background-colour=white] {
  background: var(--bg-light);
  color: var(--txt-dark);
}
[data-background-colour=white] + [data-background-colour=white] {
  padding-block-start: 0;
}

[data-background-colour=black] {
  background: var(--txt-solid);
  color: var(--bg-light);
}

[data-text-colour=wht] :is(h1, h2, h3, h4, h5, h6, p, li) {
  color: var(--wht-solid);
}

[data-text-colour=blk] :is(h1, h2, h3, h4, h5, h6, p, li) {
  color: var(--blk-solid);
}

[data-text-colour=primary] :is(h1, h2, h3, h4, h5, h6, p, li) {
  color: var(--clr-primary);
}

[data-text-colour=secondary] :is(h1, h2, h3, h4, h5, h6, p, li) {
  color: var(--clr-secondary);
}

[data-img-colour-type=blk] {
  filter: brightness(0);
}

[data-img-colour-type=wht] {
  filter: brightness(0) invert(1);
}

span[data-text-colour=wht] {
  color: var(--wht-solid);
}

span[data-text-colour=blk] {
  color: var(--txt-solid);
}

span[data-text-colour=primary] {
  color: var(--clr-primary);
}

span[data-text-colour=secondary] {
  color: var(--clr-secondary);
}

[data-button-type=primary] {
  background: var(--clr-primary) !important;
  border-color: var(--clr-primary) !important;
  color: var(--wht-solid) !important;
}
[data-button-type=primary]:hover, [data-button-type=primary]:focus {
  background: var(--clr-secondary) !important;
  border-color: var(--clr-secondary) !important;
}

[data-button-type=book] {
  background: var(--clr-secondary) !important;
  border-color: var(--clr-secondary) !important;
  color: var(--clr-tertiary) !important;
  padding-block: 0.5em !important;
  text-transform: uppercase !important;
}
[data-button-type=book]:hover, [data-button-type=book]:focus {
  background: var(--clr-tertiary) !important;
  border-color: var(--clr-tertiary) !important;
  color: var(--clr-secondary) !important;
}

[data-button-type=secondary] {
  background: var(--clr-secondary) !important;
  border-color: var(--clr-secondary) !important;
  color: var(--wht-solid) !important;
}
[data-button-type=secondary]:hover, [data-button-type=secondary]:focus {
  background: var(--txt-light) !important;
  border-color: var(--txt-light) !important;
}

[data-button-type=tertiary] {
  background: var(--clr-tertiary) !important;
  border-color: var(--clr-tertiary) !important;
  color: var(--txt-solid) !important;
}
[data-button-type=tertiary]:hover, [data-button-type=tertiary]:focus {
  background: var(--bg-dark) !important;
  border-color: var(--clr-primary) !important;
}

[data-button-type=white] {
  background: var(--wht-solid) !important;
  border-color: var(--wht-solid) !important;
  color: var(--txt-solid) !important;
}
[data-button-type=white]:hover, [data-button-type=white]:focus {
  background: var(--clr-secondary) !important;
  border-color: var(--clr-secondary) !important;
}

[data-button-type=black] {
  background: var(--txt-solid) !important;
  border-color: var(--txt-solid) !important;
  color: var(--wht-solid) !important;
}
[data-button-type=black]:hover, [data-button-type=black]:focus {
  background: var(--clr-secondary) !important;
  border-color: var(--clr-secondary) !important;
}

section {
  position: relative;
  padding-block: 3.5em;
  z-index: 1;
  background: var(--bg-solid);
  color: var(--clr-txt);
}
@media (min-width: 768px) {
  section {
    padding-block: 5.5em;
  }
}

[data-background-fill=none] + [data-background-fill=none] {
  padding-block-start: 0;
}

[data-background-fill=wht] {
  background: var(--wht-solid);
}
[data-background-fill=wht] + [data-background-fill=wht] {
  padding-block-start: 0;
}

[data-background-fill=blk] {
  background: var(--txt-solid);
  color: var(--bg-light);
}
[data-background-fill=blk] + [data-background-fill=blk] {
  padding-block-start: 0;
}

[data-background-fill=primary] {
  background: var(--clr-primary);
}
[data-background-fill=primary] :is(h1, h2, h3, h4, h5, h6, p, li, a) {
  color: var(--txt-dark);
}
[data-background-fill=primary] :is(h1, h2, h3, h4, h5, h6, p, li, a) span.letter--hold {
  color: var(--txt-dark);
}
[data-background-fill=primary] + [data-background-fill=primary] {
  padding-block-start: 0;
}

[data-background-fill=secondary] {
  --bg-light: var(--clr-tertiary);
  --bg-dark: var(--wht-solid);
  --bg-solid: var(--clr-secondary);
  --txt-light: var(--clr-tertiary);
  --txt-dark: var(--clr-primary);
  --txt-solid: var(--clr-primary);
}
[data-background-fill=secondary] :is(h1, h2, h3, h4, h5, h6, p, li) {
  color: var(--clr-primary);
}
[data-background-fill=secondary] + [data-background-fill=secondary] {
  padding-block-start: 0;
}

[data-background-fill=tertiary] {
  background: var(--clr-tertiary);
  color: var(--clr-secondary);
}
[data-background-fill=tertiary] + [data-background-fill=tertiary] {
  padding-block-start: 0;
}

[data-background-fill]:not([data-background-fill=none]) {
  margin-inline: var(--margin-edge);
  width: calc(100% - var(--margin-edge) * 2);
  border-radius: var(--border-round-sm);
}

@media (min-width: 768px) {
  .row {
    --bs-gutter-x: 1rem;
  }
}

.col--holder {
  margin-block-start: 2em;
}
@media (min-width: 768px) {
  .col--holder {
    background: var(--txt-dark);
    padding: 4em;
    margin-block-start: 6em;
    margin-block-end: 4em;
  }
}

section.contact--drawer {
  padding: 0;
  position: fixed;
  bottom: -100%;
  background: transparent !important;
  transition: all 320ms ease-in-out;
}
section.contact--drawer.contact--display {
  bottom: 0;
  transition: all 320ms ease-in-out;
}
section.contact--drawer span.wpcf7-not-valid-tip {
  position: absolute;
}
section.contact--drawer .row {
  padding: 1.5vw;
  margin-inline: calc(var(--margin-edge) * -1);
}
section.contact--drawer .row p {
  margin: 0;
}
section.contact--drawer .row p:before {
  content: none;
}
section.contact--drawer .row label {
  color: var(--txt-light);
}
section.contact--drawer span {
  color: var(--txt-light);
}
section.contact--drawer .drawer--item {
  border-radius: min(50vw, 20px);
  padding: 0.5vw;
  background: var(--bg-light);
  border: none;
}
section.contact--drawer .item--holder {
  position: relative;
}
section.contact--drawer .item--holder textarea {
  resize: none;
}
section.contact--drawer .item--holder > label {
  position: absolute;
  z-index: 10;
  left: 1em;
  top: 20%;
  transform: translateY(0);
  transition: all 320ms ease-in-out;
  color: var(--bg-dark);
  margin: 0;
  padding: 0;
}
section.contact--drawer .item--holder.form--filled > label {
  top: -30px;
  transition: all 320ms ease-in-out;
  color: var(--bg-light);
  transform: translateY(0);
}
section.contact--drawer input.button.button__secondary {
  background: transparent;
  border: none;
}

span.button {
  background: transparent;
  color: var(--txt-light);
  border: 1px solid var(--bg-light);
  position: relative;
  border-radius: 50vw;
}
span.button:has(svg) {
  padding: 0.75em 4em 0.8em 2em;
}
span.button:has(svg) svg {
  margin-inline-start: 0.5em;
  position: absolute;
  top: 50%;
  right: 2em;
  opacity: 1;
  transform: translateY(-50%);
}
span.button:has(svg) svg[data-fa-pseudo-element="::before"] {
  right: 3em;
  opacity: 0;
}
span.button:has(svg) svg path {
  fill: var(--bg-light);
}
span.button input {
  color: var(--txt-light);
}
span.button:before, span.button:after {
  content: "\f061";
  font-family: var(--font-fa-main);
  display: none;
  margin-inline-start: 0.5em;
  position: absolute;
  right: 0;
}
span.button svg {
  margin-inline-start: 0.5em;
  position: absolute;
  top: 50%;
  right: 2em;
  opacity: 1;
  transform: translateY(-50%);
}
span.button svg[data-fa-pseudo-element="::before"] {
  right: 3em;
  opacity: 0;
}
span.button:hover, span.button:focus {
  transition: all 320ms ease-in-out;
}
span.button:hover svg, span.button:focus svg {
  margin-inline-start: 0.5em;
  position: absolute;
  top: 50%;
  right: 1em;
  opacity: 0;
  transition: all 200ms ease-in-out;
  transform: translateY(-50%);
}
span.button:hover svg[data-fa-pseudo-element="::before"], span.button:focus svg[data-fa-pseudo-element="::before"] {
  right: 2em;
  opacity: 1;
  transition: all 200ms ease-in-out;
}

header {
  padding-block: 3vh;
}
header img.logo--header {
  max-width: 180px;
}
header ul#menu-main-navigation {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 2em;
  list-style: none;
  margin: 0;
  padding: 0;
}
header ul#menu-main-navigation li {
  position: relative;
}
header ul#menu-main-navigation li a.nav__link {
  text-decoration: none;
  color: var(--txt-dark);
  overflow: hidden;
  display: block;
  margin: 0.5em;
  word-break: auto-phrase;
}
header ul#menu-main-navigation li a.nav__link:has(:not(ul.sub--menu__level--1)) {
  text-wrap: nowrap;
}
header ul#menu-main-navigation li a.nav__link:after {
  content: "";
  width: 0%;
  height: 2px;
  background: var(--txt-light);
  display: block;
  transition: all 200ms ease-in-out;
}
header ul#menu-main-navigation li a.nav__link span[data-link-letter] {
  position: relative;
  overflow: hidden;
  transition: none;
  top: 0em;
  transition-delay: calc(var(--transition-delay) * var(--anim-delay-fast));
  color: var(--txt-dark);
}
header ul#menu-main-navigation li a.nav__link span[data-link-letter]:after {
  content: attr(data-link-letter);
  position: absolute;
  display: block;
  left: 0;
  top: 1.65em;
}
header ul#menu-main-navigation li:hover a.nav__link:after, header ul#menu-main-navigation li:focus a.nav__link:after {
  content: "";
  width: 100%;
  height: 2px;
  transition: all 200ms ease-in-out;
}
header ul#menu-main-navigation li:hover a.nav__link span[data-link-letter], header ul#menu-main-navigation li:focus a.nav__link span[data-link-letter] {
  top: -1.65em;
  transition: all 200ms ease-in-out;
  transition-delay: calc(var(--transition-delay) * var(--anim-delay-fast));
}
header span[data-arrow] {
  width: 40px;
  height: 40px;
  display: block;
  position: absolute;
  background: var(--clr-tertiary);
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
  animation: arrow-reveal 320ms ease-in forwards;
}
header .menu li.nav__item {
  position: relative;
}
header .menu li.nav__item ul.sub--menu__level--1 {
  display: none;
  position: absolute;
  left: -1em;
  z-index: 99;
  background: var(--clr-primary);
  text-align: left;
  list-style: none;
  margin: 0;
  padding: 0.5em 1em;
  width: min(320px, 20vw);
}
header .menu li.nav__item ul.sub--menu__level--1:before {
  content: "";
  width: 20px;
  height: 20px;
  background: var(--clr-primary);
  position: absolute;
  display: block;
  transform: rotate(45deg);
  top: -5px;
  left: 2.8em;
}
header .menu li.nav__item ul.sub--menu__level--1 > * {
  font-size: clamp(20px, 1.05em, 1.5vw);
}
header .menu li.nav__item ul.sub--menu__level--1 > * > ul.sub--menu__level--2 {
  display: none;
  position: absolute;
  left: calc(100% + 0.75em);
  top: -60px;
  z-index: 99;
  background: var(--clr-secondary);
  text-align: left;
  list-style: none;
  margin: 0;
  padding: 0.5em 1em;
  width: min(320px, 20vw);
}
header .menu li.nav__item ul.sub--menu__level--1 > * > ul.sub--menu__level--2 a {
  color: var(--clr-primary) !important;
  font-size: clamp(20px, 0.85em, 1.5vw) !important;
}
header .menu li.nav__item ul.sub--menu li a.nav__link::after {
  content: none !important;
}
header .menu li.nav__item ul.sub--menu li:hover a.nav__link {
  color: var(--clr-tertiary) !important;
}
header .menu li.nav__item ul.sub--menu li:hover > ul.sub--menu__level--2 > li a.nav__link {
  color: var(--clr-primary) !important;
}
header .menu li.nav__item ul.sub--menu li:hover > ul.sub--menu__level--2 > li:hover a.nav__link {
  color: var(--clr-tertiary) !important;
}
header .menu li.nav__item ul.sub--menu li:hover::after {
  content: none !important;
}
header .menu li.nav__item:hover > ul.sub--menu__level--2:before {
  content: "";
  width: 20px;
  height: 20px;
  position: absolute;
  background: var(--clr-secondary);
  display: block;
  left: -6px;
  z-index: 99999;
  transform: rotate(45deg);
  top: 3.25em;
}
@media (max-width: 991px) {
  header span.nav--display {
    display: none;
  }
  header span.nav--display.nav--active {
    position: absolute;
    right: 0.5em;
    top: 2.5em;
    background: var(--bg-light);
    width: 60vw;
    z-index: 99;
    border-radius: var(--border-round-lg);
  }
  header span.nav--display ul#menu-main-navigation {
    display: flex;
    justify-content: flex-end;
    align-items: flex-start;
    flex-direction: column;
    flex-wrap: wrap;
    gap: 0.5em;
    list-style: none;
    margin: 0;
    padding: 1em;
  }
}

footer .footer--main {
  background: var(--bg-dark);
  border-radius: var(--border-round-sm) var(--border-round-sm) var(--border-round-lg) var(--border-round-lg);
  padding-block: 6vh;
  padding-inline: 2vw;
}
@media (max-width: 767px) {
  footer .footer--main {
    padding-block: 4vh;
    padding-inline: 5vw;
    margin-inline: -4vw;
  }
}
footer img.logo--footer {
  max-width: 180px;
}
footer .row--footer h3 a,
footer .row--footer span.h3 a {
  color: var(--clr-primary);
}
footer .row--footer h3 a:hover, footer .row--footer h3 a:focus,
footer .row--footer span.h3 a:hover,
footer .row--footer span.h3 a:focus {
  color: var(--clr-tertiary);
}
footer span.nav--section__title {
  border-top: 0.2em solid var(--clr-primary);
  width: 100%;
  display: block;
  padding-block: 1em;
  color: var(--bg-solid);
  font-size: 130%;
}
footer ul#menu-footer {
  display: flex;
  gap: 1em;
}
footer ul#menu-footer li a {
  text-decoration: none;
  color: var(--txt-solid);
}
footer ul#menu-footer li a:hover, footer ul#menu-footer li a:focus {
  color: var(--txt-light);
}
footer ul.footer__nav,
footer ul.menu {
  margin: 0;
  padding: 0;
  list-style: none;
}
footer ul.footer__nav li a.nav__link,
footer ul.menu li a.nav__link {
  text-decoration: none;
  color: var(--bg-solid);
  overflow: hidden;
  display: inline-block;
  margin: 0;
  font-size: clamp(16px, 0.8em, 2vw);
  padding-block-end: 0.25em;
}
footer ul.footer__nav li a.nav__link:after,
footer ul.menu li a.nav__link:after {
  content: "";
  width: 0%;
  height: 2px;
  background: var(--txt-light);
  display: block;
  transition: all 200ms ease-in-out;
}
footer ul.footer__nav li a.nav__link span.word,
footer ul.menu li a.nav__link span.word {
  display: inline-block;
  overflow: hidden;
  line-height: 1.2;
}
footer ul.footer__nav li a.nav__link span[data-link-letter],
footer ul.menu li a.nav__link span[data-link-letter] {
  position: relative;
  overflow: hidden;
  top: 0em;
  color: var(--bg-solid);
  transition-delay: calc(var(--transition-delay) * var(--anim-delay-fast));
}
footer ul.footer__nav li a.nav__link span[data-link-letter]:after,
footer ul.menu li a.nav__link span[data-link-letter]:after {
  content: attr(data-link-letter);
  position: absolute;
  display: block;
  left: 0;
  top: 1.65em;
}
footer ul.footer__nav li:hover a.nav__link:after, footer ul.footer__nav li:focus a.nav__link:after,
footer ul.menu li:hover a.nav__link:after,
footer ul.menu li:focus a.nav__link:after {
  content: "";
  width: 100%;
  height: 2px;
  transition: all 200ms ease-in-out;
}
footer ul.footer__nav li:hover a.nav__link span[data-link-letter], footer ul.footer__nav li:focus a.nav__link span[data-link-letter],
footer ul.menu li:hover a.nav__link span[data-link-letter],
footer ul.menu li:focus a.nav__link span[data-link-letter] {
  top: -1.65em;
  transition: all 200ms ease-in-out;
  transition-delay: calc(var(--transition-delay) * var(--anim-delay-fast));
}
footer p, footer li {
  padding: 0;
  margin: 0;
  color: var(--bg-solid);
  font-size: clamp(16px, 0.8em, 2vw);
  line-height: 1.5;
}
footer p:before, footer li:before {
  content: none;
}
footer .footer--copyright {
  display: flex;
  gap: 1em;
  justify-content: flex-end;
}
@media (max-width: 767px) {
  footer .footer--copyright {
    display: flex;
    gap: 0em;
    justify-content: flex-start;
    flex-direction: column;
    align-items: flex-start;
  }
}

.select--holder {
  background: none;
  color: var(--txt-solid);
  border: 0.25em solid var(--clr-primary);
  border-radius: 50vw;
  display: inline-block;
  position: relative;
  overflow: hidden;
  width: auto;
  text-decoration: none;
  cursor: pointer;
  padding: 0;
}
.select--holder .form-control {
  padding: 0.75em 4em 0.8em 2em;
  border: 0;
  background: #fff;
}
.select--holder:before, .select--holder:after {
  content: "\f061";
  font-family: var(--font-fa-main);
  display: none;
  margin-inline-start: 0.5em;
  position: absolute;
  right: 0;
}
.select--holder svg {
  margin-inline-start: 0.5em;
  position: absolute;
  top: 50%;
  right: 2em;
  opacity: 1;
  transform: translateY(-50%);
}
.select--holder svg[data-fa-pseudo-element="::before"] {
  right: 3em;
  opacity: 0;
}
.select--holder:hover, .select--holder:focus {
  transition: all 320ms ease-in-out;
}
.select--holder:hover svg, .select--holder:focus svg {
  margin-inline-start: 0.5em;
  position: absolute;
  top: 50%;
  right: 1em;
  opacity: 0;
  transition: all 200ms ease-in-out;
  transform: translateY(-50%);
}
.select--holder:hover svg[data-fa-pseudo-element="::before"], .select--holder:focus svg[data-fa-pseudo-element="::before"] {
  right: 2em;
  opacity: 1;
  transition: all 200ms ease-in-out;
}

.drawer--nav {
  position: relative;
  width: 100%;
  padding-inline: 5vw !important;
  margin-right: auto;
  margin-left: auto;
}
@media (min-width: 992px) {
  .drawer--nav {
    width: 100%;
    padding-inline: 5vw !important;
    margin-right: auto;
    margin-left: auto;
  }
}
.drawer--nav .drawer--close {
  width: 30px;
  height: 30px;
  position: absolute;
  right: 6.5vw;
  top: 20px;
}
.drawer--nav .drawer--close svg > path {
  fill: var(--clr-primary);
}
@media (max-width: 991px) {
  .drawer--nav .drawer--close {
    right: 5vw;
  }
}

form {
  position: relative;
}
form.wpcf7-form.sent .wpcf7-response-output {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 3;
  border-color: none !important;
  border: none !important;
  color: var(--clr-primary);
  font-size: 1.4em;
  width: 100%;
  padding-inline: 5vw !important;
  margin-right: auto;
  margin-left: auto;
  width: 80%;
}
@media (min-width: 992px) {
  form.wpcf7-form.sent .wpcf7-response-output {
    width: 100%;
    padding-inline: 5vw !important;
    margin-right: auto;
    margin-left: auto;
    width: 90%;
  }
}
form.wpcf7-form.sent .row > * {
  opacity: 0;
}

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

.screen-reader-text:focus {
  background-color: #ddd;
  clip: auto !important;
  -webkit-clip-path: none;
  clip-path: none;
  color: #444;
  display: block;
  font-size: 1em;
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
}

/*
  Back-ported hand edits.

  These rules existed only in the compiled assets/css/core.css — they were
  added directly to the compiled file over time and were never in the SCSS
  source, so any full recompile silently deleted them. Back-ported July 2026.

  This partial is loaded LAST in core.scss on purpose: the rules were
  appended to the end of the compiled file, so keeping them last preserves
  the original cascade order. New styles belong in the proper partials,
  not here.
*/
h2,
h3.title--animation {
  position: relative;
}
h2:before,
h3.title--animation:before {
  content: "";
  display: block;
  position: absolute;
  left: -2.7vw;
  top: 0.14em;
  height: 5.1vw;
  width: 0.15em;
  background: var(--txt-light);
}

.article--text h4,
.article--text h5,
.article--text h3 {
  color: var(--clr-primary);
}

a.button__accordion {
  background: var(--clr-primary) !important;
  color: var(--wht-solid) !important;
  padding: 0.35em 1em;
  border: 0.135em solid var(--clr-primary) !important;
  font-size: 0.85em;
  margin-bottom: 0;
}
a.button__accordion:hover {
  background: var(--bg-solid) !important;
  color: var(--wht-solid) !important;
  border: 0.135em solid var(--bg-solid) !important;
  transition: all 320ms ease-in-out;
}

.button__contact {
  background: var(--clr-secondary);
  color: var(--clr-primary);
  border-radius: 20px;
  border: 1px solid var(--clr-primary);
  padding: 6px 38px;
  text-align: center;
}
.button__contact:hover {
  background: var(--clr-primary);
  color: var(--clr-secondary);
  transition: all 320ms ease-in-out;
}

header ul.menu li.has-child:after {
  color: #2f3b48;
  content: "▾";
  position: absolute;
  top: 9px;
}

header .menu li.nav__item ul.sub--menu__level--1 > * > ul.sub--menu__level--2 li {
  line-height: 0.95em;
}

.nav--trigger i {
  font-size: 1.4em;
}

.nav--mobile__items {
  display: flex;
  flex-direction: column;
  gap: 1.5em;
}
.nav--mobile__items span {
  display: block;
  color: var(--txt-dark);
  font-size: 1.3em;
  cursor: pointer;
}
.nav--mobile__items ul {
  list-style-type: none;
}
.nav--mobile__items ul.menu li.has-child:after {
  content: "";
}
.nav--mobile__items ul.menu li ul.sub--menu {
  display: none !important;
}
.nav--mobile__items ul.menu li ul.sub--menu.mobile--submenu--open {
  display: block !important;
}

footer a.footer-link {
  color: var(--bg-solid);
}
footer a.footer-link:hover {
  color: var(--clr-primary);
}

.pagination ul {
  list-style-type: none;
}
.pagination ul li {
  float: left;
  padding-right: 15px;
}
.pagination ul li a {
  color: var(--clr-secondary);
}
.pagination ul li a:hover {
  text-decoration: underline;
  color: var(--clr-primary);
}

section.single .container--main {
  padding-inline: 1.75vw;
}
section.single .container--main .single__header--title {
  border-radius: 0 15px 0 0;
}

.location--holder i.fa-classic,
.contact--details i.fa-classic {
  color: var(--clr-primary);
  font-weight: 500;
}

.location--holder i.fa-phone,
.location--holder i.fa-envelope,
.contact--details i.fa-mobile,
.contact--details i.fa-phone,
.contact--details i.fa-envelope {
  padding-right: 1em;
}

.location--holder span.address-span {
  margin-left: 1.5em;
}

section.contact--drawer span.button {
  padding: 8px 22px;
  text-align: center;
}

.wpcf7-spinner {
  width: 1px;
  margin: 0 !important;
}

.wpcf7 form.invalid .wpcf7-response-output {
  background-color: #fff;
}

.wpcf7-form-control-wrap input,
.wpcf7-form-control-wrap textarea {
  padding: 8px 12px;
  margin-bottom: 12px;
  border-radius: 20px;
  background: var(--clr-primary);
  border: none;
  color: var(--blk-solid);
}
.wpcf7-form-control-wrap input::placeholder,
.wpcf7-form-control-wrap textarea::placeholder {
  color: var(--blk-solid);
}

form.wpcf7-form.sent {
  max-height: 460px;
}

.contact-form__close {
  position: absolute;
  top: 2rem;
  right: 2rem;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  z-index: 4;
}
.contact-form__close span {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 28px;
  height: 1.5px;
  background: var(--wht-solid);
  transform-origin: center;
}
.contact-form__close span:first-child {
  transform: translate(-50%, -50%) rotate(45deg);
}
.contact-form__close span:last-child {
  transform: translate(-50%, -50%) rotate(-45deg);
}
@media (max-width: 767px) {
  .contact-form__close {
    top: 1.4rem;
  }
}

.select--holder .form-control option {
  background-color: var(--clr-primary);
  font-family: var(--font-body);
}

@media (max-width: 767px) {
  .morder-0 {
    order: 0;
  }
  .morder-1 {
    order: 1;
  }
  .morder-2 {
    order: 2;
  }
  .morder-3 {
    order: 3;
  }
  .morder-4 {
    order: 4;
  }
  .morder-5 {
    order: 5;
  }
  .morder-6 {
    order: 6;
  }
  .morder-7 {
    order: 7;
  }
}
