html {
  box-sizing: border-box
}

body {
  margin: 0;
  font-family: 'Manrope', sans-serif;
  -webkit-text-size-adjust: 100%;
  word-break: break-word;
  overflow-wrap: break-word
}

.topbar {
  background: linear-gradient(135deg, #B74875 0%, #8a2f55 100%);
  padding: 8px 0
}

.topbar-inner {
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 48px;
  display: flex;
  align-items: center;
  gap: 24px
}

.topbar-contact {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-left: auto
}

.topbar-item {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #F3E5E9;
  font-size: 15px;
  line-height: 1.4;
  letter-spacing: .01em;
  text-decoration: none;
  transition: color .45s cubic-bezier(0.16, 1, 0.3, 1)
}

.topbar-item:hover {
  color: #fff
}

.topbar-item svg {
  flex-shrink: 0
}

.topbar-divider {
  width: 1px;
  height: 16px;
  background: #f3e5e94d
}

.sitehdr {
  background: #fff;
  border-bottom: 1px solid #F3E5E9;
  box-shadow: 2px 6px 22px -2px #b748751c;
  position: relative;
  z-index: 100
}

.sitehdr-inner {
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 48px
}

.brand-row {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 24px 0 16px;
  border-bottom: 1px solid #F3E5E9
}

.logocard {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 2px 1px 3px -2px #b7487514 2px 6px 22px -2px #b748751c;
  border: 1px solid #F3E5E9;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0
}

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

.brandname {
  font-size: 31px;
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: .01em;
  color: #2a1020;
  text-decoration: none;
  display: block
}

.brandname span {
  color: #B74875
}

.brand-accent {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 16px
}

.accent-tag {
  font-size: 15px;
  line-height: 1.4;
  letter-spacing: .02em;
  color: #B74875;
  background: #F3E5E9;
  padding: 8px 16px;
  border-radius: 0;
  font-weight: 400;
  border-left: none;
  border: 1px solid #C9AFBC
}

.accent-bar {
  width: 3px;
  height: 40px;
  background: linear-gradient(180deg, #B74875 0%, #C9AFBC 100%);
  border-radius: 0;
  flex-shrink: 0
}

.nav-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0;
  padding: 0
}

.sitenav {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0;
  list-style: none;
  margin: 0;
  padding: 0
}

.sitenav li {
  display: flex;
  align-items: stretch
}

.sitenav a {
  display: flex;
  align-items: center;
  padding: 16px 24px;
  font-size: 15px;
  line-height: 1.4;
  letter-spacing: .01em;
  font-weight: 400;
  color: #2a1020;
  text-decoration: none;
  position: relative;
  transition: color .45s cubic-bezier(0.16, 1, 0.3, 1);
  min-height: 44px
}

.sitenav a::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 24px;
  right: 24px;
  height: 2px;
  background: #B74875;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .45s cubic-bezier(0.16, 1, 0.3, 1)
}

.sitenav a:hover {
  color: #B74875
}

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

.sitenav a:focus-visible {
  outline: 2px solid #B74875;
  outline-offset: 2px;
  border-radius: 0
}

.sitenav a[aria-current="page"] {
  color: #B74875;
  font-weight: 700
}

.sitenav a[aria-current="page"]::after {
  transform: scaleX(1)
}

.hdr-deco {
  position: absolute;
  top: 0;
  right: 0;
  width: 180px;
  height: 100%;
  pointer-events: none;
  overflow: hidden
}

.hdr-deco svg {
  width: 100%;
  height: 100%
}

.siteftr {
  background: #2a1020;
  padding: 96px 0 0
}

.ftr-inner {
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 48px
}

.ftr-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 48px;
  padding-bottom: 48px
}

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

.ftr-logocard {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 2px 1px 3px -2px #b7487514 2px 6px 22px -2px #b748751c;
  border: 1px solid #c9afbc4d;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0
}

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

.ftr-brandname {
  font-size: 31px;
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: .01em;
  color: #fff;
  text-decoration: none;
  display: block
}

.ftr-brandname span {
  color: #C9AFBC
}

.ftr-desc {
  font-size: 15px;
  line-height: 1.65;
  letter-spacing: .01em;
  color: #C9AFBC;
  font-weight: 300
}

.ftr-col-label {
  font-size: 15px;
  line-height: 1.4;
  letter-spacing: .02em;
  font-weight: 700;
  color: #fff;
  margin: 0 0 16px;
  padding-bottom: 8px;
  border-bottom: 1px solid #c9afbc33
}

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

.ftr-links a {
  font-size: 15px;
  line-height: 1.65;
  letter-spacing: .01em;
  color: #C9AFBC;
  text-decoration: none;
  font-weight: 300;
  display: inline-block;
  transition: color .4s ease-in-out;
  min-height: 44px;
  display: flex;
  align-items: center
}

.ftr-links a:hover {
  color: #F3E5E9
}

.ftr-links a:focus-visible {
  outline: 2px solid #B74875;
  outline-offset: 2px
}

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

.ftr-contact-item {
  display: flex;
  align-items: flex-start;
  gap: 8px
}

.ftr-contact-item svg {
  flex-shrink: 0;
  margin-top: 2px
}

.ftr-contact-text {
  font-size: 15px;
  line-height: 1.65;
  letter-spacing: .01em;
  color: #C9AFBC;
  font-weight: 300
}

.ftr-contact-link {
  color: #C9AFBC;
  text-decoration: none;
  transition: color .4s ease-in-out
}

.ftr-contact-link:hover {
  color: #F3E5E9
}

.ftr-contact-link:focus-visible {
  outline: 2px solid #B74875;
  outline-offset: 2px
}

.ftr-bottom {
  border-top: 1px solid #c9afbc26;
  padding: 24px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px
}

.ftr-copy {
  font-size: 15px;
  line-height: 1.4;
  letter-spacing: .01em;
  color: #c9afbc99;
  font-weight: 300
}

.ftr-legal {
  display: flex;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap
}

.ftr-legal a {
  font-size: 15px;
  line-height: 1.4;
  letter-spacing: .01em;
  color: #c9afbc99;
  text-decoration: none;
  font-weight: 300;
  transition: color .4s ease-in-out;
  min-height: 44px;
  display: flex;
  align-items: center
}

.ftr-legal a:hover {
  color: #C9AFBC
}

.ftr-legal a:focus-visible {
  outline: 2px solid #B74875;
  outline-offset: 2px
}

.ckpop {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 2000;
  background: #fff;
  border: 1px solid #C9AFBC;
  border-radius: 16px;
  box-shadow: 2px 9px 60px -2px #b748751a;
  padding: 24px;
  max-width: 320px;
  width: calc(100vw - 48px);
  display: none
}

.ckpop-desc {
  font-size: 15px;
  line-height: 1.65;
  letter-spacing: .01em;
  color: #2a1020;
  margin: 0 0 8px;
  font-family: 'Manrope', sans-serif
}

.ckpop-head {
  font-size: 19px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .01em;
  color: #2a1020;
  margin: 0 0 16px;
  font-family: 'Manrope', sans-serif
}

