@import "https://cdn.jsdelivr.net/npm/@fontsource/montserrat@latest/400.css";
@import "https://cdn.jsdelivr.net/npm/@fontsource/montserrat@latest/700.css";

* {
  box-sizing: border-box
}

body {
  margin: 0;
  min-height: 100dvh;
  overflow-x: hidden;
  font-family: 'Montserrat', sans-serif
}

.brand-header {
  background: linear-gradient(135deg, #F0F8F3 0%, #fff 60%, #F0F8F3 100%);
  border-bottom: 2px solid #9ECF97;
  box-shadow: 0 6px 22px 0 #3baf4d1c;
  position: relative;
  z-index: 100
}

.brand-header__top-bar {
  background: #3BAF4D;
  padding: 6px 24px
}

.brand-header__top-bar-inner {
  max-width: 1400px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px
}

.brand-header__notice {
  font-family: 'Montserrat', sans-serif;
  font-size: 15px;
  line-height: 1.3;
  color: #fff;
  letter-spacing: .02em
}

.brand-header__notice strong {
  font-weight: 700
}

.brand-header__contact-quick {
  display: flex;
  align-items: center;
  gap: 24px
}

.brand-header__contact-quick a {
  font-family: 'Montserrat', sans-serif;
  font-size: 15px;
  line-height: 1.3;
  color: #fff;
  text-decoration: none;
  letter-spacing: .01em;
  transition: color .45s cubic-bezier(0.22, 1, 0.36, 1), opacity .45s cubic-bezier(0.22, 1, 0.36, 1)
}

.brand-header__contact-quick a:hover {
  color: #F0F8F3;
  opacity: .82
}

.brand-header__contact-quick a:focus {
  outline: 2px dashed #fff;
  outline-offset: 3px
}

.brand-header__main {
  max-width: 1400px;
  margin: 0 auto;
  padding: 24px 24px 0;
  display: flex;
  align-items: stretch;
  gap: 52px
}

.brand-block {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
  padding-bottom: 24px
}

.brand-block__hex-frame {
  width: 72px;
  height: 72px;
  flex-shrink: 0;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center
}

.brand-block__hex-frame svg.hex-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%
}

.brand-block__hex-frame-inner {
  position: relative;
  z-index: 2;
  width: 52px;
  height: 52px;
  background: #fff;
  border-radius: 3px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 3px 0 #3baf4d0d;
  padding: 6px
}

.brand-block__hex-frame-inner img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block
}

.brand-block__text {
  display: flex;
  flex-direction: column;
  gap: 6px
}

.brand-block__name {
  font-family: 'Montserrat', sans-serif;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.1;
  color: #1a2e1d;
  letter-spacing: -.02em;
  text-decoration: none
}

.brand-block__name:hover {
  color: #3BAF4D
}

.brand-block__name:focus {
  outline: 2px dashed #3BAF4D;
  outline-offset: 3px
}

.brand-block__tagline {
  font-family: 'Montserrat', sans-serif;
  font-size: 15px;
  line-height: 1.3;
  color: #3BAF4D;
  letter-spacing: .04em;
  font-weight: 400
}

.primary-nav {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-end
}

.primary-nav__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: flex-end;
  gap: 6px;
  flex-wrap: wrap
}

.primary-nav__item {
  position: relative
}

.primary-nav__link {
  font-family: 'Montserrat', sans-serif;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.3;
  color: #2a3d2c;
  text-decoration: none;
  display: block;
  padding: 12px 24px;
  border-radius: 12px 12px 0 0;
  letter-spacing: .02em;
  transition: background-color .5s cubic-bezier(0.22, 1, 0.36, 1), color .5s cubic-bezier(0.22, 1, 0.36, 1);
  min-height: 44px;
  display: flex;
  align-items: center
}

.primary-nav__link:hover,
.primary-nav__link:focus {
  background: #F0F8F3;
  color: #3BAF4D
}

.primary-nav__link:focus {
  outline: 2px dashed #3BAF4D;
  outline-offset: 2px
}

.primary-nav__link.active-page {
  background: #3BAF4D;
  color: #fff
}

.primary-nav__item:hover .primary-nav__sub,
.primary-nav__item:focus-within .primary-nav__sub {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0px)
}

.primary-nav__sub {
  position: absolute;
  top: calc(100% + 2px);
  left: 0;
  min-width: 220px;
  background: #fff;
  border: 1px solid #9ECF97;
  border-radius: 0 0 12px 12px;
  box-shadow: 0 12px 48px 0 #3baf4d1f;
  padding: 6px 0;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-6px);
  transition: opacity .45s cubic-bezier(0.22, 1, 0.36, 1), transform .45s cubic-bezier(0.22, 1, 0.36, 1);
  z-index: 200
}

.primary-nav__sub::before {
  content: '';
  position: absolute;
  top: -12px;
  left: 0;
  right: 0;
  height: 12px;
  background: transparent
}

.primary-nav__sub-list {
  list-style: none;
  margin: 0;
  padding: 0
}

.primary-nav__sub-link {
  font-family: 'Montserrat', sans-serif;
  font-size: 15px;
  line-height: 1.5;
  color: #2a3d2c;
  text-decoration: none;
  display: block;
  padding: 12px 24px;
  transition: background-color .4s cubic-bezier(0.22, 1, 0.36, 1), color .4s cubic-bezier(0.22, 1, 0.36, 1);
  min-height: 44px;
  display: flex;
  align-items: center
}

.primary-nav__sub-link:hover,
.primary-nav__sub-link:focus {
  background: #F0F8F3;
  color: #3BAF4D
}

.primary-nav__sub-link:focus {
  outline: 2px dashed #3BAF4D;
  outline-offset: 2px
}

.site-footer {
  background: #1a2e1d;
  padding: 52px 24px 24px
}

.site-footer__inner {
  max-width: 1400px;
  margin: 0 auto
}

.site-footer__top {
  display: flex;
  align-items: flex-start;
  gap: 52px;
  padding-bottom: 52px;
  border-bottom: 1px solid #9ecf9733
}

.site-footer__brand {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 12px
}

.site-footer__logo-frame {
  width: 68px;
  height: 68px;
  background: #fff;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 6px;
  box-shadow: 0 2px 3px 0 #3baf4d0d 0 6px 22px 0 #3baf4d1c;
  border: 2px solid #9ECF97
}

.site-footer__logo-frame img {
  width: 52px;
  height: 52px;
  object-fit: contain;
  display: block
}

.site-footer__brand-name {
  font-family: 'Montserrat', sans-serif;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.1;
  color: #fff;
  letter-spacing: -.01em
}

.site-footer__brand-desc {
  font-family: 'Montserrat', sans-serif;
  font-size: 15px;
  line-height: 1.5;
  color: #9ECF97;
  max-width: 260px
}

.site-footer__columns {
  display: flex;
  gap: 52px;
  flex: 1;
  flex-wrap: wrap
}

.site-footer__col {
  display: flex;
  flex-direction: column;
  gap: 12px
}

.site-footer__col-label {
  font-family: 'Montserrat', sans-serif;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.3;
  color: #9ECF97;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding-bottom: 6px;
  border-bottom: 1px solid #9ecf9740
}

.site-footer__col-link {
  font-family: 'Montserrat', sans-serif;
  font-size: 15px;
  line-height: 1.5;
  color: #c8ddc5;
  text-decoration: none;
  transition: color .5s cubic-bezier(0.22, 1, 0.36, 1);
  display: inline-block
}

.site-footer__col-link:hover {
  color: #3BAF4D
}

.site-footer__col-link:focus {
  outline: 2px dashed #9ECF97;
  outline-offset: 3px;
  color: #3BAF4D
}

.site-footer__contact-item {
  font-family: 'Montserrat', sans-serif;
  font-size: 15px;
  line-height: 1.5;
  color: #c8ddc5;
  display: flex;
  flex-direction: column;
  gap: 6px
}

.site-footer__contact-label {
  font-size: 15px;
  color: #9ECF97;
  font-weight: 700
}

.site-footer__contact-link {
  color: #c8ddc5;
  text-decoration: none;
  transition: color .5s cubic-bezier(0.22, 1, 0.36, 1)
}

.site-footer__contact-link:hover {
  color: #3BAF4D
}

.site-footer__contact-link:focus {
  outline: 2px dashed #9ECF97;
  outline-offset: 3px
}

.site-footer__trust {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 24px 0;
  border-bottom: 1px solid #9ecf9726;
  flex-wrap: wrap
}

.site-footer__trust-item {
  display: flex;
  align-items: center;
  gap: 6px;
  font-family: 'Montserrat', sans-serif;
  font-size: 15px;
  line-height: 1.3;
  color: #9ECF97
}

.site-footer__trust-icon {
  width: 18px;
  height: 18px;
  flex-shrink: 0
}

.site-footer__bottom {
  padding-top: 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap
}

.site-footer__legal-nav {
  display: flex;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
  list-style: none;
  margin: 0;
  padding: 0
}

.site-footer__legal-link {
  font-family: 'Montserrat', sans-serif;
  font-size: 15px;
  line-height: 1.3;
  color: #9ECF97;
  text-decoration: none;
  transition: color .45s cubic-bezier(0.22, 1, 0.36, 1)
}

.site-footer__legal-link:hover {
  color: #3BAF4D
}

.site-footer__legal-link:focus {
  outline: 2px dashed #9ECF97;
  outline-offset: 3px
}

.site-footer__copyright {
  font-family: 'Montserrat', sans-serif;
  font-size: 15px;
  line-height: 1.3;
  color: #9ecf978c
}

.site-footer__address {
  font-family: 'Montserrat', sans-serif;
  font-size: 15px;
  line-height: 1.5;
  color: #9ecf978c;
  font-style: normal
}

@media (max-width: 1024px) {
  .brand-header__main {
    gap: 24px;
    padding: 24px 24px 0
  }

  .primary-nav__link {
    padding: 12px;
    font-size: 15px
  }

  .site-footer__top {
    flex-direction: column;
    gap: 24px
  }

  .site-footer__columns {
    gap: 24px
  }
}

@media (max-width: 768px) {
  .brand-header__top-bar-inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px
  }

  .brand-header__contact-quick {
    gap: 12px;
    flex-wrap: wrap
  }

  .brand-header__main {
    flex-direction: column;
    gap: 12px;
    padding: 12px 12px 0
  }

  .brand-block {
    padding-bottom: 12px
  }

  .primary-nav__list {
    gap: 6px
  }

  .primary-nav__link {
    padding: 12px;
    font-size: 15px
  }

  .site-footer__bottom {
    flex-direction: column;
    align-items: flex-start
  }

  .site-footer__columns {
    flex-direction: column;
    gap: 24px
  }
}

@media (max-width: 320px) {
  .brand-block__name {
    font-size: 22px
  }

  .brand-header__top-bar {
    padding: 6px 12px
  }

  .site-footer {
    padding: 24px 12px 12px
  }
}

.legal-main {
  max-width: 1400px;
  margin: 0 auto;
  padding: 52px 24px 96px
}

.legal-main h1 {
  font-size: 68px;
  line-height: 1.1;
  letter-spacing: -.03em;
  color: #1b2a1e;
  margin-bottom: 24px;
  margin-top: 0
}

.legal-main h2 {
  font-size: 38px;
  line-height: 1.3;
  letter-spacing: -.02em;
  color: #1b2a1e;
  margin-top: 52px;
  margin-bottom: 24px;
  padding-bottom: 12px;
  border-bottom: 2px solid #9ECF97
}

.legal-main h3 {
  font-size: 28px;
  line-height: 1.3;
  letter-spacing: -.01em;
  color: #1b2a1e;
  margin-top: 52px;
  margin-bottom: 12px
}

.legal-main h4 {
  font-size: 22px;
  line-height: 1.5;
  letter-spacing: -.005em;
  color: #1b2a1e;
  margin-top: 24px;
  margin-bottom: 12px
}

.legal-main h5 {
  font-size: 18px;
  line-height: 1.5;
  letter-spacing: 0;
  color: #2c3e2f;
  margin-top: 24px;
  margin-bottom: 6px
}

.legal-main h6 {
  font-size: 15px;
  line-height: 1.5;
  letter-spacing: .02em;
  color: #2c3e2f;
  text-transform: uppercase;
  margin-top: 24px;
  margin-bottom: 6px
}

.legal-main p {
  font-size: 18px;
  line-height: 1.7;
  letter-spacing: .01em;
  color: #2c3e2f;
  margin-top: 0;
  margin-bottom: 24px;
  max-width: 72ch
}

.legal-main em,
.legal-main i {
  font-style: italic;
  color: #2c3e2f
}

.legal-main a {
  color: #3BAF4D;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: color .45s cubic-bezier(0.22, 1, 0.36, 1), text-decoration-color .2s ease-in-out
}

.legal-main a:hover {
  color: #2a8f3a;
  text-decoration-color: #9ECF97
}

.legal-main a:visited {
  color: #2a8f3a
}

.legal-main div {
  margin-bottom: 24px
}

.legal-main div p:last-child {
  margin-bottom: 0
}

@media (max-width: 1024px) {
  .legal-main {
    padding: 52px 24px 96px
  }

  .legal-main h1 {
    font-size: 38px
  }

  .legal-main h2 {
    font-size: 28px;
    margin-top: 52px
  }

  .legal-main h3 {
    font-size: 22px;
    margin-top: 24px
  }

  .legal-main h4 {
    font-size: 18px
  }
}

