html,
body {
  margin: 0;
  padding: 0
}

body {
  font-family: 'Playfair Display', Georgia, serif;
  background-color: #fff;
  color: #1b1230
}

.headertop {
  background: linear-gradient(135deg, #1b1230 0%, #2d1a4a 60%, #3a1060 100%);
  position: relative;
  overflow: hidden
}

.headertop::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(90deg, #b55ce02e 0%, #a919ac1a 100%);
  pointer-events: none
}

.headertop::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, #B55CE0 0%, #A919AC 100%);
  pointer-events: none
}

.brandzone {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 40px 24px 24px;
  position: relative;
  z-index: 2
}

.brandzone-row {
  display: flex;
  align-items: center;
  gap: 24px
}

.logopod {
  width: 56px;
  height: 56px;
  border: 1px solid #ffffffd9;
  border-radius: 18px 6px 18px 6px;
  background: #ffffff14;
  box-shadow: 0 1px 6px 0 #b55ce012 0 5px 20px 0 #b55ce01c;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px;
  flex-shrink: 0
}

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

.brandname {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 41px;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: 0;
  background: linear-gradient(90deg, #fff 0%, #e8c8f8 60%, #B55CE0 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent
}

.regionpill {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  padding: 4px 16px;
  border: 1px solid #b55ce059;
  border-radius: 30px;
  background: #b55ce01a
}

.regiondot {
  width: 8px;
  height: 8px;
  border-radius: 46px;
  background: linear-gradient(135deg, #B55CE0, #A919AC);
  flex-shrink: 0
}

.regionlabel {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.4;
  color: #ffffffbf;
  letter-spacing: 0
}

.navzone {
  background: #ffffff0a;
  border-top: 1px solid #b55ce033;
  position: relative;
  z-index: 2
}

.navdeck {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 4px
}

.navdeck a {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.4;
  color: #ffffffd1;
  text-decoration: none;
  padding: 16px;
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: color .5s cubic-bezier(0.25, 0.46, 0.45, 0.94), background .6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  position: relative;
  white-space: nowrap;
  min-height: 44px
}

.navdeck a::after {
  content: '';
  position: absolute;
  bottom: 8px;
  left: 16px;
  right: 16px;
  height: 1px;
  background: linear-gradient(90deg, #B55CE0, #A919AC);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .55s cubic-bezier(0.25, 0.46, 0.45, 0.94)
}

.navdeck a:hover {
  color: #fff;
  background: #b55ce021
}

.navdeck a:hover::after {
  transform: scaleX(1)
}

.navdeck a:focus {
  outline: none;
  background: #b55ce038;
  color: #fff
}

.navdeck a[data-active] {
  color: #e8b8f8
}

.navdivider {
  width: 1px;
  height: 20px;
  background: #b55ce040;
  flex-shrink: 0
}

.footerplate {
  background: linear-gradient(160deg, #f3eaf9 0%, #FCF5EE 55%, #ede0f5 100%);
  box-shadow: 0 -1px 6px 0 #b55ce012 0 -5px 20px 0 #b55ce01c;
  position: relative
}

.footerplate::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, #A919AC 0%, #B55CE0 100%);
  pointer-events: none
}

.footercolsdeck {
  max-width: 1100px;
  margin: 0 auto;
  padding: 80px 24px 40px;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 40px
}

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

.footerlogopod {
  width: 56px;
  height: 56px;
  border: 1px solid #b55ce066;
  border-radius: 6px 18px 6px 18px;
  background: #fff;
  box-shadow: 0 1px 6px 0 #b55ce012 0 5px 20px 0 #b55ce01c;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px;
  flex-shrink: 0
}

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

.footerbrandname {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.1;
  color: #2d1a4a
}

.footerfounded {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.6;
  color: #6a4080
}

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

.footercellhead {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.4;
  color: #2d1a4a;
  text-transform: uppercase;
  letter-spacing: .08em;
  padding-bottom: 8px;
  border-bottom: 2px solid #b55ce040
}

.footercontactitem {
  display: flex;
  flex-direction: column;
  gap: 4px
}

.footercontactitem a {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.6;
  color: #3d1f5a;
  text-decoration: none;
  transition: color .55s ease
}

.footercontactitem a:hover {
  color: #A919AC
}

.footercontactitem a:focus {
  outline: none;
  background: #b55ce01f;
  border-radius: 6px;
  color: #A919AC
}

.footercontacttext {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.6;
  color: #3d1f5a
}

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

.footerpolicylinks {
  display: flex;
  flex-direction: column;
  gap: 8px
}

.footerpolicylinks a {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.6;
  color: #3d1f5a;
  text-decoration: none;
  padding: 4px 0;
  border-bottom: 1px solid transparent;
  transition: color .6s ease, border-color .5s ease
}

.footerpolicylinks a:hover {
  color: #A919AC;
  border-bottom-color: #a919ac4d
}

.footerpolicylinks a:focus {
  outline: none;
  background: #b55ce01f;
  border-radius: 6px;
  padding-left: 8px;
  color: #A919AC
}

.footerbottombar {
  border-top: 1px solid #b55ce033;
  background: #b55ce00d
}

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

.footercopyright {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.4;
  color: #6a4080
}

.footerbottomlinks {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap
}

.footerbottomlinks a {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.4;
  color: #6a4080;
  text-decoration: none;
  transition: color .55s ease
}

.footerbottomlinks a:hover {
  color: #A919AC
}

.footerbottomlinks a:focus {
  outline: none;
  background: #b55ce01f;
  border-radius: 6px;
  color: #A919AC
}

.bottomdivider {
  width: 1px;
  height: 14px;
  background: #b55ce04d;
  flex-shrink: 0
}

@media (max-width: 1280px) {
  .footercolsdeck {
    padding: 80px 24px 40px;
    gap: 40px
  }
}

@media (max-width: 768px) {
  .brandname {
    font-size: 31px
  }

  .navdeck {
    gap: 4px;
    padding: 0 16px
  }

  .navdeck a {
    padding: 12px;
    font-size: 15px
  }

  .navdivider {
    display: none
  }

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

  .footerbottomdeck {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px
  }

  .brandzone {
    padding: 24px 16px 16px
  }
}

@media (max-width: 480px) {
  .brandname {
    font-size: 24px
  }

  .brandzone-row {
    gap: 16px
  }

  .navdeck a {
    padding: 12px 8px;
    font-size: 15px
  }

  .footerbottomlinks {
    gap: 8px
  }
}

.policy-article {
  max-width: 1100px;
  margin: 0 auto;
  padding: 80px 40px;
  color: #2d2340;
  line-height: 1.6
}

.policy-article h1 {
  font-size: 41px;
  line-height: 1.1;
  font-weight: 700;
  margin-bottom: 24px;
  margin-top: 0;
  background: linear-gradient(135deg, #B55CE0 0%, #A919AC 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent
}

.policy-article h2 {
  font-size: 31px;
  line-height: 1.1;
  font-weight: 700;
  color: #1e1630;
  margin-top: 80px;
  margin-bottom: 16px;
  padding-bottom: 8px;
  border-bottom: 2px solid #FCF5EE
}

.policy-article h3 {
  font-size: 24px;
  line-height: 1.4;
  font-weight: 600;
  color: #2d2340;
  margin-top: 40px;
  margin-bottom: 16px
}

.policy-article h4 {
  font-size: 15px;
  line-height: 1.4;
  font-weight: 700;
  color: #2d2340;
  margin-top: 24px;
  margin-bottom: 8px;
  text-transform: uppercase;
  letter-spacing: .08em
}

.policy-article h5 {
  font-size: 15px;
  line-height: 1.4;
  font-weight: 600;
  color: #4a3a6b;
  margin-top: 16px;
  margin-bottom: 8px
}

.policy-article h6 {
  font-size: 15px;
  line-height: 1.4;
  font-weight: 500;
  color: #4a3a6b;
  margin-top: 16px;
  margin-bottom: 8px
}

.policy-article p {
  font-size: 15px;
  line-height: 1.6;
  color: #2d2340;
  margin-top: 0;
  margin-bottom: 16px
}

.policy-article strong,
.policy-article b {
  font-weight: 700;
  color: #1e1630
}

.policy-article em,
.policy-article i {
  font-style: italic;
  color: #4a3a6b
}

.policy-article a {
  color: #A919AC;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: color .6s cubic-bezier(0.25, 0.46, 0.45, 0.94), text-decoration-color .5s ease
}

.policy-article a:hover {
  color: #B55CE0;
  text-decoration-color: #B55CE0
}

.policy-article a:visited {
  color: #8b14a0
}

.policy-article hr {
  border: none;
  border-top: 1px solid #e8ddf5;
  margin-top: 40px;
  margin-bottom: 40px;
  background: none
}

.policy-article div {
  font-size: 15px;
  line-height: 1.6
}

.policy-article ul,
.policy-article ol {
  font-size: 15px;
  line-height: 1.6;
  color: #2d2340;
  margin-top: 0;
  margin-bottom: 16px;
  padding-left: 24px
}

.policy-article li {
  margin-bottom: 8px
}

.policy-article li::marker {
  color: #B55CE0
}

.policy-article blockquote {
  margin: 24px 0;
  padding: 16px 24px;
  background: #FCF5EE;
  border-left: 4px solid #B55CE0;
  border-radius: 0 6px 6px 0;
  font-size: 15px;
  line-height: 1.6;
  color: #4a3a6b;
  box-shadow: 0 1px 6px 0 #b55ce012
}

.policy-article table {
  width: 100%;
  border-collapse: collapse;
  font-size: 15px;
  line-height: 1.4;
  margin-bottom: 24px;
  box-shadow: 0 1px 6px 0 #b55ce012;
  border-radius: 6px;
  overflow: hidden
}

.policy-article th {
  background: linear-gradient(135deg, #B55CE0 0%, #A919AC 100%);
  color: #fff;
  font-weight: 600;
  padding: 16px;
  text-align: left
}

.policy-article td {
  padding: 16px;
  border-bottom: 1px solid #e8ddf5;
  color: #2d2340
}

.policy-article tr:last-child td {
  border-bottom: none
}

.policy-article tr:nth-child(even) td {
  background: #FCF5EE
}

@media (max-width: 768px) {
  .policy-article {
    padding: 40px 24px
  }

  .policy-article h1 {
    font-size: 31px
  }

  .policy-article h2 {
    font-size: 24px;
    margin-top: 40px
  }

  .policy-article h3 {
    font-size: 15px;
    margin-top: 24px
  }

  .policy-article table {
    display: block;
    overflow-x: auto
  }
}

@media (max-width: 480px) {
  .policy-article {
    padding: 24px 16px
  }

  .policy-article h1 {
    font-size: 24px
  }

  .policy-article h2 {
    font-size: 15px;
    font-weight: 700
  }
}

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

.process .titleblock {
  background: #1a0a2e;
  padding: 80px 24px 40px;
  position: relative
}

.process .titleblock .dotgrid {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle, #b55ce02e 1.5px, transparent 1.5px);
  background-size: 28px 28px;
  pointer-events: none
}

.process .titleblock .tbinner {
  max-width: 1100px;
  margin: 0 auto;
  position: relative;
  z-index: 1
}

.process .titleblock .pill {
  display: inline-block;
  background: #b55ce02e;
  border: 1px solid #b55ce061;
  color: #d48ef5;
  font-size: 15px;
  line-height: 1.4;
  padding: 4px 16px;
  border-radius: 30px;
  margin-bottom: 24px;
  letter-spacing: .06em;
  text-transform: uppercase
}

.process .titleblock h1 {
  font-size: 70px;
  line-height: 1.1;
  color: #fff;
  margin: 0 0 24px;
  max-width: 700px
}

.process .titleblock .tbpoints {
  list-style: none;
  padding: 0;
  margin: 0 0 40px;
  display: flex;
  flex-direction: column;
  gap: 16px
}

.process .titleblock .tbpoints li {
  color: #e2cff5;
  font-size: 15px;
  line-height: 1.6;
  padding-left: 20px;
  position: relative
}

.process .titleblock .tbpoints li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 8px;
  width: 8px;
  height: 8px;
  border-right: 2px solid #B55CE0;
  border-top: 2px solid #B55CE0;
  transform: rotate(45deg)
}

.process .titleblock .tbimg {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
  border-radius: 18px;
  overflow: hidden;
  position: relative;
  height: 320px
}

.process .titleblock .tbimg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  border-radius: 18px
}

.process .titleblock .tbimg .imgfade {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, #1a0a2eb8 0%, #1a0a2e14 60%, transparent 100%);
  border-radius: 18px;
  pointer-events: none
}

.process .stepsblock {
  background: #FCF5EE;
  padding: 80px 24px;
  position: relative;
  overflow: hidden
}

.process .stepsblock .geobg {
  position: absolute;
  top: 40px;
  right: -60px;
  width: 340px;
  height: 340px;
  border: 2px solid #b55ce01a;
  border-radius: 46px;
  transform: rotate(18deg);
  pointer-events: none;
  animation: flickerAccent 4.5s ease-in-out infinite
}

.process .stepsblock .geobg2 {
  position: absolute;
  bottom: 24px;
  left: -40px;
  width: 200px;
  height: 200px;
  border: 1.5px solid #a919ac17;
  border-radius: 46px;
  transform: rotate(-12deg);
  pointer-events: none;
  animation: flickerAccent 6s ease-in-out 1.2s infinite
}

@keyframes flickerAccent {

  0%,
  100% {
    opacity: .5
  }

  40% {
    opacity: 1;
    border-color: #b55ce047
  }

  70% {
    opacity: .7
  }
}

.process .stepsblock .sbinner {
  max-width: 1100px;
  margin: 0 auto;
  position: relative;
  z-index: 1
}

.process .stepsblock .sbhead {
  margin-bottom: 40px
}

.process .stepsblock .sbhead h2 {
  font-size: 41px;
  line-height: 1.1;
  color: #1a0a2e;
  margin: 0 0 16px
}

.process .stepsblock .sbhead p {
  font-size: 15px;
  line-height: 1.6;
  color: #3d2255;
  max-width: 560px;
  margin: 0
}

.process .stepsblock .stepsline {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  position: relative
}

.process .stepsblock .stepsline::before {
  content: '';
  position: absolute;
  top: 36px;
  left: 10%;
  right: 10%;
  height: 2px;
  background: linear-gradient(90deg, #B55CE0 0%, #A919AC 100%);
  z-index: 0
}

.process .stepsblock .stepcard {
  background: #fff;
  border-radius: 18px;
  padding: 24px 16px;
  position: relative;
  z-index: 1;
  box-shadow: 0 1px 6px 0 #b55ce012;
  transition: box-shadow .6s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform .5s ease;
  display: flex;
  flex-direction: column;
  gap: 16px
}

.process .stepsblock .stepcard:hover {
  box-shadow: 0 10px 44px 0 #b55ce01c;
  transform: translateY(-4px)
}

.process .stepsblock .stepnum {
  width: 48px;
  height: 48px;
  border-radius: 46px;
  background: linear-gradient(135deg, #B55CE0 0%, #A919AC 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  font-weight: 700;
  color: #fff;
  flex-shrink: 0;
  margin: 0 auto
}

.process .stepsblock .stepicon {
  width: 40px;
  height: 40px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center
}

.process .stepsblock .stepicon svg {
  width: 36px;
  height: 36px
}

.process .stepsblock .stepcard h4 {
  font-size: 15px;
  line-height: 1.4;
  color: #1a0a2e;
  margin: 0;
  text-align: center;
  font-weight: 700
}

.process .stepsblock .stepcard p {
  font-size: 15px;
  line-height: 1.6;
  color: #3d2255;
  margin: 0;
  text-align: center
}

.process .stepsblock .fignums {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 40px
}

.process .stepsblock .figitem {
  background: linear-gradient(135deg, #b55ce012 0%, #a919ac0a 100%);
  border-radius: 18px;
  padding: 24px;
  text-align: center;
  border: 1px solid #b55ce01f
}

.process .stepsblock .figitem .fignumber {
  font-size: 41px;
  line-height: 1.1;
  font-weight: 800;
  background: linear-gradient(135deg, #B55CE0 0%, #A919AC 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  display: block
}

.process .stepsblock .figitem p {
  font-size: 15px;
  line-height: 1.4;
  color: #3d2255;
  margin: 8px 0 0
}

.process .detailblock {
  background: #fff;
  padding: 80px 24px;
  position: relative
}

.process .detailblock .dbinner {
  max-width: 1100px;
  margin: 0 auto
}

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

.process .detailblock .dbtext h2 {
  font-size: 41px;
  line-height: 1.1;
  color: #1a0a2e;
  margin: 0 0 16px
}

.process .detailblock .dbtext p {
  font-size: 15px;
  line-height: 1.6;
  color: #3d2255;
  margin: 0 0 16px
}

.process .detailblock .dbtext p:last-child {
  margin-bottom: 0
}

.process .detailblock .dbimg {
  border-radius: 18px;
  overflow: hidden;
  height: 320px;
  box-shadow: 0 5px 20px 0 #b55ce01c
}

.process .detailblock .dbimg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform .7s cubic-bezier(0.25, 0.46, 0.45, 0.94)
}

.process .detailblock .dbimg:hover img {
  transform: scale(1.04)
}

.process .detailblock .threecols {
  display: grid;
  grid-template-columns: 1fr 1.22fr 1fr;
  gap: 16px;
  align-items: start
}

.process .detailblock .colcard {
  background: #FCF5EE;
  border-radius: 18px;
  padding: 24px;
  box-shadow: 0 1px 6px 0 #b55ce012;
  transition: box-shadow .55s ease, transform .5s ease
}

.process .detailblock .colcard.center {
  background: linear-gradient(145deg, #2a0a42 0%, #1a0a2e 100%);
  padding: 40px 24px;
  box-shadow: 0 10px 44px 0 #b55ce01c
}

.process .detailblock .colcard:hover {
  box-shadow: 0 5px 20px 0 #b55ce01c;
  transform: translateY(-3px)
}

.process .detailblock .colcard.center:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 44px 0 #b55ce02e
}

.process .detailblock .colcard h5 {
  font-size: 15px;
  line-height: 1.4;
  color: #1a0a2e;
  margin: 0 0 8px;
  font-weight: 700
}

.process .detailblock .colcard.center h5 {
  color: #d48ef5;
  font-size: 15px
}

.process .detailblock .colcard p {
  font-size: 15px;
  line-height: 1.6;
  color: #3d2255;
  margin: 0
}

.process .detailblock .colcard.center p {
  color: #e2cff5
}

.process .detailblock .colcard .fadednum {
  font-size: 70px;
  line-height: 1.1;
  font-weight: 900;
  color: #b55ce014;
  display: block;
  margin-bottom: 8px;
  pointer-events: none
}

.process .detailblock .colcard.center .fadednum {
  color: #d48ef521
}

.process .detailblock .colcard .cardpill {
  display: inline-block;
  background: #b55ce01f;
  border: 1px solid #b55ce038;
  color: #A919AC;
  font-size: 15px;
  padding: 4px 16px;
  border-radius: 30px;
  margin-bottom: 16px;
  font-weight: 600
}

.process .detailblock .colcard.center .cardpill {
  background: #b55ce038;
  border-color: #b55ce066;
  color: #d48ef5
}

.process .detailblock .colcard .collist {
  list-style: none;
  padding: 0;
  margin: 16px 0 0;
  display: flex;
  flex-direction: column;
  gap: 8px
}

.process .detailblock .colcard .collist li {
  font-size: 15px;
  line-height: 1.6;
  color: #3d2255;
  padding-left: 16px;
  position: relative
}

.process .detailblock .colcard.center .collist li {
  color: #e2cff5
}

.process .detailblock .colcard .collist li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 8px;
  width: 6px;
  height: 6px;
  border-right: 2px solid #B55CE0;
  border-top: 2px solid #B55CE0;
  transform: rotate(45deg)
}

.process .detailblock .colcard.center .collist li::before {
  border-color: #d48ef5
}

.process .detailblock .testimonial {
  margin-top: 40px;
  background: linear-gradient(135deg, #b55ce00f 0%, #a919ac0a 100%);
  border-radius: 18px;
  padding: 40px;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 24px;
  align-items: center;
  border: 1px solid #b55ce01a
}

.process .detailblock .tportrait {
  width: 80px;
  height: 100px;
  border-radius: 6px;
  overflow: hidden;
  flex-shrink: 0
}

.process .detailblock .tportrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block
}

.process .detailblock .tquote p {
  font-size: 15px;
  line-height: 1.6;
  color: #1a0a2e;
  margin: 0 0 8px;
  font-style: italic
}

.process .detailblock .tquote .tname {
  font-size: 15px;
  line-height: 1.4;
  color: #A919AC;
  font-weight: 700;
  font-style: normal
}

.process .detailblock .tquote .trole {
  font-size: 15px;
  line-height: 1.4;
  color: #3d2255
}

.process .detailblock .dbactions {
  margin-top: 40px;
  display: flex;
  flex-direction: row;
  gap: 16px;
  flex-wrap: wrap
}

.process .detailblock .btnprimary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: linear-gradient(135deg, #B55CE0 0%, #A919AC 100%);
  color: #fff;
  font-size: 15px;
  line-height: 1.4;
  font-weight: 700;
  padding: 16px 24px;
  border-radius: 6px;
  border: none;
  cursor: pointer;
  text-decoration: none;
  box-shadow: 0 5px 20px 0 #b55ce01c;
  transition: box-shadow .6s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform .5s ease;
  position: relative;
  overflow: hidden
}

.process .detailblock .btnprimary:hover {
  box-shadow: 0 10px 44px 0 #b55ce01c;
  transform: translateY(-2px)
}

.process .detailblock .btnprimary .btnicon {
  width: 18px;
  height: 18px;
  opacity: 0;
  transform: translateX(-8px);
  transition: opacity .5s ease, transform .55s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  flex-shrink: 0
}

.process .detailblock .btnprimary:hover .btnicon {
  opacity: 1;
  transform: translateX(0)
}

.process .detailblock .btnprimary .btnlabel {
  transition: transform .55s cubic-bezier(0.25, 0.46, 0.45, 0.94)
}

.process .detailblock .btnprimary:hover .btnlabel {
  transform: translateX(4px)
}

.process .detailblock .btnsecondary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: transparent;
  color: #A919AC;
  font-size: 15px;
  line-height: 1.4;
  font-weight: 700;
  padding: 16px 24px;
  border-radius: 6px;
  border: 2px solid #B55CE0;
  cursor: pointer;
  text-decoration: none;
  transition: background .6s ease, color .5s ease, box-shadow .6s ease
}

.process .detailblock .btnsecondary:hover {
  background: #b55ce012;
  box-shadow: 0 5px 20px 0 #b55ce01c
}

.process .detailblock .btnsecondary .btnicon {
  width: 18px;
  height: 18px;
  opacity: 0;
  transform: translateX(-8px);
  transition: opacity .5s ease, transform .55s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  flex-shrink: 0
}

.process .detailblock .btnsecondary:hover .btnicon {
  opacity: 1;
  transform: translateX(0)
}

.process .detailblock .btnsecondary .btnlabel {
  transition: transform .55s cubic-bezier(0.25, 0.46, 0.45, 0.94)
}

.process .detailblock .btnsecondary:hover .btnlabel {
  transform: translateX(4px)
}

.process .charspan {
  display: inline-block;
  transition: color .5s ease
}

.process .charspan:hover {
  color: #B55CE0
}

@media (max-width: 1280px) {
  .process .titleblock h1 {
    font-size: 41px
  }

  .process .stepsblock .stepsline {
    grid-template-columns: repeat(2, 1fr)
  }

  .process .stepsblock .stepsline::before {
    display: none
  }

  .process .detailblock .threecols {
    grid-template-columns: 1fr 1fr 1fr
  }
}

@media (max-width: 768px) {
  .process .titleblock {
    padding: 40px 16px 24px
  }

  .process .titleblock h1 {
    font-size: 31px
  }

  .process .titleblock .tbimg {
    height: 200px
  }

  .process .stepsblock {
    padding: 40px 16px
  }

  .process .stepsblock .stepsline {
    grid-template-columns: 1fr 1fr
  }

  .process .stepsblock .fignums {
    grid-template-columns: 1fr
  }

  .process .detailblock {
    padding: 40px 16px
  }

  .process .detailblock .dbtop {
    grid-template-columns: 1fr;
    gap: 24px
  }

  .process .detailblock .threecols {
    grid-template-columns: 1fr
  }

  .process .detailblock .testimonial {
    grid-template-columns: 1fr;
    padding: 24px
  }

  .process .detailblock .dbactions {
    flex-direction: column
  }
}

@media (max-width: 480px) {
  .process .titleblock h1 {
    font-size: 24px
  }

  .process .stepsblock .stepsline {
    grid-template-columns: 1fr
  }

  .process .stepsblock .sbhead h2 {
    font-size: 31px
  }

  .process .detailblock .dbtext h2 {
    font-size: 31px
  }

  .process .stepsblock .fignums {
    grid-template-columns: 1fr
  }
}

.process .imgloading {
  background: linear-gradient(90deg, #ede0f5 0%, #f5edfb 50%, #ede0f5 100%);
  background-size: 200% 100%;
  animation: skelanim 1.4s ease infinite
}

@keyframes skelanim {
  0% {
    background-position: 200% 0
  }

  100% {
    background-position: -200% 0
  }
}

.process .tbimg img,
.process .dbimg img,
.process .tportrait img {
  opacity: 0;
  transition: opacity .7s ease
}

.process .tbimg img.loaded,
.process .dbimg img.loaded,
.process .tportrait img.loaded {
  opacity: 1
}

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

.contactus .pageouter {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 24px
}

.contactus .titlesection {
  position: relative;
  padding: 80px 24px;
  background: linear-gradient(160deg, #B55CE0 0%, #A919AC 45%, #fcf5ee00 100%);
  overflow: hidden
}

.contactus .titlesection::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url(./category_images/img-1-1_2025_05_24.jpg);
  background-size: cover;
  background-position: center;
  opacity: .08;
  pointer-events: none
}

.contactus .titlesection::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(135deg, #ffffff0a 0px, #ffffff0a 1px, transparent 1px, transparent 12px);
  pointer-events: none
}

.contactus .titleinner {
  max-width: 1100px;
  margin: 0 auto;
  position: relative;
  z-index: 1
}

.contactus .titleinner h1 {
  font-size: 70px;
  line-height: 1.1;
  color: #fff;
  margin: 0 0 16px;
  opacity: 0;
  transform: rotate(-3deg) translateY(24px);
  animation: revealrotate .7s cubic-bezier(0.25, 0.46, 0.45, 0.94) .1s forwards
}

.contactus .titleinner h1 .accentword {
  display: inline-block;
  background: linear-gradient(120deg, #FCF5EE 30%, #fff 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text
}

.contactus .titleinner .subtitle {
  font-size: 15px;
  line-height: 1.6;
  color: #fcf5eee0;
  max-width: 520px;
  margin: 0;
  opacity: 0;
  transform: translateY(16px);
  animation: revealup .6s cubic-bezier(0.25, 0.46, 0.45, 0.94) .35s forwards
}

.contactus .contactdetailstrip {
  display: flex;
  flex-direction: row;
  gap: 40px;
  margin-top: 40px;
  flex-wrap: wrap;
  opacity: 0;
  transform: translateY(16px);
  animation: revealup .6s cubic-bezier(0.25, 0.46, 0.45, 0.94) .5s forwards
}

.contactus .detailitem {
  display: flex;
  flex-direction: column;
  gap: 4px
}

.contactus .detailitem .detaillabel {
  font-size: 15px;
  color: #fcf5ee99;
  text-transform: uppercase;
  letter-spacing: .1em
}

.contactus .detailitem .detailvalue {
  font-size: 15px;
  color: #fff;
  line-height: 1.4;
  text-decoration: none;
  transition: color .5s ease
}

.contactus .detailitem .detailvalue:hover {
  color: #FCF5EE
}

@keyframes revealrotate {
  to {
    opacity: 1;
    transform: rotate(0deg) translateY(0)
  }
}

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

.contactus .formsection {
  padding: 80px 24px;
  background: #fff;
  position: relative
}

.contactus .formsection::before {
  content: '';
  display: block;
  height: 1px;
  background-image: radial-gradient(circle, #b55ce04d 1px, transparent 1px);
  background-size: 8px 1px;
  margin-bottom: 80px;
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto
}

.contactus .formgrid {
  max-width: 1100px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: start
}

.contactus .formleft {
  position: relative
}

.contactus .formleft .bignumber {
  font-size: 70px;
  line-height: 1.1;
  color: #b55ce012;
  position: absolute;
  top: -16px;
  left: -8px;
  font-weight: 700;
  pointer-events: none;
  user-select: none
}

.contactus .formleft h2 {
  font-size: 41px;
  line-height: 1.1;
  color: #1e0a2e;
  margin: 0 0 16px;
  position: relative
}

.contactus .formleft .formintro {
  font-size: 15px;
  line-height: 1.6;
  color: #3d2050;
  margin: 0 0 40px
}

.contactus .infoblock {
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin-top: 40px
}

.contactus .infocard {
  border: 1px solid #b55ce026;
  border-radius: 18px;
  padding: 24px;
  background: #FCF5EE;
  box-shadow: 0 1px 6px 0 #b55ce012;
  transition: box-shadow .55s cubic-bezier(0.25, 0.46, 0.45, 0.94), border-color .55s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  position: relative;
  overflow: hidden
}

.contactus .infocard::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, #B55CE0, #A919AC, #fcf5ee00);
  border-radius: 0 0 18px 18px
}

.contactus .infocard:hover {
  box-shadow: 0 5px 20px 0 #b55ce01c;
  border-color: #b55ce04d
}

.contactus .infocard .cardlabel {
  font-size: 15px;
  color: #A919AC;
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 8px;
  font-weight: 600
}

.contactus .infocard .cardtext {
  font-size: 15px;
  line-height: 1.6;
  color: #2a0c3a;
  margin: 0
}

.contactus .infocard .cardtext a {
  color: #B55CE0;
  text-decoration: none;
  transition: color .5s ease
}

.contactus .infocard .cardtext a:hover {
  color: #A919AC
}

.contactus .formright {
  background: #FCF5EE;
  border-radius: 30px;
  padding: 40px;
  box-shadow: 0 10px 44px 0 #a919ac1c;
  position: relative
}

.contactus .formright::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, #B55CE0, #A919AC);
  border-radius: 30px 30px 0 0
}

.contactus .formright h3 {
  font-size: 24px;
  line-height: 1.4;
  color: #1e0a2e;
  margin: 0 0 24px
}

.contactus .formrow {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 16px
}

.contactus .fieldgroup {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 16px
}

.contactus .fieldgroup label {
  font-size: 15px;
  color: #2a0c3a;
  font-weight: 600
}

.contactus .fieldgroup input,
.contactus .fieldgroup select {
  width: 100%;
  padding: 16px;
  border: 1.5px solid #b55ce033;
  border-radius: 6px;
  font-size: 15px;
  color: #1e0a2e;
  background: #fff;
  box-shadow: 0 1px 6px 0 #b55ce012;
  transition: border-color .6s cubic-bezier(0.25, 0.46, 0.45, 0.94), box-shadow .6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  outline: none;
  appearance: none;
  -webkit-appearance: none
}

.contactus .fieldgroup input::placeholder {
  font-style: italic;
  opacity: .55;
  color: #7a4a8a
}

.contactus .fieldgroup input:focus,
.contactus .fieldgroup select:focus {
  border-color: #B55CE0;
  box-shadow: 0 5px 20px 0 #b55ce01c
}

.contactus .fieldgroup select {
  cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23B55CE0' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  padding-right: 40px
}

.contactus .fieldgroup select option {
  color: #1e0a2e;
  background: #fff
}

.contactus .privacyrow {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 24px;
  padding: 16px;
  background: #b55ce00d;
  border-radius: 6px
}

.contactus .privacyrow input[type="checkbox"] {
  width: 20px;
  height: 20px;
  min-width: 20px;
  border: 1.5px solid #b55ce066;
  border-radius: 6px;
  background: #fff;
  cursor: pointer;
  margin-top: 2px;
  accent-color: #B55CE0;
  box-shadow: inset 0 1px 3px #b55ce01a
}

.contactus .privacyrow input[type="checkbox"]:checked {
  box-shadow: inset 0 2px 6px #b55ce040
}

.contactus .privacylabel {
  font-size: 15px;
  line-height: 1.6;
  color: #3d2050
}

.contactus .privacylabel a {
  color: #B55CE0;
  text-decoration: underline;
  text-decoration-color: #b55ce066;
  transition: color .5s ease, text-decoration-color .5s ease
}

.contactus .privacylabel a:hover {
  color: #A919AC;
  text-decoration-color: #a919ac99
}

.contactus .submitbtn {
  width: 100%;
  padding: 16px 24px;
  background: linear-gradient(120deg, #B55CE0, #A919AC);
  color: #fff;
  border: none;
  border-radius: 18px;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  box-shadow: 0 5px 20px 0 #b55ce01c;
  transition: box-shadow .6s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform .5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 8px
}

.contactus .submitbtn .btntext {
  transition: transform .55s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  display: inline-block
}

.contactus .submitbtn .btnicon {
  display: inline-block;
  opacity: 0;
  transform: translateX(-8px);
  transition: opacity .55s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform .55s cubic-bezier(0.25, 0.46, 0.45, 0.94)
}

.contactus .submitbtn:hover .btntext {
  transform: translateX(8px)
}

.contactus .submitbtn:hover .btnicon {
  opacity: 1;
  transform: translateX(0)
}

.contactus .submitbtn:hover {
  box-shadow: 0 10px 44px 0 #a919ac1c;
  background: linear-gradient(120deg, #c46de8, #B55CE0)
}

.contactus .submitbtn:active {
  transform: scale(0.98);
  box-shadow: inset 0 2px 8px #a919ac33 0 1px 6px 0 #b55ce012
}

.contactus .submitbtn:focus-visible {
  outline: 2px solid #B55CE0;
  outline-offset: 3px
}

.contactus .formrowsingle {
  margin-bottom: 16px
}

.contactus .imagetexture {
  position: absolute;
  inset: 0;
  background-image: url(./category_images/the-module6_v3.jpg);
  background-size: cover;
  background-position: center;
  opacity: .04;
  border-radius: 30px;
  pointer-events: none
}

@media (max-width: 1280px) {
  .contactus .formgrid {
    gap: 40px
  }

  .contactus .titleinner h1 {
    font-size: 41px
  }
}

@media (max-width: 768px) {
  .contactus .formgrid {
    grid-template-columns: 1fr;
    gap: 40px
  }

  .contactus .titlesection {
    padding: 40px 24px
  }

  .contactus .titleinner h1 {
    font-size: 31px
  }

  .contactus .formsection {
    padding: 40px 24px
  }

  .contactus .formsection::before {
    margin-bottom: 40px
  }

  .contactus .formright {
    padding: 24px
  }

  .contactus .contactdetailstrip {
    flex-direction: column;
    gap: 16px
  }
}

@media (max-width: 480px) {
  .contactus .formrow {
    grid-template-columns: 1fr
  }

  .contactus .titleinner h1 {
    font-size: 24px
  }

  .contactus .formleft h2 {
    font-size: 31px
  }

  .contactus .formright {
    border-radius: 18px
  }

  .contactus .formright::before {
    border-radius: 18px 18px 0 0
  }
}

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

.learningprogram .programwrap {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 24px
}

.learningprogram .titledark {
  background: #1a0a2e;
  background: linear-gradient(160deg, #1a0a2e 0%, #2d0a40 55%, #3b0d52 100%);
  padding: 80px 24px;
  position: relative
}

.learningprogram .titledark .programwrap {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 40px
}

.learningprogram .titledark .titleleft {
  flex: 1 1 55%
}

.learningprogram .titledark .titleright {
  flex: 0 0 38%;
  position: relative
}

.learningprogram .titleeyebrow {
  display: inline-block;
  font-size: 15px;
  line-height: 1.4;
  color: #B55CE0;
  letter-spacing: .12em;
  text-transform: uppercase;
  margin-bottom: 16px;
  border-bottom: 1px solid #b55ce059;
  padding-bottom: 8px
}

.learningprogram .titleh1 {
  font-size: 70px;
  line-height: 1.1;
  color: #FCF5EE;
  margin: 0 0 16px
}

.learningprogram .titleh1 .accentword {
  background: linear-gradient(110deg, #B55CE0 20%, #A919AC 80%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text
}

.learningprogram .titlesub {
  font-size: 24px;
  line-height: 1.4;
  color: #fcf5eebf;
  margin: 0 0 40px
}

.learningprogram .titlemeta {
  display: flex;
  flex-direction: row;
  gap: 24px;
  flex-wrap: wrap
}

.learningprogram .metaitem {
  display: flex;
  flex-direction: column;
  gap: 4px
}

.learningprogram .metalabel {
  font-size: 15px;
  line-height: 1.4;
  color: #fcf5ee80;
  text-transform: uppercase;
  letter-spacing: .08em
}

.learningprogram .metavalue {
  font-size: 24px;
  line-height: 1.1;
  color: #FCF5EE;
  font-weight: 700
}

.learningprogram .metavalue .num {
  color: #B55CE0
}

.learningprogram .imgframe {
  position: relative;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 10px 44px 0 #b55ce01c
}

.learningprogram .imgframe::before {
  content: "";
  display: block;
  position: absolute;
  inset: 0;
  background: linear-gradient(160deg, #a919ac73 0%, #b55ce033 100%);
  z-index: 1;
  pointer-events: none
}

.learningprogram .imgframe img {
  display: block;
  width: 100%;
  height: 340px;
  object-fit: cover;
  object-position: center;
  border-radius: 18px
}

.learningprogram .imgskeleton {
  background: #fcf5ee14;
  width: 100%;
  height: 340px;
  border-radius: 18px
}

.learningprogram .divdouble {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 0 24px;
  max-width: 1100px;
  margin: 0 auto
}

.learningprogram .divdouble .dline {
  height: 1px;
  background: linear-gradient(90deg, transparent, #B55CE0 30%, #A919AC 70%, transparent);
  opacity: .35
}

.learningprogram .structuresec {
  padding: 80px 24px;
  background: #FCF5EE
}

.learningprogram .structuresec .programwrap {
  display: grid;
  grid-template-columns: 1fr 1.6fr 1fr;
  gap: 40px;
  align-items: start
}

.learningprogram .structurelabel {
  font-size: 15px;
  line-height: 1.4;
  color: #A919AC;
  text-transform: uppercase;
  letter-spacing: .1em;
  margin-bottom: 16px
}

.learningprogram .structureh2 {
  font-size: 41px;
  line-height: 1.1;
  color: #2d0a40;
  margin: 0 0 16px
}

.learningprogram .structuredesc {
  font-size: 15px;
  line-height: 1.6;
  color: #3b1a50;
  margin: 0 0 24px
}

.learningprogram .pullquote {
  font-size: 24px;
  line-height: 1.4;
  color: #A919AC;
  border-top: 2px solid #B55CE0;
  border-bottom: 2px solid #B55CE0;
  padding: 16px 0;
  margin: 0;
  font-style: italic
}

.learningprogram .modulelist {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 16px
}

.learningprogram .modulelist li {
  display: flex;
  flex-direction: row;
  gap: 16px;
  align-items: flex-start;
  padding: 16px;
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 1px 6px 0 #b55ce012;
  transition: box-shadow .6s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform .5s cubic-bezier(0.25, 0.46, 0.45, 0.94)
}

.learningprogram .modulelist li:hover {
  box-shadow: 0 5px 20px 0 #b55ce01c;
  transform: translateY(-2px)
}

.learningprogram .modulenum {
  font-size: 31px;
  line-height: 1.1;
  color: #b55ce02e;
  font-weight: 900;
  min-width: 40px;
  flex-shrink: 0
}

.learningprogram .moduletextblock {
  flex: 1
}

.learningprogram .moduletitle {
  font-size: 15px;
  line-height: 1.4;
  color: #2d0a40;
  font-weight: 700;
  margin: 0 0 4px
}

.learningprogram .moduledesc {
  font-size: 15px;
  line-height: 1.6;
  color: #5a3070;
  margin: 0
}

.learningprogram .sidecolumn {
  display: flex;
  flex-direction: column;
  gap: 24px
}

.learningprogram .sidestat {
  background: linear-gradient(135deg, #2d0a40 0%, #B55CE0 100%);
  border-radius: 18px;
  padding: 24px;
  color: #FCF5EE;
  box-shadow: 0 5px 20px 0 #a919ac1c;
  animation: settleIn .7s cubic-bezier(0.25, 0.46, 0.45, 0.94) both
}

@keyframes settleIn {
  from {
    transform: scale(0.95);
    opacity: .7
  }

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

.learningprogram .sidestatnum {
  font-size: 41px;
  line-height: 1.1;
  font-weight: 900;
  color: #FCF5EE;
  display: block;
  margin-bottom: 8px
}

.learningprogram .sidestatnum .accent {
  color: #B55CE0
}

.learningprogram .sidestattext {
  font-size: 15px;
  line-height: 1.4;
  color: #fcf5eecc;
  margin: 0
}

.learningprogram .comparisonblock {
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 1px 6px 0 #b55ce012;
  overflow: hidden
}

.learningprogram .comparisontop {
  padding: 16px;
  background: #FCF5EE;
  border-bottom: 1px solid #b55ce026
}

.learningprogram .comparisontop h5 {
  font-size: 15px;
  line-height: 1.4;
  color: #2d0a40;
  margin: 0;
  text-transform: uppercase;
  letter-spacing: .08em
}

.learningprogram .comparisontiers {
  display: flex;
  flex-direction: column;
  gap: 0
}

.learningprogram .tier {
  padding: 16px;
  border-bottom: 1px solid #b55ce01a;
  transition: background .55s ease;
  cursor: default;
  position: relative
}

.learningprogram .tier:last-child {
  border-bottom: none
}

.learningprogram .tier.recommended {
  background: linear-gradient(110deg, #b55ce014 0%, #a919ac0d 100%);
  border-left: 3px solid #B55CE0
}

.learningprogram .tierbadge {
  display: inline-block;
  font-size: 15px;
  background: linear-gradient(110deg, #B55CE0, #A919AC);
  color: #FCF5EE;
  border-radius: 6px;
  padding: 2px 8px;
  margin-bottom: 8px
}

.learningprogram .tiername {
  font-size: 15px;
  line-height: 1.4;
  color: #2d0a40;
  font-weight: 700;
  margin: 0 0 4px
}

.learningprogram .tierdesc {
  font-size: 15px;
  line-height: 1.4;
  color: #5a3070;
  margin: 0
}

.learningprogram .outcomesec {
  padding: 80px 24px;
  background: linear-gradient(0deg, #FCF5EE 0%, #fff 100%);
  position: relative
}

.learningprogram .outcomesec .framedeco {
  position: absolute;
  top: 40px;
  left: 50%;
  transform: translateX(-50%);
  width: calc(100% - 80px);
  max-width: 1100px;
  height: calc(100% - 80px);
  border: 1px solid #b55ce01f;
  border-radius: 30px;
  pointer-events: none
}

.learningprogram .outcomesec .framedeco::before {
  content: "";
  display: block;
  position: absolute;
  inset: 4px;
  border: 1px solid #a919ac12;
  border-radius: 26px
}

.learningprogram .outcomesec .programwrap {
  position: relative;
  z-index: 1
}

.learningprogram .outcometop {
  display: flex;
  flex-direction: row;
  align-items: flex-end;
  justify-content: space-between;
  gap: 40px;
  margin-bottom: 40px
}

.learningprogram .outcomeh2 {
  font-size: 41px;
  line-height: 1.1;
  color: #2d0a40;
  margin: 0;
  flex: 1
}

.learningprogram .outcomeintro {
  font-size: 15px;
  line-height: 1.6;
  color: #5a3070;
  max-width: 360px;
  margin: 0
}

.learningprogram .testimonialgrid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  margin-bottom: 40px
}

.learningprogram .testimonialcard {
  background: #fff;
  border-radius: 18px;
  padding: 24px;
  box-shadow: 0 1px 6px 0 #b55ce012;
  display: flex;
  flex-direction: column;
  gap: 16px;
  transition: box-shadow .65s cubic-bezier(0.25, 0.46, 0.45, 0.94)
}

.learningprogram .testimonialcard:hover {
  box-shadow: 0 10px 44px 0 #b55ce01c
}

.learningprogram .tquote {
  font-size: 15px;
  line-height: 1.6;
  color: #3b1a50;
  margin: 0;
  flex: 1
}

.learningprogram .tquote::before {
  display: inline-block;
  width: 16px;
  height: 12px;
  background: linear-gradient(110deg, #B55CE0, #A919AC);
  border-radius: 6px;
  margin-right: 8px;
  vertical-align: middle;
  content: "";
  flex-shrink: 0
}

.learningprogram .tperson {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 16px
}

.learningprogram .tportrait {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  object-fit: cover;
  object-position: center;
  flex-shrink: 0;
  box-shadow: 0 1px 6px 0 #b55ce012
}

.learningprogram .tname {
  font-size: 15px;
  line-height: 1.4;
  color: #2d0a40;
  font-weight: 700;
  margin: 0
}

.learningprogram .trole {
  font-size: 15px;
  line-height: 1.4;
  color: #A919AC;
  margin: 0
}

.learningprogram .outcomerow {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  align-items: center
}

.learningprogram .instructorcard {
  background: linear-gradient(135deg, #2d0a40 0%, #3b0d52 100%);
  border-radius: 18px;
  padding: 24px;
  display: flex;
  flex-direction: row;
  gap: 16px;
  align-items: center;
  box-shadow: 0 5px 20px 0 #a919ac1c
}

.learningprogram .instructorportraitholder {
  flex-shrink: 0
}

.learningprogram .instructorportrait {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  object-fit: cover;
  object-position: center;
  border: 2px solid #b55ce080;
  box-shadow: 0 5px 20px 0 #b55ce01c
}

.learningprogram .instructortext {
  flex: 1
}

.learningprogram .instructortag {
  font-size: 15px;
  color: #B55CE0;
  text-transform: uppercase;
  letter-spacing: .08em;
  margin: 0 0 8px
}

.learningprogram .instructorname {
  font-size: 24px;
  line-height: 1.1;
  color: #FCF5EE;
  margin: 0 0 8px
}

.learningprogram .instructordesc {
  font-size: 15px;
  line-height: 1.4;
  color: #fcf5eeb3;
  margin: 0
}

.learningprogram .outcomestatsrow {
  display: flex;
  flex-direction: column;
  gap: 16px
}

.learningprogram .outcomestatitem {
  background: #FCF5EE;
  border-radius: 18px;
  padding: 16px 24px;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 16px;
  box-shadow: 0 1px 6px 0 #b55ce012
}

.learningprogram .outcomestatnum {
  font-size: 31px;
  line-height: 1.1;
  font-weight: 900;
  color: #B55CE0;
  min-width: 64px
}

.learningprogram .outcomestattext {
  font-size: 15px;
  line-height: 1.4;
  color: #3b1a50;
  margin: 0
}

.learningprogram .btnprimary {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  background: linear-gradient(110deg, #B55CE0 0%, #A919AC 100%);
  color: #FCF5EE;
  font-size: 15px;
  line-height: 1.4;
  padding: 16px 40px;
  border-radius: 30px;
  border: none;
  cursor: pointer;
  text-decoration: none;
  box-shadow: 0 5px 20px 0 #b55ce01c;
  transition: box-shadow .55s ease, transform .5s cubic-bezier(0.25, 0.46, 0.45, 0.94), background .6s ease;
  position: relative;
  overflow: hidden
}

.learningprogram .btnprimary:hover {
  box-shadow: 0 10px 44px 0 #b55ce01c;
  transform: translateY(-2px);
  background: linear-gradient(110deg, #c46ef0 0%, #B55CE0 100%);
  color: #FCF5EE;
  text-decoration: none
}

.learningprogram .btnprimary:active {
  box-shadow: inset 0 2px 8px 0 #a919ac2e;
  transform: translateY(0)
}

.learningprogram .btnprimary .btnarrow {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-right: 2px solid #FCF5EE;
  border-top: 2px solid #FCF5EE;
  transform: rotate(45deg);
  transition: transform .5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  flex-shrink: 0
}

.learningprogram .btnprimary:hover .btnarrow {
  transform: rotate(45deg) translateX(3px)
}

.learningprogram .btnoutline {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  background: transparent;
  color: #FCF5EE;
  font-size: 15px;
  line-height: 1.4;
  padding: 16px 40px;
  border-radius: 30px;
  border: 1px solid #fcf5ee66;
  cursor: pointer;
  text-decoration: none;
  transition: border-color .6s ease, background .55s ease, color .5s ease
}

.learningprogram .btnoutline:hover {
  border-color: #B55CE0;
  background: #b55ce01f;
  color: #FCF5EE;
  text-decoration: none
}

.learningprogram .btnrow {
  display: flex;
  flex-direction: row;
  gap: 16px;
  flex-wrap: wrap;
  margin-top: 40px
}

@media (max-width: 1280px) {
  .learningprogram .titleh1 {
    font-size: 41px
  }

  .learningprogram .structuresec .programwrap {
    grid-template-columns: 1fr 1.4fr 1fr;
    gap: 24px
  }
}

@media (max-width: 768px) {
  .learningprogram .titledark .programwrap {
    flex-direction: column
  }

  .learningprogram .titledark .titleleft,
  .learningprogram .titledark .titleright {
    flex: 1 1 auto;
    width: 100%
  }

  .learningprogram .titleh1 {
    font-size: 41px
  }

  .learningprogram .structuresec .programwrap {
    grid-template-columns: 1fr
  }

  .learningprogram .testimonialgrid {
    grid-template-columns: 1fr
  }

  .learningprogram .outcometop {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px
  }

  .learningprogram .outcomerow {
    grid-template-columns: 1fr
  }

  .learningprogram .outcomesec .framedeco {
    display: none
  }
}

@media (max-width: 480px) {
  .learningprogram .titledark {
    padding: 40px 16px
  }

  .learningprogram .structuresec,
  .learningprogram .outcomesec {
    padding: 40px 16px
  }

  .learningprogram .titleh1 {
    font-size: 31px
  }

  .learningprogram .structureh2,
  .learningprogram .outcomeh2 {
    font-size: 31px
  }

  .learningprogram .titlemeta {
    gap: 16px
  }

  .learningprogram .instructorcard {
    flex-direction: column;
    text-align: center
  }
}

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

.opening .maxbound {
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px
}

@keyframes diagReveal {
  from {
    opacity: 0;
    transform: translate(-18px, 18px)
  }

  to {
    opacity: 1;
    transform: translate(0, 0)
  }
}

.opening .anim1 {
  animation: diagReveal .7s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
  animation-delay: .05s
}

.opening .anim2 {
  animation: diagReveal .7s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
  animation-delay: .18s
}

.opening .anim3 {
  animation: diagReveal .7s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
  animation-delay: .31s
}

.opening .anim4 {
  animation: diagReveal .7s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
  animation-delay: .44s
}

.opening .anim5 {
  animation: diagReveal .7s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
  animation-delay: .57s
}

.opening .titleblock {
  background: #1b1225;
  padding-top: 80px;
  padding-bottom: 120px;
  position: relative
}

.opening .titleblock .concentric {
  position: absolute;
  top: 24px;
  right: 24px;
  width: 160px;
  height: 160px;
  pointer-events: none;
  overflow: hidden
}

.opening .titleblock .concentric span {
  position: absolute;
  border: 1px solid #b55ce02e;
  border-radius: 6px
}

.opening .titleblock .concentric span:nth-child(1) {
  inset: 0
}

.opening .titleblock .concentric span:nth-child(2) {
  inset: 16px
}

.opening .titleblock .concentric span:nth-child(3) {
  inset: 32px
}

.opening .titleblock .concentric span:nth-child(4) {
  inset: 48px
}

.opening .titleblock .concentric span:nth-child(5) {
  inset: 64px
}

.opening .titleblock .grid {
  display: grid;
  grid-template-columns: 1fr 420px;
  gap: 80px;
  align-items: center
}

.opening .titleblock .eyebrow {
  display: inline-block;
  font-size: 15px;
  line-height: 1.4;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #B55CE0;
  margin-bottom: 24px
}

.opening .titleblock .headline {
  font-size: 70px;
  line-height: 1.1;
  color: #fff;
  margin: 0 0 24px
}

.opening .titleblock .headline .accent {
  background: linear-gradient(110deg, #B55CE0 0%, #A919AC 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text
}

.opening .titleblock .sub {
  font-size: 15px;
  line-height: 1.6;
  color: #ffffffb8;
  max-width: 480px;
  margin: 0 0 40px
}

.opening .titleblock .actions {
  display: flex;
  flex-direction: row;
  gap: 16px;
  flex-wrap: wrap
}

.opening .titleblock .btnprimary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #B55CE0;
  color: #fff;
  font-size: 15px;
  line-height: 1.4;
  padding: 16px 40px;
  border-radius: 30px;
  border: none;
  cursor: pointer;
  transition: background .6s ease, box-shadow .5s ease;
  box-shadow: 0 5px 20px 0 #b55ce01c;
  text-decoration: none;
  overflow: hidden;
  position: relative
}

.opening .titleblock .btnprimary:hover {
  background: linear-gradient(110deg, #B55CE0 0%, #A919AC 100%);
  box-shadow: 0 10px 44px 0 #b55ce01c
}

.opening .titleblock .btnprimary .icon {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  transform: translateX(-4px);
  opacity: 0;
  transition: transform .6s cubic-bezier(0.25, 0.46, 0.45, 0.94), opacity .5s ease
}

.opening .titleblock .btnprimary:hover .icon {
  transform: translateX(0);
  opacity: 1
}

.opening .titleblock .btnprimary .label {
  transition: transform .6s cubic-bezier(0.25, 0.46, 0.45, 0.94)
}

.opening .titleblock .btnprimary:hover .label {
  transform: translateX(4px)
}

.opening .titleblock .btnsecondary {
  display: inline-flex;
  align-items: center;
  font-size: 15px;
  line-height: 1.4;
  padding: 16px 40px;
  border-radius: 30px;
  border: 1px solid #b55ce066;
  color: #ffffffd9;
  background: transparent;
  cursor: pointer;
  text-decoration: none;
  transition: border-color .6s ease, color .5s ease
}

.opening .titleblock .btnsecondary:hover {
  border-color: #B55CE0;
  color: #fff
}

.opening .titleblock .imageside {
  position: relative
}

.opening .titleblock .imgframe {
  position: relative;
  border-radius: 18px;
  overflow: hidden;
  aspect-ratio: 4/5
}

.opening .titleblock .imgframe img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block
}

.opening .titleblock .imgframe::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(160deg, #1b12252e 0%, #a919ac38 100%);
  border-radius: 18px
}

.opening .titleblock .texturebadge {
  position: absolute;
  bottom: -16px;
  left: -24px;
  background: #FCF5EE;
  border-radius: 18px;
  padding: 16px 24px;
  box-shadow: 0 10px 44px 0 #b55ce01c
}

.opening .titleblock .texturebadge .badgenum {
  font-size: 41px;
  line-height: 1.1;
  color: #B55CE0;
  display: block
}

.opening .titleblock .texturebadge .badgelabel {
  font-size: 15px;
  line-height: 1.4;
  color: #2d1a3d
}

.opening .dividerband {
  height: 4px;
  background: linear-gradient(90deg, #B55CE0 0%, #A919AC 100%)
}

.opening .valuelong {
  background: #FCF5EE;
  padding-top: 80px;
  padding-bottom: 80px
}

.opening .valuelong .inner {
  display: grid;
  grid-template-columns: 380px 1fr;
  gap: 80px;
  align-items: start
}

.opening .valuelong .imagecol {
  position: relative
}

.opening .valuelong .imgwrap {
  border-radius: 18px;
  overflow: hidden;
  position: relative
}

.opening .valuelong .imgwrap img {
  width: 100%;
  aspect-ratio: 3/4;
  object-fit: cover;
  object-position: center;
  display: block
}

.opening .valuelong .offsetcard {
  position: absolute;
  top: 40px;
  right: -24px;
  background: #fff;
  border-radius: 18px;
  padding: 16px 24px;
  box-shadow: 8px 8px 0 0 #b55ce02e 0 5px 20px 0 #b55ce01c;
  min-width: 160px
}

.opening .valuelong .offsetcard .cardnum {
  font-size: 41px;
  line-height: 1.1;
  color: #B55CE0
}

.opening .valuelong .offsetcard .cardlabel {
  font-size: 15px;
  line-height: 1.4;
  color: #2d1a3d
}

.opening .valuelong .sectionlabel {
  font-size: 15px;
  line-height: 1.4;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #A919AC;
  margin-bottom: 16px
}

.opening .valuelong .heading {
  font-size: 41px;
  line-height: 1.1;
  color: #1b1225;
  margin: 0 0 24px
}

.opening .valuelong .body {
  font-size: 15px;
  line-height: 1.6;
  color: #3a2450;
  margin: 0 0 24px
}

.opening .valuelong .pillrow {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 40px
}

.opening .valuelong .pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  border-radius: 46px;
  border: 1px solid #b55ce040;
  background: #fff;
  font-size: 15px;
  line-height: 1.4;
  color: #2d1a3d
}

.opening .valuelong .pill::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #B55CE0;
  flex-shrink: 0
}

.opening .experience {
  background: #fff;
  padding-top: 80px;
  padding-bottom: 80px
}

.opening .experience .toprow {
  text-align: center;
  margin-bottom: 40px
}

.opening .experience .sectionlabel {
  font-size: 15px;
  line-height: 1.4;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #A919AC;
  margin-bottom: 16px
}

.opening .experience .heading {
  font-size: 41px;
  line-height: 1.1;
  color: #1b1225;
  margin: 0 auto 16px;
  max-width: 600px
}

.opening .experience .sub {
  font-size: 15px;
  line-height: 1.6;
  color: #3a2450;
  max-width: 540px;
  margin: 0 auto
}

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

.opening .experience .phasecard {
  background: #FCF5EE;
  border-radius: 18px;
  padding: 40px 24px 24px;
  position: relative;
  overflow: hidden;
  clip-path: inset(0 0 0 0 round 18px);
  transition: box-shadow .6s ease, clip-path .5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  box-shadow: 0 1px 6px 0 #b55ce012
}

.opening .experience .phasecard:hover {
  box-shadow: 0 10px 44px 0 #b55ce01c;
  clip-path: inset(-2px -2px -2px -2px round 18px)
}

.opening .experience .phasecard::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #b55ce000 0%, #b55ce012 100%);
  opacity: 0;
  transition: opacity .7s ease
}

.opening .experience .phasecard:hover::before {
  opacity: 1
}

.opening .experience .phasenumber {
  position: absolute;
  top: 8px;
  right: 16px;
  font-size: 70px;
  line-height: 1.1;
  color: #b55ce014;
  pointer-events: none
}

.opening .experience .phaseicon {
  width: 40px;
  height: 40px;
  margin-bottom: 16px
}

.opening .experience .phasetitle {
  font-size: 24px;
  line-height: 1.4;
  color: #1b1225;
  margin: 0 0 8px
}

.opening .experience .phasebody {
  font-size: 15px;
  line-height: 1.6;
  color: #3a2450;
  margin: 0
}

.opening .hesitation {
  background: #1b1225;
  padding-top: 80px;
  padding-bottom: 80px;
  position: relative
}

.opening .hesitation .concentric {
  position: absolute;
  bottom: 24px;
  left: 24px;
  width: 140px;
  height: 140px;
  pointer-events: none;
  overflow: hidden
}

.opening .hesitation .concentric span {
  position: absolute;
  border: 1px solid #b55ce024;
  border-radius: 6px
}

.opening .hesitation .concentric span:nth-child(1) {
  inset: 0
}

.opening .hesitation .concentric span:nth-child(2) {
  inset: 14px
}

.opening .hesitation .concentric span:nth-child(3) {
  inset: 28px
}

.opening .hesitation .concentric span:nth-child(4) {
  inset: 42px
}

.opening .hesitation .inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center
}

.opening .hesitation .sectionlabel {
  font-size: 15px;
  line-height: 1.4;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #B55CE0;
  margin-bottom: 16px
}

.opening .hesitation .heading {
  font-size: 41px;
  line-height: 1.1;
  color: #fff;
  margin: 0 0 24px
}

.opening .hesitation .body {
  font-size: 15px;
  line-height: 1.6;
  color: #ffffffb8;
  margin: 0
}

.opening .hesitation .answercard {
  background: #b55ce014;
  border: 1px solid #b55ce038;
  border-radius: 18px;
  padding: 40px
}

.opening .hesitation .answertitle {
  font-size: 24px;
  line-height: 1.4;
  color: #fff;
  margin: 0 0 16px
}

.opening .hesitation .answerbody {
  font-size: 15px;
  line-height: 1.6;
  color: #ffffffb8;
  margin: 0 0 24px
}

.opening .hesitation .answerlist {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px
}

.opening .hesitation .answerlist li {
  font-size: 15px;
  line-height: 1.6;
  color: #ffffffd1;
  padding-left: 16px;
  position: relative
}

.opening .hesitation .answerlist li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 10px;
  width: 6px;
  height: 6px;
  border-right: 2px solid #B55CE0;
  border-top: 2px solid #B55CE0;
  transform: rotate(45deg)
}

.opening .currentfield {
  background: #FCF5EE;
  padding-top: 80px;
  padding-bottom: 80px
}

.opening .currentfield .inner {
  display: grid;
  grid-template-columns: 1fr 400px;
  gap: 80px;
  align-items: center
}

.opening .currentfield .sectionlabel {
  font-size: 15px;
  line-height: 1.4;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #A919AC;
  margin-bottom: 16px
}

.opening .currentfield .heading {
  font-size: 41px;
  line-height: 1.1;
  color: #1b1225;
  margin: 0 0 24px
}

.opening .currentfield .body {
  font-size: 15px;
  line-height: 1.6;
  color: #3a2450;
  margin: 0 0 24px
}

.opening .currentfield .statrow {
  display: flex;
  flex-direction: row;
  gap: 40px;
  margin-top: 40px
}

.opening .currentfield .statnum {
  font-size: 41px;
  line-height: 1.1;
  color: #B55CE0
}

.opening .currentfield .statlabel {
  font-size: 15px;
  line-height: 1.4;
  color: #3a2450
}

.opening .currentfield .imagecol {
  position: relative
}

.opening .currentfield .parallaxframe {
  border-radius: 18px;
  overflow: hidden;
  position: relative;
  height: 420px
}

.opening .currentfield .parallaxframe img {
  width: 100%;
  height: 120%;
  object-fit: cover;
  object-position: center;
  display: block;
  transform: translateY(0);
  transition: transform .8s cubic-bezier(0.25, 0.46, 0.45, 0.94)
}

.opening .currentfield .parallaxframe:hover img {
  transform: translateY(-8%)
}

.opening .currentfield .parallaxframe::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(170deg, #b55ce01f 0%, #a919ac2e 100%)
}

.opening .testimonials {
  background: #fff;
  padding-top: 80px;
  padding-bottom: 80px
}

.opening .testimonials .toprow {
  margin-bottom: 40px
}

.opening .testimonials .sectionlabel {
  font-size: 15px;
  line-height: 1.4;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #A919AC;
  margin-bottom: 16px
}

.opening .testimonials .heading {
  font-size: 41px;
  line-height: 1.1;
  color: #1b1225;
  margin: 0;
  max-width: 520px
}

.opening .testimonials .cardgrid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px
}

.opening .testimonials .tcard {
  background: #FCF5EE;
  border-radius: 18px;
  padding: 40px;
  position: relative;
  box-shadow: 0 1px 6px 0 #b55ce012;
  transition: box-shadow .6s ease
}

.opening .testimonials .tcard:hover {
  box-shadow: 0 10px 44px 0 #b55ce01c
}

.opening .testimonials .tcard.featured {
  background: #1b1225;
  grid-column: span 2;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: center
}

.opening .testimonials .tcard .quote {
  font-size: 15px;
  line-height: 1.6;
  color: #2d1a3d;
  margin: 0 0 24px;
  font-style: italic
}

.opening .testimonials .tcard.featured .quote {
  color: #ffffffd1;
  font-size: 24px;
  line-height: 1.4
}

.opening .testimonials .tcard .attribution {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 16px
}

.opening .testimonials .tcard .avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0
}

.opening .testimonials .tcard .avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center
}

.opening .testimonials .tcard .avatarfallback {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: linear-gradient(135deg, #B55CE0 0%, #A919AC 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0
}

.opening .testimonials .tcard .avatarfallback span {
  font-size: 15px;
  line-height: 1.4;
  color: #fff
}

.opening .testimonials .tcard .name {
  font-size: 15px;
  line-height: 1.4;
  color: #1b1225
}

.opening .testimonials .tcard.featured .name {
  color: #fff
}

.opening .testimonials .tcard .role {
  font-size: 15px;
  line-height: 1.4;
  color: #7a5a90
}

.opening .testimonials .tcard.featured .role {
  color: #ffffff8c
}

.opening .testimonials .tcard.featured .imageside {
  border-radius: 18px;
  overflow: hidden;
  aspect-ratio: 4/3
}

.opening .testimonials .tcard.featured .imageside img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block
}

.opening .reputation {
  background: #FCF5EE;
  padding-top: 80px;
  padding-bottom: 80px
}

.opening .reputation .toprow {
  text-align: center;
  margin-bottom: 40px
}

.opening .reputation .sectionlabel {
  font-size: 15px;
  line-height: 1.4;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #A919AC;
  margin-bottom: 16px
}

.opening .reputation .heading {
  font-size: 41px;
  line-height: 1.1;
  color: #1b1225;
  margin: 0 auto 16px;
  max-width: 560px
}

.opening .reputation .sub {
  font-size: 15px;
  line-height: 1.6;
  color: #3a2450;
  max-width: 480px;
  margin: 0 auto
}

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

.opening .reputation .refcard {
  background: #fff;
  border-radius: 18px;
  padding: 40px 24px;
  text-align: center;
  position: relative;
  box-shadow: 6px 6px 0 0 #b55ce024 0 1px 6px 0 #b55ce012;
  transition: box-shadow .7s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform .6s ease;
  overflow: hidden
}

.opening .reputation .refcard:hover {
  box-shadow: 10px 10px 0 0 #b55ce038 0 10px 44px 0 #b55ce01c;
  transform: translate(-2px, -2px)
}

.opening .reputation .refcard .fadednum {
  position: absolute;
  top: 0;
  right: 8px;
  font-size: 70px;
  line-height: 1.1;
  color: #b55ce00f;
  pointer-events: none
}

.opening .reputation .refcard .reftitle {
  font-size: 24px;
  line-height: 1.4;
  color: #1b1225;
  margin: 0 0 8px
}

.opening .reputation .refcard .refbody {
  font-size: 15px;
  line-height: 1.6;
  color: #3a2450;
  margin: 0
}

.opening .reputation .refcard .refaccent {
  color: #B55CE0
}

.opening .reputation .imagebanner {
  margin-top: 40px;
  border-radius: 18px;
  overflow: hidden;
  position: relative;
  height: 280px
}

.opening .reputation .imagebanner img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block
}

.opening .reputation .imagebanner::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #1b1225b8 0%, #a919ac47 100%)
}

.opening .reputation .bannertext {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  padding: 40px
}

.opening .reputation .bannerquote {
  font-size: 31px;
  line-height: 1.4;
  color: #fff;
  max-width: 640px;
  margin: 0
}

@media (max-width: 1280px) {
  .opening .titleblock .grid {
    grid-template-columns: 1fr 360px;
    gap: 40px
  }

  .opening .titleblock .headline {
    font-size: 41px
  }

  .opening .valuelong .inner {
    grid-template-columns: 320px 1fr;
    gap: 40px
  }

  .opening .experience .phasegrid {
    grid-template-columns: repeat(3, 1fr)
  }

  .opening .hesitation .inner {
    gap: 40px
  }

  .opening .currentfield .inner {
    gap: 40px
  }
}

@media (max-width: 768px) {
  .opening .titleblock {
    padding-top: 40px;
    padding-bottom: 80px
  }

  .opening .titleblock .grid {
    grid-template-columns: 1fr;
    gap: 40px
  }

  .opening .titleblock .headline {
    font-size: 41px
  }

  .opening .titleblock .imageside {
    order: -1
  }

  .opening .titleblock .imgframe {
    aspect-ratio: 16/9
  }

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

  .opening .valuelong .offsetcard {
    right: 16px;
    bottom: 16px;
    top: auto
  }

  .opening .experience .phasegrid {
    grid-template-columns: 1fr;
    gap: 16px
  }

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

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

  .opening .testimonials .cardgrid {
    grid-template-columns: 1fr
  }

  .opening .testimonials .tcard.featured {
    grid-column: span 1;
    grid-template-columns: 1fr
  }

  .opening .testimonials .tcard.featured .imageside {
    display: none
  }

  .opening .reputation .refgrid {
    grid-template-columns: 1fr
  }

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

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

@media (max-width: 480px) {
  .opening .titleblock .headline {
    font-size: 31px
  }

  .opening .titleblock .actions {
    flex-direction: column;
    gap: 8px
  }

  .opening .titleblock .btnprimary,
  .opening .titleblock .btnsecondary {
    text-align: center;
    justify-content: center
  }

  .opening .valuelong .heading,
  .opening .experience .heading,
  .opening .hesitation .heading,
  .opening .currentfield .heading,
  .opening .testimonials .heading,
  .opening .reputation .heading {
    font-size: 31px
  }

  .opening .reputation .bannerquote {
    font-size: 24px
  }

  .opening .hesitation .answercard {
    padding: 24px
  }

  .opening .reputation .imagebanner {
    height: 360px
  }

  .opening .reputation .bannertext {
    padding: 24px
  }
}

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

.services .pageinner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 24px
}

.services .divider {
  height: 2px;
  background: linear-gradient(90deg, #B55CE0 0%, #A919AC 45%, #e8ddd6 100%);
  border: none;
  margin: 0
}

.services script {
  display: none
}

.services .titlewrap {
  padding: 80px 24px 40px;
  position: relative
}

.services .titlewrap .pageinner {
  display: flex;
  flex-direction: row;
  align-items: flex-end;
  gap: 40px
}

.services .titleleft {
  flex: 1 1 0;
  min-width: 0;
  position: relative;
  z-index: 1
}

.services .titlebgnum {
  position: absolute;
  top: -24px;
  left: -16px;
  font-size: 70px;
  font-weight: 900;
  line-height: 1.1;
  color: #B55CE0;
  opacity: .07;
  pointer-events: none;
  user-select: none;
  white-space: nowrap;
  z-index: 0
}

.services .titleh1 {
  font-size: 70px;
  line-height: 1.1;
  color: #1b0e2e;
  margin: 0 0 24px;
  position: relative;
  z-index: 1
}

.services .titleh1 .marked {
  display: inline;
  background: linear-gradient(135deg, #B55CE0 0%, #A919AC 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  text-decoration: underline;
  text-decoration-color: #A919AC;
  text-underline-offset: 6px
}

.services .titledesc {
  font-size: 15px;
  line-height: 1.6;
  color: #3d2255;
  max-width: 520px;
  margin: 0
}

.services .titleright {
  flex: 0 0 340px;
  position: relative
}

.services .titleimgframe {
  position: relative;
  width: 340px;
  height: 280px
}

.services .titleimgframe::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #FCF5EE;
  border-radius: 46px 6px 46px 6px;
  z-index: 0
}

.services .titleimgframe::after {
  content: "";
  position: absolute;
  top: -8px;
  left: -8px;
  right: 8px;
  bottom: 8px;
  border: 2px solid #B55CE0;
  border-radius: 46px 6px 46px 6px;
  opacity: .35;
  z-index: 0;
  pointer-events: none
}

.services .titleimgframe img {
  position: relative;
  z-index: 1;
  width: 340px;
  height: 280px;
  object-fit: cover;
  object-position: center;
  border-radius: 46px 6px 46px 6px;
  clip-path: polygon(0 0, 88% 0, 100% 12%, 100% 100%, 12% 100%, 0 88%);
  display: block;
  transition: opacity .6s cubic-bezier(0.25, 0.46, 0.45, 0.94)
}

.services .titleimgframe img.skeleton {
  background: #d9cce8;
  opacity: 0
}

.services .titleimgframe img.loaded {
  opacity: 1
}

.services .cornerbracket {
  position: absolute;
  width: 24px;
  height: 24px;
  pointer-events: none
}

.services .cornerbracket.tl {
  top: -12px;
  left: -12px;
  border-top: 3px solid #B55CE0;
  border-left: 3px solid #B55CE0;
  border-radius: 6px 0 0 0
}

.services .cornerbracket.br {
  bottom: -12px;
  right: -12px;
  border-bottom: 3px solid #A919AC;
  border-right: 3px solid #A919AC;
  border-radius: 0 0 6px 0
}

.services .gridwrap {
  padding: 80px 24px;
  background: #FCF5EE;
  position: relative;
  overflow: hidden
}

.services .gridwrap .bgspot {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(1);
  width: 600px;
  height: 600px;
  background: radial-gradient(ellipse 60% 55% at 50% 50%, #b55ce017 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
  animation: spotpulse 6s cubic-bezier(0.25, 0.46, 0.45, 0.94) infinite alternate;
  z-index: 0
}

@keyframes spotpulse {
  0% {
    transform: translate(-50%, -50%) scale(0.85);
    opacity: .7
  }

  100% {
    transform: translate(-50%, -50%) scale(1.15);
    opacity: 1
  }
}

.services .gridwrap .pageinner {
  position: relative;
  z-index: 1
}

.services .gridlabel {
  font-size: 15px;
  line-height: 1.4;
  color: #A919AC;
  text-transform: uppercase;
  letter-spacing: .12em;
  margin: 0 0 8px
}

.services .gridh2 {
  font-size: 41px;
  line-height: 1.1;
  color: #1b0e2e;
  margin: 0 0 40px
}

.services .cardgrid {
  display: grid;
  grid-template-columns: 2fr 1.5fr 1fr;
  gap: 24px
}

.services .card {
  background: #fff;
  border-radius: 18px;
  padding: 40px 24px 24px;
  box-shadow: 0 5px 20px 0 #b55ce01c;
  position: relative;
  overflow: hidden;
  transition: box-shadow .6s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform .5s ease;
  cursor: default
}

.services .card:hover {
  box-shadow: 0 10px 44px 0 #b55ce01c;
  transform: translateY(-4px)
}

.services .card .cardfadenum {
  position: absolute;
  top: 8px;
  right: 16px;
  font-size: 70px;
  line-height: 1.1;
  font-weight: 900;
  color: #B55CE0;
  opacity: .06;
  pointer-events: none;
  user-select: none
}

.services .card .cardicon {
  width: 40px;
  height: 40px;
  margin-bottom: 16px
}

.services .card h4 {
  font-size: 24px;
  line-height: 1.4;
  color: #1b0e2e;
  margin: 0 0 8px
}

.services .card p {
  font-size: 15px;
  line-height: 1.6;
  color: #3d2255;
  margin: 0
}

.services .card.featured {
  background: linear-gradient(135deg, #B55CE0 0%, #A919AC 100%)
}

.services .card.featured h4,
.services .card.featured p {
  color: #fff
}

.services .card.featured .cardfadenum {
  color: #fff;
  opacity: .12
}

.services .card ul {
  list-style: none;
  padding: 0;
  margin: 16px 0 0
}

.services .card ul li {
  font-size: 15px;
  line-height: 1.6;
  color: #3d2255;
  padding-left: 20px;
  position: relative;
  margin-bottom: 4px
}

.services .card ul li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 9px;
  width: 8px;
  height: 8px;
  border-right: 2px solid #B55CE0;
  border-top: 2px solid #B55CE0;
  transform: rotate(45deg)
}

.services .card.featured ul li {
  color: #ffffffe6
}

.services .card.featured ul li::before {
  border-color: #fffc
}

.services .processwrap {
  position: relative
}

.services .processwrap .bgtop {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 50%;
  background: #fff;
  z-index: 0
}

.services .processwrap .bgbottom {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 50%;
  background: #1b0e2e;
  z-index: 0
}

.services .processwrap .pageinner {
  position: relative;
  z-index: 1;
  padding-top: 80px;
  padding-bottom: 80px
}

.services .processhead {
  display: flex;
  flex-direction: row;
  align-items: flex-end;
  justify-content: space-between;
  gap: 40px;
  margin-bottom: 40px
}

.services .processh2 {
  font-size: 41px;
  line-height: 1.1;
  color: #1b0e2e;
  margin: 0;
  flex: 1 1 0
}

.services .processnote {
  font-size: 15px;
  line-height: 1.6;
  color: #3d2255;
  max-width: 340px;
  margin: 0;
  flex: 0 0 340px
}

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

.services .step {
  background: #fff;
  border-radius: 18px;
  padding: 24px;
  box-shadow: 0 1px 6px 0 #b55ce012;
  position: relative;
  transition: box-shadow .7s ease, transform .6s cubic-bezier(0.25, 0.46, 0.45, 0.94)
}

.services .step:hover {
  box-shadow: 0 10px 44px 0 #b55ce01c;
  transform: translateY(-3px)
}

.services .stepnum {
  font-size: 41px;
  line-height: 1.1;
  font-weight: 900;
  color: #B55CE0;
  margin: 0 0 16px;
  display: block
}

.services .step h5 {
  font-size: 15px;
  line-height: 1.4;
  color: #1b0e2e;
  margin: 0 0 8px;
  font-weight: 700
}

.services .step p {
  font-size: 15px;
  line-height: 1.6;
  color: #3d2255;
  margin: 0
}

.services .aboutwrap {
  padding: 80px 24px;
  background: #1b0e2e;
  position: relative
}

.services .aboutwrap .bgpattern {
  position: absolute;
  inset: 0;
  background-image: linear-gradient(#b55ce00f 1px, transparent 1px), linear-gradient(90deg, #b55ce00f 1px, transparent 1px);
  background-size: 40px 40px;
  pointer-events: none;
  z-index: 0
}

.services .aboutwrap .pageinner {
  position: relative;
  z-index: 1
}

.services .aboutrow {
  display: grid;
  grid-template-columns: 1fr 1.6fr;
  gap: 40px;
  align-items: start
}

.services .aboutleft {
  display: flex;
  flex-direction: column;
  gap: 24px
}

.services .aboutimgframe {
  position: relative;
  width: 100%
}

.services .aboutimgframe::before {
  content: "";
  position: absolute;
  top: 8px;
  left: 8px;
  right: -8px;
  bottom: -8px;
  border: 2px solid #b55ce066;
  border-radius: 18px;
  pointer-events: none;
  z-index: 0
}

.services .aboutimgframe img {
  width: 100%;
  height: 260px;
  object-fit: cover;
  object-position: center;
  border-radius: 18px;
  display: block;
  position: relative;
  z-index: 1;
  transition: opacity .7s cubic-bezier(0.25, 0.46, 0.45, 0.94)
}

.services .aboutimgframe img.skeleton {
  background: #2d1a45;
  opacity: 0
}

.services .aboutimgframe img.loaded {
  opacity: 1
}

.services .aboutimgframe .cornerbracket.tl {
  top: -8px;
  left: -8px;
  border-color: #B55CE0
}

.services .aboutimgframe .cornerbracket.br {
  bottom: -8px;
  right: -8px;
  border-color: #A919AC
}

.services .abouth2 {
  font-size: 41px;
  line-height: 1.1;
  color: #fff;
  margin: 0
}

.services .aboutright {
  display: flex;
  flex-direction: column;
  gap: 24px
}

.services .reviewrow {
  display: flex;
  flex-direction: column;
  gap: 16px
}

.services .review {
  background: #ffffff0d;
  border-radius: 18px;
  padding: 24px;
  border: 1px solid #b55ce033;
  transition: background .6s ease, border-color .5s ease
}

.services .review:hover {
  background: #b55ce01a;
  border-color: #b55ce073
}

.services .reviewquote {
  font-size: 15px;
  line-height: 1.6;
  color: #ffffffd9;
  margin: 0 0 16px
}

.services .reviewperson {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 16px
}

.services .reviewportrait {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  object-fit: cover;
  object-position: center;
  flex-shrink: 0;
  border: 2px solid #b55ce080;
  transition: opacity .6s ease
}

.services .reviewportrait.skeleton {
  background: #2d1a45;
  opacity: 0
}

.services .reviewportrait.loaded {
  opacity: 1
}

.services .reviewname {
  font-size: 15px;
  line-height: 1.4;
  color: #fff;
  font-weight: 700;
  margin: 0
}

.services .reviewrole {
  font-size: 15px;
  line-height: 1.4;
  color: #b55ce0e6;
  margin: 0
}

.services .statsrow {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px
}

.services .statcard {
  background: #b55ce01f;
  border-radius: 18px;
  padding: 24px 16px;
  text-align: center;
  border: 1px solid #b55ce033;
  transition: background .7s cubic-bezier(0.25, 0.46, 0.45, 0.94)
}

.services .statcard:hover {
  background: #b55ce038
}

.services .statnum {
  font-size: 41px;
  line-height: 1.1;
  font-weight: 900;
  background: linear-gradient(135deg, #B55CE0 0%, #A919AC 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  display: block;
  margin-bottom: 8px
}

.services .statlabel {
  font-size: 15px;
  line-height: 1.4;
  color: #ffffffbf;
  margin: 0
}

.services .ctastrip {
  padding: 80px 24px;
  background: #FCF5EE;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  text-align: center
}

.services .ctastrip h3 {
  font-size: 31px;
  line-height: 1.4;
  color: #1b0e2e;
  margin: 0;
  max-width: 640px
}

.services .ctastrip p {
  font-size: 15px;
  line-height: 1.6;
  color: #3d2255;
  margin: 0;
  max-width: 520px
}

.services .btnrow {
  display: flex;
  flex-direction: row;
  gap: 16px;
  flex-wrap: wrap;
  justify-content: center
}

.services .btnprimary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 16px 40px;
  background: #B55CE0;
  color: #fff;
  font-size: 15px;
  line-height: 1.4;
  font-weight: 700;
  border: none;
  border-radius: 30px;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  transition: background .6s cubic-bezier(0.25, 0.46, 0.45, 0.94), box-shadow .5s ease;
  text-decoration: none
}

.services .btnprimary:hover {
  background: linear-gradient(135deg, #B55CE0 0%, #A919AC 100%);
  box-shadow: 0 10px 44px 0 #b55ce01c
}

.services .btnprimary:active {
  box-shadow: inset 0 2px 8px 0 #a919ac38
}

.services .btnprimary .btnarrow {
  display: inline-block;
  transform: translateX(-4px);
  opacity: 0;
  transition: transform .5s cubic-bezier(0.25, 0.46, 0.45, 0.94), opacity .5s ease
}

.services .btnprimary:hover .btnarrow {
  transform: translateX(0);
  opacity: 1
}

.services .btnprimary .btntext {
  transition: transform .5s cubic-bezier(0.25, 0.46, 0.45, 0.94)
}

.services .btnprimary:hover .btntext {
  transform: translateX(4px)
}

.services .btnsecondary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 16px 40px;
  background: transparent;
  color: #A919AC;
  font-size: 15px;
  line-height: 1.4;
  font-weight: 700;
  border: 2px solid #A919AC;
  border-radius: 30px;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  transition: background .6s cubic-bezier(0.25, 0.46, 0.45, 0.94), color .5s ease, border-color .5s ease;
  text-decoration: none
}

.services .btnsecondary:hover {
  background: linear-gradient(135deg, #B55CE0 0%, #A919AC 100%);
  color: #fff;
  border-color: transparent
}

.services .btnsecondary .btnarrow {
  display: inline-block;
  transform: translateX(-4px);
  opacity: 0;
  transition: transform .5s cubic-bezier(0.25, 0.46, 0.45, 0.94), opacity .5s ease
}

.services .btnsecondary:hover .btnarrow {
  transform: translateX(0);
  opacity: 1
}

.services .btnsecondary .btntext {
  transition: transform .5s cubic-bezier(0.25, 0.46, 0.45, 0.94)
}

.services .btnsecondary:hover .btntext {
  transform: translateX(4px)
}

@media (max-width: 1280px) {
  .services .cardgrid {
    grid-template-columns: 1fr 1fr
  }

  .services .titleh1 {
    font-size: 41px
  }

  .services .titleright {
    flex: 0 0 280px
  }

  .services .titleimgframe,
  .services .titleimgframe img {
    width: 280px;
    height: 240px
  }
}

@media (max-width: 768px) {
  .services .titlewrap .pageinner {
    flex-direction: column;
    align-items: flex-start
  }

  .services .titleright {
    flex: 0 0 auto;
    width: 100%
  }

  .services .titleimgframe,
  .services .titleimgframe img {
    width: 100%;
    height: 220px
  }

  .services .titleh1 {
    font-size: 31px
  }

  .services .cardgrid {
    grid-template-columns: 1fr
  }

  .services .stepsrow {
    grid-template-columns: 1fr 1fr
  }

  .services .aboutrow {
    grid-template-columns: 1fr
  }

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

  .services .processhead {
    flex-direction: column;
    align-items: flex-start
  }

  .services .processnote {
    flex: 0 0 auto;
    max-width: 100%
  }
}

@media (max-width: 480px) {
  .services .stepsrow {
    grid-template-columns: 1fr
  }

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

  .services .btnrow {
    flex-direction: column;
    align-items: center
  }

  .services .titlewrap,
  .services .gridwrap,
  .services .aboutwrap,
  .services .ctastrip {
    padding: 40px 16px
  }

  .services .processwrap .pageinner {
    padding: 40px 16px
  }
}

.aboutus {
  max-width: 100%;
  overflow-x: hidden;
  background: #fff
}

.aboutus .pagewrap {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 24px
}

.aboutus script {
  display: none
}

.aboutus .titleblock {
  position: relative;
  padding: 80px 0;
  background: #fff
}

.aboutus .titleblock .blobfield {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none
}

.aboutus .titleblock .blob1 {
  position: absolute;
  right: -60px;
  top: -40px;
  width: 420px;
  height: 420px;
  background: linear-gradient(135deg, #b55ce021 0%, #a919ac14 100%);
  border-radius: 46px;
  filter: blur(48px);
  animation: rotateshape 18s linear infinite
}

.aboutus .titleblock .blob2 {
  position: absolute;
  right: 80px;
  top: 60px;
  width: 200px;
  height: 200px;
  background: linear-gradient(200deg, #fcf5eee6 0%, #b55ce01f 100%);
  border-radius: 46px;
  filter: blur(28px);
  animation: rotateshape 26s linear infinite reverse
}

@keyframes rotateshape {
  0% {
    transform: rotate(0deg) scale(1)
  }

  50% {
    transform: rotate(180deg) scale(1.08)
  }

  100% {
    transform: rotate(360deg) scale(1)
  }
}

.aboutus .titleblock .pagewrap {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 40px;
  position: relative
}

.aboutus .titleleft {
  flex: 1 1 0;
  min-width: 0
}

.aboutus .titleright {
  flex: 0 0 420px;
  max-width: 420px;
  position: relative
}

.aboutus .titlelabel {
  display: inline-block;
  font-size: 15px;
  line-height: 1.4;
  color: #A919AC;
  letter-spacing: .12em;
  text-transform: uppercase;
  margin-bottom: 16px;
  padding-left: 16px;
  position: relative
}

.aboutus .titlelabel::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 100%;
  background: linear-gradient(180deg, #B55CE0 0%, #A919AC 100%);
  border-radius: 6px
}

.aboutus .titleh1 {
  font-size: 70px;
  line-height: 1.1;
  color: #1b1230;
  margin: 0 0 24px
}

.aboutus .titleh1 .gradword {
  background: linear-gradient(120deg, #B55CE0 10%, #A919AC 90%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text
}

.aboutus .titledesc {
  font-size: 15px;
  line-height: 1.6;
  color: #3d2e52;
  max-width: 440px;
  margin: 0 0 40px
}

.aboutus .titlestats {
  display: flex;
  flex-direction: row;
  gap: 40px
}

.aboutus .statitem {
  display: flex;
  flex-direction: column;
  gap: 4px
}

.aboutus .statnum {
  font-size: 41px;
  line-height: 1.1;
  color: #B55CE0;
  font-weight: 700
}

.aboutus .statlabel {
  font-size: 15px;
  line-height: 1.4;
  color: #6b4e8a
}

.aboutus .imageanchor {
  position: relative;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 10px 44px 0 #b55ce01c;
  animation: zoomsettle .8s cubic-bezier(0.25, 0.46, 0.45, 0.94) both
}

@keyframes zoomsettle {
  0% {
    transform: scale(1.10);
    opacity: .7
  }

  100% {
    transform: scale(1);
    opacity: 1
  }
}

.aboutus .imageanchor img {
  width: 100%;
  height: 380px;
  object-fit: cover;
  object-position: center;
  display: block
}

.aboutus .imageanchor::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #1b123061 0%, transparent 55%);
  border-radius: 18px;
  pointer-events: none
}

.aboutus .imgbadge {
  position: absolute;
  bottom: 24px;
  left: 24px;
  background: #ffffffed;
  border-radius: 18px;
  padding: 16px 24px;
  box-shadow: 0 5px 20px 0 #b55ce01c;
  display: flex;
  flex-direction: column;
  gap: 4px;
  z-index: 2
}

.aboutus .imgbadge .badgenum {
  font-size: 31px;
  line-height: 1.1;
  color: #A919AC;
  font-weight: 700
}

.aboutus .imgbadge .badgetext {
  font-size: 15px;
  line-height: 1.4;
  color: #3d2e52
}

.aboutus .skelwrap {
  position: relative
}

.aboutus .skelwrap::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #ede8f5 25%, #f5f0fb 50%, #ede8f5 75%);
  background-size: 200% 100%;
  animation: skelslide 1.4s ease infinite;
  border-radius: 18px;
  z-index: 1
}

.aboutus .skelwrap img {
  position: relative;
  z-index: 2
}

.aboutus .skelwrap img.loaded::before {
  display: none
}

@keyframes skelslide {
  0% {
    background-position: 200% 0
  }

  100% {
    background-position: -200% 0
  }
}

.aboutus .detailblock {
  padding: 80px 0;
  background: linear-gradient(0deg, #FCF5EE 0%, #fff 100%);
  position: relative
}

.aboutus .detailblock .ringtexture {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none
}

.aboutus .detailblock .ringtexture::before {
  content: '';
  position: absolute;
  right: -80px;
  bottom: -80px;
  width: 340px;
  height: 340px;
  border: 32px solid #b55ce012;
  border-radius: 46px
}

.aboutus .detailblock .ringtexture::after {
  content: '';
  position: absolute;
  right: 20px;
  bottom: 20px;
  width: 220px;
  height: 220px;
  border: 18px solid #a919ac0d;
  border-radius: 30px
}

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

.aboutus .detailleft {
  display: flex;
  flex-direction: column;
  gap: 40px
}

.aboutus .detailright {
  display: flex;
  flex-direction: column;
  gap: 24px
}

.aboutus .sectionlabel {
  font-size: 15px;
  line-height: 1.4;
  color: #A919AC;
  letter-spacing: .1em;
  text-transform: uppercase;
  margin-bottom: 8px
}

.aboutus .detailh2 {
  font-size: 41px;
  line-height: 1.1;
  color: #1b1230;
  margin: 0 0 16px
}

.aboutus .detailpara {
  font-size: 15px;
  line-height: 1.6;
  color: #3d2e52;
  margin: 0 0 16px
}

.aboutus .accentnotch {
  padding-left: 16px;
  position: relative
}

.aboutus .accentnotch::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background: linear-gradient(180deg, #B55CE0 0%, #A919AC 100%);
  border-radius: 6px
}

.aboutus .imagegallery {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px
}

.aboutus .galitem {
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 5px 20px 0 #b55ce01c;
  position: relative
}

.aboutus .galitem img {
  width: 100%;
  height: 180px;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform .6s cubic-bezier(0.25, 0.46, 0.45, 0.94)
}

.aboutus .galitem:hover img {
  transform: scale(1.04)
}

.aboutus .galitem::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 50%, #1b123038 100%);
  pointer-events: none;
  border-radius: 18px
}

.aboutus .galitem.tall img {
  height: 376px
}

.aboutus .galcolumn {
  display: flex;
  flex-direction: column;
  gap: 16px
}

.aboutus .galitem.short img {
  height: 180px
}

.aboutus .columndivider {
  display: grid;
  grid-template-columns: 1fr 3px 1fr;
  gap: 40px;
  align-items: start
}

.aboutus .dividerline {
  width: 3px;
  align-self: stretch;
  background: linear-gradient(180deg, #B55CE0 0%, #A919AC 60%, #a919ac1a 100%);
  border-radius: 6px;
  min-height: 200px
}

.aboutus .approachlist {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 16px
}

.aboutus .approachlist li {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 16px;
  font-size: 15px;
  line-height: 1.6;
  color: #3d2e52
}

.aboutus .approachlist li::before {
  content: '';
  flex-shrink: 0;
  margin-top: 6px;
  width: 10px;
  height: 10px;
  border-right: 2px solid #B55CE0;
  border-bottom: 2px solid #B55CE0;
  transform: rotate(-45deg)
}

.aboutus .minicard {
  background: linear-gradient(135deg, #1b1230 0%, #2d1a4a 100%);
  border-radius: 18px;
  padding: 24px;
  box-shadow: 0 10px 44px 0 #a919ac1c;
  display: flex;
  flex-direction: column;
  gap: 16px;
  animation: zoomsettle .7s cubic-bezier(0.25, 0.46, 0.45, 0.94) .2s both
}

.aboutus .minicard .minicardlabel {
  font-size: 15px;
  line-height: 1.4;
  color: #fcf5eeb3;
  text-transform: uppercase;
  letter-spacing: .09em
}

.aboutus .minicard .minicardh {
  font-size: 24px;
  line-height: 1.4;
  color: #FCF5EE;
  margin: 0
}

.aboutus .minicard .minicardrow {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 16px
}

.aboutus .minicard .portrait {
  flex-shrink: 0;
  width: 64px;
  height: 86px;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 1px 6px 0 #b55ce012
}

.aboutus .minicard .portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block
}

.aboutus .minicard .minicardperson {
  display: flex;
  flex-direction: column;
  gap: 4px
}

.aboutus .minicard .personname {
  font-size: 15px;
  line-height: 1.4;
  color: #FCF5EE;
  font-weight: 600
}

.aboutus .minicard .personrole {
  font-size: 15px;
  line-height: 1.4;
  color: #fcf5ee99
}

.aboutus .minicard .minicardquote {
  font-size: 15px;
  line-height: 1.6;
  color: #fcf5eed1;
  font-style: italic;
  border-top: 1px solid #ffffff1a;
  padding-top: 16px;
  margin: 0
}

.aboutus .reveal1 {
  animation: zoomsettle .7s cubic-bezier(0.25, 0.46, 0.45, 0.94) .1s both
}

.aboutus .reveal2 {
  animation: zoomsettle .7s cubic-bezier(0.25, 0.46, 0.45, 0.94) .25s both
}

.aboutus .reveal3 {
  animation: zoomsettle .7s cubic-bezier(0.25, 0.46, 0.45, 0.94) .4s both
}

.aboutus .reveal4 {
  animation: zoomsettle .7s cubic-bezier(0.25, 0.46, 0.45, 0.94) .55s both
}

.aboutus .ctabtn {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  background: linear-gradient(120deg, #B55CE0 0%, #A919AC 100%);
  color: #fff;
  font-size: 15px;
  line-height: 1.4;
  padding: 16px 40px;
  border-radius: 30px;
  border: none;
  cursor: pointer;
  box-shadow: 0 5px 20px 0 #b55ce01c;
  text-decoration: none;
  transition: box-shadow .6s ease, transform .5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  position: relative;
  overflow: hidden
}

.aboutus .ctabtn:hover {
  box-shadow: 0 10px 44px 0 #b55ce01c;
  transform: translateY(-2px);
  color: #fff;
  text-decoration: none
}

.aboutus .ctabtn:active {
  box-shadow: inset 0 2px 8px #a919ac2e;
  transform: translateY(0)
}

.aboutus .ctabtn .btnarrow {
  display: inline-block;
  width: 16px;
  height: 16px;
  position: relative;
  transition: transform .5s cubic-bezier(0.25, 0.46, 0.45, 0.94)
}

.aboutus .ctabtn .btnarrow::before,
.aboutus .ctabtn .btnarrow::after {
  content: '';
  position: absolute;
  background: #fff
}

.aboutus .ctabtn .btnarrow::before {
  width: 10px;
  height: 2px;
  top: 7px;
  left: 2px;
  border-radius: 6px
}

.aboutus .ctabtn .btnarrow::after {
  width: 6px;
  height: 6px;
  border-right: 2px solid #fff;
  border-top: 2px solid #fff;
  background: transparent;
  top: 4px;
  right: 2px;
  transform: rotate(45deg)
}

.aboutus .ctabtn:hover .btnarrow {
  transform: translateX(4px)
}

@media (max-width: 1280px) {
  .aboutus .titleh1 {
    font-size: 41px
  }

  .aboutus .titleright {
    flex: 0 0 360px;
    max-width: 360px
  }
}

@media (max-width: 768px) {
  .aboutus .titleblock .pagewrap {
    flex-direction: column
  }

  .aboutus .titleright {
    flex: 0 0 auto;
    max-width: 100%;
    width: 100%
  }

  .aboutus .titleh1 {
    font-size: 41px
  }

  .aboutus .titlestats {
    gap: 24px
  }

  .aboutus .detailgrid {
    grid-template-columns: 1fr
  }

  .aboutus .columndivider {
    grid-template-columns: 1fr;
    gap: 24px
  }

  .aboutus .dividerline {
    display: none
  }

  .aboutus .imagegallery {
    grid-template-columns: 1fr
  }

  .aboutus .galitem.tall img {
    height: 220px
  }
}

@media (max-width: 480px) {
  .aboutus .titleblock {
    padding: 40px 0
  }

  .aboutus .detailblock {
    padding: 40px 0
  }

  .aboutus .titleh1 {
    font-size: 31px
  }

  .aboutus .detailh2 {
    font-size: 31px
  }

  .aboutus .titlestats {
    flex-direction: column;
    gap: 16px
  }

  .aboutus .pagewrap {
    padding: 0 16px
  }

  .aboutus .statnum {
    font-size: 31px
  }
}

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

.successPage .successCard {
  background: #fff;
  border-radius: 30px;
  box-shadow: 0 10px 44px 0 #b55ce01c;
  padding: 80px 40px;
  max-width: 560px;
  width: 100%;
  text-align: center
}

.successPage .successCard .iconWrap {
  width: 72px;
  height: 72px;
  margin: 0 auto 40px;
  border-radius: 46px;
  background: linear-gradient(135deg, #B55CE0 0%, #A919AC 100%);
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  box-shadow: 0 5px 20px 0 #a919ac1c
}

.successPage .successCard .iconWrap svg {
  display: block
}

.successPage .successCard .successHeading {
  font-size: 31px;
  line-height: 1.1;
  color: #1b0a2e;
  margin: 0 0 16px
}

.successPage .successCard .successText {
  font-size: 15px;
  line-height: 1.6;
  color: #3d2255;
  margin: 0 0 40px
}

.successPage .successCard .successDivider {
  width: 48px;
  height: 2px;
  background: linear-gradient(90deg, #B55CE0 0%, #A919AC 100%);
  border-radius: 6px;
  margin: 0 auto 40px
}

.successPage .successCard .successNote {
  font-size: 15px;
  line-height: 1.4;
  color: #6b3fa0;
  margin: 0 0 40px
}

.successPage .successCard .successNote strong {
  color: #A919AC
}

.successPage .successCard .backLink {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  padding: 16px 40px;
  border-radius: 18px;
  background: linear-gradient(135deg, #B55CE0 0%, #A919AC 100%);
  color: #fff;
  font-size: 15px;
  line-height: 1.4;
  text-decoration: none;
  box-shadow: 0 5px 20px 0 #b55ce01c;
  transition: box-shadow .6s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform .5s ease;
  position: relative;
  overflow: hidden
}

.successPage .successCard .backLink:hover {
  box-shadow: 0 10px 44px 0 #b55ce01c;
  transform: translateY(-2px)
}

.successPage .successCard .backLink:focus {
  outline: 2px solid #A919AC;
  outline-offset: 4px
}

.successPage .successCard .backLink:active {
  box-shadow: inset 0 1px 6px 0 #a919ac1c;
  transform: translateY(0)
}

.successPage .successCard .backLink svg {
  flex-shrink: 0;
  transition: transform .5s ease
}

.successPage .successCard .backLink:hover svg {
  transform: translateX(-3px)
}

@media (max-width: 480px) {
  .successPage {
    padding: 40px 16px
  }

  .successPage .successCard {
    padding: 40px 24px
  }

  .successPage .successCard .successHeading {
    font-size: 24px
  }
}