:root {
  --color-hero: #002931;
  --color-header-footer: #00313b;
  --color-heading: #003945;
  --color-body: #263b3e;
  --color-on-dark: #f7f6f3;
  --color-accent: #3eb6a7;
  --color-accent-bright: #45d7c2;
  --color-accent-on-light: #18766e;
  --color-surface-warm: #f3f0ed;
  --color-surface-light: #faf9f8;
  --color-border: #dedad6;
  --color-border-dark: rgba(255, 255, 255, 0.16);
  --color-white: #fff;
  --font-display: "Instrument Serif", Georgia, serif;
  --font-sans: "Manrope", Arial, sans-serif;
  --container-wide: 1180px;
  --container-narrow: 780px;
  --gutter: 24px;
  --section-space: clamp(6rem, 8.4vw, 8.75rem);
  --small-section-space: clamp(2.75rem, 4.1vw, 4rem);
  --header-height: 76px;
  --rule-width: 1px;
  --quick-fact-icon-size: 76px;
  --quick-fact-icon-image-size: 46px;
  --form-control-height: 50px;
  --desktop-root-font-size: 100%;
  --mobile-root-font-size: 100%;
  --type-eyebrow: clamp(10.88px, 0.72vw, 12.32px);
  --type-hero-title: clamp(56.8px, 6.35vw, 92px);
  --type-section-title: clamp(48px, 4.9vw, 72px);
  --type-editorial-subtitle: clamp(28px, 2.5vw, 37.6px);
  --type-who-highlight: clamp(19.2px, 1.7vw, 24px);
  --type-footer-statement: clamp(19.2px, 1.75vw, 26.4px);
  --type-hero-title-mobile: clamp(44px, 13.2vw, 52px);
  --type-section-title-mobile: clamp(40.8px, 11.5vw, 48px);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 0;
  font-size: var(--desktop-root-font-size);
}

body {
  margin: 0;
  overflow-x: clip;
  color: var(--color-body);
  background: var(--color-surface-light);
  font-family: var(--font-sans);
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.72;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

a {
  color: inherit;
  text-underline-offset: 0.22em;
}

a:hover {
  color: inherit;
}

button,
input,
select,
textarea {
  font: inherit;
}

:focus-visible {
  outline: 2px solid var(--color-accent-bright);
  outline-offset: 4px;
}

.container-wide,
.container-narrow {
  width: calc(100% - (var(--gutter) * 2));
  margin-inline: auto;
}

.container-wide {
  max-width: var(--container-wide);
}

.container-narrow {
  max-width: var(--container-narrow);
}

.skip-link {
  position: fixed;
  z-index: 9999;
  top: 12px;
  left: 12px;
  padding: 10px 14px;
  color: var(--color-hero);
  background: var(--color-accent-bright);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  transform: translateY(-150%);
}

.skip-link:focus {
  transform: translateY(0);
}

.eyebrow {
  margin: 0 0 0.8rem;
  color: var(--color-accent-on-light);
  font-family: var(--font-sans);
  font-size: var(--type-eyebrow);
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: 0.17em;
  text-transform: uppercase;
}

.hero-title,
.section-title,
.editorial-subtitle {
  margin: 0;
  color: var(--color-heading);
  font-family: var(--font-display);
  font-weight: 400;
}

.hero-title {
  max-width: 850px;
  color: var(--color-on-dark);
  font-size: var(--type-hero-title);
  line-height: 0.97;
  letter-spacing: -0.018em;
}

.section-title {
  max-width: 760px;
  font-size: var(--type-section-title);
  line-height: 0.98;
  letter-spacing: -0.015em;
}

.editorial-subtitle {
  margin-bottom: 0.65rem;
  font-size: var(--type-editorial-subtitle);
  line-height: 1.05;
}

.editorial-lead {
  max-width: 750px;
  margin: 1.05rem 0 0;
  color: #405153;
  font-size: 1.02rem;
  line-height: 1.62;
}

.editorial-copy {
  margin-top: 1.65rem;
}

.editorial-copy > :first-child {
  margin-top: 0;
}

.editorial-copy > :last-child {
  margin-bottom: 0;
}

.editorial-copy p {
  margin: 0 0 1.25rem;
}

.editorial-copy a,
.updates-section a {
  text-decoration-color: var(--color-accent);
}

.button {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.76rem 1.35rem;
  border: 1px solid transparent;
  border-radius: 1px;
  font-size: 0.7rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.12em;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease;
}

.button--primary {
  color: var(--color-hero);
  background: var(--color-accent-bright);
  border-color: var(--color-accent-bright);
}

.button--primary:hover {
  color: var(--color-hero);
  background: #69e2d0;
  border-color: #69e2d0;
}

.button--outline {
  color: var(--color-on-dark);
  background: transparent;
  border-color: rgba(247, 246, 243, 0.68);
}

.button--outline:hover {
  color: var(--color-hero);
  background: var(--color-on-dark);
  border-color: var(--color-on-dark);
}

/* Header */
.site-header {
  position: relative;
  z-index: 100;
  color: var(--color-accent);
  background: var(--color-header-footer);
}

.site-header__desktop,
.site-header__mobile {
  height: var(--header-height);
  align-items: center;
}

.site-header__desktop {
  grid-template-columns: 1fr auto 1fr;
}

.site-header__mobile {
  grid-template-columns: minmax(0, 1fr) auto;
}

.site-header__mobile .site-header__brand {
  justify-self: start;
  justify-content: flex-start;
}

.site-header__nav--left {
  justify-self: start;
}

.site-header__nav--right {
  justify-self: end;
}

.site-header__list,
.site-header__mobile-list {
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: clamp(1.1rem, 2.15vw, 2.35rem);
  list-style: none;
}

.site-header__link,
.site-header__mobile-link {
  display: inline-flex;
  align-items: center;
  color: var(--color-accent);
  font-size: 0.62rem;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0.13em;
  text-decoration: none;
  text-transform: uppercase;
}

.site-header__link:hover,
.site-header__mobile-link:hover {
  color: var(--color-on-dark);
}

/*
 * Desktop section-aware navigation.
 * The active item is fully white at the start of its section and the whole
 * label progressively shifts back to the default turquoise as that section
 * is completed.
 */
@media (min-width: 992px) {
  html {
    scroll-padding-top: calc(var(--header-height) + 2px);
  }

  .site-header {
    position: sticky;
    top: 0;
  }

  /*
   * Cover the tiny sub-pixel seam that can appear under a sticky header in
   * some desktop browsers, so no pixels from the previous section remain
   * visible while scrolling.
   */
  .site-header::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: -2px;
    left: 0;
    height: 2px;
    background: var(--color-header-footer);
    pointer-events: none;
  }

  .site-header__link.is-active {
    color: var(--color-on-dark);
  }

  /*
   * Horizontal section progress: the active label starts fully white.
   * As the visitor moves through the section, turquoise advances from
   * left to right until the whole label is turquoise at 100%.
   */
  @supports ((-webkit-background-clip: text) or (background-clip: text)) {
    .site-header__link.is-active {
      background-image: linear-gradient(
        90deg,
        var(--color-accent) 0%,
        var(--color-accent) var(--jwf-section-progress, 0%),
        var(--color-on-dark) var(--jwf-section-progress, 0%),
        var(--color-on-dark) 100%
      );
      background-clip: text;
      -webkit-background-clip: text;
      color: transparent;
      -webkit-text-fill-color: transparent;
    }
  }
}