@media (max-width: 768px) {
  .legal-main {
    padding: 24px 24px 52px
  }

  .legal-main h1 {
    font-size: 28px;
    line-height: 1.3
  }

  .legal-main h2 {
    font-size: 22px;
    margin-top: 24px
  }

  .legal-main h3 {
    font-size: 18px;
    margin-top: 24px
  }

  .legal-main h4,
  .legal-main h5 {
    font-size: 15px
  }

  .legal-main p {
    font-size: 15px;
    max-width: 100%
  }
}

@media (max-width: 320px) {
  .legal-main {
    padding: 24px 12px 52px
  }

  .legal-main h1 {
    font-size: 22px
  }

  .legal-main h2 {
    font-size: 18px
  }

  .legal-main h3,
  .legal-main h4,
  .legal-main h5,
  .legal-main h6 {
    font-size: 15px
  }
}

.services-detail-page {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 24px;
  overflow: hidden
}

.services-detail-page .clip-reveal {
  animation: clipRevealDown .6s cubic-bezier(0.22, 1, 0.36, 1) both
}

@keyframes clipRevealDown {
  from {
    clip-path: inset(0 0 100% 0);
    opacity: 0
  }

  to {
    clip-path: inset(0 0 0% 0);
    opacity: 1
  }
}

.services-detail-page .clip-reveal-delayed {
  animation: clipRevealDown .7s cubic-bezier(0.22, 1, 0.36, 1) .18s both
}

.services-detail-page .clip-reveal-slow {
  animation: clipRevealDown .65s cubic-bezier(0.22, 1, 0.36, 1) .32s both
}

.services-detail-page .title-block {
  padding: 52px 0 96px;
  position: relative
}

.services-detail-page .title-block .curved-bg {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
  overflow: hidden;
  border-radius: 0
}

.services-detail-page .title-block .curved-bg svg {
  position: absolute;
  top: -24px;
  right: -52px;
  width: 520px;
  height: 400px;
  opacity: .13
}

.services-detail-page .title-block .frame-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 52px;
  align-items: center;
  position: relative;
  z-index: 1
}

.services-detail-page .title-block .image-frame {
  position: relative
}

.services-detail-page .title-block .image-decoration {
  position: absolute;
  top: -12px;
  left: -12px;
  right: 12px;
  bottom: 12px;
  border: 2px solid #9ECF97;
  border-radius: 12px;
  pointer-events: none
}

.services-detail-page .title-block .image-wrapper {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 12px 48px 0 #3baf4d1f
}

.services-detail-page .title-block .image-wrapper img {
  width: 100%;
  height: 380px;
  object-fit: cover;
  display: block;
  filter: blur(0px);
  transition: filter .5s cubic-bezier(0.22, 1, 0.36, 1)
}

.services-detail-page .title-block .image-wrapper::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, #f0f8f300 50%, #f0f8f373 100%);
  pointer-events: none;
  border-radius: 12px
}

.services-detail-page .title-block .text-side {
  display: flex;
  flex-direction: column;
  gap: 24px
}

.services-detail-page .title-block .top-accent-line {
  width: 38px;
  height: 3px;
  background: #3BAF4D;
  border-radius: 2px;
  margin-bottom: 6px
}

.services-detail-page .title-block .page-label {
  font-size: 15px;
  color: #3BAF4D;
  letter-spacing: .08em;
  font-weight: 600;
  text-transform: uppercase
}

.services-detail-page .title-block .main-heading {
  font-size: 38px;
  line-height: 1.1;
  font-weight: 700;
  color: #1e2d1f;
  letter-spacing: -.02em;
  margin: 0
}

.services-detail-page .title-block .tagline {
  font-size: 18px;
  line-height: 1.5;
  color: #3d5240;
  margin: 0;
  max-width: 420px
}

.services-detail-page .title-block .meta-row {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap
}

.services-detail-page .title-block .meta-item {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 6px;
  font-size: 15px;
  color: #4a6350
}

.services-detail-page .title-block .meta-item svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0
}

.services-detail-page .title-block .price-badge {
  display: inline-flex;
  align-items: center;
  background: #3BAF4D;
  color: #fff;
  font-size: 22px;
  font-weight: 700;
  padding: 6px 24px;
  border-radius: 3px;
  letter-spacing: -.01em;
  box-shadow: 0 6px 22px 0 #3baf4d1c
}

.services-detail-page .title-block .action-links {
  display: flex;
  flex-direction: row;
  gap: 12px;
  flex-wrap: wrap;
  align-items: center
}

.services-detail-page .title-block .btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #3BAF4D;
  color: #fff;
  font-size: 15px;
  font-weight: 600;
  padding: 12px 24px;
  border-radius: 3px;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: background-color .45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow .45s cubic-bezier(0.22, 1, 0.36, 1);
  box-shadow: 0 6px 22px 0 #3baf4d1c
}

.services-detail-page .title-block .btn-primary:hover {
  background: #2e9640;
  box-shadow: 0 12px 48px 0 #3baf4d1f
}

.services-detail-page .title-block .btn-ghost {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  color: #3BAF4D;
  font-size: 15px;
  font-weight: 600;
  padding: 12px 24px;
  border-radius: 3px;
  text-decoration: none;
  border: 2px solid #9ECF97;
  cursor: pointer;
  transition: border-color .5s ease-in-out, color .5s ease-in-out
}

.services-detail-page .title-block .btn-ghost:hover {
  border-color: #3BAF4D;
  color: #2e9640
}

.services-detail-page .title-block .copy-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: transparent;
  color: #4a6350;
  font-size: 15px;
  font-weight: 500;
  padding: 12px;
  border-radius: 3px;
  border: 2px solid #e8f2ea;
  cursor: pointer;
  transition: border-color .4s ease-in-out, color .4s ease-in-out
}

.services-detail-page .title-block .copy-btn:hover {
  border-color: #9ECF97;
  color: #3BAF4D
}

.services-detail-page .title-block .copy-btn svg {
  width: 15px;
  height: 15px
}

.services-detail-page .divider-diagonal {
  width: 100%;
  height: 2px;
  background: linear-gradient(105deg, #3baf4d00 0%, #3baf4d59 40%, #9ecf9799 60%, #9ecf9700 100%);
  margin: 0 0 52px;
  position: relative
}

.services-detail-page .divider-diagonal::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 8px;
  height: 8px;
  background: #3BAF4D;
  border-radius: 2px;
  rotate: 45deg
}

.services-detail-page .content-block {
  padding: 0 0 96px
}

.services-detail-page .content-block .wide-left-grid {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 52px;
  align-items: start
}

.services-detail-page .content-block .main-column {
  display: flex;
  flex-direction: column;
  gap: 52px
}

.services-detail-page .content-block .accent-column {
  display: flex;
  flex-direction: column;
  gap: 24px;
  position: sticky;
  top: 24px
}

.services-detail-page .content-block .top-accent-line {
  width: 38px;
  height: 3px;
  background: #3BAF4D;
  border-radius: 2px;
  margin-bottom: 6px
}

.services-detail-page .content-block .program-area h2,
.services-detail-page .content-block .description-area h2 {
  font-size: 28px;
  line-height: 1.3;
  font-weight: 700;
  color: #1e2d1f;
  letter-spacing: -.01em;
  margin: 0 0 24px
}

.services-detail-page .content-block .program-area h3,
.services-detail-page .content-block .description-area h3 {
  font-size: 22px;
  line-height: 1.3;
  font-weight: 600;
  color: #1e2d1f;
  margin: 24px 0 12px
}

.services-detail-page .content-block .program-area p,
.services-detail-page .content-block .description-area p {
  font-size: 18px;
  line-height: 1.7;
  color: #3d5240;
  margin: 0 0 12px
}

.services-detail-page .content-block .program-area ul,
.services-detail-page .content-block .description-area ul,
.services-detail-page .content-block .description-area ol {
  margin: 0 0 12px;
  padding-left: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 12px
}

.services-detail-page .content-block .program-area li,
.services-detail-page .content-block .description-area li {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 12px;
  font-size: 18px;
  line-height: 1.5;
  color: #3d5240;
  padding-left: 0;
  position: relative
}

.services-detail-page .content-block .program-area li::before,
.services-detail-page .content-block .description-area li::before {
  content: '';
  width: 8px;
  height: 8px;
  min-width: 8px;
  background: #3BAF4D;
  border-radius: 2px;
  margin-top: 7px
}

.services-detail-page .content-block .description-area ol {
  counter-reset: ordered-list
}

.services-detail-page .content-block .description-area ol li::before {
  content: counter(ordered-list);
  counter-increment: ordered-list;
  background: #3BAF4D;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  border-radius: 2px;
  min-width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 3px
}

.services-detail-page .content-block .description-area blockquote {
  border: none;
  background: #F0F8F3;
  border-radius: 12px;
  padding: 24px;
  margin: 24px 0;
  box-shadow: 0 2px 3px 0 #3baf4d0d
}

.services-detail-page .content-block .description-area blockquote p {
  font-size: 18px;
  line-height: 1.5;
  color: #2a4030;
  font-style: italic;
  margin: 0 0 6px
}

.services-detail-page .content-block .description-area blockquote cite {
  font-size: 15px;
  color: #3BAF4D;
  font-style: normal;
  font-weight: 600
}

.services-detail-page .content-block .description-area dl {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 0 0 12px
}

.services-detail-page .content-block .description-area dt {
  font-size: 15px;
  font-weight: 700;
  color: #1e2d1f;
  letter-spacing: .04em
}

.services-detail-page .content-block .description-area dd {
  font-size: 18px;
  line-height: 1.5;
  color: #3d5240;
  margin-left: 0;
  padding-left: 12px;
  border-left: none;
  border-top: 2px solid #9ECF97;
  padding-top: 6px
}

.services-detail-page .content-block .description-area details {
  background: #F0F8F3;
  border-radius: 3px;
  padding: 12px 24px;
  margin-bottom: 12px;
  cursor: pointer
}

.services-detail-page .content-block .description-area summary {
  font-size: 18px;
  font-weight: 600;
  color: #1e2d1f;
  cursor: pointer;
  outline: none
}

.services-detail-page .content-block .description-area figure {
  margin: 24px 0
}

.services-detail-page .content-block .description-area figcaption {
  font-size: 15px;
  color: #4a6350;
  margin-top: 6px;
  font-style: italic
}

.services-detail-page .content-block .description-area abbr {
  text-decoration: underline dotted #3BAF4D;
  cursor: help
}

.services-detail-page .content-block .accent-card {
  background: #F0F8F3;
  border-radius: 12px;
  padding: 24px;
  box-shadow: 0 2px 3px 0 #3baf4d0d
}

.services-detail-page .content-block .accent-card .card-label {
  font-size: 15px;
  font-weight: 700;
  color: #3BAF4D;
  letter-spacing: .06em;
  text-transform: uppercase;
  margin-bottom: 12px
}

.services-detail-page .content-block .accent-card p {
  font-size: 15px;
  line-height: 1.5;
  color: #3d5240;
  margin: 0
}

.services-detail-page .content-block .comparison-bar-block {
  background: #fff;
  border: 2px solid #e8f2ea;
  border-radius: 12px;
  padding: 24px;
  box-shadow: 0 2px 3px 0 #3baf4d0d
}

.services-detail-page .content-block .comparison-bar-block .bar-label {
  font-size: 15px;
  font-weight: 700;
  color: #1e2d1f;
  margin-bottom: 12px
}

.services-detail-page .content-block .comparison-bar-block .bar-extremes {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  margin-bottom: 6px
}

.services-detail-page .content-block .comparison-bar-block .bar-extreme {
  font-size: 12px;
  color: #4a6350;
  font-weight: 600;
  letter-spacing: .04em
}

.services-detail-page .content-block .comparison-bar-block .bar-track {
  width: 100%;
  height: 8px;
  background: #e8f2ea;
  border-radius: 3px;
  position: relative;
  margin-bottom: 6px
}

.services-detail-page .content-block .comparison-bar-block .bar-fill {
  height: 100%;
  background: linear-gradient(90deg, #9ecf9799 0%, #3baf4de6 100%);
  border-radius: 3px;
  width: 62%;
  transition: width .6s cubic-bezier(0.22, 1, 0.36, 1)
}

.services-detail-page .content-block .comparison-bar-block .bar-marker {
  position: absolute;
  top: -4px;
  left: 62%;
  transform: translateX(-50%);
  width: 16px;
  height: 16px;
  background: #3BAF4D;
  border-radius: 2px;
  rotate: 45deg;
  box-shadow: 0 2px 3px 0 #3baf4d0d
}

.services-detail-page .content-block .comparison-bar-block .bar-note {
  font-size: 12px;
  color: #4a6350;
  text-align: center
}

.services-detail-page .content-block .icon-connector {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  padding: 24px 0
}

.services-detail-page .content-block .icon-connector .ic-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px
}

.services-detail-page .content-block .icon-connector .ic-icon {
  width: 44px;
  height: 44px;
  background: #3BAF4D;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 22px 0 #3baf4d1c
}

.services-detail-page .content-block .icon-connector .ic-icon svg {
  width: 22px;
  height: 22px;
  fill: #fff
}

.services-detail-page .content-block .icon-connector .ic-label {
  font-size: 12px;
  color: #4a6350;
  font-weight: 600;
  letter-spacing: .04em;
  text-align: center
}

.services-detail-page .content-block .icon-connector .ic-dash {
  width: 2px;
  height: 24px;
  border-left: 2px dashed #9ECF97
}

.services-detail-page .divider-simple {
  width: 100%;
  height: 1px;
  background: linear-gradient(90deg, #9ecf9700 0%, #9ecf97b3 50%, #9ecf9700 100%);
  margin: 0 0 52px
}

.services-detail-page .engagement-block {
  padding: 0 0 96px
}

.services-detail-page .engagement-block .standout-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 52px;
  align-items: start
}

