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

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

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

 html {
  line-height: 1.5; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  font-size: clamp(14px, 3vw, 16px);
}

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

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

body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */

main {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */

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

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

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */

hr {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
}

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

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

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

/**
 * Remove the gray background on active links in IE 10.
 */

a {
  background-color: transparent;
}

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

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

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

b,
strong {
  font-weight: bolder;
}

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

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

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

small {
  font-size: 80%;
}

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

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

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
   ========================================================================== */

/**
 * Remove the border on images inside links in IE 10.
 */

img {
  border-style: none;
}

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

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

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

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */

button,
input { /* 1 */
  overflow: visible;
}

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

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

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

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

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

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

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

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

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

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

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */

legend {
  box-sizing: border-box; /* 1 */
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 3 */
  white-space: normal; /* 1 */
}

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

progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */

textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */

[type="checkbox"],
[type="radio"] {
  box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}

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

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

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

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

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

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

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

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

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

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */

details {
  display: block;
}

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

summary {
  display: list-item;
}

/* Misc
   ========================================================================== */

/**
 * Add the correct display in IE 10+.
 */

template {
  display: none;
}

/**
 * Add the correct display in IE 10.
 */

[hidden] {
  display: none;
}

:root {
  --color-blue: #315e89;
  --color-green-light: #bfd9cf;
  --color-green-medium: #86B2A3;
  --color-purple-dark: #968ebe;
  --color-purple-light: #dbd9ed;
  --color-purple-medium: #a9a2ce;
  --color-white: #ffffff;

  --font-family-default: 'DM Sans', sans-serif;;
  --font-family-hero: dunbar-text, sans-serif;

  --font-size-normal: 20px;
  --font-size-md: 25px;
  --font-size-hero: 85px;
}

body {
  font-family: var(--font-family-default);
}

img,
svg {
  display: block;
}

* {
  box-sizing: border-box;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0 0 0.5em 0;
}

p {
  margin: 0 0 1em 0;
}

p:last-child,
  p:only-child {
    margin-bottom: 0;
  }

a {
  /* color: #5A7D8A; */
  color: #BC6C25;
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

a:visited {
  }

.block {
  background-color: var(--background-color, none);
}

/* General Styles */
body.t-default {
  font-family: 'Poppins', sans-serif;
  background-color: #f9fafb; /* bg-gray-50 */
  color: #4b5563; /* default text color, like text-gray-600 */
  margin: 0;
}

.container {
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1.5rem; /* px-6 */
  padding-right: 1.5rem; /* px-6 */
}

section:not(.full-width) {
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
}

.full-width {
  width: 100%;
}

.section-title {
  font-size: 1.875rem; /* text-3xl */
  font-weight: 700; /* font-bold */
  text-align: center;
  color: #315e89;
  margin-bottom: 3rem; /* mb-12 */
}

.section-subtitle {
  text-align: center;
  color: #4b5563; /* text-gray-600 */
  margin-bottom: 3rem; /* mb-12 */
  max-width: 42rem; /* max-w-2xl */
  margin-left: auto;
  margin-right: auto;
}

/* Header */
.main-header {
  background-color: #fff;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1),
    0 2px 4px -1px rgba(0, 0, 0, 0.06); /* shadow-md */
}

.header-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 1rem; /* py-4 */
  padding-bottom: 1rem; /* py-4 */
}

.site-title {
  font-size: 1.875rem; /* text-3xl */
  font-weight: 700; /* font-bold */
  color: #315e89;
}

.main-nav {
  display: none;
}

.nav-link {
  color: #4b5563; /* text-gray-600 */
  text-decoration: none;
}

.nav-link:hover {
  color: #315e89;
}

.nav-link.active {
  color: #315e89;
  font-weight: 700; /* font-bold */
  border-bottom: 2px solid #315e89;
}

.mobile-nav-toggle {
  display: block;
}

.mobile-nav-button {
  color: #315e89;
  background: none;
  border: none;
  cursor: pointer;
}

.mobile-nav-button:focus {
  outline: none;
}

.feature-card {
  background-color: #f9fafb; /* bg-gray-50 */
  padding: 1.5rem; /* p-6 */
  border-radius: 0.5rem; /* rounded-lg */
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1),
    0 4px 6px -2px rgba(0, 0, 0, 0.05); /* shadow-lg */
  border-left: 4px solid #315e89;
}