.site-header__brand {
  justify-self: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: 180px;
  color: var(--color-accent);
  text-decoration: none;
}

.site-header__logo {
  width: auto;
  max-width: 156px;
  max-height: 42px;
}

.site-header__wordmark {
  font-family: var(--font-display);
  font-size: 1.28rem;
  line-height: 1;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.site-header__toggle {
  width: 44px;
  height: 44px;
}

.site-header__toggle {
  justify-self: end;
  position: relative;
  padding: 10px;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.site-header__toggle-line {
  display: block;
  width: 24px;
  height: 1px;
  margin: 5px auto;
  background: var(--color-on-dark);
  transform-origin: center;
  transition: opacity 160ms ease, transform 160ms ease;
}

.site-header__toggle:not(.collapsed) .site-header__toggle-line:nth-child(1) {
  transform: translateY(6px) rotate(45deg);
}

.site-header__toggle:not(.collapsed) .site-header__toggle-line:nth-child(2) {
  opacity: 0;
}

.site-header__toggle:not(.collapsed) .site-header__toggle-line:nth-child(3) {
  transform: translateY(-6px) rotate(-45deg);
}

.site-header__collapse {
  position: absolute;
  top: 100%;
  right: 0;
  left: 0;
  background: var(--color-header-footer);
  border-top: 1px solid var(--color-border-dark);
}

.site-header__mobile-list {
  align-items: stretch;
  flex-direction: column;
  gap: 0;
  padding: 1rem 0 1.4rem;
}

.site-header__mobile-list li {
  border-bottom: 1px solid var(--color-border-dark);
}

.site-header__mobile-list li:last-child {
  border-bottom: 0;
}

.site-header__mobile-link {
  width: 100%;
  min-height: 48px;
  padding: 0.65rem 0;
}

.site-header__mobile-link--cta {
  color: var(--color-hero);
  background: var(--color-accent-bright);
  justify-content: center;
  margin-top: 0.8rem;
}

/* Hero */
.hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  color: var(--color-on-dark);
  background: var(--color-hero);
}

.hero__media,
.hero__overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.hero__media {
  z-index: -2;
  overflow: hidden;
  background: var(--color-hero);
}

.hero__media-element {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
}

.hero__overlay {
  z-index: -1;
  background: rgba(0, 49, 53, var(--hero-overlay-opacity, 0.58));
}

.hero__inner {
  position: relative;
  z-index: 1;
  padding-top: clamp(6.5rem, 9vw, 9.25rem);
  padding-bottom: clamp(6.6rem, 9.5vw, 9.75rem);
}

.hero__eyebrow {
  margin-bottom: 1.35rem;
  color: var(--color-accent-bright);
}

.hero__intro {
  max-width: 850px;
  margin: 2rem 0 0;
  color: rgba(247, 246, 243, 0.9);
  font-size: 0.98rem;
  line-height: 1.72;
}

.hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
  margin-top: 2.25rem;
}