.ckpop-actions {
  display: flex;
  align-items: center;
  gap: 16px
}

.ckaccept {
  font-size: 15px;
  line-height: 1.4;
  letter-spacing: .01em;
  font-family: 'Manrope', sans-serif;
  font-weight: 700;
  color: #B74875;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  text-decoration: underline;
  transition: color .45s cubic-bezier(0.16, 1, 0.3, 1);
  min-height: 44px
}

.ckaccept:hover {
  color: #8a2f55
}

.ckaccept:focus-visible {
  outline: 2px solid #B74875;
  outline-offset: 2px
}

.ckdismiss {
  font-size: 15px;
  line-height: 1.4;
  letter-spacing: .01em;
  font-family: 'Manrope', sans-serif;
  font-weight: 300;
  color: #C9AFBC;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  text-decoration: underline;
  transition: color .45s cubic-bezier(0.16, 1, 0.3, 1);
  min-height: 44px
}

.ckdismiss:hover {
  color: #2a1020
}

.ckdismiss:focus-visible {
  outline: 2px solid #B74875;
  outline-offset: 2px
}

@media (max-width: 900px) {
  .topbar-inner {
    padding: 0 24px
  }

  .sitehdr-inner {
    padding: 0 24px
  }

  .ftr-inner {
    padding: 0 24px
  }

  .ftr-grid {
    grid-template-columns: 1fr 1fr;
    gap: 48px
  }

  .brand-accent {
    display: none
  }
}

@media (max-width: 600px) {
  .ftr-grid {
    grid-template-columns: 1fr;
    gap: 48px
  }

  .topbar-contact {
    gap: 8px
  }

  .ftr-bottom {
    flex-direction: column;
    align-items: flex-start
  }
}

.doc-block {
  max-width: 1320px;
  margin: 0 auto;
  padding: 96px 48px
}

.doc-block h1 {
  font-size: 56px;
  line-height: 1.15;
  letter-spacing: .01em;
  color: #1b1b2e;
  margin-bottom: 48px;
  margin-top: 0
}

.doc-block h2 {
  font-size: 31px;
  line-height: 1.4;
  letter-spacing: .01em;
  color: #1b1b2e;
  margin-top: 48px;
  margin-bottom: 24px
}

.doc-block h3 {
  font-size: 19px;
  line-height: 1.4;
  letter-spacing: .02em;
  color: #B74875;
  margin-top: 48px;
  margin-bottom: 16px
}

.doc-block h4 {
  font-size: 19px;
  line-height: 1.4;
  letter-spacing: .01em;
  color: #2c2c3a;
  margin-top: 24px;
  margin-bottom: 16px
}

.doc-block h5 {
  font-size: 15px;
  line-height: 1.65;
  letter-spacing: .02em;
  color: #2c2c3a;
  text-transform: uppercase;
  margin-top: 24px;
  margin-bottom: 8px
}

.doc-block h6 {
  font-size: 15px;
  line-height: 1.65;
  letter-spacing: .02em;
  color: #5a4a54;
  margin-top: 16px;
  margin-bottom: 8px
}

.doc-block p {
  font-size: 15px;
  line-height: 1.85;
  letter-spacing: .01em;
  color: #2c2c3a;
  margin-top: 0;
  margin-bottom: 16px
}

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

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

.doc-block ul li {
  font-size: 15px;
  line-height: 1.85;
  letter-spacing: .01em;
  color: #2c2c3a;
  margin-bottom: 8px;
  padding-left: 16px;
  position: relative
}

.doc-block ul li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 13px;
  width: 5px;
  height: 5px;
  border-radius: 0;
  background-color: #B74875;
  transform: rotate(45deg)
}

.doc-block ol li {
  font-size: 15px;
  line-height: 1.85;
  letter-spacing: .01em;
  color: #2c2c3a;
  margin-bottom: 8px;
  padding-left: 16px;
  position: relative;
  counter-increment: policy-counter
}

.doc-block ol li::before {
  content: counter(policy-counter) ".";
  position: absolute;
  left: 0;
  top: 0;
  font-size: 15px;
  line-height: 1.85;
  color: #B74875;
  font-weight: 600;
  transform: translateX(-100%)
}

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

.doc-block em,
.doc-block i {
  font-style: italic;
  color: #5a4a54
}

.doc-block hr {
  border: none;
  height: 1px;
  background-color: #C9AFBC;
  opacity: .4;
  margin-top: 48px;
  margin-bottom: 48px
}

.doc-block div {
  font-size: 15px;
  line-height: 1.65;
  letter-spacing: .01em;
  color: #2c2c3a
}

@media (max-width: 768px) {
  .doc-block {
    padding: 48px 24px
  }

  .doc-block h1 {
    font-size: 31px;
    margin-bottom: 24px
  }

  .doc-block h2 {
    font-size: 19px;
    margin-top: 24px;
    margin-bottom: 16px
  }

  .doc-block h3 {
    margin-top: 24px
  }
}

@media (max-width: 480px) {
  .doc-block {
    padding: 48px 16px
  }
}

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

.abut .pg {
  max-width: 1320px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px
}

.abut .titblk {
  padding-top: 96px;
  padding-bottom: 96px;
  background-color: #fff;
  position: relative
}

.abut .titblk .dotgrid {
  position: absolute;
  top: 0;
  right: 0;
  width: 420px;
  height: 100%;
  pointer-events: none;
  overflow: hidden
}

.abut .titblk .dotgrid svg {
  width: 100%;
  height: 100%;
  opacity: .18
}

.abut .titblk .row {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: 96px
}

.abut .titblk .imgcol {
  flex: 0 0 480px;
  position: relative
}

.abut .titblk .imgframe {
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  aspect-ratio: 4/3
}

.abut .titblk .imgframe::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #b7487538 0%, #c9afbc1a 60%, transparent 100%);
  z-index: 1;
  pointer-events: none
}

.abut .titblk .imgframe img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .45s cubic-bezier(0.16, 1, 0.3, 1)
}

.abut .titblk .imgframe:hover img {
  transform: scale(1.04)
}

.abut .titblk .imgborder {
  position: absolute;
  top: 16px;
  left: 16px;
  right: -16px;
  bottom: -16px;
  border: 2px solid #C9AFBC;
  border-radius: 16px;
  pointer-events: none;
  z-index: 0
}

.abut .titblk .imgcol .imgframe {
  position: relative;
  z-index: 1
}

.abut .titblk .txtcol {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-right: 48px;
  position: relative;
  z-index: 1
}

.abut .titblk .pre {
  font-size: 15px;
  line-height: 1.65;
  color: #B74875;
  letter-spacing: .02em;
  margin-bottom: 16px;
  font-weight: 600
}

.abut .titblk .accent {
  display: block;
  width: 32px;
  height: 2px;
  background: #B74875;
  margin-bottom: 16px
}

.abut .titblk h1 {
  font-size: 56px;
  line-height: 1.15;
  letter-spacing: .01em;
  color: #1b1229;
  margin: 0 0 24px;
  font-weight: 700
}