.services-detail-page .engagement-block .poll-area {
  background: #fff;
  border: 2px solid #e8f2ea;
  border-radius: 12px;
  padding: 24px;
  box-shadow: 0 6px 22px 0 #3baf4d1c
}

.services-detail-page .engagement-block .poll-area .top-accent-line {
  width: 38px;
  height: 3px;
  background: #3BAF4D;
  border-radius: 2px;
  margin-bottom: 12px
}

.services-detail-page .engagement-block .poll-area .poll-question {
  font-size: 22px;
  line-height: 1.3;
  font-weight: 700;
  color: #1e2d1f;
  margin: 0 0 24px
}

.services-detail-page .engagement-block .poll-area .poll-options {
  display: flex;
  flex-direction: column;
  gap: 12px
}

.services-detail-page .engagement-block .poll-area .poll-option {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 12px
}

.services-detail-page .engagement-block .poll-area .poll-option input[type="radio"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0
}

.services-detail-page .engagement-block .poll-area .poll-option label {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  font-size: 18px;
  line-height: 1.5;
  color: #3d5240;
  padding: 12px 24px;
  border: 2px solid #e8f2ea;
  border-radius: 3px;
  width: 100%;
  transition: border-color .45s cubic-bezier(0.22, 1, 0.36, 1), background-color .45s cubic-bezier(0.22, 1, 0.36, 1), color .45s cubic-bezier(0.22, 1, 0.36, 1)
}

.services-detail-page .engagement-block .poll-area .poll-option label .radio-dot {
  width: 18px;
  height: 18px;
  min-width: 18px;
  border-radius: 50%;
  border: 2px solid #9ECF97;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: border-color .4s ease-in-out, background-color .4s ease-in-out
}

.services-detail-page .engagement-block .poll-area .poll-option label .radio-dot::after {
  content: '';
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: transparent;
  transition: background-color .4s ease-in-out
}

.services-detail-page .engagement-block .poll-area .poll-option input[type="radio"]:checked+label {
  border-color: #3BAF4D;
  background: #F0F8F3;
  color: #1e2d1f;
  font-weight: 600
}

.services-detail-page .engagement-block .poll-area .poll-option input[type="radio"]:checked+label .radio-dot {
  border-color: #3BAF4D;
  background: #3BAF4D
}

.services-detail-page .engagement-block .poll-area .poll-option input[type="radio"]:checked+label .radio-dot::after {
  background: #fff
}

.services-detail-page .engagement-block .poll-area .poll-option label:hover {
  border-color: #9ECF97;
  background: #F0F8F3
}

.services-detail-page .engagement-block .standout-card {
  background: #3BAF4D;
  border-radius: 12px;
  padding: 52px 24px;
  box-shadow: 0 12px 48px 0 #3baf4d1f;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 24px;
  align-items: flex-start
}

.services-detail-page .engagement-block .standout-card .standout-bg-line {
  position: absolute;
  top: -24px;
  right: -24px;
  width: 200px;
  height: 200px;
  border: 2px solid #ffffff1f;
  border-radius: 50%;
  pointer-events: none
}

.services-detail-page .engagement-block .standout-card .standout-bg-line-2 {
  position: absolute;
  bottom: -52px;
  left: -24px;
  width: 160px;
  height: 160px;
  border: 2px solid #ffffff14;
  border-radius: 50%;
  pointer-events: none
}

.services-detail-page .engagement-block .standout-card .sc-label {
  font-size: 15px;
  font-weight: 700;
  color: #ffffffbf;
  letter-spacing: .08em;
  text-transform: uppercase
}

.services-detail-page .engagement-block .standout-card .sc-heading {
  font-size: 28px;
  line-height: 1.3;
  font-weight: 700;
  color: #fff;
  margin: 0;
  letter-spacing: -.01em
}

.services-detail-page .engagement-block .standout-card .sc-text {
  font-size: 18px;
  line-height: 1.5;
  color: #ffffffd9;
  margin: 0
}

.services-detail-page .engagement-block .standout-card .sc-price {
  font-size: 38px;
  font-weight: 700;
  color: #fff;
  letter-spacing: -.02em;
  line-height: 1.1
}

.services-detail-page .engagement-block .standout-card .sc-price sup {
  font-size: 18px;
  font-weight: 600;
  vertical-align: super;
  color: #fffc
}

.services-detail-page .engagement-block .standout-card .btn-white {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  color: #3BAF4D;
  font-size: 15px;
  font-weight: 700;
  padding: 12px 24px;
  border-radius: 3px;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: background-color .5s ease-in-out, color .5s ease-in-out;
  box-shadow: 0 6px 22px 0 #3baf4d1c
}

.services-detail-page .engagement-block .standout-card .btn-white:hover {
  background: #F0F8F3;
  color: #2e9640
}

@media (max-width: 1024px) {
  .services-detail-page .title-block .frame-grid {
    grid-template-columns: 1fr 1fr;
    gap: 24px
  }

  .services-detail-page .content-block .wide-left-grid {
    grid-template-columns: 1fr;
    gap: 24px
  }

  .services-detail-page .content-block .accent-column {
    position: static;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px
  }

  .services-detail-page .content-block .icon-connector {
    display: none
  }

  .services-detail-page .engagement-block .standout-grid {
    grid-template-columns: 1fr;
    gap: 24px
  }
}

@media (max-width: 768px) {
  .services-detail-page {
    padding: 0 12px
  }

  .services-detail-page .title-block {
    padding: 24px 0 52px
  }

  .services-detail-page .title-block .frame-grid {
    grid-template-columns: 1fr;
    gap: 24px
  }

  .services-detail-page .title-block .image-wrapper img {
    height: 220px
  }

  .services-detail-page .title-block .main-heading {
    font-size: 28px
  }

  .services-detail-page .content-block .accent-column {
    grid-template-columns: 1fr
  }

  .services-detail-page .content-block {
    padding: 0 0 52px
  }

  .services-detail-page .engagement-block {
    padding: 0 0 52px
  }
}

@media (max-width: 320px) {
  .services-detail-page .title-block .main-heading {
    font-size: 22px
  }

  .services-detail-page .title-block .price-badge {
    font-size: 18px
  }

  .services-detail-page .engagement-block .standout-card .sc-price {
    font-size: 28px
  }
}

::selection {
  background: #3BAF4D;
  color: #fff
}

.services-page {
  max-width: 1400px;
  margin: 0 auto;
  overflow: hidden
}

.services-page .load-reveal {
  animation: heightReveal .6s cubic-bezier(0.22, 1, 0.36, 1) forwards;
  overflow: hidden
}

@keyframes heightReveal {
  from {
    max-height: 0;
    opacity: 0
  }

  to {
    max-height: 2000px;
    opacity: 1
  }
}

.services-page .title-strip {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  background: #fff;
  padding: 52px 52px 52px 0;
  gap: 52px;
  position: relative
}

.services-page .title-strip .image-strip {
  width: 220px;
  min-width: 220px;
  position: relative;
  overflow: hidden;
  border-radius: 0 12px 12px 0
}

.services-page .title-strip .image-strip img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block
}

.services-page .title-strip .image-strip::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 60%;
  background: linear-gradient(to top, #3baf4d61 0%, #3baf4d0f 100%);
  pointer-events: none
}

.services-page .title-strip .geo-corner {
  position: absolute;
  top: 24px;
  right: 24px;
  width: 48px;
  height: 48px;
  pointer-events: none
}

.services-page .title-strip .geo-corner svg {
  width: 100%;
  height: 100%
}

.services-page .title-text {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 24px
}

.services-page .title-text .accent-line {
  width: 36px;
  height: 3px;
  background: #3BAF4D;
  border-radius: 2px
}

.services-page .title-text h1 {
  font-size: 38px;
  line-height: 1.1;
  letter-spacing: -.02em;
  color: #1a2a1c;
  margin: 0;
  font-weight: 700
}

.services-page .title-text h1 .accent-word {
  color: #3BAF4D
}

.services-page .title-text .subtitle {
  font-size: 18px;
  line-height: 1.5;
  color: #3d4f3e;
  max-width: 560px;
  margin: 0
}

.services-page .title-text .tag-row {
  display: flex;
  flex-direction: row;
  gap: 12px;
  flex-wrap: wrap
}

.services-page .title-text .tag {
  font-size: 15px;
  line-height: 1.3;
  color: #3BAF4D;
  border: 1.5px solid #9ECF97;
  border-radius: 3px;
  padding: 6px 12px;
  background: #F0F8F3;
  font-weight: 500
}

.services-page .cards-section {
  background: #F0F8F3;
  padding: 96px 52px
}

.services-page .cards-section .section-label {
  font-size: 15px;
  letter-spacing: .08em;
  color: #3BAF4D;
  font-weight: 600;
  text-transform: uppercase;
  margin-bottom: 12px
}

.services-page .cards-section h2 {
  font-size: 28px;
  line-height: 1.3;
  color: #1a2a1c;
  font-weight: 700;
  margin: 0 0 52px
}

.services-page .cards-section h2 .accent-word {
  color: #3BAF4D
}

.services-page .cards-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px
}

.services-page .service-card {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 6px 22px 0 #3baf4d1c;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow .5s cubic-bezier(0.22, 1, 0.36, 1), transform .5s cubic-bezier(0.22, 1, 0.36, 1)
}

.services-page .service-card:hover {
  box-shadow: 0 12px 48px 0 #3baf4d1f;
  transform: translateY(-4px)
}

.services-page .service-card .card-image-wrap {
  width: 100%;
  height: 220px;
  overflow: hidden;
  position: relative
}

.services-page .service-card .card-image-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform .6s cubic-bezier(0.22, 1, 0.36, 1)
}

.services-page .service-card:hover .card-image-wrap img {
  transform: scale(1.04)
}

.services-page .service-card .card-body {
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex: 1
}

.services-page .service-card .card-title {
  font-size: 22px;
  line-height: 1.3;
  color: #1a2a1c;
  font-weight: 700;
  margin: 0
}

.services-page .service-card .card-desc {
  font-size: 15px;
  line-height: 1.7;
  color: #3d4f3e;
  margin: 0;
  flex: 1
}

.services-page .service-card .card-footer {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  padding-top: 12px;
  border-top: 1.5px solid #F0F8F3;
  gap: 12px
}

.services-page .service-card .card-price {
  font-size: 22px;
  line-height: 1.1;
  color: #3BAF4D;
  font-weight: 700
}

.services-page .service-card .card-link {
  display: inline-block;
  background: #3BAF4D;
  color: #fff;
  font-size: 15px;
  font-weight: 600;
  padding: 6px 24px;
  border-radius: 3px;
  text-decoration: none;
  transition: background .45s ease-in-out, box-shadow .45s ease-in-out;
  box-shadow: 0 2px 3px 0 #3baf4d0d
}

.services-page .service-card .card-link:hover {
  background: #2d9040;
  box-shadow: 0 6px 22px 0 #3baf4d1c
}

.services-page .process-section {
  background: #fff;
  padding: 96px 52px;
  display: flex;
  flex-direction: row;
  gap: 96px;
  align-items: flex-start
}

.services-page .process-section .process-left {
  flex: 1;
  max-width: 420px
}

.services-page .process-section .process-left .accent-line {
  width: 36px;
  height: 3px;
  background: #3BAF4D;
  border-radius: 2px;
  margin-bottom: 12px
}

.services-page .process-section .process-left h2 {
  font-size: 28px;
  line-height: 1.3;
  color: #1a2a1c;
  font-weight: 700;
  margin: 0 0 24px
}

.services-page .process-section .process-left h2 .accent-word {
  color: #3BAF4D
}

.services-page .process-section .process-left p {
  font-size: 15px;
  line-height: 1.7;
  color: #3d4f3e;
  margin: 0 0 24px
}

.services-page .process-section .process-left .note-aside {
  font-size: 15px;
  line-height: 1.5;
  color: #3BAF4D;
  border-top: 1.5px solid #9ECF97;
  padding-top: 12px;
  font-style: italic
}

.services-page .process-section .process-right {
  flex: 1
}

.services-page .process-steps {
  display: flex;
  flex-direction: column;
  gap: 0
}

.services-page .process-step {
  display: flex;
  flex-direction: row;
  gap: 24px;
  align-items: flex-start;
  padding: 24px 0;
  position: relative
}

.services-page .step-trail {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 28px;
  flex-shrink: 0
}

.services-page .step-dot {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #9ECF97;
  border: 3px solid #fff;
  box-shadow: 0 2px 3px 0 #3baf4d0d;
  transition: background .4s ease-in-out;
  flex-shrink: 0
}

.services-page .process-step.active .step-dot {
  background: #3BAF4D;
  box-shadow: 0 6px 22px 0 #3baf4d1c
}

.services-page .step-line {
  width: 2px;
  flex: 1;
  min-height: 40px;
  background: linear-gradient(to bottom, #9ECF97 0%, #9ecf972e 100%);
  margin-top: 4px
}

.services-page .process-step:last-child .step-line {
  display: none
}

.services-page .step-content h4 {
  font-size: 18px;
  line-height: 1.3;
  color: #1a2a1c;
  font-weight: 700;
  margin: 0 0 6px
}

.services-page .step-content p {
  font-size: 15px;
  line-height: 1.7;
  color: #3d4f3e;
  margin: 0
}

.services-page .testimonials-section {
  background: #F0F8F3;
  padding: 96px 52px;
  position: relative
}

.services-page .testimonials-section .bg-parallax {
  position: absolute;
  inset: 0;
  background-image: url(./graphics_gallery/features-03-260111.jpg);
  background-attachment: fixed;
  background-size: cover;
  background-position: center;
  opacity: .07;
  pointer-events: none;
  border-radius: 0
}

.services-page .testimonials-section .section-label {
  font-size: 15px;
  letter-spacing: .08em;
  color: #3BAF4D;
  font-weight: 600;
  text-transform: uppercase;
  margin-bottom: 12px;
  position: relative
}

.services-page .testimonials-section h2 {
  font-size: 28px;
  line-height: 1.3;
  color: #1a2a1c;
  font-weight: 700;
  margin: 0 0 52px;
  position: relative
}

.services-page .testimonials-section h2 .accent-word {
  color: #3BAF4D
}

.services-page .testimonials-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  position: relative
}