/* Quick facts */
.quick-facts {
  background: var(--color-surface-warm);
}

.quick-facts__grid {
  min-height: 310px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: center;
  padding-block: var(--small-section-space);
}

.quick-fact {
  align-self: stretch;
  min-width: 0;
  display: flex;
  align-items: center;
  flex-direction: column;
  justify-content: flex-start;
  padding: 0.6rem clamp(1rem, 2.5vw, 2.5rem);
  text-align: center;
}

.quick-fact + .quick-fact {
  border-left: var(--rule-width) solid var(--color-border);
}

.quick-fact__link {
  width: 100%;
  display: flex;
  align-items: center;
  flex-direction: column;
  color: inherit;
  text-decoration: none;
}

.quick-fact__icon {
  width: var(--quick-fact-icon-size);
  height: var(--quick-fact-icon-size);
  flex: 0 0 var(--quick-fact-icon-size);
  display: grid;
  place-items: center;
  margin: 0 auto 1rem;
  border: 1px solid rgba(0, 57, 69, 0.42);
  border-radius: 50%;
}

.quick-fact__icon:empty::after {
  width: 13px;
  height: 13px;
  border: 1px solid rgba(0, 57, 69, 0.36);
  border-radius: 50%;
  content: "";
}

.quick-fact__icon img {
  width: var(--quick-fact-icon-image-size);
  height: var(--quick-fact-icon-image-size);
  object-fit: contain;
}

.quick-fact__label {
  margin: 0 0 0.6rem;
  color: var(--color-accent-on-light);
  font-size: 0.69rem;
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.quick-fact__description {
  max-width: 185px;
  margin: 0 auto;
  color: var(--color-heading);
  font-family: var(--font-display);
  font-size: 1.18rem;
  line-height: 1.18;
}

.quick-fact__description > :first-child {
  margin-top: 0;
}

.quick-fact__description > :last-child {
  margin-bottom: 0;
}

/* Editorial bands */
.editorial-section,
.walk-section,
.plan-section,
.who-section,
.faq-section,
.updates-section {
  scroll-margin-top: 0;
}

.waterfront-section {
  padding-block: var(--section-space);
  background: var(--color-surface-light);
}

.waterfront-section .section-title {
  max-width: 570px;
}

.walk-section {
  padding-block: var(--section-space);
  background: var(--color-surface-warm);
}

.walk-section__steps {
  margin-top: clamp(3rem, 5vw, 4.75rem);
}

.walk-step + .walk-step {
  margin-top: clamp(4.75rem, 7.2vw, 7rem);
}

.editorial-figure {
  margin: 2rem 0 0;
}

.editorial-figure__image {
  width: 100%;
}

figcaption {
  margin-top: 0.55rem;
  color: #788487;
  font-size: 0.62rem;
  line-height: 1.5;
}

/* Plan */
.plan-section {
  padding-block: var(--section-space);
  background: var(--color-surface-light);
}

.plan-section__grid {
  display: grid;
  grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.22fr);
  align-items: center;
  gap: clamp(3.5rem, 7vw, 7.5rem);
}

.plan-section__copy .section-title {
  max-width: 410px;
}

.plan-section__figure {
  min-width: 0;
  margin: 0;
}

.plan-section__image {
  width: 100%;
  height: auto;
  object-fit: contain;
}

/* Who we are */
.who-section {
  position: relative;
  overflow: hidden;
  padding-block: clamp(5.75rem, 8vw, 8rem);
  color: rgba(247, 246, 243, 0.88);
  background: var(--color-hero);
}

.who-section__inner {
  position: relative;
  z-index: 1;
}

.who-section .section-title {
  color: var(--color-on-dark);
}

.who-section .eyebrow {
  color: var(--color-accent-bright);
}

.who-section__copy {
  color: rgba(247, 246, 243, 0.86);
}

.who-section__highlight {
  margin: 2rem 0 0;
  padding: 1.85rem 3rem 1.95rem;
  color: var(--color-accent-bright);
  border: 1px solid rgba(69, 215, 194, 0.48);
  border-radius: 7px;
  font-family: var(--font-display);
  font-size: var(--type-who-highlight);
  line-height: 1.28;
  letter-spacing: 0.025em;
  text-transform: uppercase;
}

.who-section__closing {
  color: rgba(247, 246, 243, 0.72);
}

