html {
  box-sizing: border-box
}

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

body {
  margin: 0;
  -webkit-text-size-adjust: 100%
}

.topbar {
  background: #2b2220;
  padding: 6px 24px
}

.topbar-inner {
  max-width: 1280px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px
}

.topbar-contact {
  display: flex;
  align-items: center;
  gap: 24px
}

.topbar-contact a {
  color: #E9E7DF;
  font-family: 'Playfair Display', serif;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: .01em;
  text-decoration: none;
  opacity: .85;
  transition: opacity .45s ease-out, color .6s ease-out
}

.topbar-contact a:hover {
  opacity: 1;
  color: #A8BB49
}

.topbar-contact a:focus-visible {
  outline: 2px solid #A8BB49;
  outline-offset: 2px;
  border-radius: 2px
}

.topbar-tag {
  font-family: 'Playfair Display', serif;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: .02em;
  color: #A8BB49;
  opacity: .9
}

.topbar-sep {
  width: 1px;
  height: 14px;
  background: #E9E7DF;
  opacity: .2;
  display: inline-block
}

.sitehead {
  background: #E9E7DF;
  border-bottom: 1px solid #d7324c21;
  box-shadow: 0 4px 14px 0 #d7324c1c
}

.sitehead-middle {
  max-width: 1280px;
  margin: 0 auto;
  padding: 24px 24px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px
}

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

.logoframe {
  width: 110px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 1px 2px 0 #d7324c12 0 4px 14px 0 #d7324c1c 0 0 0 1.5px #d7324c2e;
  padding: 6px 12px
}

.logoframe img {
  width: 86px;
  height: 36px;
  object-fit: contain;
  display: block
}

.brandname {
  font-family: 'Playfair Display', serif;
  font-size: 37px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .01em;
  color: #2b2220
}

.brandname span {
  color: #D7324C
}

.headcred {
  font-family: 'Playfair Display', serif;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: .02em;
  color: #2b2220;
  opacity: .55;
  text-align: right
}

.sitenav {
  background: linear-gradient(90deg, #D7324C 0%, #b82840 100%)
}

.sitenav-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  align-items: stretch;
  flex-wrap: wrap;
  gap: 0
}

.sitenav-inner a {
  font-family: 'Playfair Display', serif;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: .02em;
  color: #fff;
  text-decoration: none;
  padding: 12px 24px;
  display: inline-flex;
  align-items: center;
  border-radius: 0;
  position: relative;
  transition: background .7s ease-out, color .45s ease-out
}

.sitenav-inner a::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 24px;
  right: 24px;
  height: 2px;
  background: #A8BB49;
  border-radius: 2px;
  opacity: 0;
  transition: opacity .6s ease-out
}

.sitenav-inner a:hover {
  background: #0000001f
}

.sitenav-inner a:hover::after {
  opacity: 1
}

.sitenav-inner a:focus-visible {
  outline: 2px solid #A8BB49;
  outline-offset: -2px
}

.sitenav-inner a.active {
  background: #0000002e
}

.sitenav-inner a.active::after {
  opacity: 1
}

header {
  position: relative
}

footer {
  background: #2b2220
}

.ftop {
  border-bottom: 1px solid #e9e7df1a;
  padding: 40px 24px
}

.ftop-inner {
  max-width: 1280px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 24px
}

.flogo-frame {
  width: 120px;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 1px 2px 0 #d7324c12 0 4px 14px 0 #d7324c1c 0 0 0 1.5px #a8bb494d;
  padding: 6px 12px
}

.flogo-frame img {
  width: 96px;
  height: 40px;
  object-fit: contain;
  display: block
}

.fbrand {
  font-family: 'Playfair Display', serif;
  font-size: 37px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .01em;
  color: #E9E7DF
}

.fbrand span {
  color: #D7324C
}

.fmid {
  padding: 40px 24px;
  border-bottom: 1px solid #e9e7df1a
}

.fmid-inner {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 40px
}

.fcol-label {
  font-family: 'Playfair Display', serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: .02em;
  color: #A8BB49;
  margin-bottom: 12px;
  text-transform: uppercase
}

.fcol-links {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 6px
}

.fcol-links li a {
  font-family: 'Playfair Display', serif;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: .01em;
  color: #E9E7DF;
  text-decoration: none;
  opacity: .75;
  transition: opacity .45s ease-out, color .6s ease-out;
  display: inline-block
}

.fcol-links li a:hover {
  opacity: 1;
  color: #A8BB49
}

.fcol-links li a:focus-visible {
  outline: 2px solid #A8BB49;
  outline-offset: 2px;
  border-radius: 2px
}

.fcontact-item {
  font-family: 'Playfair Display', serif;
  font-size: 16px;
  line-height: 1.9;
  letter-spacing: .01em;
  color: #E9E7DF;
  opacity: .75
}

.fcontact-item a {
  color: #E9E7DF;
  text-decoration: none;
  opacity: 1;
  transition: color .6s ease-out
}

.fcontact-item a:hover {
  color: #A8BB49
}

.fcontact-item a:focus-visible {
  outline: 2px solid #A8BB49;
  outline-offset: 2px;
  border-radius: 2px
}

.fbot {
  padding: 24px
}

.fbot-inner {
  max-width: 1280px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap
}

.fcopy {
  font-family: 'Playfair Display', serif;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: .01em;
  color: #E9E7DF;
  opacity: .45
}

.fpolicy-links {
  display: flex;
  align-items: center;
  gap: 24px
}

.fpolicy-links a {
  font-family: 'Playfair Display', serif;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: .01em;
  color: #E9E7DF;
  text-decoration: none;
  opacity: .45;
  transition: opacity .45s ease-out
}

.fpolicy-links a:hover {
  opacity: .85
}

.fpolicy-links a:focus-visible {
  outline: 2px solid #A8BB49;
  outline-offset: 2px;
  border-radius: 2px
}

.cookiebar {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1500;
  background: #fff;
  box-shadow: 0 -4px 14px 0 #d7324c1c 0 -1px 2px 0 #d7324c12;
  border-top: 2px solid #D7324C
}

.cookiebar-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap
}

.cookiebar-text {
  flex: 1;
  min-width: 200px
}

.cookiebar-headline {
  font-family: 'Playfair Display', serif;
  font-size: 21px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .01em;
  color: #2b2220;
  margin-bottom: 6px
}

.cookiebar-desc {
  font-family: 'Playfair Display', serif;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: .01em;
  color: #2b2220;
  opacity: .7
}

.cookiebar-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0
}

.cbtn {
  font-family: 'Playfair Display', serif;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: .02em;
  padding: 12px 24px;
  border-radius: 4px;
  cursor: pointer;
  border: 2px solid #D7324C;
  background: transparent;
  color: #D7324C;
  min-width: 120px;
  min-height: 44px;
  transition: background .7s ease-out, color .45s ease-out
}

.cbtn:hover {
  background: #D7324C;
  color: #fff
}

.cbtn:focus-visible {
  outline: 2px solid #A8BB49;
  outline-offset: 2px
}

.cbtn-accept {
  background: #D7324C;
  color: #fff
}

.cbtn-accept:hover {
  background: #b82840;
  border-color: #b82840
}

.prefsicon {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 1400;
  width: 44px;
  height: 44px;
  border-radius: 22px;
  background: #2b2220;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 14px 0 #d7324c1c;
  transition: background .6s ease-out
}

.prefsicon:hover {
  background: #D7324C
}

.prefsicon:focus-visible {
  outline: 2px solid #A8BB49;
  outline-offset: 2px
}

.prefsicon svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: #E9E7DF;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round
}

@media (max-width: 1024px) {
  .sitehead-middle {
    padding: 24px 24px 12px;
    flex-wrap: wrap
  }

  .fmid-inner {
    grid-template-columns: 1fr 1fr;
    gap: 40px
  }

  .topbar-tag {
    display: none
  }
}

@media (max-width: 640px) {
  .topbar-inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px
  }

  .topbar-contact {
    flex-wrap: wrap;
    gap: 12px
  }

  .topbar-sep {
    display: none
  }

  .sitehead-middle {
    padding: 24px 12px 12px;
    gap: 12px
  }

  .brandname {
    font-size: 21px
  }

  .fbrand {
    font-size: 21px
  }

  .sitenav-inner {
    padding: 0 12px
  }

  .sitenav-inner a {
    padding: 12px;
    font-size: 16px
  }

  .fmid-inner {
    grid-template-columns: 1fr;
    gap: 24px
  }

  .fmid {
    padding: 24px 12px
  }

  .ftop {
    padding: 24px 12px
  }

  .fbot {
    padding: 24px 12px
  }

  .fbot-inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px
  }

  .cookiebar-inner {
    padding: 24px 12px;
    flex-direction: column;
    align-items: flex-start
  }

  .cookiebar-actions {
    width: 100%
  }

  .cbtn {
    flex: 1
  }
}

.doc-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 80px 40px;
  color: #2a2520;
  line-height: 1.9
}

.doc-inner h1 {
  font-size: 52px;
  line-height: 1.2;
  letter-spacing: .01em;
  margin-bottom: 40px;
  margin-top: 0;
  color: #1e1a16;
  border-bottom: 2px solid #D7324C;
  padding-bottom: 24px
}

.doc-inner h2 {
  font-size: 37px;
  line-height: 1.2;
  letter-spacing: .01em;
  margin-top: 80px;
  margin-bottom: 24px;
  color: #1e1a16
}

.doc-inner h3 {
  font-size: 21px;
  line-height: 1.6;
  letter-spacing: .02em;
  margin-top: 40px;
  margin-bottom: 12px;
  color: #2a2520;
  font-weight: 700
}

.doc-inner h4 {
  font-size: 21px;
  line-height: 1.6;
  letter-spacing: .02em;
  margin-top: 40px;
  margin-bottom: 12px;
  color: #3a3530;
  font-weight: 600
}

.doc-inner h5 {
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: .02em;
  margin-top: 24px;
  margin-bottom: 12px;
  color: #3a3530;
  font-weight: 700;
  text-transform: uppercase
}

.doc-inner h6 {
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: .02em;
  margin-top: 24px;
  margin-bottom: 6px;
  color: #5a5550;
  font-weight: 600
}

.doc-inner p {
  font-size: 16px;
  line-height: 1.9;
  letter-spacing: .01em;
  margin-top: 0;
  margin-bottom: 24px;
  color: #2a2520
}

.doc-inner ul {
  margin: 0 0 24px;
  padding-left: 24px;
  list-style: none
}

.doc-inner ol {
  margin: 0 0 24px;
  padding-left: 24px;
  list-style: none;
  counter-reset: policy-counter
}

.doc-inner ul li {
  font-size: 16px;
  line-height: 1.9;
  letter-spacing: .01em;
  margin-bottom: 6px;
  color: #2a2520;
  padding-left: 18px;
  position: relative
}

.doc-inner ul li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 13px;
  width: 6px;
  height: 6px;
  border-radius: 2px;
  background-color: #D7324C
}

.doc-inner ol li {
  font-size: 16px;
  line-height: 1.9;
  letter-spacing: .01em;
  margin-bottom: 6px;
  color: #2a2520;
  padding-left: 18px;
  position: relative;
  counter-increment: policy-counter
}

.doc-inner ol li::before {
  content: counter(policy-counter) ".";
  position: absolute;
  left: 0;
  top: 0;
  font-size: 16px;
  font-weight: 600;
  color: #D7324C;
  line-height: 1.9
}

.doc-inner ul ul,
.doc-inner ol ol,
.doc-inner ul ol,
.doc-inner ol ul {
  margin-top: 6px;
  margin-bottom: 6px
}

.doc-inner strong,
.doc-inner b {
  font-weight: 700;
  color: #1e1a16
}

.doc-inner em,
.doc-inner i {
  font-style: italic;
  color: #3a3530
}

.doc-inner table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 40px;
  font-size: 16px;
  line-height: 1.6;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 1px 2px 0 #d7324c12 0 4px 14px 0 #d7324c1c
}

.doc-inner thead {
  background-color: #E9E7DF
}

.doc-inner thead tr {
  border-bottom: 2px solid #D7324C
}

.doc-inner tbody tr {
  border-bottom: 1px solid #dddbd3;
  transition: background-color .6s ease-out
}

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

.doc-inner tbody tr:hover {
  background-color: #f4f2ec
}

.doc-inner th {
  padding: 12px 24px;
  text-align: left;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .02em;
  color: #1e1a16
}

.doc-inner td {
  padding: 12px 24px;
  text-align: left;
  font-size: 16px;
  color: #2a2520;
  letter-spacing: .01em;
  vertical-align: top
}

.doc-inner hr {
  border: none;
  height: 1px;
  background-color: #dddbd3;
  margin: 40px 0;
  position: relative
}

.doc-inner hr::after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 40px;
  height: 2px;
  background-color: #A8BB49
}

.doc-inner div {
  font-size: 16px;
  line-height: 1.9
}

@media (max-width: 1024px) {
  .doc-inner {
    padding: 80px 24px
  }

  .doc-inner h1 {
    font-size: 37px
  }

  .doc-inner h2 {
    font-size: 21px;
    margin-top: 40px
  }

  .doc-inner table {
    display: block;
    overflow-x: auto
  }
}