.abut .titblk .desc {
  font-size: 19px;
  line-height: 1.65;
  color: #3d2e3a;
  margin: 0 0 24px;
  max-width: 480px
}

.abut .titblk .founded {
  font-size: 15px;
  line-height: 1.4;
  color: #7a5f6e;
  letter-spacing: .01em
}

.abut .stmtsec {
  padding-top: 96px;
  padding-bottom: 96px;
  background: linear-gradient(160deg, #F3E5E9 0%, #fff 55%, #F3E5E9 100%);
  position: relative
}

.abut .stmtsec .bgpulse {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 600px;
  height: 600px;
  pointer-events: none;
  overflow: hidden;
  border-radius: 0
}

.abut .stmtsec .bgpulse svg {
  width: 100%;
  height: 100%;
  opacity: .22
}

.abut .stmtsec .diaglines {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 200px;
  height: 200px;
  pointer-events: none;
  overflow: hidden
}

.abut .stmtsec .diaglines svg {
  width: 100%;
  height: 100%;
  opacity: .12
}

.abut .stmtsec .inner {
  position: relative;
  z-index: 1
}

.abut .stmtsec .toprow {
  display: flex;
  flex-direction: row;
  gap: 48px;
  align-items: flex-start;
  margin-bottom: 96px
}

.abut .stmtsec .stmtleft {
  flex: 0 0 340px
}

.abut .stmtsec .stmtleft .accent {
  display: block;
  width: 32px;
  height: 2px;
  background: #B74875;
  margin-bottom: 16px
}

.abut .stmtsec .stmtleft h2 {
  font-size: 31px;
  line-height: 1.4;
  letter-spacing: .01em;
  color: #1b1229;
  margin: 0;
  font-weight: 700
}

.abut .stmtsec .stmtright {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 24px;
  text-align: right
}

.abut .stmtsec .stmtright p {
  font-size: 19px;
  line-height: 1.65;
  color: #3d2e3a;
  margin: 0
}

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

.abut .stmtsec .pillar {
  background: #fff;
  border-radius: 16px;
  padding: 48px 24px 24px;
  box-shadow: 2px 6px 22px -2px #b748751c;
  display: flex;
  flex-direction: column;
  gap: 16px;
  transition: box-shadow .45s cubic-bezier(0.16, 1, 0.3, 1), transform .45s cubic-bezier(0.16, 1, 0.3, 1);
  position: relative
}

.abut .stmtsec .pillar:hover {
  box-shadow: 2px 9px 60px -2px #b748751a;
  transform: translateY(-4px)
}

.abut .stmtsec .pillar .dot {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 8px;
  height: 8px;
  border-radius: 0;
  background: #B74875;
  border-radius: 16px
}

.abut .stmtsec .pillar .ico {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center
}

.abut .stmtsec .pillar h4 {
  font-size: 19px;
  line-height: 1.4;
  color: #1b1229;
  margin: 0;
  font-weight: 700;
  letter-spacing: .01em
}

.abut .stmtsec .pillar p {
  font-size: 15px;
  line-height: 1.65;
  color: #5a4050;
  margin: 0
}

.abut .teamsec {
  padding-top: 96px;
  padding-bottom: 96px;
  background: #1b1229;
  position: relative
}

.abut .teamsec .diaglines {
  position: absolute;
  top: 0;
  left: 0;
  width: 180px;
  height: 180px;
  pointer-events: none;
  overflow: hidden
}

.abut .teamsec .diaglines svg {
  width: 100%;
  height: 100%;
  opacity: .1
}

.abut .teamsec .topbar {
  display: flex;
  flex-direction: row;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 48px
}

.abut .teamsec .topbar .accent {
  display: block;
  width: 32px;
  height: 2px;
  background: #B74875;
  margin-bottom: 16px
}

.abut .teamsec .topbar h2 {
  font-size: 31px;
  line-height: 1.4;
  color: #F3E5E9;
  margin: 0;
  font-weight: 700;
  letter-spacing: .01em
}

.abut .teamsec .topbar .sub {
  font-size: 15px;
  line-height: 1.65;
  color: #C9AFBC;
  max-width: 380px;
  text-align: right
}

.abut .teamsec .grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px
}

.abut .teamsec .card {
  display: flex;
  flex-direction: row;
  gap: 24px;
  background: #c9afbc14;
  border-radius: 16px;
  padding: 24px;
  border: 1px solid #c9afbc26;
  transition: background .5s ease-in-out, border-color .5s ease-in-out
}

.abut .teamsec .card:hover {
  background: #b7487521;
  border-color: #b748754d
}

.abut .teamsec .card .imgwrap {
  flex: 0 0 120px;
  border-radius: 16px;
  overflow: hidden;
  aspect-ratio: 4/3;
  box-shadow: 2px 1px 3px -2px #b7487514;
  transition: box-shadow .45s cubic-bezier(0.16, 1, 0.3, 1)
}

.abut .teamsec .card:hover .imgwrap {
  box-shadow: 2px 9px 60px -2px #b748751a
}

.abut .teamsec .card .imgwrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block
}

.abut .teamsec .card .info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px
}

.abut .teamsec .card .name {
  font-size: 19px;
  line-height: 1.4;
  color: #F3E5E9;
  font-weight: 700;
  letter-spacing: .01em
}

.abut .teamsec .card .role {
  font-size: 15px;
  line-height: 1.4;
  color: #B74875;
  font-weight: 600;
  letter-spacing: .02em
}

.abut .teamsec .card .bio {
  font-size: 15px;
  line-height: 1.65;
  color: #C9AFBC;
  margin: 0
}

.abut .teamsec .card .icorow {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  margin-top: 8px
}

.abut .teamsec .card .icorow .tag {
  font-size: 15px;
  line-height: 1.4;
  color: #C9AFBC;
  background: #c9afbc1a;
  border-radius: 16px;
  padding: 8px 16px;
  letter-spacing: .01em;
  transition: color .4s ease-in-out, background .4s ease-in-out
}

.abut .teamsec .card:hover .icorow .tag {
  color: #F3E5E9;
  background: #b748752e
}

@keyframes ringpulse {
  0% {
    r: 60;
    opacity: .5
  }

  100% {
    r: 280;
    opacity: 0
  }
}

.abut .stmtsec .bgpulse .ring1 {
  animation: ringpulse 4s cubic-bezier(0.16, 1, 0.3, 1) infinite
}

.abut .stmtsec .bgpulse .ring2 {
  animation: ringpulse 4s cubic-bezier(0.16, 1, 0.3, 1) 1.4s infinite
}

.abut .stmtsec .bgpulse .ring3 {
  animation: ringpulse 4s cubic-bezier(0.16, 1, 0.3, 1) 2.8s infinite
}

@media (max-width: 1024px) {
  .abut .titblk .row {
    gap: 48px
  }

  .abut .titblk .imgcol {
    flex: 0 0 360px
  }

  .abut .stmtsec .pillars {
    grid-template-columns: 1fr 1fr
  }
}