.who-section__watermark {
  position: absolute;
  z-index: 0;
  left: -74px;
  bottom: -68px;
  width: clamp(220px, 21vw, 340px);
  opacity: 0.075;
  pointer-events: none;
}

/* FAQ */
.faq-section {
  padding-block: var(--section-space);
  background: var(--color-surface-light);
}

.faq-section__accordion {
  margin-top: clamp(2.8rem, 5vw, 4.5rem);
  border-top: var(--rule-width) solid var(--color-border);
}

.faq-item {
  border-bottom: var(--rule-width) solid var(--color-border);
}

.faq-item__heading {
  margin: 0;
}

.faq-item__button {
  width: 100%;
  min-height: 64px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  padding: 1.05rem 0;
  color: var(--color-body);
  border: 0;
  border-radius: 0;
  background: transparent;
  font-family: var(--font-display);
  font-size: 1.18rem;
  line-height: 1.3;
  text-align: left;
}

.faq-item__chevron {
  width: 25px;
  height: 25px;
  flex: 0 0 25px;
  background: transparent url("../images/ui/arrow-up.png") center / 25px 25px no-repeat;
}

.faq-item__button.collapsed .faq-item__chevron {
  background-image: url("../images/ui/arrow-down.png");
}

@supports (background-image: image-set(url("../images/ui/arrow-up.png") 1x)) {
  .faq-item__chevron {
    background-image: image-set(
      url("../images/ui/arrow-up.png") 1x,
      url("../images/ui/arrow-up@2x.png") 2x
    );
  }

  .faq-item__button.collapsed .faq-item__chevron {
    background-image: image-set(
      url("../images/ui/arrow-down.png") 1x,
      url("../images/ui/arrow-down@2x.png") 2x
    );
  }
}

.faq-item__answer {
  max-width: 680px;
  padding: 0 2.5rem 1.35rem 0;
  color: #5e6a6c;
  font-size: 0.88rem;
  line-height: 1.68;
}

.faq-item__answer > :last-child {
  margin-bottom: 0;
}

/* Updates / Gravity Forms */
.updates-section {
  padding-block: clamp(5.8rem, 8.2vw, 8.25rem);
  background: var(--color-surface-warm);
}

.updates-section .section-title {
  max-width: 690px;
}

.updates-section__intro {
  max-width: 730px;
  margin: 1.35rem 0 0;
}

.updates-section__form {
  margin-top: 2.15rem;
}

.updates-section__form:empty {
  display: none;
}

.updates-section .gform_wrapper {
  margin: 0;
}

.updates-section .gform_wrapper.gform-theme {
  --gf-color-primary: var(--color-accent-bright);
  --gf-color-primary-rgb: 69, 215, 194;
  --gf-color-primary-contrast: var(--color-hero);
  --gf-ctrl-bg-color: var(--color-white);
  --gf-ctrl-border-color: var(--color-border);
  --gf-ctrl-border-color-focus: var(--color-accent);
  --gf-ctrl-radius: 1px;
  --gf-ctrl-btn-radius: 1px;
  --gf-ctrl-shadow: none;
  --gf-ctrl-btn-shadow: none;
  --gf-ctrl-btn-bg-color-primary: var(--color-accent-bright);
  --gf-ctrl-btn-bg-color-hover-primary: #69e2d0;
  --gf-ctrl-btn-color-primary: var(--color-hero);
}

.updates-section .gform_wrapper form {
  display: flex;
  align-items: flex-start;
  gap: 16px;
}

.updates-section .gform_wrapper .gform_body {
  flex: 1 1 auto;
}

.updates-section .gform_wrapper .gform_fields {
  display: block;
}

.updates-section .gform_wrapper .gfield {
  margin: 0;
  padding: 0;
}