@media (max-width: 640px) {
  .doc-inner {
    padding: 40px 24px
  }

  .doc-inner h1 {
    font-size: 37px;
    padding-bottom: 12px;
    margin-bottom: 24px
  }

  .doc-inner h2 {
    margin-top: 40px;
    margin-bottom: 12px
  }

  .doc-inner th,
  .doc-inner td {
    padding: 12px
  }
}

.lpdet {
  background: #fff;
  overflow-x: clip;
  position: relative
}

.lpdet .topdiv {
  width: 100%;
  background: linear-gradient(97deg, #d7324c14 0%, #E9E7DF 40%, #fff 100%);
  padding: 80px 0 40px;
  position: relative;
  overflow: hidden
}

.lpdet .topdiv::before {
  content: '';
  position: absolute;
  top: 24px;
  right: 80px;
  width: 3px;
  height: 18px;
  background: #D7324C;
  box-shadow: 8px 0 0 #D7324C, 16px 0 0 #D7324C, 24px 0 0 #D7324C, 32px 0 0 #D7324C;
  opacity: .35
}

.lpdet .topdiv::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(97deg, #D7324C 0%, #A8BB49 60%, transparent 100%);
  opacity: .3
}

.lpdet .topinner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 40px;
  display: grid;
  grid-template-columns: 1fr 480px;
  gap: 80px;
  align-items: start
}

.lpdet .topleft {
  display: flex;
  flex-direction: column;
  gap: 24px
}

.lpdet .cattag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid #D7324C;
  border-radius: 4px;
  padding: 6px 12px;
  font-size: 16px;
  color: #D7324C;
  letter-spacing: .02em;
  width: fit-content;
  background: #d7324c0a
}

.lpdet .cattag svg {
  flex-shrink: 0
}

.lpdet .pgtitle {
  font-size: 52px;
  line-height: 1.2;
  letter-spacing: .01em;
  color: #1b1b1b;
  text-transform: uppercase;
  font-weight: 800;
  margin: 0
}

.lpdet .pgtitle em {
  font-style: normal;
  color: #D7324C
}

.lpdet .pgmeta {
  display: flex;
  flex-direction: row;
  gap: 24px;
  align-items: center;
  flex-wrap: wrap
}

.lpdet .metaitem {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 6px;
  font-size: 16px;
  color: #555;
  letter-spacing: .01em
}

.lpdet .metaitem svg {
  flex-shrink: 0;
  opacity: .7
}

.lpdet .pgprice {
  display: flex;
  flex-direction: column;
  gap: 6px
}

.lpdet .pricelabel {
  font-size: 16px;
  color: #888;
  letter-spacing: .02em;
  text-transform: uppercase
}

.lpdet .pricenum {
  font-size: 52px;
  line-height: 1.2;
  font-weight: 800;
  color: #1b1b1b;
  letter-spacing: .01em
}

.lpdet .enrollbtn {
  display: inline-block;
  padding: 12px 40px;
  border: 2px solid #D7324C;
  border-radius: 4px;
  font-size: 16px;
  letter-spacing: .02em;
  color: #D7324C;
  background: transparent;
  text-decoration: none;
  cursor: pointer;
  transition: background .65s ease-out, color .55s ease-out, box-shadow .7s ease-out;
  width: fit-content;
  position: relative
}

.lpdet .enrollbtn:hover {
  background: #D7324C;
  color: #fff;
  box-shadow: 0 4px 14px 0 #d7324c1c 0 12px 60px 0 #d7324c1c
}

.lpdet .enrollbtn:focus {
  outline: 2px solid #D7324C;
  outline-offset: 3px
}

.lpdet .topright {
  position: relative
}

.lpdet .imgframe {
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid #d7324c2e;
  box-shadow: 0 1px 2px 0 #d7324c12 0 4px 14px 0 #d7324c1c;
  position: relative
}

.lpdet .imgframe img {
  width: 100%;
  height: 340px;
  object-fit: cover;
  display: block;
  filter: saturate(0.92);
  transition: filter .8s ease-out, transform .8s ease-out
}

.lpdet .imgframe:hover img {
  filter: saturate(1.05);
  transform: scale(1.02)
}

.lpdet .shapedec {
  position: absolute;
  bottom: -24px;
  left: -24px;
  width: 80px;
  height: 80px;
  border: 2px solid #a8bb4959;
  border-radius: 2px;
  pointer-events: none;
  transform: rotate(12deg)
}

.lpdet .shapedec2 {
  position: absolute;
  top: -12px;
  right: -12px;
  width: 40px;
  height: 40px;
  background: #d7324c14;
  border-radius: 2px;
  pointer-events: none;
  transform: rotate(-8deg)
}

.lpdet .pricecardwrap {
  margin-top: 24px;
  background: #fff;
  border-radius: 8px;
  border: 1px solid #a8bb494d;
  padding: 24px;
  box-shadow: 0 1px 2px 0 #a8bb4912 0 4px 14px 0 #a8bb491c;
  display: flex;
  flex-direction: column;
  gap: 12px
}

.lpdet .pricecardwrap .pricelabel {
  font-size: 16px;
  color: #888;
  letter-spacing: .02em
}

.lpdet .pricecardwrap .pricenum {
  font-size: 37px;
  line-height: 1.2;
  font-weight: 800;
  color: #1b1b1b
}

.lpdet .pricecardwrap .enrollbtn {
  width: 100%;
  text-align: center;
  box-sizing: border-box
}

.lpdet .wavesep {
  width: 100%;
  overflow: hidden;
  line-height: 0;
  background: #fff
}

.lpdet .wavesep svg {
  display: block;
  width: 100%
}

.lpdet .bodyzone {
  background: #fff;
  padding: 80px 0;
  position: relative
}

.lpdet .bodyzone::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: radial-gradient(ellipse at 50% 40%, #e9e7df8c 0%, transparent 72%);
  pointer-events: none
}

.lpdet .bodyinner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 40px;
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 80px;
  align-items: start;
  position: relative
}

.lpdet .descblock {
  display: flex;
  flex-direction: column;
  gap: 24px
}

.lpdet .descblock h2 {
  font-size: 37px;
  line-height: 1.2;
  letter-spacing: .01em;
  color: #1b1b1b;
  margin: 0;
  font-weight: 700
}

.lpdet .descblock h3 {
  font-size: 21px;
  line-height: 1.6;
  letter-spacing: .01em;
  color: #1b1b1b;
  margin: 0;
  font-weight: 600
}

.lpdet .descblock p {
  font-size: 16px;
  line-height: 1.9;
  color: #333;
  margin: 0;
  letter-spacing: .01em
}

.lpdet .descblock p:first-of-type {
  font-size: 21px;
  line-height: 1.6;
  color: #222
}

.lpdet .descblock mark {
  background: #a8bb4940;
  color: inherit;
  border-radius: 2px;
  padding: 0 4px
}

.lpdet .descblock small {
  font-size: 16px;
  color: #777;
  line-height: 1.6
}

.lpdet .descblock cite {
  font-style: italic;
  color: #555
}

.lpdet .descblock ul,
.lpdet .descblock ol {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0
}

.lpdet .descblock li {
  font-size: 16px;
  line-height: 1.9;
  color: #333;
  letter-spacing: .01em;
  padding: 6px 0;
  border-bottom: 1px solid #a8bb494d
}

.lpdet .descblock li:first-child {
  border-top: 1px solid #a8bb494d
}

.lpdet .descblock dl {
  display: flex;
  flex-direction: column;
  gap: 6px
}

.lpdet .descblock dt {
  font-size: 16px;
  font-weight: 700;
  color: #1b1b1b;
  letter-spacing: .01em
}

.lpdet .descblock dd {
  font-size: 16px;
  color: #444;
  line-height: 1.9;
  margin: 0;
  padding-left: 12px
}

.lpdet .descblock blockquote {
  margin: 0;
  padding: 12px 24px;
  background: #d7324c0a;
  border-radius: 4px;
  box-shadow: inset 4px 0 0 #d7324c59
}

.lpdet .descblock blockquote p {
  font-size: 21px;
  line-height: 1.6;
  color: #2a2a2a;
  font-style: italic
}

.lpdet .descblock details {
  border: 1px solid #a8bb4959;
  border-radius: 4px;
  overflow: hidden
}

.lpdet .descblock summary {
  font-size: 16px;
  font-weight: 600;
  color: #1b1b1b;
  padding: 12px 24px;
  cursor: pointer;
  background: #e9e7df80;
  letter-spacing: .01em;
  transition: background .55s ease-out;
  list-style: none
}

.lpdet .descblock summary::-webkit-details-marker {
  display: none
}

.lpdet .descblock summary:hover {
  background: #a8bb492e
}

.lpdet .descblock details[open] summary {
  border-bottom: 1px solid #a8bb4940
}

.lpdet .descblock details> :not(summary) {
  padding: 12px 24px;
  font-size: 16px;
  line-height: 1.9;
  color: #333
}

.lpdet .sidebar {
  display: flex;
  flex-direction: column;
  gap: 24px;
  position: sticky;
  top: 24px
}

.lpdet .progcard {
  background: #E9E7DF;
  border-radius: 8px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  box-shadow: 0 1px 2px 0 #d7324c12
}

.lpdet .progcard h4 {
  font-size: 21px;
  line-height: 1.2;
  font-weight: 700;
  color: #1b1b1b;
  margin: 0;
  letter-spacing: .01em;
  text-transform: uppercase
}

.lpdet .progcard p {
  font-size: 16px;
  line-height: 1.9;
  color: #333;
  margin: 0
}

.lpdet .progcard h2 {
  font-size: 21px;
  line-height: 1.6;
  font-weight: 600;
  color: #1b1b1b;
  margin: 0
}

.lpdet .progcard mark {
  background: #d7324c26;
  color: inherit;
  border-radius: 2px;
  padding: 0 4px
}

.lpdet .progcard small {
  font-size: 16px;
  color: #666
}

.lpdet .progcard ul,
.lpdet .progcard ol {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column
}

.lpdet .progcard li {
  font-size: 16px;
  line-height: 1.9;
  color: #333;
  padding: 6px 0;
  border-bottom: 1px solid #0000001a;
  letter-spacing: .01em
}

.lpdet .progcard li:first-child {
  border-top: 1px solid #0000001a
}

.lpdet .progcard details {
  border: 1px solid #0000001f;
  border-radius: 4px;
  overflow: hidden
}

.lpdet .progcard summary {
  font-size: 16px;
  font-weight: 600;
  color: #1b1b1b;
  padding: 12px;
  cursor: pointer;
  background: #ffffff80;
  letter-spacing: .01em;
  transition: background .55s ease-out;
  list-style: none
}

.lpdet .progcard summary::-webkit-details-marker {
  display: none
}

.lpdet .progcard summary:hover {
  background: #d7324c14
}

.lpdet .progcard details[open] summary {
  border-bottom: 1px solid #0000001a
}

.lpdet .progcard details> :not(summary) {
  padding: 12px;
  font-size: 16px;
  line-height: 1.9;
  color: #333;
  background: #fff
}

.lpdet .statsrow {
  background: #1b1b1b;
  border-radius: 8px;
  padding: 24px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  box-shadow: 0 4px 14px 0 #d7324c1c 0 12px 60px 0 #d7324c1c
}

.lpdet .statitem {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 12px;
  background: #ffffff0a;
  border-radius: 4px;
  transition: background .7s ease-out
}

.lpdet .statitem:hover {
  background: #d7324c1f
}

.lpdet .statlabel {
  font-size: 16px;
  color: #aaa;
  letter-spacing: .02em
}

.lpdet .statval {
  font-size: 37px;
  line-height: 1.2;
  font-weight: 800;
  color: #A8BB49;
  letter-spacing: .01em
}

.lpdet .statval span {
  color: #D7324C
}

.lpdet .scrolltop {
  position: fixed;
  bottom: 40px;
  right: 40px;
  width: 48px;
  height: 48px;
  background: #D7324C;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  box-shadow: 0 4px 14px 0 #d7324c1c 0 12px 60px 0 #d7324c1c;
  transition: background .65s ease-out, transform .55s ease-out;
  z-index: 50
}

.lpdet .scrolltop:hover {
  background: #b8293f;
  transform: translateY(-4px)
}

.lpdet .scrolltop:focus {
  outline: 2px solid #D7324C;
  outline-offset: 3px
}

.lpdet .scrolltop svg {
  display: block
}

.lpdet .bganimwrap {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
  overflow: hidden
}

