:root {
	--wrapper-width: 1100px;
	--wrapper-gutter: 1em;

	--brand-primary: var(--color-blue);
	--brand-secondary: var(--color-green);
	--brand-accent: var(--color-teal);
}

@media only screen and (min-width: 768px) {
	:root {
		--wrapper-gutter: 2em;
	}
}

/* Tailwind for all utility classes */
:root {
  --font-family-body: museo-sans-rounded,Helvetica,Helvetica Neue,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;
  --font-family-heading: Meta Serif Pro,serif;
  --color-black: #242F3A;
  --color-white: #ffffff;
  --color-blue: #37A3E2;
  --color-darkBlue: #3A76C3;
  --color-green: #C4D82E;
  --color-teal: #00B0AD;
  --color-error: #d81e1e;
  --color-warning: #ff6700;
  --color-success: #4bb543
}

*, ::before, ::after {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  
}

::backdrop {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  
} 

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

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

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */

html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

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

/**
 * Remove the margin in all browsers.
 */

body {
  margin: 0;
}

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

/**
 * Add the correct box sizing in Firefox.
 */

hr {
  box-sizing: content-box;
  height: 0;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

pre {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

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

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, Opera, and Safari.
 */

abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  text-decoration: underline dotted; /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */

b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */

small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

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

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */

button,
input,
optgroup,
select,
textarea {
  font: inherit;
  font-family: inherit; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}

/**
 * Remove the inheritance of text transform in Edge and Firefox.
 * 1. Remove the inheritance of text transform in Firefox.
 */

button,
select { /* 1 */
  text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */

button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */

fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * Remove the padding so developers are not caught out when they zero out `fieldset` elements in all browsers.
 */

legend {
  padding: 0;
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */

progress {
  vertical-align: baseline;
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */

[type="search"] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */

[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

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

/*
 * Add the correct display in Edge and Firefox.
 */

details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */

summary {
  display: list-item;
} 
/*  box-sizing rules */
*,
*:before,
*:after {
  box-sizing: border-box;
}

/*  reset background to most used values */
*,
*:before,
*:after {
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
}

/*  remove default margin */
body,
h1, h2, h3, h4,
p,
ul[class],
ol[class],
li,
figure, figcaption,
blockquote,
dl, dd {
  margin: 0;
}

/*  remove default padding & list style, only if role applied */
/*  @see for why using role https://www.scottohara.me/blog/2019/01/12/lists-and-safari.html */
ul[role="list"],
ol[role="list"] {
  list-style: none;
}

/*  set body defaults */
/**
 * 1. Force scrollbars to always be visible to prevent awkward ‘jumps’ when
 *    navigating between pages that do/do not have enough content to produce
 *    scrollbars naturally.
 * 2. Ensure the page always fills at least the entire height of the viewport.
 * 3. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
  overflow-y: scroll; /* [1] */
  min-height: 100%; /* [2] */
  -webkit-text-size-adjust: 100%; /* [3] */
}

/* Set core body defaults */
body {
  min-height: 100vh;
  text-rendering: optimizeSpeed;
  -webkit-font-smoothing: antialiased;
}

/*  show cursor for interactive elements */
a,
button {
  cursor: pointer;
}

/*  Fluid images for responsive purposes. */
img,
picture {
  max-width: 100%; 
  height: auto;
  vertical-align: middle;
  object-fit: cover;
}

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

/*  Ensure hidden elements are hidden. */
/*  (Opinionated) !important used so that components can't accidentally make them visible. */
template,
[hidden] {
  display: none !important;
}

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

/* Include Library styles  */
/* Slick Slider */

.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -webkit-touch-callout: none;
  /*-webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;*/
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
}

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0;
}
.slick-list:focus {
  outline: none;
}
.slick-list.dragging {
  cursor: pointer;
  cursor: hand;
}
.slick-list.draggable {
    cursor: -webkit-grab;
    cursor: grab;
}
.slick-list.draggable:active {
    cursor: grabbing;
}

.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: flex;
  margin-left: auto;
  margin-right: auto;
}
.slick-track:before, .slick-track:after {
  content: "";
  display: table;
}
.slick-track:after {
  clear: both;
}
.slick-loading .slick-track {
  visibility: hidden;
}

.slick-slide {
  min-height: 1px;
  display: none;
}

.slick-slide > div,
.slick-slide > div > div {
    height: 100%;
}

[dir=rtl] .slick-slide {
  float: right;
}
.slick-slide img {
  display: block;
}
.slick-slide.slick-loading img {
  display: none;
}
.slick-slide.dragging img {
  pointer-events: none;
}
.slick-initialized .slick-slide {
  display: block;
}
.slick-loading .slick-slide {
  visibility: hidden;
}
.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent;
}

.slick-arrow.slick-hidden {
  display: none;
}


/* Theme styles  */

.slick-arrow.slick-prev {
    display: none !important;
}

.slick-arrow.slick-next {
    /*  reset button styles  */
    padding: 0;
    border: none;
    margin: 0;

    background: none;
    color: inherit;
    font-weight: inherit;
    text-transform: inherit;
    text-align: left;


    /*  add other styles  */

    --button-size: 55px;

    display: flex;
    width: var(--button-size);
    height: var(--button-size);

    justify-content: center;
    align-items: center;

    border-radius: 50%;
    box-shadow: 2px 6px 6px rgba(0,0,0,0.16);

    color: #707070;
    background-color: white;
}

@media only screen and (max-width: 600px) {
  .slick-arrow.slick-next {
    --button-size: 45px;
  }
}

.slick-arrow.slick-next svg {
    display: block;
    width: 50%;
    height: 50%;

    /*  optically center  */
    transform: translateX(10%);
}

.slick-dots {
    display: flex;
    justify-content: center;
    align-items: center;  

    gap: 1rem;  
}

.slick-dots li {
    list-style-type: none;
}

.slick-dots button {
    /*  reset button styles  */
    padding: 0;
    border: none;
    margin: 0;

    background: none;
    color: inherit;
    font-size: 0;
    font-weight: inherit;
    text-transform: inherit;
    text-align: left;

    --dot-size: 18px;
    width: var(--dot-size);
    height: var(--dot-size);

    border-radius: 50%;

    background-color: var(--color-white);

    transition: background-color 0.1s ease;
}

.slick-dots .slick-active button {
    background-color: var(--color-blue);
} 

/* Base theme styling  */
:root {
    /*  expect an overlap by default - most templates use it and can be turned off on ones that don't */
    --footer-overlap: 5rem;

    --brand-gradient-color-stops: #00A9E6, #00B7AF 35%, #00B7AF 44%, #C3D82E 90%, #C3D82E 100%;

    /* image backgrounds */
    --swirl: url(https://4511578.fs1.hubspotusercontent-na1.net/hubfs/4511578/raw_assets/public/Purbeck%202024/images/backgrounds/brand-swirl-white.svg);
}

@font-face {
    font-family: 'Meta Serif Pro';
    src: url("https://4511578.fs1.hubspotusercontent-na1.net/hubfs/4511578/raw_assets/public/Purbeck%202024/fonts/meta-serif/metaserifpro-book.woff2") format('woff2'),
         url("https://4511578.fs1.hubspotusercontent-na1.net/hubfs/4511578/raw_assets/public/Purbeck%202024/fonts/meta-serif/metaserifpro-book.woff") format('woff');
    font-weight: 400;
    font-style: normal;
}

@font-face {
    font-family: 'Meta Serif Pro';
    src: url("https://4511578.fs1.hubspotusercontent-na1.net/hubfs/4511578/raw_assets/public/Purbeck%202024/fonts/meta-serif/metaserifpro-bookitalic.woff2") format('woff2'),
         url("https://4511578.fs1.hubspotusercontent-na1.net/hubfs/4511578/raw_assets/public/Purbeck%202024/fonts/meta-serif/metaserifpro-bookitalic.woff") format('woff');
    font-weight: 400;
    font-style: italic;
}

body:not(.hs-blog-post) {
    overflow: hidden;
}

.grid-cols-15 {
	gap: 1rem;
}

.inline-link {
	color: inherit;
}

.grid-auto-rows {
    grid-auto-rows: min-content;
}

/*// Reset Button */ 
/*// Turns off all general button styles */
.reset-button {
    padding: 0;
    border: none;
    margin: 0;

    background: none;
    color: inherit;
    font-weight: inherit;
    text-transform: inherit;
    text-align: left;
} 
/*  Generic base styles, can be used across whole site */

html {
	
}

body {
	font-family: var(--font-family-body);
	font-size: 1.125em;
	font-weight: 500;
	color: var(--color-black);
	line-height: 1.5;
}

main:focus {
  outline: none;
}


/*  high contrast selection style */
::selection {
	background: rgba(0,0,0,0.99);
	color: #FFFFFF;
}

img::selection {
	background: rgba(0,0,0,0.75);
}


/**
 * Heading styles.
 * Class version can be used to style a h1 as a h2 for semantic purposes.
 */
h1, h2, h3, h4,
.h1, .h2, .h3, .h4 {
	font-family: var(--font-family-heading);
	font-weight: 400;
	line-height: 1.1;
	text-wrap: balance;
}

.heading-font-sans-serif > :is(h1, h2, h3, h4) {
	font-family: var(--font-family-body);
	font-weight: bold;
}

p {
	text-wrap: pretty;
}

.headline {
	
}

.lede {
	
}

h1, .h1 {
	font-size: 2.77em;
	line-height: 1.25;
}

h2, .h2 {
	font-size: 2em;
}

h3, .h3 {
	font-size: 1.5em;
}

h4, .h4 {
	font-size: 1em;
}

@media only screen and (max-width: 767px) {
	h1, .h1 {
		font-size: 2.2em;
	}

	h2, .h2 {
		font-size: 1.5em;
	}

	h3, .h3 {
		font-size: 1.25em;
	}
}


/*  Global links */
a:not([class]) {
	color: inherit;
}


figcaption {
	margin-top: 1rem;

	font-size: 0.9em;
	font-style: italic;
}


/* General table styles */
table {
	border-collapse: collapse;
	border-spacing: 0;
}

/* Relative padding and thin border */
table :is(th, td) {
	padding: 0.25em 0.5em;
	border: 1px solid rgba(0,0,0,0.4);

	text-align: left;
}

ul:not([class]) > li,
ol:not([class]) > li {
	margin-top: 0.75rem;
}

.body-container-wrapper {
	background-color: white;
} 

/* Include HubSpot DND styles  */


/* CSS variables */

:root {
  --column-gap: 2.13%;
  --column-width-multiplier: 8.333;
}

/* Mobile layout */

.row-fluid {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
}


  .row-fluid .span1,
  .row-fluid .span2,
  .row-fluid .span3,
  .row-fluid .span4,
  .row-fluid .span5,
  .row-fluid .span6,
  .row-fluid .span7,
  .row-fluid .span8,
  .row-fluid .span9,
  .row-fluid .span10,
  .row-fluid .span11,
  .row-fluid .span12{
  min-height: 1px;
  width: 100%;
}

/* Desktop layout */

@media (min-width: 768px) {
  .row-fluid {
    flex-wrap: nowrap;
    justify-content: space-between;
  }

  
    .row-fluid .span1 {
      width: calc(var(--column-width-multiplier) * 1% * 1 - var(--column-gap) * (11 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span2 {
      width: calc(var(--column-width-multiplier) * 1% * 2 - var(--column-gap) * (10 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span3 {
      width: calc(var(--column-width-multiplier) * 1% * 3 - var(--column-gap) * (9 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span4 {
      width: calc(var(--column-width-multiplier) * 1% * 4 - var(--column-gap) * (8 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span5 {
      width: calc(var(--column-width-multiplier) * 1% * 5 - var(--column-gap) * (7 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span6 {
      width: calc(var(--column-width-multiplier) * 1% * 6 - var(--column-gap) * (6 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span7 {
      width: calc(var(--column-width-multiplier) * 1% * 7 - var(--column-gap) * (5 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span8 {
      width: calc(var(--column-width-multiplier) * 1% * 8 - var(--column-gap) * (4 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span9 {
      width: calc(var(--column-width-multiplier) * 1% * 9 - var(--column-gap) * (3 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span10 {
      width: calc(var(--column-width-multiplier) * 1% * 10 - var(--column-gap) * (2 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span11 {
      width: calc(var(--column-width-multiplier) * 1% * 11 - var(--column-gap) * (1 * var(--column-width-multiplier) / 100));
    }
  
} 

/* Generic reusable objects  */
/* 
 Global wrapping container styles
 */

.wrapper {
	max-width: calc( var(--wrapper-width) + var(--wrapper-gutter) * 2 );
	margin-inline: auto;
	padding-inline: var(--wrapper-gutter);
}
/*
 Add space between sibling elements for flowing content
 */

.flow > * + *,
.flow > * + ul[class],
.flow > * + ol[class] {
	margin-block-start: var(--flow-space, 1em);
}

.flow > :is(h1, h2, h3, h4, h5, h6) {
	--flow-space: 2em;
}

/* Increase space around images and tables  */
.flow > :is(figure, img, table),
.flow > :is(figure, img, table) + * {
	--flow-space: 3em;
}
/* 
Aspect ratio container
Will always keep content inside constrained to a ratio

Default ratio is a square (1:1)
*/

.ratio {
	/* Set the ratio, e.g. 1:1, 3:4, 16:9 */
	--ratio-numerator: 1;
	--ratio-denominator: 1;

	position: relative;
	display: block;
}

.ratio:before {
	content: "";
	display: block;
	width: 100%;
	padding-top: calc( var(--ratio-denominator) / var(--ratio-numerator) * 100% );
}

.ratio > .ratio__content,
.ratio > iframe,
.ratio > embed,
.ratio > object {
	position: absolute;
	inset: 0;

	display: block;
	width: 100%;
	height: 100%;

	object-fit: cover;
}

/*
	Vimeo videos are pushed off center if object-fit is set
	Safari only bug
 */
.ratio > iframe[src*="vimeo"] {
	object-fit: unset;
}

.ratio--16-9 {
	--ratio-numerator: 16;
	--ratio-denominator: 9;
}

.ratio--4-3:before {
	--ratio-numerator: 4;
	--ratio-denominator: 3;
}
/* All general purpose form styling  */

form {
	--input-bg-color: #E6E6E6;

	text-align: left;
}

form > fieldset {
	max-width: 100% !important;
}

.hs-form-field {
	position: relative;
	z-index: 0;
}

form > fieldset + fieldset {
	margin-top: 1rem !important;
}
.hs-form-field + .hs-form-field {
	margin-top: 1rem;
}

.hs-input:not([type="radio"]):not([type="checkbox"]) {
	display: block;
	width: 100%;
    height: calc(3.5rem + 2px);

	padding: 1rem 1rem;
	border: none;
	border-radius: 12px;
	outline-color: var(--brand-primary);

	font: inherit;
	font-size: 1rem;
    line-height: 1.25;

	background-color: var(--input-bg-color);
	color: var(--color-black);
}

.hs-input.hs-fieldtype-textarea.hs-fieldtype-textarea.hs-fieldtype-textarea {
	height: calc(10.5rem + 2px);

	line-height: 1.3;
}

.hs-input:not([type="radio"]):not([type="checkbox"]):focus,
.hs-input:not([type="radio"]):not([type="checkbox"]):not(:placeholder-shown) {
	padding-block: 1.625rem .625rem;
}

.hs-input.hs-fieldtype-textarea.hs-fieldtype-textarea.hs-fieldtype-textarea:focus,
.hs-input.hs-fieldtype-textarea.hs-fieldtype-textarea.hs-fieldtype-textarea:not(:placeholder-shown) {
	padding-block: 2.1rem .625rem;
}

select.hs-input {
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right .75rem center;
    background-size: 16px 12px;

    -webkit-appearance: none;
    appearance: none;
}

select {
	display: block;
	width: 100%;
}

label:not(.hs-form-booleancheckbox-display):not(.hs-error-msg) {
	position: absolute;
	top: 0;
	bottom: 0;
	z-index: 1;

	display: block;
	width: 100%;
	height: 100%;

	padding: 1rem 1rem;
	border: 1px solid transparent;

	font-size: 1rem;
	font-weight: 700;
	white-space: nowrap;

	color: hsl(210, 18%, 50%);

	pointer-events: none;

	transform-origin: top left;
	transition: transform .1s ease-in-out;
}

.hs-form-field:has(.hs-input.hs-fieldtype-textarea.hs-fieldtype-textarea.hs-fieldtype-textarea) label {
	bottom: auto;
	height: auto;

	padding-block: 0.5rem;
	border-radius: 12px;

	background-color: var(--input-bg-color);
}

.hs-form-field:has(.hs-input:not([type="radio"]):not([type="checkbox"]):focus) label:not(.hs-error-msg),
.hs-form-field:has(.hs-input:not([type="radio"]):not([type="checkbox"]):not(:placeholder-shown)) label:not(.hs-error-msg) {
    transform: scale(.85) translateY(-.5rem) translateX(.15rem);
}

.hs-form-field:has(.hs-input.hs-fieldtype-textarea.hs-fieldtype-textarea.hs-fieldtype-textarea:focus) label:not(.hs-error-msg),
.hs-form-field:has(.hs-input.hs-fieldtype-textarea.hs-fieldtype-textarea.hs-fieldtype-textarea:not(:placeholder-shown)) label:not(.hs-error-msg) {
    transform: scale(.85) translateY(1px) translateX(.15rem);
}

.hs-form-field:has(select.hs-input:focus) label:not(.hs-error-msg),
.hs-form-field:has(select.hs-input:not(:placeholder-shown)) label:not(.hs-error-msg) {
    transform: scale(.85) translateY(-.5rem) translateX(.15rem) translateX(1px);
}

.hs-error-msgs.hs-error-msgs {
	margin-top: 0.25rem;
	padding-left: 0;

	color: white;
	font-size: 0.85rem;
	font-weight: bold;
}

.hs-error-msgs > li {
	list-style-type: none;
}

.hs-error-msg {
	color: #ff6700;
}

.hs-submit {
	margin-top: 1.5rem;

	text-align: center;
}

.hs-submit input[type="submit"] {
	--border-width: 2px;
	--base-padding-x: 1.75em;
	--base-padding-y: 0.75em;

	--padding-x: var(--base-padding-x);
	--padding-y: var(--base-padding-y);
  
	display: inline-block;
	padding: var(--padding-y) var(--padding-x);
	border: var(--border-width) solid var(--button-color, #242F3A);
	border-radius: 10px;

    font: inherit;
    font-size: 0.9rem;
    font-weight: 700;
	color: var(--button-color, #242F3A);
	text-decoration: none;
    white-space: nowrap;

	transition: background-color 0.1s ease;

	--padding-x: calc(var(--base-padding-x) + var(--border-width));
    --padding-y: calc(var(--base-padding-y) + var(--border-width));
  
    border: none;
    background-image: linear-gradient(45deg, var(--brand-gradient-color-stops));
    background-size: 100% 300%;
    color: var(--color-white);
    
    transition: background-position 0.3s ease;
    cursor: pointer;
}

.hs-submit input[type="submit"]:hover {
	background-color: transparent;
    color: var(--color-white);
    background-position: top;
}

.hs-form .inputs-list {
	padding-left: 0;
	list-style: none;
}

.hs-form .hs-input[type="checkbox"] {
	--size: 24px;

	appearance: none;

	width: var(--size);
	height: var(--size);

	border-radius: 4px;

	border: 1px solid var(--color-black);
}

.hs-form .hs-input[type="checkbox"]:checked {
	--checkbox-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28'%3E%3Cpath d='M26.109 8.844c0 .391-.156.781-.438 1.062L12.233 23.344c-.281.281-.672.438-1.062.438s-.781-.156-1.062-.438l-7.781-7.781c-.281-.281-.438-.672-.438-1.062s.156-.781.438-1.062l2.125-2.125c.281-.281.672-.438 1.062-.438s.781.156 1.062.438l4.594 4.609 10.25-10.266c.281-.281.672-.438 1.062-.438s.781.156 1.062.438l2.125 2.125c.281.281.438.672.438 1.062z' fill='%23ffffff'/%3E%3C/svg%3E");;

	border-color: var(--color-blue);
	background-color: var(--color-blue);
	background-image: var(--checkbox-icon);
	background-repeat: no-repeat;
	background-position: center;
	background-size: 70%;
}


.hs-form-booleancheckbox-display {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.hs_claims_attestation.hs_claims_attestation {
	margin-block: 2rem;
}

/* Place name fields next to each other when enough width */

.hs-form {
	--fields-column-gap: 2%;
	container: hubspot-form / inline-size;
}


@container hubspot-form (min-width: 400px) {
	.hs-form .hs-firstname,
	.hs-form .hs-lastname,
	.hs-form .hs-company,
	.hs-form .hs-policy_number {
		display: inline-block;
		vertical-align: top;

		width: calc((100% - var(--fields-column-gap)) / 2);
	}

	.hs-form .hs-lastname,
	.hs-form .hs-policy_number {
		margin-left: var(--fields-column-gap);
	}

	.hs-form .hs-lastname {
		margin-top: 0;
	}
}

/* All component elements */
/* Main site header */

.header {
	position: relative;

	padding-block: 2em;

	color: var(--color-white);
  z-index: 2;
}

.header:after {
	content: "";

	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;

	width: 100%;
	height: 100%;

	background-color: rgba(85, 170, 220, 0.79);
}

.header__skip {
	position: absolute !important;
	top: 1em;
	left: 1em;
	z-index: 10;
  
  outline-offset: 3px;
}
.header__skip:focus {
	position: absolute !important;
}
.header__skip span {
	display: inline-block;
	border-radius: 10px;
	padding: 0.5em 0.75em;

	background-color: var(--color-white);
	color: var(--color-blue);

	text-decoration: none;
}

.header__row {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
}

.site-logo-wrap {
	display: block;
	width: 163px; 
	/*	height: 40px; leave to auto, included here for reference */ 
}
.site-logo-wrap img {
	display: block;
	width: 100%;
	object-fit: contain;
}

.header__utils {
  display: grid;
  grid-template-columns: repeat(2, min-content);
  grid-template-areas: "rating rating"
                       "apply login";
  gap: 1em 0.5em;
	font-size: 0.85em;
}

.header__utils .button {
	white-space: nowrap;
}

.header__rating {
  grid-area: rating;
}

.header__rating iframe {
	width: 120% !important;
	transform: translateX(-16.66%);
}

.header__apply {
  grid-area: apply;
}

.header__login {
  grid-area: login;
}

/* Fixed when scrolling down, simplify header state and make shorter */

.header.is-fixed {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 100;

	padding-block: 1.1em;
	box-shadow: 0 1px 4px rgba(0,0,0,0.2);

	backdrop-filter: blur(15px);

	transition: transform 0.15s ease, opacity 0.05s linear, visibility 0s linear 0.05s;
}

.header.is-fixed .header__row.items-end {
	align-items: center !important;
}

.header.is-fixed .header__rating {
	display: none;
}

.header.is-fixed .header__utils {
	grid-template-areas: "apply login";
}

.header.is-fixed.transform-off-canvas {
	transform: translateY(-100%);
}

.header.is-fixed.fade-out {
	opacity: 0;
	visibility: hidden;
}

@media only screen and (max-width: 1150px) {
	.site-logo-wrap {
		width: 140px;
	}

	.header__apply .button,
	.header__login .button {
		font-size: 0.8em;
	}
}

@media only screen and (max-width: 1100px) {
	.header {
		padding-block: 1em;
	}

	.header__row {
		align-items: center;
	}

	.header__utils {
		grid-template-areas: "apply login";
	}

	.header__rating {
		display: none;
	}

	.header .menu.menu--desktop {
		position: fixed;
		top: 0;
		right: 0;
		z-index: 110;

		width: 375px;
		max-width: 90vw;

		height: 100%;
		overflow-y: auto;

		background-color: var(--color-black);
		color: white;

		padding: 2rem var(--wrapper-gutter) 150px;

		transform: translate3d(100%, 0, 0);

		visibility: hidden;

		/* out transition */
		transition: transform 0.15s ease, visibility 0s 0.3s;
	}
	.header .menu.menu--desktop.is-open {
		transform: translate3d(0, 0, 0);

		visibility: visible;

		/* in transition */
		transition: transform 0.3s ease, visibility 0s;
	}

	.header.is-fixed .menu.menu--desktop {
		display: none !important;
	}

	.header .menu__wrapper {
		align-items: stretch;
		flex-direction: column;
	}

	.header .menu__wrapper .menu__item--depth-1 {
		display: grid;
		grid-template-columns: minmax(0, 1fr) max-content;
		align-items: center;
	}

	.header .menu__wrapper .menu__submenu {
		grid-column: 1/-1;
	}
}

@media only screen and (max-width: 767px) {
}


@media only screen and (min-width: 576px) {
	.menu__mobile-buttons {
		display: none !important;
	}
}

@media only screen and (max-width: 575px) {
	.menu__mobile-buttons {
		display: flex;
		flex-wrap: wrap;
		gap: 1rem;

		margin-top: 2rem;
	}

	.header__utils {
		display: none !important;
	}

	/*.header__row {
		row-gap: 1.5rem;
		align-items: center;
		flex-direction: column;
	}*/
}
/* Main site navigation */
.site-nav {
	--menu-top-offset: 0.5em;

	gap: 2em;
}

ul.menu__wrapper {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	gap: 1em;

	padding-inline-start: 0;
}

.site-nav .menu__item--depth-1 {
	padding: 0;

	text-transform: none;
}

.site-nav a {
	display: inline-block;
	vertical-align: middle;

	color: inherit;
	font-size: 0.85em;
	font-weight: 700;
	text-decoration: none;
}
.site-nav a:hover {
	text-decoration: underline;
}

.site-nav--footer a {
	font-size: 0.875rem;
}

.site-nav--footer ul.menu__wrapper {
}

.site-nav--policies a {
	font-size: 1em;
	font-weight: 400;
}

.site-nav--policies ul.menu__wrapper {
}

.menu__submenu .menu__item {
	list-style-type: none;
}

@media only screen and (min-width: 1101px) {

	ul.menu__wrapper > li {
		position: relative;
		z-index: 0;
	}
	ul.menu__wrapper > li:after {
		content: "";

		position: absolute;
		top: 100%;
		left: 0;
		z-index: 0;

		width: 100%;
		height: calc(var(--menu-top-offset) + 10px);
	}
	ul.menu__wrapper > li:hover .menu__submenu {
		display: block;

		visibility: visible;
		opacity: 1;
		transform: translateY(0);

		/* in transition */
		transition-duration: 0.2s;
		transition-timing-function: ease-out;
	}

	.menu__submenu {
		position: absolute;
		top: calc(100% + var(--menu-top-offset));
		left: 0;
		z-index: 1;

		min-width: 160px;
		padding: 0;
		border-radius: 6px;

		background-color: var(--color-teal);
		color: var(--color-white);

		visibility: hidden;
		opacity: 0;
		transform: translateY(-20px);

		/* out transition */
		transition: 0.1s ease-in;

		overflow: hidden;
	}

	.menu__submenu .menu__item a {
		display: block;
		width: 100%;

		padding: 0.5em 1.5em;

		white-space: nowrap;

		transition: background-color 0.15s ease;
	}
	.menu__submenu .menu__item a:hover {
		background-color: rgba(255,255,255,0.3);
		text-decoration: none;
	}

	.menu-toggle,
	.menu__mobile-close,
	.menu-mobile-shade {
		display: none !important;
	}
}

@media only screen and (max-width: 1100px) {
	.site-nav {
		flex-grow: 1;
		justify-content: space-between;

		margin-right: 1rem;
	}

	.menu-mobile-shade {
		position: fixed;
		top: 0;
		left: 0;
		z-index: 100;

		width: 100%;
		height: 100%;

		background-color: rgba(0, 0, 0, 0.3);

		opacity: 0;
		visibility: hidden;

		cursor: pointer;

		transition: 0.2s ease;
	}
	.menu-mobile-shade.is-visible {
		opacity: 1;
		visibility: visible;
	}

	.menu__mobile-close {
		display: inline-flex;
		align-items: center;
		gap: 1rem;

		outline-color: transparent;

		margin-bottom: 2rem;
	}
	.menu__mobile-close svg {
		display: block;
		width: 1em;
		height: 1em;
	}
	.menu__mobile-close:hover {
		text-decoration: underline;
	}

	.menu__child-toggle {
		padding: 0.5rem 1rem;
		margin-left: auto;

		transition: 0.1s ease;
	}

	.menu__child-toggle.is-active {
		transform: rotate(180deg);
	}

	.menu__child-toggle svg {
		display: block;
		width: 1em;
		height: 1em;
	}

	.header .menu__item--depth-1 > .menu__link {
		font-size: 1em;
	}

	.header .menu__item--depth-2 > .menu__link {
		padding-block: 0.33rem;
		padding-right: 2rem;
	}

	.header .menu__submenu {
		display: none;
		padding-top: 0.5rem;
		padding-left: 30px;
	}
}

@media only screen and (max-width: 767px) {
	.site-nav {
		width: 100%;
		margin-right: 0;
	}
}

@media only screen and (max-width: 575px) {

}


.menu__child-toggle {
	
}
/*!
 * Hamburgers
 * @description Tasty CSS-animated hamburgers
 * @author Jonathan Suh @jonsuh
 * @site https://jonsuh.com/hamburgers
 * @link https://github.com/jonsuh/hamburgers
 */

.hamburger {
  padding: 10px 1rem;
  display: inline-block;
  cursor: pointer;
  -webkit-transition-property: opacity, -webkit-filter;
  transition-property: opacity, -webkit-filter;
  transition-property: opacity, filter;
  transition-property: opacity, filter, -webkit-filter;
  -webkit-transition-duration: 0.15s;
          transition-duration: 0.15s;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  font: inherit;
  color: inherit;
  text-transform: none;
  background-color: transparent;
  border: 0;
  margin: 0;
  overflow: visible;
}

.hamburger:hover {
  opacity: 1;
}

.hamburger.is-active:hover {
  opacity: 1;
}

.hamburger.is-active .hamburger-inner,
.hamburger.is-active .hamburger-inner::before,
.hamburger.is-active .hamburger-inner::after {
  background-color: #fff;
}

.hamburger-box {
  width: 30px;
  height: 24px;
  display: inline-block;
  vertical-align: middle;
  position: relative;
}

.hamburger-inner {
  display: block;
  top: 50%;
  margin-top: -2px;
}

.hamburger-inner, .hamburger-inner::before, .hamburger-inner::after {
  width: 30px;
  height: 4px;
  background-color: #fff;
  border-radius: 4px;
  position: absolute;
  -webkit-transition-property: -webkit-transform;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  -webkit-transition-duration: 0.15s;
          transition-duration: 0.15s;
  -webkit-transition-timing-function: ease;
          transition-timing-function: ease;
}

.hamburger-inner::before, .hamburger-inner::after {
  content: "";
  display: block;
}

.hamburger-inner::before {
  top: -10px;
}

.hamburger-inner::after {
  bottom: -10px;
}

/*
 * Slider Reverse
 */

.hamburger--slider-r .hamburger-inner {
  top: 2px;
}

.hamburger--slider-r .hamburger-inner::before {
  top: 10px;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-transition-timing-function: ease;
          transition-timing-function: ease;
  -webkit-transition-duration: 0.15s;
          transition-duration: 0.15s;
}

.hamburger--slider-r .hamburger-inner::after {
  top: 20px;
}

.hamburger--slider-r.is-active .hamburger-inner {
  -webkit-transform: translate3d(0, 10px, 0) rotate(-45deg);
          transform: translate3d(0, 10px, 0) rotate(-45deg);
}

.hamburger--slider-r.is-active .hamburger-inner::before {
  -webkit-transform: rotate(45deg) translate3d(4.2857142857px, -6px, 0);
          transform: rotate(45deg) translate3d(4.2857142857px, -6px, 0);
  opacity: 0;
}

.hamburger--slider-r.is-active .hamburger-inner::after {
  -webkit-transform: translate3d(0, -20px, 0) rotate(90deg);
          transform: translate3d(0, -20px, 0) rotate(90deg);
}

.hamburger {
  padding: 10px 1rem;
  display: inline-block;
  cursor: pointer;
  -webkit-transition-property: opacity, -webkit-filter;
  transition-property: opacity, -webkit-filter;
  transition-property: opacity, filter;
  transition-property: opacity, filter, -webkit-filter;
  -webkit-transition-duration: 0.15s;
          transition-duration: 0.15s;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  font: inherit;
  color: inherit;
  text-transform: none;
  background-color: transparent;
  border: 0;
  margin: 0;
  overflow: visible;
}

.hamburger:hover {
  opacity: 1;
}

.hamburger.is-active:hover {
  opacity: 1;
}

.hamburger.is-active .hamburger-inner,
.hamburger.is-active .hamburger-inner::before,
.hamburger.is-active .hamburger-inner::after {
  background-color: #fff;
}

.hamburger-box {
  width: 30px;
  height: 24px;
  display: inline-block;
  vertical-align: middle;
  position: relative;
}

.hamburger-inner {
  display: block;
  top: 50%;
  margin-top: -2px;
}

.hamburger-inner, .hamburger-inner::before, .hamburger-inner::after {
  width: 30px;
  height: 4px;
  background-color: #fff;
  border-radius: 4px;
  position: absolute;
  -webkit-transition-property: -webkit-transform;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  -webkit-transition-duration: 0.15s;
          transition-duration: 0.15s;
  -webkit-transition-timing-function: ease;
          transition-timing-function: ease;
}

.hamburger-inner::before, .hamburger-inner::after {
  content: "";
  display: block;
}

.hamburger-inner::before {
  top: -10px;
}

.hamburger-inner::after {
  bottom: -10px;
}

/*
 * Slider Reverse
 */

.hamburger--slider-r .hamburger-inner {
  top: 2px;
}

.hamburger--slider-r .hamburger-inner::before {
  top: 10px;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-transition-timing-function: ease;
          transition-timing-function: ease;
  -webkit-transition-duration: 0.15s;
          transition-duration: 0.15s;
}

.hamburger--slider-r .hamburger-inner::after {
  top: 20px;
}

.hamburger--slider-r.is-active .hamburger-inner {
  -webkit-transform: translate3d(0, 10px, 0) rotate(-45deg);
          transform: translate3d(0, 10px, 0) rotate(-45deg);
}

.hamburger--slider-r.is-active .hamburger-inner::before {
  -webkit-transform: rotate(45deg) translate3d(4.2857142857px, -6px, 0);
          transform: rotate(45deg) translate3d(4.2857142857px, -6px, 0);
  opacity: 0;
}

.hamburger--slider-r.is-active .hamburger-inner::after {
  -webkit-transform: translate3d(0, -20px, 0) rotate(90deg);
          transform: translate3d(0, -20px, 0) rotate(90deg);
}
.hero-wrap {
    position: relative;
}

.hero-wrap .hero__background {
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    
    width: 100%;
    height: 100%;
    
    object-fit: cover;
    mix-blend-mode: multiply;
}

.hero-wrap .hero__background-image {
    display: block;
    width: 100%;
    height: 100% !important;

    object-fit: cover;
    object-position: top center;
}

.hero {
/*    padding-top: 4.5em;*/

/*    color: white;*/
}

.hero__inner {
    padding-block: 9rem 6rem;

    color: var(--color-white);
}

.hero__inner .hero__background {
    z-index: -3;
}
.hero__inner .hero__background-image {
    object-position: center;
}

.hero__inner a {
    color: var(--color-white);
}

.hero__inner > .wrapper {
    position: relative;
    z-index: 2;
}

.hero__inner:before {
    content: "";

    position: absolute;
    top: 0;
    left: 0;
    z-index: -2;
    
    width: 100%;
    height: 100%;

    background-color: var(--color-blue);
    opacity: 0.79;
}

.hero__inner:after {
    --swirl: url(https://4511578.fs1.hubspotusercontent-na1.net/hubfs/4511578/raw_assets/public/Purbeck%202024/images/backgrounds/brand-swirl-white.svg);

    content: "";

    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    
    width: 100%;
    height: 100%;

    background-image: var(--swirl);
    background-size: 100% auto;
    background-position: top left;
    background-repeat: no-repeat;
}

/* Fix page editor making this a relative element and breaking the editor experience  */
.inpage-editor-active-field.inpage-editor-active-field:has(.hero__background),
.inpage-editor-highlight-field.inpage-editor-highlight-field:has(.hero__background) {
  position: unset !important;
}
.footer {
	padding-block-start: calc(3em + var(--footer-overlap, 0px));
	padding-block-end: 1.5em;

	background-color: var(--color-black);
	color: var(--color-white);
}

.footer__text {
	font-size: 0.9rem;
	font-weight: 700;
}

.footer__phone {
	font-size: 1.5em;
	font-weight: 700;
	line-height: 1.1;
}

.footer a[href^="tel:"] {
	text-decoration: none;
}
.footer a[href^="tel:"]:hover {
	text-decoration: underline;
}

.footer__copyright {
	font-size: 11px;
}

.footer__rating iframe {
	max-width: 160px;
	max-height: 60px;
}

.footer .menu .menu__wrapper {
	flex-wrap: wrap;
	gap: 0.5em 1em;
}

.footer .menu-toggle,
.footer .menu__mobile-close,
.footer .menu__mobile-buttons {
	display: none !important;
}

@media only screen and (max-width: 899px) {
	.footer__left,
	.footer__right {
		--flow-space: 1rem !important;

		grid-column: 1/-1 !important;
	}
}

@media only screen and (max-width: 450px) {
    .footer__utils {
        align-items: flex-start !important;
        flex-direction: column;
        row-gap: 1rem !important;
    }
}
.button {
  --border-width: 2px;
  --base-padding-x: 1.25em;
  --base-padding-y: 0.75em;
  
  --padding-x: var(--base-padding-x);
  --padding-y: var(--base-padding-y);
  
	display: inline-block;
	padding: var(--padding-y) var(--padding-x);
	border: var(--border-width) solid var(--button-color, #242F3A);
	border-radius: 10px;

    font: inherit;
    font-size: 0.9rem;
    font-weight: 700;
	color: var(--button-color, #242F3A);
	text-decoration: none !important;
  text-wrap: pretty;
  text-align: center;

	transition: background-color 0.1s ease, border-color 0.1s ease;
}

.button:hover {
	background-color: var(--button-color, #242F3A);
  color: var(--button-text-color, white);
}

.button--filled {
  position: relative;
  z-index: 0;

  background-color: var(--button-color, #242F3A);
  color: var(--button-text-color, white);
}

.button--filled:focus,
.button--filled:hover {
  background-image: linear-gradient(rgba(255,255,255,0.2), rgba(255,255,255,0.2));
}

.button--gradient {
    --padding-x: calc(var(--base-padding-x) + var(--border-width));
    --padding-y: calc(var(--base-padding-y) + var(--border-width));
  
    border: none;
    background-image: linear-gradient(45deg, var(--brand-gradient-color-stops));
    background-size: 100% 300%;
    color: var(--color-white);
    
    transition: background-position 0.3s ease;
}

.button--wide {
  padding-inline: calc(var(--padding-x) + 1em);
}

.button--gradient:hover {
	  background-color: transparent;
    color: var(--color-white);
    background-position: top;
}
.banner {
	padding: 2em;

	background-color: var(--background-color);
	color: var(--text-color);
}

.banner svg {
	display: block;
}

@media only screen and (max-width: 575px) {
	.banner {
		padding-inline: 1em;
	}
}
.quote-card {
	display: flex;
	flex-direction: column;

	height: 100%;

	padding: 2em;
	box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.16);

	color: var(--color-black);
	background-color: var(--color-white);
}

@media only screen and (max-width: 600px) {
	.quote-card {
		padding: 1em;
	}
}

.quote-card__title {
	font-family: var(--font-body);
	font-size: 0.75rem;
}

.quote-card__image {
	--image-size: 60px;

	display: block;
	object-fit: contain;
}

.quote-card__image.-rounded {
	width: var(--image-size);
	height: var(--image-size);

	border-radius: 50%;
}

.quote-card__image.-full {
	width: auto;
	max-width: 120px;
	height: var(--image-size);
}
.single-card {
	--padding-x: 2rem;
	--padding-y: 2rem;

	height: 100%;

	padding: var(--padding-y) var(--padding-x);
	border-radius: 16px;
	box-shadow: 0 8px 6px rgba(0,0,0,0.06);

	overflow: hidden;

	background-color: var(--card-background, var(--color-black));
	color: var(--card-text, var(--color-white));
}

.single-card__image {
	width: calc(100% + var(--padding-x) * 2);
	margin-top: calc(var(--padding-y) * -1);
	margin-left: calc(var(--padding-x) * -1);
}

.single-card__image img {
    width: 100%;
	aspect-ratio: 4/2.5;
}

/* inherit row height */
.row-fluid-wrapper:has(.hs_cos_wrapper_type_module > .single-card) {
	flex-grow: 1;
}

.row-fluid-wrapper:has(.hs_cos_wrapper_type_module > .single-card) > .row-fluid,
.row-fluid-wrapper:has(.hs_cos_wrapper_type_module > .single-card) .span12,
.row-fluid-wrapper:has(.hs_cos_wrapper_type_module > .single-card) .hs_cos_wrapper_type_module {
	height: 100%;
}
/* Featured Callout Module  */
/* styles are shared across modules  */

.featured-callout {
	--border-radius: 20px;

    display: grid;
    grid-template-columns: [image-start] 1fr [content-start] minmax(160px,20%) [image-end] minmax(250px,30%) [content-end];
}

.featured-callout--image-right {
    grid-template-columns: [content-start] minmax(250px,30%) [image-start] minmax(160px,20%) [content-end] 1fr [image-end];
}

.featured-callout__content {
    --shadow-x-offset: -2px;

    grid-row: 1;
    grid-area: content;
    
    position: relative;
    z-index: 0;
    
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    
    padding: 2em;

    
    background-color: var(--content-background-color, var(--color-white));
    color: var(--content-text-color, currentColor);
}

.featured-callout__content:after {
    content: "";
    
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    
    width: 100vw;
    height: 100%;

    border-radius: inherit;
    box-shadow: var(--shadow-x-offset) 0 7px rgba(0,0,0,0.15);

    background: inherit;
}

.featured-callout--image-left .featured-callout__content {
	border-top-left-radius: var(--border-radius);
    border-bottom-left-radius: var(--border-radius);
}

.featured-callout--image-right .featured-callout__content {
	border-top-right-radius: var(--border-radius);
	border-bottom-right-radius: var(--border-radius);
}

.featured-callout--image-right .featured-callout__content:after {
	left: auto;
	right: 0;
}

.featured-callout--image-right .featured-callout__content {
    --shadow-x-offset: 2px;
}

.featured-callout__image {
    grid-row: 1;
    grid-area: image;
}

.featured-callout__image img {
    display: block;
    height: 100% !important;
    border-radius: 20px;
}


.featured-callout--y-center {
    grid-template-columns: [image-start] 1fr [image-end content-start] 1fr [content-end];
}

.featured-callout--y-center.featured-callout--image-right {
    grid-template-columns: [content-start] 1fr [content-end image-start] 1fr [image-end];
}

.featured-callout--y-center .featured-callout__content {
    justify-content: center;

    padding-block: 6em;
}

.featured-callout--y-center .featured-callout__content > * {
    max-width: 410px;
}


.featured-callout--y-center.featured-callout--image-left .featured-callout__content {
    padding-left: 4em;
    padding-right: 0;
}

.featured-callout--y-center.featured-callout--image-right .featured-callout__content {
    padding-left: 0;
    padding-right: 4em;
}

.featured-callout--y-center.featured-callout--image-left .featured-callout__image img {
    border-top-right-radius: 0px;
    border-bottom-right-radius: 0px;
}

.featured-callout--y-center.featured-callout--image-right .featured-callout__image img {
    border-top-left-radius: 0px;
    border-bottom-left-radius: 0px;
}

.featured-callout form .hs-error-msgs .hs-error-msg {
    color: var(--content-text-color, var(--color-white));
}

@media only screen and (max-width: 767px) {
    .featured-callout,
    .featured-callout--image-right {
        grid-template-columns: 1fr !important;
        grid-template-areas: "image" "content";
    }

    .featured-callout__content:after {
        display: none;
    }

    .featured-callout__content {
        border-radius: var(--border-radius);
        padding: 1em !important;
        grid-row: content;
    }

    .featured-callout--y-center .featured-callout__content {
        padding-block: 2em !important;
    }

    .featured-callout__image {
        margin-bottom: 0 !important;
        grid-row: image;
    }

    .featured-callout__image img {
        width: 100%;
        max-height: 60vw;
        border-radius: var(--border-radius) !important;
    }

    .featured-callout--y-center .featured-callout__content > * {
        max-width: 100% !important;
    }
}
.icon-list {
	--checkmark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 13.959 13.078'%3E%3Cpath fill='%23000000' d='M13.905 1.725 12.27.608 4.21 8.888 1.87 5.763.275 7.116l4.04 5.492Z'/%3E%3C/svg%3E");
	--icon: var(--checkmark);

	--icon-size: 0.9em;
	--icon-gap: 1em;

	padding-left: 20px;
}

.icon-list > li {
	position: relative;
	z-index: 0;
	list-style-type: none;

	padding-left: calc(var(--icon-gap) + var(--icon-size));
}

.icon-list > li + li {
	margin-top: 0.75em;
}

.icon-list > li:before {
	content: "";

	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;

	display: block;
	width: var(--icon-size);
	height: var(--icon-size);

	-webkit-mask-image: var(--icon);
	mask-image: var(--icon);
	background-color: currentColor;

	transform: translateY(0.35em);
}
.social-icon {
	--icon-size: 38px;

	display: flex;
	width: var(--icon-size);
	height: var(--icon-size);

	justify-content: center;
	align-items: center;

	border-radius: 50%;
	background-color: var(--social-circle-color, var(--color-white));

	opacity: 0.8;
	transition: opacity 0.2s ease;
}
.social-icon svg {
	display: block;
	width: 62%;
	height: 62%;

	fill: var(--social-icon-color, var(--color-black));
}

.social-icon:hover {
	opacity: 1;
}
.form-card {
	padding: 2rem;
	border-radius: 16px;
	box-shadow: 0 8px 6px rgba(0,0,0,0.06);

	background-color: var(--color-white);
}

.form-card-grid {
	grid-template-columns: minmax(320px, 380px) minmax(320px, 1fr);
	justify-content: space-between;
	gap: 4.5rem;
}

.form-card-grid > * {
	padding-block: 1.5rem;
}

.form-card-grid__left {
	padding-left: 2rem;
}

.form-card__form-wrapper {
/*	padding-right: 2rem;*/
}

.form-card.-green {
	background-color: var(--color-green);
}
.form-card.-green form {
	--input-bg-color: var(--color-white);
}
.form-card.-green .hs-submit input[type="submit"] {
	background-image: none;
	background-color: var(--color-blue);
}

.form-card.-green .hs-error-msgs.hs-error-msgs .hs-error-msg {
	color: var(--color-black);
}

.form-card.-teal {
	background-color: var(--color-teal);
	color: var(--color-white);
}
.form-card.-teal form {
	--input-bg-color: var(--color-white);
}
.form-card.-teal .hs-submit {
	text-align: right;
}
.form-card.-teal .hs-submit input[type="submit"] {
	background-image: none;
	background-color: var(--color-green);
	color: var(--color-black);
}
.form-card.-teal .hs-error-msgs.hs-error-msgs .hs-error-msg {
	color: var(--color-white);
}

.form-card.-swirl {
	background-image: var(--swirl);
	background-size: 100% auto;
	background-position: top left;
	background-repeat: no-repeat;
}

.hs-form .legal-consent-container {
	margin-block: 1.5rem;
	font-size: 12px;
}

@media only screen and (max-width: 899px) {
	.form-card-grid {
		grid-template-columns: minmax(0,1fr);
		row-gap: 0;
	}

	.form-card-grid__left {
		padding-inline: 1rem;
	}
}

@media only screen and (max-width: 600px) {
	.form-card {
		padding-inline: 1rem;
	}
}
.content-form-callout {
	
	border-radius: 16px;
	overflow: hidden;

	background-color: var(--color-white);
}
/* 
	HubSpot blog listings 
*/ 

/* article, each post item  */
.listing-post {
	--corner-radius: 12px;
	--title-color: #39B8AD;
	--padding-inline: 2rem;

	border-radius: var(--corner-radius);
	box-shadow: 0px 8px 17px rgba(0,0,0, 0.16);
}

.listing-post + .listing-post {
	margin-top: 2rem;
}

/* Only on listing content, indicates using image next to content side-by-side style
Other styles are grid and single column */
.listing-post--side-by-side {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-template-areas: "image content";
	gap: 0 3rem;
}

.listing-post--alternate-images:nth-child(even) {
	grid-template-areas: "content image";
}

.listing-post--alternate-images:nth-child(even) .listing-post__content {
	padding-left: var(--padding-inline);
	padding-right: 0;

}
.listing-post--alternate-images:nth-child(even) .listing-post__tags {
	left: var(--padding-inline);
	right: auto;
}

/* image column  */
.listing-post__image-wrapper {
	grid-area: image;
}
.listing-post__image-wrapper:before {
    content: "";
    padding-bottom: 75%;
    float: left;
}
.listing-post__image-wrapper:after {
    content: "";
    display: table;
    clear: both;
}

/* image itself - wrapped in <a> tag with no classes */
.listing-post__image {
	display: block;
    width: 100%;
    height: 100%;

	border-radius: var(--corner-radius);
}

/* content column wrapper  */
.listing-post__content {
	grid-area: content;

	position: relative;
	z-index: 0;

	padding-block: 3.5625rem;
	padding-right: var(--padding-inline);
	border-top-right-radius: var(--corner-radius);
	border-bottom-right-radius: var(--corner-radius);
}
.listing-post__content:has(.listing-post__tags) {
	padding-block: 4.625rem 1.5rem;
}


.listing-post__content * {
	margin-block: 0;
}

.listing-post__content li::marker {
	color: var(--color-teal);
}


/* h2 post title, has <a> tag inside  */
.listing-post__title {
	font-family: var(--font-family-body);
	font-size: 1.4em;
	font-weight: 500;

	color: var(--title-color);
}

/* <a> tag inside h2 post title  */
.listing-post__title-link {
	color: inherit;
}

.listing-post__title-link:hover {
/*	text-decoration: underline;*/
}

/* author wrapping element  */
.listing-post__meta {
	margin-top: auto;

	order: 99;
	color: #939393;
	font-size: 1rem;
	font-weight: bold;
}

.listing-post__meta-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(min-content, 1fr));
	column-gap: 1rem;
	row-gap: 0.75rem;

	margin-bottom: 2em;
}

.listing-post__description + .listing-post__meta-grid {
	margin-top: -1em;
}

.listing-post__meta-title {
	color: #677079;
	font-family: var(--font-family-body);
	font-size: 0.85rem;
	text-transform: uppercase;
	font-weight: bold;
}

.listing-post__meta-value {
	margin-top: 0.1rem;
	font-size: 1.1rem;
}


/* actual author <a> tag  */
.listing-post__author {
	color: inherit;
/*	text-decoration: none;*/
}
.listing-post__author:hover {
/*	text-decoration: underline;*/
}

/* wrapper for all tags links  */
.listing-post__tags {
	position: absolute;
	top: 1.5rem;
	right: var(--padding-inline);
	z-index: 1;

	text-align: right;
	font-size: 0.85em;
}

/* individual tag link <a>  */
.listing-post__tag-link {
	color: #939393;
	text-decoration: none;
}
a.listing-post__tag-link:hover {
	text-decoration: underline;
}

/* <time> element wrapping publish date  */
.listing-post__publish-date {
	order: 99;
	color: #939393;
	font-size: 1rem;
	font-weight: bold;
}

/* post excerpt  */
.listing-post__description {
	margin-block: 1em 2em;
}

.listing-post__description * {
    font: inherit !important;
    color: inherit !important;
    text-align: left !important;
}
.listing-post__description ul { 
    padding-left: 20px;   
}

.hs-pagination__link {
	color: var(--color-blue);
}
.hs-pagination__link:hover {
	text-decoration: underline;
}
.hs-pagination__link svg {
	fill: currentColor;
}

@media only screen and (max-width: 767px) {
	.listing-post--side-by-side {
		grid-template-columns: 1fr !important;
		grid-template-areas: "image" "content" !important;
	}

	.listing-post__content {
		padding-inline: var(--padding-inline) !important;
	}

	.listing-post__content:has(.listing-post__tags) {
		padding-top: 3rem;
	}

	.listing-post__tags {
		position: static;

		margin-top: 1rem;

		text-align: left;
	}
}

@media only screen and (max-width: 600px) {
	.listing-post__meta-grid {
		grid-template-columns: 1fr;
	}
}
.blog-post-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 400px;
	gap: 4.5rem;
}

@media only screen and (max-width: 1023px) {
	.blog-post-grid {
		grid-template-columns: 1fr;
	}
}

.blog-post-grid__main {
	padding-block: 3rem;
}

.blog-post-grid__sidebar {
	position: relative;

	margin-top: -3rem;
	padding-bottom: 4.5rem;
}

.blog-post-grid__form-wrapper {
	position: sticky;
	top: 7.5rem;
	z-index: 1;
}
@media only screen and (min-width: 1024px) {
    .blog-post-grid__form-wrapper {
        transform-origin: top right;
        scale: 0.95;
    }
}

.blog-post__body > * > p,
.blog-post__body > * > ul,
.blog-post__body > * > ol {
	font-size: 1rem;
}

.blog-post__body > * > * + * {
	margin-block-start: var(--flow-space, 1em);
}

.blog-post__body > * > *:has(img),
.blog-post__body > * > *:has(img) + * {
	--flow-space: 2em;
}

.blog-post__body > * > p:first-child,
.blog-post__body > * > ul:first-child,
.blog-post__body > * > ol:first-child {
	color: #39B8AD;
	font-size: 1.25rem;
	line-height: 1.25;
	font-weight: 500;
}

.blog-post__body img {
	border-radius: 8px;
}

.blog-post__tag-link {
	color: var(--color-blue);
}

.blog-post__footer {
	padding-top: 4.5rem;

	background-color: var(--color-black);
	color: var(--color-white);
}
/* whole related section wrapper including title */
.blog-related-posts {
	
}

/* wrapper around posts grid */
.blog-related-posts__list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	column-gap: 1.5rem;
}

@media only screen and (max-width: 767px) {
	.blog-related-posts__list {
		grid-template-columns: repeat(2, 1fr);
		row-gap: 1.5rem;
	}
}

@media only screen and (max-width: 600px) {
	.blog-related-posts__list {
		grid-template-columns: 1fr;
	}
}

/* single post */
.blog-related-posts__post {
	--corner-radius: 12px;

	position: relative;
	z-index: 0;

	display: flex;
	flex-direction: column;
}

.blog-related-posts__image {
	display: block;
	width: 100%;

	border-top-left-radius: var(--corner-radius);
	border-top-right-radius: var(--corner-radius);

	aspect-ratio: 4/2.5;
}

.blog-related-posts__content {
	flex-grow: 1;

	display: flex;
	flex-direction: column;

	padding: 1rem;

	border-bottom-left-radius: var(--corner-radius);
	border-bottom-right-radius: var(--corner-radius);

	background-color: var(--color-white);
	color: var(--color-black);
}

.blog-related-posts__title {
	font-family: var(--font-family-body);
	font-size: 1.125rem;
	line-height: 1.3;
}

.blog-related-posts__title-link {
	color: inherit;
}
.blog-related-posts__title-link:after {
	content: "";

	position: absolute;
	inset: 0;
    z-index: 1;
}
.logo-animation {
	--animation-percent: 0%; /* starts hidden */
	--conic-mask: conic-gradient(from 169deg, black 0%, black var(--animation-percent), transparent 0%);

	-webkit-mask-image: var(--conic-mask);
			mask-image: var(--conic-mask);
	-webkit-mask-size: cover;
			mask-size: cover;
	-webkit-mask-position: center;
			mask-position: center;
	-webkit-mask-repeat: no-repeat;
			mask-repeat: no-repeat;
}

.logo-animation__vector {
	display: block;
	width: 100%;
	height: auto;
	max-height: 400px;
}

/* Hubspot utils */
/* For content that needs to be visually hidden but stay visible for screenreaders */

.show-for-sr {
  border: 0 !important;
  clip: rect(0, 0, 0, 0) !important;
  height: 1px !important;
  overflow: hidden !important;
  padding: 0 !important;
  position: absolute !important;
  white-space: nowrap !important;
  width: 1px !important;
}

@media (max-width: 767px) {
  .show-for-sr--mobile {
    border: 0 !important;
    clip: rect(0, 0, 0, 0) !important;
    height: 1px !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: absolute !important;
    white-space: nowrap !important;
    width: 1px !important;
  }
}
/* Set any font size utility classes for the theme  */

.fz-22 {
	font-size: 1.22em;
}

.fz-16 {
	font-size: 0.85em;
}

.fz-14 {
	font-size: 0.875rem;
} 
/* Specific color overrides  */

.text-grey-dark {
	color: #3B3A3A !important;
}

.text-grey {
	color: #737373 !important;
} 
.h-separator {

	display: block;
	width: 100%;
	min-width: 40px;
	max-width: 80px;
	height: 3px;

	border: none;

	border-radius: 4em;
	margin-inline: 0;
	margin-block-end: 0;

	background-color: var(--separator-color, black);
} 
/* Themd background image sections */

/* 
	Houses and trees, dotted — right aligned to edge  
	with a line underneath, line repeats to fit wide screens
*/

._bgsection-houses-dotted {
	background-color: var(--color-black) !important;
}

@media only screen and (min-width: 768px) {
	._bgsection-houses-dotted {
		--dotted-houses: url(https://4511578.fs1.hubspotusercontent-na1.net/hubfs/4511578/raw_assets/public/Purbeck%202024/images/backgrounds/dotted-houses.png);
		--dotted-line: url(https://4511578.fs1.hubspotusercontent-na1.net/hubfs/4511578/raw_assets/public/Purbeck%202024/images/backgrounds/dotted-line.png);

		background-image: var(--dotted-houses), var(--dotted-line);
		background-size: contain;
		background-position: right center, left center;
		background-repeat: no-repeat, repeat-x;
	}
}


/*  Brand swirl on a teal background  */

._bgsection-teal-swirl {
/*	--swirl: url(https://4511578.fs1.hubspotusercontent-na1.net/hubfs/4511578/raw_assets/public/Purbeck%202024/images/backgrounds/brand-swirl-white.svg);*/
	--gradient: linear-gradient(to top, #37B0AD, rgba(55,176,173,0));

	background-color: #37B0AD !important;

	/* gradient must be placed first so it shows on top of swirl  */
	background-image: var(--gradient), var(--swirl);
	background-size: 100% 1200px, 100% auto;
	background-position: top center, top left;
	background-repeat: no-repeat;
}

._bgsection-blue-swirl {
/*	--swirl: url(https://4511578.fs1.hubspotusercontent-na1.net/hubfs/4511578/raw_assets/public/Purbeck%202024/images/backgrounds/brand-swirl-white.svg);*/

	background-color: #37A3E2 !important;

	/* gradient must be placed first so it shows on top of swirl  */
	background-image: var(--swirl);
	background-size: 100% auto;
	background-position: top left;
	background-repeat: no-repeat;
}