.feature-icon {
  color: #a8a2ce;
  font-size: 1.875rem; /* text-3xl */
  margin-bottom: 1rem; /* mb-4 */
}

.feature-title {
  font-size: 1.5rem; /* text-2xl */
  font-weight: 700; /* font-bold */
  color: #315e89;
  margin-bottom: 0.5rem; /* mb-2 */
}

.feature-description {
  color: #4b5563; /* text-gray-600 */
}

.feature-card-highlight {
  background-color: #315e89;
  color: #fff;
  padding: 1.5rem; /* p-6 */
  border-radius: 0.5rem; /* rounded-lg */
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1),
    0 4px 6px -2px rgba(0, 0, 0, 0.05); /* shadow-lg */
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
}

.highlight-title {
  font-size: 1.5rem; /* text-2xl */
  font-weight: 700; /* font-bold */
  margin-bottom: 0.5rem; /* mb-2 */
}

.highlight-price {
  font-size: 3rem; /* text-5xl */
  font-weight: 700; /* font-bold */
  margin-bottom: 0.5rem; /* mb-2 */
}

.highlight-details {
  font-size: 0.875rem; /* text-sm */
}

/* Footer */
.main-footer {
  background-color: #1f2937; /* bg-gray-800 */
  color: #fff;
}

.footer-container {
  padding-top: 2rem; /* py-8 */
  padding-bottom: 2rem; /* py-8 */
  text-align: center;
}

/* Media Queries */
@media (min-width: 768px) {
  /* md: */
  .main-nav {
    display: flex;
    align-items: center;
  }
  .main-nav > * + * {
    margin-left: 2rem; /* space-x-8 */
  }
  .mobile-nav-toggle {
    display: none;
  }
}



.addon-card {
    border-top: 4px solid #a8a2ce;
    padding: 1.5rem;
    border-radius: 0.5rem;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1),
      0 2px 4px -1px rgba(0, 0, 0, 0.06);
  }
  .addon-title {
    font-weight: 700;
    font-size: 1.125rem;
    color: #315e89;
  }
  .addon-price {
    font-size: 1.5rem;
    font-weight: 700;
    color: #a8a2ce;
    margin-top: 0.5rem;
    margin-bottom: 0.5rem;
  }
  .addon-description {
    color: #4b5563;
  }

.addons {
  padding-top: 4rem;
  padding-bottom: 5rem;
}

  .addons .section-title {
    margin-bottom: 2rem;
  }

  .addons .section-subtitle {
    font-size: 1.15rem;
  }

  .addons-grid {
    display: grid;
    gap: 2rem;
  }

  @media (min-width: 768px) {
    .addons-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }

  @media (min-width: 1024px) {
    .addons-grid {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }
  }

.btn {
  --bg-background: #a8a2ce;
  --bg-background-hover: #86b2a3;

  background: var(--bg-background);
  border-radius: 100px;
  border: 0.3em white solid;
  color: white;
  font-size: clamp(16px, 2vw, 22px);
  font-weight: bold;
  /* padding: clamp(12px, 2vw, 1em) 2.6em; */
  padding: 1em 2.6em;
  text-align: center;
  text-decoration: none;
  line-height: 1;
  transition: background-color 0.5s ease-in-out;
  white-space: nowrap;
}

  .btn:hover,
  .btn:active,
  .btn:focus {
    background: var(--bg-background-hover);
  }

  .btn:focus-visible {
    /* outline: 1px black solid; */
  }

  .btn.btn-callout {
    --bg-background: #BC6C25;
    --bg-background-hover: #b25908;
    border-color: var(--bg-background-hover);
    border-width: 2px;
    font-size: clamp(1rem, 2vw, 1.2rem);
    font-weight: 600;
    padding: 0.7em;
  }