.lpdet .bganim1 {
  position: absolute;
  top: 0;
  left: 0;
  width: 320px;
  height: 320px;
  background: radial-gradient(ellipse at 20% 20%, #d7324c12 0%, transparent 70%);
  animation: bgshift1 8s ease-in-out infinite alternate
}

.lpdet .bganim2 {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 280px;
  height: 280px;
  background: radial-gradient(ellipse at 80% 80%, #a8bb4914 0%, transparent 70%);
  animation: bgshift2 10s ease-in-out infinite alternate
}

@keyframes bgshift1 {
  0% {
    opacity: .5;
    transform: translate(0, 0)
  }

  100% {
    opacity: 1;
    transform: translate(24px, 24px)
  }
}

@keyframes bgshift2 {
  0% {
    opacity: .4;
    transform: translate(0, 0)
  }

  100% {
    opacity: 1;
    transform: translate(-24px, -24px)
  }
}

@media (max-width: 1024px) {
  .lpdet .topinner {
    grid-template-columns: 1fr;
    gap: 40px;
    padding: 0 24px
  }

  .lpdet .topdiv {
    padding: 40px 0
  }

  .lpdet .pgtitle {
    font-size: 37px
  }

  .lpdet .bodyinner {
    grid-template-columns: 1fr;
    gap: 40px;
    padding: 0 24px
  }

  .lpdet .bodyzone {
    padding: 40px 0
  }

  .lpdet .sidebar {
    position: static
  }

  .lpdet .statsrow {
    grid-template-columns: 1fr 1fr
  }
}

@media (max-width: 640px) {
  .lpdet .topinner {
    padding: 0 12px;
    gap: 24px
  }

  .lpdet .topdiv {
    padding: 24px 0
  }

  .lpdet .pgtitle {
    font-size: 37px
  }

  .lpdet .pgmeta {
    gap: 12px
  }

  .lpdet .imgframe img {
    height: 220px
  }

  .lpdet .bodyinner {
    padding: 0 12px;
    gap: 24px
  }

  .lpdet .bodyzone {
    padding: 24px 0
  }

  .lpdet .statsrow {
    grid-template-columns: 1fr
  }

  .lpdet .scrolltop {
    bottom: 24px;
    right: 24px
  }

  .lpdet .topdiv::before {
    right: 24px
  }
}

.bys {
  background: #fff;
  overflow-x: clip;
  position: relative
}

.bys .pagewrap {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 40px
}

.bys .aurora {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 0;
  overflow: hidden
}

.bys .aurora-z1 {
  position: absolute;
  width: 700px;
  height: 700px;
  border-radius: 50%;
  background: linear-gradient(97deg, #d7324c12 0%, #d7324c03 60%, transparent 100%);
  top: -200px;
  left: -200px;
  animation: auroraMove1 14s ease-in-out infinite alternate
}

.bys .aurora-z2 {
  position: absolute;
  width: 600px;
  height: 600px;
  border-radius: 50%;
  background: linear-gradient(97deg, #a8bb4914 0%, #a8bb4903 60%, transparent 100%);
  bottom: 10%;
  right: -150px;
  animation: auroraMove2 18s ease-in-out infinite alternate
}

@keyframes auroraMove1 {
  0% {
    transform: translate(0, 0) scale(1);
    opacity: .7
  }

  100% {
    transform: translate(120px, 80px) scale(1.18);
    opacity: 1
  }
}

@keyframes auroraMove2 {
  0% {
    transform: translate(0, 0) scale(1.1);
    opacity: .5
  }

  100% {
    transform: translate(-100px, -60px) scale(0.9);
    opacity: .9
  }
}

.bys .geoshape {
  position: fixed;
  top: 38%;
  right: -80px;
  width: 220px;
  height: 220px;
  border: 1.5px solid #a8bb4921;
  transform: rotate(0deg);
  animation: geoRotate 28s linear infinite;
  pointer-events: none;
  z-index: 0;
  border-radius: 4px
}

.bys .geoshape::before {
  content: '';
  position: absolute;
  top: 18px;
  left: 18px;
  right: 18px;
  bottom: 18px;
  border: 1px solid #d7324c1a;
  border-radius: 2px
}

@keyframes geoRotate {
  from {
    transform: rotate(0deg)
  }

  to {
    transform: rotate(360deg)
  }
}

.bys .titlesec {
  position: relative;
  z-index: 1;
  padding: 80px 0
}

.bys .titlesec .pagewrap {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 40px;
  align-items: start
}

.bys .titletext {
  padding-right: 24px
}

.bys .titletext h1 {
  font-size: 52px;
  line-height: 1.2;
  letter-spacing: .01em;
  color: #1b1b1b;
  font-weight: 800;
  text-transform: uppercase;
  margin: 0 0 24px
}

.bys .titletext h1 .punct {
  color: #D7324C
}

.bys .titletext .tagline {
  font-size: 21px;
  line-height: 1.6;
  color: #3a3a3a;
  margin: 0 0 24px;
  letter-spacing: .01em
}

.bys .titletext .bodytxt {
  font-size: 16px;
  line-height: 1.9;
  color: #4a4a4a;
  margin: 0 0 24px;
  letter-spacing: .02em
}

.bys .titletext .bodytxt:last-child {
  margin-bottom: 0
}

.bys .patternrow {
  display: flex;
  flex-direction: row;
  gap: 6px;
  margin-bottom: 24px;
  align-items: center
}

.bys .patdot {
  width: 6px;
  height: 6px;
  background: #D7324C;
  border-radius: 50%;
  opacity: .35
}

.bys .patdot.alt {
  background: #A8BB49;
  opacity: .45
}

.bys .patdot.sm {
  width: 4px;
  height: 4px;
  opacity: .2
}

.bys .imgcard {
  position: relative;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 4px 14px 0 #d7324c1c 0 1px 2px 0 #d7324c12;
  border: 1.5px solid #d7324c21;
  background: #f3f2ee;
  transition: box-shadow .65s ease-out
}

.bys .imgcard:hover {
  box-shadow: 0 12px 60px 0 #d7324c1c 0 4px 14px 0 #d7324c1c
}

.bys .imgcard img {
  display: block;
  width: 100%;
  height: 320px;
  object-fit: cover;
  filter: brightness(0.88);
  transition: filter .75s ease-out
}

.bys .imgcard:hover img {
  filter: brightness(1.04)
}

.bys .imgoverlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 55%;
  background: linear-gradient(to top, #1b1b1bb8 0%, transparent 100%);
  pointer-events: none
}

.bys .imglabel {
  position: absolute;
  bottom: 24px;
  left: 24px;
  right: 24px;
  font-size: 16px;
  line-height: 1.6;
  color: #fff;
  letter-spacing: .02em;
  font-weight: 600
}

.bys .divider1 {
  height: 2px;
  background: linear-gradient(to right, #D7324C 0%, #D7324C 68%, transparent 68%);
  margin: 0;
  position: relative;
  z-index: 1
}

.bys .readysec {
  position: relative;
  z-index: 1;
  background: #E9E7DF;
  padding: 80px 0
}

.bys .readysec::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='1' cy='1' r='1' fill='%23A8BB49' fill-opacity='0.09'/%3E%3C/svg%3E");
  background-size: 40px 40px;
  pointer-events: none
}

.bys .readysec .pagewrap {
  display: grid;
  grid-template-columns: 340px 1fr;
  gap: 40px;
  align-items: start;
  position: relative
}

.bys .sidebar {
  display: flex;
  flex-direction: column;
  gap: 24px;
  position: sticky;
  top: 40px
}

.bys .sideitem {
  display: flex;
  flex-direction: row;
  gap: 12px;
  align-items: flex-start;
  padding: 12px;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 1px 2px 0 #d7324c12;
  transition: box-shadow .55s ease-out, transform .55s ease-out
}

.bys .sideitem:hover {
  box-shadow: 0 4px 14px 0 #d7324c1c;
  transform: translateY(-2px)
}

.bys .sideicon {
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: linear-gradient(97deg, #d7324c1a 0%, #a8bb4914 100%)
}

.bys .sidelabel {
  font-size: 16px;
  line-height: 1.6;
  color: #2a2a2a;
  font-weight: 700;
  letter-spacing: .01em;
  margin: 0 0 6px
}

.bys .sidedesc {
  font-size: 16px;
  line-height: 1.6;
  color: #555;
  margin: 0;
  letter-spacing: .01em
}

.bys .readymain {
  display: flex;
  flex-direction: column;
  gap: 40px
}

.bys .readymain h2 {
  font-size: 37px;
  line-height: 1.2;
  color: #1b1b1b;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .01em;
  margin: 0 0 24px
}

.bys .readymain h3 {
  font-size: 21px;
  line-height: 1.6;
  color: #2a2a2a;
  font-weight: 700;
  letter-spacing: .01em;
  margin: 0 0 12px
}

.bys .checklist {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column
}

.bys .checklist li {
  font-size: 16px;
  line-height: 1.9;
  color: #3a3a3a;
  letter-spacing: .01em;
  padding: 12px 0;
  border-bottom: 1px solid #a8bb4959;
  display: flex;
  flex-direction: row;
  gap: 12px;
  align-items: flex-start
}

.bys .checklist li:last-child {
  border-bottom: none
}

.bys .checkmark {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  margin-top: 3px;
  display: flex;
  align-items: center;
  justify-content: center
}

.bys .checkmark svg {
  display: block
}

.bys .numaccent {
  color: #D7324C;
  font-weight: 800
}

.bys .readyblock {
  background: #fff;
  border-radius: 8px;
  padding: 40px;
  box-shadow: 0 1px 2px 0 #d7324c12 0 4px 14px 0 #d7324c12
}

.bys .divider2 {
  height: 2px;
  background: linear-gradient(to right, transparent 0%, #A8BB49 32%, #A8BB49 100%);
  margin: 0;
  position: relative;
  z-index: 1
}

.bys .statsec {
  position: relative;
  z-index: 1;
  padding: 80px 0;
  background: #fff
}

.bys .statsec .pagewrap {
  display: flex;
  flex-direction: column;
  gap: 40px
}

.bys .stattop {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: start
}

.bys .stattop h2 {
  font-size: 37px;
  line-height: 1.2;
  color: #1b1b1b;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .01em;
  margin: 0 0 24px
}

.bys .stattop .bodytxt {
  font-size: 16px;
  line-height: 1.9;
  color: #4a4a4a;
  margin: 0 0 24px;
  letter-spacing: .01em
}

.bys .stattop .bodytxt:last-child {
  margin-bottom: 0
}

.bys .herostat {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  background: linear-gradient(97deg, #d7324c0f 0%, #a8bb490f 100%);
  border-radius: 8px;
  padding: 40px;
  box-shadow: 0 4px 14px 0 #d7324c1c;
  position: relative;
  overflow: hidden
}

.bys .herostat::after {
  content: '';
  position: absolute;
  top: -40px;
  right: -40px;
  width: 160px;
  height: 160px;
  border: 2px solid #d7324c1a;
  border-radius: 50%;
  pointer-events: none
}

.bys .herostatnum {
  font-size: 68px;
  line-height: 1.2;
  font-weight: 900;
  color: #D7324C;
  letter-spacing: .01em;
  margin: 0 0 6px
}

.bys .herostatunit {
  font-size: 21px;
  line-height: 1.6;
  color: #2a2a2a;
  font-weight: 700;
  letter-spacing: .01em;
  margin: 0 0 12px
}

.bys .herostatdesc {
  font-size: 16px;
  line-height: 1.9;
  color: #555;
  margin: 0;
  letter-spacing: .01em
}

.bys .statrow {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px
}

.bys .statcard {
  background: #fff;
  border-radius: 8px;
  padding: 24px;
  box-shadow: 0 1px 2px 0 #a8bb4912 0 4px 14px 0 #a8bb491c;
  transition: transform .65s ease-out, box-shadow .65s ease-out;
  position: relative
}

.bys .statcard::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  border-radius: 8px 8px 0 0;
  background: linear-gradient(97deg, #D7324C 0%, #A8BB49 100%);
  opacity: .5;
  transition: opacity .55s ease-out
}

.bys .statcard:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 60px 0 #a8bb491c 0 4px 14px 0 #a8bb491c
}

.bys .statcard:hover::before {
  opacity: 1
}

.bys .statnum {
  font-size: 37px;
  line-height: 1.2;
  font-weight: 900;
  color: #2a2a2a;
  letter-spacing: .01em;
  margin: 0 0 6px
}

.bys .statnum .numaccent {
  font-size: 37px
}

.bys .statlabel {
  font-size: 16px;
  line-height: 1.6;
  color: #666;
  margin: 0;
  letter-spacing: .01em
}

.bys .circrow {
  display: flex;
  flex-direction: row;
  gap: 24px;
  align-items: center;
  flex-wrap: wrap
}

.bys .circitem {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px
}

.bys .circindicator {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0
}

.bys .circval {
  font-size: 16px;
  line-height: 1.2;
  font-weight: 800;
  color: #1b1b1b;
  letter-spacing: .01em;
  position: relative;
  z-index: 1
}

.bys .circlabel {
  font-size: 16px;
  line-height: 1.6;
  color: #555;
  text-align: center;
  letter-spacing: .01em;
  max-width: 80px
}

.bys .beforeafter {
  display: flex;
  flex-direction: row;
  gap: 24px;
  align-items: stretch
}

.bys .bablock {
  flex: 1;
  border-radius: 8px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 12px
}

.bys .bablock.before {
  background: #d7324c0d;
  box-shadow: inset 0 0 0 1.5px #d7324c26
}

.bys .bablock.after {
  background: #a8bb4912;
  box-shadow: inset 0 0 0 1.5px #a8bb4940
}

.bys .balabel {
  font-size: 16px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: .02em;
  text-transform: uppercase;
  margin: 0
}

.bys .bablock.before .balabel {
  color: #D7324C
}

.bys .bablock.after .balabel {
  color: #7a9c20
}

.bys .batxt {
  font-size: 16px;
  line-height: 1.9;
  color: #3a3a3a;
  margin: 0;
  letter-spacing: .01em
}

.bys .basep {
  width: 2px;
  background: linear-gradient(to bottom, transparent, #D7324C 30%, #A8BB49 70%, transparent);
  border-radius: 2px;
  flex-shrink: 0;
  align-self: stretch
}

.bys .bottomrow {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: start
}

.bys .bottomrow h3 {
  font-size: 21px;
  line-height: 1.6;
  color: #2a2a2a;
  font-weight: 700;
  letter-spacing: .01em;
  margin: 0 0 12px
}

.bys .bottomrow .bodytxt {
  font-size: 16px;
  line-height: 1.9;
  color: #4a4a4a;
  margin: 0 0 12px;
  letter-spacing: .01em
}

.bys .bottomrow .bodytxt:last-child {
  margin-bottom: 0
}

.bys .ctabtn {
  display: inline-block;
  padding: 12px 40px;
  font-size: 16px;
  line-height: 1.6;
  font-weight: 700;
  letter-spacing: .02em;
  color: #D7324C;
  background: transparent;
  border: 2px solid #D7324C;
  border-radius: 4px;
  cursor: pointer;
  text-decoration: none;
  transition: background .7s ease-out, color .7s ease-out, box-shadow .55s ease-out;
  position: relative;
  overflow: hidden
}

.bys .ctabtn:hover {
  background: #D7324C;
  color: #fff;
  box-shadow: 0 4px 14px 0 #d7324c1c
}

.bys .ctabtn:focus {
  outline: 2px solid #D7324C;
  outline-offset: 3px
}

.bys .ctabtn:active {
  transform: scale(0.98)
}

.bys .secbtn {
  display: inline-block;
  padding: 12px 40px;
  font-size: 16px;
  line-height: 1.6;
  font-weight: 700;
  letter-spacing: .02em;
  color: #7a9c20;
  background: transparent;
  border: 2px solid #A8BB49;
  border-radius: 4px;
  cursor: pointer;
  text-decoration: none;
  transition: background .75s ease-out, color .75s ease-out, box-shadow .6s ease-out;
  margin-left: 12px
}

.bys .secbtn:hover {
  background: #A8BB49;
  color: #fff;
  box-shadow: 0 4px 14px 0 #a8bb491c
}

.bys .secbtn:focus {
  outline: 2px solid #A8BB49;
  outline-offset: 3px
}

@media (max-width: 1024px) {
  .bys .titlesec .pagewrap {
    grid-template-columns: 1fr 300px;
    gap: 24px
  }

  .bys .readysec .pagewrap {
    grid-template-columns: 260px 1fr;
    gap: 24px
  }

  .bys .stattop {
    grid-template-columns: 1fr;
    gap: 24px
  }

  .bys .statrow {
    grid-template-columns: repeat(2, 1fr)
  }

  .bys .bottomrow {
    grid-template-columns: 1fr;
    gap: 24px
  }

  .bys .titletext h1 {
    font-size: 37px
  }
}

@media (max-width: 640px) {
  .bys .pagewrap {
    padding: 0 24px
  }

  .bys .titlesec .pagewrap {
    grid-template-columns: 1fr
  }

  .bys .titlesec {
    padding: 40px 0
  }

  .bys .titletext {
    padding-right: 0
  }

  .bys .titletext h1 {
    font-size: 37px
  }

  .bys .readysec .pagewrap {
    grid-template-columns: 1fr
  }

  .bys .sidebar {
    position: static;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px
  }

  .bys .readysec {
    padding: 40px 0
  }

  .bys .statsec {
    padding: 40px 0
  }

  .bys .statrow {
    grid-template-columns: 1fr 1fr;
    gap: 12px
  }

  .bys .herostatnum {
    font-size: 52px
  }

  .bys .beforeafter {
    flex-direction: column
  }

  .bys .basep {
    width: 100%;
    height: 2px;
    align-self: auto
  }

  .bys .circrow {
    gap: 12px
  }

  .bys .secbtn {
    margin-left: 0;
    margin-top: 12px;
    display: block;
    text-align: center
  }

  .bys .ctabtn {
    display: block;
    text-align: center
  }
}

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

.frnt .pgwrap {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 24px
}

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

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

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

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

.frnt .titlesec {
  background: #E9E7DF;
  position: relative
}

.frnt .titlegrid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 480px;
  max-width: 1280px;
  margin: 0 auto
}

.frnt .titletext {
  padding: 80px 40px 80px 24px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative
}

.frnt .titletext::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 24px;
  right: 0;
  height: 1px;
  background: linear-gradient(97deg, #D7324C 0%, transparent 100%)
}

.frnt .patternrow {
  display: flex;
  flex-direction: row;
  gap: 12px;
  margin-bottom: 24px
}

.frnt .patdot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  border: 1px solid #D7324C;
  flex-shrink: 0
}

.frnt .patdot.filled {
  background: #A8BB49;
  border-color: #A8BB49
}

.frnt .titleh1 {
  font-size: 52px;
  line-height: 1.2;
  letter-spacing: .01em;
  color: #1b1b1b;
  margin: 0 0 24px;
  text-transform: uppercase;
  font-weight: 800
}

.frnt .titleh1 .accentword {
  color: #D7324C;
  font-style: italic;
  text-transform: none
}

.frnt .titledesc {
  font-size: 16px;
  line-height: 1.6;
  color: #3a3a3a;
  margin: 0 0 24px;
  max-width: 420px
}

.frnt .titleactions {
  display: flex;
  flex-direction: row;
  gap: 12px;
  flex-wrap: wrap
}

.frnt .btnprimary {
  display: inline-block;
  padding: 12px 24px;
  border: 2px solid #D7324C;
  border-radius: 4px;
  color: #D7324C;
  font-size: 16px;
  letter-spacing: .02em;
  text-decoration: none;
  background: transparent;
  cursor: pointer;
  transition: background .65s ease-out, color .65s ease-out;
  position: relative;
  overflow: hidden
}

.frnt .btnprimary:hover {
  background: #D7324C;
  color: #fff
}

.frnt .btnsec {
  display: inline-block;
  padding: 12px 24px;
  border: 2px solid #3a3a3a;
  border-radius: 4px;
  color: #3a3a3a;
  font-size: 16px;
  letter-spacing: .02em;
  text-decoration: none;
  background: transparent;
  cursor: pointer;
  transition: background .75s ease-out, color .75s ease-out
}

.frnt .btnsec:hover {
  background: #3a3a3a;
  color: #E9E7DF
}

.frnt .titleimgwrap {
  position: relative;
  overflow: hidden
}

.frnt .titleimgwrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: sepia(20%) saturate(110%) brightness(0.95);
  animation: wipein .85s ease-out both
}

.frnt .titleimgwrap::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(97deg, #E9E7DF 0%, transparent 30%, #d7324c1f 100%);
  pointer-events: none
}

.frnt .whosec {
  background: #fff;
  padding: 80px 0;
  position: relative
}

.frnt .whosec::before {
  content: '';
  display: block;
  height: 2px;
  background: linear-gradient(97deg, transparent 0%, #A8BB49 40%, transparent 100%);
  margin-bottom: 80px
}

.frnt .whoinner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 24px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: start
}

.frnt .wholeft {
  position: relative
}

.frnt .whoimg {
  width: 100%;
  height: 420px;
  object-fit: cover;
  border-radius: 8px;
  border: 1px solid #a8bb494d;
  display: block;
  box-shadow: 0 4px 14px 0 #a8bb491c;
  animation: wipeinUp .75s ease-out both
}

.frnt .whoimg::after {
  content: ''
}

.frnt .imgfade {
  position: relative;
  overflow: hidden;
  border-radius: 8px
}

.frnt .imgfade::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 80px;
  background: linear-gradient(to top, #fff 0%, transparent 100%);
  pointer-events: none
}

.frnt .whoright {
  padding: 12px 0
}

.frnt .seclabel {
  font-size: 16px;
  letter-spacing: .02em;
  color: #A8BB49;
  text-transform: uppercase;
  font-weight: 700;
  margin: 0 0 12px
}

.frnt .whoh2 {
  font-size: 37px;
  line-height: 1.2;
  color: #1b1b1b;
  margin: 0 0 24px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .01em
}

.frnt .whointro {
  font-size: 21px;
  line-height: 1.6;
  color: #2a2a2a;
  margin: 0 0 24px
}

.frnt .wholist {
  list-style: none;
  padding: 0;
  margin: 0 0 24px
}

.frnt .wholist li {
  font-size: 16px;
  line-height: 1.6;
  color: #3a3a3a;
  padding: 12px 0;
  border-bottom: 1px solid #a8bb494d;
  letter-spacing: .01em
}

.frnt .wholist li:first-child {
  border-top: 1px solid #a8bb494d
}

.frnt .wholist li .num {
  color: #D7324C;
  font-weight: 700
}

.frnt .whonote {
  font-size: 16px;
  line-height: 1.6;
  color: #5a5a5a;
  margin: 0
}

.frnt .appsec {
  background: #E9E7DF;
  padding: 80px 0;
  position: relative
}

.frnt .appinner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 24px
}

.frnt .apptop {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 80px;
  margin-bottom: 40px;
  align-items: start
}

.frnt .apph2 {
  font-size: 37px;
  line-height: 1.2;
  color: #1b1b1b;
  margin: 0;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .01em
}

.frnt .appdesc {
  font-size: 21px;
  line-height: 1.6;
  color: #2a2a2a;
  margin: 0 0 24px
}

.frnt .appbody {
  font-size: 16px;
  line-height: 1.9;
  color: #3a3a3a;
  margin: 0
}

.frnt .appcols {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 40px
}

.frnt .appcol {
  padding: 24px;
  border-radius: 8px;
  position: relative
}

.frnt .appcol.colone {
  background: #D7324C;
  box-shadow: 0 4px 14px 0 #d7324c1c
}

.frnt .appcol.coltwo {
  background: #1b1b1b;
  box-shadow: 0 4px 14px 0 #d7324c12
}

.frnt .appcol.colthree {
  background: #A8BB49;
  box-shadow: 0 4px 14px 0 #a8bb491c
}

.frnt .appcol.colone .colh {
  color: #fff
}

.frnt .appcol.colone .colp {
  color: #ffffffe0
}

.frnt .appcol.coltwo .colh {
  color: #E9E7DF
}

.frnt .appcol.coltwo .colp {
  color: #e9e7dfcc
}

.frnt .appcol.colthree .colh {
  color: #1b1b1b
}

.frnt .appcol.colthree .colp {
  color: #2a2a2a
}

.frnt .colnum {
  font-size: 37px;
  font-weight: 800;
  line-height: 1.2;
  margin: 0 0 12px;
  display: flex;
  align-items: center;
  gap: 12px
}

.frnt .numring {
  width: 40px;
  height: 40px;
  flex-shrink: 0
}

.frnt .colh {
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .02em;
  text-transform: uppercase;
  margin: 0 0 12px
}

.frnt .colp {
  font-size: 16px;
  line-height: 1.6;
  margin: 0
}

.frnt .outsec {
  background: #fff;
  padding: 80px 0
}

.frnt .outinner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 24px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center
}

.frnt .outright {
  position: relative
}

.frnt .outimgwrap {
  position: relative;
  overflow: hidden;
  border-radius: 8px
}

.frnt .outimgwrap img {
  width: 100%;
  height: 460px;
  object-fit: cover;
  border: 1px solid #d7324c33;
  border-radius: 8px;
  display: block
}

.frnt .outimgwrap::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(97deg, #d7324c14 0%, transparent 60%);
  pointer-events: none;
  z-index: 1;
  border-radius: 8px
}

.frnt .outh2 {
  font-size: 37px;
  line-height: 1.2;
  color: #1b1b1b;
  margin: 0 0 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .01em
}

.frnt .outintro {
  font-size: 21px;
  line-height: 1.6;
  color: #2a2a2a;
  margin: 0 0 24px
}

.frnt .outitems {
  display: flex;
  flex-direction: column;
  gap: 0
}

.frnt .outitem {
  display: flex;
  flex-direction: row;
  gap: 24px;
  padding: 24px 0;
  border-bottom: 1px solid #a8bb4940;
  align-items: flex-start
}

.frnt .outitem:first-child {
  border-top: 1px solid #a8bb4940
}

.frnt .outnum {
  font-size: 37px;
  font-weight: 800;
  color: #D7324C;
  line-height: 1.2;
  flex-shrink: 0;
  width: 40px
}

.frnt .outtext {
  flex: 1
}

.frnt .outtext strong {
  display: block;
  font-size: 16px;
  font-weight: 700;
  color: #1b1b1b;
  letter-spacing: .01em;
  margin-bottom: 6px
}

.frnt .outtext span {
  font-size: 16px;
  line-height: 1.6;
  color: #4a4a4a
}

.frnt .teamsec {
  background: linear-gradient(97deg, #1b1b1b 0%, #2d2d2d 100%);
  padding: 80px 0;
  position: relative;
  overflow: hidden
}

.frnt .teamsec::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(97deg, #D7324C 0%, #A8BB49 100%)
}

.frnt .teaminner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 24px
}

.frnt .teamtop {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  margin-bottom: 40px;
  align-items: end
}

.frnt .teamh2 {
  font-size: 37px;
  line-height: 1.2;
  color: #E9E7DF;
  margin: 0;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .01em
}

.frnt .teamdesc {
  font-size: 16px;
  line-height: 1.9;
  color: #e9e7dfbf;
  margin: 0
}

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

.frnt .teamcard {
  background: #e9e7df0d;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid #e9e7df1a;
  display: grid;
  grid-template-columns: 160px 1fr;
  box-shadow: 0 1px 2px 0 #d7324c12;
  transition: box-shadow .65s ease-out, border-color .65s ease-out
}

.frnt .teamcard:hover {
  box-shadow: 0 12px 60px 0 #d7324c1c;
  border-color: #d7324c59
}

.frnt .tcimgwrap {
  overflow: hidden
}

.frnt .tcimgwrap img {
  width: 160px;
  height: 100%;
  object-fit: cover;
  display: block;
  min-height: 200px
}

.frnt .tcbody {
  padding: 24px
}

.frnt .tcname {
  font-size: 21px;
  font-weight: 700;
  color: #E9E7DF;
  margin: 0 0 6px;
  letter-spacing: .01em
}

.frnt .tcrole {
  font-size: 16px;
  color: #A8BB49;
  font-weight: 600;
  letter-spacing: .02em;
  margin: 0 0 12px
}

.frnt .tcbio {
  font-size: 16px;
  line-height: 1.6;
  color: #e9e7dfb8;
  margin: 0
}

.frnt .cursec {
  background: #E9E7DF;
  padding: 80px 0;
  position: relative
}

.frnt .cursec::after {
  content: '';
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(97deg, transparent 0%, #D7324C 50%, transparent 100%)
}

.frnt .curinner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 24px
}

.frnt .curtop {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 80px;
  margin-bottom: 40px;
  align-items: start
}

.frnt .curh2 {
  font-size: 37px;
  line-height: 1.2;
  color: #1b1b1b;
  margin: 0 0 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .01em
}

.frnt .curintro {
  font-size: 21px;
  line-height: 1.6;
  color: #2a2a2a;
  margin: 0 0 24px
}

.frnt .curbody {
  font-size: 16px;
  line-height: 1.9;
  color: #3a3a3a;
  margin: 0
}

.frnt .curside {
  padding-top: 12px
}

.frnt .curstat {
  padding: 24px;
  background: #fff;
  border-radius: 8px;
  margin-bottom: 24px;
  box-shadow: 0 1px 2px 0 #d7324c12
}

.frnt .curstat:last-child {
  margin-bottom: 0
}

.frnt .csnum {
  font-size: 52px;
  font-weight: 800;
  color: #D7324C;
  line-height: 1.2;
  letter-spacing: -.01em
}

.frnt .cslabel {
  font-size: 16px;
  color: #3a3a3a;
  line-height: 1.6;
  margin-top: 6px
}

.frnt .curimg {
  width: 100%;
  height: 320px;
  object-fit: cover;
  border-radius: 8px;
  border: 1px solid #d7324c26;
  display: block;
  box-shadow: 0 4px 14px 0 #d7324c1c
}

.frnt .curimgwrap {
  position: relative;
  overflow: hidden;
  border-radius: 8px;
  margin-top: 40px
}

.frnt .curimgwrap::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(97deg, #a8bb491f 0%, transparent 50%);
  pointer-events: none;
  z-index: 1
}

.frnt .wavetop {
  width: 100%;
  overflow: hidden;
  line-height: 0
}

.frnt .wavebottom {
  width: 100%;
  overflow: hidden;
  line-height: 0
}

.frnt .btnprimary:focus-visible,
.frnt .btnsec:focus-visible {
  outline: 3px solid #D7324C;
  outline-offset: 3px
}

.frnt .teamcard:focus-within {
  outline: 2px solid #A8BB49;
  outline-offset: 2px
}

@media (max-width: 1024px) {
  .frnt .titlegrid {
    grid-template-columns: 1fr 1fr
  }

  .frnt .titleh1 {
    font-size: 37px
  }

  .frnt .whoinner {
    grid-template-columns: 1fr;
    gap: 40px
  }

  .frnt .whoimg {
    height: 280px
  }

  .frnt .apptop {
    grid-template-columns: 1fr;
    gap: 24px
  }

  .frnt .appcols {
    grid-template-columns: 1fr
  }

  .frnt .outinner {
    grid-template-columns: 1fr;
    gap: 40px
  }

  .frnt .outimgwrap img {
    height: 300px
  }

  .frnt .teamgrid {
    grid-template-columns: 1fr
  }

  .frnt .teamtop {
    grid-template-columns: 1fr;
    gap: 24px
  }

  .frnt .curtop {
    grid-template-columns: 1fr;
    gap: 40px
  }

  .frnt .teamcard {
    grid-template-columns: 140px 1fr
  }
}

@media (max-width: 640px) {
  .frnt .titlegrid {
    grid-template-columns: 1fr
  }

  .frnt .titleimgwrap {
    height: 240px
  }

  .frnt .titletext {
    padding: 40px 24px
  }

  .frnt .titleh1 {
    font-size: 37px
  }

  .frnt .whosec {
    padding: 40px 0
  }

  .frnt .whosec::before {
    margin-bottom: 40px
  }

  .frnt .appsec,
  .frnt .outsec,
  .frnt .teamsec,
  .frnt .cursec {
    padding: 40px 0
  }

  .frnt .teamcard {
    grid-template-columns: 1fr
  }

  .frnt .tcimgwrap img {
    width: 100%;
    height: 200px;
    min-height: unset
  }

  .frnt .appcols {
    gap: 12px
  }

  .frnt .titleactions {
    flex-direction: column
  }

  .frnt .cursec::after {
    display: none
  }
}

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

.lrnprog .pgrid {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 40px
}

.lrnprog .titstrip {
  display: grid;
  grid-template-columns: 220px 1fr;
  min-height: 520px;
  background: #E9E7DF;
  position: relative
}

.lrnprog .stripimg {
  position: relative;
  overflow: hidden
}

.lrnprog .stripimg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .9s ease-out
}

.lrnprog .stripimg:hover img {
  transform: scale(1.04)
}

.lrnprog .stripoverlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(97deg, #d7324c61 0%, transparent 70%);
  pointer-events: none
}

.lrnprog .titext {
  padding: 80px 80px 80px 40px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 24px;
  position: relative
}

.lrnprog .titext::before {
  content: '';
  position: absolute;
  top: 40px;
  left: 0;
  width: 3px;
  height: 60px;
  background: #D7324C;
  border-radius: 2px
}

.lrnprog .tisuper {
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: .02em;
  color: #D7324C;
  font-weight: 600;
  text-transform: uppercase
}

.lrnprog .tihead {
  font-size: 68px;
  line-height: 1.2;
  letter-spacing: .01em;
  font-weight: 800;
  color: #1b1b1b;
  text-transform: uppercase;
  margin: 0
}

.lrnprog .tihead span {
  color: #D7324C
}

.lrnprog .tisub {
  font-size: 21px;
  line-height: 1.6;
  color: #3a3a3a;
  font-weight: 400;
  margin: 0;
  max-width: 560px
}

.lrnprog .tideco {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 12px
}

.lrnprog .tideco svg {
  flex-shrink: 0
}

.lrnprog .tidecoline {
  flex: 1;
  height: 1px;
  background: linear-gradient(97deg, #A8BB49 0%, transparent 100%);
  max-width: 220px
}

.lrnprog .tidecotxt {
  font-size: 16px;
  color: #6a6a6a;
  line-height: 1.6
}

.lrnprog .cardgrid {
  padding: 80px 0;
  background: #fff
}

.lrnprog .cardgrid .pgrid {
  display: flex;
  flex-direction: column;
  gap: 40px
}

.lrnprog .gridhead {
  display: flex;
  flex-direction: column;
  gap: 12px
}

.lrnprog .gridhead h2 {
  font-size: 37px;
  line-height: 1.2;
  font-weight: 700;
  color: #1b1b1b;
  letter-spacing: .01em;
  text-transform: uppercase;
  margin: 0
}

.lrnprog .gridhead p {
  font-size: 16px;
  line-height: 1.6;
  color: #4a4a4a;
  margin: 0;
  max-width: 600px
}

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

.lrnprog .card {
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 1px 2px 0 #d7324c12 0 4px 14px 0 #d7324c1c;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform .7s ease-out, box-shadow .7s ease-out;
  position: relative
}

.lrnprog .card:hover {
  transform: translateY(-4px) scale(1.01);
  box-shadow: 0 4px 14px 0 #d7324c1c 0 12px 60px 0 #d7324c1c
}

.lrnprog .cardimgwrap {
  position: relative;
  height: 220px;
  overflow: hidden
}

.lrnprog .cardimgwrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  outline: 1px solid #d7324c1a;
  outline-offset: -1px;
  transition: transform .85s ease-out
}

.lrnprog .card:hover .cardimgwrap img {
  transform: scale(1.06)
}

.lrnprog .cardtag {
  position: absolute;
  top: 12px;
  left: 12px;
  background: #D7324C;
  color: #fff;
  font-size: 16px;
  font-weight: 600;
  padding: 6px 12px;
  border-radius: 4px;
  letter-spacing: .01em;
  line-height: 1.2
}

.lrnprog .cardbody {
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex: 1
}

.lrnprog .cardtitle {
  font-size: 21px;
  line-height: 1.2;
  font-weight: 700;
  color: #1b1b1b;
  letter-spacing: .01em;
  margin: 0
}

.lrnprog .carddesc {
  font-size: 16px;
  line-height: 1.6;
  color: #4a4a4a;
  margin: 0
}

.lrnprog .cardmeta {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 12px;
  padding-top: 6px
}

.lrnprog .metaitem {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 6px;
  font-size: 16px;
  color: #6a6a6a;
  line-height: 1.6
}

.lrnprog .metaitem svg {
  flex-shrink: 0
}

.lrnprog .cardfooter {
  padding: 12px 24px 24px;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 12px
}

.lrnprog .cardprice {
  font-size: 21px;
  font-weight: 800;
  color: #D7324C;
  letter-spacing: .01em;
  line-height: 1.2
}

.lrnprog .cardlink {
  display: inline-block;
  font-size: 16px;
  font-weight: 600;
  color: #1b1b1b;
  text-decoration: none;
  border: 1.5px solid #1b1b1b;
  border-radius: 4px;
  padding: 6px 24px;
  letter-spacing: .01em;
  line-height: 1.6;
  transition: background .65s ease-out, color .65s ease-out, border-color .65s ease-out;
  position: relative;
  overflow: hidden
}

.lrnprog .cardlink::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  width: 0;
  height: 100%;
  background: #D7324C;
  border-radius: 4px;
  transition: width .65s ease-out;
  z-index: 0
}

