html {
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  font-family: sans-serif;
}

body {
  margin: 0;
}

article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary {
  display: block;
}

audio, canvas, progress, video {
  vertical-align: baseline;
  display: inline-block;
}

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

[hidden], template {
  display: none;
}

a {
  background-color: #0000;
}

a:active, a:hover {
  outline: 0;
}

abbr[title] {
  border-bottom: 1px dotted;
}

b, strong {
  font-weight: bold;
}

dfn {
  font-style: italic;
}

h1 {
  margin: .67em 0;
  font-size: 2em;
}

mark {
  color: #000;
  background: #ff0;
}

small {
  font-size: 80%;
}

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

sup {
  top: -.5em;
}

sub {
  bottom: -.25em;
}

img {
  border: 0;
}

svg:not(:root) {
  overflow: hidden;
}

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

pre {
  overflow: auto;
}

code, kbd, pre, samp {
  font-family: monospace;
  font-size: 1em;
}

button, input, optgroup, select, textarea {
  color: inherit;
  font: inherit;
  margin: 0;
}

button {
  overflow: visible;
}

button, select {
  text-transform: none;
}

button, html input[type="button"], input[type="reset"] {
  -webkit-appearance: button;
  cursor: pointer;
}

button[disabled], html input[disabled] {
  cursor: default;
}

button::-moz-focus-inner, input::-moz-focus-inner {
  border: 0;
  padding: 0;
}

input {
  line-height: normal;
}

input[type="checkbox"], input[type="radio"] {
  box-sizing: border-box;
  padding: 0;
}

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

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

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

legend {
  border: 0;
  padding: 0;
}

textarea {
  overflow: auto;
}

optgroup {
  font-weight: bold;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

td, th {
  padding: 0;
}

* {
  box-sizing: border-box;
}

html {
  height: 100%;
}

body {
  color: #333;
  background-color: #fff;
  min-height: 100%;
  margin: 0;
  font-family: Arial, sans-serif;
  font-size: 14px;
  line-height: 20px;
}

img {
  vertical-align: middle;
  max-width: 100%;
  display: inline-block;
}

html.w-mod-touch * {
  background-attachment: scroll !important;
}

.w-inline-block {
  max-width: 100%;
  display: inline-block;
}

.w-button {
  color: #fff;
  line-height: inherit;
  cursor: pointer;
  background-color: #3898ec;
  border: 0;
  border-radius: 0;
  padding: 9px 15px;
  text-decoration: none;
  display: inline-block;
}

input.w-button {
  -webkit-appearance: button;
}

:where(button.w-popover-trigger), :where(button.w-modal-trigger) {
  color: inherit;
  cursor: pointer;
  font: inherit;
  line-height: inherit;
  text-align: inherit;
  -webkit-text-decoration: inherit;
  text-decoration: inherit;
  background-color: #0000;
  border: 0;
  margin: 0;
  padding: 0;
}

:where(.w-popover[data-w-popover-backdrop-animated])::backdrop {
  animation: var(--w-backdrop-animation, none);
}

:where(.w-popover) {
  --w-backdrop-animation: initial;
}

@supports not selector(:popover-open) {
}

html[data-w-dynpage] [data-w-cloak] {
  color: #0000 !important;
}

h1, h2, h3, h4, h5, h6 {
  margin-bottom: 10px;
  font-weight: bold;
}

h1 {
  margin-top: 20px;
  font-size: 38px;
  line-height: 44px;
}

h2 {
  margin-top: 20px;
  font-size: 32px;
  line-height: 36px;
}

h3 {
  margin-top: 20px;
  font-size: 24px;
  line-height: 30px;
}

h4 {
  margin-top: 10px;
  font-size: 18px;
  line-height: 24px;
}

h5 {
  margin-top: 10px;
  font-size: 14px;
  line-height: 20px;
}

h6 {
  margin-top: 10px;
  font-size: 12px;
  line-height: 18px;
}

p {
  margin-top: 0;
  margin-bottom: 10px;
}

blockquote {
  border-left: 5px solid #e2e2e2;
  margin: 0 0 10px;
  padding: 10px 20px;
  font-size: 18px;
  line-height: 22px;
}

figure {
  margin: 0 0 10px;
}

figcaption {
  text-align: center;
  margin-top: 5px;
}

ul, ol {
  margin-top: 0;
  margin-bottom: 10px;
  padding-left: 40px;
}

.w-embed:before, .w-embed:after {
  content: " ";
  grid-area: 1 / 1 / 2 / 2;
  display: table;
}

.w-embed:after {
  clear: both;
}

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

button, [type="button"], [type="reset"] {
  cursor: pointer;
  -webkit-appearance: button;
  border: 0;
}

.w-form {
  margin: 0 0 15px;
}

.w-form-done {
  text-align: center;
  background-color: #ddd;
  padding: 20px;
  display: none;
}

.w-form-fail {
  background-color: #ffdede;
  margin-top: 10px;
  padding: 10px;
  display: none;
}

label {
  margin-bottom: 5px;
  font-weight: bold;
  display: block;
}

.w-input, .w-select {
  color: #333;
  vertical-align: middle;
  background-color: #fff;
  border: 1px solid #ccc;
  width: 100%;
  height: 38px;
  margin-bottom: 10px;
  padding: 8px 12px;
  font-size: 14px;
  line-height: 1.42857;
  display: block;
}

.w-input::placeholder, .w-select::placeholder {
  color: #999;
}

.w-input:focus, .w-select:focus {
  border-color: #3898ec;
  outline: 0;
}

.w-input[disabled], .w-select[disabled], .w-input[readonly], .w-select[readonly], fieldset[disabled] .w-input, fieldset[disabled] .w-select {
  cursor: not-allowed;
}

.w-input[disabled]:not(.w-input-disabled), .w-select[disabled]:not(.w-input-disabled), .w-input[readonly], .w-select[readonly], fieldset[disabled]:not(.w-input-disabled) .w-input, fieldset[disabled]:not(.w-input-disabled) .w-select {
  background-color: #eee;
}

textarea.w-input, textarea.w-select {
  height: auto;
}

.w-form-label {
  cursor: pointer;
  margin-bottom: 0;
  font-weight: normal;
  display: inline-block;
}

.w-widget-twitter-count-shim.w--large {
  width: 36px;
  height: 28px;
}

.w-widget-twitter-count-shim.w--large .w-widget-twitter-count-inner {
  font-size: 18px;
  line-height: 18px;
}

.w-widget-twitter-count-shim:not(.w--vertical).w--large {
  margin-left: 6px;
}

.w-widget-twitter-count-shim:not(.w--vertical).w--large:before {
  border-width: 5px;
  margin-top: -5px;
  margin-left: -10px;
}

.w-widget-twitter-count-shim:not(.w--vertical).w--large:after {
  border-width: 5px;
  margin-top: -5px;
  margin-left: -9px;
}

.w-widget-twitter-count-shim.w--vertical {
  width: 61px;
  height: 33px;
  margin-bottom: 8px;
}

.w-widget-twitter-count-shim.w--vertical:before, .w-widget-twitter-count-shim.w--vertical:after {
  content: " ";
  pointer-events: none;
  border: solid #0000;
  width: 0;
  height: 0;
  position: absolute;
  top: 100%;
  left: 50%;
}

.w-widget-twitter-count-shim.w--vertical:before {
  border-width: 5px;
  border-color: #5d6c7b #75869600 #75869600;
  margin-left: -5px;
}

.w-widget-twitter-count-shim.w--vertical:after {
  border-width: 4px;
  border-color: #fff #fff0 #fff0;
  margin-left: -4px;
}

.w-widget-twitter-count-shim.w--vertical .w-widget-twitter-count-inner {
  font-size: 18px;
  line-height: 22px;
}

.w-widget-twitter-count-shim.w--vertical.w--large {
  width: 76px;
}

.w-background-video {
  color: #fff;
  height: 500px;
  position: relative;
  overflow: hidden;
}

.w-background-video > video {
  object-fit: cover;
  z-index: -100;
  background-position: 50%;
  background-size: cover;
  width: 100%;
  height: 100%;
  margin: auto;
  position: absolute;
  inset: -100%;
}

.w-background-video > video::-webkit-media-controls-start-playback-button {
  -webkit-appearance: none;
  display: none !important;
}

.w-dropdown-list.w--open {
  display: block;
}

.w-dropdown-link.w--current {
  color: #0082f3;
}

.w-nav-brand {
  float: left;
  color: #333;
  text-decoration: none;
  position: relative;
}

.w-nav-link.w--current {
  color: #0082f3;
}

[data-nav-menu-open] {
  text-align: center;
  background: #c8c8c8;
  min-width: 200px;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  overflow: visible;
  display: block !important;
}

.w--nav-link-open {
  display: block;
  position: relative;
}

.w-nav-button.w--open {
  color: #fff;
  background-color: #c8c8c8;
}

.w-nav[data-collapse="all"] .w-nav-button, .w--nav-dropdown-open, .w--nav-dropdown-toggle-open {
  display: block;
}

.w--nav-dropdown-list-open {
  position: static;
}

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

  .w-nav-brand {
    padding-left: 10px;
  }
}

.w-tab-link.w--current {
  background-color: #c8c8c8;
}

.w--tab-active {
  display: block;
}

@keyframes spin {
  0% {
    transform: rotate(0);
  }

  100% {
    transform: rotate(360deg);
  }
}