.updates-section .gform_wrapper .gfield_label {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.updates-section .gform_wrapper input[type="email"],
.updates-section .gform_wrapper input[type="text"] {
  width: 100%;
  height: var(--form-control-height);
  min-height: var(--form-control-height);
  min-block-size: var(--form-control-height);
  block-size: var(--form-control-height);
  margin: 0;
  padding: 0.7rem 1rem;
  color: var(--color-body);
  border: 1px solid var(--color-border);
  border-radius: 1px;
  background: var(--color-white);
  box-shadow: none;
  box-sizing: border-box;
  font-size: 0.86rem;
}

.updates-section .gform_wrapper input:focus {
  position: relative;
  z-index: 1;
  outline: 2px solid var(--color-accent);
  outline-offset: 1px;
}

.updates-section .gform_wrapper .gform_footer {
  flex: 0 0 auto;
  margin: 0;
  padding: 0;
}

.updates-section .gform_wrapper input[type="submit"],
.updates-section .gform_wrapper button[type="submit"] {
  height: var(--form-control-height);
  min-height: var(--form-control-height);
  min-block-size: var(--form-control-height);
  block-size: var(--form-control-height);
  margin: 0;
  padding: 0.75rem 1.65rem;
  color: var(--color-hero);
  border: 1px solid var(--color-accent-bright);
  border-radius: 1px;
  background: var(--color-accent-bright);
  box-shadow: none;
  box-sizing: border-box;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

/* Gravity Forms 3.x theme framework overrides. */
.updates-section .gform_wrapper.gform-theme form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 224px;
  align-items: start;
  gap: 16px;
}

.updates-section .gform_wrapper.gform-theme .gform_body,
.updates-section .gform_wrapper.gform-theme .gform_fields,
.updates-section .gform_wrapper.gform-theme .gfield--type-email,
.updates-section .gform_wrapper.gform-theme .ginput_container_email {
  min-width: 0;
  width: 100%;
}

.updates-section .gform_wrapper.gform-theme input[type="email"] {
  height: var(--form-control-height);
  min-height: var(--form-control-height);
  min-block-size: var(--form-control-height);
  block-size: var(--form-control-height);
  border-color: var(--color-border);
  border-radius: 1px;
  box-shadow: none;
  font-family: var(--font-sans);
  font-size: 0.86rem;
}

.updates-section .gform_wrapper.gform-theme .gform_footer {
  width: 224px;
  display: flex;
  align-items: stretch;
  align-self: start;
  gap: 0;
  margin: 0;
  padding: 0;
}

.updates-section .gform_wrapper.gform-theme .gform_footer .gform_button {
  width: 100%;
  height: var(--form-control-height);
  min-height: var(--form-control-height);
  min-block-size: var(--form-control-height);
  block-size: var(--form-control-height);
  justify-content: center;
  margin: 0;
  padding: 0.75rem 1.65rem;
  color: var(--color-hero);
  border: 1px solid var(--color-accent-bright);
  border-radius: 1px;
  background: var(--color-accent-bright);
  box-shadow: none;
  font-family: var(--font-sans);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.11em;
  line-height: 1;
  text-transform: uppercase;
}

/* Gravity Forms 3.0.1 maps its 38px control token through block-size on buttons.
 * Match the framework selector directly so the logical property cannot override
 * the 50px physical height declared above. */
.updates-section .gform_wrapper.gform-theme.gform-theme--framework .gform_footer button.gform_button.button,
.updates-section .gform_wrapper.gform-theme.gform-theme--framework .gform_footer input[type="submit"].gform_button.button {
  height: var(--form-control-height) !important;
  min-height: var(--form-control-height) !important;
  block-size: var(--form-control-height) !important;
  min-block-size: var(--form-control-height) !important;
}

.updates-section .gform_wrapper.gform-theme .gform_footer .gform_button:hover {
  color: var(--color-hero);
  border-color: #69e2d0;
  background: #69e2d0;
}

.updates-section .gform_wrapper .validation_message,
.updates-section .gform_wrapper .gfield_validation_message,
.updates-section .gform_wrapper .gform_validation_errors {
  color: #8b2020;
  font-size: 0.78rem;
}

.updates-section .gform_wrapper .gform_validation_errors {
  margin: 0 0 1.25rem;
  padding: 0.85rem 1rem;
  border: 0;
  border-left: 3px solid #a9473f;
  border-radius: 0;
  background: rgba(139, 32, 32, 0.055);
  box-shadow: none;
}

.updates-section .gform_wrapper .gform_validation_errors > h2,
.updates-section .gform_wrapper .gform_validation_errors .gform_submission_error {
  margin: 0;
  color: #8b2020;
  font-family: var(--font-sans);
  font-weight: 500;
  line-height: 1.5;
}

.updates-section .gform_wrapper .gform_validation_errors .gform-icon {
  display: none;
}

.updates-section .gform_wrapper .gform_validation_errors ol,
.updates-section .gform_wrapper .gform_validation_errors ul {
  margin: 0.45rem 0 0;
  padding-left: 1.3rem;
}

.updates-section .gform_wrapper .gform_validation_errors a {
  color: inherit;
  text-decoration-color: rgba(139, 32, 32, 0.45);
}

.updates-section .gform_wrapper .validation_message,
.updates-section .gform_wrapper .gfield_validation_message {
  margin-top: 0.45rem;
  padding: 0;
  border: 0;
  background: transparent;
  line-height: 1.45;
}

.updates-section .gform_wrapper .gfield_error input[type="email"],
.updates-section .gform_wrapper .gfield_error input[type="text"] {
  border-color: rgba(139, 32, 32, 0.62);
}

.updates-section .gform_confirmation_message {
  padding: 1rem 1.2rem;
  color: var(--color-heading);
  border-left: 3px solid var(--color-accent);
  background: rgba(255, 255, 255, 0.55);
}

.updates-section__contact {
  margin: 1.2rem 0 0;
  font-size: 0.75rem;
  line-height: 1.65;
}

.updates-section__contact strong {
  color: var(--color-heading);
  font-family: var(--font-display);
  font-size: 1.18rem;
  font-weight: 400;
  line-height: 1.25;
}

.updates-section__contact-link {
  margin-left: 0.4rem;
}

.updates-section__disclaimer {
  margin-top: 0.85rem;
  color: #6b7779;
  font-size: 0.7rem;
}

.updates-section__admin-message,
.editor-note {
  padding: 0.85rem 1rem;
  border-left: 3px solid var(--color-accent);
  background: rgba(255, 255, 255, 0.6);
  font-size: 0.82rem;
}

/* Footer */
.site-footer {
  color: var(--color-accent);
  background: var(--color-header-footer);
}

.site-footer__grid {
  min-height: 210px;
  display: grid;
  grid-template-columns: 1fr 1.15fr 1fr;
  align-items: center;
  gap: 2.5rem;
  padding-block: 3.5rem;
}

.site-footer__zone,
.site-footer__copy,
.site-footer__copyright,
.site-footer__statement,
.site-footer__links {
  margin: 0;
}

.site-footer__copy,
.site-footer__copyright,
.site-footer__links {
  font-size: 0.59rem;
  line-height: 1.7;
  letter-spacing: 0.05em;
}

.site-footer__copy p:last-child {
  margin-bottom: 0;
}

.site-footer__copyright {
  margin-top: 0.6rem;
}

.site-footer__statement {
  color: var(--color-accent);
  font-family: var(--font-display);
  font-size: var(--type-footer-statement);
  line-height: 1.2;
  letter-spacing: 0.035em;
  text-align: center;
  text-transform: uppercase;
  white-space: pre-line;
}

.site-footer__zone--right {
  text-align: right;
}

.site-footer__links {
  margin-top: 0.5rem;
  padding: 0;
  list-style: none;
}

.site-footer__link {
  color: var(--color-accent);
}

.site-footer__logo {
  width: auto;
  max-width: 125px;
  max-height: 44px;
  margin-bottom: 0.8rem;
}

/* Generic content page */
.generic-page {
  min-height: 60vh;
  background: var(--color-surface-light);
}

.generic-page__hero {
  padding-block: clamp(4.75rem, 7.5vw, 7.5rem);
  color: var(--color-on-dark);
  background: var(--color-hero);
}

.generic-page__title {
  max-width: 850px;
  margin: 0;
  color: var(--color-on-dark);
  font-family: var(--font-display);
  font-size: clamp(3.5rem, 6.25vw, 5.75rem);
  font-weight: 400;
  line-height: 0.98;
  letter-spacing: -0.018em;
  overflow-wrap: anywhere;
}

.generic-page__body {
  padding-block: var(--section-space);
}

.generic-content {
  color: var(--color-body);
  font-size: 1rem;
  line-height: 1.78;
}

.generic-content::after {
  display: table;
  clear: both;
  content: "";
}

.generic-content > :first-child {
  margin-top: 0;
}

.generic-content > :last-child {
  margin-bottom: 0;
}

.generic-content h2,
.generic-content h3,
.generic-content h4,
.generic-content h5,
.generic-content h6 {
  color: var(--color-heading);
  font-family: var(--font-display);
  font-weight: 400;
  overflow-wrap: anywhere;
}

.generic-content h2 {
  margin: 3.25rem 0 1rem;
  font-size: clamp(2.5rem, 4.4vw, 3.75rem);
  line-height: 1.02;
}

.generic-content h3 {
  margin: 2.5rem 0 0.8rem;
  font-size: clamp(1.85rem, 3vw, 2.5rem);
  line-height: 1.08;
}

.generic-content h4,
.generic-content h5,
.generic-content h6 {
  margin: 2rem 0 0.65rem;
  font-size: 1.45rem;
  line-height: 1.18;
}

.generic-content p,
.generic-content ul,
.generic-content ol,
.generic-content dl,
.generic-content table,
.generic-content blockquote,
.generic-content pre,
.generic-content figure,
.generic-content form,
.generic-content .wp-block-embed,
.generic-content .gform_wrapper {
  margin-top: 0;
  margin-bottom: 1.6rem;
}

.generic-content ul,
.generic-content ol {
  padding-left: 1.4rem;
}

.generic-content li + li {
  margin-top: 0.4rem;
}

.generic-content dt {
  color: var(--color-heading);
  font-weight: 600;
}

.generic-content dd {
  margin: 0 0 1rem;
}

.generic-content a:not(.wp-element-button):not(.button) {
  color: var(--color-accent-on-light);
  text-decoration-color: rgba(24, 118, 110, 0.52);
  text-decoration-thickness: 1px;
}

.generic-content a:not(.wp-element-button):not(.button):hover {
  color: var(--color-heading);
  text-decoration-color: currentColor;
}

.generic-content blockquote {
  padding: 0.25rem 0 0.25rem 1.5rem;
  color: var(--color-heading);
  border-left: 3px solid var(--color-accent);
  font-family: var(--font-display);
  font-size: clamp(1.45rem, 2.35vw, 2rem);
  line-height: 1.28;
}

.generic-content blockquote > :last-child {
  margin-bottom: 0;
}

.generic-content hr {
  margin: 3rem 0;
  border: 0;
  border-top: var(--rule-width) solid var(--color-border);
  opacity: 1;
}

.generic-content img,
.generic-content video,
.generic-content iframe {
  max-width: 100%;
}

.generic-content iframe {
  border: 0;
}

.generic-content figure img {
  width: auto;
}

.generic-content figcaption,
.generic-content .wp-element-caption {
  margin-top: 0.65rem;
  color: #697779;
  font-size: 0.72rem;
  line-height: 1.5;
}

.generic-content table {
  width: 100%;
  display: block;
  overflow-x: auto;
  border-collapse: collapse;
  border-spacing: 0;
  -webkit-overflow-scrolling: touch;
}

.generic-content th,
.generic-content td {
  min-width: 130px;
  padding: 0.85rem 1rem;
  text-align: left;
  vertical-align: top;
  border: var(--rule-width) solid var(--color-border);
}

.generic-content th {
  color: var(--color-heading);
  background: var(--color-surface-warm);
  font-size: 0.76rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.generic-content pre,
.generic-content code,
.generic-content kbd {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.generic-content code,
.generic-content kbd {
  padding: 0.12em 0.3em;
  background: var(--color-surface-warm);
  font-size: 0.88em;
}

.generic-content pre {
  max-width: 100%;
  overflow-x: auto;
  padding: 1.25rem;
  color: var(--color-on-dark);
  background: var(--color-hero);
  font-size: 0.82rem;
  line-height: 1.6;
  white-space: pre;
}

.generic-content pre code {
  padding: 0;
  color: inherit;
  background: transparent;
}

.generic-content .wp-element-button,
.generic-content .wp-block-button__link,
.generic-content input[type="submit"],
.generic-content button[type="submit"] {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.8rem 1.35rem;
  color: var(--color-hero);
  border: 1px solid var(--color-accent-bright);
  border-radius: 1px;
  background: var(--color-accent-bright);
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.1em;
  text-decoration: none;
  text-transform: uppercase;
}

.generic-content label {
  display: inline-block;
  margin-bottom: 0.35rem;
  color: var(--color-heading);
  font-size: 0.78rem;
  font-weight: 600;
}

.generic-content input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
.generic-content select,
.generic-content textarea {
  max-width: 100%;
  min-height: 46px;
  padding: 0.7rem 0.85rem;
  color: var(--color-body);
  border: var(--rule-width) solid var(--color-border);
  border-radius: 1px;
  background: var(--color-white);
}

.generic-content textarea {
  min-height: 140px;
}

.generic-content .alignleft {
  float: left;
  margin: 0.35rem 1.75rem 1rem 0;
}

.generic-content .alignright {
  float: right;
  margin: 0.35rem 0 1rem 1.75rem;
}

.generic-content .aligncenter {
  margin-right: auto;
  margin-left: auto;
}

.generic-content .alignwide {
  width: min(calc(100vw - (var(--gutter) * 2)), var(--container-wide));
  max-width: none;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
}

.generic-content .alignfull {
  width: 100vw;
  max-width: none;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
}

.generic-content .wp-block-columns {
  gap: clamp(1.5rem, 4vw, 3rem);
}

.generic-content details {
  margin-bottom: 1rem;
  padding: 1rem 0;
  border-top: var(--rule-width) solid var(--color-border);
  border-bottom: var(--rule-width) solid var(--color-border);
}

.generic-content summary {
  color: var(--color-heading);
  cursor: pointer;
  font-family: var(--font-display);
  font-size: 1.35rem;
}

.generic-content__pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 2.5rem;
}

/* Back to top */
.back-to-top {
  position: fixed;
  z-index: 95;
  right: clamp(16px, 2.25vw, 32px);
  bottom: clamp(16px, 2.25vw, 32px);
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  padding: 0;
  color: var(--color-hero);
  border: 1px solid rgba(0, 41, 49, 0.42);
  border-radius: 50%;
  background: var(--color-accent-bright);
  box-shadow: 0 10px 28px rgba(0, 41, 49, 0.22);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(12px) scale(0.94);
  transition: opacity 180ms ease, transform 180ms ease, visibility 180ms ease, background-color 180ms ease;
}

.back-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0) scale(1);
}