.lrnprog .cardlink:hover::before {
  width: 100%
}

.lrnprog .cardlink:hover {
  color: #fff;
  border-color: #D7324C
}

.lrnprog .cardlink span {
  position: relative;
  z-index: 1
}

.lrnprog .cardlink:focus {
  outline: 2px solid #D7324C;
  outline-offset: 2px
}

.lrnprog .statsband {
  background: #1b1b1b;
  position: relative;
  overflow: hidden;
  padding: 80px 0
}

.lrnprog .statsband::before {
  content: '';
  position: absolute;
  top: -60px;
  right: -80px;
  width: 400px;
  height: 400px;
  background: linear-gradient(97deg, #d7324c2e 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
  animation: driftbg 7s ease-in-out infinite alternate
}

@keyframes driftbg {
  from {
    transform: translate(0, 0)
  }

  to {
    transform: translate(-40px, 30px)
  }
}

.lrnprog .statsband .pgrid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  gap: 24px
}

.lrnprog .statitem {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 24px;
  border-radius: 8px;
  box-shadow: inset 0 1px 6px 0 #a8bb491f;
  border: 1px solid #ffffff12;
  transition: box-shadow .75s ease-out
}

.lrnprog .statitem:hover {
  box-shadow: inset 0 1px 6px 0 #a8bb4938 0 4px 14px 0 #d7324c1c
}