.callout a {
    word-break: break-all;
  }
  .callout.is-single {
    background-color: rgba(168, 162, 206, 0.2);
    border-left: 4px solid #a8a2ce;
    border-radius: 0.5rem;
    line-height: 1.5;
    margin-top: 2rem;
    padding: 1.5rem;
  }
  .callout.theme-alternate {
  }
  .callout-buttons {
    margin-top: 2rem;
    display: grid;
    justify-content: space-between;
    gap: 1rem;
    grid-template-columns: 1fr;
  }
  .callout-title {
    font-weight: 700;
    color: #315e89;
    font-size: 1.25rem;
  }
  .callout-text {
    color: #4b5563;
    margin-top: 0.5rem;
  }
  .callout-link {
    font-weight: 600;
    color: #315e89;
    text-decoration: none;
  }
  .callout-link:hover {
    text-decoration: underline;
  }
  @media (min-width: 600px) {
    .callout-buttons {
      grid-template-columns: repeat(2, 1fr);
    }
  }

.callout-fw {
  background-color: #315e89;
}

  .callout-fw.theme-alternate {
    background-color: #f5f1ed;
  }

  .callout-fw.theme-alternate .callout-fw-inner {
      color: #5d4037;
    }

  /* &.theme-alternate {
    background-image: url(https://the-grove.nyc3.cdn.digitaloceanspaces.com/images/pexels-nietjuhart-796606.jpg);
    background-size: cover;
    background-position: center center;
    position: relative;

    &::before {
      content: "";
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      background-color: rgba(0, 0, 0, 0.4);
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .callout-fw-inner {
      color: white;
      max-width: 960px;
      position: relative;
      padding-bottom: 12rem;
      padding-top: 12rem;
    }
  } */

  .callout-fw-container {
    padding-top: 4rem; /* py-16 */
    padding-bottom: 4rem; /* py-16 */
    text-align: center;
    color: #fff;
  }

  .callout-fw-title {
    font-size: 1.875rem; /* text-3xl */
    font-weight: 700; /* font-bold */
    margin-bottom: 1rem; /* mb-4 */
  }

  .callout-fw-text {
    font-size: 1.125rem; /* text-lg */
    margin-bottom: 2rem; /* mb-8 */
  }

  .callout-fw-button {
    display: inline-block;
    background-color: #fff;
    color: #315e89;
    font-weight: 700; /* font-bold */
    padding: 0.75rem 2rem; /* py-3 px-8 */
    border-radius: 9999px; /* rounded-full */
    text-decoration: none;
    transition: background-color 0.3s;
  }

  .callout-fw-button:hover {
    background-color: #e5e7eb; /* hover:bg-gray-200 */
  }


.card {
    background-color: #fff;
    border-radius: 0.5rem;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
    overflow: hidden;
    transition: transform 0.3s, box-shadow 0.3s;
}

    .card:hover {
        transform: translateY(-5px);
        box-shadow: 0 10px 20px -5px rgba(0,0,0,0.1);
    }

    .card-image {
        width: 100%;
        height: 300px;
        -o-object-fit: cover;
           object-fit: cover;
    }

    .card-content {
        padding: 1.5rem;
    }

    .card-title {
        font-size: 1.25rem;
        font-weight: 700;
        color: #315e89;
    }

    .card-description {
        color: #4b5563;
        margin-top: 0.5rem;
    }


.block-card-text-buttons {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    margin-top: 1.5em;
  }
  @media (min-width: 420px) {
    .block-card-text-buttons:not(.is-single) {
      grid-template-columns: repeat(2, 1fr);
    }
  }

.cards-section {
  padding-top: 4rem;
  padding-bottom: 4rem;
}

.cards-grid {
  display: grid;
  gap: 2rem;
}