@font-face {
  font-family: Essential;
  src: url("/assets/fonts/essential-regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: Essential;
  src: url("/assets/fonts/essential-light.woff2") format("woff2");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

/* Inter and Mulish (Google Fonts, OFL), self-hosted as variable fonts covering the weights the site uses. */
@font-face {
  font-family: Inter;
  src: url("/assets/fonts/inter-v20-latin-ext.woff2") format("woff2");
  font-weight: 200 600;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: Inter;
  src: url("/assets/fonts/inter-v20-latin.woff2") format("woff2");
  font-weight: 200 600;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: Mulish;
  src: url("/assets/fonts/mulish-v18-latin-ext.woff2") format("woff2");
  font-weight: 300 700;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: Mulish;
  src: url("/assets/fonts/mulish-v18-latin.woff2") format("woff2");
  font-weight: 300 700;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --deep-sky-blue-2: #192a51;
  --deep-pink: #fd4792;
  --deep-sky-blue: #52c0f7;
  --zerowhite: #fff0;
  --alice-blue-2-3: #f5fcff;
  --alice-blue: #e4f6ff;
  --hot-pink: #ff65a5;
  --deep-pink-2: #fd4792cc;
  --lavender-blush-2: #fff5f9;
  --deep-sky-blue-3: #54b3e2;
  --image-border: .5vw;
  --pad-3vw: 3vw;
  --padding-9vw: 9vw;
  --lavender-blush: #ffecf4;
  --alice-blue-2: #f5fcff;
  --deep-sky-blue-4: #52c0f724;
  --zero: var(--deep-sky-blue-4);
  --padding-lr: 2vw;
  --max-width: 1460px;
}

.w-layout-hflex {
  flex-direction: row;
  align-items: flex-start;
  display: flex;
}

.w-layout-vflex {
  flex-direction: column;
  align-items: flex-start;
  display: flex;
}

.w-checkbox {
  margin-bottom: 5px;
  padding-left: 20px;
  display: block;
}

.w-checkbox:before {
  content: " ";
  grid-area: 1 / 1 / 2 / 2;
  display: table;
}

.w-checkbox:after {
  content: " ";
  clear: both;
  grid-area: 1 / 1 / 2 / 2;
  display: table;
}

.w-checkbox-input {
  float: left;
  margin: 4px 0 0 -20px;
  line-height: normal;
}

.w-checkbox-input--inputType-custom.w--redirected-checked {
  background-color: #3898ec;
  background-image: url("/assets/images/custom-checkbox-checkmark.589d534424.svg");
  background-position: 50%;
  background-repeat: no-repeat;
  background-size: cover;
  border-color: #3898ec;
}

.w-checkbox-input--inputType-custom.w--redirected-focus {
  box-shadow: 0 0 3px 1px #3898ec;
}

body {
  color: var(--deep-sky-blue-2);
  font-family: Inter, sans-serif;
  font-size: 14px;
  line-height: 1.2em;
}

h1 {
  color: var(--deep-sky-blue-2);
  margin-top: 0;
  margin-bottom: 0;
  font-family: swear-display, "Swear Fallback", "Swear Fallback Android", "Times New Roman", serif;
  font-size: 58px;
  font-weight: 400;
  line-height: 44px;
}

h2 {
  margin-top: 0;
  margin-bottom: 0;
  font-size: 32px;
  font-weight: 400;
  line-height: 36px;
}

h3 {
  margin-top: 0;
  margin-bottom: 0;
  font-size: 24px;
  font-weight: 400;
  line-height: 30px;
}

p {
  color: var(--deep-sky-blue-2);
  margin-bottom: 10px;
  font-family: Mulish, sans-serif;
  font-size: 16px;
  font-weight: 300;
  line-height: 23px;
}

a {
  text-decoration: underline;
}

.navigation-right {
  grid-column-gap: 16px;
  grid-row-gap: 16px;
  justify-content: flex-end;
  align-items: center;
  width: 50%;
  min-height: 50px;
  display: flex;
  position: relative;
}

.brand {
  margin-right: 60px;
}

.brand.w--current {
  width: 223px;
}

.navigation-left {
  align-items: center;
  width: 50%;
  min-height: 50px;
  display: flex;
  position: relative;
}

.search-block-wrapper {
  flex-direction: column;
  flex: 0 auto;
  justify-content: center;
  align-self: center;
  align-items: center;
  max-width: 70vw;
  margin-top: 0;
  margin-left: 0;
  display: flex;
}

.search-block-wrapper.buttonm {
  display: none;
}

.div-block-7 {
  border-radius: 8px;
  flex-direction: row;
  flex: 0 auto;
  justify-content: center;
  align-self: center;
  align-items: center;
  width: auto;
  min-width: auto;
  max-width: none;
  margin-left: 0;
  display: flex;
  box-shadow: 9px 18px 20px -8px #0710242e;
}

.div-block-7.buttonmi {
  position: relative;
}

.button {
  text-transform: none;
  flex-direction: row;
  justify-content: flex-start;
  align-items: flex-start;
  padding-left: 24px;
  padding-right: 24px;
  font-family: Mulish, sans-serif;
  font-weight: 300;
  display: block;
}

.button.arrowlink {
  background-color: var(--deep-pink);
  border-top-right-radius: 8px;
  border-bottom-right-radius: 8px;
  justify-content: center;
  align-self: stretch;
  align-items: center;
  min-height: 54px;
  padding-left: 33px;
  padding-right: 33px;
  font-family: Essential, sans-serif;
  font-size: 22px;
  font-weight: 400;
  line-height: 24px;
  display: flex;
  position: absolute;
  top: 0;
  right: 0;
}

.text-block {
  min-width: auto;
  max-width: none;
  color: var(--deep-pink);
  letter-spacing: 2px;
  text-indent: 0;
  text-transform: uppercase;
  flex: 0 auto;
  align-self: stretch;
  align-items: center;
  margin-bottom: 0;
  margin-left: 0;
  margin-right: 0;
  padding: 0;
  font-family: Mulish, sans-serif;
  font-size: 20px;
  font-style: normal;
  font-weight: 700;
  line-height: 32px;
  display: flex;
}

.div-block-9 {
  grid-column-gap: 0px;
  grid-row-gap: 0px;
  border: 1px none var(--deep-pink);
  background-color: var(--alice-blue);
  border-top-left-radius: 8px;
  border-bottom-left-radius: 8px;
  flex: 0 auto;
  justify-content: flex-start;
  align-self: stretch;
  align-items: stretch;
  margin-left: auto;
  margin-right: auto;
  padding: 10px 107px 10px 33px;
  display: flex;
  position: relative;
}

.section {
  z-index: 100;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 15vh;
  display: flex;
  position: fixed;
  inset: auto 0% 0%;
}

.text-block-2 {
  color: var(--deep-pink-2);
  text-align: center;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  font-family: Essential, sans-serif;
  font-size: 50px;
  font-weight: 300;
  line-height: 50px;
  display: flex;
}

.text-block-2.lefticontxt {
  color: #52c0f78f;
  margin-top: 3px;
  font-size: 38px;
  font-weight: 300;
  line-height: 51px;
}

.text-block-2.pnkicon {
  color: #fd479261;
  font-size: 36px;
}

.back-button {
  border: 1px solid var(--deep-sky-blue);
  color: #fff;
  border-radius: 0;
  justify-content: center;
  align-items: center;
  width: 50px;
  min-width: 50px;
  height: 50px;
  min-height: 50px;
  margin-right: 14px;
  padding: 14px;
  transition: all .3s;
  display: flex;
}

.back-button:hover {
  border-color: var(--hot-pink);
  background-color: var(--hot-pink);
  filter: none;
  color: #fff;
}

.button-testimonial-wrapper {
  align-items: center;
  height: 40px;
  display: flex;
}

.next-button {
  border: 1px solid var(--deep-sky-blue);
  background-color: var(--deep-sky-blue);
  color: #fff;
  border-radius: 0;
  justify-content: center;
  align-items: center;
  width: 50px;
  min-width: 50px;
  height: 50px;
  min-height: 50px;
  padding: 14px;
  transition: all .3s;
  display: flex;
}

.next-button:hover {
  border-color: var(--deep-pink);
  background-color: var(--deep-pink);
}

.footer-social-wrapper {
  justify-content: center;
  align-items: center;
  margin-top: 40px;
  display: flex;
}

.footer-link {
  color: var(--deep-pink);
  letter-spacing: .1em;
  text-transform: uppercase;
  border: 0 solid #0000;
  border-radius: 0;
  margin-left: 4px;
  margin-right: 4px;
  padding: 10px 16px;
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
  text-decoration: none;
  transition: all .2s;
}

.footer-link:hover {
  color: var(--alice-blue-2-3);
  border: 0 solid #37456c;
  border-radius: 0;
}

.social-icon {
  background-color: var(--alice-blue-2-3);
  color: #061237;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  width: 50px;
  min-width: 50px;
  height: 50px;
  min-height: 50px;
  margin: 8px;
  transition: all .3s;
  display: flex;
}

.social-icon:hover {
  color: var(--deep-sky-blue-3);
  background-color: #fff;
}

.section-footer {
  background-color: var(--deep-sky-blue-2);
  align-items: center;
  padding: 100px 5%;
  display: flex;
  position: relative;
  overflow: hidden;
}

.footer-logo {
  width: 330px;
  margin-bottom: 0;
}

.footer-link-wrapper {
  color: var(--deep-pink);
  justify-content: center;
  align-items: center;
  margin-top: 37px;
  margin-bottom: 1px;
  display: flex;
}

.container-large {
  z-index: 5;
  width: 100%;
  max-width: 1240px;
  margin-left: auto;
  margin-right: auto;
  position: relative;
}

.paragraph-footer {
  color: #fff;
  letter-spacing: 0;
  max-width: 600px;
  margin-top: 34px;
  margin-bottom: 0;
  font-family: Inter, sans-serif;
  font-size: 16px;
  font-weight: 300;
  line-height: 32px;
  display: block;
}

.icon-social {
  justify-content: center;
  align-items: center;
  display: flex;
}

.footer-wrapper {
  text-align: center;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  margin-left: auto;
  margin-right: auto;
  padding-bottom: 70px;
  display: flex;
}

.line1 {
  background-color: #fff;
  width: 100%;
  height: 1px;
}

.star-wrapper {
  justify-content: flex-start;
  align-items: center;
  margin-bottom: 0;
  display: flex;
}

.text-span-4 {
  color: var(--deep-pink);
  margin-top: 0;
  margin-bottom: 0;
  padding-top: 0;
  padding-right: 5px;
  font-family: Essential, sans-serif;
  font-size: 13px;
  font-style: normal;
  font-weight: 400;
  line-height: 0;
  text-decoration: none;
  display: inline;
}

.text-span-4.emailj {
  padding-left: 11px;
  padding-right: 5px;
}

.link {
  color: var(--lavender-blush-2);
  text-decoration: none;
}

.link:hover {
  opacity: .9;
  text-decoration: none;
}

.link-2, .link-3 {
  color: var(--alice-blue-2-3);
  text-decoration: none;
}

.icon-2 {
  color: #fff;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  display: flex;
}

.text-block-6 {
  color: var(--alice-blue);
  font-family: Inter, sans-serif;
  font-size: 16px;
}

.text-span-7 {
  color: var(--deep-pink);
}

.div-block-19 {
  margin-top: 41px;
}

.header {
  height: 100dvh;
  padding-top: 0;
  display: flex;
  overflow: hidden;
}

.head-left {
  grid-column-gap: 6vw;
  grid-row-gap: 6vw;
  flex-flow: column;
  flex: 1;
  justify-content: center;
  align-items: flex-start;
  padding-left: 3vw;
  position: relative;
}

.title-1 {
  color: var(--deep-pink);
  letter-spacing: -.06em;
  font-size: 4.1vw;
  font-weight: 500;
  line-height: .9em;
}

.title-1.serrif {
  letter-spacing: -.03em;
  font-family: swear-display, "Swear Fallback", "Swear Fallback Android", "Times New Roman", serif;
  font-style: italic;
}

.body-text {
  grid-column-gap: 10px;
  grid-row-gap: 10px;
  letter-spacing: -.02em;
  flex: 1;
  font-size: 16px;
  font-weight: 300;
  line-height: 1.3em;
}

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

.flex-block-2 {
  grid-column-gap: 30px;
  grid-row-gap: 30px;
  width: 29vw;
  color: var(--deep-sky-blue-2);
}

.text-block-8 {
  color: var(--deep-sky-blue-2);
  font-size: 1vw;
  font-weight: 700;
  line-height: 1.3em;
  text-decoration: none;
}

.div-block-21 {
  background-color: var(--deep-pink);
  width: 100%;
  height: 2.4px;
}

.flex-block-3 {
  grid-column-gap: 26px;
  grid-row-gap: 26px;
}

.head-right {
  grid-column-gap: 6vw;
  grid-row-gap: 6vw;
  border-bottom-left-radius: 2vw;
  flex-flow: column;
  justify-content: center;
  align-items: flex-end;
  width: 56vw;
  padding-top: 120px;
  padding-bottom: 60px;
  padding-right: 50px;
}

.border-img {
  border-radius: var(--image-border);
  overflow: hidden;
}

.image-new {
  object-fit: cover;
  width: 100%;
  height: 107%;
}

.image-container {
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  display: flex;
  position: relative;
  overflow: hidden;
}

.image-container.border-img {
  justify-content: center;
  align-items: center;
  display: flex;
}

.image-container.border-img.with-video {
  z-index: 3;
}

.our-services {
  background-color: #ffecf4;
  justify-content: center;
  align-items: flex-start;
  display: flex;
  position: relative;
  overflow: hidden;
}

.mw-container {
  width: 100%;
  padding: 8vw var(--pad-3vw) 12vw;
  grid-column-gap: 8vw;
  grid-row-gap: 8vw;
  justify-content: center;
  align-items: center;
  position: relative;
}

.mw-container.blue-bg {
  background-color: var(--alice-blue);
}

.services-cards-container {
  flex-flow: row;
  position: relative;
  overflow: hidden;
}

.title-mw-1 {
  color: var(--deep-pink);
  letter-spacing: -.0125em;
  margin-top: 0;
  margin-bottom: 0;
  font-family: swear-display, "Swear Fallback", "Swear Fallback Android", "Times New Roman", serif;
  font-size: 5vw;
  font-weight: 400;
  line-height: 1em;
}

.services-icon-container {
  aspect-ratio: 1;
  object-fit: cover;
  background-color: #feb1cf;
  border-radius: 100px;
  justify-content: center;
  align-items: center;
  width: 50px;
  height: 50px;
  margin-top: 5px;
  margin-right: 21px;
  padding: 10px;
  display: flex;
}

.icon-svg {
  color: #fff;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  display: flex;
}

.service-card {
  grid-column-gap: 4.5vw;
  grid-row-gap: 4.5vw;
  border-left: 0 solid #feb1cf;
  flex: 1;
  padding: 0% 6% 1% 2%;
  position: relative;
  overflow: visible;
}

.service-card.last-ser, .service-card.last-ser.serv-page {
  padding-right: 2%;
}

.service-card.serv-page {
  grid-column-gap: 3.75vw;
  grid-row-gap: 3.75vw;
  padding-right: 4%;
}

.title2-mw-1 {
  letter-spacing: -.03em;
  font-size: 2vw;
  font-weight: 500;
  line-height: 1em;
}

.title2-mw-1.serv-title-card-1 {
  max-width: 6vw;
}

.body-mw-1 {
  letter-spacing: -.02em;
  font-size: 15px;
  font-weight: 300;
  line-height: 1.4em;
}

.flex-block-11 {
  grid-column-gap: 1.5vw;
  grid-row-gap: 1.5vw;
}

.flex-block-12 {
  padding-right: 6vw;
}

.flex-block-12.serv-page {
  padding-right: 0;
}

.heart-bg-graphic--container {
  opacity: .02;
  width: 69%;
  height: 119%;
  position: absolute;
  inset: -6% -7% auto auto;
}

.code-embed {
  position: absolute;
  inset: 0% auto auto 0%;
}

.connect-to-care {
  justify-content: center;
  align-items: center;
  display: flex;
  position: relative;
}

.mw-connect-to-care {
  grid-column-gap: 5vw;
  grid-row-gap: 5vw;
  justify-content: flex-start;
  align-items: center;
  width: 100%;
  padding: 13vw 14vw 8vw;
}

.mw-connect-to-care.services-mw {
  grid-column-gap: 3vw;
  grid-row-gap: 3vw;
  flex-flow: column;
  justify-content: center;
  align-items: center;
  padding: 0;
  display: flex;
}

.mw-connect-to-care.serv-pad {
  padding-top: 12vw;
  padding-bottom: 5vw;
}

.title-mw-2 {
  color: var(--deep-sky-blue-2);
  text-align: center;
  letter-spacing: -.025em;
  margin-top: 0;
  margin-bottom: 0;
  font-family: swear-display, "Swear Fallback", "Swear Fallback Android", "Times New Roman", serif;
  font-size: 4vw;
  font-weight: 400;
  line-height: 1em;
}

.script-mw-1 {
  text-align: center;
  font-family: swear-display, "Swear Fallback", "Swear Fallback Android", "Times New Roman", serif;
  font-size: 2.5vw;
  font-style: italic;
  line-height: 1.4em;
}

.heart-svg-container {
  aspect-ratio: 1;
  justify-content: center;
  align-items: center;
  width: 140px;
  max-width: 150px;
  height: auto;
  display: flex;
  position: absolute;
  top: 0;
  transform: translate(0, -45%);
}

.heart-logo-image {
  opacity: 1;
  position: static;
  inset: 0% auto 0% 0%;
}

.advantages-list {
  padding-right: var(--padding-9vw);
  padding-bottom: 8vw;
  padding-left: var(--padding-9vw);
  flex-flow: column;
  justify-content: flex-start;
  align-items: center;
  display: flex;
}

.advantages-list-item {
  justify-content: flex-start;
  align-items: center;
  width: 100%;
  padding-top: 6vw;
  padding-bottom: 6vw;
}

.item-text-wrapper {
  grid-column-gap: 2vw;
  grid-row-gap: 2vw;
  flex: 1;
  padding-right: 15vw;
}

.item-text-wrapper.right {
  padding-left: 10vw;
  padding-right: 5vw;
}

.item-text-wrapper.text-wrap-hero {
  grid-column-gap: 3vw;
  grid-row-gap: 3vw;
  padding-left: 6vw;
  padding-right: 0;
}

.item-text-wrapper.text-wrap-serv {
  grid-column-gap: 3vw;
  grid-row-gap: 3vw;
  padding-left: 6vw;
  padding-right: 8vw;
}

.item-image-container {
  width: 50%;
}

.text-block-9 {
  color: var(--deep-pink);
  font-size: 14px;
  font-weight: 700;
}

.text-block-9.blue-text {
  color: var(--deep-sky-blue);
}

.item-image {
  aspect-ratio: 4 / 3;
  border-radius: .8vw;
  width: 100%;
  position: relative;
}

.image-backdrop {
  z-index: -1;
  border-radius: var(--image-border);
  background-color: #ffeff5;
  width: 96%;
  height: 96%;
  position: absolute;
  bottom: 8%;
  left: 7%;
}

.image-backdrop.blue-backdrop {
  background-color: #e8f6fe;
  top: 8%;
  bottom: 0%;
}

.image-backdrop.blue-backdrop.img-02b {
  top: 10%;
  left: 8%;
}

.image-backdrop.img-01 {
  top: 7%;
  bottom: auto;
}

.image-backdrop.img-02a {
  top: 9%;
  bottom: auto;
  left: 10%;
}

.image-backdrop.blue-backdrop2 {
  z-index: 1;
  background-color: #e8f6fe;
  inset: auto 7% 8% auto;
}

.icon-badge {
  border: 1px none var(--deep-pink);
  background-color: var(--lavender-blush);
  opacity: .9;
  border-radius: 45px;
  justify-content: center;
  align-items: center;
  width: 70px;
  height: 70px;
  margin-top: 0;
  margin-left: 70px;
  margin-right: auto;
  display: flex;
  position: absolute;
  inset: auto auto 0% 0%;
  transform: translate(0, 41%);
}

.icon-badge.left-blue-icon {
  background-color: #d8f2ffba;
  top: 0%;
  bottom: auto;
  transform: translate(0, -41%);
}

.outer-circle {
  border: 2px solid #52c0f738;
  border-radius: 70px;
  width: 120px;
  height: 120px;
  display: block;
  position: absolute;
}

.outer-circle.pink-outer {
  border-color: #ffdfeccf;
  display: block;
}

.text-block-10-copy {
  letter-spacing: -.06em;
  margin-bottom: 5px;
  font-family: Inter, sans-serif;
  font-size: 3.5vw;
  font-weight: 500;
  line-height: .75em;
}

.text-block-10-co2py {
  margin-bottom: 5px;
  font-family: swear-display, "Swear Fallback", "Swear Fallback Android", "Times New Roman", serif;
  font-size: 3.7vw;
  font-style: italic;
  line-height: .65em;
}

.testimonials {
  padding: 9vw var(--padding-9vw);
  background-color: var(--alice-blue-2-3);
  flex-flow: column;
  display: flex;
}

.loc-text-wrapper {
  grid-column-gap: 2vw;
  grid-row-gap: 2vw;
  text-align: center;
  justify-content: flex-start;
  align-items: center;
  padding-top: 5vw;
  padding-left: 30vw;
  padding-right: 30vw;
}

.text-testimonial {
  letter-spacing: -.02em;
  font-family: Inter, sans-serif;
  font-size: 16px;
  font-weight: 200;
  line-height: 1.3em;
}

.testimonial-image-container {
  aspect-ratio: 2.5 / 3;
  border-radius: 20px;
  width: 33%;
  position: relative;
}

.testimonial-text-container {
  flex-flow: column;
  flex: 1;
  justify-content: space-between;
  align-items: stretch;
  min-height: 100%;
  display: flex;
}

.quote-img {
  opacity: .38;
  height: 2vw;
  position: relative;
}

.image-7 {
  width: 5vw;
  position: relative;
  left: -3vw;
}

.div-block-25 {
  padding-right: 6vw;
}

.pink-text {
  color: var(--deep-pink);
}

.testimonial-name-wrapper {
  justify-content: flex-start;
  align-items: center;
  margin-top: 40px;
  font-size: 1vw;
  display: flex;
}

.testimonial-name-wrapper.body-text {
  grid-column-gap: .75vw;
  grid-row-gap: .75vw;
  font-weight: 500;
}

.swiper.review-swiper {
  position: relative;
}

.swiper-slide.review-card-vid {
  grid-column-gap: 5vw;
  grid-row-gap: 5vw;
  width: 100%;
  padding: 3vw;
  display: flex;
}

.review-arrows {
  z-index: 102;
  justify-content: flex-end;
  align-items: flex-end;
  padding-bottom: 3vw;
  padding-right: 3vw;
  display: flex;
  position: absolute;
  inset: auto 0% 0% auto;
}

.locations {
  background-image: linear-gradient(#fff, #ffecf45c);
}

.marquee-advanced__scroll {
  width: 100%;
  display: flex;
  position: relative;
}

.marquee-advanced__item-width {
  background-color: #fff;
  border-radius: 1vw;
  justify-content: center;
  align-items: center;
  height: 5.5vw;
  margin: 1vw;
  padding-left: 2.5vw;
  padding-right: 2.5vw;
  font-size: 1.5vw;
  display: flex;
  box-shadow: 0 8px 24px #2b1d6714;
}

.marquee-advanced__collection {
  will-change: transform;
  flex-flow: row;
  display: flex;
  position: relative;
}

.marquee-advanced {
  width: 100%;
  position: relative;
  overflow: visible;
}

.marquee-wrapper {
  padding-top: 6vw;
  padding-bottom: 10vw;
  overflow: hidden;
}

.text-block-13 {
  letter-spacing: -.03em;
  font-size: 16px;
  font-weight: 300;
  line-height: 1.4em;
}

.testimonials-text-wrapper {
  grid-column-gap: 2vw;
  grid-row-gap: 2vw;
  text-align: center;
  justify-content: flex-start;
  align-items: center;
  padding-top: 0;
  padding-bottom: 6vw;
}

.location-text {
  max-width: 600px;
  color: var(--deep-sky-blue-2);
  letter-spacing: -.02em;
  white-space: nowrap;
  margin-bottom: 0;
  font-family: Inter, sans-serif;
  font-size: 1.5vw;
  font-weight: 300;
  line-height: 32px;
}

.loc-icon {
  color: var(--deep-pink);
  align-items: center;
  padding-right: 6px;
  font-family: Essential, sans-serif;
  font-size: 1.5em;
  font-weight: 300;
  line-height: 1.2em;
  display: flex;
}

.testimonial-name-text {
  letter-spacing: -.01em;
  font-size: 16px;
  line-height: 1.3em;
}

.testimonial-name-text.pink-text {
  letter-spacing: -.02em;
}

.flex-block-14 {
  opacity: .71;
  padding-top: 1vw;
}

.button-new {
  grid-column-gap: 3px;
  grid-row-gap: 3px;
  border: 1px solid var(--deep-pink);
  height: 40px;
  color: var(--deep-pink);
  border-radius: 6px;
  justify-content: center;
  align-items: center;
  padding-top: 1px;
  padding-left: 16px;
  padding-right: 16px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1em;
  text-decoration: none;
  transition: all .3s cubic-bezier(.25, .46, .45, .94);
  display: flex;
}

.button-new:hover {
  background-color: var(--deep-pink);
  color: #fff;
}

.button-new.submit {
  background-color: var(--deep-pink);
  color: #fff;
  padding-top: 0;
  padding-bottom: 0;
  font-weight: 600;
}

.button-new.hamburger-menu {
  border-color: var(--deep-sky-blue-2);
  background-color: var(--deep-sky-blue-2);
  width: 40px;
  padding-top: 0;
  padding-left: 0;
  padding-right: 0;
  display: none;
}

.button-new.hamburger-menu:hover {
  background-color: var(--deep-sky-blue-2);
  color: var(--deep-sky-blue);
}

.link-arrow {
  width: .9em;
  height: 1em;
  position: absolute;
  bottom: 0;
  left: 0;
}

.link-arrow._2nd-arr {
  bottom: -15px;
  left: -15px;
}

.nav-link-new {
  grid-column-gap: .3vw;
  grid-row-gap: .3vw;
  height: 40px;
  color: var(--deep-sky-blue);
  letter-spacing: -.04em;
  justify-content: center;
  align-items: center;
  padding-left: 14px;
  padding-right: 14px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1em;
  text-decoration: none;
  transition: all .3s cubic-bezier(.25, .46, .45, .94);
  display: flex;
}

.nav-link-new:hover {
  color: #0994da;
}

.nav-link-new.w--current {
  white-space: nowrap;
}

.nav-link-new.pink-nav-link {
  grid-column-gap: 6px;
  grid-row-gap: 6px;
  color: var(--deep-pink);
}

.nav-link-new.pink-nav-link:hover {
  color: #cf075a;
}

.cta-floating {
  height: 57px;
  color: var(--deep-pink);
  text-transform: uppercase;
  background-color: #edf7fc;
  border: 1px solid #cdebfa;
  border-radius: 7px;
  justify-content: center;
  align-items: center;
  padding: 6px 6px 6px 0;
  font-family: Inter, sans-serif;
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  transition: all .3s cubic-bezier(.25, .46, .45, .94);
  display: flex;
  overflow: hidden;
  box-shadow: 4px 8px 12px #00000026;
}

.cta-floating:hover {
  box-shadow: 4px 8px 12px #0003;
}

.arrow-box {
  background-color: var(--deep-pink);
  color: #fff;
  cursor: pointer;
  border-radius: 5px;
  justify-content: center;
  align-items: center;
  width: 44px;
  height: 100%;
  font-size: 12px;
  position: relative;
  overflow: hidden;
}

.arrow-box.back-button {
  width: 40px;
  min-width: 0;
  height: 40px;
  min-height: 0;
  color: var(--deep-sky-blue);
  background-color: #0000;
  padding: 12px;
}

.arrow-box.back-button:hover {
  border-color: var(--deep-sky-blue);
  background-color: var(--deep-sky-blue);
  color: #fff;
}

.arrow-box.next-button {
  background-color: var(--deep-sky-blue);
  width: 40px;
  min-width: 0;
  height: 40px;
  min-height: 0;
  padding: 12px 11px 12px 13px;
}

.arrow-box.next-button:hover {
  border-color: var(--deep-sky-blue);
}

.code-embed-2 {
  width: 15px;
  height: 13px;
  margin-right: 1px;
  position: absolute;
}

.code-embed-2.prev {
  transform: rotate(180deg);
}

.code-embed-2.ar-out {
  left: -20px;
}

.badge-chap {
  background-image: url("/assets/images/chap-accreditation-badge.webp");
  background-position: 50%;
  background-repeat: no-repeat;
  background-size: contain;
  width: 140px;
  height: 140px;
  margin-top: 0%;
  margin-left: 0;
  position: absolute;
  top: -60px;
  left: -60px;
}

.badge-chap.serv-badge {
  top: 0;
  left: -60px;
}

.background-video {
  width: 100%;
  height: 100%;
}

.line-separator {
  background-color: #feb1cf;
  width: 1px;
  height: 130%;
  position: absolute;
  top: 0;
  left: 0;
}

.play-wrapper {
  z-index: 10;
  border-radius: var(--image-border);
  opacity: 0;
  cursor: pointer;
  justify-content: center;
  align-items: center;
  width: 100%;
  text-decoration: none;
  transition: opacity .3s cubic-bezier(.25, .46, .45, .94);
  display: flex;
  position: absolute;
  inset: 0%;
  transform: translate(0);
}

.play-wrapper:hover {
  opacity: 100;
  background-color: #00000026;
}

.play-btn {
  border: 1px solid var(--deep-pink);
  width: 50px;
  height: 50px;
  color: var(--deep-pink);
  border-radius: 100px;
  overflow: hidden;
}

.play-btn.test-btn {
  border-width: 0;
  border-radius: 200px;
  transform: scale(1.4);
}

.vimeo-lightbox__pause {
  cursor: pointer;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  display: flex;
  position: absolute;
}

.vimeo-lightbox__timeline {
  flex-grow: 1;
  justify-content: center;
  align-items: center;
  height: 1.5em;
  display: flex;
  position: relative;
}

.vimeo-lightbox__loading-svg {
  color: #ff4c24;
  width: 6em;
}

.vimeo-lightbox__player {
  pointer-events: auto;
  color: #efeeec;
  isolation: isolate;
  background-color: #131313;
  border-radius: 1em;
  justify-content: center;
  align-items: center;
  width: 100%;
  display: flex;
  position: relative;
  overflow: hidden;
}

.vimeo-lightbox__dark {
  opacity: .5;
  pointer-events: none;
  background-color: #131313;
  width: 100%;
  height: 100%;
  transition: opacity .3s linear;
  position: absolute;
}

.vimeo-lightbox__volume-up-svg {
  width: 100%;
  position: absolute;
}

.vimeo-lightbox__btn {
  -webkit-backdrop-filter: blur(1em);
  backdrop-filter: blur(1em);
  background-color: #64646433;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  width: 6em;
  height: 6em;
  transition: opacity .3s linear;
  display: flex;
  position: relative;
}

.vimeo-lightbox__volume-mute-svg, .vimeo-lightbox__fullscreen-scale-svg {
  width: 100%;
  position: absolute;
}

.vimeo-lightbox__duration-span {
  text-align: center;
  white-space: nowrap;
  -webkit-user-select: none;
  user-select: none;
  width: 100%;
  display: block;
}

.vimeo-lightbox__interface-bottom {
  grid-column-gap: 1em;
  grid-row-gap: 1em;
  justify-content: flex-start;
  align-items: center;
  display: flex;
}

.vimeo-lightbox__play {
  cursor: pointer;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  display: flex;
  position: absolute;
}

.vimeo-lightbox__timeline-input {
  pointer-events: auto;
  cursor: pointer;
  appearance: none;
  background-color: #0000;
  width: 100%;
  height: 100%;
  display: block;
  position: relative;
}

.vimeo-lightbox__calc-wrap {
  width: 100%;
  position: relative;
}

.vimeo-lightbox {
  z-index: 400;
  pointer-events: none;
  justify-content: center;
  align-items: center;
  padding: 5vw;
  display: none;
  position: fixed;
  inset: 0;
  overflow: hidden;
}

.vimeo-lightbox__iframe {
  pointer-events: none;
  width: 100%;
  height: 100%;
  position: absolute;
}

.vimeo-lightbox__timeline-progress {
  vertical-align: top;
  appearance: none;
  width: 100%;
  height: var(--progress-height);
  border-radius: var(--timeline-rounded-corners);
  color: var(--progress-fill-bg);
  background-color: #0000;
  border: none;
  margin: 0;
  padding: 0;
  position: absolute;
  left: 0;
  overflow: hidden;
}

.vimeo-lightbox__interface {
  pointer-events: none;
  flex-flow: column;
  justify-content: flex-end;
  align-items: stretch;
  width: 100%;
  height: 100%;
  padding: min(2em, 4vw);
  transition-property: opacity;
  transition-duration: .3s;
  transition-timing-function: linear;
  display: flex;
  position: absolute;
}

.vimeo-lightbox__close {
  z-index: 600;
  pointer-events: auto;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  width: 3em;
  height: 3em;
  display: flex;
  position: absolute;
  top: 2.5vw;
  right: 2.5vw;
}

.vimeo-lightbox__fullscreen-shrink-svg {
  width: 100%;
  position: absolute;
}

.vimeo-lightbox__placeholder {
  object-fit: cover;
  width: 100%;
  height: 100%;
  transition: opacity .3s linear;
  display: none;
  position: absolute;
}

.vimeo-lightbox__bg {
  pointer-events: auto;
  background-color: #131313;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  display: flex;
  position: absolute;
  top: 0;
  left: 0;
}

.vimeo-lightbox__calc {
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  display: flex;
  position: relative;
}

.vimeo-lightbox__close-bar {
  background-color: currentColor;
  width: 1em;
  height: .125em;
  position: absolute;
  transform: rotate(-45deg);
}

.vimeo-lightbox__close-bar.is--duplicate {
  transform: rotate(45deg);
}

.vimeo-lightbox__btn-play-svg {
  width: 40%;
}

.vimeo-lightbox__btn-pause-svg {
  width: 50%;
}

.vimeo-lightbox__loading {
  pointer-events: none;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  transition: opacity .3s linear;
  display: flex;
  position: absolute;
}

.vimeo-lightbox__mute {
  cursor: pointer;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: 1.5em;
  height: 1.5em;
  display: flex;
  position: relative;
}

.vimeo-lightbox__fullscreen {
  cursor: pointer;
  justify-content: center;
  align-items: center;
  width: 1.5em;
  height: 1.5em;
  display: flex;
  position: relative;
}

.vimeo-lightbox__before {
  padding-top: 62.5%;
}

.vimeo-lightbox__duration {
  flex-shrink: 0;
  width: 2.25em;
}

.code-embed-3 {
  border-radius: 11px;
}

.services-header {
  flex-flow: column;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
  padding: 3vw;
  display: flex;
}

.text-span-9 {
  color: var(--deep-sky-blue-2);
}

.blue-bg {
  background-color: var(--lavender-blush-2);
}

.text-wrapper-services {
  grid-column-gap: 4vw;
  grid-row-gap: 4vw;
  flex: 1;
  padding-left: 2vw;
  padding-right: 5vw;
}

.text-wrapper-services.right-txt-wrp {
  padding-left: 6vw;
  padding-right: 2vw;
}

.flex-block-15 {
  border-bottom: 1px solid var(--deep-pink);
  width: 100%;
  padding-bottom: 20px;
}

.text-block-18 {
  color: var(--deep-pink);
  font-family: swear-display, "Swear Fallback", "Swear Fallback Android", "Times New Roman", serif;
  font-size: 3.3vw;
  line-height: .8em;
}

.bulletpoint {
  color: var(--deep-pink);
  margin-top: .01vw;
  font-family: Essential, sans-serif;
  font-size: 1vw;
}

.bullet-list-item {
  grid-column-gap: .8vw;
  grid-row-gap: .8vw;
  letter-spacing: -.02em;
  font-size: 15px;
  line-height: 1.3em;
}

.list-wrapper-service {
  grid-column-gap: 1vw;
  grid-row-gap: 1vw;
}

.payment-section {
  background-color: var(--alice-blue);
  background-image: none;
  flex-flow: column;
  justify-content: flex-start;
  align-items: center;
  padding-top: 7vw;
  padding-bottom: 7vw;
  display: flex;
  position: relative;
}

.flex-block-16 {
  grid-column-gap: 2.5vw;
  grid-row-gap: 2.5vw;
  justify-content: flex-start;
  align-items: flex-start;
}

.image-10 {
  aspect-ratio: 1;
  object-fit: contain;
  justify-content: center;
  align-items: center;
  height: 143px;
  display: flex;
}

/* The assessment button stays pinned to the bottom of the screen, lands under the Locations text, then scrolls away
   with the page. It's sticky, so the browser does all of this by itself. .cta-dock holds its place on the page.
   .cta-dock-track reaches from there up past the top of the page, because a sticky element only travels inside its
   parent. Around it, overflow: hidden, contain or content-visibility would cut the button off, and a transform or
   z-index would put it behind other sections.
   top centers it between the text and the location cards: half the difference between the space above it (the
   wrapper's row gap) and below it (.marquee-wrapper's padding-top plus the cards' 1vw margin). */
.cta-dock {
  align-self: stretch;
  height: 57px;
  position: relative;
  top: 2.5vw;
}

.cta-dock-track {
  pointer-events: none;
  justify-content: center;
  align-items: flex-end;
  height: 100000px;
  display: flex;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
}

.cta-dock-track .cta-floating {
  z-index: 200;
  pointer-events: auto;
  flex: none;
  max-width: none;
  position: sticky;
  bottom: 40px;
}

.flex-block-17 {
  justify-content: center;
  align-items: flex-start;
  min-height: 100vh;
  padding: 140px 9vw 10vw;
}

.left-contact {
  grid-column-gap: 3vw;
  grid-row-gap: 3vw;
  flex: 1;
  justify-content: space-between;
  height: 74vh;
  padding-right: 10vw;
  position: sticky;
  top: 80px;
}

.right-contact {
  width: 56%;
  max-width: 800px;
}

.form-block-2 {
  width: 100%;
}

.flex-block-18 {
  justify-content: center;
  align-items: flex-start;
  padding-left: 10vw;
  padding-right: 10vw;
}

.div-block-26 {
  width: 100%;
  height: 100%;
  position: relative;
}

.prev-hero-texts {
  grid-column-gap: 6vw;
  grid-row-gap: 6vw;
  display: none;
}

.text-block-17--hero {
  color: var(--deep-pink);
  margin-top: 0;
  margin-bottom: 0;
  font-family: swear-display, "Swear Fallback", "Swear Fallback Android", "Times New Roman", serif;
  font-size: 4.4vw;
  line-height: .88em;
}

.body-text-hero {
  letter-spacing: -.02em;
  font-size: 16px;
  font-weight: 300;
  line-height: 1.5em;
}

.flex-block-hero-text {
  padding-right: 4vw;
}

.serv-hero-img {
  width: 37%;
  margin-right: 7vw;
}

.flex-block-22 {
  grid-column-gap: 3vw;
  grid-row-gap: 3vw;
  flex-flow: column;
  flex: 1;
  justify-content: flex-start;
  align-items: center;
  max-width: 30vw;
  padding-left: 1vw;
  padding-right: 1vw;
}

.image-11 {
  height: 84%;
}

.text-block-20-copy {
  color: var(--deep-pink);
  text-align: center;
  font-family: swear-display, "Swear Fallback", "Swear Fallback Android", "Times New Roman", serif;
  font-size: 3.5vw;
  line-height: .8em;
}

.flex-block-23 {
  grid-column-gap: 3vw;
  grid-row-gap: 3vw;
  padding-top: 6vw;
}

.field-label {
  color: var(--deep-sky-blue-2);
  font-weight: 400;
}

.field-label.pink-text {
  color: var(--deep-pink);
  letter-spacing: -.02em;
  font-size: 18px;
  font-weight: 400;
}

.flex-block-24 {
  grid-column-gap: 4px;
  grid-row-gap: 4px;
  padding-bottom: 2px;
}

.text-field {
  letter-spacing: -.02em;
  border: 0 solid #000;
  border-bottom: 1px solid #00000026;
  padding-left: 0;
  padding-right: 0;
  font-size: 20px;
  line-height: 1.2em;
}

.text-field::placeholder {
  font-weight: 200;
}

.text-field.area {
  height: auto;
  min-height: 200px;
}

.form-2 {
  grid-column-gap: 50px;
  grid-row-gap: 50px;
  flex-flow: column;
  padding-top: 12px;
  display: flex;
}

.flex-block-26 {
  grid-column-gap: 4px;
  grid-row-gap: 4px;
}

.checkbox-field {
  justify-content: flex-start;
  align-items: center;
  padding-top: 10px;
  padding-bottom: 10px;
  font-size: 20px;
  display: flex;
}

.checkbox {
  width: 16px;
  height: 17px;
  margin-top: 0;
  margin-right: 13px;
}

.flex-block-27 {
  opacity: .5;
  padding-top: 5px;
  padding-bottom: 20px;
}

.checkbox-label {
  letter-spacing: -.02em;
  font-weight: 200;
}

.flex-block-28 {
  padding: 2px;
}

.text-block-24 {
  font-size: 16px;
  font-weight: 300;
}

.btn-icon-content__mask {
  z-index: 1;
  flex: none;
  justify-content: flex-start;
  align-items: center;
  display: flex;
  position: relative;
  overflow: hidden;
}

.btn-icon-link {
  grid-column-gap: .5em;
  grid-row-gap: .5em;
  color: #a29a65;
  justify-content: center;
  align-items: center;
  height: 60px;
  padding-left: 30px;
  padding-right: 30px;
  font-size: 1em;
  line-height: 1.2;
  text-decoration: none;
  display: flex;
}

.btn-icon-content__text {
  color: var(--deep-pink);
  font-size: 15px;
}

.code-embed-5 {
  position: absolute;
  inset: 0% auto auto 0%;
}

.div-block-27 {
  width: 14px;
  height: 14px;
  position: relative;
  overflow: hidden;
}

.nav-new {
  z-index: 300;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 76px;
  padding-left: 9vw;
  padding-right: 9vw;
  position: absolute;
}

.flex-block-30 {
  justify-content: space-between;
  width: 22px;
  height: 15px;
  position: relative;
}

.line2, .line3 {
  background-color: #fff;
  width: 100%;
  height: 1px;
}

.menu-contaner {
  display: flex;
}

.overlay-menu, .whitebg-menu {
  display: none;
}

.no-wrap {
  white-space: nowrap;
}

.review-text-container {
  position: relative;
}

.flex-block-31 {
  padding-bottom: 10px;
}

.flex-block-32 {
  grid-column-gap: 3vw;
  grid-row-gap: 3vw;
}

.link-block {
  grid-column-gap: 6px;
  grid-row-gap: 6px;
  color: var(--deep-sky-blue-2);
  text-decoration: none;
  display: flex;
}

.text-block-25.pink-text {
  font-family: Essential, sans-serif;
  font-weight: 400;
}

.text-block-25.pink-text.loc-ico-contact {
  margin-left: 1px;
  margin-right: 1px;
  font-size: 14px;
}

.vflex-contact {
  grid-column-gap: 10px;
  grid-row-gap: 10px;
  font-size: 14px;
  font-weight: 300;
}

.hero-gallery-ratio {
  box-sizing: content-box;
  aspect-ratio: 1.1;
  object-fit: contain;
  justify-content: flex-end;
  align-items: flex-end;
}

.gallery-right {
  flex: 1;
  height: 100%;
}

.gallery-left {
  grid-column-gap: 30px;
  grid-row-gap: 30px;
  justify-content: flex-end;
  align-items: flex-end;
  width: 35%;
  height: 100%;
  padding-top: 25%;
  padding-bottom: 11%;
  padding-right: 30px;
}

.image-l-hero {
  width: 100%;
  height: 100%;
  position: relative;
}

.image-2-hero-cont {
  flex: 1;
  width: 100%;
  padding-left: 30%;
  position: relative;
}

.video-block---home-copy {
  width: 100%;
  height: 41%;
  position: relative;
}

.google-reviews {
  padding: 120px 20px 0;
  display: flex;
  position: relative;
}

.code-embed-6 { min-height: 283px; /* the live reviews' height, so nothing jumps when they load */ width: 100%; margin-bottom: 0; }

.marquee-container {
  width: 100%;
}

.badges-wrapper {
  padding-top: 37px;
}

.link-block-2 {
  color: var(--alice-blue);
  margin-top: 20px;
  text-decoration: none;
}

.text-block-27 {
  opacity: .6;
  font-size: 12px;
  font-weight: 400;
  transition: opacity .3s cubic-bezier(.25, .46, .45, .94);
}

.text-block-27:hover {
  opacity: 1;
}

.privacy-policy {
  justify-content: center;
  align-items: flex-start;
  min-height: 100vh;
  padding: 130px 9vw 200px;
  display: flex;
}

.flex-block-34 {
  flex-flow: column;
  align-items: stretch;
  width: 70%;
}

.flex-block-35 {
  margin-bottom: 100px;
}

.flex-block-36 {
  grid-column-gap: 10px;
  grid-row-gap: 10px;
  padding-bottom: 20px;
}

.flex-block-37 {
  grid-column-gap: 15px;
  grid-row-gap: 15px;
  border-bottom: 0 solid #313131;
  align-items: stretch;
  padding-top: 30px;
  padding-bottom: 30px;
}

.pp-headings {
  letter-spacing: -.02em;
  margin-bottom: 5px;
  font-family: Inter, sans-serif;
  font-size: 26px;
  font-weight: 500;
  line-height: 1em;
}

.flex-block-38 {
  grid-column-gap: 10px;
  grid-row-gap: 10px;
}

.pp-title-mw-1-copy {
  color: var(--deep-pink);
  letter-spacing: -.0125em;
  font-family: swear-display, "Swear Fallback", "Swear Fallback Android", "Times New Roman", serif;
  font-size: 51px;
  line-height: 1em;
}

.opacity-down {
  opacity: .75;
}

.flex-block-39 {
  width: 50%;
  padding-right: 40px;
}

.prev-review {
  display: none;
}

.testimonial-video-container {
  aspect-ratio: 3 / 2;
  border-radius: 20px;
  width: 66%;
  position: relative;
}

.quote-testimonial {
  letter-spacing: -.02em;
  font-family: swear-display, "Swear Fallback", "Swear Fallback Android", "Times New Roman", serif;
  font-size: 38px;
  font-style: italic;
  font-weight: 200;
  line-height: 1.3em;
}

.div-block-25-copy {
  padding-right: 0;
}

.testimonial-text-container-2 {
  flex-flow: column;
  flex: 1;
  justify-content: center;
  align-items: stretch;
  min-height: 100%;
  display: flex;
}

.div-block-28 {
  justify-content: flex-start;
  align-items: center;
  width: 20px;
  height: 20px;
  display: flex;
}

.div-block-29 {
  background-color: #000;
  border-radius: 20px;
  width: 6px;
  height: 6px;
}

.pp-list-wrapper {
  grid-column-gap: 10px;
  grid-row-gap: 10px;
}

.utility-page-wrap {
  justify-content: center;
  align-items: center;
  width: 100vw;
  max-width: 100%;
  height: 100vh;
  max-height: 100%;
  display: flex;
}

.utility-page-content {
  grid-column-gap: 20px;
  grid-row-gap: 20px;
  text-align: center;
  flex-direction: column;
  width: 260px;
  display: flex;
}

.success-message {
  background-color: #0000;
}

.text-block-28 {
  color: var(--deep-sky-blue-3);
  text-align: left;
}

.heading {
  margin-bottom: -6px;
  padding-bottom: 0;
  font-family: Inter, sans-serif;
  font-size: 22px;
  font-weight: 300;
  line-height: 20px;
}

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

  .line1 {
    background-color: #fff;
    width: 100%;
    height: 2px;
    padding-bottom: 0;
    padding-right: 0;
    position: relative;
  }

  .body-text {
    font-size: 1.05vw;
  }

  .head-right {
    justify-content: flex-end;
    align-items: center;
  }

  .service-card.serv-page {
    height: 100%;
  }

  .title2-mw-1.serv-title-card-1 {
    max-width: 8vw;
  }

  .body-mw-1 {
    font-size: 1vw;
  }

  .heart-bg-graphic--container {
    width: 74%;
  }

  .mw-connect-to-care {
    padding-left: 21vw;
    padding-right: 21vw;
  }

  .title-mw-2 {
    font-size: 4.5vw;
  }

  .script-mw-1 {
    font-size: 2vw;
  }

  .text-block-9 {
    font-size: 1vw;
  }

  .text-testimonial {
    font-size: 1.1vw;
  }

  .text-block-13 {
    font-size: 1.2vw;
  }

  .testimonial-name-text {
    font-size: 1.1vw;
  }

  .button-new.hamburger-menu {
    border-color: var(--deep-sky-blue-2);
    background-color: var(--deep-sky-blue-2);
    width: 40px;
    padding-top: 0;
    padding-left: 0;
    padding-right: 0;
  }

  .button-new.hamburger-menu:hover {
    border-color: var(--deep-sky-blue-2);
    background-color: var(--deep-sky-blue-2);
  }

  .bullet-list-item {
    font-size: 1.2vw;
  }

  .flex-block-17 {
    padding-top: 140px;
    padding-bottom: 140px;
  }

  .right-contact {
    padding-top: 13px;
  }

  .body-text-hero {
    font-size: 1.1vw;
  }

  .flex-block-30 {
    justify-content: space-between;
    width: 23px;
    height: 17px;
    position: relative;
  }

  .line2, .line3 {
    background-color: #fff;
    width: 100%;
    height: 2px;
    padding-bottom: 0;
    padding-right: 0;
    position: relative;
  }

  .menu-contaner {
    transform: translate(0);
  }

  .flex-block-32 {
    grid-column-gap: 3vw;
    grid-row-gap: 3vw;
  }

  .blue-text {
    color: var(--deep-sky-blue-2);
  }

  .link-block {
    grid-column-gap: 6px;
    grid-row-gap: 6px;
    justify-content: flex-start;
    align-items: flex-start;
    text-decoration: none;
    display: flex;
  }

  .text-block-25 {
    font-family: Essential, sans-serif;
  }

  .text-block-25.pink-text {
    font-weight: 400;
  }

  .text-block-26 {
    color: var(--deep-sky-blue-2);
  }

  .vflex-contact {
    grid-column-gap: .5vw;
    grid-row-gap: .5vw;
  }

  .hero-gallery-ratio {
    justify-content: flex-end;
    align-items: center;
    max-width: 56vw;
    height: 97%;
  }

  .privacy-policy {
    padding-top: 10vw;
  }

  .flex-block-35 {
    margin-bottom: 4.5vw;
  }

  .flex-block-36 {
    padding-bottom: 3vw;
  }

  .flex-block-37 {
    grid-column-gap: 1.2vw;
    grid-row-gap: 1.2vw;
    padding-top: 2vw;
    padding-bottom: 2vw;
  }

  .pp-headings {
    font-size: 1.8vw;
  }

  .pp-title-mw-1-copy {
    font-size: 3.6vw;
  }

  .opacity-down {
    opacity: .75;
  }

  .testimonial-text-container-2 {
    justify-content: center;
  }

  .div-block-28 {
    width: 1.2vw;
    height: 1.2vw;
  }
}

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

  .navigation-right {
    z-index: 210;
    flex: 0 auto;
    align-items: center;
    margin-top: 14px;
    display: flex;
    position: relative;
  }

  .brand {
    margin-right: 10px;
    padding: 0;
  }

  .navigation-left {
    z-index: 210;
    margin-top: 14px;
    position: relative;
  }

  .search-block-wrapper {
    max-width: 90vw;
  }

  .text-block {
    font-size: 18px;
  }

  .text-block-2, .text-block-2.lefticontxt {
    font-size: 26px;
  }

  .text-block-2.pnkicon {
    font-size: 30px;
  }

  .section-footer {
    background-color: var(--deep-sky-blue-2);
    padding-bottom: 140px;
  }

  .footer-link-wrapper {
    flex-wrap: wrap;
  }

  .line1 {
    background-color: #fff;
    justify-content: space-between;
    width: 100%;
    height: 2px;
    padding-bottom: 0;
    padding-right: 0;
    display: flex;
  }

  .header {
    height: auto;
    padding-top: 30px;
    padding-bottom: 30px;
  }

  .body-text {
    font-size: 15px;
  }

  .head-right {
    justify-content: center;
    align-items: flex-end;
  }

  .service-card.serv-page {
    padding-right: 2%;
  }

  .title2-mw-1 {
    font-size: 2.4vw;
  }

  .body-mw-1 {
    font-size: 13px;
  }

  .flex-block-12 {
    padding-right: 3vw;
  }

  .heart-bg-graphic--container {
    width: 100%;
    height: 120%;
  }

  .heart-svg-container {
    width: 110px;
  }

  .heart-logo-image {
    max-width: 120px;
  }

  .item-text-wrapper {
    padding-right: 6vw;
  }

  .item-text-wrapper.right {
    padding-left: 6vw;
    padding-right: 0;
  }

  .item-text-wrapper.text-wrap-hero {
    padding-left: 0;
    padding-right: 0;
  }

  .item-text-wrapper.text-wrap-serv {
    padding-left: 0;
    padding-right: 8vw;
  }

  .icon-badge {
    width: 50px;
    height: 50px;
    margin: -50px 60px auto auto;
    left: 12%;
  }

  .icon-badge.left-blue-icon {
    margin-top: 0;
  }

  .outer-circle {
    width: 90px;
    height: 90px;
  }

  .text-block-10-copy {
    font-size: 36px;
  }

  .text-block-10-co2py {
    font-size: 34px;
  }

  .testimonial-image-container {
    max-width: 300px;
  }

  .quote-img {
    position: absolute;
    top: 0;
    left: 0;
  }

  .div-block-25 {
    padding-right: 0;
  }

  .testimonial-name-wrapper {
    justify-content: center;
  }

  .testimonial-name-wrapper.body-text {
    margin-top: 20px;
  }

  .swiper.review-swiper, .swiper-wrapper {
    width: 100%;
  }

  .swiper-slide.review-card-vid {
    flex-flow: column;
    justify-content: flex-start;
    align-items: center;
  }

  .review-arrows {
    padding-bottom: 0;
    padding-right: 0;
    bottom: 0%;
  }

  .location-text {
    font-size: 2vw;
  }

  .loc-icon {
    font-size: 1.7em;
    line-height: 1.1em;
  }

  .button-new.hamburger-menu {
    border-color: var(--deep-sky-blue-2);
    background-color: var(--deep-sky-blue-2);
    width: 40px;
    height: 40px;
    padding-left: 0;
    padding-right: 0;
    display: flex;
  }

  .button-new.hamburger-menu:hover {
    background-color: var(--deep-sky-blue-2);
  }

  .badge-chap {
    width: 120px;
    height: 120px;
  }

  .play-wrapper {
    opacity: 100;
  }

  .play-btn {
    width: 40px;
    height: 40px;
  }

  .bulletpoint {
    margin-top: 0;
    font-size: 10px;
  }

  .bullet-list-item {
    grid-column-gap: 8px;
    grid-row-gap: 8px;
  }

  .flex-block-17 {
    flex-flow: column;
  }

  .left-contact {
    width: 100%;
    padding-bottom: 60px;
    padding-right: 0;
    position: relative;
    top: 0;
  }

  .right-contact {
    width: 100%;
  }

  .text-block-17--hero {
    font-size: 5vw;
  }

  .serv-hero-img {
    margin-right: 4vw;
  }

  .nav-new {
    z-index: 200;
    background-color: #fff;
    justify-content: center;
    align-items: flex-start;
    padding-top: 0;
    padding-left: 3vw;
    padding-right: 3vw;
  }

  .line2, .line3 {
    background-color: #fff;
    justify-content: space-between;
    width: 100%;
    height: 2px;
    padding-bottom: 0;
    padding-right: 0;
    display: flex;
  }

  .menu-contaner {
    z-index: 200;
    background-color: #fff;
    flex-flow: column;
    justify-content: flex-start;
    align-items: center;
    width: 100%;
    padding-top: 90px;
    padding-bottom: 50px;
    display: none;
    position: absolute;
    top: 0;
    left: 0;
  }

  .overlay-menu {
    z-index: 198;
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
    background-color: #00000040;
    width: 100%;
    height: 120vh;
    display: none;
    position: absolute;
    top: 0;
    left: 0;
  }

  .whitebg-menu {
    z-index: 208;
    background-color: #fff;
    width: 100%;
    height: 79px;
    display: flex;
    position: absolute;
    inset: 0% 0% auto;
  }

  .review-text-container {
    justify-content: flex-start;
    align-items: center;
  }

  .vflex-contact {
    display: none;
  }

  .hero-gallery-ratio {
    height: auto;
  }

  .gallery-left {
    grid-column-gap: 20px;
    grid-row-gap: 20px;
    padding-right: 20px;
  }

  .privacy-policy {
    padding-left: 3vw;
    padding-right: 3vw;
  }

  .flex-block-34 {
    width: 100%;
  }

  .pp-headings {
    font-size: 30px;
  }

  .pp-title-mw-1-copy {
    font-size: 56px;
  }

  .flex-block-39 {
    width: 100%;
  }

  .flex-block-41 {
    flex-flow: column;
  }

  .testimonial-video-container {
    width: 100%;
  }

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

  .div-block-25-copy {
    padding-right: 0;
  }

  .div-block-28 {
    height: 16px;
  }
}

@media screen and (max-width: 767px) {
  body {
    --image-border: 6px;
    --padding-9vw: 20px;
    --padding-lr: 20px;
  }

  .footer-link {
    font-size: 14px;
  }

  .section-footer {
    background-color: var(--deep-sky-blue-2);
  }

  .footer-wrapper {
    margin-bottom: 0;
  }

  .line1 {
    grid-column-gap: 16px;
    grid-row-gap: 16px;
    background-color: #fff;
    border: 0 #000;
    flex-direction: column;
    grid-template-rows: auto auto;
    grid-template-columns: 1fr 1fr;
    grid-auto-columns: 1fr;
    justify-content: space-between;
    align-items: stretch;
    width: 100%;
    height: 3px;
    margin-bottom: 0;
    padding-bottom: 0;
    padding-right: 0;
    display: flex;
    position: relative;
  }

  .header {
    grid-column-gap: 30px;
    grid-row-gap: 30px;
    flex-flow: column;
    height: auto;
    padding-top: 50px;
  }

  .head-left {
    flex: 0 auto;
    justify-content: flex-start;
    align-items: flex-start;
    padding: 60px 20px 10px;
  }

  .body-text {
    font-size: 14px;
  }

  .head-right {
    align-self: flex-end;
    width: 450px;
    padding-top: 20px;
    padding-bottom: 20px;
  }

  .image-container.border-img {
    border-radius: var(--image-border);
  }

  .mw-container.blue-bg {
    grid-column-gap: 50px;
    grid-row-gap: 50px;
  }

  .title2-mw-1 {
    font-size: 18px;
  }

  .heart-bg-graphic--container {
    width: 150%;
  }

  .mw-connect-to-care {
    padding-top: 100px;
    padding-bottom: 100px;
  }

  .mw-connect-to-care.services-mw {
    grid-column-gap: 30px;
    grid-row-gap: 30px;
  }

  .mw-connect-to-care.serv-pad {
    padding-top: 100px;
  }

  .title-mw-2 {
    font-size: 40px;
  }

  .script-mw-1 {
    font-size: 20px;
  }

  .heart-svg-container {
    width: 80px;
  }

  .advantages-list-item {
    grid-column-gap: 60px;
    grid-row-gap: 60px;
    flex-flow: column;
    justify-content: flex-start;
    align-items: flex-start;
    padding-bottom: 10vw;
  }

  .item-text-wrapper.right {
    order: -1;
    padding-left: 0;
  }

  .item-text-wrapper.text-wrap-hero {
    grid-column-gap: 5vw;
    grid-row-gap: 5vw;
    padding-right: 27vw;
  }

  .item-text-wrapper.text-wrap-serv {
    padding-right: 20vw;
  }

  .item-image-container {
    width: 94%;
  }

  .icon-badge {
    margin-top: 0;
    margin-right: 0;
    left: auto;
    right: 30px;
    transform: translate(0, 50%)scale(1);
  }

  .testimonials {
    padding-top: 90px;
    padding-bottom: 90px;
  }

  .loc-text-wrapper {
    padding-top: 30px;
    padding-left: 15vw;
    padding-right: 15vw;
  }

  .text-testimonial {
    text-align: center;
    font-size: 14px;
  }

  .testimonial-image-container {
    width: 50%;
    height: 240px;
  }

  .quote-img {
    position: absolute;
    inset: -15px auto auto 0%;
  }

  .image-7 {
    width: 6vw;
  }

  .div-block-25 {
    padding-right: 0;
  }

  .swiper.review-swiper {
    padding-bottom: 50px;
  }

  .swiper-slide.review-card-vid {
    flex-flow: column;
    justify-content: flex-start;
    align-items: center;
  }

  .review-arrows {
    bottom: 0%;
  }

  .marquee-wrapper {
    padding-top: 60px;
    padding-bottom: 80px;
  }

  .text-block-13 {
    font-size: 14px;
  }

  .location-text {
    font-size: 2vw;
    font-weight: 300;
    line-height: 4vw;
  }

  .loc-icon {
    font-size: 1.7em;
  }

  .testimonial-name-text {
    font-size: 14px;
  }

  .button-new.submit {
    width: 100%;
  }

  .cta-floating {
    height: 51px;
  }

  .arrow-box {
    width: 39px;
  }

  .arrow-box.back-button, .arrow-box.next-button {
    width: 36px;
    height: 36px;
  }

  .badge-chap {
    width: 110px;
    height: 100px;
    top: -40px;
  }

  .badge-chap.serv-badge {
    width: 90px;
    height: 80px;
  }

  .services-header {
    justify-content: flex-start;
    align-items: center;
    padding-top: 100px;
    padding-left: 20px;
    padding-right: 20px;
  }

  .text-wrapper-services {
    grid-column-gap: 40px;
    grid-row-gap: 40px;
    padding-top: 60px;
  }

  .text-wrapper-services.right-txt-wrp {
    order: -1;
    padding-left: 2vw;
  }

  .text-block-18 {
    font-size: 6vw;
  }

  .bulletpoint {
    margin-top: 1px;
  }

  .list-wrapper-service {
    grid-column-gap: 10px;
    grid-row-gap: 10px;
  }

  .cta-dock {
    height: 51px;
    top: calc(30px - .5vw);
  }

  .cta-dock-track .cta-floating {
    bottom: 20px;
  }

  .flex-block-17 {
    padding: 100px 20px;
  }

  .left-contact {
    padding-top: 20px;
  }

  .text-block-17--hero {
    font-size: 8vw;
  }

  .serv-hero-img {
    width: 80%;
    margin-left: 10vw;
    margin-right: 0;
  }

  .text-block-20-copy {
    font-size: 6vw;
  }

  .flex-block-23 {
    grid-column-gap: 10vw;
    grid-row-gap: 10vw;
  }

  .btn-icon-link {
    width: 256px;
    padding-left: 20px;
    padding-right: 20px;
  }

  .btn-icon-content__text {
    font-size: 14px;
  }

  .nav-new {
    padding-left: 20px;
    padding-right: 20px;
  }

  .line2, .line3 {
    grid-column-gap: 16px;
    grid-row-gap: 16px;
    background-color: #fff;
    border: 0 #000;
    flex-direction: column;
    grid-template-rows: auto auto;
    grid-template-columns: 1fr 1fr;
    grid-auto-columns: 1fr;
    justify-content: space-between;
    align-items: stretch;
    width: 100%;
    height: 3px;
    margin-bottom: 0;
    padding-bottom: 0;
    padding-right: 0;
    display: flex;
    position: relative;
  }

  .review-text-container {
    justify-content: flex-start;
    align-items: center;
    position: relative;
  }

  .flex-block-32 {
    grid-column-gap: 20px;
    grid-row-gap: 20px;
  }

  .privacy-policy {
    padding-left: 20px;
    padding-right: 20px;
  }

  .testimonial-video-container {
    width: 100%;
    height: 280px;
  }

  .quote-testimonial {
    text-align: center;
    font-size: 21px;
  }

  .div-block-25-copy {
    padding-right: 0;
  }

  .div-block-28 {
    width: 16px;
  }
}

@media screen and (max-width: 479px) {
  .navigation-right {
    grid-column-gap: 12px;
    grid-row-gap: 12px;
    width: auto;
    display: flex;
  }

  .brand.w--current {
    width: 204px;
  }

  .navigation-left {
    flex: 1;
    max-width: 215px;
  }

  .search-block-wrapper {
    flex-direction: row;
    flex: 1;
    justify-content: space-between;
    align-items: stretch;
    max-width: 100vw;
    margin-top: 40px;
    display: flex;
  }

  .search-block-wrapper.buttonm {
    grid-column-gap: 16px;
    grid-row-gap: 16px;
    grid-template-rows: auto auto;
    grid-template-columns: 1fr 1fr;
    grid-auto-columns: 1fr;
    display: block;
  }

  .div-block-7 {
    border-radius: 0;
    flex: 1;
    justify-content: center;
    align-items: stretch;
  }

  .div-block-7.buttonmi {
    justify-content: center;
    align-items: center;
    width: 100vw;
    height: 100%;
    position: relative;
  }

  .button.arrowlink {
    background-color: var(--zerowhite);
    border-radius: 0;
    justify-content: flex-end;
    width: 100%;
    height: 100%;
    min-height: auto;
    padding-left: 7px;
    padding-right: 16px;
    font-size: 19px;
    position: absolute;
    top: 0;
    left: 0;
  }

  .text-block {
    min-width: auto;
    min-height: auto;
    color: var(--alice-blue-2-3);
    text-align: center;
    letter-spacing: 1px;
    border-radius: 0;
    flex-flow: column;
    flex: 1;
    justify-content: center;
    align-items: flex-start;
    padding-bottom: 0;
    font-size: 4.5vw;
    font-weight: 400;
    line-height: 23px;
    display: flex;
    position: static;
    top: 0;
    left: 0;
  }

  .div-block-9 {
    border-color: var(--hot-pink);
    background-color: var(--hot-pink);
    border-radius: 0;
    flex-wrap: nowrap;
    flex: 1;
    justify-content: space-around;
    align-items: stretch;
    min-height: 40px;
    padding-left: 24px;
    padding-right: 0;
    font-size: 5vw;
    position: relative;
  }

  .section {
    height: auto;
  }

  .section.button {
    flex-direction: column;
    align-items: stretch;
    padding-left: 0;
    padding-right: 0;
    display: none;
  }

  .back-button {
    border-color: var(--deep-sky-blue);
    filter: none;
    color: var(--deep-sky-blue);
  }

  .back-button:hover {
    border-color: var(--deep-sky-blue);
    background-color: var(--deep-sky-blue);
  }

  .button-testimonial-wrapper {
    margin-top: 20px;
    margin-right: 0;
  }

  .next-button {
    border-color: var(--deep-sky-blue);
    background-color: var(--deep-sky-blue);
    filter: none;
  }

  .next-button:hover {
    border-color: var(--deep-sky-blue-2);
    background-color: var(--deep-sky-blue-2);
  }

  .footer-link {
    border-style: none;
    border-radius: 0;
    margin-top: 4px;
    margin-bottom: 4px;
    padding-top: 5px;
    padding-bottom: 5px;
    font-size: 14px;
  }

  .footer-link:hover {
    color: var(--lavender-blush-2);
    border-style: none;
  }

  .section-footer {
    background-color: var(--deep-sky-blue-2);
    padding-top: 60px;
    padding-bottom: 100px;
  }

  .footer-logo {
    object-fit: contain;
    width: auto;
    max-width: 90%;
  }

  .footer-link-wrapper {
    border: 1px #000;
    flex-direction: column;
  }

  .paragraph-footer {
    font-size: 14px;
  }

  .footer-wrapper {
    padding-bottom: 60px;
  }

  .line1 {
    border-radius: 1px;
    height: 2px;
  }

  .star-wrapper {
    align-items: center;
    margin-bottom: 0;
    display: flex;
  }

  .header {
    grid-column-gap: 0px;
    grid-row-gap: 0px;
    padding-top: 80px;
  }

  .head-left {
    padding-top: 20px;
    padding-left: 20px;
    padding-right: 20px;
  }

  .body-text {
    font-size: 15px;
  }

  .head-right {
    justify-content: flex-start;
    align-items: flex-start;
    width: 96vw;
    height: auto;
    padding-top: 50px;
    padding-right: 30px;
  }

  .mw-container {
    grid-column-gap: 70px;
    grid-row-gap: 70px;
    padding-top: 80px;
    padding-bottom: 70px;
  }

  .services-cards-container {
    flex-flow: column;
  }

  .title-mw-1 {
    text-align: center;
    font-size: 10vw;
  }

  .services-icon-container {
    margin-bottom: 24px;
    margin-left: auto;
    margin-right: auto;
  }

  .service-card {
    grid-column-gap: 3vw;
    grid-row-gap: 3vw;
    padding-bottom: 40px;
    padding-left: 20px;
    padding-right: 20px;
  }

  .service-card.last-ser {
    padding-right: 20px;
  }

  .service-card.last-ser.serv-page {
    padding-left: 50px;
    padding-right: 50px;
  }

  .service-card.serv-page {
    padding-bottom: 60px;
    padding-left: 50px;
    padding-right: 50px;
  }

  .title2-mw-1 {
    text-align: center;
    font-size: 22px;
  }

  .title2-mw-1.serv-title-card-1 {
    max-width: 100%;
  }

  .body-mw-1 {
    text-align: center;
    font-size: 14px;
  }

  .flex-block-11 {
    grid-column-gap: 5vw;
    grid-row-gap: 5vw;
    justify-content: center;
    align-items: center;
  }

  .heart-bg-graphic--container {
    width: 160%;
    top: 1%;
  }

  .mw-connect-to-care {
    grid-column-gap: 20px;
    grid-row-gap: 20px;
    padding: 100px 30px 80px;
  }

  .mw-connect-to-care.services-mw {
    grid-column-gap: 20px;
    grid-row-gap: 20px;
  }

  .mw-connect-to-care.serv-pad {
    padding-top: 100px;
  }

  .title-mw-2 {
    font-size: 36px;
  }

  .title-mw-2.loc-tle {
    font-size: 38px;
  }

  .title-mw-2.test-tle {
    font-size: 34px;
  }

  .script-mw-1 {
    font-size: 20px;
  }

  .advantages-list-item {
    grid-column-gap: 80px;
    grid-row-gap: 80px;
    flex-flow: column;
    justify-content: flex-start;
    align-items: flex-start;
    padding-bottom: 10vw;
  }

  .item-text-wrapper {
    grid-column-gap: 5vw;
    grid-row-gap: 5vw;
    padding-right: 3vw;
  }

  .item-text-wrapper.right {
    order: -1;
    padding-left: 0;
    padding-right: 3vw;
  }

  .item-text-wrapper.text-wrap-hero {
    grid-column-gap: 40px;
    grid-row-gap: 40px;
    padding-right: 6vw;
  }

  .item-text-wrapper.text-wrap-serv {
    grid-column-gap: 7vw;
    grid-row-gap: 7vw;
    padding-right: 10vw;
  }

  .item-image-container {
    width: 100%;
  }

  .testimonials {
    padding-bottom: 60px;
  }

  .loc-text-wrapper {
    grid-column-gap: 20px;
    grid-row-gap: 20px;
    padding-top: 20px;
    padding-left: 10vw;
    padding-right: 10vw;
  }

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

  .testimonial-image-container {
    width: 60%;
    height: 50vw;
    padding-top: 0;
    padding-left: 0;
  }

  .quote-img {
    top: -10px;
  }

  .div-block-25 {
    padding-right: 0;
  }

  .testimonial-name-wrapper.body-text {
    margin-top: 15px;
  }

  .swiper-slide.review-card-vid {
    flex-flow: column;
    justify-content: center;
    align-items: center;
    margin-top: 20px;
  }

  .marquee-advanced__item-width {
    height: 9vw;
  }

  .marquee-wrapper {
    padding-top: 50px;
    padding-bottom: 60px;
  }

  .cta-dock {
    top: calc(15px + .5vw);
  }

  .location-text {
    color: var(--deep-sky-blue-2);
    white-space: nowrap;
    -webkit-text-fill-color: inherit;
    background-clip: border-box;
    flex-direction: row;
    font-size: 3.2vw;
    font-weight: 200;
    display: flex;
  }

  .loc-icon {
    color: var(--deep-pink);
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    padding-right: 4px;
    font-family: Essential, sans-serif;
    font-size: 4vw;
    font-weight: 300;
    line-height: 1.1em;
    display: flex;
  }

  .button-new {
    height: 36px;
    padding-left: 12px;
    padding-right: 12px;
  }

  .button-new.hamburger-menu {
    width: 36px;
    height: 36px;
  }

  .arrow-box.next-button:hover, .arrow-box.next-button:active {
    background-color: var(--deep-sky-blue);
  }

  .badge-chap {
    width: 90px;
    height: 90px;
    top: -50px;
    left: -50px;
  }

  .badge-chap.serv-badge {
    width: 100px;
    height: 90px;
    top: -60px;
    left: 10px;
  }

  .line-separator {
    display: none;
  }

  .play-btn {
    width: 35px;
    height: 35px;
  }

  .services-header {
    min-height: auto;
    padding-left: 20px;
    padding-right: 20px;
  }

  .text-wrapper-services {
    grid-column-gap: 34px;
    grid-row-gap: 34px;
    width: 100%;
    padding-top: 50px;
    padding-left: 0;
    padding-right: 0;
  }

  .text-wrapper-services.right-txt-wrp {
    order: -1;
    padding-left: 0;
    padding-right: 0;
  }

  .flex-block-15 {
    width: auto;
    padding-bottom: 10px;
  }

  .text-block-18 {
    font-size: 8vw;
  }

  .payment-section {
    padding-top: 16vw;
    padding-left: 30px;
    padding-right: 30px;
  }

  .image-10 {
    height: 80px;
  }

  .flex-block-18 {
    padding-left: 6vw;
    padding-right: 6vw;
  }

  .text-block-17--hero {
    font-size: 11vw;
  }

  .body-text-hero {
    font-size: 15px;
  }

  .serv-hero-img {
    width: 96%;
    margin-left: 0;
    margin-right: 0;
  }

  .flex-block-22 {
    max-width: 70vw;
  }

  .image-11 {
    object-fit: contain;
    height: 84%;
  }

  .text-block-20-copy {
    font-size: 8vw;
  }

  .flex-block-23 {
    grid-column-gap: 11vw;
    grid-row-gap: 11vw;
    flex-flow: column;
    justify-content: center;
    align-items: center;
    width: 100%;
    padding-top: 14vw;
    padding-bottom: 14vw;
  }

  .field-label.pink-text {
    font-size: 16px;
  }

  .text-field {
    font-size: 18px;
  }

  .nav-new {
    justify-content: space-between;
  }

  .flex-block-30 {
    width: 20px;
  }

  .line2, .line3 {
    border-radius: 1px;
    height: 2px;
  }

  .review-text-container {
    justify-content: center;
    align-items: center;
  }

  .hero-gallery-ratio {
    aspect-ratio: 1.2;
  }

  .gallery-left {
    grid-column-gap: 10px;
    grid-row-gap: 10px;
    width: 41%;
    padding-top: 20%;
    padding-bottom: 10%;
    padding-right: 10px;
  }

  .video-block---home-copy {
    height: 42%;
  }

  .privacy-policy {
    padding-bottom: 160px;
  }

  .flex-block-35 {
    margin-bottom: 60px;
  }

  .flex-block-37 {
    grid-column-gap: 16px;
    grid-row-gap: 16px;
    padding-top: 30px;
    padding-bottom: 30px;
  }

  .pp-headings {
    font-size: 24px;
  }

  .pp-title-mw-1-copy {
    text-align: left;
    font-size: 42px;
  }

  .testimonial-video-container {
    width: 100%;
    height: 57vw;
    padding-top: 0;
    padding-left: 0;
  }

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

  .div-block-25-copy {
    padding-right: 0;
  }
}

/* Icon-font glyphs live in a data-icon attribute so the letters aren't indexed as page text. */
[data-icon]::before{content:attr(data-icon)}

/* Slow drift on photos as they pass through the screen. Run by the browser itself in step with scrolling; Webflow's
   version chased the scroll position from JavaScript, so photos kept moving after the page stopped. Browsers without
   scroll-driven animations show the photos still. overflow: clip looks the same as hidden, but hidden makes a scroll
   container, and view() would then watch that instead of the page. */
@keyframes parallax-drift {
  from { translate: 0 -7%; }
  to { translate: 0 7%; }
}
@media (prefers-reduced-motion: no-preference) {
  @supports (animation-timeline: view()) {
    .image-new, img.image-10[data-w-id], .heart-bg-graphic--container {
      animation: parallax-drift linear both;
      animation-timeline: view();
    }
    .border-img, .header, .our-services { overflow: clip; }
  }
}

/* Footer: logo, links and contact details in three columns from tablet up, one centered stack on phones. */
.section-footer { padding-top: 60px; padding-bottom: 36px; }
.footer-wrapper { padding-bottom: 0; }
.footer-col { flex-direction: column; align-items: center; display: flex; }
.link-block-2 { margin-top: 0; }
.marquee-wrapper { padding-bottom: 60px; }
.div-block-19 .text-block-6 { font-size: 13px; }
.div-block-19 .text-span-7 { font-size: 16px; }

@media screen and (max-width: 767px) {
  .footer-col-contact { order: 1; }
  .footer-link-wrapper { order: 2; margin-top: 20px; }
  .footer-bottom { order: 3; margin-top: 16px; }
  .div-block-19 { margin-top: 24px; }
  .badges-wrapper { padding-top: 20px; }
  .paragraph-footer { margin-top: 28px; }
  .footer-social-wrapper { margin-top: 16px; }
}

@media screen and (min-width: 768px) {
  .footer-wrapper {
    text-align: left;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    column-gap: 40px;
    align-items: start;
    display: grid;
  }
  .footer-col { align-items: flex-start; }
  .footer-col-contact { justify-self: end; }
  .footer-logo { width: 240px; height: 27px; }
  .div-block-19 { margin-top: 20px; }
  .badges-wrapper { padding-top: 16px; }
  .footer-link-wrapper {
    grid-auto-flow: column;
    grid-template-rows: repeat(6, auto);
    column-gap: 32px;
    justify-items: start;
    margin: 0;
    display: grid;
  }
  .footer-link { margin: 0; padding: 6px 0; font-size: 14px; line-height: 20px; }
  .paragraph-footer { margin-top: 0; font-size: 15px; line-height: 26px; }
  .paragraph-footer br { display: none; }
  .paragraph-footer a { align-items: baseline; gap: 8px; display: flex; }
  .paragraph-footer .text-span-4, .paragraph-footer .text-span-4.emailj {
    flex: none;
    width: 14px;
    padding: 0;
    line-height: inherit;
  }
  .footer-social-wrapper { margin: 8px 0 0 -6px; }
  .social-icon { width: 44px; min-width: 44px; height: 44px; min-height: 44px; margin: 6px; }
  .footer-bottom {
    border-top: 1px solid #ffffff1f;
    grid-column: 1 / -1;
    margin-top: 32px;
    padding-top: 16px;
  }
}

@media screen and (min-width: 992px) {
  .footer-link-wrapper { grid-template-rows: repeat(3, auto); }
}

/* Phone header: a slimmer bar, with the menu and the hero moved up to match. */
@media screen and (max-width: 479px) {
  .nav-new { height: 60px; align-items: center; }
  .navigation-left, .navigation-right { margin-top: 0; }
  .brand.w--current { width: auto; }
  .brand-logo { width: auto; height: 18px; }
  .whitebg-menu { height: 60px; }
  .menu-contaner { padding-top: 68px; padding-bottom: 28px; }
  .header { padding-top: 64px; }
}

/* The Contact Us button is hidden on phones, so the phone menu carries the link instead. */

/* Fade-ins as things scroll into view, about 30% quicker than Webflow's timing. Each element's start state is inline in
   the page; site.js removes it when the element reaches the screen, and the browser runs the transition by itself.
   The contact page has its own fade-in, inline in contact.html. */
[data-reveal="image-scale"] { transition: transform 2.1s cubic-bezier(0.075,0.82,0.165,1); }
[data-reveal="image-fade"] { transition: opacity 0.55s cubic-bezier(0.55,0.085,0.68,0.53), transform 1.05s cubic-bezier(0.23,1,0.32,1); }
[data-reveal="title"] { transition: filter 1.4s cubic-bezier(0.25,0.1,0.25,1), opacity 1.4s cubic-bezier(0.25,0.1,0.25,1), transform 0.85s cubic-bezier(0.25,0.1,0.25,1); }
[data-reveal="title-delay"] { transition: filter 1.4s cubic-bezier(0.25,0.1,0.25,1) 0.2s, opacity 1.4s cubic-bezier(0.25,0.1,0.25,1) 0.2s, transform 0.85s cubic-bezier(0.25,0.1,0.25,1) 0.2s; }
[data-reveal="hero-body"] { transition: filter 1.4s cubic-bezier(0.25,0.1,0.25,1) 0.4s, opacity 1.4s cubic-bezier(0.25,0.1,0.25,1) 0.4s, transform 0.85s cubic-bezier(0.25,0.1,0.25,1) 0.4s; }
[data-reveal="hero-button"] { transition: filter 1.4s cubic-bezier(0.25,0.1,0.25,1) 0.6s, opacity 1.4s cubic-bezier(0.25,0.1,0.25,1) 0.6s, transform 0.85s cubic-bezier(0.25,0.1,0.25,1) 0.6s; }
[data-reveal="text"] { transition: filter 0.7s cubic-bezier(0.25,0.1,0.25,1), opacity 0.7s cubic-bezier(0.25,0.1,0.25,1), transform 0.7s cubic-bezier(0.25,0.1,0.25,1); }
[data-reveal="body"] { transition: filter 0.7s cubic-bezier(0.25,0.1,0.25,1) 0.2s, opacity 0.7s cubic-bezier(0.25,0.1,0.25,1) 0.2s, transform 0.55s cubic-bezier(0.25,0.1,0.25,1) 0.2s; }
[data-reveal="blur"] { transition: filter 1.2s cubic-bezier(0.25,0.1,0.25,1) 0.15s, opacity 1.2s cubic-bezier(0.25,0.1,0.25,1) 0.15s; }
[data-reveal="icon"] { transition: filter 1.4s cubic-bezier(0.25,0.1,0.25,1) 0.2s, opacity 1.4s cubic-bezier(0.25,0.1,0.25,1) 0.2s, transform 0.85s cubic-bezier(0.25,0.1,0.25,1) 0.2s; }
[data-reveal="title-short"] { transition: filter 1.05s cubic-bezier(0.25,0.1,0.25,1), opacity 1.05s cubic-bezier(0.25,0.1,0.25,1), transform 0.7s cubic-bezier(0.25,0.1,0.25,1); }
[data-reveal="line"] { transition: transform 0.55s ease-out; }
.line-separator { transform-origin: top; }
@media (prefers-reduced-motion: reduce) {
  [data-reveal] { transition: none; }
}

/* These headings have line heights tighter than their letters. Safari trims a blurring element to its box, which cut
   the letters off as a fade-in finished, so the box is made taller here. The negative margin keeps the layout the same. */
.title-1, .text-block-17--hero, .title-mw-1, .title-mw-2, .title2-mw-1, .text-block-20-copy {
  padding-bottom: .4em;
  margin-bottom: -.4em;
}
.text-block-10-copy, .text-block-10-co2py {
  padding-top: .1em;
  padding-bottom: .4em;
  margin-top: -.1em;
  margin-bottom: calc(5px - .4em);
}

/* Call buttons. .call-btn is in the header on every page. The header scrolls away, so on the pages with the assessment
   button, .call-float takes over at the bottom of the screen. site.js shows it only once the header is gone, and hides
   it as the assessment button lands, so that button never slides across it, and for the footer, which has the number.
   Navy, because white on the site's sky blue is too faint to read at this size. */
@font-face {
  /* The Essential file again, but with a blank icon rather than a letter "R" until it arrives, since this is above the fold. */
  font-family: "Essential Icon";
  src: url("/assets/fonts/essential-regular.woff2") format("woff2");
  font-display: block;
}

/* Stand-ins for the heading font (swear-display, from Adobe Fonts) while it loads. Headings show at once in a system
   serif, then change to the real font when it arrives (the script in each page's head sets that up). Each stand-in
   is scaled so its words take the same room as the real font's and sits on the same baseline, so the change moves
   as little as possible. Times New Roman covers Apple and Windows devices, Noto Serif covers Android.
   The numbers were measured against swear-display in November 2026, over every heading on every page at phone, tablet
   and desktop widths: each size-adjust is the scale that left the most headings on the same number of lines (97% of
   them or more). The two overrides are swear-display's ascent (100%) and descent (22%) divided by that scale. */
@font-face {
  font-family: "Swear Fallback";
  src: local("Times New Roman"), local("TimesNewRomanPSMT");
  size-adjust: 104%;
  ascent-override: 96.2%;
  descent-override: 21.2%;
  line-gap-override: 0%;
}

@font-face {
  font-family: "Swear Fallback";
  font-style: italic;
  src: local("Times New Roman Italic"), local("TimesNewRomanPS-ItalicMT");
  size-adjust: 91%;
  ascent-override: 109.9%;
  descent-override: 24.2%;
  line-gap-override: 0%;
}

@font-face {
  font-family: "Swear Fallback Android";
  src: local("Noto Serif"), local("NotoSerif"), local("NotoSerif-Regular");
  size-adjust: 88.2%;
  ascent-override: 113.4%;
  descent-override: 24.9%;
  line-gap-override: 0%;
}

@font-face {
  font-family: "Swear Fallback Android";
  font-style: italic;
  src: local("Noto Serif Italic"), local("NotoSerif-Italic");
  size-adjust: 80%;
  ascent-override: 125%;
  descent-override: 27.5%;
  line-gap-override: 0%;
}

/* The home page's opening heading is the first thing a visitor sees, so it has stand-ins of its own, at the one scale
   that keeps its lines breaking in the same places as the real font at every width from 320px to 1920px. */
@font-face {
  font-family: "Swear Fallback Hero";
  src: local("Times New Roman"), local("TimesNewRomanPSMT");
  size-adjust: 100%;
  ascent-override: 100%;
  descent-override: 22%;
  line-gap-override: 0%;
}

@font-face {
  font-family: "Swear Fallback Hero Android";
  src: local("Noto Serif"), local("NotoSerif"), local("NotoSerif-Regular");
  size-adjust: 86%;
  ascent-override: 116.3%;
  descent-override: 25.6%;
  line-gap-override: 0%;
}

h2.text-block-17--hero {
  font-family: swear-display, "Swear Fallback Hero", "Swear Fallback Hero Android", "Times New Roman", serif;
}

.call-icon {
  font-family: "Essential Icon", Essential, sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1;
}

.call-word {
  display: none;
}

.button-new.call-btn {
  flex: none;
  gap: 8px;
  border-color: var(--deep-sky-blue-2);
  background-color: var(--deep-sky-blue-2);
  color: #fff;
  padding: 0 14px;
  font-size: 14px;
  font-weight: 600;
  white-space: nowrap;
}

.button-new.call-btn:hover, .call-float:hover {
  border-color: var(--deep-pink);
  background-color: var(--deep-pink);
  color: #fff;
}

.call-btn:focus-visible, .call-float:focus-visible {
  outline: 2px solid var(--deep-pink);
  outline-offset: 2px;
}

/* Same height, corners, type and shadow as the assessment button, so the two read as a pair. It sits under the menu (200)
   and the video popup (400). */
.call-float {
  z-index: 190;
  visibility: hidden;
  opacity: 0;
  translate: 0 8px;
  color: #fff;
  background-color: var(--deep-sky-blue-2);
  border: 1px solid var(--deep-sky-blue-2);
  border-radius: 7px;
  align-items: center;
  gap: 8px;
  height: 57px;
  padding: 0 20px;
  font-family: Inter, sans-serif;
  font-size: 15px;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
  text-decoration: none;
  text-transform: uppercase;
  display: flex;
  position: fixed;
  bottom: 40px;
  right: 40px;
  box-shadow: 4px 8px 12px #00000026;
  transition: opacity .25s ease, translate .25s ease, visibility 0s linear .25s, background-color .3s, border-color .3s;
}

.call-float.is-visible {
  visibility: visible;
  opacity: 1;
  translate: 0 0;
  transition-delay: 0s;
}

.call-float .call-icon {
  font-size: 18px;
}

@media (prefers-reduced-motion: reduce) {
  .call-float { translate: 0 0; transition: none; }
}

/* Small laptops and iPads held sideways: the header is full here, so it keeps the icon and tightens the links. */
@media screen and (min-width: 992px) and (max-width: 1199px) {
  .menu-contaner .nav-link-new { padding-left: 8px; padding-right: 8px; }
  .button-new.call-btn { width: 40px; padding: 0; }
  .call-btn .call-number { display: none; }
}

/* Tablets: closer to the edge, to keep clear of the assessment button. */
@media screen and (max-width: 991px) {
  .call-float { padding: 0 16px; right: 20px; }
}

@media screen and (max-width: 767px) {
  .call-float { height: 51px; bottom: 20px; }
  .call-float .call-number { display: none; }
  .call-float .call-word { display: inline; }
}

/* The assessment button (303px wide) fills the width here, so this one sits just above it, centered over it. */
@media screen and (max-width: 599px) {
  .call-float { bottom: 83px; left: 0; right: 0; width: fit-content; margin-inline: auto; }
}

@media screen and (max-width: 479px) {
  .call-btn .call-number { display: none; }
  .call-btn .call-word { display: inline; }
  .button-new.call-btn { padding: 0 12px; font-size: 13px; gap: 6px; }
}

/* The smallest phones have room for the icon only. */
@media screen and (max-width: 359px) {
  .call-btn .call-word { display: none; }
  .button-new.call-btn { width: 36px; padding: 0; }
}

/* Contact details stay visible on tablets and phones, above the form. */
@media screen and (max-width: 991px) {
  .vflex-contact { display: flex; gap: 4px; }
  .vflex-contact .link-block { padding: 4px 0; }
  .left-contact { height: auto; gap: 28px; padding-bottom: 40px; }
}

/* The footer's phone number and email fill their line, so they're easy to tap. */
@media screen and (max-width: 767px) {
  .paragraph-footer .link, .paragraph-footer .link-2 { display: inline-block; }
}

/* Chrome counts this invisible 100,000px box as a full-screen layout shift whenever anything above it changes height.
   Only the button inside it should be visible, and a sticky element doesn't count as shifting. */
.cta-dock-track { visibility: hidden; }
.cta-dock-track .cta-floating { visibility: visible; }

/* Small text a shade deeper on light backgrounds and lighter on navy, to reach 4.5:1 contrast. Fills, borders and large
   headings keep the brand colors. */
.nav-link-new { color: #0b76ae; }
.nav-link-new:hover { color: #095f8c; }
.nav-link-new.pink-nav-link, .button-new, .cta-floating,
.field-label.pink-text, .testimonial-name-text.pink-text { color: #d6186b; }
.nav-link-new.pink-nav-link:hover { color: #ad1256; }
.text-block-24 { color: #6b7488; }
.btn-icon-content__text, .text-block-9 { color: #d6186b; }
.text-block-9.blue-text { color: #0b76ae; }
.footer-link-wrapper, .footer-link, .text-span-7 { color: #ff5c9e; }
.button-new.submit { background-color: #d6186b; border-color: #d6186b; }
.button-new.submit:hover { background-color: #ad1256; border-color: #ad1256; }

/* Images given a width and height so the browser can hold their space. The stylesheet still decides their size. */
.image-7, .heart-logo-image { height: auto; }
.image-11 { width: auto; }

.service-title-link { color: inherit; text-decoration: none; }
.service-title-link:hover { text-decoration: underline; text-underline-offset: 0.12em; text-decoration-thickness: 1px; }

/* Live Google reviews (site.js), styled after the Elfsight widget the site used before. The card height is fixed so the
   space reserved before the reviews load matches them exactly. Google's attribution rules: the Google Maps logo 16-19px
   tall, with at least 10px of clear space on the left, right and top and 5px below. (Google also asks for its gray logo
   unmodified; the site colors the letters of "Google" by request.) The date line may run 14px into the card's right
   padding, which keeps four cards across from 1280px wide. */
.reviews-fallback { display: flex; align-items: center; justify-content: center; min-height: inherit; color: #0a6a9e; font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }
.reviews-carousel { position: relative; }
.reviews-row { display: flex; gap: 20px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; }
.reviews-row::-webkit-scrollbar { display: none; }
.reviews-row:focus-visible { outline: 2px solid #0a6a9e; outline-offset: 3px; }
.review-card { display: flex; flex: 0 0 calc((100% - 60px) / 4); flex-direction: column; box-sizing: border-box; height: 228px; padding: 24px; overflow: hidden; color: #111; font-family: Inter, sans-serif; background-color: #fff; border: 1px solid rgba(17, 17, 17, 0.1); border-radius: 24px; scroll-snap-align: start; }
.review-author { display: flex; align-items: center; gap: 12px; min-width: 0; }
.review-photo { flex: none; width: 40px; height: 40px; border-radius: 50%; object-fit: cover; background-color: #e4f6ff; }
.review-initial { display: inline-flex; align-items: center; justify-content: center; color: #192a51; font-size: 16px; font-weight: 600; }
.review-who { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.review-name { overflow: hidden; color: #111; font-size: 15px; font-weight: 600; line-height: 18px; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
.review-name:hover { text-decoration: underline; }
.review-when { display: flex; align-items: center; gap: 10px; height: 16px; margin-right: -14px; color: rgba(17, 17, 17, 0.5); font-size: 12px; line-height: 16px; white-space: nowrap; }
.review-when-text { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.gmp-logo { flex: none; width: auto; height: 16px; }
.reviews-stars { display: inline-flex; gap: 2px; margin: 18px 0 6px; color: #fcbf02; line-height: 0; }
.reviews-stars svg { width: 18px; height: 18px; fill: currentColor; }
.review-text { display: -webkit-box; flex: none; height: 69px; margin: 0; overflow: hidden; color: #111; font-size: 16px; font-weight: 400; line-height: 23px; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.review-more { align-self: flex-start; color: #006dff; font-size: 16px; line-height: 23px; text-decoration: none; }
.review-more:hover { text-decoration: underline; }
.reviews-arrow { position: absolute; top: 50%; z-index: 2; display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; margin-top: -16px; padding: 0; color: #fff; background-color: rgba(17, 17, 17, 0.5); border: 0; border-radius: 50%; cursor: pointer; transition: background-color 0.2s; }
.reviews-arrow:hover { background-color: rgba(17, 17, 17, 0.7); }
.reviews-arrow:focus-visible { outline: 2px solid #0a6a9e; outline-offset: 2px; }
.reviews-arrow[hidden] { display: none; }
.reviews-arrow svg { width: 16px; height: 16px; }
.reviews-arrow.is-prev { left: -16px; }
.reviews-arrow.is-next { right: -16px; }
.reviews-dots { display: flex; justify-content: center; gap: 4px; height: 6px; margin-top: 21px; }
.reviews-dots.is-single { visibility: hidden; }
.reviews-dot { width: 6px; height: 6px; border-radius: 50%; background-color: rgba(17, 17, 17, 0.2); transition: background-color 0.2s; }
.reviews-dot.is-active { background-color: #111; }
.reviews-note { box-sizing: border-box; height: 28px; margin: 0; padding-top: 12px; color: rgba(17, 17, 17, 0.5); font-size: 12px; line-height: 16px; text-align: center; }
@media screen and (max-width: 1279px) {
  .review-card { flex-basis: calc((100% - 40px) / 3); }
}
@media screen and (max-width: 991px) {
  .review-card { flex-basis: calc((100% - 20px) / 2); }
}
@media screen and (max-width: 767px) {
  .review-card { flex-basis: 100%; }
}

.text-block-13 a, .center-align-text a, .script-mw-1 a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.text-block-13 a:hover, .center-align-text a:hover, .script-mw-1 a:hover { color: #d6186b; }

.text-consent { display: flex; align-items: flex-start; gap: 8px; padding-left: 0; }
.text-consent .w-checkbox-input { flex: none; float: none; margin: 3px 0 0; }
.text-consent .checkbox-label { font-size: 13px; line-height: 1.45; }
.text-consent a { color: inherit; text-decoration: underline; }

.text-wrap-hero .heading { margin-bottom: 14px; }

/* Landing and guide pages (location, service, cost, reviews, FAQ, About). */
.lp { color: #192a51; font-size: 17px; font-weight: 400; line-height: 1.65; }
.lp p:not([class]), .lp .lp-lead { margin: 0 0 1em; color: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; }
.lp p:not([class]) a, .lp li a, .lp td a { color: #0a6a9e; text-decoration: underline; text-underline-offset: 2px; }
.lp p:not([class]) a:hover, .lp li a:hover, .lp td a:hover { color: #ad1256; }
.lp h2 { margin: 0 0 .55em; color: #192a51; font-family: swear-display, "Swear Fallback", "Swear Fallback Android", "Times New Roman", serif; font-size: clamp(30px, 23px + 1.7vw, 44px); font-weight: 400; line-height: 1.14; text-wrap: balance; }
.lp h3 { margin: 1.5em 0 .35em; color: #192a51; font-size: 21px; font-weight: 600; line-height: 1.3; }
.lp ul:not([class]), .lp ol:not([class]) { margin: 0 0 1em; padding-left: 1.35em; }
.lp li { margin-bottom: .4em; }
.lp li::marker { color: #d6186b; }
.lp-hero { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); align-items: center; gap: 72px; max-width: 1200px; margin: 0 auto; padding: 132px 40px 72px; }
.lp-crumbs { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 20px; padding: 0; color: #4c5a78; font-size: 14px; list-style: none; }
.lp-crumbs li { margin: 0; }
.lp-crumbs li:not(:last-child)::after { content: "/"; margin-left: 6px; color: #7b88a1; }
.lp .lp-crumbs a { color: #4c5a78; text-decoration: underline; text-underline-offset: 2px; }
.lp-crumbs li:last-child { color: #ad1256; font-weight: 600; }
.lp-hero h1 { margin: 0 0 20px; color: #fd4792; font-family: swear-display, "Swear Fallback", "Swear Fallback Android", "Times New Roman", serif; font-size: clamp(40px, 30px + 2.6vw, 60px); font-weight: 400; line-height: 1.04; text-wrap: balance; }
.lp .lp-lead { max-width: 34em; margin-bottom: 28px; font-size: 19px; line-height: 1.55; }
.lp-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.lp-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 50px; padding: 8px 22px; border-radius: 7px; color: #fff; font-size: 16px; font-weight: 600; line-height: 1.2; text-align: center; text-decoration: none; transition: background-color .2s, color .2s; }
.lp-btn-call { background-color: #192a51; }
.lp-btn-form { background-color: #d6186b; }
.lp-btn-call:hover { background-color: #d6186b; color: #fff; }
.lp-btn-form:hover { background-color: #192a51; color: #fff; }
.lp-btn:focus-visible { outline: 2px solid #0a6a9e; outline-offset: 2px; }
.lp-hero-media { position: relative; }
.lp-hero-media::before { content: ""; position: absolute; inset: -16px 16px 16px -16px; border-radius: 10px; background-color: #ffecf4; }
.lp-hero-img { position: relative; display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; border-radius: 10px; object-fit: cover; }
.lp-trust { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 36px; margin: 0; padding: 18px 40px; background-color: #e4f6ff; font-size: 15px; font-weight: 500; list-style: none; }
.lp-trust li { margin: 0; }
.lp-trust li::before { content: "\2713"; margin-right: 8px; color: #d6186b; font-weight: 700; }
.lp-section { padding: 64px 40px; }
.lp-section--tint { background-color: #f0f9fe; }
.lp-section--pink { background-color: #fff5f9; }
.lp-wrap { max-width: 760px; margin: 0 auto; }
.lp-wrap--wide { max-width: 1120px; }
.lp-answer { margin: 0 0 1.5em; padding: 20px 24px; border: 1px solid #dbe6f0; border-left: 4px solid #d6186b; border-radius: 8px; background-color: #fff; }
.lp-answer p:last-child { margin-bottom: 0; }
.lp-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; margin: 24px 0 8px; }
.lp-wrap:not(.lp-wrap--wide) .lp-cards { grid-template-columns: minmax(0, 1fr); }
.lp-cards--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lp-card { padding: 24px; border: 1px solid #dbe6f0; border-radius: 10px; background-color: #fff; box-shadow: 0 1px 2px rgba(25, 42, 81, .05); }
.lp-card h3 { margin-top: 0; }
.lp-card p:last-child { margin-bottom: 0; }
.lp-steps { margin: 24px 0 8px; padding: 0; list-style: none; counter-reset: lp-step; }
.lp-steps > li { position: relative; margin: 0; padding: 0 0 20px 56px; counter-increment: lp-step; }
.lp-steps > li::before { content: counter(lp-step); position: absolute; top: 0; left: 0; display: flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 50%; background-color: #192a51; color: #fff; font-weight: 600; }
.lp-steps > li:not(:last-child)::after { content: ""; position: absolute; top: 42px; bottom: 4px; left: 18px; width: 2px; background-color: #dbe6f0; }
.lp-steps h3 { margin: 4px 0 .25em; }
.lp-steps p:last-child { margin-bottom: 0; }
.lp-table-wrap { margin: 20px 0; overflow-x: auto; border: 1px solid #dbe6f0; border-radius: 10px; background-color: #fff; }
.lp-table { width: 100%; min-width: 480px; border-collapse: collapse; font-size: 16px; }
.lp-table caption { padding: 14px 16px 0; color: #4c5a78; font-size: 14px; text-align: left; }
.lp-table th, .lp-table td { padding: 12px 16px; border-bottom: 1px solid #e6edf4; text-align: left; vertical-align: top; }
.lp-table thead th { background-color: #f0f9fe; font-weight: 600; }
.lp-table tr:last-child td { border-bottom: 0; }
.lp-faq { margin: 16px 0 0; border-top: 1px solid #dbe6f0; }
.lp-faq-item { border-bottom: 1px solid #dbe6f0; }
.lp-faq-item summary { position: relative; padding: 16px 36px 16px 0; font-size: 18px; font-weight: 600; line-height: 1.35; cursor: pointer; list-style: none; }
.lp-faq-item summary::-webkit-details-marker { display: none; }
.lp-faq-item summary::after { content: "+"; position: absolute; top: 11px; right: 4px; color: #d6186b; font-size: 26px; font-weight: 400; }
.lp-faq-item[open] summary::after { content: "\2212"; }
.lp-faq-item summary:hover, .lp-faq-item[open] summary { color: #ad1256; }
.lp-faq-item summary:focus-visible { outline: 2px solid #0a6a9e; outline-offset: 2px; }
.lp-faq-answer { padding: 0 0 8px; }
.lp-related { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 12px; margin: 16px 0 0; padding: 0; list-style: none; }
.lp-related li { margin: 0; }
.lp .lp-related a::after { content: "\2192"; margin-left: 8px; color: #d6186b; }
.lp .lp-related a { display: block; height: 100%; padding: 16px 20px; border: 1px solid #dbe6f0; border-radius: 10px; background-color: #fff; color: #192a51; font-weight: 600; text-decoration: none; }
.lp .lp-related a:hover { border-color: #d6186b; color: #d6186b; }
.lp-cta { padding: 64px 40px; background-color: #f0f9fe; color: #192a51; text-align: center; }
.lp-cta h2::before { content: ""; display: block; width: 40px; height: 38px; margin: 0 auto 14px; background: url(/assets/images/logo-heart.7c89b51153.svg) center / contain no-repeat; }
.lp .lp-cta p:not([class]) { max-width: 38em; margin: 0 auto 24px; }
.lp-cta .lp-actions { justify-content: center; }
.lp-small { margin: 24px auto 0; color: #4c5a78; font-size: 14px; }
.lp .code-embed-6 { margin-top: 12px; }
@media screen and (min-width: 768px) {
  .footer-link-wrapper { grid-template-rows: repeat(6, auto); column-gap: 28px; }
}
@media screen and (min-width: 768px) and (max-width: 991px) {
  .footer-link-wrapper { grid-column: 1 / -1; grid-row: 2; grid-template-rows: repeat(5, auto); margin-top: 24px; }
  .footer-col-contact { grid-column: 3; grid-row: 1; }
}
@media screen and (max-width: 991px) {
  .lp-hero { grid-template-columns: minmax(0, 1fr); gap: 40px; padding: 112px 24px 48px; }
  .lp-hero-media { max-width: 560px; margin-left: 16px; }
}
@media screen and (max-width: 767px) {
  .lp { font-size: 16px; }
  .lp-cards--two { grid-template-columns: minmax(0, 1fr); }
  .lp-hero { padding: 96px 20px 40px; }
  .lp .lp-lead { font-size: 18px; }
  .lp-btn { flex: 1 1 100%; }
  .lp-trust { flex-direction: column; align-items: flex-start; padding: 16px 20px; }
  .lp-section, .lp-cta { padding: 48px 20px; }
  .lp h3 { font-size: 19px; }
  .lp-steps > li { padding-left: 50px; }
  .lp-table caption { padding-right: max(16px, calc(538px - 100vw)); }
  .footer-link-wrapper { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 12px; justify-items: center; width: 100%; }
  .footer-link { font-size: 13px; letter-spacing: .06em; white-space: nowrap; }
}

/* Phones and tablets. Every control is at least 44px to tap and the smallest text is 14px. Where the look should stay as it
   was, padding with an equal negative margin grows the area that answers a tap without moving anything. An email address in
   running text may break, since it can't fit a 320px screen otherwise. */
.lp a { overflow-wrap: anywhere; }

@media screen and (max-width: 991px) {
  /* The home page's photo collage is a flex item with no width of its own. Chrome stretches it to the column, but Safari sizes
     it by its contents, which left it a third as wide as the screen on iPhones. */
  .hero-gallery-ratio { width: 100%; }
  .button-new.hamburger-menu { width: 44px; height: 44px; }
  .menu-contaner .nav-link-new { width: 100%; height: 48px; font-size: 16px; }
  /* Phones and iPads alike: header Call button, testimonial arrows, contact details and other links are at least 44px. */
  .button-new.call-btn { height: 44px; }
  .arrow-box.back-button, .arrow-box.next-button { width: 44px; height: 44px; }
  .button-testimonial-wrapper { height: 44px; }
  .vflex-contact { gap: 0; }
  .vflex-contact .link-block { align-items: center; min-height: 44px; padding: 0; }
  .nav-link-new { min-height: 44px; }
  /* The contact form: fields, checkboxes and the button are comfortable to tap on iPads as well. */
  .text-field { height: 48px; }
  .checkbox-field { min-height: 48px; }
  .checkbox { width: 22px; height: 22px; margin-right: 14px; }
  .text-consent .checkbox-label { font-size: 14px; }
  .button-new.submit { height: 52px; font-size: 16px; }
}

/* Phones held sideways: the open menu fits the short screen, and scrolls inside itself if it still can't. */
@media screen and (max-width: 991px) and (max-height: 520px) {
  .menu-contaner { max-height: 100vh; max-height: 100dvh; overflow-y: auto; overscroll-behavior: contain; padding-top: 84px; padding-bottom: 16px; }
  .menu-contaner .nav-link-new { height: 44px; }
}

@media screen and (max-width: 767px) {
  /* Footer */
  /* The 17 links run three across instead of two, so they take six short rows rather than nine. The longer names wrap to two
     lines, and the last row's two links sit in the middle. */
  .footer-link-wrapper { display: flex; flex-flow: row wrap; justify-content: center; column-gap: 0; row-gap: 0; margin-top: 8px; }
  .footer-link { flex: 0 0 33.333%; min-width: 0; box-sizing: border-box; min-height: 44px; margin: 0; padding: 4px 6px; display: inline-flex; align-items: center; justify-content: center; text-align: center; white-space: normal; letter-spacing: .05em; line-height: 1.25; }
  /* The footer's groups sit closer together: the links no longer carry 8px of margin each, and the gaps between groups are half. */
  .section-footer { padding-top: 40px; padding-bottom: 20px; }
  .div-block-19 { margin-top: 12px; }
  .badges-wrapper { padding-top: 12px; }
  .paragraph-footer { margin-top: 16px; }
  .footer-social-wrapper { margin-top: 8px; }
  .footer-bottom { margin-top: 8px; }
  .paragraph-footer .link, .paragraph-footer .link-2 { position: relative; }
  .paragraph-footer .link::after, .paragraph-footer .link-2::after { content: ""; position: absolute; inset: -11px -4px; }
  .div-block-19 .text-block-6 { font-size: 14px; }
  .footer-bottom .link-block-2 { position: relative; }
  .footer-bottom .link-block-2::after { content: ""; position: absolute; inset: -14px -12px; }
  .text-block-27 { font-size: 14px; }

  /* Home page list of towns */
  .location-text { font-size: 14px; line-height: 18px; }

  /* Landing pages: links in the breadcrumb and the sources list answer a tap across their full height */
  .lp .lp-crumbs a { position: relative; }
  .lp .lp-crumbs a::after { content: ""; position: absolute; inset: -14px -4px; }
  /* A source's link stays in the line of text, with its date after it. An invisible overlay gives it a 44px tap area. */
  .lp-sources li { margin-bottom: 0; padding: 10px 0; }
  .lp-sources li a { position: relative; }
  .lp-sources li a::after { content: ""; position: absolute; inset: -12px -2px; }
  .service-title-link { position: relative; }
  .service-title-link::after { content: ""; position: absolute; inset: -11px 0; }
}

@media screen and (max-width: 479px) {
  .brand { position: relative; }
  .brand::after { content: ""; position: absolute; inset: -13px -6px; }
  .button-new.call-btn { font-size: 14px; }
}

/* The landing pages carry the same pair as the home page: the assessment button at the bottom of the screen and Call
   centered above it. site.js shows them once the page's own buttons have scrolled away. Same look as .cta-floating. */
.assess-float {
  position: fixed;
  z-index: 190;
  bottom: 40px;
  left: 0;
  right: 0;
  width: fit-content;
  margin-inline: auto;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  gap: 20px;
  height: 57px;
  padding: 6px 6px 6px 24px;
  color: #d6186b;
  background-color: #edf7fc;
  border: 1px solid #cdebfa;
  border-radius: 7px;
  box-shadow: 4px 8px 12px #00000026;
  font-family: Inter, sans-serif;
  font-size: 15px;
  font-weight: 600;
  line-height: 1;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  visibility: hidden;
  opacity: 0;
  translate: 0 8px;
  transition: opacity .25s ease, translate .25s ease, visibility 0s linear .25s;
}

.assess-float.is-visible { visibility: visible; opacity: 1; translate: 0 0; transition-delay: 0s; }
.assess-float:focus-visible { outline: 2px solid #d6186b; outline-offset: 2px; }

.assess-arrow {
  display: flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 5px;
  background-color: #fd4792;
  color: #fff;
}

@media (prefers-reduced-motion: reduce) {
  .assess-float { translate: 0 0; transition: none; }
}

@media screen and (max-width: 767px) {
  .assess-float { bottom: 20px; height: 51px; }
  .assess-arrow { width: 38px; height: 38px; }
}

@media screen and (max-width: 599px) {
  .assess-float { width: 303px; max-width: calc(100% - 32px); justify-content: space-between; }
}

@media screen and (max-width: 359px) {
  .footer-link { padding: 4px 2px; letter-spacing: .02em; }
  .button-new.call-btn { width: 44px; }
  .brand::after { inset: -14px -6px; }
  .brand-logo { height: 16px; }
}

/* Tables become stacked cards on phones: the first column heads each card and every other cell carries its column's name
   (data-label in the page), so no figure sits off-screen behind a sideways scroll. The header row stays for screen readers. */
@media screen and (max-width: 599px) {
  .lp-table-wrap { overflow: visible; border: 0; border-radius: 0; background: none; }
  .lp-table, .lp-table tbody, .lp-table tr, .lp-table td { display: block; width: 100%; min-width: 0; }
  .lp-table caption { display: block; padding: 0 0 14px; }
  .lp-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .lp-table tr { margin: 0 0 14px; overflow: hidden; border: 1px solid #dbe6f0; border-radius: 10px; background-color: #fff; }
  .lp-section--pink .lp-table tr { border-color: #f6c6da; }
  .lp-table td { display: grid; grid-template-columns: minmax(88px, 36%) minmax(0, 1fr); gap: 12px; padding: 10px 16px; border-bottom: 1px solid #e6edf4; }
  .lp-table tbody tr:last-child td { border-bottom: 1px solid #e6edf4; }
  .lp-table tbody tr td:last-child { border-bottom: 0; }
  .lp-table td::before { content: attr(data-label); color: #4c5a78; font-size: 14px; font-weight: 600; line-height: 1.55; }
  .lp-table tbody tr td:first-child { display: block; padding: 12px 16px; border-bottom: 2px solid #fd4792; background-color: #ffecf4; font-weight: 600; }
  .lp-table td:first-child::before { content: none; }
  .lp-table--text td { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .lp-table td a { position: relative; }
  .lp-table td a::after { content: ""; position: absolute; inset: -9px 0; }
}

/* Text on phones and tablets: even line breaks, a readable size, and one alignment for each block. */
@media screen and (max-width: 991px) {
  /* Headings break into even lines and never leave one word alone. Paragraphs avoid a lone last word, and centered
     blurbs balance their lines instead. */
  h1, h2, h3, h4, .heading, .title-1, .title-mw-1, .title-mw-2, .title2-mw-1, .text-block-17--hero, .text-block-18,
  .text-block-20-copy, .text-block-10-copy, .pp-headings, .quote-testimonial, .service-title-link { text-wrap: balance; }
  p, li, td, .body-text, .body-text-hero, .body-mw-1, .script-mw-1, .text-block-13, .paragraph-footer { text-wrap: pretty; }
  .body-mw-1, .script-mw-1, .text-block-13, .body-text.center-align-text, .lp-cta p, .lp-small { text-wrap: balance; }
  /* The service cards' text was 14px; it is 16px, with room between lines. */
  .body-mw-1, .text-block-13 { font-size: 16px; line-height: 1.5; }
  /* Lines that were close enough to touch get a little room. */
  .heading { line-height: 1.2; }
  .text-block-18, .text-block-20-copy { line-height: 1.1; }
  .pp-headings { line-height: 1.2; }
}

/* Tablets held upright: the landing pages' hero photo spans the column instead of stopping short and leaving the right side empty. */
@media screen and (min-width: 768px) and (max-width: 991px) {
  .lp-hero-media { max-width: none; }
  .lp-hero-img { aspect-ratio: 16 / 9; }
  /* The hero's text starts where the sections below it do. */
  .lp-hero { padding-left: 40px; padding-right: 40px; }
  /* The footer's links are 44px tall here too, as on phones. */
  .footer-link { min-height: 44px; min-width: 44px; display: inline-flex; align-items: center; }
}

@media screen and (max-width: 767px) {
  /* The 40px of extra padding on the right squeezed a 44px headline into four lines and stranded its last word. */
  .item-text-wrapper, .item-text-wrapper.text-wrap-hero, .item-text-wrapper.text-wrap-serv { padding-right: 0; }
  .body-text { font-size: 16px; }
  /* The footer's address keeps its city, state and zip together, with ordinary space between lines. */
  .paragraph-footer { line-height: 1.6; }
}

/* Landing and guide pages: photos, icons and more of the brand's pink and blue (Nov 2026). The home page's look carried
   over to the text-heavy pages, in the same colors: pink #fd4792 and #d6186b, navy #192a51, blush #ffecf4, light blue
   #e4f6ff. Photos sit beside the text with a tinted panel behind them, cards carry round icon badges, bullets become
   check marks, and related pages show as photo cards. These rules build on the landing-page block above, so they stay
   after it. Icons come from /assets/images/lp-icons.<hash>.svg, built by tools/build_icons.py. */
.lp-section { padding: 72px 40px; }
.lp-section--tint { background-color: #e4f6ff; }
.lp-section--pink { background-color: #ffecf4; }
.lp-wrap--wide > p:not([class]) { max-width: 760px; }
.lp-nb, .lp a[href^="tel:"] { white-space: nowrap; }
.lp-wrap + .lp-wrap { margin-top: 36px; }
.lp-split + .lp-wrap { margin-top: 68px; }

/* A page's opening summary, set like the Services page's introduction: centered, in the display face's italic. */
.lp .lp-lede { max-width: 900px; margin: 0 auto 60px; color: #192a51; font-family: swear-display, "Swear Fallback", "Swear Fallback Android", "Times New Roman", serif; font-size: 23px; font-style: italic; font-weight: 400; line-height: 1.5; text-align: center; text-wrap: pretty; }
.lp .lp-lede a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

/* A section's heading and opening lines, centered over cards or a table. */
.lp-head { max-width: 920px; margin: 0 auto 36px; text-align: center; }
.lp .lp-head p { max-width: 720px; margin-right: auto; margin-left: auto; }
.lp .lp-head p:last-child { margin-bottom: 0; }
.lp-head:last-child { margin-bottom: 0; }
/* A short section with everything centered, such as the list of towns. */
.lp-center { text-align: center; }
.lp .lp-center p { max-width: 720px; margin-right: auto; margin-left: auto; }
.lp-center .lp-towns { justify-content: center; }

/* Icons. .lp-i is the drawing; .lp-ico is the round badge around it, pink on white, solid on the pink band. */
.lp-i { display: block; flex: none; width: 26px; height: 26px; }
.lp-ico { display: flex; flex: none; align-items: center; justify-content: center; width: 54px; height: 54px; border-radius: 50%; background-color: #ffecf4; color: #d6186b; }
.lp-section--pink .lp-ico { background-color: #fd4792; color: #fff; }
.lp-section--tint .lp-ico { background-color: #e4f6ff; color: #0a6a9e; }

/* Hero: the photo's panel sits up and to the right, as on the home page, with the CHAP badge on its corner. */
.lp-hero { gap: 84px; padding-bottom: 84px; }
.lp-hero-media::before { inset: -18px -18px 18px 18px; }
.lp-hero-badge { position: absolute; z-index: 1; top: -44px; left: -50px; width: 128px; height: auto; }

/* Trust strip: an icon in a white circle before each credential. */
.lp-trust { gap: 14px 30px; padding: 18px 24px; }
.lp-trust li { display: flex; align-items: center; gap: 10px; line-height: 1.3; }
.lp-trust li > span:last-child { max-width: 11.5em; }
.lp-trust li::before { content: none; }
.lp-trust-ico { display: flex; flex: none; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background-color: #fff; color: #d6186b; }
.lp-trust-ico .lp-i { width: 20px; height: 20px; }

/* Text beside a photo. The photo follows the text in the page, so phones show the words first. */
.lp-split { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); align-items: center; gap: 84px; }
.lp-split--flip { grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); }
.lp-split--flip > .lp-photo { order: -1; }
.lp-split-text > :last-child { margin-bottom: 0; }
/* Where the text runs much longer than the photo, both start at the top and the photo stays in view alongside it. */
.lp-split--top { align-items: start; }
.lp-split--top > .lp-photo { position: sticky; top: 56px; margin-top: 26px; }
.lp-photo { position: relative; margin: 0; }
.lp-photo::before { content: ""; position: absolute; inset: -18px -18px 18px 18px; border-radius: 10px; background-color: #ffecf4; }
.lp-photo--blue::before { inset: 18px 18px -18px -18px; background-color: #e4f6ff; }
.lp-section--pink .lp-photo::before, .lp-section--tint .lp-photo::before, .lp-cta .lp-photo::before { background-color: #fff; }
.lp-photo img { position: relative; display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; border-radius: 10px; object-fit: cover; }
.lp-photo--top img { object-position: 50% 12%; }
/* The home page's badge: an icon in a soft circle on the photo's lower edge, inside a thin ring. */
.lp-photo-badge { position: absolute; z-index: 1; bottom: -30px; left: 40px; display: flex; align-items: center; justify-content: center; width: 62px; height: 62px; border-radius: 50%; background-color: #ffecf4; color: #fd4792; }
.lp-photo-badge::before { content: ""; position: absolute; inset: -22px; border: 2px solid rgba(253, 71, 146, .2); border-radius: 50%; }
.lp-photo--blue .lp-photo-badge { right: 40px; left: auto; background-color: #e4f6ff; color: #2a9fd8; }
.lp-photo--blue .lp-photo-badge::before { border-color: rgba(82, 192, 247, .34); }
.lp-section--pink .lp-photo-badge, .lp-section--tint .lp-photo-badge { background-color: #fff; }

/* Cards: softer corners, a little lift, and room for the icon badge. */
.lp-cards { gap: 22px; margin: 28px 0 8px; }
.lp-cards--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.lp-cards--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.lp-card { padding: 28px 26px; border-color: #e3ebf3; border-radius: 14px; box-shadow: 0 6px 20px rgba(25, 42, 81, .06); }
.lp-section--pink .lp-card { border-color: #fbd5e4; }
.lp-section--tint .lp-card { border-color: #cdebfa; }
.lp-card .lp-ico { margin-bottom: 18px; }
.lp-wrap--wide > .lp-cards + p:not([class]) { margin: 28px auto 0; text-align: center; }

/* Sub-topics side by side, each with its icon to the left. */
.lp-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 34px 48px; margin: 36px 0 8px; }
.lp-tile { display: flex; align-items: flex-start; gap: 18px; }
.lp-tile h3 { margin-top: 2px; }
.lp-tile p:last-child { margin-bottom: 0; }

/* Check marks in place of plain bullets. */
.lp-checks, .lp-points { margin: 18px 0 1.2em; padding: 0; list-style: none; }
.lp-checks li { position: relative; margin: 0 0 12px; padding-left: 36px; }
.lp-checks li::before, .lp-points li::before { content: ""; position: absolute; top: .16em; left: 0; width: 24px; height: 24px; border-radius: 50%; background: #fd4792 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18.5 7.5 10 16.5 5.5 12'/%3E%3C/svg%3E") center / 13px no-repeat; }
.lp-checks--two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 44px; }
.lp-checks--two li { margin: 0; }
/* Points: a list whose items each open with a bold label. The label becomes a short title over its text. */
.lp-points { display: grid; gap: 20px; }
.lp-points--two { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 52px; }
.lp-points--three { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px 44px; }
.lp-points li { position: relative; margin: 0; padding-left: 38px; }
.lp-points li > strong:first-child { display: block; margin-bottom: 2px; font-size: 18px; line-height: 1.4; }

/* Two panels side by side, for a "this or that" comparison. */
.lp-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin: 32px 0 8px; }
.lp-panel { padding: 30px 30px 26px; border-radius: 14px; background-color: #ffecf4; }
.lp-panel--blue { background-color: #e4f6ff; }
.lp-panel h3 { margin-top: 0; font-size: 22px; }
.lp-panel > :last-child { margin-bottom: 0; }
.lp-panel .lp-checks li::before { background-color: #d6186b; }
.lp-panel--blue .lp-checks li::before { background-color: #0a6a9e; }
.lp-panel .lp-checks li > strong:first-child { display: block; }

/* Towns as pills with a map pin, like the home page's rows of towns. */
.lp-towns { display: flex; flex-wrap: wrap; gap: 10px; margin: 16px 0 1.4em; padding: 0; list-style: none; }
.lp-towns li { display: flex; align-items: center; gap: 8px; margin: 0; padding: 9px 18px 9px 12px; border-radius: 10px; background-color: #fff; box-shadow: 0 2px 10px rgba(25, 42, 81, .07); font-weight: 500; }
.lp-towns .lp-i { width: 20px; height: 20px; color: #fd4792; }
.lp-section:not(.lp-section--pink):not(.lp-section--tint) .lp-towns li { background-color: #ffecf4; box-shadow: none; }

/* Steps: pink numbers on a pink line. */
.lp-steps > li { padding-bottom: 24px; padding-left: 62px; }
.lp-steps > li::before { width: 42px; height: 42px; background-color: #d6186b; font-size: 17px; }
.lp-steps > li:not(:last-child)::after { top: 48px; left: 20px; background-color: #f8c3da; }
.lp-steps h3 { margin-top: 7px; }
.lp-steps > li:last-child { padding-bottom: 0; }
.lp-steps { margin-bottom: 26px; }
.lp-steps:last-child { margin-bottom: 0; }

/* Tables: a navy header row and lightly striped rows, on screens wide enough to show the table as a table. */
@media screen and (min-width: 600px) {
  .lp-table-wrap { border-color: #d5e3ef; border-radius: 12px; box-shadow: 0 6px 20px rgba(25, 42, 81, .06); }
  .lp-table thead th { background-color: #192a51; color: #fff; }
  .lp-table tbody tr:nth-child(even) { background-color: #f5fbff; }
  .lp-table tbody th { font-weight: 600; }
  .lp-table caption { padding: 14px 16px; caption-side: bottom; border-top: 1px solid #e6edf4; }
}

/* Questions and answers: each one a white card with a round plus sign. */
.lp-faq { display: grid; gap: 12px; margin-top: 28px; border-top: 0; }
.lp-faq-item { border: 1px solid #e3ebf3; border-radius: 12px; background-color: #fff; transition: border-color .2s, box-shadow .2s; }
.lp-section--pink .lp-faq-item { border-color: #fbd5e4; }
.lp-section--tint .lp-faq-item { border-color: #cdebfa; }
.lp-faq-item[open] { border-color: #f8a8c9; box-shadow: 0 6px 20px rgba(25, 42, 81, .06); }
.lp-faq-item summary { padding: 18px 64px 18px 22px; border-radius: 12px; }
/* The plus and minus are drawn, not typed: a typed "+" sits where the font puts it, which is low and off-center in the circle. */
.lp-faq-item summary::after { content: ""; top: 50%; right: 18px; width: 30px; height: 30px; margin-top: -15px; border-radius: 50%; background: #ffecf4 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' fill='none' stroke='%23d6186b' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M7 2v10M2 7h10'/%3E%3C/svg%3E") center / 14px 14px no-repeat; }
.lp-faq-item[open] summary::after { content: ""; background-color: #fd4792; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M2 7h10'/%3E%3C/svg%3E"); }
.lp-faq-answer { padding: 0 22px 12px; }
.lp .lp-faq + p { margin-top: 22px; }

/* The questions page: each group's heading and a photo stay in view on the left while its questions scroll on the right. */
.lp-faqrow { display: grid; grid-template-columns: minmax(0, 350px) minmax(0, 1fr); align-items: start; gap: 76px; }
.lp-faqrow-side { position: sticky; top: 48px; }
.lp-faqrow-side .lp-photo { margin: 30px 18px 18px 0; }
.lp-faqrow .lp-faq { margin-top: 6px; }
.lp-faqrow-main > :last-child { margin-bottom: 0; }

/* Related pages as photo cards. */
.lp-related { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 22px; margin-top: 28px; }
.lp .lp-related a { display: flex; flex-direction: column; padding: 0; overflow: hidden; border-color: #e3ebf3; border-radius: 14px; box-shadow: 0 6px 20px rgba(25, 42, 81, .06); transition: border-color .2s, box-shadow .2s, color .2s; }
.lp .lp-related a::after { content: none; }
.lp-related img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; }
.lp-related-name { display: flex; flex: 1; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 18px; line-height: 1.35; }
.lp-related-name .lp-i { width: 20px; height: 20px; color: #fd4792; transition: translate .2s; }
.lp .lp-related a:hover { box-shadow: 0 10px 26px rgba(25, 42, 81, .1); }
.lp .lp-related a:hover .lp-i { translate: 3px 0; }

/* The closing call: words on the left, a photo on the right, on the pink band. */
.lp-cta { padding: 76px 40px; background-color: #ffecf4; text-align: left; }
.lp-cta-box { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); align-items: center; gap: 84px; max-width: 1120px; margin: 0 auto; }
.lp-cta h2 { color: #d6186b; }
.lp-cta h2::before { margin: 0 0 16px; }
.lp .lp-cta p:not([class]) { margin: 0 0 26px; }
.lp-cta .lp-actions { justify-content: flex-start; }
.lp-cta .lp-small { margin: 24px 0 0; }

/* From small laptops up, the five credentials always share one row: each takes the room it needs and longer ones wrap. */
@media screen and (min-width: 992px) {
  .lp-trust { display: grid; grid-template-columns: repeat(5, minmax(0, max-content)); justify-content: center; gap: 12px 26px; }
}
@media screen and (max-width: 1199px) {
  .lp-cards--four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lp-hero, .lp-split, .lp-cta-box { gap: 60px; }
}
@media screen and (max-width: 991px) {
  /* One column: the photo keeps to a comfortable width and makes room for its panel and badge. */
  .lp-hero { gap: 56px; }
  .lp-hero-media { margin-right: 18px; margin-left: 0; }
  .lp-hero-badge { top: -34px; left: -14px; width: 104px; }
  .lp-split, .lp-split--flip, .lp-cta-box { grid-template-columns: minmax(0, 1fr); gap: 52px; }
  .lp-split--flip > .lp-photo { order: 0; }
  .lp-split > .lp-photo, .lp-cta-box > .lp-photo { width: calc(100% - 18px); max-width: 560px; }
  .lp-split > .lp-photo { margin-bottom: 28px; }
  .lp-split > .lp-photo--blue { margin-left: 18px; }
  .lp-split--top > .lp-photo { position: relative; top: auto; margin-top: 0; }
  .lp-cards--three { grid-template-columns: minmax(0, 1fr); }
  .lp-points--three { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lp-tiles { gap: 28px 36px; }
  .lp-faqrow { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .lp-faqrow-side { position: static; }
  .lp-faqrow-side .lp-photo { display: none; }
}
@media screen and (max-width: 767px) {
  .lp-section, .lp-cta { padding: 52px 20px; }
  .lp .lp-lede { margin-bottom: 40px; font-size: 19px; line-height: 1.5; text-align: left; }
  .lp-head { margin-bottom: 28px; text-align: left; }
  .lp-wrap + .lp-wrap { margin-top: 28px; }
  .lp-split + .lp-wrap { margin-top: 56px; }
  .lp-hero { padding-bottom: 56px; }
  .lp-hero-media { margin-right: 12px; }
  .lp-hero-media::before, .lp-photo::before { inset: -12px -12px 12px 12px; }
  .lp-photo--blue::before { inset: 12px 12px -12px -12px; }
  .lp-hero-badge { top: -30px; left: -8px; width: 92px; }
  .lp-split > .lp-photo, .lp-cta-box > .lp-photo { width: calc(100% - 12px); }
  .lp-split > .lp-photo--blue { margin-left: 12px; }
  .lp-photo-badge { bottom: -24px; left: 28px; width: 52px; height: 52px; }
  .lp-photo-badge::before { inset: -16px; }
  .lp-photo--blue .lp-photo-badge { right: 28px; }
  .lp-trust { gap: 10px; padding: 18px 20px; }
  .lp-trust li > span:last-child { max-width: none; }
  .lp-cards--four, .lp-tiles, .lp-checks--two, .lp-points--two, .lp-points--three, .lp-pair { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .lp-tiles { gap: 26px; }
  .lp-checks--two { gap: 12px; }
  .lp-center { text-align: left; }
  .lp-center .lp-towns { justify-content: flex-start; }
  .lp-ico { width: 48px; height: 48px; }
  .lp-card { padding: 24px 22px; }
  .lp-card .lp-ico { margin-bottom: 14px; }
  .lp-tile { gap: 14px; }
  .lp-panel { padding: 24px 22px 22px; }
  .lp-wrap--wide > .lp-cards + p:not([class]) { text-align: left; }
  .lp-faq-item summary { padding: 16px 58px 16px 18px; font-size: 17px; }
  .lp-faq-item summary::after { right: 14px; }
  .lp-faq-answer { padding: 0 18px 10px; }
  .lp-related { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  .lp-related-name { padding: 12px 14px; font-size: 15px; }
  .lp-related-name .lp-i { display: none; }
  .lp-cta { text-align: center; }
  .lp-cta-box > .lp-photo { order: -1; margin: 0 auto; }
  .lp-cta h2::before { margin: 0 auto 14px; }
  .lp-cta .lp-actions { justify-content: center; }
  .lp-cta .lp-small { margin: 24px auto 0; }
}

/* Phones: tables whose rows start with a row heading (th) show it as the card's title band, like the tables whose rows
   start with a plain cell. Left as a table cell, it only stretched as wide as its words. */
@media screen and (max-width: 599px) {
  .lp-table tbody th { display: block; box-sizing: border-box; width: 100%; padding: 12px 16px; border-bottom: 2px solid #fd4792; background-color: #ffecf4; font-weight: 600; }
}
/* Phones and tablets: on the questions page each group's photo is hidden, so its heading sits close to its questions. */
@media screen and (max-width: 991px) {
  .lp-faqrow { gap: 6px; }
}
/* Tablets held upright: photos under the text span the column, as the hero photo does, instead of stopping short and
   leaving the right side empty. */
@media screen and (min-width: 768px) and (max-width: 991px) {
  .lp-split > .lp-photo, .lp-cta-box > .lp-photo { max-width: none; }
  .lp-split > .lp-photo img, .lp-cta-box > .lp-photo img { aspect-ratio: 16 / 9; }
}
/* A second heading inside the same column starts a new topic, so it gets room above it. */
.lp-split-text > * + h2, .lp-wrap > p + h2 { margin-top: 1.1em; }
/* Tablets: a row of three cards stacks into full-width cards, so each card's icon sits beside its text, not alone above it. */
@media screen and (min-width: 600px) and (max-width: 991px) {
  .lp-cards--three .lp-card { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 22px; align-items: start; }
  .lp-cards--three .lp-card > * { grid-column: 2; }
  .lp-cards--three .lp-card > .lp-ico { grid-column: 1; grid-row: 1 / span 6; margin-bottom: 0; }
}

/* A gentle entrance as a page loads: the top of the page rises into place in a short stagger, like the home page's hero,
   only quicker and smaller. CSS only, so it never waits for a script, and "backwards" fill leaves nothing behind once
   it has played. The home, services and contact pages have their own. */
@keyframes lp-rise { from { opacity: 0; translate: 0 14px; } }
@keyframes lp-settle { from { opacity: 0; scale: .97; } }
@media (prefers-reduced-motion: no-preference) {
  .lp-hero-text > *, .lp-trust li, .privacy-policy, .utility-page-content { animation: lp-rise .7s cubic-bezier(.22, 1, .36, 1) backwards; }
  .lp-hero-text > :nth-child(2) { animation-delay: .06s; }
  .lp-hero-text > :nth-child(3) { animation-delay: .12s; }
  .lp-hero-text > :nth-child(4) { animation-delay: .18s; }
  .lp-hero-media { animation: lp-settle .9s cubic-bezier(.22, 1, .36, 1) .1s backwards; }
  .lp-trust li { animation-delay: .25s; }
  .lp-trust li:nth-child(2) { animation-delay: .29s; }
  .lp-trust li:nth-child(3) { animation-delay: .33s; }
  .lp-trust li:nth-child(4) { animation-delay: .37s; }
  .lp-trust li:nth-child(5) { animation-delay: .41s; }

  /* Questions open with a slight drop: the answer fades in as it settles. Where the browser can animate to "auto"
     (Chrome and Edge), the card's height grows smoothly too; elsewhere it opens at once and only the fade plays. */
  .lp-faq-item[open] .lp-faq-answer { animation: lp-drop .3s ease-out; }
  .lp-faq-item summary::after { transition: background-color .2s, scale .2s; }
  .lp-faq-item summary:active::after { scale: .92; }
}
@keyframes lp-drop { from { opacity: 0; translate: 0 -6px; } }
@supports (interpolate-size: allow-keywords) {
  @media (prefers-reduced-motion: no-preference) {
    .lp-faq-item { interpolate-size: allow-keywords; }
    .lp-faq-item::details-content { height: 0; overflow: clip; transition: height .3s ease, content-visibility .3s allow-discrete; }
    .lp-faq-item[open]::details-content { height: auto; }
  }
}

/* Phone and tablet menu, the hover arrows and nothing else: these were Webflow interactions, and are plain CSS now so
   the pages no longer load jQuery or Webflow's scripts. site.js switches two classes on the header: "menu-on" puts
   the panel and the dimmed backdrop on the page, still out of sight, and "menu-open" slides and fades them in.
   Times and easings are the ones the interactions had. If the longest closing time changes, change MENU_CLOSE_MS in
   site.js to match. */
@media screen and (max-width: 991px) {
  .nav-new.menu-on .menu-contaner { display: flex; transform: translateY(-110%); transition: transform .5s ease-out; }
  .nav-new.menu-open .menu-contaner { transform: none; transition: transform .6s ease; }
  .nav-new.menu-on .overlay-menu { display: flex; opacity: 0; transition: opacity .5s ease; }
  .nav-new.menu-open .overlay-menu { opacity: 1; }
  /* The three lines of the menu button fold into a cross. */
  .hamburger-menu .line1, .hamburger-menu .line2, .hamburger-menu .line3 { transition: transform .6s ease-out; }
  .nav-new.menu-open .hamburger-menu .line1, .nav-new.menu-open .hamburger-menu .line2, .nav-new.menu-open .hamburger-menu .line3 { transition: transform .5s ease; }
  .nav-new.menu-open .hamburger-menu .line1 { transform: translateY(6px) rotate(45deg); }
  .nav-new.menu-open .hamburger-menu .line2 { transform: scaleY(0); }
  .nav-new.menu-open .hamburger-menu .line3 { transform: translateY(-6px) rotate(-45deg); }
}
@media screen and (max-width: 991px) and (prefers-reduced-motion: reduce) {
  .nav-new .menu-contaner, .nav-new .overlay-menu, .hamburger-menu .line1, .hamburger-menu .line2, .hamburger-menu .line3 { transition-duration: .01s !important; }
}
/* The arrow beside "Join Our Team" leaves up and to the right while its twin follows it in, and the assessment
   button's arrow does the same sideways. Only where there is a pointer to hover with. */
.nav-link-new.pink-nav-link .link-arrow, .cta-floating .code-embed-2 { transition: transform .52s cubic-bezier(.625, .05, 0, 1); }
@media (hover: hover) {
  .nav-link-new.pink-nav-link:hover .link-arrow { transform: translate(15px, -15px); }
  .cta-floating:hover .code-embed-2 { transform: translateX(33px); }
}