.lrnprog .statnum {
  font-size: 52px;
  line-height: 1.2;
  font-weight: 800;
  color: #A8BB49;
  letter-spacing: .01em
}

.lrnprog .statnum em {
  font-style: normal;
  color: #D7324C
}

.lrnprog .statlabel {
  font-size: 16px;
  font-weight: 600;
  color: #E9E7DF;
  letter-spacing: .02em;
  line-height: 1.6;
  text-transform: uppercase
}

.lrnprog .statnarr {
  font-size: 16px;
  color: #e9e7dfa6;
  line-height: 1.6;
  margin: 0
}

.lrnprog .splitband {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 480px
}

.lrnprog .splitdark {
  background: #E9E7DF;
  padding: 80px 40px 80px 80px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 24px
}

.lrnprog .splitlight {
  background: #fff;
  padding: 80px 80px 80px 40px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 24px
}

.lrnprog .splith {
  font-size: 37px;
  line-height: 1.2;
  font-weight: 700;
  color: #1b1b1b;
  letter-spacing: .01em;
  text-transform: uppercase;
  margin: 0
}

.lrnprog .splitp {
  font-size: 16px;
  line-height: 1.9;
  color: #3a3a3a;
  margin: 0
}

.lrnprog .splitp.big {
  font-size: 21px;
  line-height: 1.6;
  color: #1b1b1b;
  font-weight: 500
}

.lrnprog .splitlist {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 6px
}

.lrnprog .splitlist li {
  font-size: 16px;
  line-height: 1.6;
  color: #3a3a3a;
  padding-bottom: 6px;
  border-bottom: 1px solid #a8bb494d;
  letter-spacing: .01em
}