@media (max-width: 768px) {
  .abut .titblk .row {
    flex-direction: column;
    gap: 48px
  }

  .abut .titblk .imgcol {
    flex: none;
    width: 100%
  }

  .abut .titblk .txtcol {
    padding-right: 0
  }

  .abut .titblk h1 {
    font-size: 31px
  }

  .abut .stmtsec .toprow {
    flex-direction: column;
    gap: 24px
  }

  .abut .stmtsec .stmtleft {
    flex: none
  }

  .abut .stmtsec .stmtright {
    text-align: left
  }

  .abut .stmtsec .pillars {
    grid-template-columns: 1fr
  }

  .abut .teamsec .grid {
    grid-template-columns: 1fr
  }

  .abut .teamsec .topbar {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px
  }

  .abut .teamsec .topbar .sub {
    text-align: left
  }

  .abut .titblk .dotgrid {
    width: 100%;
    opacity: .08
  }
}

@media (max-width: 480px) {
  .abut .teamsec .card {
    flex-direction: column
  }

  .abut .teamsec .card .imgwrap {
    flex: none;
    width: 100%
  }
}

.abut a:focus-visible,
.abut button:focus-visible {
  outline: 3px solid #B74875 !important;
  outline-offset: 3px !important
}

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

.bys .wrap {
  max-width: 1320px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px
}

.bys .titblk {
  position: relative;
  padding-top: 96px;
  padding-bottom: 96px;
  background: #f3e5e9;
  background-image: radial-gradient(ellipse at 20% 30%, #b748752e 0%, transparent 55%), radial-gradient(ellipse at 80% 10%, #c9afbc38 0%, transparent 50%), radial-gradient(ellipse at 60% 80%, #b748751a 0%, transparent 45%), radial-gradient(ellipse at 10% 85%, #c9afbc26 0%, transparent 40%);
  container-type: inline-size
}

.bys .titblk::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 0% 0%, #b7487521 0%, transparent 40%), radial-gradient(ellipse at 100% 100%, #c9afbc2e 0%, transparent 40%);
  pointer-events: none
}

.bys .blob1 {
  position: absolute;
  width: 320px;
  height: 320px;
  border-radius: 16px;
  background: #b7487517;
  filter: blur(48px);
  top: -48px;
  right: 8%;
  pointer-events: none
}

.bys .blob2 {
  position: absolute;
  width: 200px;
  height: 200px;
  border-radius: 16px;
  background: #c9afbc2e;
  filter: blur(36px);
  bottom: 16px;
  left: 4%;
  pointer-events: none
}

.bys .titinner {
  position: relative;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 48px
}

.bys .tittext {
  flex: 1 1 0;
  min-width: 0
}

.bys .accentline {
  display: block;
  width: 40px;
  height: 3px;
  background: #B74875;
  margin-bottom: 16px;
  border-radius: 0
}

.bys .tittext h1 {
  font-size: 56px;
  line-height: 1.15;
  letter-spacing: .01em;
  color: #2a1520;
  margin: 0 0 24px
}

.bys .tittext h1 .acc {
  color: #B74875;
  font-style: italic
}

.bys .tittext p {
  font-size: 19px;
  line-height: 1.65;
  color: #3d1e2c;
  margin: 0 0 24px;
  max-width: 480px
}

.bys .titbadge {
  display: inline-block;
  background: #B74875;
  color: #fff;
  font-size: 15px;
  line-height: 1.4;
  letter-spacing: .02em;
  padding: 8px 16px;
  border-radius: 0;
  font-weight: 600
}

.bys .titimg {
  flex: 0 0 420px;
  position: relative
}

.bys .imgframe {
  width: 420px;
  aspect-ratio: 4/3;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 2px 9px 60px -2px #b748751a;
  position: relative
}

.bys .imgframe img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: sepia(0.18) saturate(1.1) brightness(0.97);
  opacity: .88;
  transition: opacity .45s cubic-bezier(0.16, 1, 0.3, 1)
}

.bys .imgframe::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(160deg, #b7487521 0%, transparent 60%);
  pointer-events: none;
  border-radius: 16px
}

.bys .imgframe:hover img {
  opacity: 1
}

.bys .divider1 {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 16px 0;
  overflow: hidden
}

.bys .diam {
  width: 7px;
  height: 7px;
  background: #C9AFBC;
  transform: rotate(45deg);
  flex-shrink: 0
}

.bys .diam.vivid {
  background: #B74875
}

.bys .prereqs {
  padding-top: 96px;
  padding-bottom: 96px;
  background: #fff;
  position: relative;
  container-type: inline-size
}

.bys .prereqs::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 95% 5%, #c9afbc21 0%, transparent 45%), radial-gradient(ellipse at 5% 95%, #b7487512 0%, transparent 40%);
  pointer-events: none
}

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

.bys .prereqsleft {
  position: relative
}

.bys .prereqsleft .accentline {
  margin-bottom: 16px
}

.bys .prereqsleft h2 {
  font-size: 31px;
  line-height: 1.4;
  letter-spacing: .01em;
  color: #2a1520;
  margin: 0 0 16px
}

.bys .prereqsleft p {
  font-size: 15px;
  line-height: 1.65;
  color: #4a2535;
  margin: 0 0 24px
}

.bys .dashedconn {
  border: none;
  border-top: 2px dashed #C9AFBC;
  margin: 24px 0;
  width: 80%
}

.bys .prereqsleft .note {
  font-size: 15px;
  line-height: 1.85;
  color: #7a4d60;
  background: #f3e5e9;
  border-radius: 16px;
  padding: 16px
}

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

.bys .reqcard {
  background: #fff;
  border-radius: 16px;
  padding: 24px;
  box-shadow: 2px 6px 22px -2px #b748751c;
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 16px;
  transition: box-shadow .42s cubic-bezier(0.16, 1, 0.3, 1), transform .42s cubic-bezier(0.16, 1, 0.3, 1);
  position: relative
}

.bys .reqcard::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 32px;
  background: linear-gradient(to top, #b7487512, transparent);
  border-radius: 0 0 16px 16px;
  pointer-events: none
}

.bys .reqcard:hover {
  box-shadow: 2px 9px 60px -2px #b748751a;
  transform: translateY(-2px)
}

.bys .reqicon {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 0;
  background: #f3e5e9;
  display: flex;
  align-items: center;
  justify-content: center
}

.bys .reqicon svg {
  width: 22px;
  height: 22px
}

.bys .reqtext h5 {
  font-size: 15px;
  line-height: 1.4;
  letter-spacing: .02em;
  color: #2a1520;
  margin: 0 0 8px;
  font-weight: 700
}

.bys .reqtext p {
  font-size: 15px;
  line-height: 1.65;
  color: #5a3348;
  margin: 0
}

.bys .divider2 {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 16px 0;
  overflow: hidden
}

.bys .stepblk {
  padding-top: 96px;
  padding-bottom: 96px;
  background: #f3e5e9;
  position: relative;
  container-type: inline-size
}

.bys .stepblk::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 0%, #b7487517 0%, transparent 55%), radial-gradient(ellipse at 0% 100%, #c9afbc26 0%, transparent 45%);
  pointer-events: none
}