.services-page .testimonial-card {
  background: #fff;
  border-radius: 12px;
  padding: 24px;
  box-shadow: 0 6px 22px 0 #3baf4d1c;
  display: flex;
  flex-direction: column;
  gap: 12px
}

.services-page .testimonial-card .quote-mark {
  width: 28px;
  height: 20px
}

.services-page .testimonial-card .quote-mark svg {
  width: 28px;
  height: 20px
}

.services-page .testimonial-card .quote-text {
  font-size: 15px;
  line-height: 1.7;
  color: #3d4f3e;
  margin: 0;
  flex: 1
}

.services-page .testimonial-card .person-row {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 12px
}

.services-page .testimonial-card .portrait {
  width: 52px;
  height: 52px;
  border-radius: 12px;
  overflow: hidden;
  flex-shrink: 0
}

.services-page .testimonial-card .portrait img {
  width: 52px;
  height: 52px;
  object-fit: cover;
  object-position: center;
  display: block
}

.services-page .testimonial-card .person-info .person-name {
  font-size: 15px;
  font-weight: 700;
  color: #1a2a1c;
  line-height: 1.3
}

.services-page .testimonial-card .person-info .person-role {
  font-size: 15px;
  color: #3BAF4D;
  line-height: 1.3
}

.services-page .cta-strip {
  background: #fff;
  padding: 52px;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 52px;
  border-top: 1.5px solid #F0F8F3
}

.services-page .cta-strip .cta-text {
  flex: 1
}

.services-page .cta-strip .cta-text h3 {
  font-size: 22px;
  line-height: 1.3;
  color: #1a2a1c;
  font-weight: 700;
  margin: 0 0 6px
}

.services-page .cta-strip .cta-text p {
  font-size: 15px;
  line-height: 1.5;
  color: #3d4f3e;
  margin: 0
}

.services-page .cta-strip .cta-actions {
  display: flex;
  flex-direction: row;
  gap: 12px;
  flex-shrink: 0
}

.services-page .cta-strip .btn-primary {
  display: inline-block;
  background: #3BAF4D;
  color: #fff;
  font-size: 18px;
  font-weight: 600;
  padding: 12px 24px;
  border-radius: 3px;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: background .5s cubic-bezier(0.22, 1, 0.36, 1), box-shadow .5s cubic-bezier(0.22, 1, 0.36, 1);
  box-shadow: 0 2px 3px 0 #3baf4d0d
}

.services-page .cta-strip .btn-primary:hover {
  background: #2d9040;
  box-shadow: 0 6px 22px 0 #3baf4d1c
}

.services-page .cta-strip .btn-secondary {
  display: inline-block;
  background: transparent;
  color: #3BAF4D;
  font-size: 18px;
  font-weight: 600;
  padding: 12px 24px;
  border-radius: 3px;
  text-decoration: none;
  border: 1.5px solid #9ECF97;
  cursor: pointer;
  transition: background .45s ease-in-out, border-color .45s ease-in-out
}

.services-page .cta-strip .btn-secondary:hover {
  background: #F0F8F3;
  border-color: #3BAF4D
}

@media (max-width: 1024px) {
  .services-page .title-strip {
    padding: 52px 24px 52px 0;
    gap: 24px
  }

  .services-page .title-strip .image-strip {
    width: 160px;
    min-width: 160px
  }

  .services-page .cards-section {
    padding: 52px 24px
  }

  .services-page .process-section {
    flex-direction: column;
    padding: 52px 24px;
    gap: 52px
  }

  .services-page .process-section .process-left {
    max-width: 100%
  }

  .services-page .testimonials-section {
    padding: 52px 24px
  }

  .services-page .cta-strip {
    padding: 52px 24px;
    flex-direction: column;
    gap: 24px
  }
}

@media (max-width: 768px) {
  .services-page .title-strip {
    flex-direction: column;
    padding: 24px;
    gap: 24px
  }

  .services-page .title-strip .image-strip {
    width: 100%;
    min-width: unset;
    height: 200px;
    border-radius: 12px
  }

  .services-page .title-text h1 {
    font-size: 28px
  }

  .services-page .cards-grid {
    grid-template-columns: 1fr
  }

  .services-page .testimonials-grid {
    grid-template-columns: 1fr
  }

  .services-page .cta-strip .cta-actions {
    flex-direction: column;
    width: 100%
  }

  .services-page .cta-strip .btn-primary,
  .services-page .cta-strip .btn-secondary {
    text-align: center
  }
}

@media (max-width: 320px) {
  .services-page .title-text h1 {
    font-size: 22px
  }

  .services-page .cards-section,
  .services-page .testimonials-section {
    padding: 24px 12px
  }
}

.learning-program {
  max-width: 100%;
  overflow-x: hidden
}

.learning-program .lp-split-hero {
  display: flex;
  flex-direction: row;
  min-height: 0;
  padding: 0
}

.learning-program .lp-split-hero .text-zone {
  flex: 1 1 52%;
  background: #F0F8F3;
  padding: 96px 52px 96px 96px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative
}

.learning-program .lp-split-hero .image-zone {
  flex: 1 1 48%;
  position: relative;
  overflow: hidden
}

.learning-program .lp-split-hero .image-zone img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block
}

.learning-program .lp-split-hero .image-zone .diagonal-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #3baf4db8 0%, #9ecf9761 55%, #f0f8f31a 100%);
  pointer-events: none
}

.learning-program .lp-split-hero .image-zone .deco-behind {
  position: absolute;
  top: -52px;
  right: -52px;
  width: 260px;
  height: 260px;
  border-radius: 0;
  border: 2px solid #3baf4d2e;
  pointer-events: none;
  z-index: 0
}

.learning-program .lp-split-hero .top-accent {
  display: block;
  width: 38px;
  height: 3px;
  background: #3BAF4D;
  border-radius: 2px;
  margin-bottom: 24px
}

.learning-program .lp-split-hero .hero-label {
  font-size: 15px;
  letter-spacing: .08em;
  color: #3BAF4D;
  text-transform: uppercase;
  margin-bottom: 12px;
  line-height: 1.5;
  font-weight: 600
}

.learning-program .lp-split-hero .hero-heading {
  font-size: 68px;
  line-height: 1.1;
  letter-spacing: -.03em;
  color: #1b2d22;
  margin: 0 0 24px;
  font-weight: 800
}

.learning-program .lp-split-hero .hero-heading .line-medium {
  font-size: 38px;
  display: block;
  font-weight: 700;
  color: #2a4030;
  line-height: 1.3
}

.learning-program .lp-split-hero .hero-heading .line-small {
  font-size: 28px;
  display: block;
  font-weight: 500;
  color: #3BAF4D;
  line-height: 1.3;
  letter-spacing: -.01em
}

.learning-program .lp-split-hero .hero-body {
  font-size: 18px;
  line-height: 1.7;
  color: #2e4038;
  max-width: 480px;
  margin-bottom: 24px
}

.learning-program .lp-split-hero .hero-meta {
  font-size: 15px;
  color: #5a7a65;
  line-height: 1.5
}

.learning-program .lp-split-hero .hero-meta sup {
  font-size: 11px;
  color: #3BAF4D;
  font-weight: 700;
  vertical-align: super
}

.learning-program .lp-split-hero .hero-cta {
  display: inline-block;
  margin-top: 24px;
  padding: 12px 52px;
  background: #3BAF4D;
  color: #fff;
  font-size: 18px;
  font-weight: 600;
  border-radius: 3px;
  text-decoration: none;
  box-shadow: 0 6px 22px 0 #3baf4d1c;
  transition: background-color .5s cubic-bezier(0.22, 1, 0.36, 1), box-shadow .45s cubic-bezier(0.22, 1, 0.36, 1);
  align-self: flex-start
}

.learning-program .lp-split-hero .hero-cta:hover {
  background: #2e9640;
  box-shadow: 0 12px 48px 0 #3baf4d1f
}

.learning-program .divider-cross {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  padding: 6px 0
}

.learning-program .divider-cross .line-segment {
  height: 1px;
  width: 80px;
  background: #9ECF97
}

.learning-program .divider-cross .cross-mark {
  width: 12px;
  height: 12px;
  position: relative;
  margin: 0 6px;
  flex-shrink: 0
}

.learning-program .divider-cross .cross-mark::before,
.learning-program .divider-cross .cross-mark::after {
  content: "";
  position: absolute;
  background: #3BAF4D;
  border-radius: 2px
}

.learning-program .divider-cross .cross-mark::before {
  width: 2px;
  height: 12px;
  left: 5px;
  top: 0
}

.learning-program .divider-cross .cross-mark::after {
  width: 12px;
  height: 2px;
  left: 0;
  top: 5px
}

.learning-program .lp-modules {
  padding: 96px;
  background: #fff;
  position: relative
}

.learning-program .lp-modules .modules-layout {
  max-width: 1400px;
  margin: 0 auto;
  display: flex;
  flex-direction: row;
  gap: 52px;
  align-items: flex-start
}

.learning-program .lp-modules .modules-aside {
  flex: 0 0 280px;
  position: sticky;
  top: 24px
}

.learning-program .lp-modules .modules-aside .aside-accent {
  display: block;
  width: 28px;
  height: 3px;
  background: #3BAF4D;
  border-radius: 2px;
  margin-bottom: 12px
}

.learning-program .lp-modules .modules-aside .aside-heading {
  font-size: 28px;
  font-weight: 700;
  color: #1b2d22;
  line-height: 1.3;
  margin: 0 0 24px;
  letter-spacing: -.01em
}

.learning-program .lp-modules .modules-aside .aside-note {
  font-size: 15px;
  color: #5a7a65;
  line-height: 1.7;
  margin-bottom: 24px
}

.learning-program .lp-modules .modules-aside .stats-stack {
  display: flex;
  flex-direction: column;
  gap: 12px
}

.learning-program .lp-modules .modules-aside .stat-item {
  background: #F0F8F3;
  border-radius: 3px;
  padding: 12px 24px;
  box-shadow: 0 2px 3px 0 #3baf4d0d
}

.learning-program .lp-modules .modules-aside .stat-item .stat-number {
  font-size: 28px;
  font-weight: 800;
  color: #3BAF4D;
  line-height: 1.1;
  letter-spacing: -.02em
}

.learning-program .lp-modules .modules-aside .stat-item .stat-label {
  font-size: 15px;
  color: #2e4038;
  line-height: 1.5
}

.learning-program .lp-modules .modules-main {
  flex: 1 1 0
}

.learning-program .lp-modules .trail-list {
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative
}

.learning-program .lp-modules .trail-list::before {
  content: "";
  position: absolute;
  left: 11px;
  top: 12px;
  bottom: 12px;
  width: 2px;
  background: linear-gradient(to bottom, #3baf4d8c 0%, #9ecf972e 100%);
  border-radius: 2px
}

.learning-program .lp-modules .trail-item {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 24px;
  margin-bottom: 24px;
  position: relative
}

.learning-program .lp-modules .trail-item .dot {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  border-radius: 12px;
  background: #fff;
  border: 2px solid #9ECF97;
  margin-top: 6px;
  position: relative;
  z-index: 1;
  transition: border-color .4s cubic-bezier(0.22, 1, 0.36, 1), background .4s cubic-bezier(0.22, 1, 0.36, 1)
}

.learning-program .lp-modules .trail-item .dot.active {
  background: #3BAF4D;
  border-color: #3BAF4D
}

.learning-program .lp-modules .trail-item:hover .dot {
  border-color: #3BAF4D;
  background: #F0F8F3
}

.learning-program .lp-modules .trail-item .module-card {
  flex: 1;
  background: #F0F8F3;
  border-radius: 3px;
  padding: 24px;
  box-shadow: 0 2px 3px 0 #3baf4d0d;
  transition: box-shadow .5s cubic-bezier(0.22, 1, 0.36, 1), background .45s ease-in-out
}

.learning-program .lp-modules .trail-item:hover .module-card {
  background: #fff;
  box-shadow: 0 6px 22px 0 #3baf4d1c
}

.learning-program .lp-modules .trail-item .module-card .module-num {
  font-size: 15px;
  color: #3BAF4D;
  font-weight: 700;
  letter-spacing: .06em;
  margin-bottom: 6px;
  line-height: 1.5
}

.learning-program .lp-modules .trail-item .module-card .module-title {
  font-size: 22px;
  font-weight: 700;
  color: #1b2d22;
  line-height: 1.3;
  margin: 0 0 6px;
  letter-spacing: -.01em
}

.learning-program .lp-modules .trail-item .module-card .module-desc {
  font-size: 15px;
  color: #3d5c47;
  line-height: 1.7;
  margin: 0
}

.learning-program .lp-modules .trail-item .module-card .module-topics {
  margin-top: 12px;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 6px
}

.learning-program .lp-modules .trail-item .module-card .topic-tag {
  font-size: 15px;
  background: #fff;
  color: #3BAF4D;
  border-radius: 2px;
  padding: 2px 12px;
  border: 1px solid #9ECF97;
  line-height: 1.5
}

.learning-program .lp-instructors {
  padding: 96px;
  background: #F0F8F3;
  position: relative
}

.learning-program .lp-instructors .instructors-layout {
  max-width: 1400px;
  margin: 0 auto
}

.learning-program .lp-instructors .instructors-top {
  display: flex;
  flex-direction: row;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 52px;
  gap: 24px
}

.learning-program .lp-instructors .instructors-heading-group .top-accent-line {
  display: block;
  width: 28px;
  height: 3px;
  background: #3BAF4D;
  border-radius: 2px;
  margin-bottom: 12px
}

.learning-program .lp-instructors .instructors-heading-group .instructors-heading {
  font-size: 38px;
  font-weight: 700;
  color: #1b2d22;
  line-height: 1.3;
  margin: 0;
  letter-spacing: -.02em
}

.learning-program .lp-instructors .instructors-intro {
  font-size: 18px;
  color: #3d5c47;
  line-height: 1.7;
  max-width: 420px;
  text-align: right
}

.learning-program .lp-instructors .three-col {
  display: grid;
  grid-template-columns: 1fr 1.18fr 1fr;
  gap: 24px;
  align-items: end
}

.learning-program .lp-instructors .instructor-card {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 6px 22px 0 #3baf4d1c;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow .6s cubic-bezier(0.22, 1, 0.36, 1)
}

.learning-program .lp-instructors .instructor-card:hover {
  box-shadow: 0 12px 48px 0 #3baf4d1f
}

.learning-program .lp-instructors .instructor-card.center-card {
  box-shadow: 0 12px 48px 0 #3baf4d1f
}

.learning-program .lp-instructors .portrait-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 5/7;
  overflow: hidden;
  border-radius: 12px 12px 0 0
}

