@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Lora:wght@500;600;700&display=swap");

:root {
  --lf-navy: #143153;
  --lf-blue: #00658c;
  --lf-teal: #1b92a2;
  --lf-magenta: #b83b83;
  --lf-cream: #f5f1eb;
  --lf-mist: #e9f2f4;
  --lf-ink: #182b42;
  --lf-white: #ffffff;
}

/* ---------- GLOBAL TYPOGRAPHY ---------- */

body,
.sqs-block-content,
.header-nav,
.header-menu-nav,
button,
input,
textarea,
select {
  font-family: "DM Sans", Arial, sans-serif !important;
}

body {
  color: var(--lf-ink);
}

h1,
h2,
h3,
.heading-font {
  font-family: "Lora", Georgia, serif !important;
  color: var(--lf-navy);
  letter-spacing: -0.035em;
}

h1 {
  font-size: clamp(3rem, 6vw, 6rem) !important;
  line-height: 1.02 !important;
}

h2 {
  font-size: clamp(2.1rem, 4vw, 4rem) !important;
  line-height: 1.12 !important;
}

h3 {
  font-size: clamp(1.35rem, 2.2vw, 2rem) !important;
  line-height: 1.25 !important;
}

p,
li {
  line-height: 1.7;
}

.sqs-block-content p {
  margin-bottom: 1.25em;
}

strong {
  font-weight: 700;
}

/* ---------- HEADER AND NAVIGATION ---------- */