.lrnprog .splitlist li:last-child {
  border-bottom: none
}

.lrnprog .splitcta {
  display: inline-block;
  font-size: 16px;
  font-weight: 700;
  color: #fff;
  background: #D7324C;
  border: 2px solid #D7324C;
  border-radius: 4px;
  padding: 12px 40px;
  text-decoration: none;
  letter-spacing: .01em;
  line-height: 1.6;
  align-self: flex-start;
  transition: background .7s ease-out, color .7s ease-out
}

.lrnprog .splitcta:hover {
  background: transparent;
  color: #D7324C
}

.lrnprog .splitcta:focus {
  outline: 2px solid #D7324C;
  outline-offset: 3px
}

.lrnprog .imgwrap2 {
  position: relative;
  overflow: hidden;
  height: 340px;
  border-radius: 8px;
  outline: 1px solid #d7324c21;
  outline-offset: -1px
}

.lrnprog .imgwrap2 img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .85s ease-out
}

.lrnprog .imgwrap2:hover img {
  transform: scale(1.05)
}

@media (max-width: 1024px) {
  .lrnprog .titstrip {
    grid-template-columns: 160px 1fr
  }

  .lrnprog .titext {
    padding: 40px 40px 40px 24px
  }

  .lrnprog .tihead {
    font-size: 52px
  }

  .lrnprog .cards {
    grid-template-columns: repeat(2, 1fr)
  }

  .lrnprog .statsband .pgrid {
    grid-template-columns: repeat(2, 1fr)
  }

  .lrnprog .splitband {
    grid-template-columns: 1fr
  }

  .lrnprog .splitdark {
    padding: 40px
  }

  .lrnprog .splitlight {
    padding: 40px
  }
}

@media (max-width: 640px) {
  .lrnprog .titstrip {
    grid-template-columns: 1fr
  }

  .lrnprog .stripimg {
    height: 220px
  }

  .lrnprog .titext {
    padding: 40px 24px
  }

  .lrnprog .tihead {
    font-size: 37px
  }

  .lrnprog .pgrid {
    padding: 0 24px
  }

  .lrnprog .cards {
    grid-template-columns: 1fr
  }

  .lrnprog .statsband .pgrid {
    grid-template-columns: 1fr 1fr;
    gap: 12px
  }

  .lrnprog .statnum {
    font-size: 37px
  }

  .lrnprog .cardgrid {
    padding: 40px 0
  }

  .lrnprog .statsband {
    padding: 40px 0
  }
}

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