.learning-program .lp-instructors .portrait-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform .65s cubic-bezier(0.22, 1, 0.36, 1)
}

.learning-program .lp-instructors .portrait-wrap .hover-reveal {
  position: absolute;
  inset: 0;
  background: #1b2d22c7;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 24px;
  opacity: 0;
  transition: opacity .5s cubic-bezier(0.22, 1, 0.36, 1)
}

.learning-program .lp-instructors .portrait-wrap:hover .hover-reveal {
  opacity: 1
}

.learning-program .lp-instructors .portrait-wrap:hover img {
  transform: scale(1.04)
}

.learning-program .lp-instructors .portrait-wrap .hover-reveal .reveal-text {
  font-size: 15px;
  color: #F0F8F3;
  line-height: 1.7;
  text-align: center
}

.learning-program .lp-instructors .instructor-info {
  padding: 24px
}

.learning-program .lp-instructors .instructor-info .instructor-name {
  font-size: 22px;
  font-weight: 700;
  color: #1b2d22;
  line-height: 1.3;
  margin: 0 0 6px
}

.learning-program .lp-instructors .instructor-info .instructor-role {
  font-size: 15px;
  color: #3BAF4D;
  font-weight: 600;
  line-height: 1.5;
  margin-bottom: 12px
}

.learning-program .lp-instructors .instructor-info .instructor-bio {
  font-size: 15px;
  color: #3d5c47;
  line-height: 1.7;
  margin: 0
}

.learning-program .lp-instructors .no-portrait-card {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 6px 22px 0 #3baf4d1c;
  padding: 24px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  transition: box-shadow .6s cubic-bezier(0.22, 1, 0.36, 1)
}

.learning-program .lp-instructors .no-portrait-card:hover {
  box-shadow: 0 12px 48px 0 #3baf4d1f
}

.learning-program .lp-instructors .no-portrait-card .avatar-placeholder {
  width: 64px;
  height: 64px;
  border-radius: 12px;
  background: #F0F8F3;
  border: 2px solid #9ECF97;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  justify-content: center
}

.learning-program .lp-instructors .no-portrait-card .avatar-placeholder svg {
  width: 32px;
  height: 32px
}

.learning-program .lp-instructors .no-portrait-card .instructor-name {
  font-size: 22px;
  font-weight: 700;
  color: #1b2d22;
  line-height: 1.3;
  margin: 0 0 6px
}

.learning-program .lp-instructors .no-portrait-card .instructor-role {
  font-size: 15px;
  color: #3BAF4D;
  font-weight: 600;
  line-height: 1.5;
  margin-bottom: 12px
}

.learning-program .lp-instructors .no-portrait-card .instructor-bio {
  font-size: 15px;
  color: #3d5c47;
  line-height: 1.7;
  margin: 0
}

.learning-program .curved-deco {
  pointer-events: none;
  position: absolute;
  bottom: -24px;
  right: 52px;
  width: 180px;
  height: 90px;
  overflow: hidden
}

.learning-program .curved-deco svg {
  width: 100%;
  height: 100%
}

@media (max-width: 1024px) {
  .learning-program .lp-split-hero .text-zone {
    padding: 52px 24px 52px 52px
  }

  .learning-program .lp-split-hero .hero-heading {
    font-size: 38px
  }

  .learning-program .lp-split-hero .hero-heading .line-medium {
    font-size: 28px
  }

  .learning-program .lp-split-hero .hero-heading .line-small {
    font-size: 22px
  }

  .learning-program .lp-modules {
    padding: 52px 24px
  }

  .learning-program .lp-modules .modules-layout {
    flex-direction: column;
    gap: 24px
  }

  .learning-program .lp-modules .modules-aside {
    flex: none;
    position: static;
    width: 100%
  }

  .learning-program .lp-instructors {
    padding: 52px 24px
  }

  .learning-program .lp-instructors .three-col {
    grid-template-columns: 1fr 1fr;
    align-items: start
  }

  .learning-program .lp-instructors .instructors-top {
    flex-direction: column;
    align-items: flex-start
  }

  .learning-program .lp-instructors .instructors-intro {
    text-align: left;
    max-width: 100%
  }
}

@media (max-width: 768px) {
  .learning-program .lp-split-hero {
    flex-direction: column
  }

  .learning-program .lp-split-hero .text-zone {
    padding: 52px 24px;
    flex: none
  }

  .learning-program .lp-split-hero .image-zone {
    flex: none;
    height: 280px
  }

  .learning-program .lp-split-hero .hero-heading {
    font-size: 38px
  }

  .learning-program .lp-split-hero .hero-heading .line-medium {
    font-size: 22px
  }

  .learning-program .lp-split-hero .hero-heading .line-small {
    font-size: 18px
  }

  .learning-program .lp-modules {
    padding: 52px 24px
  }

  .learning-program .lp-instructors {
    padding: 52px 24px
  }

  .learning-program .lp-instructors .three-col {
    grid-template-columns: 1fr
  }

  .learning-program .lp-instructors .instructor-card.center-card {
    box-shadow: 0 6px 22px 0 #3baf4d1c
  }
}

@media (max-width: 320px) {
  .learning-program .lp-split-hero .text-zone {
    padding: 24px 12px
  }

  .learning-program .lp-split-hero .hero-heading {
    font-size: 28px
  }

  .learning-program .lp-split-hero .hero-heading .line-medium {
    font-size: 22px
  }

  .learning-program .lp-split-hero .hero-heading .line-small {
    font-size: 18px
  }

  .learning-program .lp-modules {
    padding: 24px 12px
  }

  .learning-program .lp-instructors {
    padding: 24px 12px
  }
}

.opening {
  max-width: 100%;
  overflow-x: hidden
}

.opening .page-limit {
  max-width: 1400px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 52px;
  padding-right: 52px
}

.opening .title-block {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  min-height: 520px;
  padding-top: 52px;
  padding-bottom: 96px;
  position: relative;
  background-color: #fff;
  overflow: hidden
}

.opening .title-block .strip-column {
  flex: 0 0 220px;
  position: relative;
  margin-right: 52px;
  border-radius: 3px;
  overflow: hidden
}

.opening .title-block .strip-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block
}

.opening .title-block .strip-fade {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, #ffffffeb 0%, #ffffff8c 60%, #fff0 100%);
  pointer-events: none
}

.opening .title-block .circles-bg {
  position: absolute;
  top: -60px;
  right: 80px;
  width: 420px;
  height: 420px;
  pointer-events: none;
  z-index: 0
}

.opening .title-block .circle-shape {
  position: absolute;
  border-radius: 50%;
  border: 1.5px solid #3baf4d1a
}

.opening .title-block .circle-shape.c1 {
  width: 420px;
  height: 420px;
  top: 0;
  left: 0;
  background: #9ecf970a
}

.opening .title-block .circle-shape.c2 {
  width: 280px;
  height: 280px;
  top: 70px;
  left: 70px;
  background: #3baf4d0a
}

.opening .title-block .circle-shape.c3 {
  width: 140px;
  height: 140px;
  top: 140px;
  left: 140px;
  background: #3baf4d0f
}

.opening .title-block .text-column {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  z-index: 1
}

.opening .title-block .accent-label {
  font-size: 15px;
  line-height: 1.5;
  letter-spacing: .08em;
  color: #3BAF4D;
  text-transform: uppercase;
  margin-bottom: 12px;
  font-weight: 600
}

.opening .title-block .main-heading {
  font-size: 68px;
  line-height: 1.1;
  letter-spacing: -.03em;
  color: #1b2e1d;
  font-weight: 800;
  margin-bottom: 24px
}

.opening .title-block .main-heading .line-accent {
  color: #3BAF4D;
  display: block
}

.opening .title-block .main-heading .line-plain {
  display: block;
  font-weight: 400;
  color: #2d3e2f
}

.opening .title-block .sub-text {
  font-size: 18px;
  line-height: 1.7;
  color: #3a4a3c;
  max-width: 560px;
  margin-bottom: 24px
}

.opening .title-block .heading-rule {
  width: 48px;
  height: 3px;
  background: #3BAF4D;
  border-radius: 2px;
  margin-bottom: 24px;
  animation: mask-expand .6s cubic-bezier(0.22, 1, 0.36, 1) both
}

@keyframes mask-expand {
  from {
    clip-path: inset(0 100% 0 0)
  }

  to {
    clip-path: inset(0 0% 0 0)
  }
}

.opening .title-block .audience-note {
  display: inline-block;
  font-size: 15px;
  line-height: 1.5;
  color: #4a5e4c;
  background: #F0F8F3;
  border-radius: 3px;
  padding: 12px 24px;
  box-shadow: 0 2px 3px 0 #3baf4d0d;
  max-width: 480px
}

.opening .title-block .audience-note strong {
  color: #2d3e2f
}

.opening .support-block {
  background: #F0F8F3;
  padding-top: 96px;
  padding-bottom: 52px
}

.opening .support-block .support-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 52px;
  align-items: start
}

.opening .support-block .support-text-side {
  display: flex;
  flex-direction: column
}

.opening .support-block .block-rule {
  width: 36px;
  height: 2px;
  background: #3BAF4D;
  border-radius: 2px;
  margin-bottom: 12px
}

.opening .support-block .block-heading {
  font-size: 38px;
  line-height: 1.3;
  letter-spacing: -.02em;
  color: #1b2e1d;
  font-weight: 700;
  margin-bottom: 24px
}

.opening .support-block .block-body {
  font-size: 18px;
  line-height: 1.7;
  color: #3a4a3c;
  margin-bottom: 24px
}

.opening .support-block .aside-note {
  font-size: 15px;
  line-height: 1.5;
  color: #5a7060;
  background: #fff;
  border-radius: 3px;
  padding: 12px 24px;
  box-shadow: 0 6px 22px 0 #3baf4d1c;
  margin-top: 6px
}

.opening .support-block .support-visual-side {
  position: relative
}

.opening .support-block .support-image-wrap {
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 12px 48px 0 #3baf4d1f;
  position: relative
}

.opening .support-block .support-image {
  width: 100%;
  height: 380px;
  object-fit: cover;
  object-position: center;
  display: block
}

.opening .support-block .vignette-overlay {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 70% 30%, #1b2e1d00 40%, #1b2e1d73 100%);
  pointer-events: none
}

.opening .support-block .support-pill-list {
  margin-top: 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  list-style: none;
  padding: 0
}

.opening .support-block .support-pill-list li {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 12px;
  font-size: 15px;
  line-height: 1.5;
  color: #2d3e2f;
  animation: rise-up .5s cubic-bezier(0.22, 1, 0.36, 1) both
}

.opening .support-block .support-pill-list li:nth-child(1) {
  animation-delay: .1s
}

.opening .support-block .support-pill-list li:nth-child(2) {
  animation-delay: .22s
}

.opening .support-block .support-pill-list li:nth-child(3) {
  animation-delay: .36s
}

@keyframes rise-up {
  from {
    opacity: 0;
    transform: translateY(18px)
  }

  to {
    opacity: 1;
    transform: translateY(0)
  }
}

.opening .support-block .dot-trail {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-right: 6px;
  margin-top: 4px
}

.opening .support-block .dot-node {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #3BAF4D;
  flex-shrink: 0
}

.opening .support-block .dot-line {
  width: 2px;
  height: 18px;
  background: #3baf4d40
}

.opening .support-block .support-pill-list li:last-child .dot-line {
  display: none
}

.opening .longterm-block {
  background: #fff;
  padding-top: 96px;
  padding-bottom: 96px;
  position: relative
}

.opening .longterm-block .longterm-inner {
  display: flex;
  flex-direction: column;
  gap: 52px
}

.opening .longterm-block .longterm-top {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 52px;
  align-items: end
}

.opening .longterm-block .block-rule {
  width: 36px;
  height: 2px;
  background: #3BAF4D;
  border-radius: 2px;
  margin-bottom: 12px
}

