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

html {
  box-sizing: border-box
}

*,
::before,
::after {
  box-sizing: inherit
}

body {
  margin: 0;
  padding: 0;
  min-height: 100dvh;
  overflow-x: hidden;
  font-family: 'Roboto Mono', monospace
}

.pg-head {
  background: #fff;
  border-bottom: 2px solid #D7E1D0;
  position: relative;
  z-index: 100
}

.hd-strip {
  background: linear-gradient(90deg, #BA6C24 0%, #2895A2 100%);
  padding: 8px 0
}

.hd-strip-inner {
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px
}

.hd-contact-link {
  color: #fff;
  text-decoration: none;
  font-family: 'Roboto Mono', monospace;
  font-size: 14px;
  line-height: 1.2;
  letter-spacing: -.01em;
  display: flex;
  align-items: center;
  gap: 8px;
  transition: opacity .25s cubic-bezier(0.4, 0, 0.2, 1)
}

.hd-contact-link:hover,
.hd-contact-link:focus {
  opacity: .82;
  outline: none
}

.hd-contact-link:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
  border-radius: 6px
}

.hd-flag {
  display: inline-flex;
  align-items: center
}

.hd-brand-row {
  max-width: 1320px;
  margin: 0 auto;
  padding: 16px 32px;
  display: flex;
  align-items: center;
  gap: 32px
}

.hd-logo-mount {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  text-decoration: none
}

.hd-logo-box {
  background: #BA6C24;
  border-radius: 20px;
  width: 56px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 1px 3px 1px #ba6c2412 0 5px 22px 1px #ba6c241a;
  padding: 8px;
  flex-shrink: 0;
  border: 2px solid #D7E1D0
}

.hd-logo-box img {
  width: 40px;
  height: 40px;
  object-fit: contain;
  display: block
}

.hd-divider {
  width: 2px;
  height: 40px;
  background: linear-gradient(180deg, #D7E1D0 0%, #BA6C24 100%);
  border-radius: 6px;
  flex-shrink: 0
}

.hd-brand-name {
  font-family: 'Roboto Mono', monospace;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.2;
  color: #1a1a1a;
  letter-spacing: -.03em;
  color: #2a1a08
}

.hd-brand-name span {
  color: #BA6C24
}

.hd-nav-row {
  background: #D7E1D0;
  border-top: 1px solid #2895a22e
}

.hd-nav-inner {
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 32px;
  display: flex;
  align-items: stretch;
  flex-wrap: wrap;
  gap: 4px
}

.hd-nav-inner a {
  font-family: 'Roboto Mono', monospace;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  color: #2a1a08;
  text-decoration: none;
  padding: 16px;
  letter-spacing: -.01em;
  display: flex;
  align-items: center;
  border-bottom: 3px solid transparent;
  transition: color .2s cubic-bezier(0.4, 0, 0.2, 1), border-color .45s cubic-bezier(0.0, 0, 0.2, 1), background-color .2s cubic-bezier(0.4, 0, 0.2, 1);
  border-radius: 6px 6px 0 0
}

.hd-nav-inner a:hover {
  color: #BA6C24;
  border-bottom-color: #BA6C24;
  background: #ba6c2412
}

.hd-nav-inner a:focus-visible {
  outline: 2px solid #BA6C24;
  outline-offset: -2px;
  border-radius: 6px
}

.hd-nav-inner a.active {
  color: #2895A2;
  border-bottom-color: #2895A2
}

.pg-foot {
  background: linear-gradient(135deg, #2a1a08 0%, #1a3a3e 100%);
  border-top: 3px solid #BA6C24
}

.ft-upper {
  max-width: 1320px;
  margin: 0 auto;
  padding: 64px 32px 32px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: start
}

.ft-contact-block {
  display: flex;
  flex-direction: column;
  gap: 16px
}

.ft-brand-row {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 8px
}

.ft-logo-box {
  background: #BA6C24;
  border-radius: 20px;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px;
  box-shadow: 0 1px 3px 1px #ba6c2412 0 5px 22px 1px #ba6c241a;
  border: 2px solid #d7e1d04d;
  flex-shrink: 0
}

.ft-logo-box img {
  width: 32px;
  height: 32px;
  object-fit: contain;
  display: block
}

.ft-brand-label {
  font-family: 'Roboto Mono', monospace;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.2;
  color: #D7E1D0;
  letter-spacing: -.02em
}

.ft-brand-label span {
  color: #BA6C24
}

.ft-addr-label {
  font-family: 'Roboto Mono', monospace;
  font-size: 14px;
  line-height: 1.8;
  color: #d7e1d0b3;
  letter-spacing: 0
}

.ft-contact-item {
  display: flex;
  align-items: center;
  gap: 8px
}

.ft-contact-item a {
  font-family: 'Roboto Mono', monospace;
  font-size: 14px;
  line-height: 1.2;
  color: #D7E1D0;
  text-decoration: none;
  transition: color .22s cubic-bezier(0.4, 0, 0.2, 1)
}

.ft-contact-item a:hover {
  color: #BA6C24
}

.ft-contact-item a:focus-visible {
  outline: 2px solid #BA6C24;
  outline-offset: 3px;
  border-radius: 6px
}

.ft-dot {
  width: 6px;
  height: 6px;
  border-radius: 48px;
  background: #2895A2;
  flex-shrink: 0
}

.ft-nav-block {
  display: flex;
  flex-direction: column;
  gap: 8px
}

.ft-nav-label {
  font-family: 'Roboto Mono', monospace;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  color: #2895A2;
  letter-spacing: -.01em;
  text-transform: uppercase;
  margin-bottom: 8px
}

.ft-nav-block a {
  font-family: 'Roboto Mono', monospace;
  font-size: 14px;
  line-height: 1.8;
  color: #d7e1d0cc;
  text-decoration: none;
  display: block;
  padding: 4px 0;
  border-bottom: 1px solid #d7e1d014;
  transition: color .18s cubic-bezier(0.4, 0, 0.2, 1), padding-left .45s cubic-bezier(0.0, 0, 0.2, 1)
}

.ft-nav-block a:hover {
  color: #D7E1D0;
  padding-left: 8px
}

.ft-nav-block a:focus-visible {
  outline: 2px solid #2895A2;
  outline-offset: 3px;
  border-radius: 6px
}

.ft-lower {
  border-top: 1px solid #d7e1d01f;
  max-width: 1320px;
  margin: 0 auto;
  padding: 16px 32px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px
}

.ft-copy {
  font-family: 'Roboto Mono', monospace;
  font-size: 14px;
  line-height: 1.2;
  color: #d7e1d080
}

.ft-flag-group {
  display: flex;
  align-items: center;
  gap: 8px
}

@media (max-width: 1024px) {
  .ft-upper {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 32px 32px 16px
  }
}

@media (max-width: 640px) {
  .hd-strip-inner {
    padding: 0 16px;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px
  }

  .hd-brand-row {
    padding: 16px;
    gap: 16px
  }

  .hd-nav-inner {
    padding: 0 8px
  }

  .hd-nav-inner a {
    padding: 12px;
    font-size: 14px
  }

  .ft-upper {
    padding: 32px 16px 16px
  }

  .ft-lower {
    padding: 16px 16px 24px;
    flex-direction: column;
    align-items: flex-start
  }
}

@media (max-width: 360px) {
  .hd-brand-name {
    font-size: 16px
  }

  .hd-nav-inner a {
    padding: 8px;
    font-size: 14px
  }

  .ft-nav-label {
    font-size: 14px
  }
}

.info-doc-jmmx {
  max-width: 1320px;
  margin: 0 auto;
  padding: 64px 32px
}

.info-doc-jmmx h1 {
  font-size: 52px;
  line-height: 1.2;
  letter-spacing: -.02em;
  color: #1b1b1b;
  margin-bottom: 32px;
  margin-top: 0;
  padding-bottom: 16px;
  border-bottom: 3px solid #BA6C24
}

.info-doc-jmmx h2 {
  font-size: 36px;
  line-height: 1.2;
  letter-spacing: -.015em;
  color: #1b1b1b;
  margin-top: 64px;
  margin-bottom: 16px;
  padding-left: 16px;
  border-left: 4px solid #2895A2;
  border-bottom: 1px solid #D7E1D0;
  padding-bottom: 8px
}

.info-doc-jmmx h3 {
  font-size: 24px;
  line-height: 1.2;
  letter-spacing: -.01em;
  color: #1b1b1b;
  margin-top: 32px;
  margin-bottom: 16px
}

.info-doc-jmmx h4 {
  font-size: 18px;
  line-height: 1.2;
  letter-spacing: -.005em;
  color: #2e2e2e;
  margin-top: 32px;
  margin-bottom: 8px
}

.info-doc-jmmx h5 {
  font-size: 16px;
  line-height: 1.2;
  color: #2e2e2e;
  margin-top: 16px;
  margin-bottom: 8px
}

.info-doc-jmmx h6 {
  font-size: 14px;
  line-height: 1.2;
  color: #3a3a3a;
  text-transform: uppercase;
  letter-spacing: .06em;
  margin-top: 16px;
  margin-bottom: 8px
}

.info-doc-jmmx p {
  font-size: 16px;
  line-height: 1.8;
  color: #2e2e2e;
  margin-top: 0;
  margin-bottom: 16px;
  max-width: 72ch
}

.info-doc-jmmx ul,
.info-doc-jmmx ol {
  font-size: 16px;
  line-height: 1.8;
  color: #2e2e2e;
  margin-top: 0;
  margin-bottom: 16px;
  padding-left: 32px;
  max-width: 72ch
}

.info-doc-jmmx ul {
  list-style: none;
  padding-left: 16px
}

.info-doc-jmmx ul li {
  position: relative;
  padding-left: 16px;
  margin-bottom: 8px
}

.info-doc-jmmx ul li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .7em;
  width: 6px;
  height: 6px;
  border-radius: 6px;
  background-color: #BA6C24;
  flex-shrink: 0
}

.info-doc-jmmx ol {
  list-style: decimal
}

.info-doc-jmmx ol li {
  margin-bottom: 8px;
  padding-left: 4px
}

.info-doc-jmmx ol li::marker {
  color: #BA6C24;
  font-size: 14px
}

.info-doc-jmmx em,
.info-doc-jmmx i {
  font-style: italic;
  color: #2e2e2e
}

.info-doc-jmmx table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 32px;
  font-size: 14px;
  line-height: 1.8;
  box-shadow: 0 1px 3px 1px #ba6c2412 0 5px 22px 1px #ba6c241a;
  border-radius: 6px;
  overflow: hidden
}