@media (min-width: 768px) {
  .cards-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.m-faqs {
  margin: auto;
  max-width: 1240px;
}

  .m-faqs-i {
    background-color: #f1e7c8;
    border-radius: 50px;
    color: #315e89;
    padding: 30px 40px;
  }

  .m-faqs-i ~ .m-faqs-i {
      margin-top: 35px;
    }

  .m-faqs-i.is-open .m-faqs-a {
        padding-top: 20px;
        grid-template-rows: 1fr;
      }

  .m-faqs-i.is-open .m-faqs-toggle::after {
          transform: rotate(180deg);
        }

  .m-faqs-a {
    display: grid;
    font-size: clamp(16px, 2.25vw, 20px);
    grid-template-rows: 0fr;
    line-height: 1.3em;
    transition: grid-template-rows 0.25s ease-out;
  }

  .m-faqs-a .wysiwyg {
      overflow: hidden;
    }

  .m-faqs-q {
    cursor: pointer;
    margin: 0;
    font-size: clamp(18px, 3vw, 28px);
    line-height: 1.3em;
    position: relative;
  }

  .m-faqs-toggle {
    bottom: 0.3em;
    position: absolute;
    bottom: 0;
  }

  .m-faqs-toggle::after {
      border-color: transparent transparent #e29625 transparent;
      border-style: solid;
      border-width: 0 10px 15px 10px;
      content: "";
      display: inline-block;
      height: 0px;
      margin-left: 0.5em;
      transform-origin: center;
      transform: rotate(0deg);
      transition: transform 0.25s ease-out;
      width: 0px;
    }

.fui-form {
  --fui-alert-success-bg-color: none;
    --fui-alert-success-color: var(--color-white);
    --fui-alert-font-size: var(font-size-medium);
    --fui-alert-line-height: 1.25em;
    --fui-alert-success-color: var(--color-purple-light);
}

.formie-newsletter {
  --text-input-bg: transparent;
}

  .formie-newsletter button,
  .formie-newsletter input {
    border-radius: 100px;
    color: var(--color-white);
    font-size: 15px;
    text-align: center;
    text-transform: uppercase;
    width: 275px;
  }

  .formie-newsletter button {
    --fui-btn-font-size:  18px;
    --fui-submit-btn-bg-color: var(--color-blue);
    --fui-submit-btn-bg-color-hover: var(--color-blue);
    --fui-btn-line-height: 28px;
    --fui-btn-padding: 0.5rem 1rem 0.6rem;

    font-weight: bold;
    padding-right: 25px;
  }

  .formie-newsletter button:hover::after, .formie-newsletter button:focus::after {
        transform: translateX(25%);
      }

  .formie-newsletter button.fui-loading::after {
        /* display: none !important; */
      }

  .formie-newsletter input {
    --fui-input-placeholder-color: var(--color-white);
    --fui-input-font-size: 18px;
    --fui-input-line-height: 28px;
    --fui-input-padding: 0.5rem 1rem 0.6rem;

    background-color: var(--text-input-bg);
    border-color: #fff;
    text-align: center;
  }

  .formie-newsletter input:focus {
      border-color: currentColor;
    }

  .formie-newsletter input:-moz-placeholder {
      font-weight: bold;
    }

  .formie-newsletter input:placeholder-shown {
      font-weight: bold;
    }

  .formie-newsletter .fui-alert-error {
    display: inline-block;
    margin-bottom: 25px;
    padding: 15px clamp(15px, 4vw, 50px);
  }

  .formie-newsletter .fui-alert-success {
    margin: auto;
    max-width: 100%;
    width: -moz-max-content;
    width: max-content;
  }

  .formie-newsletter .fui-btn-wrapper {
    --fui-btn-container-margin: 0;
    --fui-btn-container-padding: 0;
  }

  .formie-newsletter .fui-error-message {
    /* position: absolute; */
    width: 100%;
    text-align: center;
  }

  .formie-newsletter .fui-field {
    --fui-row-gutter: 0;
  }

  .formie-newsletter .fui-field-container {
    position: relative;
  }

  .formie-newsletter .fui-page {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px 15px;
    justify-content: center;
  }

  .formie-newsletter .fui-submit {
    transition: all 0.5s;
    --fui-submit-btn-bg-color: #86b3a4;
    --fui-submit-btn-bg-color-hover: #4a9b80;
  }

  @media (min-width: 640px) {
    .formie-newsletter input,
    .formie-newsletter button {

      width: clamp(210px, 25vw, 275px);
    }

    .formie-newsletter .fui-page {
      flex-direction: row;
    }
  }

.main-header .site-title {
     margin: 0;
  }

     .main-header .site-title a {
      text-decoration: none;
     }

     .main-header .site-title a:visited {
        color: currentColor;
      }

.hero-section {
    position: relative;
}

.hero-image {
    width: 100%;
    height: 24rem; /* h-96 */
    -o-object-fit: cover;
       object-fit: cover;
}

.hero-overlay {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-color: rgba(0, 0, 0, 0.4);
    display: flex;
    align-items: center;
    justify-content: center;
}

.hero-content {
    text-align: center;
    color: #fff;
    padding: 1rem; /* p-4 */
}

.hero-title,
.hero-subtitle {
  /* text-shadow: 1px 1px 8px #4e4e4e; */
}

.hero-title {
    font-size: 2.25rem; /* text-4xl */
    font-weight: 700; /* font-bold */
    margin-bottom: 1rem; /* mb-4 */
}

.hero-subtitle {
    font-size: 1.125rem; /* text-lg */
    max-width: 48rem; /* max-w-3xl */
    margin-left: auto;
    margin-right: auto;
}

@media (min-width: 768px) {
  .hero-title {
      Font-size: 3.75rem; /* md:text-6xl */
  }
  .hero-subtitle {
      font-size: 1.25rem; /* md:text-xl */
  }
}

.highlights-section {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }
  .highlights-grid {
    display: grid;
    gap: 2rem;
  }
  @media (min-width: 768px) {
     .highlights-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }
  @media (min-width: 1024px) {.highlights { /* lg: */
}
    .highlights-grid {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }
  }

.intro-section {
    padding-top: 3rem;
    padding-bottom: 3rem;
  }
  .intro-container.container {
    text-align: center;
    max-width: 56rem;
  }
  .intro-text {
    font-size: 1.125rem;
    color: #374151;
    line-height: 1.75;
  }

/* Mobile Menu Styles */
.mobile-nav-button {
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 15px;
    display: inline-block;
    position: relative;
    width: 40px;
    height: 40px;
}

.mobile-nav-button:focus {
    outline: none;
}

.main-header {
    position: relative;
}

.mobile-menu {
    display: none;
    flex-direction: column;
    position: absolute;
    top: 100%; /* Position it right below the header */
    left: 0;
    right: 0;
    background-color: white;
    z-index: 1000;
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
}

.mobile-menu.is-open {
    display: flex;
}

.mobile-menu-link {
    padding: 1rem 1.5rem;
    border-bottom: 1px solid #e5e7eb; /* gray-200 */
    color: #4b5563; /* gray-600 */
    text-decoration: none;
}

.mobile-menu-link:hover {
    background-color: #f9fafb; /* gray-50 */
    color: #315e89; /* text-primary from gemini-4.html */
}

@media (min-width: 768px) {
    .main-nav {
        display: block;
    }
    .mobile-nav-toggle {
        display: none;
    }
    .mobile-menu {
        display: none !important;
    }
}

@media (max-width: 767px) {
    .main-nav {
        display: none;
    }
    .mobile-nav-toggle {
        display: block;
    }
}

.hamburger-box {
    width: 30px;
    height: 24px;
    display: inline-block;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

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

.hamburger-inner,
.hamburger-inner::before,
.hamburger-inner::after {
    width: 30px;
    height: 3px;
    background-color: #315e89;
    border-radius: 4px;
    position: absolute;
    transition: transform 0.15s ease;
}

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

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

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

.mobile-nav-button.is-active .hamburger-inner {
    transform: rotate(45deg);
}

.mobile-nav-button.is-active .hamburger-inner::before {
    top: 0;
    opacity: 0;
}

.mobile-nav-button.is-active .hamburger-inner::after {
    bottom: 0;
    transform: rotate(-90deg);
}

/**************************\
  Basic Modal Styles
\**************************/

.modal {
  font-family: -apple-system,BlinkMacSystemFont,avenir next,avenir,helvetica neue,helvetica,ubuntu,roboto,noto,segoe ui,arial,sans-serif;
}

.modal__overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0,0,0,0.6);
  display: flex;
  justify-content: center;
  align-items: center;
}