.opening .longterm-block .block-heading {
  font-size: 38px;
  line-height: 1.3;
  letter-spacing: -.02em;
  color: #1b2e1d;
  font-weight: 700;
  margin-bottom: 0
}

.opening .longterm-block .side-annotation {
  font-size: 15px;
  line-height: 1.5;
  color: #5a7060;
  padding-top: 6px;
  border-top: 1px solid #3baf4d33
}

.opening .longterm-block .longterm-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px
}

.opening .longterm-block .lt-card {
  background: #F0F8F3;
  border-radius: 12px;
  padding: 24px;
  box-shadow: 0 2px 3px 0 #3baf4d0d;
  transition: box-shadow .45s cubic-bezier(0.22, 1, 0.36, 1), transform .45s cubic-bezier(0.22, 1, 0.36, 1)
}

.opening .longterm-block .lt-card:hover {
  box-shadow: 0 6px 22px 0 #3baf4d1c;
  transform: translateY(-4px)
}

.opening .longterm-block .lt-card-number {
  font-size: 38px;
  line-height: 1.1;
  font-weight: 800;
  color: #3BAF4D;
  letter-spacing: -.03em;
  margin-bottom: 6px
}

.opening .longterm-block .lt-card-label {
  font-size: 15px;
  line-height: 1.5;
  color: #2d3e2f;
  font-weight: 600;
  margin-bottom: 6px
}

.opening .longterm-block .lt-card-desc {
  font-size: 15px;
  line-height: 1.5;
  color: #5a7060
}

.opening .longterm-block .longterm-image-row {
  display: grid;
  grid-template-columns: 3fr 2fr;
  gap: 24px;
  align-items: stretch
}

.opening .longterm-block .lt-image-wrap {
  border-radius: 12px;
  overflow: hidden;
  position: relative;
  box-shadow: 0 6px 22px 0 #3baf4d1c
}

.opening .longterm-block .lt-image {
  width: 100%;
  height: 260px;
  object-fit: cover;
  object-position: center;
  display: block
}

.opening .longterm-block .lt-image-vignette {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 30% 70%, #1b2e1d00 35%, #1b2e1d66 100%);
  pointer-events: none
}

.opening .longterm-block .lt-text-panel {
  background: #1b2e1d;
  border-radius: 12px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  box-shadow: 0 12px 48px 0 #3baf4d1f
}

.opening .longterm-block .lt-panel-heading {
  font-size: 22px;
  line-height: 1.3;
  font-weight: 700;
  color: #9ECF97;
  margin-bottom: 12px
}

.opening .longterm-block .lt-panel-body {
  font-size: 15px;
  line-height: 1.7;
  color: #c8dfc9
}

.opening .gap-block {
  padding-top: 0;
  padding-bottom: 0;
  position: relative
}

.opening .gap-block .gap-bg-image-wrap {
  position: relative;
  min-height: 520px;
  display: flex;
  flex-direction: row;
  align-items: stretch
}

.opening .gap-block .gap-bg-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  z-index: 0
}

.opening .gap-block .gap-overlay {
  position: absolute;
  inset: 0;
  background: #1b2e1dc7;
  z-index: 1;
  pointer-events: none
}

.opening .gap-block .gap-content {
  position: relative;
  z-index: 2;
  max-width: 1400px;
  margin-left: auto;
  margin-right: auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 52px;
  align-items: center;
  width: 100%;
  padding: 96px 52px
}

.opening .gap-block .gap-left {
  display: flex;
  flex-direction: column
}

.opening .gap-block .block-rule-light {
  width: 36px;
  height: 2px;
  background: #9ECF97;
  border-radius: 2px;
  margin-bottom: 12px
}

.opening .gap-block .gap-heading {
  font-size: 38px;
  line-height: 1.3;
  letter-spacing: -.02em;
  color: #fff;
  font-weight: 700;
  margin-bottom: 24px
}

.opening .gap-block .gap-body {
  font-size: 18px;
  line-height: 1.7;
  color: #c8dfc9;
  margin-bottom: 24px
}

.opening .gap-block .gap-aside {
  font-size: 15px;
  line-height: 1.5;
  color: #9ECF97;
  border-top: 1px solid #9ecf974d;
  padding-top: 12px
}

.opening .gap-block .gap-right {
  display: flex;
  flex-direction: column;
  gap: 24px
}

.opening .gap-block .gap-step {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 24px;
  background: #ffffff0f;
  border-radius: 12px;
  padding: 24px;
  box-shadow: 0 2px 3px 0 #3baf4d0d;
  transition: background .5s ease-in-out
}

.opening .gap-block .gap-step:hover {
  background: #ffffff1c
}

.opening .gap-block .gap-step-num {
  font-size: 28px;
  line-height: 1.1;
  font-weight: 800;
  color: #3BAF4D;
  flex-shrink: 0;
  min-width: 36px
}

.opening .gap-block .gap-step-text {
  display: flex;
  flex-direction: column
}

.opening .gap-block .gap-step-label {
  font-size: 18px;
  line-height: 1.3;
  font-weight: 700;
  color: #fff;
  margin-bottom: 6px
}

.opening .gap-block .gap-step-desc {
  font-size: 15px;
  line-height: 1.5;
  color: #c8dfc9
}

.opening .gap-block .gap-portrait-row {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 24px;
  margin-top: 6px
}

.opening .gap-block .gap-portrait-wrap {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  box-shadow: 0 6px 22px 0 #3baf4d1c;
  border: 2px solid #9ecf9766
}

.opening .gap-block .gap-portrait-img {
  width: 72px;
  height: 72px;
  object-fit: cover;
  object-position: center;
  display: block
}

.opening .gap-block .gap-quote {
  font-size: 15px;
  line-height: 1.5;
  color: #c8dfc9;
  font-style: italic
}

.opening .gap-block .gap-quote-name {
  font-size: 15px;
  line-height: 1.5;
  color: #9ECF97;
  font-weight: 600;
  font-style: normal;
  margin-top: 6px
}

.opening .stepped-divider {
  display: flex;
  flex-direction: row;
  height: 24px;
  overflow: hidden
}

.opening .stepped-divider .step-seg {
  flex: 1;
  background: #F0F8F3
}

.opening .stepped-divider .step-seg.dark {
  background: #fff
}

.opening .stepped-divider-2 {
  display: flex;
  flex-direction: row;
  height: 24px;
  overflow: hidden
}

.opening .stepped-divider-2 .step-seg {
  flex: 1;
  background: #fff
}

.opening .stepped-divider-2 .step-seg.dark {
  background: #F0F8F3
}

@media (max-width: 1024px) {
  .opening .page-limit {
    padding-left: 24px;
    padding-right: 24px
  }

  .opening .title-block {
    padding-left: 24px;
    padding-right: 24px;
    padding-bottom: 52px
  }

  .opening .title-block .strip-column {
    flex: 0 0 160px;
    margin-right: 24px
  }

  .opening .title-block .main-heading {
    font-size: 38px
  }

  .opening .title-block .circles-bg {
    right: 20px;
    width: 260px;
    height: 260px
  }

  .opening .title-block .circle-shape.c1 {
    width: 260px;
    height: 260px
  }

  .opening .title-block .circle-shape.c2 {
    width: 180px;
    height: 180px;
    top: 40px;
    left: 40px
  }

  .opening .title-block .circle-shape.c3 {
    width: 90px;
    height: 90px;
    top: 85px;
    left: 85px
  }

  .opening .support-block .support-grid {
    grid-template-columns: 1fr;
    gap: 24px
  }

  .opening .longterm-block .longterm-top {
    grid-template-columns: 1fr;
    gap: 12px
  }

  .opening .longterm-block .longterm-cards {
    grid-template-columns: 1fr 1fr
  }

  .opening .longterm-block .longterm-image-row {
    grid-template-columns: 1fr
  }

  .opening .gap-block .gap-content {
    grid-template-columns: 1fr;
    gap: 24px;
    padding: 52px 24px
  }
}

@media (max-width: 768px) {
  .opening .title-block {
    flex-direction: column;
    padding: 24px 24px 52px
  }

  .opening .title-block .strip-column {
    flex: 0 0 180px;
    width: 100%;
    margin-right: 0;
    margin-bottom: 24px
  }

  .opening .title-block .main-heading {
    font-size: 28px
  }

  .opening .title-block .circles-bg {
    display: none
  }

  .opening .support-block {
    padding-top: 52px
  }

  .opening .support-block .block-heading {
    font-size: 28px
  }

  .opening .longterm-block .block-heading {
    font-size: 28px
  }

  .opening .longterm-block .longterm-cards {
    grid-template-columns: 1fr
  }

  .opening .gap-block .gap-heading {
    font-size: 28px
  }

  .opening .gap-block .gap-content {
    padding-left: 24px;
    padding-right: 24px
  }
}

@media (max-width: 320px) {
  .opening .page-limit {
    padding-left: 12px;
    padding-right: 12px
  }

  .opening .title-block {
    padding-left: 12px;
    padding-right: 12px
  }

  .opening .title-block .main-heading {
    font-size: 22px
  }

  .opening .gap-block .gap-content {
    padding-left: 12px;
    padding-right: 12px
  }
}

.contact-us-page {
  background: #fff;
  overflow-x: clip
}

.contact-us-page ::selection {
  background: #3BAF4D;
  color: #fff
}

.contact-us-page .animated-bg {
  position: relative;
  padding: 52px 24px;
  background: #F0F8F3;
  animation: bg-shift 15s linear infinite;
  overflow: hidden
}

@keyframes bg-shift {
  0% {
    background-color: #F0F8F3
  }

  50% {
    background-color: #e4f4e8
  }

  100% {
    background-color: #F0F8F3
  }
}

.contact-us-page .animated-bg .geo-line-top {
  position: absolute;
  top: 0;
  left: 0;
  width: 180px;
  height: 2px;
  background: #3BAF4D;
  pointer-events: none
}

.contact-us-page .animated-bg .geo-line-top::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 2px;
  height: 60px;
  background: #3BAF4D
}

.contact-us-page .animated-bg .geo-line-bottom {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 180px;
  height: 2px;
  background: #9ECF97;
  pointer-events: none
}

.contact-us-page .animated-bg .geo-line-bottom::after {
  content: '';
  position: absolute;
  bottom: 0;
  right: 0;
  width: 2px;
  height: 60px;
  background: #9ECF97
}

.contact-us-page .title-area {
  max-width: 1400px;
  margin: 0 auto;
  display: flex;
  flex-direction: row;
  align-items: flex-end;
  justify-content: space-between;
  gap: 52px
}

.contact-us-page .title-text-col {
  flex: 0 0 auto;
  max-width: 580px
}

.contact-us-page .title-accent-line {
  width: 40px;
  height: 3px;
  background: #3BAF4D;
  margin-bottom: 24px
}

.contact-us-page .title-eyebrow {
  font-size: 15px;
  line-height: 1.5;
  color: #3BAF4D;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-bottom: 12px
}

.contact-us-page .title-heading {
  font-size: 68px;
  line-height: 1.1;
  color: #1b2a1e;
  letter-spacing: -.02em;
  margin-bottom: 24px
}

.contact-us-page .title-description {
  font-size: 18px;
  line-height: 1.7;
  color: #3a4a3d;
  max-width: 440px
}

.contact-us-page .title-aside {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  gap: 12px;
  align-items: flex-end;
  padding-bottom: 6px
}

.contact-us-page .title-stat {
  font-size: 15px;
  line-height: 1.5;
  color: #5a6e5e;
  text-align: right
}

.contact-us-page .title-stat strong {
  font-size: 38px;
  line-height: 1.1;
  color: #3BAF4D;
  display: block;
  letter-spacing: -.02em
}

.contact-us-page .section-divider {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 24px;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 24px
}

.contact-us-page .section-divider .divider-line {
  flex: 1;
  height: 1px;
  background: #9ECF97
}

.contact-us-page .section-divider .divider-number {
  font-size: 15px;
  line-height: 1.5;
  color: #9ECF97;
  letter-spacing: .12em
}

.contact-us-page .divider-spacing {
  padding: 24px 0
}

.contact-us-page .channels-area {
  padding: 96px 24px;
  background: #fff;
  border-top: 2px solid #F0F8F3;
  border-bottom: 2px solid #F0F8F3
}

.contact-us-page .channels-inner {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 52px;
  align-items: start
}

.contact-us-page .channels-left {
  display: flex;
  flex-direction: column;
  gap: 24px
}

.contact-us-page .channels-label {
  font-size: 15px;
  line-height: 1.5;
  color: #3BAF4D;
  letter-spacing: .08em;
  text-transform: uppercase
}

.contact-us-page .channels-heading {
  font-size: 38px;
  line-height: 1.3;
  color: #1b2a1e;
  letter-spacing: -.01em
}

.contact-us-page .channels-heading::before {
  content: '';
  display: block;
  width: 32px;
  height: 3px;
  background: #3BAF4D;
  margin-bottom: 12px
}

.contact-us-page .channels-body {
  font-size: 18px;
  line-height: 1.7;
  color: #3a4a3d
}

.contact-us-page .channels-image-frame {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 12px 48px 0 #3baf4d1f
}

.contact-us-page .channels-image-frame img {
  width: 100%;
  height: 340px;
  object-fit: cover;
  display: block;
  transition: transform .5s cubic-bezier(0.22, 1, 0.36, 1)
}

.contact-us-page .channels-image-frame:hover img {
  transform: scale(1.03)
}