.header {
  background: rgba(255, 255, 255, 0.97) !important;
  border-bottom: 1px solid rgba(20, 49, 83, 0.12);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.header-title-text a,
.header-nav-item a,
.header-menu-nav-item a {
  color: var(--lf-navy) !important;
}

.header-nav-item a,
.header-menu-nav-item a {
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
}

.header-nav-item a:hover,
.header-nav-item--active a {
  color: var(--lf-magenta) !important;
}

/* ---------- BUTTONS ---------- */

.sqs-button-element--primary,
.sqs-block-button-element--medium,
.sqs-block-button-element--large,
.header-actions-action--cta .sqs-button-element--primary {
  background: var(--lf-magenta) !important;
  border: 1px solid var(--lf-magenta) !important;
  border-radius: 0 !important;
  color: var(--lf-white) !important;
  font-family: "DM Sans", Arial, sans-serif !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  padding: 1.1rem 1.6rem !important;
  text-transform: uppercase !important;
  transition: background 0.2s ease, border-color 0.2s ease,
    transform 0.2s ease !important;
}

.sqs-button-element--primary:hover,
.sqs-block-button-element--medium:hover,
.sqs-block-button-element--large:hover,
.header-actions-action--cta .sqs-button-element--primary:hover {
  background: #9d2d6d !important;
  border-color: #9d2d6d !important;
  color: var(--lf-white) !important;
  opacity: 1 !important;
  transform: translateY(-2px);
}

.sqs-button-element--secondary {
  background: transparent !important;
  border: 1px solid var(--lf-blue) !important;
  border-radius: 0 !important;
  color: var(--lf-blue) !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  padding: 1.1rem 1.6rem !important;
  text-transform: uppercase !important;
}

.sqs-button-element--secondary:hover {
  background: var(--lf-blue) !important;
  color: var(--lf-white) !important;
  opacity: 1 !important;
}

/* ---------- TEXT LINKS ---------- */

.sqs-block-content p a:not(.sqs-button-element),
.sqs-block-content li a {
  color: var(--lf-blue);
  font-weight: 600;
  text-decoration-color: rgba(0, 101, 140, 0.35);
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

.sqs-block-content p a:hover,
.sqs-block-content li a:hover {
  color: var(--lf-magenta);
  text-decoration-color: var(--lf-magenta);
}

/* ---------- SECTIONS ---------- */

.page-section {
  position: relative;
}

.page-section.section-height--small > .content-wrapper {
  padding-top: clamp(3.5rem, 7vw, 6rem) !important;
  padding-bottom: clamp(3.5rem, 7vw, 6rem) !important;
}

.page-section.section-height--medium > .content-wrapper,
.page-section.section-height--large > .content-wrapper {
  padding-top: clamp(5rem, 9vw, 8rem) !important;
  padding-bottom: clamp(5rem, 9vw, 8rem) !important;
}

/* Choose LIGHT 2 for cream sections in the Squarespace editor */
.section-background:not(.has-background) {
  background-color: inherit;
}

/* ---------- IMAGE BLOCKS ---------- */

.image-block-outer-wrapper img,
.sqs-image-shape-container-element img {
  filter: saturate(0.92);
}

.image-block-wrapper,
.sqs-image-shape-container-element {
  border-radius: 0 !important;
}

/* ---------- CARDS AND SUMMARY BLOCKS ---------- */

.summary-item,
.user-items-list-item-container,
.list-item-content {
  border-radius: 0 !important;
}

.summary-item {
  border-top: 1px solid rgba(20, 49, 83, 0.2);
  padding-top: 1.5rem !important;
}

.summary-title,
.list-item-content__title {
  color: var(--lf-navy) !important;
  font-family: "Lora", Georgia, serif !important;
  font-weight: 600 !important;
}

.summary-read-more-link {
  color: var(--lf-blue) !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.09em !important;
  text-transform: uppercase !important;
}

/* ---------- QUOTES ---------- */

blockquote {
  border: 0 !important;
  color: var(--lf-navy);
  font-family: "Lora", Georgia, serif !important;
  font-size: clamp(1.5rem, 2.5vw, 2.4rem) !important;
  line-height: 1.45 !important;
  margin: 0 auto !important;
  max-width: 950px;
  padding: 1rem 0 !important;
}

/* ---------- FORMS ---------- */

.form-wrapper .field-list .field .field-element,
.form-wrapper input,
.form-wrapper textarea,
.form-wrapper select {
  background: var(--lf-white) !important;
  border: 1px solid rgba(20, 49, 83, 0.28) !important;
  border-radius: 0 !important;
  color: var(--lf-ink) !important;
  padding: 1rem !important;
}

.form-wrapper .field-list .field .field-element:focus,
.form-wrapper input:focus,
.form-wrapper textarea:focus,
.form-wrapper select:focus {
  border-color: var(--lf-blue) !important;
  box-shadow: 0 0 0 2px rgba(0, 101, 140, 0.12) !important;
  outline: none !important;
}

.form-wrapper .field-list .title,
.form-wrapper label {
  color: var(--lf-navy) !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.form-wrapper input[type="submit"],
.form-wrapper button[type="submit"] {
  background: var(--lf-magenta) !important;
  border: 1px solid var(--lf-magenta) !important;
  border-radius: 0 !important;
  color: var(--lf-white) !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  padding: 1.1rem 1.7rem !important;
  text-transform: uppercase !important;
}

/* ---------- FOOTER ---------- */

footer.sections {
  background: #0d2540 !important;
  color: var(--lf-white);
}

footer.sections h1,
footer.sections h2,
footer.sections h3,
footer.sections p,
footer.sections a {
  color: var(--lf-white) !important;
}

/* ---------- MOBILE ---------- */

@media screen and (max-width: 767px) {
  h1 {
    font-size: clamp(2.7rem, 13vw, 4.2rem) !important;
  }

  h2 {
    font-size: clamp(2rem, 9vw, 3rem) !important;
  }

  .page-section.section-height--small > .content-wrapper,
  .page-section.section-height--medium > .content-wrapper,
  .page-section.section-height--large > .content-wrapper {
    padding-top: 4rem !important;
    padding-bottom: 4rem !important;
  }

  .sqs-block-button-container,
  .sqs-block-button-element {
    width: 100% !important;
  }

  .sqs-block-button-element {
    text-align: center !important;
  }