.back-to-top.is-visible:hover {
  background: #69e2d0;
  transform: translateY(-2px) scale(1);
}

.back-to-top:active {
  transform: translateY(0) scale(0.97);
}

.back-to-top svg {
  width: 23px;
  height: 23px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: square;
  stroke-linejoin: miter;
}

.default-content {
  min-height: 60vh;
  padding-block: var(--section-space);
}

.default-content article + article {
  margin-top: 4rem;
}

.default-content .section-title a {
  text-decoration: none;
}

@media (max-width: 1199.98px) {
  :root {
    --section-space: clamp(5.5rem, 9vw, 7.25rem);
  }

  .hero-title {
    max-width: 760px;
  }
}

@media (max-width: 991.98px) {
  :root {
    --header-height: 70px;
  }

  .quick-facts__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding-block: 2.5rem;
  }

  .quick-fact {
    min-height: 210px;
  }

  .quick-fact + .quick-fact {
    border-left: 0;
  }

  .quick-fact:nth-child(even) {
    border-left: var(--rule-width) solid var(--color-border);
  }

  .quick-fact:nth-child(n + 3) {
    border-top: var(--rule-width) solid var(--color-border);
  }

  .plan-section__grid {
    grid-template-columns: 1fr;
    gap: 3.25rem;
  }

  .plan-section__copy,
  .plan-section__figure {
    width: 100%;
    max-width: var(--container-narrow);
    margin-inline: auto;
  }

  .plan-section__copy .section-title {
    max-width: 650px;
  }

  .site-footer__grid {
    grid-template-columns: 1fr;
    gap: 2rem;
    padding-block: 3.5rem;
    text-align: center;
  }

  .site-footer__zone--right {
    text-align: center;
  }

  .site-footer__logo {
    margin-inline: auto;
  }

  .site-footer__copy,
  .site-footer__copyright,
  .site-footer__links {
    font-size: 0.68rem;
  }
}