.modal__container {
  background-color: #fff;
  border-radius: 4px;
  box-sizing: border-box;
  max-height: 100vh;
  max-width: 500px;
  overflow-y: auto;
  padding: 30px;
  position: relative;
}

.modal__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.modal__title {
  margin-top: 0;
  margin-bottom: 0;
  font-weight: 600;
  font-size: 1.25rem;
  line-height: 1.25;
  color: #00449e;
  box-sizing: border-box;
}

.modal__close {
  background: none;
  border: none;
  color: #888;
  cursor: pointer;
  font-size: 2.5rem;
  font-weight: bold;
  line-height: 1;
  position: absolute;
  right: 15px;
  text-shadow: 2px 2px 3px #5c5c5c;
  top: 10px;
}
/* .modal__close {
  background: transparent;
  border: 0;
} */

/* .modal__header .modal__close:before { content: "\2715"; } */

.modal__content {
  margin-top: 2rem;
  margin-bottom: 2rem;
  line-height: 1.5;
  color: rgba(0,0,0,.8);
}

.modal__btn {
  font-size: .875rem;
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: .5rem;
  padding-bottom: .5rem;
  background-color: #e6e6e6;
  color: rgba(0,0,0,.8);
  border-radius: .25rem;
  border-style: none;
  border-width: 0;
  cursor: pointer;
  -webkit-appearance: button;
  text-transform: none;
  overflow: visible;
  line-height: 1.15;
  margin: 0;
  will-change: transform;
  -moz-osx-font-smoothing: grayscale;
  backface-visibility: hidden;
  transform: translateZ(0);
  transition: transform .25s ease-out;
}