.contact-us-page .channels-image-frame .image-fade {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 50%;
  background: linear-gradient(to bottom, #1b2a1e00 0%, #1b2a1e8c 100%);
  pointer-events: none
}

.contact-us-page .channels-right {
  display: flex;
  flex-direction: column;
  gap: 24px
}

.contact-us-page .channel-card {
  position: relative;
  border-radius: 12px;
  padding: 24px;
  background: #F0F8F3;
  box-shadow: 0 2px 3px 0 #3baf4d0d;
  transition: box-shadow .45s cubic-bezier(0.22, 1, 0.36, 1), background .45s cubic-bezier(0.22, 1, 0.36, 1);
  overflow: hidden
}

.contact-us-page .channel-card::after {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 32px 32px 0;
  border-color: transparent #3BAF4D transparent transparent;
  pointer-events: none
}

.contact-us-page .channel-card:hover {
  box-shadow: 0 6px 22px 0 #3baf4d1c;
  background: #e8f5eb
}

.contact-us-page .channel-card-type {
  font-size: 15px;
  line-height: 1.5;
  color: #3BAF4D;
  letter-spacing: .06em;
  text-transform: uppercase;
  margin-bottom: 6px
}

.contact-us-page .channel-card-value {
  font-size: 18px;
  line-height: 1.5;
  color: #1b2a1e;
  font-weight: 600;
  margin-bottom: 6px
}

.contact-us-page .channel-card-value a {
  color: #1b2a1e;
  text-decoration: none;
  transition: color .2s ease-in-out
}

.contact-us-page .channel-card-value a:hover {
  color: #3BAF4D
}

.contact-us-page .channel-card-note {
  font-size: 15px;
  line-height: 1.5;
  color: #5a6e5e
}

.contact-us-page .channel-card-links {
  display: flex;
  flex-direction: row;
  gap: 12px;
  margin-top: 12px
}

.contact-us-page .channel-link-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 3px;
  font-size: 15px;
  line-height: 1.5;
  border: 1px solid #9ECF97;
  background: #fff;
  color: #3BAF4D;
  text-decoration: none;
  transition: background .2s ease-in-out, border-color .2s ease-in-out
}

.contact-us-page .channel-link-btn:hover {
  background: #3BAF4D;
  color: #fff;
  border-color: #3BAF4D
}

.contact-us-page .address-block {
  margin-top: 12px;
  padding: 24px;
  border-radius: 12px;
  background: #fff;
  border-top: 2px solid #3BAF4D;
  border-bottom: 2px solid #3BAF4D;
  box-shadow: 0 2px 3px 0 #3baf4d0d
}

.contact-us-page .address-block-label {
  font-size: 15px;
  line-height: 1.5;
  color: #3BAF4D;
  text-transform: uppercase;
  letter-spacing: .06em;
  margin-bottom: 6px
}

.contact-us-page .address-block-text {
  font-size: 18px;
  line-height: 1.7;
  color: #1b2a1e
}

.contact-us-page .form-area {
  padding: 96px 24px;
  background: #F0F8F3;
  position: relative
}

.contact-us-page .form-area .bg-split-top {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 50%;
  background: #e8f5eb;
  pointer-events: none;
  z-index: 0
}

.contact-us-page .form-inner {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 380px 1fr;
  gap: 52px;
  align-items: start;
  position: relative;
  z-index: 1
}

.contact-us-page .form-side-info {
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding-top: 12px
}

.contact-us-page .form-side-heading {
  font-size: 38px;
  line-height: 1.3;
  color: #1b2a1e;
  letter-spacing: -.01em
}

.contact-us-page .form-side-heading::before {
  content: '';
  display: block;
  width: 32px;
  height: 3px;
  background: #3BAF4D;
  margin-bottom: 12px
}

.contact-us-page .form-side-body {
  font-size: 18px;
  line-height: 1.7;
  color: #3a4a3d
}

.contact-us-page .form-side-note {
  font-size: 15px;
  line-height: 1.5;
  color: #5a6e5e;
  padding: 12px;
  border-radius: 3px;
  background: #fff;
  box-shadow: 0 2px 3px 0 #3baf4d0d
}

.contact-us-page .form-side-note strong {
  color: #3BAF4D
}

.contact-us-page .form-side-steps {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding-left: 6px
}

.contact-us-page .form-step {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 12px
}

.contact-us-page .form-step-dot {
  flex-shrink: 0;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #3BAF4D;
  margin-top: 6px;
  position: relative
}

.contact-us-page .form-step-dot::after {
  content: '';
  position: absolute;
  top: 10px;
  left: 4px;
  width: 2px;
  height: 20px;
  background: #9ECF97
}

.contact-us-page .form-step:last-child .form-step-dot::after {
  display: none
}

.contact-us-page .form-step-text {
  font-size: 15px;
  line-height: 1.5;
  color: #3a4a3d
}

.contact-us-page .contact-form-card {
  background: #fff;
  border-radius: 12px;
  padding: 52px;
  box-shadow: 0 12px 48px 0 #3baf4d1f;
  position: relative;
  overflow: hidden
}

.contact-us-page .contact-form-card::after {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 48px 48px 0;
  border-color: transparent #3BAF4D transparent transparent;
  pointer-events: none
}

.contact-us-page .form-group {
  margin-bottom: 24px
}

.contact-us-page .form-group label {
  display: block;
  font-size: 15px;
  line-height: 1.5;
  color: #1b2a1e;
  font-weight: 600;
  margin-bottom: 6px;
  letter-spacing: .02em
}

.contact-us-page .form-group label .required-mark {
  color: #3BAF4D;
  margin-left: 2px
}

.contact-us-page .form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px
}

.contact-us-page .form-input {
  width: 100%;
  padding: 12px;
  font-size: 15px;
  line-height: 1.5;
  color: #1b2a1e;
  background: #F0F8F3;
  border: 1px solid #9ECF97;
  border-radius: 3px;
  outline: none;
  box-sizing: border-box;
  transition: border-color .45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow .45s cubic-bezier(0.22, 1, 0.36, 1)
}

.contact-us-page .form-input::placeholder {
  color: #8aab8e
}

.contact-us-page .form-input:focus {
  border-color: #3BAF4D;
  background: #fff;
  box-shadow: 0 0 0 3px #3baf4d1c
}

.contact-us-page .form-textarea {
  width: 100%;
  padding: 12px;
  font-size: 15px;
  line-height: 1.7;
  color: #1b2a1e;
  background: #F0F8F3;
  border: 1px solid #9ECF97;
  border-radius: 3px;
  outline: none;
  resize: vertical;
  min-height: 120px;
  box-sizing: border-box;
  transition: border-color .45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow .45s cubic-bezier(0.22, 1, 0.36, 1)
}

.contact-us-page .form-textarea::placeholder {
  color: #8aab8e
}

.contact-us-page .form-textarea:focus {
  border-color: #3BAF4D;
  background: #fff;
  box-shadow: 0 0 0 3px #3baf4d1c
}

.contact-us-page .form-select {
  width: 100%;
  padding: 12px;
  font-size: 15px;
  line-height: 1.5;
  color: #1b2a1e;
  background: #F0F8F3;
  border: 1px solid #9ECF97;
  border-radius: 3px;
  outline: none;
  box-sizing: border-box;
  appearance: none;
  cursor: pointer;
  transition: border-color .45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow .45s cubic-bezier(0.22, 1, 0.36, 1)
}

.contact-us-page .form-select:focus {
  border-color: #3BAF4D;
  background: #fff;
  box-shadow: 0 0 0 3px #3baf4d1c
}

.contact-us-page .select-wrapper {
  position: relative
}

.contact-us-page .select-wrapper .select-arrow {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  width: 0;
  height: 0;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 6px solid #3BAF4D
}

.contact-us-page .form-section-label {
  font-size: 15px;
  line-height: 1.5;
  color: #3BAF4D;
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 12px;
  padding-top: 12px;
  border-top: 1px solid #F0F8F3
}

.contact-us-page .privacy-row {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 24px;
  padding: 12px;
  border-radius: 3px;
  background: #F0F8F3
}

.contact-us-page .privacy-row input[type="checkbox"] {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  accent-color: #3BAF4D;
  margin-top: 2px;
  cursor: pointer
}

.contact-us-page .privacy-row label {
  font-size: 15px;
  line-height: 1.5;
  color: #3a4a3d;
  cursor: pointer
}

.contact-us-page .privacy-row label a {
  color: #3BAF4D;
  text-decoration: underline;
  transition: color .2s ease-in-out
}

.contact-us-page .privacy-row label a:hover {
  color: #2a9040
}

.contact-us-page .submit-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 12px 52px;
  background: #3BAF4D;
  color: #fff;
  font-size: 18px;
  line-height: 1.5;
  border: none;
  border-radius: 3px;
  cursor: pointer;
  letter-spacing: .02em;
  font-weight: 600;
  box-shadow: 0 6px 22px 0 #3baf4d1c;
  transition: background .45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow .5s cubic-bezier(0.22, 1, 0.36, 1)
}

.contact-us-page .submit-btn:hover {
  background: #2a9040;
  box-shadow: 0 12px 48px 0 #3baf4d1f
}

.contact-us-page .submit-btn:focus {
  outline: 3px solid #9ECF97;
  outline-offset: 2px
}

.contact-us-page .submit-btn:active {
  background: #22783a
}

.contact-us-page .submit-btn .btn-arrow {
  display: inline-block;
  width: 18px;
  height: 18px;
  flex-shrink: 0
}

.contact-us-page .submit-btn .btn-arrow svg {
  width: 18px;
  height: 18px;
  fill: #fff
}

@media (max-width: 1024px) {
  .contact-us-page .title-heading {
    font-size: 38px
  }

  .contact-us-page .title-area {
    flex-direction: column;
    align-items: flex-start;
    gap: 24px
  }

  .contact-us-page .title-aside {
    align-items: flex-start;
    flex-direction: row;
    gap: 52px
  }

  .contact-us-page .channels-inner {
    grid-template-columns: 1fr;
    gap: 24px
  }

  .contact-us-page .channels-image-frame img {
    height: 260px
  }

  .contact-us-page .form-inner {
    grid-template-columns: 1fr;
    gap: 24px
  }

  .contact-us-page .contact-form-card {
    padding: 24px
  }
}

@media (max-width: 768px) {
  .contact-us-page .title-heading {
    font-size: 28px
  }

  .contact-us-page .title-description {
    font-size: 15px
  }

  .contact-us-page .title-aside {
    flex-direction: column;
    gap: 12px
  }

  .contact-us-page .animated-bg {
    padding: 52px 24px
  }

  .contact-us-page .channels-area {
    padding: 52px 24px
  }

  .contact-us-page .form-area {
    padding: 52px 24px
  }

  .contact-us-page .form-row {
    grid-template-columns: 1fr;
    gap: 0
  }

  .contact-us-page .channels-heading {
    font-size: 28px
  }

  .contact-us-page .form-side-heading {
    font-size: 28px
  }

  .contact-us-page .contact-form-card {
    padding: 24px
  }
}

@media (max-width: 320px) {
  .contact-us-page .title-heading {
    font-size: 22px
  }

  .contact-us-page .channel-card-links {
    flex-direction: column
  }

  .contact-us-page .submit-btn {
    width: 100%;
    padding: 12px 24px
  }
}

.about-us-page {
  background-color: #fff;
  overflow-x: clip;
  position: relative
}

.about-us-page .bento-grid {
  max-width: 1400px;
  margin: 0 auto;
  padding: 96px 52px 52px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto;
  gap: 24px
}

.about-us-page .bento-cell-image {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 12px 48px 0 #3baf4d1f;
  grid-row: 1 / 3
}

.about-us-page .bento-cell-image img {
  width: 100%;
  height: 100%;
  min-height: 480px;
  object-fit: cover;
  object-position: center;
  display: block
}