.bys .stephead {
  text-align: center;
  margin-bottom: 48px;
  position: relative
}

.bys .stephead .accentline {
  margin-left: auto;
  margin-right: auto
}

.bys .stephead h2 {
  font-size: 31px;
  line-height: 1.4;
  letter-spacing: .01em;
  color: #2a1520;
  margin: 0 0 16px
}

.bys .stephead p {
  font-size: 19px;
  line-height: 1.65;
  color: #4a2535;
  margin: 0 auto;
  max-width: 560px
}

.bys .steprow {
  display: flex;
  flex-direction: row;
  gap: 24px
}

.bys .step {
  flex: 1 1 0;
  background: #fff;
  border-radius: 16px;
  padding: 24px;
  box-shadow: 2px 1px 3px -2px #b7487514;
  position: relative;
  transition: box-shadow .5s ease-in-out
}

.bys .step::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40px;
  background: linear-gradient(to top, #b7487517, transparent);
  border-radius: 0 0 16px 16px;
  pointer-events: none
}

.bys .step:hover {
  box-shadow: 2px 6px 22px -2px #b748751c
}

.bys .stepnum {
  font-size: 56px;
  line-height: 1.15;
  font-weight: 800;
  color: #f3e5e9;
  letter-spacing: -.02em;
  margin-bottom: 8px;
  display: block
}

.bys .step h5 {
  font-size: 19px;
  line-height: 1.4;
  color: #2a1520;
  margin: 0 0 8px;
  font-weight: 700;
  letter-spacing: .01em
}

.bys .step p {
  font-size: 15px;
  line-height: 1.65;
  color: #5a3348;
  margin: 0
}

.bys .stepcycle {
  animation: cyclehl 3.2s ease-in-out infinite
}

@keyframes cyclehl {

  0%,
  100% {
    box-shadow: 2px 1px 3px -2px #b7487514
  }

  33% {
    box-shadow: 2px 6px 22px -2px #b748752e
  }

  66% {
    box-shadow: 2px 1px 3px -2px #b7487514
  }
}

.bys .step:nth-child(1) {
  animation-delay: 0s
}

.bys .step:nth-child(2) {
  animation-delay: 1.06s
}

.bys .step:nth-child(3) {
  animation-delay: 2.13s
}

.bys .divider3 {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 16px 0;
  overflow: hidden;
  background: #f3e5e9
}

.bys .expblk {
  padding-top: 96px;
  padding-bottom: 96px;
  background: #2a1520;
  position: relative;
  container-type: inline-size
}

.bys .expblk::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 0% 0%, #b7487538 0%, transparent 40%), radial-gradient(ellipse at 100% 100%, #c9afbc1f 0%, transparent 40%), radial-gradient(ellipse at 50% 50%, #b748750f 0%, transparent 60%);
  pointer-events: none
}

.bys .expinner {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 48px;
  align-items: start;
  position: relative
}

.bys .exprich {
  display: flex;
  flex-direction: column;
  gap: 24px
}

.bys .exprich .accentline {
  background: #C9AFBC
}

.bys .exprich h2 {
  font-size: 31px;
  line-height: 1.4;
  letter-spacing: .01em;
  color: #f3e5e9;
  margin: 0 0 8px
}

.bys .exprich p {
  font-size: 15px;
  line-height: 1.65;
  color: #C9AFBC;
  margin: 0
}

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

.bys .expitem {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 16px;
  background: #c9afbc12;
  border-radius: 16px;
  padding: 16px;
  transition: background .38s cubic-bezier(0.16, 1, 0.3, 1)
}

.bys .expitem:hover {
  background: #b7487526
}

.bys .expitem svg {
  flex-shrink: 0;
  margin-top: 2px
}

.bys .expitem h6 {
  font-size: 15px;
  line-height: 1.4;
  color: #f3e5e9;
  margin: 0 0 4px;
  font-weight: 700;
  letter-spacing: .02em
}

.bys .expitem p {
  font-size: 15px;
  line-height: 1.65;
  color: #C9AFBC;
  margin: 0
}

.bys .expmin {
  display: flex;
  flex-direction: column;
  gap: 24px;
  text-align: right
}

.bys .expmin .accentline {
  background: #B74875;
  margin-left: auto;
  margin-right: 0
}

.bys .expmin h3 {
  font-size: 19px;
  line-height: 1.4;
  color: #f3e5e9;
  margin: 0 0 8px;
  letter-spacing: .01em
}

.bys .expmin p {
  font-size: 15px;
  line-height: 1.85;
  color: #C9AFBC;
  margin: 0
}

.bys .ctabox {
  background: #b7487526;
  border-radius: 16px;
  padding: 24px;
  text-align: right;
  border: 1px solid #b7487547
}

.bys .ctabox p {
  font-size: 15px;
  line-height: 1.65;
  color: #C9AFBC;
  margin: 0 0 16px
}

.bys .ctabtn {
  display: inline-block;
  background: #B74875;
  color: #fff;
  font-size: 19px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: .01em;
  padding: 16px 24px;
  border-radius: 16px;
  text-decoration: none;
  position: relative;
  overflow: hidden;
  transition: background .45s cubic-bezier(0.16, 1, 0.3, 1), box-shadow .45s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 2px 6px 22px -2px #b748751c
}

.bys .ctabtn:hover {
  background: #9a3460;
  box-shadow: 2px 9px 60px -2px #b7487533
}

.bys .ctabtn:focus-visible {
  outline: 3px solid #B74875 !important;
  outline-offset: 3px !important
}

.bys .ripple {
  position: absolute;
  border-radius: 16px;
  background: #ffffff40;
  transform: scale(0);
  animation: ripout .52s cubic-bezier(0.16, 1, 0.3, 1) forwards;
  pointer-events: none
}

@keyframes ripout {
  to {
    transform: scale(4);
    opacity: 0
  }
}

.bys .reqcard:focus-visible,
.bys .step:focus-visible {
  outline: 3px solid #B74875 !important;
  outline-offset: 2px !important
}

@media (max-width: 900px) {
  .bys .titinner {
    flex-direction: column
  }

  .bys .titimg {
    flex: 0 0 auto;
    width: 100%
  }

  .bys .imgframe {
    width: 100%
  }

  .bys .prereqsgrid {
    grid-template-columns: 1fr
  }

  .bys .steprow {
    flex-direction: column
  }

  .bys .expinner {
    grid-template-columns: 1fr
  }

  .bys .expmin {
    text-align: left
  }

  .bys .expmin .accentline {
    margin-left: 0;
    margin-right: auto
  }

  .bys .tittext h1 {
    font-size: 31px
  }
}

@media (max-width: 600px) {

  .bys .titblk,
  .bys .prereqs,
  .bys .stepblk,
  .bys .expblk {
    padding-top: 48px;
    padding-bottom: 48px
  }
}

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

.opn .pw {
  max-width: 1320px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px
}

.opn .accentline {
  display: block;
  width: 40px;
  height: 2px;
  background: #B74875;
  margin-bottom: 16px
}

.opn .accentline.right {
  margin-left: auto
}