.modal__btn:focus, .modal__btn:hover {
  transform: scale(1.05);
}

.modal__btn-primary {
  background-color: #00449e;
  color: #fff;
}


@keyframes mmfadeIn {
    from { opacity: 0; }
      to { opacity: 1; }
}

@keyframes mmfadeOut {
    from { opacity: 1; }
      to { opacity: 0; }
}

@keyframes mmslideIn {
  from { transform: translateY(15%); }
    to { transform: translateY(0); }
}

@keyframes mmslideOut {
    from { transform: translateY(0); }
    to { transform: translateY(-10%); }
}

.micromodal-slide {
  display: none;
}

.micromodal-slide.is-open {
  display: block;
}

.micromodal-slide[aria-hidden="false"] .modal__overlay {
  animation: mmfadeIn .3s cubic-bezier(0.0, 0.0, 0.2, 1);
}

.micromodal-slide[aria-hidden="false"] .modal__container {
  animation: mmslideIn .3s cubic-bezier(0, 0, .2, 1);
}

.micromodal-slide[aria-hidden="true"] .modal__overlay {
  animation: mmfadeOut .3s cubic-bezier(0.0, 0.0, 0.2, 1);
}

.micromodal-slide[aria-hidden="true"] .modal__container {
  animation: mmslideOut .3s cubic-bezier(0, 0, .2, 1);
}

.micromodal-slide .modal__container,
.micromodal-slide .modal__overlay {
  will-change: transform;
}



.p-home .l-foot {
    bottom: 0;
    color: white;
    display: flex;
    flex-direction: column;
    flex-grow: 0;
    flex-shrink: 1;
    justify-content: center;
    left: 0;
    margin-top: 25px;
    padding: clamp(30px, 7vh, 50px) 50px clamp(30px, 3vh, 40px);
    text-align: center;
    width: 100%;
  }

    .p-home .l-foot h3 {
      font-size: clamp(22px, 7.5vw, 35px);
      color: var(--color-white);
    }

    .p-home .l-foot p {
      font-weight: bold;
    }

    .p-home .l-foot .fui-i .fui-alert-error {
        --fui-alert-font-size: 14px;
      }

    .p-home .l-foot .fui-submit {
      border-color: white;
    }

    .p-home .l-foot .fui-alert-error {
      --fui-alert-font-size: 12px;
    }

    .p-home .l-foot .newsletterSuccess {
      display: inline-block;
    }

    .p-home .l-foot .newsletterSuccess p {
        max-width: 480px;
      }

    .p-home .l-foot-content {
      margin-bottom: 30px;
    }
  @media (min-width: 1280px) and (min-height: 800px) {
    .p-home .l-foot {
      position: fixed;
      bottom: 25px;
    }
  }