.info-doc-jmmx thead {
  background-color: #BA6C24
}

.info-doc-jmmx thead th {
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  padding: 16px;
  text-align: left;
  border: none
}

.info-doc-jmmx tbody tr {
  border-bottom: 1px solid #D7E1D0;
  transition: background-color .45s cubic-bezier(0.4, 0, 0.2, 1)
}

.info-doc-jmmx tbody tr:last-child {
  border-bottom: none
}

.info-doc-jmmx tbody tr:nth-child(even) {
  background-color: #f4f7f2
}

.info-doc-jmmx tbody tr:hover {
  background-color: #eaf4f5
}

.info-doc-jmmx td {
  padding: 16px;
  font-size: 14px;
  line-height: 1.8;
  color: #2e2e2e;
  vertical-align: top;
  border-right: 1px solid #D7E1D0
}

.info-doc-jmmx td:last-child {
  border-right: none
}

.info-doc-jmmx th {
  padding: 16px;
  border-right: 1px solid #fff3
}

.info-doc-jmmx th:last-child {
  border-right: none
}

.info-doc-jmmx hr {
  border: none;
  height: 1px;
  background: linear-gradient(90deg, #BA6C24 0%, #D7E1D0 50%, #2895A2 100%);
  margin-top: 32px;
  margin-bottom: 32px;
  opacity: .5
}

@media (max-width: 1024px) {
  .info-doc-jmmx {
    padding: 64px 32px
  }

  .info-doc-jmmx h1 {
    font-size: 36px
  }

  .info-doc-jmmx h2 {
    font-size: 24px
  }
}

@media (max-width: 640px) {
  .info-doc-jmmx {
    padding: 32px 16px
  }

  .info-doc-jmmx h1 {
    font-size: 24px
  }

  .info-doc-jmmx h2 {
    font-size: 18px;
    margin-top: 32px
  }

  .info-doc-jmmx h3 {
    font-size: 16px
  }

  .info-doc-jmmx h4,
  .info-doc-jmmx h5,
  .info-doc-jmmx h6 {
    font-size: 14px
  }

  .info-doc-jmmx p,
  .info-doc-jmmx ul,
  .info-doc-jmmx ol {
    font-size: 14px
  }

  .info-doc-jmmx table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch
  }
}

@media (max-width: 360px) {
  .info-doc-jmmx {
    padding: 16px 8px
  }
}

.lrn-prog {
  background: #fff;
  color: #1b1b1b;
  overflow-x: hidden
}

.lrn-prog .pg-max {
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 32px
}

.lrn-prog .ttl-blk {
  padding: 80px 0 64px;
  position: relative;
  background: #fff
}

.lrn-prog .ttl-blk::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(337deg, transparent, transparent 18px, #ba6c240a 18px, #ba6c240a 20px);
  pointer-events: none
}

.lrn-prog .ttl-inner {
  display: flex;
  flex-direction: row;
  gap: 64px;
  align-items: flex-end
}

.lrn-prog .ttl-img-col {
  flex: 0 0 340px
}

.lrn-prog .ttl-img-wrap {
  width: 340px;
  height: 340px;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 5px 22px 1px #ba6c241a;
  filter: saturate(0.55) contrast(1.05)
}

.lrn-prog .ttl-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block
}

.lrn-prog .ttl-text-col {
  flex: 1;
  padding-top: 64px
}

.lrn-prog .ttl-label {
  font-size: 14px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #2895A2;
  margin-bottom: 16px;
  font-weight: 600
}

.lrn-prog .ttl-h1 {
  font-size: 52px;
  line-height: 1.2;
  letter-spacing: -.03em;
  margin: 0 0 24px;
  background: linear-gradient(337deg, #2895A2, #D7E1D0);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text
}

.lrn-prog .ttl-sub {
  font-size: 18px;
  line-height: 1.8;
  color: #3a3a3a;
  max-width: 540px;
  margin: 0 0 32px
}

.lrn-prog .ttl-badge-row {
  display: flex;
  flex-direction: row;
  gap: 16px;
  flex-wrap: wrap
}

.lrn-prog .ttl-badge {
  padding: 8px 16px;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 600;
  border: 2px solid #BA6C24;
  color: #BA6C24;
  background: transparent;
  transition: background .45s cubic-bezier(0.4, 0, 0.2, 1), color .45s cubic-bezier(0.4, 0, 0.2, 1)
}

.lrn-prog .ttl-badge:hover {
  background: #BA6C24;
  color: #fff
}

.lrn-prog .prog-struct {
  padding: 64px 0;
  background: linear-gradient(337deg, #2895A2 0%, #D7E1D0 100%);
  position: relative
}

.lrn-prog .prog-struct::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 48px;
  background: #fff;
  clip-path: polygon(0 100%, 100% 100%, 100% 48px, 75% 0, 50% 48px, 25% 0, 0 48px)
}

.lrn-prog .struct-head {
  text-align: center;
  margin-bottom: 48px
}

.lrn-prog .struct-head h2 {
  font-size: 36px;
  line-height: 1.2;
  letter-spacing: -.02em;
  color: #fff;
  margin: 0 0 16px
}

.lrn-prog .struct-head p {
  font-size: 18px;
  line-height: 1.8;
  color: #ffffffe0;
  max-width: 600px;
  margin: 0 auto
}

.lrn-prog .struct-cols {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 32px
}

.lrn-prog .struct-card {
  background: #ffffffeb;
  border-radius: 20px;
  padding: 32px;
  box-shadow: 0 1px 3px 1px #2895a212;
  transition: transform .5s cubic-bezier(0.4, 0, 0.2, 1), box-shadow .5s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative
}

.lrn-prog .struct-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 12px 36px 1px #2895a21a
}