.srvc .titblock {
  background: linear-gradient(97deg, #d7324c21 0%, #a8bb4917 40%, #e9e7df8c 80%, #fff0 100%);
  padding: 80px 24px;
  position: relative
}

.srvc .titblock::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: radial-gradient(circle at 18% 30%, #d7324c14 0%, transparent 55%), radial-gradient(circle at 78% 70%, #a8bb4912 0%, transparent 50%), radial-gradient(circle at 55% 15%, #e9e7df99 0%, transparent 45%);
  pointer-events: none
}

.srvc .titinner {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 80px;
  align-items: center;
  position: relative
}

.srvc .titlabel {
  font-size: 16px;
  letter-spacing: .02em;
  color: #D7324C;
  line-height: 1.6;
  padding-bottom: 12px;
  border-bottom: 2px solid #d7324c2e;
  margin-bottom: 24px
}

.srvc .titimg {
  position: relative
}

.srvc .titimg img {
  width: 100%;
  height: 420px;
  object-fit: cover;
  border-radius: 8px;
  display: block;
  outline: 1px solid #d7324c26;
  outline-offset: -1px;
  filter: brightness(1.04) contrast(1.05)
}

.srvc .tittext {
  padding: 40px 0 40px 12px;
  position: relative
}

.srvc .tittext::before {
  content: "\201C";
  position: absolute;
  top: -24px;
  right: 0;
  font-size: 200px;
  line-height: 1;
  color: #d7324c0f;
  pointer-events: none;
  font-weight: 700;
  overflow: hidden
}

.srvc .tittext h1 {
  font-size: 52px;
  line-height: 1.2;
  letter-spacing: .01em;
  color: #1b1b1b;
  margin: 0 0 24px;
  text-transform: uppercase;
  font-weight: 800
}

.srvc .tittext h1 span {
  color: #D7324C
}

.srvc .titdesc {
  font-size: 21px;
  line-height: 1.6;
  color: #3a3a3a;
  margin: 0 0 24px;
  letter-spacing: .01em
}

.srvc .titbody {
  font-size: 16px;
  line-height: 1.9;
  color: #4a4a4a;
  margin: 0;
  letter-spacing: .01em
}

.srvc .titedge {
  position: absolute;
  right: 0;
  top: 15%;
  bottom: 15%;
  width: 3px;
  background: linear-gradient(180deg, transparent, #A8BB49 40%, #D7324C 70%, transparent);
  border-radius: 2px
}

.srvc .offerdiv {
  padding: 80px 24px;
  background: #fff;
  position: relative
}

.srvc .offerdiv::after {
  content: "";
  display: block;
  height: 1px;
  background: linear-gradient(97deg, transparent, #a8bb494d 40%, #d7324c33 70%, transparent);
  margin-top: 80px;
  margin-left: -24px;
  margin-right: -24px
}

.srvc .offerinner {
  max-width: 1280px;
  margin: 0 auto
}

.srvc .seclabel {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 40px
}

.srvc .seclabel::before {
  content: "";
  display: block;
  width: 40px;
  height: 2px;
  background: #A8BB49;
  border-radius: 2px
}

.srvc .seclabel span {
  font-size: 16px;
  letter-spacing: .02em;
  color: #A8BB49;
  text-transform: uppercase;
  font-weight: 600
}

.srvc .seclabel::after {
  content: "";
  flex: 1;
  height: 1px;
  background: #a8bb4933
}

.srvc .offerhead {
  font-size: 37px;
  line-height: 1.2;
  color: #1b1b1b;
  letter-spacing: .01em;
  margin: 0 0 40px;
  font-weight: 700;
  text-transform: uppercase;
  max-width: 640px
}

.srvc .offergrid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 24px
}

.srvc .offercard {
  background: #fff;
  border-radius: 8px;
  padding: 40px 24px 24px;
  box-shadow: 0 4px 14px 0 #d7324c1c;
  position: relative;
  border-top: 3px solid #D7324C;
  transition: box-shadow .65s ease-out, transform .55s ease-out
}

.srvc .offercard:nth-child(2) {
  border-top-color: #A8BB49
}

.srvc .offercard:nth-child(3) {
  border-top-color: #D7324C
}

.srvc .offercard:hover {
  box-shadow: 0 12px 60px 0 #d7324c1c;
  transform: translateY(-4px)
}

.srvc .offercard h4 {
  font-size: 21px;
  line-height: 1.2;
  color: #1b1b1b;
  margin: 0 0 12px;
  font-weight: 700;
  letter-spacing: .01em
}

.srvc .offercard p {
  font-size: 16px;
  line-height: 1.9;
  color: #4a4a4a;
  margin: 0 0 24px;
  letter-spacing: .01em
}

.srvc .offertag {
  display: inline-block;
  font-size: 16px;
  color: #D7324C;
  border: 1px solid #d7324c4d;
  border-radius: 4px;
  padding: 6px 12px;
  letter-spacing: .01em
}

.srvc .offercard:nth-child(2) .offertag {
  color: #6a7c1e;
  border-color: #a8bb4966
}

.srvc .offerfeat {
  margin: 24px 0 0;
  padding: 0;
  list-style: none
}

.srvc .offerfeat li {
  font-size: 16px;
  line-height: 1.6;
  color: #3a3a3a;
  padding: 6px 0;
  border-bottom: 1px solid #a8bb492e;
  letter-spacing: .01em;
  display: flex;
  align-items: flex-start;
  gap: 12px
}

.srvc .offerfeat li::before {
  content: "";
  display: block;
  width: 6px;
  height: 6px;
  background: #A8BB49;
  border-radius: 2px;
  margin-top: 7px;
  flex-shrink: 0
}

.srvc .detaildiv {
  padding: 80px 24px;
  background: #e9e7df47;
  position: relative
}

.srvc .detailinner {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 80px;
  align-items: start
}

.srvc .detailtext h2 {
  font-size: 37px;
  line-height: 1.2;
  color: #1b1b1b;
  margin: 0 0 24px;
  font-weight: 700;
  letter-spacing: .01em;
  text-transform: uppercase
}

.srvc .detailtext h2 em {
  font-style: normal;
  color: #D7324C
}

.srvc .detaildesc {
  font-size: 21px;
  line-height: 1.6;
  color: #2e2e2e;
  margin: 0 0 24px;
  letter-spacing: .01em
}

.srvc .detailbody {
  font-size: 16px;
  line-height: 1.9;
  color: #4a4a4a;
  margin: 0 0 24px;
  letter-spacing: .01em
}

.srvc .catlist {
  margin: 40px 0 0;
  padding: 0;
  list-style: none
}

.srvc .catlist h5 {
  font-size: 16px;
  color: #D7324C;
  text-transform: uppercase;
  letter-spacing: .02em;
  margin: 0 0 12px;
  font-weight: 700
}

.srvc .catgroup {
  margin-bottom: 24px
}

.srvc .catgroup ul {
  margin: 0;
  padding: 0;
  list-style: none
}

.srvc .catgroup ul li {
  font-size: 16px;
  line-height: 1.6;
  color: #3a3a3a;
  padding: 6px 0;
  border-bottom: 1px solid #d7324c1f;
  letter-spacing: .01em
}

.srvc .metricpanel {
  background: #fff;
  border-radius: 8px;
  padding: 40px 24px;
  box-shadow: 0 1px 2px 0 #d7324c12 0 4px 14px 0 #d7324c1c;
  position: sticky;
  top: 24px
}

.srvc .metricpanel h5 {
  font-size: 16px;
  color: #6a7c1e;
  text-transform: uppercase;
  letter-spacing: .02em;
  margin: 0 0 24px;
  font-weight: 700
}

.srvc .metricitem {
  padding: 24px 0;
  border-bottom: 1px solid #a8bb4933
}

.srvc .metricitem:last-child {
  border-bottom: none
}

.srvc .metricnum {
  font-size: 52px;
  line-height: 1.2;
  color: #D7324C;
  font-weight: 800;
  letter-spacing: .01em;
  display: block
}

.srvc .metriclabel {
  font-size: 16px;
  line-height: 1.6;
  color: #4a4a4a;
  letter-spacing: .01em
}

.srvc .metricbar {
  height: 4px;
  background: #e9e7dfcc;
  border-radius: 2px;
  margin-top: 12px;
  overflow: hidden
}

.srvc .metricfill {
  height: 100%;
  border-radius: 2px;
  background: linear-gradient(97deg, #D7324C, #A8BB49);
  animation: fillbar 1.4s ease-out forwards;
  transform-origin: left
}

@keyframes fillbar {
  from {
    width: 0
  }

  to {
    width: var(--w)
  }
}

.srvc .dividerline {
  text-align: center;
  position: relative;
  padding: 0 24px;
  margin: 0
}

.srvc .dividerline::before {
  content: "";
  display: block;
  height: 1px;
  background: #d7324c2e;
  position: absolute;
  left: 24px;
  right: 24px;
  top: 50%
}

.srvc .dividerword {
  display: inline-block;
  background: #fff;
  padding: 0 12px;
  font-size: 16px;
  color: #d7324c80;
  letter-spacing: .02em;
  position: relative;
  font-style: italic
}

.srvc .processdiv {
  padding: 80px 24px;
  background: #fff;
  position: relative
}

.srvc .processdiv::before {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background: linear-gradient(180deg, transparent, #a8bb4966, transparent);
  pointer-events: none
}

.srvc .processinner {
  max-width: 1280px;
  margin: 0 auto
}

.srvc .processhead {
  font-size: 37px;
  line-height: 1.2;
  color: #1b1b1b;
  margin: 0 0 40px;
  font-weight: 700;
  letter-spacing: .01em;
  text-transform: uppercase;
  max-width: 680px
}

.srvc .processrow {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  margin-bottom: 40px;
  align-items: start
}

.srvc .processrow.flip {
  direction: ltr
}

.srvc .processtxt {
  padding: 40px;
  background: #e9e7df38;
  border-radius: 8px;
  position: relative
}

.srvc .processtxt::after {
  content: "";
  position: absolute;
  right: 0;
  top: 24px;
  bottom: 24px;
  width: 3px;
  background: #d7324c33;
  border-radius: 2px
}

.srvc .processrow:nth-child(odd) .processtxt::after {
  background: #a8bb494d
}

.srvc .stepnum {
  font-size: 68px;
  line-height: 1.2;
  color: #d7324c14;
  font-weight: 900;
  letter-spacing: .01em;
  display: block;
  margin-bottom: -12px
}

.srvc .processtxt h3 {
  font-size: 21px;
  line-height: 1.2;
  color: #1b1b1b;
  margin: 0 0 12px;
  font-weight: 700;
  letter-spacing: .01em
}

.srvc .processtxt p {
  font-size: 16px;
  line-height: 1.9;
  color: #4a4a4a;
  margin: 0;
  letter-spacing: .01em
}

.srvc .processvisual {
  display: flex;
  flex-direction: column;
  gap: 12px;
  justify-content: center;
  padding: 24px 0
}

.srvc .pvitem {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px;
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 1px 2px 0 #d7324c12;
  font-size: 16px;
  line-height: 1.6;
  color: #3a3a3a;
  letter-spacing: .01em;
  opacity: 0;
  animation: fadeup .7s ease-out forwards
}

.srvc .pvitem:nth-child(1) {
  animation-delay: .1s
}

.srvc .pvitem:nth-child(2) {
  animation-delay: .25s
}

.srvc .pvitem:nth-child(3) {
  animation-delay: .4s
}

.srvc .pvitem:nth-child(4) {
  animation-delay: .55s
}

@keyframes fadeup {
  from {
    opacity: 0;
    transform: translateY(16px)
  }

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

.srvc .pvdot {
  width: 10px;
  height: 10px;
  border-radius: 2px;
  background: #D7324C;
  flex-shrink: 0
}

.srvc .pvdot.green {
  background: #A8BB49
}

.srvc .processlink {
  display: inline-block;
  margin-top: 40px;
  font-size: 16px;
  color: #D7324C;
  text-decoration: none;
  border: 1px solid #d7324c59;
  border-radius: 4px;
  padding: 12px 24px;
  letter-spacing: .01em;
  transition: background .65s ease-out, color .55s ease-out, box-shadow .7s ease-out;
  position: relative;
  overflow: hidden
}

.srvc .processlink::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 0;
  background: #D7324C;
  transition: width .65s ease-out;
  z-index: 0
}

.srvc .processlink span {
  position: relative;
  z-index: 1
}

.srvc .processlink:hover::before {
  width: 100%
}

.srvc .processlink:hover {
  color: #fff;
  box-shadow: 0 4px 14px 0 #d7324c1c
}

.srvc .processlink:focus {
  outline: 2px solid #D7324C;
  outline-offset: 3px
}

@media (max-width: 1024px) {
  .srvc .titinner {
    grid-template-columns: 1fr;
    gap: 40px
  }

  .srvc .tittext h1 {
    font-size: 37px
  }

  .srvc .offergrid {
    grid-template-columns: 1fr 1fr
  }

  .srvc .detailinner {
    grid-template-columns: 1fr;
    gap: 40px
  }

  .srvc .metricpanel {
    position: static
  }

  .srvc .processrow {
    grid-template-columns: 1fr;
    gap: 24px
  }
}

@media (max-width: 640px) {

  .srvc .titblock,
  .srvc .offerdiv,
  .srvc .detaildiv,
  .srvc .processdiv {
    padding: 40px 24px
  }

  .srvc .tittext h1 {
    font-size: 37px
  }

  .srvc .offergrid {
    grid-template-columns: 1fr
  }

  .srvc .processhead {
    font-size: 21px
  }

  .srvc .offerhead {
    font-size: 21px
  }

  .srvc .tittext::before {
    font-size: 120px
  }
}

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

.ctus .pgwrap {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 40px
}

.ctus .divline {
  height: 1px;
  background: linear-gradient(97deg, #D7324C 0%, transparent 60%);
  border: none;
  margin: 0
}

.ctus .reachblock {
  padding: 80px 0 40px;
  background: #fff
}

.ctus .reachgrid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: start
}

.ctus .reachleft {
  display: flex;
  flex-direction: column;
  gap: 40px
}

.ctus .reachlabel {
  font-size: 16px;
  letter-spacing: .12em;
  color: #D7324C;
  text-transform: uppercase;
  font-weight: 600;
  line-height: 1.2
}

.ctus .reachhead {
  font-size: 52px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: .01em;
  color: #1b1b1b;
  text-transform: uppercase;
  margin: 0
}

.ctus .reachhead span {
  color: #D7324C
}

.ctus .reachdesc {
  font-size: 21px;
  line-height: 1.6;
  color: #3a3a3a;
  margin: 0
}

.ctus .reachdescb {
  font-size: 16px;
  line-height: 1.9;
  color: #4a4a4a;
  margin: 0
}

.ctus .infocards {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 12px
}

.ctus .infocard {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 24px;
  padding: 24px;
  border: 1px solid #E9E7DF;
  border-radius: 8px;
  background: #faf9f6;
  box-shadow: 0 1px 2px 0 #d7324c12;
  transition: box-shadow .55s ease-out, border-color .45s ease-out
}

.ctus .infocard:hover {
  box-shadow: 0 4px 14px 0 #d7324c1c;
  border-color: #D7324C
}

.ctus .icobox {
  width: 40px;
  height: 40px;
  border-radius: 8px;
  background: linear-gradient(97deg, #D7324C, #e85a70);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0
}

.ctus .icobox svg {
  width: 20px;
  height: 20px;
  fill: #fff
}

.ctus .infotxt {
  display: flex;
  flex-direction: column;
  gap: 6px
}

.ctus .infolabel {
  font-size: 16px;
  font-weight: 700;
  color: #1b1b1b;
  letter-spacing: .01em;
  line-height: 1.2
}

.ctus .infovalue {
  font-size: 16px;
  color: #4a4a4a;
  line-height: 1.6;
  text-decoration: none;
  transition: color .45s ease-out
}

.ctus .infovalue:hover {
  color: #D7324C
}

.ctus .formside {
  display: flex;
  flex-direction: column;
  gap: 24px
}

.ctus .formcard {
  background: #faf9f6;
  border: 1px solid #E9E7DF;
  border-radius: 8px;
  padding: 40px;
  box-shadow: 0 4px 14px 0 #d7324c12
}

.ctus .formtitle {
  font-size: 37px;
  font-weight: 800;
  color: #1b1b1b;
  letter-spacing: .01em;
  line-height: 1.2;
  margin: 0 0 24px
}

.ctus .formtitle span {
  color: #A8BB49
}

.ctus .fieldrow {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 12px
}

.ctus .fieldgroup {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 12px
}

.ctus .flabel {
  font-size: 16px;
  font-weight: 700;
  color: #1b1b1b;
  letter-spacing: .01em;
  line-height: 1.2
}

.ctus .finput {
  font-size: 16px;
  line-height: 1.6;
  color: #1b1b1b;
  background: #fff;
  border: 1.5px solid #E9E7DF;
  border-radius: 4px;
  padding: 12px 16px;
  width: 100%;
  box-sizing: border-box;
  transition: border-color .55s ease-out, box-shadow .55s ease-out;
  outline: none;
  box-shadow: inset 0 1px 3px 0 #d7324c0d
}

.ctus .finput::placeholder {
  font-size: 14px;
  color: #9a9a9a
}

.ctus .finput:focus {
  border-color: #D7324C;
  box-shadow: inset 0 1px 3px 0 #d7324c1a 0 0 0 3px #d7324c14
}

.ctus .ftextarea {
  font-size: 16px;
  line-height: 1.6;
  color: #1b1b1b;
  background: #fff;
  border: 1.5px solid #E9E7DF;
  border-radius: 4px;
  padding: 12px 16px;
  width: 100%;
  box-sizing: border-box;
  min-height: 140px;
  resize: vertical;
  transition: border-color .55s ease-out, box-shadow .55s ease-out;
  outline: none;
  box-shadow: inset 0 1px 3px 0 #d7324c0d
}

.ctus .ftextarea::placeholder {
  font-size: 14px;
  color: #9a9a9a
}

.ctus .ftextarea:focus {
  border-color: #D7324C;
  box-shadow: inset 0 1px 3px 0 #d7324c1a 0 0 0 3px #d7324c14
}

.ctus .privrow {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 24px;
  margin-top: 6px
}

.ctus .privcheck {
  width: 18px;
  height: 18px;
  accent-color: #D7324C;
  flex-shrink: 0;
  margin-top: 2px;
  cursor: pointer
}

.ctus .privtext {
  font-size: 16px;
  line-height: 1.6;
  color: #4a4a4a
}

.ctus .privtext a {
  color: #D7324C;
  text-decoration: none;
  font-weight: 700;
  background-image: linear-gradient(97deg, #d7324c2e, #d7324c2e);
  background-size: 0 100%;
  background-repeat: no-repeat;
  background-position: left center;
  transition: background-size .65s ease-out;
  padding: 0 2px
}

.ctus .privtext a:hover {
  background-size: 100% 100%
}

.ctus .submitbtn {
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .05em;
  color: #D7324C;
  background: transparent;
  border: 2px solid #D7324C;
  border-radius: 4px;
  padding: 16px 40px;
  cursor: pointer;
  width: 100%;
  text-transform: uppercase;
  transition: background .65s ease-out, color .55s ease-out, box-shadow .65s ease-out;
  position: relative;
  overflow: hidden
}

.ctus .submitbtn:hover {
  background: #D7324C;
  color: #fff;
  box-shadow: 0 4px 14px 0 #d7324c38
}

.ctus .submitbtn:focus {
  outline: 3px solid #d7324c66;
  outline-offset: 2px
}

.ctus .submitbtn:active {
  background: #b82840;
  border-color: #b82840;
  color: #fff
}

.ctus .faqblock {
  padding: 40px 0 80px;
  background: #fff9f9
}

.ctus .faqgrid {
  display: grid;
  grid-template-columns: 340px 1fr;
  gap: 80px;
  align-items: start
}

.ctus .faqmeta {
  display: flex;
  flex-direction: column;
  gap: 24px;
  position: sticky;
  top: 40px
}

.ctus .faqtag {
  font-size: 16px;
  letter-spacing: .12em;
  color: #A8BB49;
  text-transform: uppercase;
  font-weight: 700;
  line-height: 1.2
}

.ctus .faqhead {
  font-size: 37px;
  font-weight: 800;
  color: #1b1b1b;
  line-height: 1.2;
  letter-spacing: .01em;
  margin: 0
}

.ctus .faqsub {
  font-size: 16px;
  line-height: 1.9;
  color: #4a4a4a;
  margin: 0
}

.ctus .faqstatbox {
  background: linear-gradient(97deg, #D7324C 0%, #d7324cbf 100%);
  border-radius: 8px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 6px
}

.ctus .faqstatnum {
  font-size: 52px;
  font-weight: 800;
  color: #fff;
  line-height: 1.2;
  letter-spacing: .01em
}

.ctus .faqstatdesc {
  font-size: 16px;
  color: #ffffffe0;
  line-height: 1.6
}

.ctus .faqlist {
  display: flex;
  flex-direction: column;
  gap: 0
}

.ctus .faqitem {
  border-bottom: 1px solid #E9E7DF;
  padding: 24px 0
}

.ctus .faqitem:first-child {
  border-top: 1px solid #E9E7DF
}

.ctus .faqq {
  font-size: 21px;
  font-weight: 700;
  color: #1b1b1b;
  line-height: 1.2;
  letter-spacing: .01em;
  margin: 0 0 12px
}

.ctus .faqa {
  font-size: 16px;
  line-height: 1.9;
  color: #4a4a4a;
  margin: 0
}

.ctus .faqa strong {
  color: #D7324C;
  font-weight: 700
}

.ctus .faqcard {
  background: #fff;
  border: 1px solid #E9E7DF;
  border-radius: 8px;
  padding: 24px;
  margin-top: 12px;
  box-shadow: 0 1px 2px 0 #a8bb4912
}

.ctus .faqcard .faqq {
  font-size: 16px;
  font-weight: 700;
  color: #A8BB49;
  margin-bottom: 6px;
  text-transform: uppercase;
  letter-spacing: .08em
}

.ctus .faqcard .faqa {
  font-size: 16px;
  line-height: 1.9;
  color: #3a3a3a
}

@keyframes fadein {
  from {
    opacity: 0;
    transform: translateY(18px)
  }

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

.ctus .reachleft {
  animation: fadein .85s ease-out both
}

.ctus .formcard {
  animation: fadein .85s .2s ease-out both
}

.ctus .faqmeta {
  animation: fadein .75s .1s ease-out both
}

.ctus .faqlist {
  animation: fadein .75s .25s ease-out both
}

@media (max-width: 1024px) {
  .ctus .reachgrid {
    grid-template-columns: 1fr;
    gap: 40px
  }

  .ctus .faqgrid {
    grid-template-columns: 1fr;
    gap: 40px
  }

  .ctus .faqmeta {
    position: static
  }

  .ctus .reachhead {
    font-size: 37px
  }
}

@media (max-width: 640px) {
  .ctus .pgwrap {
    padding: 0 24px
  }

  .ctus .reachblock {
    padding: 40px 0 24px
  }

  .ctus .faqblock {
    padding: 24px 0 40px
  }

  .ctus .fieldrow {
    grid-template-columns: 1fr
  }

  .ctus .formcard {
    padding: 24px
  }

  .ctus .reachhead {
    font-size: 37px
  }

  .ctus .faqhead {
    font-size: 21px
  }

  .ctus .faqstatnum {
    font-size: 37px
  }
}

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

.abtu * {
  box-sizing: border-box
}

.abtu .pgwrap {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 40px
}

@keyframes fadeIn {
  from {
    opacity: 0
  }

  to {
    opacity: 1
  }
}

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

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

.abtu .heropanel {
  background: #E9E7DF;
  padding: 80px 0 0;
  position: relative
}

.abtu .heropanel::after {
  content: '';
  display: block;
  width: 100%;
  height: 56px;
  background: #E9E7DF;
  clip-path: ellipse(55% 100% at 30% 0%);
  position: absolute;
  bottom: -40px;
  left: 0;
  z-index: 1
}

.abtu .herogrid {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 80px;
  align-items: center
}

.abtu .heroimg {
  position: relative;
  animation: fadeIn 900ms ease-out both
}

.abtu .heroimg img {
  width: 100%;
  height: 420px;
  object-fit: cover;
  border-radius: 4px;
  border: 1px solid #d7324c2e;
  display: block;
  box-shadow: 0 4px 14px 0 #d7324c1c;
  transition: box-shadow 700ms ease-out, transform 700ms ease-out
}

.abtu .heroimg:hover img {
  box-shadow: 0 12px 60px 0 #d7324c1c;
  transform: scale(1.012)
}

.abtu .herobgnum {
  position: absolute;
  bottom: -24px;
  left: -12px;
  font-size: 160px;
  font-weight: 900;
  color: #d7324c12;
  line-height: 1.2;
  pointer-events: none;
  user-select: none;
  letter-spacing: -.04em;
  z-index: 0
}

.abtu .herotext {
  animation: dropSettle 800ms ease-out both;
  animation-delay: 120ms;
  position: relative;
  z-index: 2
}

.abtu .herotag {
  display: inline-block;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: .02em;
  color: #D7324C;
  border: 1px solid #d7324c4d;
  border-radius: 2px;
  padding: 6px 12px;
  margin-bottom: 24px;
  text-transform: uppercase
}

.abtu .heroh1 {
  font-size: 52px;
  line-height: 1.2;
  letter-spacing: .01em;
  color: #1e1e2e;
  margin: 0 0 24px;
  font-weight: 800;
  text-transform: uppercase
}

.abtu .heroh1 span {
  color: #D7324C
}

.abtu .herodesc {
  font-size: 21px;
  line-height: 1.6;
  color: #2d2d3a;
  margin: 0 0 12px
}

.abtu .herobody {
  font-size: 16px;
  line-height: 1.9;
  color: #3a3a4a;
  margin: 0 0 40px
}

.abtu .herolink {
  display: inline-block;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: .02em;
  color: #D7324C;
  border: 1.5px solid #D7324C;
  border-radius: 4px;
  padding: 12px 24px;
  text-decoration: none;
  transition: background 600ms ease-out, color 500ms ease-out
}

.abtu .herolink:hover {
  background: #D7324C;
  color: #fff
}

.abtu .statrow {
  display: flex;
  flex-direction: row;
  gap: 40px;
  margin-top: 40px;
  padding-top: 40px;
  border-top: 1px solid #d7324c26
}

.abtu .statitem {
  display: flex;
  flex-direction: column;
  gap: 6px
}

.abtu .statnum {
  font-size: 37px;
  line-height: 1.2;
  font-weight: 800;
  color: #D7324C;
  letter-spacing: .01em
}

.abtu .statlabel {
  font-size: 16px;
  line-height: 1.6;
  color: #5a5a6e;
  letter-spacing: .01em
}

.abtu .teamarea {
  background: #fff;
  padding: 80px 0;
  position: relative;
  z-index: 2
}

.abtu .seclabel {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 12px;
  margin-bottom: 40px
}

.abtu .seclabelshape {
  width: 18px;
  height: 18px;
  background: #A8BB49;
  border-radius: 2px;
  transform: rotate(45deg);
  flex-shrink: 0
}

.abtu .seclabeltext {
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: .02em;
  color: #A8BB49;
  text-transform: uppercase;
  font-weight: 700
}

.abtu .teamh2 {
  font-size: 37px;
  line-height: 1.2;
  letter-spacing: .01em;
  color: #1e1e2e;
  font-weight: 800;
  text-transform: uppercase;
  margin: 0 0 12px
}

.abtu .teamsub {
  font-size: 16px;
  line-height: 1.9;
  color: #3a3a4a;
  margin: 0 0 40px;
  max-width: 560px
}

.abtu .teamgrid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px
}

.abtu .teamcard {
  border-radius: 8px;
  border: 1px solid #a8bb4933;
  overflow: hidden;
  animation: dropSettle 700ms ease-out both;
  transition: box-shadow 650ms ease-out, transform 650ms ease-out;
  box-shadow: 0 1px 2px 0 #a8bb4912
}

.abtu .teamcard:nth-child(2) {
  animation-delay: 80ms
}

.abtu .teamcard:nth-child(3) {
  animation-delay: 160ms
}

.abtu .teamcard:hover {
  box-shadow: 0 12px 60px 0 #a8bb491c;
  transform: translateY(-4px)
}

.abtu .cardimgbox {
  position: relative;
  overflow: hidden
}

.abtu .cardimgbox img {
  width: 100%;
  height: 260px;
  object-fit: cover;
  display: block;
  transition: transform 800ms ease-out;
  border-bottom: 1px solid #a8bb4926
}

.abtu .teamcard:hover .cardimgbox img {
  transform: scale(1.05)
}

.abtu .cardimgbox::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(97deg, #d7324c2e 0%, transparent 80%);
  opacity: 0;
  transition: opacity 700ms ease-out
}

.abtu .teamcard:hover .cardimgbox::after {
  opacity: 1
}

.abtu .cardbody {
  padding: 24px;
  background: #fff
}

.abtu .cardname {
  font-size: 21px;
  line-height: 1.2;
  font-weight: 700;
  color: #1e1e2e;
  letter-spacing: .01em;
  margin: 0 0 6px
}

.abtu .cardrole {
  font-size: 16px;
  line-height: 1.6;
  color: #D7324C;
  letter-spacing: .01em;
  margin: 0 0 12px
}

.abtu .cardbio {
  font-size: 16px;
  line-height: 1.9;
  color: #3a3a4a;
  margin: 0
}

.abtu .approacharea {
  background: linear-gradient(97deg, #d7324c0f 0%, #a8bb490f 60%, transparent 100%);
  padding: 80px 0;
  position: relative
}

.abtu .approacharea::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(97deg, #D7324C 0%, #A8BB49 60%, transparent 100%)
}

.abtu .approachgrid {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 80px;
  align-items: start
}

.abtu .approachh2 {
  font-size: 37px;
  line-height: 1.2;
  font-weight: 800;
  color: #1e1e2e;
  text-transform: uppercase;
  letter-spacing: .01em;
  margin: 0 0 24px
}

.abtu .approachintro {
  font-size: 21px;
  line-height: 1.6;
  color: #2d2d3a;
  margin: 0 0 12px
}

.abtu .approachbody {
  font-size: 16px;
  line-height: 1.9;
  color: #3a3a4a;
  margin: 0 0 24px
}

.abtu .approachlist {
  list-style: none;
  padding: 0;
  margin: 0
}

.abtu .approachlist li {
  font-size: 16px;
  line-height: 1.9;
  color: #2d2d3a;
  padding: 12px 0;
  border-bottom: 1px solid #d7324c1f;
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 12px;
  transition: color 600ms ease-out
}

.abtu .approachlist li:hover {
  color: #1e1e2e
}

.abtu .approachlist li:last-child {
  border-bottom: none
}

.abtu .listnum {
  font-size: 16px;
  font-weight: 800;
  color: #D7324C;
  min-width: 24px;
  line-height: 1.9
}

.abtu .approachimgside {
  position: relative
}

.abtu .approachimgside img {
  width: 100%;
  height: 380px;
  object-fit: cover;
  border-radius: 8px;
  border: 1px solid #d7324c26;
  display: block;
  box-shadow: 0 4px 14px 0 #d7324c1c;
  transition: transform 700ms ease-out, box-shadow 700ms ease-out
}

.abtu .approachimgside:hover img {
  transform: scale(1.02);
  box-shadow: 0 12px 60px 0 #d7324c1c
}

.abtu .imgbadge {
  position: absolute;
  bottom: 24px;
  right: -12px;
  background: #D7324C;
  color: #fff;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: .01em;
  padding: 12px 24px;
  border-radius: 4px;
  font-weight: 700;
  box-shadow: 0 4px 14px 0 #d7324c1c
}

.abtu .geomstrip {
  display: flex;
  flex-direction: row;
  gap: 6px;
  padding: 12px 0;
  overflow: hidden;
  background: #E9E7DF
}

.abtu .geomstrip span {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 2px;
  background: #d7324c40;
  flex-shrink: 0;
  animation: fadeIn 1200ms ease-out both
}

.abtu .geomstrip span:nth-child(even) {
  background: #a8bb494d
}

.abtu .valuesarea {
  background: #1e1e2e;
  padding: 80px 0;
  position: relative
}

.abtu .valuesarea::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(97deg, #A8BB49, #D7324C 70%, transparent)
}

.abtu .valuesh2 {
  font-size: 37px;
  line-height: 1.2;
  font-weight: 800;
  color: #E9E7DF;
  text-transform: uppercase;
  letter-spacing: .01em;
  margin: 0 0 12px
}

.abtu .valuesdesc {
  font-size: 16px;
  line-height: 1.9;
  color: #a8a8b8;
  margin: 0 0 40px;
  max-width: 520px
}

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

.abtu .valuecard {
  background: #e9e7df0d;
  border: 1px solid #e9e7df1a;
  border-radius: 8px;
  padding: 40px;
  transition: background 700ms ease-out, border-color 700ms ease-out;
  animation: dropSettle 750ms ease-out both
}

.abtu .valuecard:nth-child(2) {
  animation-delay: 100ms
}

.abtu .valuecard:nth-child(3) {
  animation-delay: 200ms
}

.abtu .valuecard:nth-child(4) {
  animation-delay: 300ms
}

.abtu .valuecard:hover {
  background: #a8bb4914;
  border-color: #a8bb4940
}

.abtu .vcnum {
  font-size: 52px;
  line-height: 1.2;
  font-weight: 900;
  color: #d7324c33;
  letter-spacing: -.02em;
  display: block;
  margin-bottom: 12px
}

.abtu .vchead {
  font-size: 21px;
  line-height: 1.2;
  font-weight: 700;
  color: #E9E7DF;
  letter-spacing: .01em;
  margin: 0 0 12px
}

.abtu .vctext {
  font-size: 16px;
  line-height: 1.9;
  color: #a8a8b8;
  margin: 0
}

.abtu .vctext strong {
  color: #A8BB49;
  font-weight: 600
}

@media (max-width: 1024px) {
  .abtu .herogrid {
    grid-template-columns: 1fr 1.5fr;
    gap: 40px
  }

  .abtu .teamgrid {
    grid-template-columns: repeat(2, 1fr)
  }

  .abtu .approachgrid {
    grid-template-columns: 1fr;
    gap: 40px
  }

  .abtu .approachimgside {
    display: none
  }

  .abtu .valuesgrid {
    grid-template-columns: 1fr
  }

  .abtu .heroh1 {
    font-size: 37px
  }
}

@media (max-width: 640px) {
  .abtu .pgwrap {
    padding: 0 24px
  }

  .abtu .herogrid {
    grid-template-columns: 1fr;
    gap: 24px
  }

  .abtu .heroimg {
    display: none
  }

  .abtu .heroh1 {
    font-size: 37px
  }

  .abtu .statrow {
    flex-direction: column;
    gap: 24px
  }

  .abtu .teamgrid {
    grid-template-columns: 1fr
  }

  .abtu .heropanel {
    padding: 40px 0 0
  }

  .abtu .teamarea,
  .abtu .approacharea,
  .abtu .valuesarea {
    padding: 40px 0
  }

  .abtu .valuecard {
    padding: 24px
  }

  .abtu .imgbadge {
    right: 0
  }
}

.successPage {
  min-height: 60vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 80px 24px;
  background-color: #fff
}

.successPage .successWrap {
  max-width: 560px;
  width: 100%;
  text-align: center;
  padding: 40px;
  background: #E9E7DF;
  border-radius: 8px;
  box-shadow: 0 4px 14px 0 #d7324c1c
}

.successPage .checkCircle {
  width: 64px;
  height: 64px;
  border-radius: 22px;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 24px;
  box-shadow: 0 1px 2px 0 #d7324c12 0 4px 14px 0 #a8bb491c
}

.successPage .checkCircle svg {
  display: block
}

.successPage .successTitle {
  font-size: 37px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .01em;
  color: #1b1b1b;
  margin: 0 0 12px;
  text-transform: uppercase
}

.successPage .successSub {
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: .01em;
  color: #3a3a3a;
  margin: 0 0 40px
}

.successPage .successSub span {
  color: #D7324C;
  font-weight: 600
}

.successPage .backBtn {
  display: inline-block;
  padding: 12px 40px;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: .02em;
  color: #D7324C;
  background: transparent;
  border: 2px solid #D7324C;
  border-radius: 4px;
  text-decoration: none;
  transition: background .65s ease-out, color .5s ease-out, box-shadow .7s ease-out
}

.successPage .backBtn:hover {
  background: #D7324C;
  color: #fff;
  box-shadow: 0 4px 14px 0 #d7324c1c
}

.successPage .backBtn:focus {
  outline: 2px solid #A8BB49;
  outline-offset: 3px
}

@media (max-width: 640px) {
  .successPage {
    padding: 40px 12px
  }

  .successPage .successWrap {
    padding: 24px
  }

  .successPage .successTitle {
    font-size: 21px
  }
}