@media (max-width: 767.98px) {
  html {
    font-size: var(--mobile-root-font-size);
  }

  body {
    font-size: 0.90625rem;
  }

  .hero__inner {
    padding-top: 5.75rem;
    padding-bottom: 6.2rem;
  }

  .hero__intro {
    margin-top: 1.55rem;
  }

  .quick-facts__grid {
    min-height: 0;
  }

  .walk-step + .walk-step {
    margin-top: 4.5rem;
  }

  .generic-page__hero {
    padding-block: 4.5rem;
  }

  .generic-page__title {
    font-size: clamp(3rem, 13.5vw, 4.25rem);
  }

  .generic-content {
    font-size: 0.95rem;
    line-height: 1.72;
  }

  .generic-content .alignleft,
  .generic-content .alignright {
    float: none;
    margin: 0 0 1.4rem;
  }

}

@media (max-width: 575.98px) {
  :root {
    --gutter: 20px;
    --section-space: clamp(4.25rem, 17vw, 5.5rem);
    --small-section-space: 2.5rem;
  }

  .hero-title {
    font-size: var(--type-hero-title-mobile);
    line-height: 0.99;
  }

  .section-title {
    font-size: var(--type-section-title-mobile);
  }

  .editorial-subtitle {
    font-size: 1.85rem;
  }

  .hero__inner {
    padding-top: 4.75rem;
    padding-bottom: 5.35rem;
  }

  .hero__actions {
    align-items: stretch;
    flex-direction: column;
    gap: 0.75rem;
  }

  .hero__actions .button {
    width: 100%;
  }

  .quick-fact {
    min-height: 190px;
    padding-inline: 0.75rem;
  }

  .quick-fact__description {
    max-width: 140px;
    font-size: 1.03rem;
  }

  .who-section__highlight {
    padding: 1.45rem 1.35rem 1.55rem;
    border-radius: 5px;
  }

  .who-section__watermark {
    left: -90px;
    bottom: -45px;
    width: 220px;
    opacity: 0.05;
  }

  .faq-item__button {
    min-height: 60px;
    font-size: 1.08rem;
  }

  .updates-section .gform_wrapper form,
  .updates-section .gform_wrapper.gform-theme form {
    display: block;
    grid-template-columns: 1fr;
  }

  .updates-section .gform_wrapper input[type="email"],
  .updates-section .gform_wrapper input[type="text"],
  .updates-section .gform_wrapper.gform-theme input[type="email"] {
    border-radius: 1px;
  }

  .updates-section .gform_wrapper .gform_footer,
  .updates-section .gform_wrapper.gform-theme .gform_footer {
    width: 100%;
    margin-top: 12px;
  }

  .updates-section .gform_wrapper input[type="submit"],
  .updates-section .gform_wrapper button[type="submit"],
  .updates-section .gform_wrapper.gform-theme .gform_footer .gform_button {
    width: 100%;
    border-radius: 1px;
  }

  .back-to-top {
    width: 46px;
    height: 46px;
  }

  .back-to-top svg {
    width: 20px;
    height: 20px;
  }
}

@media (max-width: 359.98px) {
  .quick-facts__grid {
    grid-template-columns: 1fr;
  }

  .quick-fact {
    min-height: 176px;
  }

  .quick-fact:nth-child(even) {
    border-left: 0;
  }

  .quick-fact:nth-child(n + 2) {
    border-top: var(--rule-width) solid var(--color-border);
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}