.p-home {
  --pa-stripes: clamp(5px, 5vw, 50px);
  background-color: #315e89;
}

  .p-home .content {
    border-left: clamp(10px, 3vw, 15px) #86b2a3 solid;;
    border-right: clamp(10px, 3vw, 15px) #86b2a3 solid;;
    display: flex;
    flex-direction: column;
    /* min-height: calc(100dvh + 175px); */
    min-height: 100dvh;
    padding: var(--pa-stripes);
    position: relative;
  }

  .p-home .content-inner {
      position: relative;
      padding-bottom: 7.5dvh;
      padding-top: 7.5dvh;
    }

  .p-home .decoration {
    background-position: center 6px;
    background-repeat: repeat-x;
    background-size: auto 32px;
    background-image: url(../svg/bg-curves.svg);
    background-color: #007fa4;
    height: 38px;
    left: 0;
    pointer-events: none;
    position: absolute;
    width: 100%;
    z-index: 0;
  }

  .p-home .decoration-header {
      top: 0;
      transform: rotate(180deg);
    }

  .p-home .decoration-footer {
      bottom: 0;
    }

  .p-home .l-header,
  .p-home .l-hero,
  .p-home .l-btns {
    padding-left: 3.5vw;
    padding-right: 3.5vw;
  }

  .p-home .l-btns {
    display: grid;
    gap: 25px;
    grid-template-columns: 100%;
    justify-content: center;
    margin: auto;
  }

  .p-home .l-btns .btn {
      display: block;
      width: 100%;
      white-space: normal;
    }

  .p-home .l-header-img-desktop,
    .p-home .l-header-img-mobile {
      margin: auto;
    }

  .p-home .l-header-img-desktop {
      display: none;
    }

  .p-home .l-header-img-mobile {
      width: auto;
      height: 45px;
    }

  .p-home .l-hero {
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin-bottom: clamp(50px, 7.5dvh, 100px);
    padding-bottom: 0;
  }

  .p-home .l-hero p {
      color: var(--color-purple-light);
      font-size: 22px;
      text-align: center;
      font-size: clamp(20px, 4.5vw, 25px);
    }

  .p-home .l-hero-img {
      height: auto;
      margin: auto;
      width: clamp(220px, 50vw, 618px);
      max-width: 75vw;
      /* height: 30dvh;
      max-height: 250px;
      width: auto; */
    }

  .p-home .p-h1 {
    font-size: 0;
    height: clamp(30px, 5vw, 150px);
    margin: 0;
    max-height: 140px;
    padding: 0;
    text-indent: -999999px;
  }

  .p-home .p-h2 {
    color: var(--color-green-light);
    font-family: var(--font-family-default);
    font-size: clamp(20px, 3vw, 37px);
    margin-bottom: clamp(25px, 3vw, 35px);
    text-align: center;
    text-align: center;
    text-transform: uppercase;
  }

  .p-home .p-logo {
    margin: auto;
  }

  @media (min-height: 650px) and (max-width: 959px) {
      .p-home .content-inner {
        padding-top: 10dvh;
      }
      .p-home .l-btns .btn {
        font-size: clamp(18px, 4vw, 25px);
      }

    .p-home .l-hero {
      margin-bottom: clamp(50px, 10dvh, 100px);
    }

      .p-home .l-hero-img {
        width: clamp(250px, 50vw, 618px);
      }

    .p-home .p-h1 {
      height: clamp(40px, 5vw, 150px);
    }
  }

  @media (min-width: 480px) {
    .p-home .l-btns {
      grid-template-columns: minmax(max-content, 50%);
    }
  }

  @media (min-width: 960px) {
    .p-home .content {
      border-left: none;
      border-right: none;
    }

      .p-home .content-inner {
        display: flex;
        flex-direction: column;
      }

    .p-home .decoration {
      top: auto;
      bottom: 0;
      background-repeat: no-repeat;
      background-size: auto 100%;
      background-color: transparent;
      transform: none;
    }

      .p-home .decoration-header {
        aspect-ratio: 530 / 960;
        background-image: url(../svg/bg-trees-left.svg);
        left: 0;
        right: auto;
        height: 80dvh;
        width: auto;
        background-position: right bottom;
      }

      .p-home .decoration-footer {
        background-image: url(../svg/bg-tree-right.svg);
        background-position: 2.5vw bottom;
        left: auto;
        right: 0;
        width: auto;
        aspect-ratio: 345 / 585;
        height: 48dvh;
      }

    .p-home .l-btns {
      /* grid-template-columns: repeat(2, minmax(50%, max-content)); */
      display: flex;
      flex-wrap: wrap;
    }

      .p-home .l-btns .btn {
        max-width: none;
        min-width: 325px;
        width: -moz-max-content;
        width: max-content;
      }
      .p-home .l-header-img-desktop {
        display: block;
        height: clamp(30px, 10vw, 48px);
        max-width: 75%;
        width: auto;
      }

      .p-home .l-header-img-mobile {
        display: none;
      }

    .p-home .l-hero {
      padding: 0 2.5vw;
      margin-bottom: clamp(35px, 7vw, 100px);
    }
  }

  @media (min-width: 1440px) {
    .p-home .l-btns {
      grid-template-columns: repeat(3, minmax(325px, max-content));
    }
  }

  @media (min-height: 1080px) {
      .p-home .content-inner {
        padding-bottom: 10dvh;
        padding-top: 10dvh;
      }
  }