.about-us-page .scanline-overlay {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(to bottom, #3baf4d0a 0px, #3baf4d0a 1px, transparent 1px, transparent 4px);
  pointer-events: none
}

.about-us-page .bento-cell-text {
  background-color: #F0F8F3;
  border-radius: 12px;
  padding: 52px;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end
}

.about-us-page .bento-cell-text .quote-mark {
  position: absolute;
  top: 24px;
  right: 24px;
  font-size: 120px;
  line-height: 1.1;
  color: #9ECF97;
  opacity: .25;
  font-weight: 700;
  pointer-events: none;
  user-select: none
}

.about-us-page .eyebrow {
  display: inline-block;
  font-size: 15px;
  line-height: 1.5;
  letter-spacing: .08em;
  color: #3BAF4D;
  font-weight: 600;
  text-transform: uppercase;
  margin-bottom: 12px
}

.about-us-page .bento-cell-text h1 {
  font-size: 38px;
  line-height: 1.1;
  letter-spacing: -.02em;
  color: #1e2d1f;
  font-weight: 700;
  margin: 0 0 12px
}

.about-us-page .bento-cell-meta {
  background-color: #3BAF4D;
  border-radius: 12px;
  padding: 52px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  overflow: hidden
}

.about-us-page .bento-cell-meta::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(160deg, #3baf4de6 0%, #3baf4d99 60%, #3baf4dd9 100%);
  animation: bg-pulse 6s ease-in-out infinite;
  pointer-events: none
}

@keyframes bg-pulse {
  0% {
    opacity: .7
  }

  50% {
    opacity: 1
  }

  100% {
    opacity: .7
  }
}

.about-us-page .bento-cell-meta .meta-year {
  font-size: 68px;
  line-height: 1.1;
  letter-spacing: -.04em;
  color: #fff;
  font-weight: 700;
  position: relative;
  z-index: 1
}

.about-us-page .bento-cell-meta .meta-label {
  font-size: 18px;
  line-height: 1.5;
  color: #ffffffd9;
  position: relative;
  z-index: 1;
  margin-top: 6px
}

.about-us-page .bento-dots {
  position: absolute;
  bottom: 24px;
  right: 24px;
  display: flex;
  flex-direction: row;
  gap: 6px;
  align-items: flex-end;
  pointer-events: none;
  z-index: 1
}

.about-us-page .bento-dots span {
  display: block;
  border-radius: 50%;
  background-color: #fff6
}

.about-us-page .bento-dots span:nth-child(1) {
  width: 6px;
  height: 6px
}

.about-us-page .bento-dots span:nth-child(2) {
  width: 10px;
  height: 10px
}

.about-us-page .bento-dots span:nth-child(3) {
  width: 16px;
  height: 16px
}

.about-us-page .split-screen {
  max-width: 1400px;
  margin: 0 auto;
  padding: 96px 52px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  align-items: stretch
}

.about-us-page .split-left {
  background-color: #1e2d1f;
  border-radius: 12px 0 0 12px;
  padding: 52px;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between
}

.about-us-page .split-left .accent-line {
  width: 40px;
  height: 3px;
  background-color: #3BAF4D;
  border-radius: 2px;
  margin-bottom: 24px
}

.about-us-page .split-left h2 {
  font-size: 28px;
  line-height: 1.3;
  letter-spacing: -.01em;
  color: #fff;
  font-weight: 700;
  margin: 0 0 24px
}

.about-us-page .split-left .body-text {
  font-size: 18px;
  line-height: 1.7;
  color: #ffffffbf;
  margin: 0 0 24px
}

.about-us-page .split-left .side-note {
  font-size: 15px;
  line-height: 1.5;
  color: #9ECF97;
  border-top: 1px solid #9ecf974d;
  padding-top: 24px;
  margin-top: 12px
}

.about-us-page .split-right {
  background-color: #F0F8F3;
  border-radius: 0 12px 12px 0;
  padding: 52px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 24px
}

.about-us-page .diagram-title {
  font-size: 15px;
  line-height: 1.5;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #3BAF4D;
  font-weight: 600;
  margin-bottom: 6px
}

.about-us-page .connection-diagram {
  display: flex;
  flex-direction: column;
  gap: 6px
}

.about-us-page .diagram-node {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 12px;
  padding: 12px 24px;
  background-color: #fff;
  border-radius: 3px;
  box-shadow: 0 2px 3px 0 #3baf4d0d;
  transition: box-shadow .5s cubic-bezier(0.22, 1, 0.36, 1), transform .5s cubic-bezier(0.22, 1, 0.36, 1);
  cursor: default
}

.about-us-page .diagram-node:hover {
  box-shadow: 0 6px 22px 0 #3baf4d1c;
  transform: translateX(6px)
}

.about-us-page .node-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: #3BAF4D;
  flex-shrink: 0;
  position: relative
}

.about-us-page .node-dot::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 100%;
  transform: translateX(-50%);
  width: 2px;
  height: 18px;
  background-color: #9ECF97
}

.about-us-page .diagram-node:last-child .node-dot::after {
  display: none
}

.about-us-page .node-label {
  font-size: 15px;
  line-height: 1.5;
  color: #1e2d1f;
  font-weight: 600
}

.about-us-page .node-desc {
  font-size: 15px;
  line-height: 1.5;
  color: #4a5e4b;
  margin-left: auto
}

.about-us-page .team-section {
  background-color: #3BAF4D !important;
  padding: 96px 0;
  position: relative;
  overflow: hidden
}

.about-us-page .team-bg-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #3baf4df2 0%, #3baf4dbf 50%, #3baf4df2 100%);
  animation: overlay-fade 8s ease-in-out infinite;
  pointer-events: none
}

@keyframes overlay-fade {
  0% {
    opacity: .6
  }

  50% {
    opacity: 1
  }

  100% {
    opacity: .6
  }
}

.about-us-page .team-inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 52px;
  position: relative;
  z-index: 1
}

.about-us-page .team-header {
  margin-bottom: 52px
}

.about-us-page .team-header .accent-line {
  width: 40px;
  height: 3px;
  background-color: #fff9;
  border-radius: 2px;
  margin-bottom: 24px
}

.about-us-page .team-header h2 {
  font-size: 28px;
  line-height: 1.3;
  letter-spacing: -.01em;
  color: #fff;
  font-weight: 700;
  margin: 0 0 12px
}

.about-us-page .team-header p {
  font-size: 18px;
  line-height: 1.7;
  color: #ffffffd1;
  max-width: 520px;
  margin: 0
}

.about-us-page .team-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px
}

.about-us-page .team-card {
  background-color: #fff;
  border-radius: 12px;
  display: grid;
  grid-template-columns: 180px 1fr;
  overflow: hidden;
  box-shadow: 0 12px 48px 0 #3baf4d1f;
  transition: box-shadow .6s cubic-bezier(0.22, 1, 0.36, 1)
}

.about-us-page .team-card:hover {
  box-shadow: 0 6px 22px 0 #3baf4d1c
}

.about-us-page .team-portrait {
  width: 180px;
  aspect-ratio: 7/9;
  overflow: hidden;
  flex-shrink: 0
}

.about-us-page .team-portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block
}

.about-us-page .team-card-body {
  padding: 24px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px
}

.about-us-page .team-name {
  font-size: 22px;
  line-height: 1.3;
  color: #1e2d1f;
  font-weight: 700;
  margin: 0
}

.about-us-page .team-role {
  font-size: 15px;
  line-height: 1.5;
  color: #3BAF4D;
  font-weight: 600;
  letter-spacing: .04em
}

.about-us-page .team-bio {
  font-size: 15px;
  line-height: 1.7;
  color: #4a5e4b;
  margin: 6px 0 0
}

.about-us-page .team-no-portrait {
  background-color: #F0F8F3;
  border-radius: 12px;
  padding: 24px 52px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  box-shadow: 0 6px 22px 0 #3baf4d1c
}

.about-us-page .team-no-portrait .team-name {
  font-size: 22px;
  line-height: 1.3;
  color: #1e2d1f;
  font-weight: 700;
  margin: 0
}

.about-us-page .team-no-portrait .team-role {
  font-size: 15px;
  line-height: 1.5;
  color: #3BAF4D;
  font-weight: 600
}

.about-us-page .team-no-portrait .team-bio {
  font-size: 15px;
  line-height: 1.7;
  color: #4a5e4b;
  margin: 6px 0 0
}

.about-us-page .before-after-pair {
  display: flex;
  flex-direction: row;
  gap: 24px;
  align-items: stretch;
  margin-top: 24px
}

.about-us-page .ba-number {
  flex: 1;
  background-color: #fff;
  border-radius: 12px;
  padding: 24px;
  text-align: center;
  box-shadow: 0 2px 3px 0 #3baf4d0d
}

.about-us-page .ba-number .ba-val {
  font-size: 38px;
  line-height: 1.1;
  letter-spacing: -.03em;
  color: #3BAF4D;
  font-weight: 700;
  display: block
}

.about-us-page .ba-number .ba-val.contrast {
  color: #1e2d1f
}

.about-us-page .ba-number .ba-label {
  font-size: 15px;
  line-height: 1.5;
  color: #4a5e4b;
  display: block;
  margin-top: 6px
}

@media (max-width: 1024px) {
  .about-us-page .bento-grid {
    grid-template-columns: 1fr;
    padding: 52px 24px
  }

  .about-us-page .bento-cell-image {
    grid-row: auto
  }

  .about-us-page .bento-cell-image img {
    min-height: 300px
  }

  .about-us-page .split-screen {
    grid-template-columns: 1fr;
    padding: 52px 24px
  }

  .about-us-page .split-left {
    border-radius: 12px 12px 0 0
  }

  .about-us-page .split-right {
    border-radius: 0 0 12px 12px
  }

  .about-us-page .team-grid {
    grid-template-columns: 1fr
  }

  .about-us-page .team-inner {
    padding: 0 24px
  }
}

@media (max-width: 768px) {
  .about-us-page .bento-grid {
    padding: 52px 12px 24px;
    gap: 12px
  }

  .about-us-page .bento-cell-text {
    padding: 24px
  }

  .about-us-page .bento-cell-meta {
    padding: 24px
  }

  .about-us-page .bento-cell-text h1 {
    font-size: 28px
  }

  .about-us-page .split-left {
    padding: 24px
  }

  .about-us-page .split-right {
    padding: 24px
  }

  .about-us-page .team-section {
    padding: 52px 0
  }

  .about-us-page .team-inner {
    padding: 0 12px
  }

  .about-us-page .team-header {
    margin-bottom: 24px
  }

  .about-us-page .team-card {
    grid-template-columns: 1fr
  }

  .about-us-page .team-portrait {
    width: 100%;
    aspect-ratio: 7/4
  }

  .about-us-page .before-after-pair {
    flex-direction: column;
    gap: 12px
  }

  .about-us-page .diagram-node {
    flex-wrap: wrap
  }

  .about-us-page .node-desc {
    margin-left: 22px
  }
}

@media (max-width: 320px) {
  .about-us-page .bento-cell-text h1 {
    font-size: 22px
  }

  .about-us-page .bento-cell-meta .meta-year {
    font-size: 38px
  }
}

.success-page {
  min-height: 80vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 96px 24px;
  background-color: #F0F8F3
}

.success-page .success-card {
  background: #fff;
  border-radius: 12px;
  padding: 52px;
  max-width: 560px;
  width: 100%;
  box-shadow: 0 12px 48px 0 #3baf4d1f;
  text-align: center
}

.success-page .success-icon-wrap {
  width: 72px;
  height: 72px;
  margin: 0 auto 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #F0F8F3;
  border-radius: 50%;
  box-shadow: inset 0 2px 3px 0 #3baf4d0d
}

.success-page .success-icon-wrap svg {
  display: block
}

.success-page .success-label {
  font-size: 15px;
  line-height: 1.3;
  letter-spacing: .08em;
  color: #3BAF4D;
  font-weight: 600;
  text-transform: uppercase;
  margin-bottom: 12px
}

.success-page .success-heading {
  font-size: 28px;
  line-height: 1.3;
  letter-spacing: -.01em;
  color: #1b2d1e;
  font-weight: 700;
  margin-bottom: 12px
}

.success-page .success-heading .success-accent {
  font-size: 15px;
  line-height: 1.3;
  color: #3BAF4D;
  font-weight: 600;
  vertical-align: super;
  margin-left: 4px
}

.success-page .success-body {
  font-size: 18px;
  line-height: 1.7;
  color: #3a4a3d;
  margin-bottom: 24px
}

.success-page .success-divider {
  width: 40px;
  height: 3px;
  background: linear-gradient(90deg, #3BAF4D 0%, #9ECF97 100%);
  border-radius: 2px;
  margin: 0 auto 24px
}

.success-page .success-note {
  font-size: 15px;
  line-height: 1.5;
  color: #5a7060;
  margin-bottom: 52px
}

.success-page .success-actions {
  display: flex;
  flex-direction: row;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap
}

.success-page .success-btn-primary {
  display: inline-block;
  padding: 12px 24px;
  background: #3BAF4D;
  color: #fff;
  font-size: 15px;
  line-height: 1.3;
  font-weight: 600;
  border-radius: 3px;
  border: 2px solid #3BAF4D;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .5s cubic-bezier(0.22, 1, 0.36, 1), border-color .5s cubic-bezier(0.22, 1, 0.36, 1), box-shadow .45s cubic-bezier(0.22, 1, 0.36, 1);
  box-shadow: 0 2px 3px 0 #3baf4d0d
}

.success-page .success-btn-primary:hover,
.success-page .success-btn-primary:focus {
  background: #2e9640;
  border-color: #2e9640;
  box-shadow: 0 6px 22px 0 #3baf4d1c;
  outline: none
}

.success-page .success-btn-primary:active {
  background: #247830;
  border-color: #247830;
  box-shadow: 0 2px 3px 0 #3baf4d0d
}

.success-page .success-btn-secondary {
  display: inline-block;
  padding: 12px 24px;
  background: transparent;
  color: #3BAF4D;
  font-size: 15px;
  line-height: 1.3;
  font-weight: 600;
  border-radius: 3px;
  border: 2px solid #9ECF97;
  text-decoration: none;
  cursor: pointer;
  transition: border-color .6s cubic-bezier(0.22, 1, 0.36, 1), color .6s cubic-bezier(0.22, 1, 0.36, 1), background-color .6s cubic-bezier(0.22, 1, 0.36, 1)
}

.success-page .success-btn-secondary:hover,
.success-page .success-btn-secondary:focus {
  border-color: #3BAF4D;
  background: #F0F8F3;
  color: #247830;
  outline: none
}

.success-page .success-btn-secondary:active {
  background: #ddf0e2
}

.success-page .success-footer-note {
  margin-top: 24px;
  font-size: 15px;
  line-height: 1.5;
  color: #7a9a80
}

.success-page .success-footer-note a {
  color: #3BAF4D;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color .45s ease-in-out
}

.success-page .success-footer-note a:hover {
  color: #247830
}

@media (max-width: 768px) {
  .success-page {
    padding: 52px 24px
  }

  .success-page .success-card {
    padding: 24px
  }

  .success-page .success-heading {
    font-size: 22px
  }

  .success-page .success-body {
    font-size: 15px
  }

  .success-page .success-actions {
    flex-direction: column;
    align-items: stretch
  }

  .success-page .success-btn-primary,
  .success-page .success-btn-secondary {
    text-align: center
  }
}

@media (max-width: 320px) {
  .success-page .success-card {
    padding: 24px 12px
  }
}