.opn .titblk {
  padding-top: 96px;
  padding-bottom: 96px;
  position: relative;
  background: #fff
}

.opn .titblk .pw {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 48px
}

.opn .titgrid {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden
}

.opn .titgrid svg {
  width: 100%;
  height: 100%;
  opacity: .04
}

.opn .tittext {
  flex: 1 1 0;
  min-width: 0;
  padding-top: 16px
}

.opn .titstrip {
  width: 260px;
  flex-shrink: 0;
  position: relative;
  overflow: hidden;
  border-radius: 16px
}

.opn .titstrip img {
  width: 260px;
  height: 346px;
  object-fit: cover;
  display: block;
  border-radius: 16px;
  filter: blur(0px);
  -webkit-mask-image: radial-gradient(ellipse 80% 80% at 50% 50%, #000 60%, transparent 100%);
  mask-image: radial-gradient(ellipse 80% 80% at 50% 50%, #000 60%, transparent 100%)
}

.opn .titlabel {
  font-size: 15px;
  line-height: 1.4;
  letter-spacing: .02em;
  color: #B74875;
  margin-bottom: 16px;
  font-weight: 600
}

.opn .tith1 {
  font-size: 56px;
  line-height: 1.15;
  letter-spacing: .01em;
  color: #1a0a12;
  margin-bottom: 24px;
  font-weight: 800
}

.opn .tith1 span {
  display: block
}

.opn .tith1 .drop1,
.opn .tith1 .drop2,
.opn .tith1 .drop3 {
  display: inline-block;
  opacity: 0;
  transform: translateY(-28px);
  animation: letterdrop .45s cubic-bezier(0.16, 1, 0.3, 1) forwards
}

.opn .tith1 .drop1 {
  animation-delay: .05s
}

.opn .tith1 .drop2 {
  animation-delay: .22s
}

.opn .tith1 .drop3 {
  animation-delay: .38s
}

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

.opn .titdesc {
  font-size: 19px;
  line-height: 1.65;
  letter-spacing: .01em;
  color: #3d1a2b;
  max-width: 540px;
  margin-bottom: 48px
}

.opn .titcta {
  display: inline-block;
  background: #B74875;
  color: #fff;
  font-size: 19px;
  font-weight: 700;
  letter-spacing: .01em;
  line-height: 1.4;
  padding: 16px 48px;
  border-radius: 16px;
  border: none;
  cursor: pointer;
  text-decoration: none;
  transition: background .45s cubic-bezier(0.16, 1, 0.3, 1), box-shadow .45s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 2px 6px 22px -2px #b748751c;
  position: relative;
  overflow: hidden
}

.opn .titcta:hover {
  background: #8f2d56;
  box-shadow: 2px 9px 60px -2px #b748752e
}

.opn .titcta:focus {
  outline: 2px solid #B74875;
  outline-offset: 4px
}

.opn .titcta .ripple {
  position: absolute;
  border-radius: 16px;
  background: #ffffff40;
  transform: scale(0);
  animation: ripout .55s cubic-bezier(0.16, 1, 0.3, 1) forwards;
  pointer-events: none
}

@keyframes ripout {
  to {
    transform: scale(4);
    opacity: 0
  }
}

.opn .aprsec {
  padding-top: 96px;
  padding-bottom: 96px;
  background: linear-gradient(105deg, #F3E5E9 0%, #fff 60%)
}

.opn .aprsec .pw {
  display: flex;
  flex-direction: column;
  gap: 48px
}

.opn .aprhead {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 48px
}

.opn .aprtextcol {
  flex: 1 1 0;
  min-width: 0
}

.opn .aprimg {
  width: 380px;
  flex-shrink: 0;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 2px 6px 22px -2px #b748751c;
  transition: box-shadow .5s ease-in-out
}

.opn .aprimg:hover {
  box-shadow: 2px 9px 60px -2px #b748752e
}

.opn .aprimg img {
  width: 380px;
  height: 285px;
  object-fit: cover;
  display: block;
  aspect-ratio: 4/3
}

.opn .aprh2 {
  font-size: 31px;
  line-height: 1.4;
  letter-spacing: .01em;
  color: #1a0a12;
  font-weight: 700;
  margin-bottom: 16px
}

.opn .aprdesc {
  font-size: 15px;
  line-height: 1.65;
  letter-spacing: .01em;
  color: #3d1a2b;
  margin-bottom: 16px
}

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

.opn .step {
  background: #fff;
  border-radius: 16px;
  padding: 24px;
  box-shadow: 2px 1px 3px -2px #b7487514;
  transition: box-shadow .42s cubic-bezier(0.16, 1, 0.3, 1)
}

.opn .step:hover {
  box-shadow: 2px 6px 22px -2px #b7487524
}

.opn .stepnum {
  font-size: 31px;
  font-weight: 800;
  color: #B74875;
  line-height: 1.15;
  letter-spacing: .01em;
  margin-bottom: 8px
}

.opn .steph {
  font-size: 15px;
  font-weight: 700;
  color: #1a0a12;
  line-height: 1.4;
  letter-spacing: .01em;
  margin-bottom: 8px
}

.opn .stepdesc {
  font-size: 15px;
  line-height: 1.65;
  color: #3d1a2b;
  letter-spacing: .01em
}

.opn .supsec {
  padding-top: 96px;
  padding-bottom: 96px;
  background: #fff;
  border-top: 2px solid #B74875
}

.opn .supsec .pw {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 48px
}

.opn .supimgcol {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 24px
}

.opn .supimgwrap {
  width: 300px;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 2px 6px 22px -2px #c9afbc2e;
  transition: box-shadow .48s ease-in-out
}

.opn .supimgwrap:hover {
  box-shadow: 2px 9px 60px -2px #b7487529
}

.opn .supimgwrap img {
  width: 300px;
  height: 225px;
  object-fit: cover;
  display: block;
  aspect-ratio: 4/3
}

.opn .supimgwrap2 {
  width: 300px;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 2px 1px 3px -2px #b7487514;
  transition: box-shadow .48s ease-in-out
}

.opn .supimgwrap2:hover {
  box-shadow: 2px 9px 60px -2px #b7487529
}

.opn .supimgwrap2 img {
  width: 300px;
  height: 225px;
  object-fit: cover;
  display: block;
  aspect-ratio: 4/3
}

.opn .suptextcol {
  flex: 1 1 0;
  min-width: 0
}

.opn .suph2 {
  font-size: 31px;
  line-height: 1.4;
  letter-spacing: .01em;
  color: #1a0a12;
  font-weight: 700;
  margin-bottom: 16px
}

.opn .supdesc {
  font-size: 15px;
  line-height: 1.65;
  letter-spacing: .01em;
  color: #3d1a2b;
  margin-bottom: 24px
}

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

.opn .supitem {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 16px;
  padding: 16px;
  border-radius: 16px;
  background: #F3E5E9;
  transition: background .42s cubic-bezier(0.16, 1, 0.3, 1)
}

.opn .supitem:hover {
  background: #e8cdd7
}

.opn .supicon {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center
}

.opn .supitemtext {
  font-size: 15px;
  line-height: 1.65;
  color: #1a0a12;
  letter-spacing: .01em
}

.opn .supitemhead {
  font-weight: 700;
  display: block;
  margin-bottom: 4px
}

.opn .gapsec {
  padding-top: 96px;
  padding-bottom: 96px;
  background: linear-gradient(120deg, #fff 0%, #F3E5E9 55%, #C9AFBC 100%)
}

.opn .gapsec .pw {
  display: flex;
  flex-direction: column;
  gap: 48px
}

.opn .gaptop {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 48px
}

.opn .gaptextcol {
  flex: 1 1 0;
  min-width: 0;
  text-align: right
}

.opn .gaph2 {
  font-size: 31px;
  line-height: 1.4;
  letter-spacing: .01em;
  color: #1a0a12;
  font-weight: 700;
  margin-bottom: 16px
}

.opn .gapdesc {
  font-size: 15px;
  line-height: 1.65;
  letter-spacing: .01em;
  color: #3d1a2b;
  margin-bottom: 16px
}

.opn .gapimgwrap {
  width: 340px;
  flex-shrink: 0;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 2px 6px 22px -2px #b748751c;
  transition: box-shadow .5s cubic-bezier(0.16, 1, 0.3, 1)
}

.opn .gapimgwrap:hover {
  box-shadow: 2px 9px 60px -2px #b7487533
}

.opn .gapimgwrap img {
  width: 340px;
  height: 255px;
  object-fit: cover;
  display: block;
  aspect-ratio: 4/3
}

.opn .gaparrow {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 48px
}

.opn .gapnum {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px
}

.opn .gapnumval {
  font-size: 56px;
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: .01em;
  color: #B74875
}

.opn .gapnumlabel {
  font-size: 15px;
  line-height: 1.4;
  letter-spacing: .02em;
  color: #3d1a2b;
  text-align: center
}

.opn .arrowsvg {
  flex-shrink: 0
}

.opn .bracketblock {
  position: relative;
  padding: 24px 48px;
  background: #fff;
  border-radius: 16px;
  box-shadow: 2px 1px 3px -2px #b7487514
}

.opn .brace {
  position: absolute;
  top: 16px;
  bottom: 16px;
  width: 8px;
  border: 2px solid #B74875;
  border-radius: 0
}

.opn .braceleft {
  left: 16px;
  border-right: none;
  border-radius: 16px 0 0 16px
}

.opn .braceright {
  right: 16px;
  border-left: none;
  border-radius: 0 16px 16px 0
}

.opn .bracequote {
  font-size: 19px;
  line-height: 1.65;
  letter-spacing: .01em;
  color: #1a0a12;
  text-align: center
}

@media (max-width: 900px) {
  .opn .titblk .pw {
    flex-direction: column
  }

  .opn .titstrip {
    width: 100%
  }

  .opn .titstrip img {
    width: 100%;
    height: 220px
  }

  .opn .tith1 {
    font-size: 31px
  }

  .opn .aprhead {
    flex-direction: column
  }

  .opn .aprimg {
    width: 100%
  }

  .opn .aprimg img {
    width: 100%;
    height: auto
  }

  .opn .aprsteps {
    grid-template-columns: 1fr
  }

  .opn .supsec .pw {
    flex-direction: column
  }

  .opn .supimgcol {
    flex-direction: row;
    width: 100%
  }

  .opn .supimgwrap,
  .opn .supimgwrap2 {
    width: 50%;
    flex: 1 1 0
  }

  .opn .supimgwrap img,
  .opn .supimgwrap2 img {
    width: 100%;
    height: auto
  }

  .opn .gaptop {
    flex-direction: column
  }

  .opn .gaptextcol {
    text-align: left
  }

  .opn .gapimgwrap {
    width: 100%
  }

  .opn .gapimgwrap img {
    width: 100%;
    height: auto
  }

  .opn .gaparrow {
    flex-direction: column
  }

  .opn .gaptextcol .accentline {
    margin-left: 0
  }
}

@media (max-width: 600px) {
  .opn .supimgcol {
    flex-direction: column
  }

  .opn .supimgwrap,
  .opn .supimgwrap2 {
    width: 100%
  }

  .opn .titcta {
    padding: 16px 24px;
    font-size: 15px
  }

  .opn .gapnumval {
    font-size: 31px
  }
}

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

.ctus .pgwrap {
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 48px
}

.ctus .titblock {
  padding: 96px 0 48px;
  position: relative
}

.ctus .titblock .pgwrap {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: start
}

.ctus .titcol {
  padding: 48px 0
}

.ctus .accentline {
  width: 40px;
  height: 3px;
  background: #B74875;
  margin-bottom: 24px;
  border-radius: 0
}

.ctus .titcol h1 {
  font-size: 56px;
  line-height: 1.15;
  letter-spacing: .01em;
  color: #1b1b1b;
  margin: 0 0 24px
}

.ctus .titcol p {
  font-size: 19px;
  line-height: 1.65;
  color: #3a2d35;
  margin: 0 0 16px
}

.ctus .imgcol {
  position: relative;
  border-radius: 16px;
  overflow: hidden
}

.ctus .imgcol img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  display: block;
  border-radius: 16px
}

.ctus .imgoverlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, #b748758c 0%, #c9afbc2e 60%, transparent 100%);
  border-radius: 16px
}

.ctus .stripedeco {
  position: absolute;
  top: 0;
  right: 0;
  width: 340px;
  height: 100%;
  pointer-events: none;
  opacity: .04;
  background-image: repeating-linear-gradient(135deg, #B74875 0px, #B74875 2px, transparent 2px, transparent 18px);
  z-index: 0
}

.ctus .titblock .pgwrap>* {
  position: relative;
  z-index: 1
}

.ctus .infostrip {
  background: #F3E5E9;
  padding: 48px 0
}

.ctus .infostrip .pgwrap {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 24px;
  align-items: stretch
}

.ctus .icard {
  background: #fff;
  border-radius: 16px;
  padding: 24px;
  box-shadow: 2px 6px 22px -2px #b748751c;
  display: flex;
  flex-direction: column;
  gap: 16px;
  transition: box-shadow .45s cubic-bezier(0.16, 1, 0.3, 1), transform .45s cubic-bezier(0.16, 1, 0.3, 1)
}

.ctus .icard:hover {
  box-shadow: 2px 9px 60px -2px #b748751a;
  transform: translateY(-3px)
}

.ctus .icard svg {
  flex-shrink: 0
}

.ctus .icard h4 {
  font-size: 15px;
  line-height: 1.4;
  letter-spacing: .02em;
  color: #B74875;
  margin: 0;
  text-transform: uppercase
}

.ctus .icard p {
  font-size: 19px;
  line-height: 1.4;
  color: #1b1b1b;
  margin: 0
}

.ctus .icard a {
  color: #1b1b1b;
  text-decoration: none;
  transition: color .4s ease-in-out
}

.ctus .icard a:hover {
  color: #B74875
}

.ctus .icard .sub {
  font-size: 15px;
  color: #5a4550;
  line-height: 1.65;
  margin: 0
}

.ctus .formblock {
  padding: 96px 0;
  position: relative;
  background: #fff
}

.ctus .formbg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden
}

.ctus .formbg::before {
  content: "";
  position: absolute;
  width: 600px;
  height: 600px;
  border-radius: 16px;
  background: radial-gradient(ellipse at 30% 40%, #b7487512 0%, #c9afbc0d 50%, transparent 80%);
  top: -100px;
  left: -200px
}

.ctus .formbg::after {
  content: "";
  position: absolute;
  width: 500px;
  height: 500px;
  background: radial-gradient(ellipse at 70% 60%, #f3e5e999 0%, transparent 70%);
  bottom: -80px;
  right: -100px;
  border-radius: 16px
}

.ctus .mathdeco {
  position: absolute;
  right: 80px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 320px;
  line-height: 1.15;
  color: transparent;
  -webkit-text-stroke: 1px #b748750f;
  pointer-events: none;
  user-select: none;
  z-index: 0;
  letter-spacing: -.02em
}

.ctus .formblock .pgwrap {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 5fr 7fr;
  gap: 96px;
  align-items: start
}

.ctus .formlead {
  padding-top: 24px
}

.ctus .formlead .accentline {
  margin-left: auto;
  margin-right: 0
}

.ctus .formlead h2 {
  font-size: 31px;
  line-height: 1.4;
  letter-spacing: .01em;
  color: #1b1b1b;
  margin: 0 0 16px;
  text-align: right
}

.ctus .formlead p {
  font-size: 15px;
  line-height: 1.65;
  color: #3a2d35;
  margin: 0;
  text-align: right
}

.ctus .form {
  background: #fff;
  border-radius: 16px;
  padding: 48px;
  box-shadow: 2px 6px 22px -2px #b748751c
}

.ctus .frow {
  margin-bottom: 24px;
  display: flex;
  flex-direction: column;
  gap: 8px
}

.ctus .frow label {
  font-size: 15px;
  line-height: 1.4;
  color: #3a2d35;
  letter-spacing: .01em
}

.ctus .frow input,
.ctus .frow select,
.ctus .frow textarea {
  width: 100%;
  padding: 16px;
  border: 1.5px solid #C9AFBC;
  border-radius: 16px;
  font-size: 15px;
  line-height: 1.4;
  color: #1b1b1b;
  background: #fff;
  box-sizing: border-box;
  transition: border-color .45s cubic-bezier(0.16, 1, 0.3, 1), box-shadow .45s cubic-bezier(0.16, 1, 0.3, 1);
  outline: none;
  appearance: none
}

.ctus .frow input::placeholder,
.ctus .frow textarea::placeholder {
  color: #1b1b1b66
}

.ctus .frow input:focus,
.ctus .frow select:focus,
.ctus .frow textarea:focus {
  border-color: #B74875;
  box-shadow: 2px 1px 3px -2px #b7487514
}

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

.ctus .frow textarea {
  resize: vertical;
  min-height: 120px
}

.ctus .fgrid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px
}

.ctus .privacyrow {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 24px
}

.ctus .privacyrow input[type="checkbox"] {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  margin-top: 2px;
  accent-color: #B74875;
  cursor: pointer
}

.ctus .privacyrow span {
  font-size: 15px;
  line-height: 1.65;
  color: #3a2d35
}

.ctus .privacyrow a {
  color: #B74875;
  text-decoration: underline;
  transition: color .4s ease-in-out
}

.ctus .privacyrow a:hover {
  color: #8a2f55
}

.ctus .subbtn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #B74875;
  color: #fff;
  border: none;
  border-radius: 16px;
  padding: 16px 48px;
  font-size: 19px;
  line-height: 1.4;
  letter-spacing: .01em;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  transition: background .45s cubic-bezier(0.16, 1, 0.3, 1), box-shadow .45s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 2px 6px 22px -2px #b748751c
}

.ctus .subbtn:hover {
  background: #8a2f55;
  box-shadow: 2px 9px 60px -2px #b748751a
}

.ctus .subbtn:focus {
  outline: 2px solid #B74875;
  outline-offset: 3px
}

.ctus .subbtn::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at var(--rx, 50%) var(--ry, 50%), #ffffff47 0%, transparent 60%);
  opacity: 0;
  transition: opacity .55s cubic-bezier(0.16, 1, 0.3, 1);
  pointer-events: none
}

.ctus .subbtn:active::after {
  opacity: 1
}

.ctus .clipreveal {
  clip-path: inset(50% 50% 50% 50%);
  animation: clipopen .55s cubic-bezier(0.16, 1, 0.3, 1) .1s forwards
}

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

@media (max-width: 900px) {
  .ctus .titblock .pgwrap {
    grid-template-columns: 1fr
  }

  .ctus .infostrip .pgwrap {
    grid-template-columns: 1fr
  }

  .ctus .formblock .pgwrap {
    grid-template-columns: 1fr;
    gap: 48px
  }

  .ctus .formlead h2,
  .ctus .formlead p {
    text-align: left
  }

  .ctus .formlead .accentline {
    margin-left: 0
  }

  .ctus .mathdeco {
    display: none
  }

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

  .ctus .pgwrap {
    padding: 0 24px
  }

  .ctus .titcol h1 {
    font-size: 31px
  }

  .ctus .form {
    padding: 24px
  }
}

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

.successPg .card {
  max-width: 560px;
  width: 100%;
  background: #F3E5E9;
  border-radius: 16px;
  padding: 48px;
  box-shadow: 2px 6px 22px -2px #b748751c;
  text-align: center
}

.successPg .card .icon {
  width: 56px;
  height: 56px;
  margin: 0 auto 24px;
  display: flex;
  align-items: center;
  justify-content: center
}

.successPg .card .icon svg {
  width: 56px;
  height: 56px
}

.successPg .card .hdg {
  font-size: 31px;
  line-height: 1.15;
  letter-spacing: .01em;
  color: #2a1520;
  margin: 0 0 16px
}

.successPg .card .txt {
  font-size: 15px;
  line-height: 1.65;
  letter-spacing: .01em;
  color: #3d2030;
  margin: 0 0 24px
}

.successPg .card .accent {
  display: inline-block;
  width: 32px;
  height: 2px;
  background: #B74875;
  margin: 0 auto 24px;
  border-radius: 0
}

.successPg .card .btn {
  display: inline-block;
  padding: 16px 48px;
  background: #B74875;
  color: #fff;
  font-size: 15px;
  line-height: 1.4;
  letter-spacing: .02em;
  border-radius: 16px;
  text-decoration: none;
  border: none;
  cursor: pointer;
  box-shadow: 2px 9px 60px -2px #b748751a;
  transition: background .45s cubic-bezier(0.16, 1, 0.3, 1), box-shadow .45s cubic-bezier(0.16, 1, 0.3, 1)
}

.successPg .card .btn:hover {
  background: #8f3459;
  box-shadow: 2px 6px 22px -2px #b7487538
}

.successPg .card .btn:focus {
  outline: 2px solid #B74875;
  outline-offset: 3px
}