.p-faqs {
  --pa-stripes: clamp(5px, 5vw, 50px);
  background-color: #86b2a3;
}

  .p-faqs .content {
    border: clamp(10px, 3vw, 15px) #c1dbd0 solid;;
    display: flex;
    flex-direction: column;
    min-height: 100dvh;
    padding: var(--pa-stripes);
    position: relative;
  }

  .p-faqs .content-inner {
      position: relative;
      padding-bottom: clamp(65px, 7.5dvh, 120px);
      padding-top: clamp(35px, 10dvh, 65px);
    }

  .p-faqs .decoration {
    background-position: center 10px;
    background-repeat: repeat-x;
    background-size: auto 32px;
    background-image: url(../svg/bg-curves-light.svg);
    background-color: #315e89;
    height: 42px;
    left: 0;
    pointer-events: none;
    position: absolute;
    width: 100%;
    z-index: 0;
  }

  .p-faqs .decoration-header {
      top: 0;
      transform: rotate(180deg);
    }

  .p-faqs .decoration-footer {
      bottom: 0;
    }

  .p-faqs .l-header,
  .p-faqs .l-hero,
  .p-faqs .l-btns {
    padding-left: 3.5vw;
    padding-right: 3.5vw;
  }

  .p-faqs .l-btns {
    display: grid;
    gap: 25px;
    grid-template-columns: minmax(max-content, 50%);
    justify-content: center;
    margin: auto;
  }

  .p-faqs .l-btns .btn {
      display: block;
      width: 100%;
    }

  .p-faqs .l-header-img-desktop,
    .p-faqs .l-header-img-mobile {
      margin: auto;
    }

  .p-faqs .l-header-img-desktop {
      display: none;
    }

  .p-faqs .l-header-img-mobile {
      width: auto;
      height: 45px;
    }

  .p-faqs .l-hero {
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin-bottom: 100px;
    padding-bottom: 0;
  }

  .p-faqs .l-hero p {
      color: var(--color-purple-light);
      font-size: 22px;
      text-align: center;
      font-size: clamp(20px, 4.5vw, 25px);
    }

  .p-faqs .l-hero-img {
      height: auto;
      margin: auto;
      width: clamp(220px, 50vw, 600px);
      max-width: 75vw;
    }

  .p-faqs .p-h1 {
    font-size: 0;
    height: clamp(30px, 5vw, 70px);
    margin: 0;
    padding: 0;
    text-indent: -999999px;
  }

  .p-faqs .p-h2 {
    color: var(--color-green-light);
    font-family: var(--font-family-default);
    font-size: clamp(20px, 3vw, 37px);
    margin-bottom: clamp(25px, 3vw, 35px);
    text-align: center;
    text-align: center;
    text-transform: uppercase;
  }

  .p-faqs .p-logo {
    margin: auto;
  }

  @media  (max-width: 959px) {
      .p-faqs .l-btns .btn {
        font-size: clamp(18px, 4vw, 25px);
      }

    .p-faqs .l-hero {
      margin-bottom: clamp(50px, 10dvh, 100px);
    }

      .p-faqs .l-hero-img {
        width: clamp(250px, 50vw, 618px);
      }

    .p-faqs .p-h1 {
      height: clamp(40px, 5vw, 150px);
    }
  }

  @media (min-width: 960px) {
        .p-faqs .content .l-header-img-desktop {
          display: block;
          height: clamp(30px, 10vw, 48px);
          max-width: 75%;
          width: auto;
        }

        .p-faqs .content .l-header-img-mobile {
          display: none;
        }
  }

  @media (min-width: 1280px) {

  }

  @media (min-height: 1080px) {
      .p-faqs .content-inner {
        padding-bottom: 10dvh;
        padding-top: 10dvh;
      }
  }