.lrn-prog .struct-card.offset {
  margin-top: 32px
}

.lrn-prog .card-num {
  font-size: 52px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: -.04em;
  background: linear-gradient(337deg, #BA6C24, #2895A2);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  display: block;
  margin-bottom: 8px
}

.lrn-prog .struct-card h3 {
  font-size: 18px;
  line-height: 1.2;
  color: #1b1b1b;
  margin: 0 0 16px;
  letter-spacing: -.01em
}

.lrn-prog .struct-card p {
  font-size: 16px;
  line-height: 1.8;
  color: #444;
  margin: 0
}

.lrn-prog .metrics-blk {
  padding: 80px 0 64px;
  background: #fff
}

.lrn-prog .metrics-layout {
  display: flex;
  flex-direction: row;
  gap: 64px;
  align-items: flex-start
}

.lrn-prog .metrics-left {
  flex: 1
}

.lrn-prog .metrics-left h2 {
  font-size: 36px;
  line-height: 1.2;
  letter-spacing: -.02em;
  margin: 0 0 24px;
  background: linear-gradient(337deg, #2895A2, #D7E1D0);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text
}

.lrn-prog .metrics-left p {
  font-size: 16px;
  line-height: 1.8;
  color: #3a3a3a;
  margin: 0 0 32px;
  text-indent: -16px;
  padding-left: 16px
}

.lrn-prog .before-after {
  display: flex;
  flex-direction: row;
  gap: 32px;
  margin-top: 32px
}

.lrn-prog .ba-item {
  flex: 1;
  border-radius: 20px;
  padding: 24px;
  text-align: center
}

.lrn-prog .ba-item.before {
  background: #f3f3f3;
  border: 2px solid #ddd
}

.lrn-prog .ba-item.after {
  background: linear-gradient(337deg, #ba6c2414, #2895a214);
  border: 2px solid #BA6C24
}

.lrn-prog .ba-num {
  font-size: 52px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -.04em;
  display: block
}

.lrn-prog .ba-item.before .ba-num {
  color: #888
}

.lrn-prog .ba-item.after .ba-num {
  color: #BA6C24
}

.lrn-prog .ba-label {
  font-size: 14px;
  color: #555;
  margin-top: 8px;
  display: block
}

.lrn-prog .metrics-right {
  flex: 1
}

.lrn-prog .circ-row {
  display: flex;
  flex-direction: row;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 32px
}

.lrn-prog .circ-ind {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px
}

.lrn-prog .circ {
  width: 72px;
  height: 72px;
  border-radius: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  box-shadow: 0 5px 22px 1px #ba6c241a;
  transition: transform .45s cubic-bezier(0.4, 0, 0.2, 1)
}

.lrn-prog .circ:hover {
  transform: scale(1.1)
}

.lrn-prog .circ.c1 {
  background: #BA6C24
}

.lrn-prog .circ.c2 {
  background: #2895A2
}

.lrn-prog .circ.c3 {
  background: linear-gradient(337deg, #BA6C24, #2895A2)
}

.lrn-prog .circ.c4 {
  background: #3a7a60
}

.lrn-prog .circ-lbl {
  font-size: 12px;
  color: #555;
  text-align: center;
  max-width: 72px;
  line-height: 1.2
}

.lrn-prog .chart-area {
  margin-top: 16px
}

.lrn-prog .chart-area h4 {
  font-size: 14px;
  color: #555;
  margin: 0 0 16px;
  letter-spacing: .05em;
  text-transform: uppercase
}

.lrn-prog .prog-img-wrap {
  width: 100%;
  aspect-ratio: 1/1;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 12px 36px 1px #ba6c241a;
  margin-top: 32px
}

.lrn-prog .prog-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block
}

.lrn-prog .next-steps {
  padding: 80px 0;
  background: #f5f8f5;
  position: relative
}

.lrn-prog .next-steps::before {
  content:'{';
  position: absolute;
  left: 32px;
  top: 32px;
  font-size: 120px;
  line-height: 1;
  color: #ba6c2414;
  font-weight: 800;
  pointer-events: none;
  user-select: none
}

.lrn-prog .next-steps::after {
  content: '}';
  position: absolute;
  right: 32px;
  bottom: 32px;
  font-size: 120px;
  line-height: 1;
  color: #2895a214;
  font-weight: 800;
  pointer-events: none;
  user-select: none
}

.lrn-prog .steps-head {
  text-align: center;
  margin-bottom: 48px
}

.lrn-prog .steps-head h2 {
  font-size: 36px;
  line-height: 1.2;
  letter-spacing: -.02em;
  margin: 0 0 16px;
  color: #1b1b1b
}

.lrn-prog .steps-head p {
  font-size: 16px;
  line-height: 1.8;
  color: #444;
  max-width: 560px;
  margin: 0 auto
}

.lrn-prog .steps-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-width: 860px;
  margin: 0 auto 48px
}

.lrn-prog .step-row {
  display: flex;
  flex-direction: row;
  gap: 32px;
  align-items: flex-start;
  background: #fff;
  border-radius: 20px;
  padding: 32px;
  box-shadow: 0 1px 3px 1px #ba6c2412;
  transition: box-shadow .55s cubic-bezier(0.0, 0, 0.2, 1), transform .55s cubic-bezier(0.0, 0, 0.2, 1)
}

.lrn-prog .step-row:hover {
  box-shadow: 0 12px 36px 1px #ba6c241a;
  transform: translateX(8px)
}

.lrn-prog .step-num {
  flex: 0 0 48px;
  height: 48px;
  border-radius: 36px;
  background: linear-gradient(337deg, #BA6C24, #2895A2);
  color: #fff;
  font-size: 18px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 5px 22px 1px #ba6c241a
}

.lrn-prog .step-body h4 {
  font-size: 18px;
  line-height: 1.2;
  color: #1b1b1b;
  margin: 0 0 8px;
  letter-spacing: -.01em
}

.lrn-prog .step-body p {
  font-size: 16px;
  line-height: 1.8;
  color: #444;
  margin: 0
}

.lrn-prog .step-arrow {
  display: inline-block;
  width: 0;
  height: 0;
  border-top: 6px solid transparent;
  border-bottom: 6px solid transparent;
  border-left: 10px solid #BA6C24;
  margin-left: 8px;
  vertical-align: middle
}

.lrn-prog .cta-area {
  text-align: center
}

.lrn-prog .cta-btn {
  display: inline-block;
  padding: 16px 32px;
  border-radius: 6px;
  font-size: 18px;
  font-weight: 700;
  color: #fff;
  background: linear-gradient(337deg, #BA6C24 0%, #2895A2 100%);
  border: none;
  cursor: pointer;
  text-decoration: none;
  box-shadow: 0 5px 22px 1px #ba6c241a;
  transition: transform .45s cubic-bezier(0.4, 0, 0.2, 1), box-shadow .45s cubic-bezier(0.4, 0, 0.2, 1)
}

.lrn-prog .cta-btn:hover {
  transform: scale(1.04);
  box-shadow: 0 12px 36px 1px #ba6c241a
}

@keyframes fadeRowUp {
  from {
    opacity: 0;
    transform: translateY(28px)
  }

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

.lrn-prog .anim-row {
  animation: fadeRowUp .6s cubic-bezier(0.4, 0, 0.2, 1) both
}

.lrn-prog .anim-row:nth-child(1) {
  animation-delay: .05s
}

.lrn-prog .anim-row:nth-child(2) {
  animation-delay: .18s
}

.lrn-prog .anim-row:nth-child(3) {
  animation-delay: .31s
}

.lrn-prog .anim-row:nth-child(4) {
  animation-delay: .44s
}

@media (max-width: 1024px) {
  .lrn-prog .ttl-inner {
    flex-direction: column;
    gap: 32px;
    align-items: flex-start
  }

  .lrn-prog .ttl-img-col {
    flex: none
  }

  .lrn-prog .ttl-img-wrap {
    width: 100%;
    height: 280px
  }

  .lrn-prog .ttl-text-col {
    padding-top: 0
  }

  .lrn-prog .struct-cols {
    grid-template-columns: 1fr 1fr
  }

  .lrn-prog .struct-card.offset {
    margin-top: 0
  }

  .lrn-prog .metrics-layout {
    flex-direction: column;
    gap: 32px
  }
}

@media (max-width: 640px) {
  .lrn-prog .pg-max {
    padding: 0 16px
  }

  .lrn-prog .ttl-h1 {
    font-size: 36px
  }

  .lrn-prog .struct-cols {
    grid-template-columns: 1fr
  }

  .lrn-prog .before-after {
    flex-direction: column;
    gap: 16px
  }

  .lrn-prog .step-row {
    flex-direction: column;
    gap: 16px
  }

  .lrn-prog .ttl-blk {
    padding: 48px 0 32px
  }

  .lrn-prog .metrics-blk {
    padding: 48px 0
  }

  .lrn-prog .next-steps {
    padding: 48px 0
  }
}

@media (max-width: 360px) {
  .lrn-prog .ttl-h1 {
    font-size: 24px
  }

  .lrn-prog .circ-row {
    gap: 8px
  }

  .lrn-prog .circ {
    width: 56px;
    height: 56px
  }
}

.abt-us {
  width: 100%;
  overflow-x: clip
}

.abt-us .strip-img {
  width: 100%;
  height: 120px;
  overflow: hidden;
  position: relative
}

.abt-us .strip-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
  filter: blur(2px) brightness(0.85);
  transform: scale(1.08);
  animation: strip-zoom 8s cubic-bezier(0.4, 0, 0.2, 1) infinite alternate
}

@keyframes strip-zoom {
  from {
    transform: scale(1.08)
  }

  to {
    transform: scale(1.14) translateX(1%)
  }
}

.abt-us .strip-img .curve-deco {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden
}

.abt-us .strip-img .curve-deco svg {
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 100%;
  height: 48px
}

.abt-us .title-zone {
  max-width: 1320px;
  margin: 0 auto;
  padding: 64px;
  position: relative;
  display: flex;
  flex-direction: row;
  align-items: flex-end;
  gap: 32px
}

.abt-us .title-zone .curve-bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
  z-index: 0
}

.abt-us .title-zone .curve-bg svg {
  position: absolute;
  top: -20px;
  right: -40px;
  width: 480px;
  opacity: .13
}

.abt-us .title-text {
  flex: 1;
  position: relative;
  z-index: 1;
  animation: settle-in .55s cubic-bezier(0.0, 0, 0.2, 1) both
}

.abt-us .title-text h1 {
  font-size: 52px;
  line-height: 1.2;
  letter-spacing: -.03em;
  margin: 0 0 16px;
  background: linear-gradient(337deg, #2895A2, #D7E1D0);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  display: inline-block
}

.abt-us .title-text .sub {
  font-size: 18px;
  line-height: 1.8;
  color: #2c2c2c;
  max-width: 560px;
  margin: 0
}

.abt-us .counter-badge {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: linear-gradient(337deg, #2895A2, #D7E1D0);
  border-radius: 36px;
  padding: 32px;
  min-width: 160px;
  box-shadow: 0 5px 22px 1px #2895a21a;
  animation: settle-in .65s cubic-bezier(0.0, 0, 0.2, 1) .1s both
}

.abt-us .counter-badge .num {
  font-size: 52px;
  line-height: 1.2;
  font-weight: 700;
  color: #fff;
  letter-spacing: -.03em
}

.abt-us .counter-badge .lbl {
  font-size: 14px;
  line-height: 1.8;
  color: #ffffffe0;
  text-align: center
}

@keyframes settle-in {
  from {
    opacity: 0;
    transform: scale(0.95)
  }

  to {
    opacity: 1;
    transform: scale(1)
  }
}

.abt-us .divider-a {
  width: 100%;
  height: 2px;
  background: linear-gradient(90deg, transparent, #2895A2 30%, #BA6C24 70%, transparent);
  opacity: .3
}

.abt-us .story-sec {
  background: #f5f0eb;
  padding: 64px 0
}

.abt-us .story-inner {
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 64px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: start
}

.abt-us .story-img-col {
  position: relative
}

.abt-us .story-img-col .img-wrap {
  border-radius: 20px;
  overflow: hidden;
  aspect-ratio: 1/1;
  box-shadow: 0 12px 36px 1px #ba6c241a
}

.abt-us .story-img-col .img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s cubic-bezier(0.4, 0, 0.2, 1)
}

.abt-us .story-img-col .img-wrap:hover img {
  transform: scale(1.04)
}

.abt-us .story-img-col .math-sym {
  position: absolute;
  bottom: -32px;
  right: -32px;
  font-size: 180px;
  line-height: 1.2;
  color: #BA6C24;
  opacity: .07;
  pointer-events: none;
  font-weight: 700;
  z-index: 0;
  user-select: none
}

.abt-us .story-text-col {
  display: flex;
  flex-direction: column;
  gap: 32px
}

.abt-us .story-text-col h2 {
  font-size: 36px;
  line-height: 1.2;
  letter-spacing: -.02em;
  margin: 0;
  background: linear-gradient(337deg, #2895A2, #D7E1D0);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  display: inline-block
}

.abt-us .story-text-col .body-p {
  font-size: 16px;
  line-height: 1.8;
  color: #2c2c2c;
  margin: 0;
  text-indent: -1.2em;
  padding-left: 1.2em
}

.abt-us .story-text-col .arrow-phrase {
  font-size: 18px;
  line-height: 1.8;
  color: #BA6C24;
  font-weight: 600;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px
}

.abt-us .story-text-col .arrow-phrase .arr {
  display: inline-block;
  width: 20px;
  height: 20px;
  flex-shrink: 0
}

.abt-us .story-text-col .arrow-phrase .arr svg {
  width: 20px;
  height: 20px
}

.abt-us .metrics-row {
  display: flex;
  flex-direction: row;
  gap: 16px
}

.abt-us .metric-item {
  flex: 1;
  background: #fff;
  border-radius: 20px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  box-shadow: 0 1px 3px 1px #ba6c2412;
  transition: box-shadow .45s cubic-bezier(0.4, 0, 0.2, 1), transform .45s cubic-bezier(0.4, 0, 0.2, 1)
}

.abt-us .metric-item:hover {
  box-shadow: 0 5px 22px 1px #ba6c241a;
  transform: scale(1.03)
}

.abt-us .metric-item .m-val {
  font-size: 24px;
  line-height: 1.2;
  font-weight: 700;
  color: #BA6C24;
  letter-spacing: -.02em
}

.abt-us .metric-item .m-lbl {
  font-size: 14px;
  line-height: 1.8;
  color: #555
}

.abt-us .divider-b {
  width: 100%;
  height: 3px;
  background: linear-gradient(90deg, #D7E1D0, #BA6C24 50%, #2895A2);
  opacity: .25
}

.abt-us .team-sec {
  background: #fff;
  padding: 64px 0
}

.abt-us .team-inner {
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 64px
}

.abt-us .team-head {
  display: flex;
  flex-direction: row;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 64px;
  gap: 32px
}

.abt-us .team-head h2 {
  font-size: 36px;
  line-height: 1.2;
  letter-spacing: -.02em;
  margin: 0;
  background: linear-gradient(337deg, #2895A2, #D7E1D0);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  display: inline-block
}

.abt-us .team-head p {
  font-size: 16px;
  line-height: 1.8;
  color: #2c2c2c;
  max-width: 400px;
  margin: 0
}

.abt-us .team-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px
}

.abt-us .team-card {
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 1px 3px 1px #2895a212;
  transition: box-shadow .5s cubic-bezier(0.4, 0, 0.2, 1), transform .5s cubic-bezier(0.4, 0, 0.2, 1);
  background: #fff;
  animation: settle-in .55s cubic-bezier(0.0, 0, 0.2, 1) both
}

.abt-us .team-card:nth-child(2) {
  animation-delay: .1s
}

.abt-us .team-card:nth-child(3) {
  animation-delay: .2s
}

.abt-us .team-card:hover {
  box-shadow: 0 12px 36px 1px #2895a21a;
  transform: scale(1.02)
}

.abt-us .team-card .tc-img {
  aspect-ratio: 1/1;
  overflow: hidden
}

.abt-us .team-card .tc-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s cubic-bezier(0.4, 0, 0.2, 1)
}

.abt-us .team-card:hover .tc-img img {
  transform: scale(1.06)
}

.abt-us .team-card .tc-body {
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 8px
}

.abt-us .team-card .tc-name {
  font-size: 18px;
  line-height: 1.2;
  font-weight: 700;
  color: #1a2e35;
  margin: 0
}

.abt-us .team-card .tc-role {
  font-size: 14px;
  line-height: 1.8;
  color: #2895A2;
  font-weight: 600;
  margin: 0
}

.abt-us .team-card .tc-desc {
  font-size: 14px;
  line-height: 1.8;
  color: #444;
  margin: 0
}

.abt-us .chart-band {
  background: #2895A2;
  padding: 64px 0
}

.abt-us .chart-inner {
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 64px;
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 64px;
  align-items: center
}

.abt-us .chart-text h3 {
  font-size: 36px;
  line-height: 1.2;
  letter-spacing: -.02em;
  margin: 0 0 16px;
  color: #fff
}

.abt-us .chart-text p {
  font-size: 16px;
  line-height: 1.8;
  color: #ffffffd9;
  margin: 0
}

.abt-us .chart-area {
  background: #ffffff14;
  border-radius: 20px;
  padding: 32px
}

.abt-us .chart-area table {
  width: 100%;
  height: 200px
}

.abt-us .chart-area .chart-labels {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  margin-top: 8px;
  padding: 0 4px
}

.abt-us .chart-area .chart-labels span {
  font-size: 14px;
  line-height: 1.8;
  color: #ffffffbf
}

.abt-us .chart-area table td {
  --color: #D7E1D0
}

.abt-us .chart-area table tr:nth-child(2) td {
  --color: #BA6C24
}

.abt-us .chart-area table tr:nth-child(3) td {
  --color: #fff
}

.abt-us .chart-area table tr:nth-child(4) td {
  --color: #D7E1D0
}

.abt-us .chart-area table tr:nth-child(5) td {
  --color: #BA6C24
}

.abt-us .region-sec {
  background: #fff;
  padding: 64px 0
}

.abt-us .region-inner {
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 64px
}

.abt-us .region-inner h3 {
  font-size: 36px;
  line-height: 1.2;
  letter-spacing: -.02em;
  margin: 0 0 32px;
  background: linear-gradient(337deg, #2895A2, #D7E1D0);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  display: inline-block
}

.abt-us .region-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px
}

.abt-us .region-item {
  border-radius: 20px;
  background: #f5f0eb;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  border: 1.5px solid #D7E1D0;
  transition: border-color .45s cubic-bezier(0.4, 0, 0.2, 1), box-shadow .45s cubic-bezier(0.4, 0, 0.2, 1)
}

.abt-us .region-item:hover {
  border-color: #2895A2;
  box-shadow: 0 5px 22px 1px #2895a21a
}

.abt-us .region-item .r-flag {
  font-size: 24px;
  line-height: 1.2
}

.abt-us .region-item .r-name {
  font-size: 16px;
  line-height: 1.8;
  font-weight: 600;
  color: #1a2e35
}

.abt-us .region-item .r-desc {
  font-size: 14px;
  line-height: 1.8;
  color: #555
}

@media (max-width: 1024px) {
  .abt-us .title-zone {
    padding: 64px 32px;
    flex-direction: column;
    align-items: flex-start
  }

  .abt-us .story-inner {
    padding: 0 32px;
    grid-template-columns: 1fr;
    gap: 32px
  }

  .abt-us .team-inner {
    padding: 0 32px
  }

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

  .abt-us .chart-inner {
    padding: 0 32px;
    grid-template-columns: 1fr;
    gap: 32px
  }

  .abt-us .region-inner {
    padding: 0 32px
  }

  .abt-us .region-grid {
    grid-template-columns: repeat(2, 1fr)
  }
}

@media (max-width: 640px) {
  .abt-us .title-zone {
    padding: 32px 16px
  }

  .abt-us .title-text h1 {
    font-size: 36px
  }

  .abt-us .story-inner {
    padding: 0 16px
  }

  .abt-us .story-sec {
    padding: 32px 0
  }

  .abt-us .team-inner {
    padding: 0 16px
  }

  .abt-us .team-sec {
    padding: 32px 0
  }

  .abt-us .team-head {
    flex-direction: column;
    align-items: flex-start;
    margin-bottom: 32px
  }

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

  .abt-us .chart-inner {
    padding: 0 16px
  }

  .abt-us .chart-band {
    padding: 32px 0
  }

  .abt-us .region-inner {
    padding: 0 16px
  }

  .abt-us .region-sec {
    padding: 32px 0
  }

  .abt-us .region-grid {
    grid-template-columns: 1fr
  }

  .abt-us .metrics-row {
    flex-direction: column
  }

  .abt-us .counter-badge {
    min-width: auto;
    width: 100%
  }
}

@media (max-width: 360px) {
  .abt-us .title-text h1 {
    font-size: 24px
  }

  .abt-us .story-text-col h2,
  .abt-us .team-head h2,
  .abt-us .chart-text h3,
  .abt-us .region-inner h3 {
    font-size: 24px
  }
}

.ptl {
  background: #fff;
  overflow-x: clip
}

.ptl .strip-img {
  width: 100%;
  height: 180px;
  position: relative;
  overflow: hidden
}

.ptl .strip-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
  display: block
}

.ptl .strip-img::after {
  content: "";
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(0deg, transparent, transparent 3px, #ba6c2412 3px, #ba6c2412 4px);
  pointer-events: none
}

.ptl .strip-img::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(337deg, #2895a22e 0%, #d7e1d038 100%);
  pointer-events: none;
  z-index: 1
}

.ptl .tb {
  max-width: 1320px;
  margin: 0 auto;
  padding: 32px 64px 64px;
  position: relative
}

.ptl .tb-quote {
  position: absolute;
  top: 8px;
  left: 32px;
  font-size: 220px;
  line-height: 1.2;
  color: #ba6c2414;
  font-weight: 900;
  pointer-events: none;
  user-select: none;
  z-index: 0
}

.ptl .tb-text {
  position: relative;
  z-index: 1;
  max-width: 820px;
  border: 1.5px dashed #ba6c2459;
  padding: 32px 32px 32px 48px
}

.ptl .tb-text h1 {
  font-size: 52px;
  line-height: 1.2;
  letter-spacing: -.03em;
  margin: 0 0 16px;
  background: linear-gradient(337deg, #2895A2 0%, #D7E1D0 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text
}

.ptl .tb-text p {
  font-size: 18px;
  line-height: 1.8;
  color: #2a2a2a;
  margin: 0
}

@keyframes flicker-accent {

  0%,
  100% {
    opacity: 0
  }

  50% {
    opacity: 1
  }
}

.ptl .flk1 {
  position: absolute;
  width: 120px;
  height: 120px;
  border-radius: 48px;
  background: #ba6c240f;
  top: 16px;
  right: 80px;
  animation: flicker-accent 5s cubic-bezier(0.4, 0, 0.2, 1) infinite;
  pointer-events: none
}

.ptl .flk2 {
  position: absolute;
  width: 60px;
  height: 60px;
  border-radius: 36px;
  background: #2895a212;
  bottom: 32px;
  right: 200px;
  animation: flicker-accent 7s cubic-bezier(0.0, 0, 0.2, 1) 2s infinite;
  pointer-events: none
}

.ptl .divider-dash {
  border: none;
  border-top: 1.5px dashed #2895a240;
  margin: 0
}

.ptl .longval {
  padding: 64px 0;
  background: linear-gradient(337deg, #f5f0eb 0%, #eef6f7 100%)
}

.ptl .longval-inner {
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 64px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center
}

.ptl .longval-img {
  width: 100%;
  aspect-ratio: 1/1;
  overflow: hidden;
  border-radius: 20px;
  box-shadow: 0 5px 22px 1px #ba6c241a
}

.ptl .longval-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: blur(0px);
  transition: filter .5s cubic-bezier(0.4, 0, 0.2, 1)
}

.ptl .longval-img:hover img {
  filter: blur(1.5px)
}

.ptl .longval-copy h2 {
  font-size: 36px;
  line-height: 1.2;
  letter-spacing: -.02em;
  margin: 0 0 16px;
  background: linear-gradient(337deg, #2895A2 0%, #D7E1D0 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text
}

.ptl .longval-copy p {
  font-size: 16px;
  line-height: 1.8;
  color: #2a2a2a;
  margin: 0 0 16px;
  padding-left: 16px;
  text-indent: -16px
}

.ptl .longval-copy p:last-child {
  margin: 0
}

.ptl .longval-copy .arr {
  display: inline-block;
  color: #BA6C24;
  margin-left: 4px
}

.ptl .exp-bar {
  margin-top: 32px
}

.ptl .exp-bar p {
  font-size: 14px;
  color: #2895A2;
  margin: 0 0 8px;
  text-indent: 0;
  padding-left: 0
}

.ptl .bar-track {
  width: 100%;
  height: 12px;
  background: #2895a21f;
  border-radius: 6px;
  overflow: hidden
}

.ptl .bar-fill {
  height: 100%;
  border-radius: 6px;
  background: linear-gradient(90deg, #BA6C24 0%, #2895A2 100%);
  width: 72%;
  transition: width .6s cubic-bezier(0.4, 0, 0.2, 1)
}

.ptl .bar-labels {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  margin-top: 4px
}

.ptl .bar-labels span {
  font-size: 14px;
  color: #555
}

.ptl .moment {
  padding: 64px 0;
  background: #fff;
  position: relative
}

.ptl .moment-inner {
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 64px;
  display: flex;
  flex-direction: row;
  gap: 64px;
  align-items: flex-start
}

.ptl .moment-quote-col {
  flex: 0 0 340px;
  border: 1.5px dashed #ba6c244d;
  border-radius: 20px;
  padding: 32px;
  background: linear-gradient(337deg, #ba6c240a 0%, #d7e1d026 100%)
}

.ptl .moment-quote-col blockquote {
  margin: 0;
  font-size: 18px;
  line-height: 1.8;
  color: #2a2a2a;
  font-style: italic
}

.ptl .moment-quote-col .attr {
  margin-top: 16px;
  font-size: 14px;
  color: #BA6C24;
  font-style: normal
}

.ptl .moment-rich {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 32px
}

.ptl .moment-rich h2 {
  font-size: 36px;
  line-height: 1.2;
  letter-spacing: -.02em;
  margin: 0;
  background: linear-gradient(337deg, #2895A2 0%, #D7E1D0 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text
}

.ptl .moment-rich p {
  font-size: 16px;
  line-height: 1.8;
  color: #2a2a2a;
  margin: 0
}

.ptl .moment-imgs {
  display: flex;
  flex-direction: row;
  gap: 16px
}

.ptl .moment-imgs .mimg {
  flex: 1;
  aspect-ratio: 1/1;
  overflow: hidden;
  border-radius: 20px;
  box-shadow: 0 1px 3px 1px #2895a212
}

.ptl .moment-imgs .mimg img {
  width: 100%;
  height: 100%;
  object-fit: cover
}

.ptl .grad-section {
  padding: 64px 0;
  position: relative;
  overflow: hidden
}

.ptl .grad-bg-img {
  position: absolute;
  inset: 0;
  z-index: 0
}

.ptl .grad-bg-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center
}

.ptl .grad-bg-img::after {
  content: "";
  position: absolute;
  inset: 0;
  background: #f0f8f9e0
}

.ptl .grad-inner {
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 64px;
  position: relative;
  z-index: 1
}

.ptl .grad-inner h2 {
  font-size: 36px;
  line-height: 1.2;
  letter-spacing: -.02em;
  margin: 0 0 32px;
  background: linear-gradient(337deg, #2895A2 0%, #D7E1D0 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text
}

.ptl .grad-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px
}

.ptl .gcard {
  background: #fff;
  border-radius: 20px;
  padding: 32px;
  box-shadow: 0 5px 22px 1px #ba6c241a;
  border-top: 3px solid #BA6C24;
  transition: transform .45s cubic-bezier(0.4, 0, 0.2, 1), box-shadow .45s cubic-bezier(0.4, 0, 0.2, 1)
}

.ptl .gcard:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 36px 1px #ba6c241a
}

.ptl .gcard h4 {
  font-size: 18px;
  line-height: 1.2;
  color: #BA6C24;
  margin: 0 0 8px;
  letter-spacing: -.01em
}

.ptl .gcard p {
  font-size: 16px;
  line-height: 1.8;
  color: #2a2a2a;
  margin: 0
}

.ptl .scale-section {
  padding: 64px 0;
  background: linear-gradient(337deg, #2895A2 0%, #1a6e78 100%)
}

.ptl .scale-inner {
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 64px
}

.ptl .scale-inner h2 {
  font-size: 36px;
  line-height: 1.2;
  letter-spacing: -.02em;
  margin: 0 0 32px;
  color: #D7E1D0
}

.ptl .scale-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px
}

.ptl .snum {
  padding: 32px;
  background: #ffffff14;
  border-radius: 20px;
  border: 1px solid #d7e1d033;
  transition: background .5s cubic-bezier(0.4, 0, 0.2, 1)
}

.ptl .snum:hover {
  background: #ffffff26
}

.ptl .snum .sn-val {
  font-size: 52px;
  line-height: 1.2;
  font-weight: 700;
  color: #fff;
  letter-spacing: -.03em
}

.ptl .snum .sn-label {
  font-size: 14px;
  line-height: 1.8;
  color: #d7e1d0d9;
  margin-top: 4px
}

.ptl .gap-section {
  padding: 64px 0;
  background: #fff
}

.ptl .gap-inner {
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 64px;
  display: grid;
  grid-template-columns: 380px 1fr;
  gap: 64px;
  align-items: start
}

.ptl .gap-minimal {
  padding-top: 8px
}

.ptl .gap-minimal h2 {
  font-size: 36px;
  line-height: 1.2;
  letter-spacing: -.02em;
  margin: 0 0 16px;
  background: linear-gradient(337deg, #2895A2 0%, #D7E1D0 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text
}

.ptl .gap-minimal p {
  font-size: 16px;
  line-height: 1.8;
  color: #555;
  margin: 0
}

.ptl .gap-rich {
  display: flex;
  flex-direction: column;
  gap: 16px
}

.ptl .gap-step {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 16px;
  padding: 16px;
  border-radius: 6px;
  border: 1.5px solid #ba6c2426;
  background: #d7e1d01f;
  transition: border-color .45s cubic-bezier(0.4, 0, 0.2, 1), background .45s cubic-bezier(0.4, 0, 0.2, 1)
}

.ptl .gap-step:hover {
  border-color: #BA6C24;
  background: #ba6c240f
}

.ptl .gap-step .step-num {
  flex: 0 0 36px;
  height: 36px;
  border-radius: 36px;
  background: linear-gradient(337deg, #BA6C24 0%, #2895A2 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 700;
  color: #fff
}

.ptl .gap-step .step-text h5 {
  font-size: 16px;
  line-height: 1.2;
  color: #2a2a2a;
  margin: 0 0 4px
}

.ptl .gap-step .step-text p {
  font-size: 14px;
  line-height: 1.8;
  color: #555;
  margin: 0
}

.ptl .gap-cta {
  margin-top: 8px
}

.ptl .gap-cta a {
  display: inline-block;
  padding: 16px 32px;
  border-radius: 6px;
  background: linear-gradient(337deg, #BA6C24 0%, #2895A2 100%);
  color: #fff !important;
  text-decoration: none !important;
  font-size: 16px;
  font-weight: 600;
  box-shadow: 0 5px 22px 1px #ba6c241a;
  transition: transform .45s cubic-bezier(0.4, 0, 0.2, 1), box-shadow .45s cubic-bezier(0.4, 0, 0.2, 1)
}

.ptl .gap-cta a:hover {
  transform: scale(1.04);
  box-shadow: 0 12px 36px 1px #ba6c241a
}

@media (max-width: 1024px) {
  .ptl .tb {
    padding: 32px
  }

  .ptl .tb-text h1 {
    font-size: 36px
  }

  .ptl .longval-inner {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 0 32px
  }

  .ptl .moment-inner {
    flex-direction: column;
    padding: 0 32px;
    gap: 32px
  }

  .ptl .moment-quote-col {
    flex: none
  }

  .ptl .grad-inner {
    padding: 0 32px
  }

  .ptl .grad-cards {
    grid-template-columns: 1fr 1fr;
    gap: 16px
  }

  .ptl .scale-inner {
    padding: 0 32px
  }

  .ptl .scale-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px
  }

  .ptl .gap-inner {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 0 32px
  }
}

@media (max-width: 640px) {
  .ptl .strip-img {
    height: 110px
  }

  .ptl .tb {
    padding: 16px
  }

  .ptl .tb-text {
    padding: 16px
  }

  .ptl .tb-text h1 {
    font-size: 24px
  }

  .ptl .tb-quote {
    font-size: 120px;
    left: 8px
  }

  .ptl .longval-inner {
    padding: 0 16px;
    gap: 16px
  }

  .ptl .longval {
    padding: 32px 0
  }

  .ptl .moment {
    padding: 32px 0
  }

  .ptl .moment-inner {
    padding: 0 16px;
    gap: 16px
  }

  .ptl .moment-imgs {
    flex-direction: column
  }

  .ptl .grad-section {
    padding: 32px 0
  }

  .ptl .grad-inner {
    padding: 0 16px
  }

  .ptl .grad-cards {
    grid-template-columns: 1fr
  }

  .ptl .scale-section {
    padding: 32px 0
  }

  .ptl .scale-inner {
    padding: 0 16px
  }

  .ptl .scale-grid {
    grid-template-columns: 1fr 1fr;
    gap: 8px
  }

  .ptl .snum {
    padding: 16px
  }

  .ptl .snum .sn-val {
    font-size: 36px
  }

  .ptl .gap-section {
    padding: 32px 0
  }

  .ptl .gap-inner {
    padding: 0 16px
  }
}

@media (max-width: 360px) {
  .ptl .tb-text h1 {
    font-size: 18px
  }

  .ptl .scale-grid {
    grid-template-columns: 1fr
  }
}

.succ-page {
  min-height: 80vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 64px 16px;
  background: #fff
}

.succ-page .succ-card {
  max-width: 560px;
  width: 100%;
  background: #fff;
  border: 1.5px solid #D7E1D0;
  border-radius: 20px;
  padding: 64px 32px;
  box-shadow: 0 1px 3px 1px #ba6c2412 0 5px 22px 1px #ba6c241a;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px
}

.succ-page .succ-icon {
  width: 72px;
  height: 72px;
  flex-shrink: 0
}

.succ-page .succ-icon circle {
  fill: #D7E1D0;
  transition: fill .5s cubic-bezier(0.4, 0, 0.2, 1)
}

.succ-page .succ-icon path {
  stroke: #2895A2;
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none
}

.succ-page .succ-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  text-align: center
}

.succ-page .succ-body .succ-heading {
  font-size: 36px;
  line-height: 1.2;
  letter-spacing: -.02em;
  background: linear-gradient(337deg, #2895A2, #D7E1D0);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin: 0
}

.succ-page .succ-body .succ-txt {
  font-size: 18px;
  line-height: 1.8;
  color: #1b3a3e;
  margin: 0;
  max-width: 420px
}

.succ-page .succ-body .succ-note {
  font-size: 14px;
  line-height: 1.8;
  color: #4a6a70;
  margin: 0
}

.succ-page .succ-divider {
  width: 48px;
  height: 2px;
  background: linear-gradient(337deg, #BA6C24, #2895A2);
  border-radius: 6px
}

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

.succ-page .succ-actions .btn-primary {
  display: inline-block;
  padding: 16px 32px;
  background: linear-gradient(337deg, #BA6C24, #2895A2);
  color: #fff;
  font-size: 16px;
  line-height: 1.2;
  border-radius: 6px;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: transform .45s cubic-bezier(0.4, 0, 0.2, 1), box-shadow .55s cubic-bezier(0.0, 0, 0.2, 1);
  box-shadow: 0 1px 3px 1px #ba6c2412 0 5px 22px 1px #ba6c241a
}

.succ-page .succ-actions .btn-primary:hover {
  transform: scale(1.04);
  box-shadow: 0 5px 22px 1px #ba6c241a 0 12px 36px 1px #ba6c241a
}

.succ-page .succ-actions .btn-primary:focus-visible {
  outline: 2px solid #BA6C24;
  outline-offset: 3px
}

.succ-page .succ-actions .btn-secondary {
  display: inline-block;
  padding: 16px 32px;
  background: #fff;
  color: #2895A2;
  font-size: 16px;
  line-height: 1.2;
  border-radius: 6px;
  text-decoration: none;
  border: 1.5px solid #2895A2;
  cursor: pointer;
  transition: background .5s cubic-bezier(0.4, 0, 0.2, 1), transform .45s cubic-bezier(0.4, 0, 0.2, 1)
}

.succ-page .succ-actions .btn-secondary:hover {
  background: #D7E1D0;
  transform: scale(1.04)
}

.succ-page .succ-actions .btn-secondary:focus-visible {
  outline: 2px solid #2895A2;
  outline-offset: 3px
}

@media (max-width: 640px) {
  .succ-page {
    padding: 32px 16px
  }

  .succ-page .succ-card {
    padding: 32px 16px;
    gap: 16px
  }

  .succ-page .succ-body .succ-heading {
    font-size: 24px
  }

  .succ-page .succ-body .succ-txt {
    font-size: 16px
  }

  .succ-page .succ-actions {
    flex-direction: column;
    width: 100%
  }

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

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

.cont-us .pg-top {
  position: relative;
  background: #1b2a1e;
  padding: 64px 32px;
  overflow: hidden
}

.cont-us .pg-top::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(337deg, #2895A2 0%, #D7E1D0 100%);
  opacity: .13;
  pointer-events: none
}

.cont-us .dot-grid {
  position: absolute;
  top: 0;
  left: 0;
  width: 52%;
  height: 100%;
  background-image: radial-gradient(circle, #D7E1D0 1px, transparent 1px);
  background-size: 22px 22px;
  opacity: .18;
  pointer-events: none
}

.cont-us .pg-top-inner {
  max-width: 1320px;
  margin: 0 auto;
  position: relative;
  z-index: 1
}

.cont-us .pg-top-inner h1 {
  font-size: 52px;
  line-height: 1.2;
  letter-spacing: -.03em;
  margin: 0 0 16px;
  background: linear-gradient(337deg, #2895A2 0%, #D7E1D0 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  max-width: 680px
}

.cont-us .pg-top-inner p {
  font-size: 18px;
  line-height: 1.8;
  color: #c8d8cb;
  max-width: 540px;
  margin: 0
}

.cont-us .bracket-tl,
.cont-us .bracket-br {
  position: absolute;
  width: 32px;
  height: 32px;
  pointer-events: none
}

.cont-us .bracket-tl {
  top: 16px;
  left: 16px;
  border-top: 2px solid #BA6C24;
  border-left: 2px solid #BA6C24;
  border-radius: 6px 0 0 0
}

.cont-us .bracket-br {
  bottom: 16px;
  right: 16px;
  border-bottom: 2px solid #2895A2;
  border-right: 2px solid #2895A2;
  border-radius: 0 0 6px 0
}

.cont-us .contact-body {
  max-width: 1320px;
  margin: 0 auto;
  padding: 64px 32px;
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 64px;
  align-items: start
}

.cont-us .info-col {
  position: relative
}

.cont-us .info-col h2 {
  font-size: 36px;
  line-height: 1.2;
  letter-spacing: -.02em;
  margin: 0 0 16px;
  background: linear-gradient(337deg, #2895A2 0%, #D7E1D0 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text
}

.cont-us .info-col .desc {
  font-size: 16px;
  line-height: 1.8;
  color: #2a2a2a;
  margin: 0 0 32px
}

.cont-us .detail-list {
  list-style: none;
  padding: 0;
  margin: 0 0 32px;
  display: flex;
  flex-direction: column;
  gap: 16px
}

.cont-us .detail-list li {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 16px;
  padding: 16px;
  background: #f4f7f4;
  border-radius: 6px;
  border: 1px solid #D7E1D0;
  position: relative;
  overflow: hidden;
  transition: border-color .5s cubic-bezier(0.4, 0, 0.2, 1)
}

.cont-us .detail-list li::after {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  width: 3px;
  height: 100%;
  background: #BA6C24;
  border-radius: 6px 0 0 6px;
  transform: scaleY(0);
  transition: transform .45s cubic-bezier(0.4, 0, 0.2, 1);
  transform-origin: bottom
}

.cont-us .detail-list li:hover::after {
  transform: scaleY(1)
}

.cont-us .detail-list li:hover {
  border-color: #BA6C24
}

.cont-us .det-icon {
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(337deg, #2895A2 0%, #D7E1D0 100%);
  border-radius: 6px
}

.cont-us .det-icon svg {
  width: 18px;
  height: 18px;
  fill: #fff
}

.cont-us .det-text {
  display: flex;
  flex-direction: column;
  gap: 4px
}

.cont-us .det-label {
  font-size: 14px;
  color: #6a7a6e;
  line-height: 1.2
}

.cont-us .det-val {
  font-size: 16px;
  color: #1b2a1e;
  line-height: 1.2;
  font-weight: 600
}

.cont-us .det-val a {
  color: #1b2a1e;
  text-decoration: none;
  transition: color .45s cubic-bezier(0.4, 0, 0.2, 1)
}

.cont-us .det-val a:hover {
  color: #BA6C24
}

.cont-us .checklist {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px
}

.cont-us .checklist li {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  color: #2a2a2a;
  line-height: 1.8
}

.cont-us .chk-svg {
  flex-shrink: 0;
  width: 20px;
  height: 20px
}

.cont-us .form-col {
  background: #f4f7f4;
  border-radius: 20px;
  padding: 32px;
  border: 1px solid #D7E1D0;
  box-shadow: 0 5px 22px 1px #ba6c241a;
  position: relative
}

.cont-us .form-col .bracket-tl,
.cont-us .form-col .bracket-br {
  position: absolute
}

.cont-us .form-col .bracket-tl {
  top: 12px;
  left: 12px;
  width: 20px;
  height: 20px
}

.cont-us .form-col .bracket-br {
  bottom: 12px;
  right: 12px;
  width: 20px;
  height: 20px
}

.cont-us .form-col h3 {
  font-size: 24px;
  line-height: 1.2;
  letter-spacing: -.01em;
  margin: 0 0 8px;
  color: #1b2a1e
}

.cont-us .form-col .form-sub {
  font-size: 15px;
  color: #5a6e5e;
  line-height: 1.8;
  margin: 0 0 32px
}

.cont-us .form-row {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: 16px
}

.cont-us .form-row label {
  font-size: 14px;
  color: #3a4e3e;
  line-height: 1.2;
  font-weight: 600
}

.cont-us .form-row input,
.cont-us .form-row select {
  width: 100%;
  padding: 16px;
  font-size: 16px;
  border: 1.5px solid #D7E1D0;
  border-radius: 6px;
  background: #fff;
  color: #1b2a1e;
  outline: none;
  box-sizing: border-box;
  transition: border-color .5s cubic-bezier(0.4, 0, 0.2, 1), box-shadow .5s cubic-bezier(0.4, 0, 0.2, 1);
  appearance: none;
  -webkit-appearance: none
}

.cont-us .form-row select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%232895A2' d='M4 6l4 4 4-4'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  padding-right: 40px;
  cursor: pointer
}

.cont-us .form-row input::placeholder {
  color: #9aaa9e;
  font-style: italic
}

.cont-us .form-row input:focus,
.cont-us .form-row select:focus {
  border-color: #2895A2;
  box-shadow: 0 1px 3px 1px #2895a212
}

.cont-us .form-row input:invalid:not(:placeholder-shown) {
  border-color: #BA6C24
}

.cont-us .privacy-row {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 16px;
  padding: 16px;
  background: #eaf0ea;
  border-radius: 6px
}

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

.cont-us .privacy-row label {
  font-size: 14px;
  color: #3a4e3e;
  line-height: 1.8
}

.cont-us .privacy-row label a {
  color: #2895A2;
  text-decoration: underline;
  transition: color .45s cubic-bezier(0.4, 0, 0.2, 1)
}

.cont-us .privacy-row label a:hover {
  color: #BA6C24
}

.cont-us .submit-btn {
  width: 100%;
  padding: 16px 32px;
  font-size: 16px;
  font-weight: 700;
  color: #fff;
  background: linear-gradient(337deg, #BA6C24 0%, #2895A2 100%);
  border: none;
  border-radius: 6px;
  cursor: pointer;
  letter-spacing: .02em;
  transition: transform .45s cubic-bezier(0.4, 0, 0.2, 1), box-shadow .5s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 5px 22px 1px #ba6c241a
}

.cont-us .submit-btn:hover {
  transform: scale(1.025);
  box-shadow: 0 12px 36px 1px #ba6c241a
}

.cont-us .submit-btn:focus {
  outline: 2px solid #BA6C24;
  outline-offset: 3px
}

.cont-us .submit-btn:active {
  transform: scale(0.99)
}

.cont-us .fade-div {
  height: 2px;
  background: linear-gradient(90deg, transparent 0%, #D7E1D0 30%, #2895A2 50%, #D7E1D0 70%, transparent 100%);
  margin: 0 auto;
  max-width: 1320px
}

@media (max-width: 1024px) {
  .cont-us .contact-body {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 32px
  }
}

@media (max-width: 640px) {
  .cont-us .pg-top {
    padding: 32px 16px
  }

  .cont-us .pg-top-inner h1 {
    font-size: 36px
  }

  .cont-us .pg-top-inner p {
    font-size: 16px
  }

  .cont-us .contact-body {
    padding: 32px 16px;
    gap: 32px
  }

  .cont-us .form-col {
    padding: 16px
  }

  .cont-us .info-col h2 {
    font-size: 24px
  }
}

@media (max-width: 360px) {
  .cont-us .pg-top-inner h1 {
    font-size: 24px
  }

  .cont-us .contact-body {
    padding: 16px
  }
}