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

*,
::before,
::after {
  content: none;
  box-sizing: border-box
}

body {
  margin: 0;
  padding: 0;
  min-height: 100dvh;
  overflow-x: hidden
}

.page-top-strip {
  background: #BD4E7B;
  height: 4px;
  width: 100%
}

.site-header {
  background: #F1EEEB;
  position: relative;
  box-shadow: 0 5px 22px 1px #bd4e7b1a
}

.header-inner {
  max-width: 1140px;
  margin: 0 auto;
  padding: 20px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px
}

.brand-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  flex-shrink: 0
}

.brand-mark {
  width: 72px;
  height: 72px;
  background: #fff;
  border: 2px solid #DFC2C8;
  box-shadow: inset 0 4px 10px #bd4e7b14 0 5px 22px 1px #bd4e7b1a;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 0;
  overflow: hidden
}

.brand-mark img {
  width: 65px;
  height: 65px;
  object-fit: contain;
  display: block
}

.brand-name {
  font-family: 'Lato', sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: #BD4E7B;
  letter-spacing: .08em;
  text-align: center;
  white-space: nowrap
}

.primary-nav {
  flex: 1;
  display: flex;
  justify-content: center
}

.primary-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  justify-content: center;
  align-items: center
}

.primary-nav ul li {
  margin: 0
}

.primary-nav ul li a {
  font-family: 'Lato', sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: #4a2535;
  text-decoration: none;
  padding: 8px 12px;
  border-radius: 5px;
  display: block;
  letter-spacing: .04em;
  transition: background-color .15s ease-out, color .15s ease-out;
  white-space: nowrap;
  min-height: 44px;
  display: flex;
  align-items: center
}

.primary-nav ul li a:hover {
  background: #DFC2C8;
  color: #BD4E7B
}

.primary-nav ul li a:focus {
  background: #DFC2C8;
  color: #BD4E7B;
  outline: none
}

.header-action {
  flex-shrink: 0
}

.header-action a {
  font-family: 'Lato', sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  background: #BD4E7B;
  text-decoration: none;
  padding: 12px 20px;
  border-radius: 5px;
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  letter-spacing: .04em;
  box-shadow: 0 1px 6px 1px #bd4e7b0f;
  transition: background-color .18s ease-out, box-shadow .18s ease-out;
  white-space: nowrap
}

.header-action a:hover {
  background: #a33d68;
  box-shadow: 0 5px 22px 1px #bd4e7b24
}

.header-action a:focus {
  background: #DFC2C8;
  color: #4a2535;
  outline: none
}

.header-action a:active {
  transform: scale(0.97)
}

.header-action a i {
  font-size: 14px;
  transition: transform .12s ease-out
}

.header-action a:hover i {
  transform: rotate(-8deg)
}

@media (max-width: 960px) {
  .header-inner {
    flex-wrap: wrap;
    padding: 20px;
    gap: 20px
  }

  .primary-nav {
    order: 3;
    width: 100%;
    justify-content: center
  }

  .primary-nav ul {
    gap: 4px
  }
}

@media (max-width: 480px) {
  .header-inner {
    padding: 12px;
    gap: 12px
  }

  .brand-mark {
    width: 60px;
    height: 60px
  }

  .brand-mark img {
    width: 52px;
    height: 52px
  }

  .primary-nav ul li a {
    font-size: 14px;
    padding: 8px
  }

  .header-action a {
    padding: 12px
  }
}

.site-footer {
  background: #2e1a23;
  color: #DFC2C8
}

.footer-top {
  max-width: 1140px;
  margin: 0 auto;
  padding: 64px 32px 32px;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 32px
}

.footer-brand-col {
  display: flex;
  flex-direction: column;
  gap: 20px
}

.footer-logo-wrap {
  width: 52px;
  height: 52px;
  background: #fff;
  border: 2px solid #DFC2C8;
  box-shadow: 0 1px 6px 1px #bd4e7b0f inset 0 4px 8px #bd4e7b0f;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 0;
  overflow: hidden
}

.footer-logo-wrap img {
  width: 44px;
  height: 44px;
  object-fit: contain;
  display: block
}

.footer-brand-name {
  font-family: 'Lato', sans-serif;
  font-size: 17px;
  font-weight: 700;
  color: #fff;
  letter-spacing: .04em
}

.footer-tagline {
  font-family: 'Lato', sans-serif;
  font-size: 14px;
  color: #DFC2C8;
  line-height: 1.6;
  letter-spacing: .02em
}

.footer-contact-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 12px
}

.footer-contact-list li {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-family: 'Lato', sans-serif;
  font-size: 14px;
  color: #DFC2C8;
  line-height: 1.6;
  letter-spacing: .02em
}

.footer-contact-list li i {
  color: #BD4E7B;
  font-size: 14px;
  margin-top: 3px;
  flex-shrink: 0
}

.footer-contact-list li a {
  color: #DFC2C8;
  text-decoration: none;
  transition: color .15s ease-out
}

.footer-contact-list li a:hover {
  color: #fff
}

.footer-contact-list li a:focus {
  color: #F1EEEB;
  background: #bd4e7b33;
  outline: none;
  border-radius: 3px
}

.footer-col-heading {
  font-family: 'Lato', sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-bottom: 20px;
  padding-bottom: 8px;
  border-bottom: 1px solid #dfc2c833
}

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

.footer-links-list li a {
  font-family: 'Lato', sans-serif;
  font-size: 14px;
  color: #DFC2C8;
  text-decoration: none;
  letter-spacing: .02em;
  line-height: 1.6;
  display: flex;
  align-items: center;
  gap: 8px;
  transition: color .12s ease-out;
  min-height: 44px
}

.footer-links-list li a:hover {
  color: #fff
}

.footer-links-list li a:focus {
  color: #F1EEEB;
  background: #bd4e7b33;
  outline: none;
  border-radius: 3px;
  padding-left: 4px
}

.footer-links-list li a i {
  color: #BD4E7B;
  font-size: 14px;
  transition: transform .12s ease-out
}

.footer-links-list li a:hover i {
  transform: translateX(3px)
}

.footer-bottom {
  border-top: 1px solid #dfc2c826;
  max-width: 1140px;
  margin: 0 auto;
  padding: 20px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap
}

.footer-copy {
  font-family: 'Lato', sans-serif;
  font-size: 14px;
  color: #dfc2c899;
  letter-spacing: .02em
}

.footer-legal-links {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 20px;
  flex-wrap: wrap
}

.footer-legal-links li a {
  font-family: 'Lato', sans-serif;
  font-size: 14px;
  color: #dfc2c899;
  text-decoration: none;
  letter-spacing: .02em;
  transition: color .15s ease-out;
  min-height: 44px;
  display: flex;
  align-items: center
}

.footer-legal-links li a:hover {
  color: #DFC2C8
}

.footer-legal-links li a:focus {
  color: #F1EEEB;
  background: #bd4e7b33;
  outline: none;
  border-radius: 3px;
  padding: 4px 8px
}

@media (max-width: 960px) {
  .footer-top {
    grid-template-columns: 1fr 1fr;
    padding: 32px 20px 20px
  }

  .footer-brand-col {
    grid-column: 1 / -1
  }
}

@media (max-width: 480px) {
  .footer-top {
    grid-template-columns: 1fr;
    padding: 32px 12px 20px;
    gap: 20px
  }

  .footer-bottom {
    padding: 20px 12px;
    flex-direction: column;
    align-items: flex-start
  }
}

.consent-popup {
  position: fixed;
  bottom: 20px;
  right: 20px;
  width: 280px;
  background: #fff;
  border: 1px solid #DFC2C8;
  border-radius: 10px;
  box-shadow: 0 10px 36px 1px #bd4e7b24;
  z-index: 1200;
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 12px
}

.consent-popup[hidden] {
  display: none
}

.consent-desc {
  font-family: 'Lato', sans-serif;
  font-size: 14px;
  color: #2e1a23;
  line-height: 1.6;
  letter-spacing: .02em
}

.consent-desc a {
  color: #BD4E7B;
  text-decoration: underline;
  transition: color .12s ease-out
}

.consent-desc a:hover {
  color: #a33d68
}

.consent-label {
  font-family: 'Lato', sans-serif;
  font-size: 17px;
  font-weight: 700;
  color: #2e1a23;
  letter-spacing: .02em
}

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

.consent-accept {
  font-family: 'Lato', sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: #BD4E7B;
  background: transparent;
  border: 2px solid #BD4E7B;
  border-radius: 5px;
  padding: 8px 12px;
  cursor: pointer;
  letter-spacing: .04em;
  min-height: 44px;
  transition: background-color .15s ease-out, color .15s ease-out
}

.consent-accept:hover {
  background: #BD4E7B;
  color: #fff
}

.consent-accept:focus {
  background: #DFC2C8;
  color: #2e1a23;
  outline: none
}

.consent-accept:active {
  transform: scale(0.97)
}

.consent-decline {
  font-family: 'Lato', sans-serif;
  font-size: 14px;
  color: #BD4E7B;
  background: transparent;
  border: none;
  cursor: pointer;
  text-decoration: underline;
  padding: 4px;
  min-height: 44px;
  letter-spacing: .02em;
  transition: color .12s ease-out
}

.consent-decline:hover {
  color: #a33d68
}

.consent-decline:focus {
  background: #DFC2C8;
  color: #2e1a23;
  outline: none;
  border-radius: 3px
}

.consent-mini {
  position: fixed;
  bottom: 20px;
  right: 20px;
  background: #BD4E7B;
  color: #fff;
  border: none;
  border-radius: 20px;
  padding: 8px 20px;
  font-family: 'Lato', sans-serif;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  z-index: 1200;
  min-height: 44px;
  letter-spacing: .04em;
  box-shadow: 0 5px 22px 1px #bd4e7b1a;
  transition: background-color .15s ease-out;
  display: none
}

.consent-mini:hover {
  background: #a33d68
}

.consent-mini:focus {
  background: #DFC2C8;
  color: #2e1a23;
  outline: none
}

.doc-inner {
  max-width: 1140px;
  margin: 0 auto;
  padding: 64px 32px
}

.doc-inner h1 {
  font-size: 40px;
  line-height: 1.1;
  letter-spacing: -.02em;
  color: #BD4E7B;
  margin-bottom: 32px;
  padding-bottom: 20px;
  border-bottom: 2px solid #DFC2C8
}

.doc-inner h2 {
  font-size: 29px;
  line-height: 1.1;
  letter-spacing: -.01em;
  color: #2d2d2d;
  margin-top: 64px;
  margin-bottom: 20px
}

.doc-inner h3 {
  font-size: 22px;
  line-height: 1.6;
  letter-spacing: -.005em;
  color: #3a3a3a;
  margin-top: 32px;
  margin-bottom: 12px
}

.doc-inner h4 {
  font-size: 17px;
  line-height: 1.6;
  letter-spacing: 0;
  color: #3a3a3a;
  margin-top: 20px;
  margin-bottom: 8px
}

.doc-inner h5 {
  font-size: 14px;
  line-height: 1.6;
  letter-spacing: .02em;
  color: #BD4E7B;
  text-transform: uppercase;
  margin-top: 20px;
  margin-bottom: 8px
}

.doc-inner h6 {
  font-size: 14px;
  line-height: 1.6;
  letter-spacing: .01em;
  color: #5a5a5a;
  margin-top: 12px;
  margin-bottom: 8px
}

.doc-inner p {
  font-size: 17px;
  line-height: 1.6;
  color: #3a3a3a;
  margin-bottom: 20px
}

.doc-inner ul,
.doc-inner ol {
  margin: 20px 0;
  padding-left: 32px
}

.doc-inner ul {
  list-style: none;
  padding-left: 20px
}

.doc-inner ul li {
  position: relative;
  padding-left: 20px;
  font-size: 17px;
  line-height: 1.6;
  color: #3a3a3a;
  margin-bottom: 8px
}

.doc-inner ul li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 10px;
  width: 6px;
  height: 6px;
  background-color: #BD4E7B;
  border-radius: 50%
}

.doc-inner ol li {
  font-size: 17px;
  line-height: 1.6;
  color: #3a3a3a;
  margin-bottom: 8px;
  padding-left: 8px
}

.doc-inner ul ul,
.doc-inner ol ol,
.doc-inner ul ol,
.doc-inner ol ul {
  margin: 8px 0
}

.doc-inner ul ul li::before {
  background-color: #DFC2C8;
  width: 5px;
  height: 5px
}

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

.doc-inner a {
  color: #BD4E7B;
  text-decoration: underline;
  text-decoration-color: #DFC2C8;
  text-underline-offset: 3px;
  transition: color .15s ease-out, text-decoration-color .15s ease-out
}

.doc-inner a:hover {
  color: #9a3a62;
  text-decoration-color: #BD4E7B
}

.doc-inner table {
  width: 100%;
  border-collapse: collapse;
  margin: 32px 0;
  font-size: 14px;
  line-height: 1.6;
  box-shadow: 0 1px 6px 1px #bd4e7b0f;
  border-radius: 10px;
  overflow: hidden
}

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

.doc-inner thead th {
  color: #fff;
  font-size: 14px;
  letter-spacing: .04em;
  text-transform: uppercase;
  padding: 12px 20px;
  text-align: left;
  font-weight: 700
}

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

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

.doc-inner tbody tr:nth-child(even) {
  background-color: #F1EEEB
}

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

.doc-inner td {
  padding: 12px 20px;
  color: #3a3a3a;
  vertical-align: top
}

.doc-inner th {
  padding: 12px 20px
}

.doc-inner hr {
  border: none;
  height: 1px;
  background: linear-gradient(to right, transparent, #DFC2C8, transparent);
  margin: 64px 0
}

@media (max-width: 960px) {
  .doc-inner {
    padding: 32px 20px
  }

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

  .doc-inner h2 {
    font-size: 22px;
    margin-top: 32px
  }

  .doc-inner table {
    display: block;
    overflow-x: auto;
    border-radius: 5px
  }
}

@media (max-width: 480px) {
  .doc-inner {
    padding: 20px 12px
  }

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

  .doc-inner h2 {
    font-size: 17px
  }

  .doc-inner h3 {
    font-size: 17px
  }

  .doc-inner p,
  .doc-inner ul li,
  .doc-inner ol li {
    font-size: 14px
  }

  .doc-inner hr {
    margin: 32px 0
  }
}

.services-detail {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 20px;
  overflow: hidden
}

.services-detail .pulse-shadow {
  animation: shadow-pulse 2.4s ease-in-out infinite
}

@keyframes shadow-pulse {

  0%,
  100% {
    box-shadow: 0 5px 22px 1px #bd4e7b1a
  }

  50% {
    box-shadow: 0 10px 36px 1px #bd4e7b38
  }
}

.services-detail .detail-grid {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 64px;
  padding: 64px 0 32px;
  align-items: start
}

.services-detail .image-frame {
  position: relative;
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 32px
}

.services-detail .image-frame img {
  width: 100%;
  height: 380px;
  object-fit: cover;
  display: block;
  border-radius: 10px;
  transition: transform .18s ease-out
}

.services-detail .image-frame:hover img {
  transform: scale(1.04)
}

.services-detail .image-frame .vignette {
  position: absolute;
  inset: 0;
  border-radius: 10px;
  background: linear-gradient(160deg, transparent 55%, #1e0a128c 100%);
  pointer-events: none
}

.services-detail .image-frame .stripe {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, #BD4E7B 50%, #DFC2C8 50%);
  border-radius: 0 0 10px 10px
}

.services-detail .diamond-accent {
  position: absolute;
  top: -14px;
  right: -14px;
  width: 28px;
  height: 28px;
  background: #BD4E7B;
  transform: rotate(45deg);
  border-radius: 3px;
  z-index: 1
}

.services-detail .meta-badges {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 20px
}

.services-detail .badge {
  display: inline-block;
  background: #F1EEEB;
  color: #BD4E7B;
  font-size: 14px;
  line-height: 1.1;
  padding: 4px 12px;
  border-radius: 5px;
  letter-spacing: .04em;
  font-weight: 600
}

.services-detail .badge.level {
  background: #DFC2C8;
  color: #5a1f38
}

.services-detail .page-heading {
  font-size: 40px;
  line-height: 1.1;
  letter-spacing: -.02em;
  color: #1e0a12;
  margin-bottom: 20px;
  text-transform: uppercase;
  font-weight: 800
}

.services-detail .sub-label {
  font-size: 17px;
  line-height: 1.6;
  color: #5a3a48;
  margin-bottom: 32px
}

.services-detail .description-area {
  position: relative
}

.services-detail .description-area .text-col {
  max-width: 680px
}

.services-detail .description-area .aside-note {
  float: right;
  width: 180px;
  margin: 0 0 20px 32px;
  background: #F1EEEB;
  border-radius: 10px;
  padding: 12px 20px;
  font-size: 14px;
  line-height: 1.6;
  color: #5a3a48
}

.services-detail .description-area .aside-note strong {
  display: block;
  color: #BD4E7B;
  margin-bottom: 4px;
  font-size: 14px
}

.services-detail .desc-body {
  font-size: 17px;
  line-height: 1.6;
  color: #2d1520;
  margin-bottom: 20px
}

.services-detail .desc-body h2 {
  font-size: 22px;
  line-height: 1.1;
  color: #1e0a12;
  margin: 32px 0 12px;
  font-weight: 700;
  letter-spacing: -.01em
}

.services-detail .desc-body mark {
  background: #DFC2C8;
  color: #1e0a12;
  border-radius: 3px;
  padding: 0 4px
}

.services-detail .desc-body ul,
.services-detail .desc-body ol {
  padding-left: 0;
  list-style: none;
  margin-bottom: 20px
}

.services-detail .desc-body ul li,
.services-detail .desc-body ol li {
  padding: 8px 0 8px 20px;
  border-top: 1px solid #DFC2C8;
  font-size: 17px;
  line-height: 1.6;
  color: #2d1520;
  position: relative
}

.services-detail .desc-body ul li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
  height: 60%;
  background: #BD4E7B;
  border-radius: 3px
}

.services-detail .desc-body ol {
  counter-reset: ol-counter
}

.services-detail .desc-body ol li {
  counter-increment: ol-counter
}

.services-detail .desc-body ol li::before {
  content: counter(ol-counter);
  position: absolute;
  left: 0;
  top: 10px;
  font-size: 14px;
  font-weight: 700;
  color: #BD4E7B
}

.services-detail .desc-body dl dt {
  font-weight: 700;
  color: #1e0a12;
  margin-top: 12px
}

.services-detail .desc-body dl dd {
  margin-left: 0;
  color: #2d1520;
  font-size: 17px;
  line-height: 1.6
}

.services-detail .desc-body details {
  border-radius: 5px;
  background: #F1EEEB;
  padding: 8px 20px;
  margin-bottom: 12px
}

.services-detail .desc-body summary {
  cursor: pointer;
  font-weight: 600;
  color: #BD4E7B;
  font-size: 17px;
  line-height: 1.6;
  outline: none
}

.services-detail .desc-body summary:focus-visible {
  outline: 2px solid #BD4E7B !important;
  border-radius: 3px
}

.services-detail .sidebar {
  position: sticky;
  top: 32px
}

.services-detail .price-card {
  background: #fff;
  border-radius: 20px;
  padding: 32px;
  box-shadow: 0 5px 22px 1px #bd4e7b1a;
  position: relative;
  overflow: hidden;
  margin-bottom: 20px
}

.services-detail .price-card .bg-split {
  position: absolute;
  inset: 0;
  background: linear-gradient(160deg, #fff 55%, #F1EEEB 55%);
  z-index: 0;
  pointer-events: none
}

.services-detail .price-card>* {
  position: relative;
  z-index: 1
}

.services-detail .price-amount {
  font-size: 40px;
  line-height: 1.1;
  font-weight: 800;
  color: #BD4E7B;
  letter-spacing: -.02em;
  margin-bottom: 4px
}

.services-detail .price-desc {
  font-size: 14px;
  line-height: 1.6;
  color: #5a3a48;
  margin-bottom: 20px
}

.services-detail .meta-list {
  list-style: none;
  padding: 0;
  margin: 0 0 20px
}

.services-detail .meta-list li {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  padding: 8px 0;
  border-top: 1px solid #DFC2C8;
  font-size: 14px;
  line-height: 1.6;
  color: #2d1520
}

.services-detail .meta-list li i {
  color: #BD4E7B;
  width: 16px;
  flex-shrink: 0;
  transition: transform .15s ease-out
}

.services-detail .meta-list li:hover i {
  transform: rotate(-12deg) scale(1.15)
}

.services-detail .seats-bar {
  background: #DFC2C8;
  border-radius: 5px;
  height: 6px;
  margin-bottom: 8px;
  overflow: hidden
}

.services-detail .seats-fill {
  height: 100%;
  background: #BD4E7B;
  border-radius: 5px;
  width: 72%
}

.services-detail .seats-label {
  font-size: 14px;
  color: #5a3a48;
  margin-bottom: 20px
}

.services-detail .enroll-btn {
  display: block;
  width: 100%;
  background: #BD4E7B;
  color: #fff;
  border: none;
  border-radius: 10px;
  padding: 12px 20px;
  font-size: 17px;
  font-weight: 700;
  cursor: pointer;
  text-align: center;
  text-decoration: none;
  letter-spacing: .01em;
  transition: background .15s ease-out, transform .12s ease;
  box-shadow: 0 5px 22px 1px #bd4e7b24
}

.services-detail .enroll-btn:hover {
  background: #a33d68
}

.services-detail .enroll-btn:active {
  transform: scale(0.97)
}

.services-detail .enroll-btn:focus-visible {
  outline: 2px solid #1e0a12 !important;
  outline-offset: 3px
}

.services-detail .contact-link {
  display: block;
  text-align: center;
  margin-top: 12px;
  font-size: 14px;
  color: #BD4E7B;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color .12s ease
}

.services-detail .contact-link:hover {
  color: #a33d68
}

.services-detail .program-section {
  background: #F1EEEB;
  border-radius: 20px;
  padding: 64px 0;
  margin: 32px 0
}

.services-detail .program-inner {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 20px
}

.services-detail .program-label {
  font-size: 14px;
  letter-spacing: .08em;
  color: #BD4E7B;
  text-transform: uppercase;
  font-weight: 700;
  margin-bottom: 8px
}

.services-detail .program-heading {
  font-size: 29px;
  line-height: 1.1;
  color: #1e0a12;
  font-weight: 700;
  margin-bottom: 32px;
  letter-spacing: -.01em
}

.services-detail .program-body {
  font-size: 17px;
  line-height: 1.6;
  color: #2d1520
}

.services-detail .program-body h2 {
  font-size: 22px;
  line-height: 1.1;
  color: #1e0a12;
  margin: 32px 0 12px;
  font-weight: 700
}

.services-detail .program-body mark {
  background: #DFC2C8;
  color: #1e0a12;
  border-radius: 3px;
  padding: 0 4px
}

.services-detail .program-body ul,
.services-detail .program-body ol {
  padding-left: 0;
  list-style: none;
  margin-bottom: 20px
}

.services-detail .program-body ul li,
.services-detail .program-body ol li {
  padding: 8px 0 8px 20px;
  border-top: 1px solid #DFC2C8;
  font-size: 17px;
  line-height: 1.6;
  color: #2d1520;
  position: relative
}

.services-detail .program-body ul li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
  height: 60%;
  background: #BD4E7B;
  border-radius: 3px
}

.services-detail .program-body ol {
  counter-reset: prog-counter
}

.services-detail .program-body ol li {
  counter-increment: prog-counter
}

.services-detail .program-body ol li::before {
  content: counter(prog-counter);
  position: absolute;
  left: 0;
  top: 10px;
  font-size: 14px;
  font-weight: 700;
  color: #BD4E7B
}

.services-detail .program-body dl dt {
  font-weight: 700;
  color: #1e0a12;
  margin-top: 12px
}

.services-detail .program-body dl dd {
  margin-left: 0;
  color: #2d1520
}

.services-detail .program-body figure {
  margin: 20px 0
}

.services-detail .program-body figcaption {
  font-size: 14px;
  color: #5a3a48;
  margin-top: 4px
}

@media (max-width: 960px) {
  .services-detail .detail-grid {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 32px 0 20px
  }

  .services-detail .sidebar {
    position: static
  }

  .services-detail .description-area .aside-note {
    float: none;
    width: 100%;
    margin: 0 0 20px
  }
}

@media (max-width: 480px) {
  .services-detail .page-heading {
    font-size: 29px
  }

  .services-detail .price-amount {
    font-size: 29px
  }

  .services-detail .price-card {
    padding: 20px
  }

  .services-detail .program-section {
    padding: 32px 0
  }
}

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

.contact-us .reach-block {
  background: #F1EEEB;
  padding: 64px 20px;
  position: relative
}

.contact-us .reach-block::before {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  width: 180px;
  height: 180px;
  pointer-events: none;
  background: linear-gradient(#DFC2C8 0%, #DFC2C8 100%) 20px 20px / 140px 140px no-repeat, linear-gradient(#DFC2C8 0%, #DFC2C8 100%) 40px 40px / 100px 100px no-repeat, linear-gradient(#DFC2C8 0%, #DFC2C8 100%) 60px 60px / 60px 60px no-repeat;
  opacity: .35
}

.contact-us .reach-inner {
  max-width: 1140px;
  margin: 0 auto;
  display: flex;
  flex-direction: row;
  gap: 64px;
  align-items: flex-start
}

.contact-us .reach-left {
  flex: 1 1 0;
  min-width: 0
}

.contact-us .reach-label {
  display: inline-block;
  background: #BD4E7B;
  color: #fff;
  font-size: 14px;
  letter-spacing: .08em;
  padding: 4px 12px;
  border-radius: 5px;
  margin-bottom: 20px;
  font-weight: 600;
  text-transform: uppercase
}

.contact-us .reach-heading {
  font-size: 40px;
  line-height: 1.1;
  letter-spacing: -.02em;
  color: #2b1a22;
  margin-bottom: 20px;
  text-transform: uppercase;
  font-weight: 700
}

.contact-us .reach-sub {
  font-size: 17px;
  line-height: 1.6;
  color: #4a3040;
  margin-bottom: 32px
}

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

.contact-us .detail-list li {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 20px;
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 1px 6px 1px #bd4e7b0f;
  font-size: 17px;
  line-height: 1.6;
  color: #2b1a22;
  border-top: 3px solid #DFC2C8
}

.contact-us .detail-list li i {
  color: #BD4E7B;
  font-size: 17px;
  margin-top: 4px;
  flex-shrink: 0;
  transition: transform .15s ease-out
}

.contact-us .detail-list li:hover i {
  transform: rotate(-8deg) scale(1.15)
}

.contact-us .detail-list a {
  color: #BD4E7B;
  text-decoration: none;
  border-bottom: 1px solid #DFC2C8;
  transition: border-color .15s ease, color .15s ease
}

.contact-us .detail-list a:hover {
  color: #8c3259;
  border-color: #BD4E7B
}

.contact-us .reach-right {
  flex: 0 0 340px;
  min-width: 0
}

.contact-us .form-card {
  background: #fff;
  border-radius: 20px;
  padding: 32px;
  box-shadow: 0 10px 36px 1px #bd4e7b24
}

.contact-us .form-card-heading {
  font-size: 22px;
  line-height: 1.1;
  color: #2b1a22;
  margin-bottom: 8px;
  font-weight: 600
}

.contact-us .form-card-note {
  font-size: 14px;
  line-height: 1.6;
  color: #6a4a5a;
  margin-bottom: 20px
}

.contact-us .field-group {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 12px
}

.contact-us .field-group label {
  font-size: 14px;
  color: #4a3040;
  font-weight: 600;
  margin-bottom: 4px;
  display: block;
  letter-spacing: .04em
}

.contact-us .field-group input,
.contact-us .field-group textarea {
  width: 100%;
  padding: 12px;
  border: 1.5px solid #DFC2C8;
  border-radius: 5px;
  font-size: 17px;
  color: #2b1a22;
  background: #F1EEEB;
  outline: none;
  transition: border-color .18s ease, box-shadow .18s ease;
  box-sizing: border-box
}

.contact-us .field-group input::placeholder,
.contact-us .field-group textarea::placeholder {
  color: #b09aa8;
  opacity: 1
}

.contact-us .field-group input:focus,
.contact-us .field-group textarea:focus {
  border-color: #BD4E7B;
  box-shadow: 0 1px 6px 1px #bd4e7b1a;
  background: #fff
}

.contact-us .field-group textarea {
  resize: vertical;
  min-height: 100px
}

.contact-us .privacy-row {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 20px;
  margin-top: 8px
}

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

.contact-us .privacy-row span {
  font-size: 14px;
  line-height: 1.6;
  color: #4a3040
}

.contact-us .privacy-row a {
  color: #BD4E7B;
  text-decoration: underline;
  text-underline-offset: 2px
}

.contact-us .submit-btn {
  width: 100%;
  background: #BD4E7B;
  color: #fff;
  border: none;
  border-radius: 10px;
  font-size: 17px;
  font-weight: 700;
  padding: 12px 20px;
  cursor: pointer;
  letter-spacing: .03em;
  transition: background .15s ease-out, transform .12s ease;
  box-shadow: 0 5px 22px 1px #bd4e7b1a
}

.contact-us .submit-btn:hover {
  background: #8c3259
}

.contact-us .submit-btn:active {
  transform: scale(0.97)
}

.contact-us .submit-btn:focus-visible {
  outline: 2px solid #2b1a22;
  outline-offset: 3px
}

.contact-us .pulse-block {
  background: #2b1a22;
  padding: 64px 20px;
  position: relative;
  overflow: hidden
}

.contact-us .pulse-rings {
  position: absolute;
  inset: 0;
  pointer-events: none;
  display: flex;
  align-items: center;
  justify-content: center
}

.contact-us .pulse-ring {
  position: absolute;
  border-radius: 50%;
  border: 1.5px solid #dfc2c82e;
  animation: ring-expand 3.6s ease-out infinite
}

.contact-us .pulse-ring:nth-child(1) {
  width: 120px;
  height: 120px;
  animation-delay: 0s
}

.contact-us .pulse-ring:nth-child(2) {
  width: 120px;
  height: 120px;
  animation-delay: 1.2s
}

.contact-us .pulse-ring:nth-child(3) {
  width: 120px;
  height: 120px;
  animation-delay: 2.4s
}

@keyframes ring-expand {
  0% {
    transform: scale(1);
    opacity: .7
  }

  100% {
    transform: scale(5);
    opacity: 0
  }
}

.contact-us .pulse-inner {
  max-width: 1140px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: row;
  gap: 64px;
  align-items: center
}

.contact-us .pulse-text {
  flex: 2 1 0;
  min-width: 0
}

.contact-us .pulse-heading {
  font-size: 29px;
  line-height: 1.1;
  color: #F1EEEB;
  font-weight: 700;
  margin-bottom: 12px;
  letter-spacing: -.01em
}

.contact-us .pulse-body {
  font-size: 17px;
  line-height: 1.6;
  color: #DFC2C8;
  margin-bottom: 20px
}

.contact-us .quote-block {
  border-radius: 10px;
  background: #dfc2c81a;
  padding: 20px 32px;
  position: relative
}

.contact-us .quote-block::before {
  content: '';
  position: absolute;
  left: 0;
  top: 12px;
  bottom: 12px;
  width: 3px;
  background: #BD4E7B;
  border-radius: 3px
}

.contact-us .quote-text {
  font-size: 17px;
  line-height: 1.6;
  color: #F1EEEB;
  font-style: italic;
  margin-bottom: 8px
}

.contact-us .quote-accent {
  display: inline;
  background: #BD4E7B;
  color: #fff;
  padding: 2px 8px;
  border-radius: 3px;
  font-style: normal;
  font-weight: 700;
  font-size: 14px
}

.contact-us .quote-attribution {
  font-size: 14px;
  color: #DFC2C8;
  letter-spacing: .05em
}

.contact-us .pulse-aside {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 20px
}

.contact-us .metric-item {
  background: #f1eeeb0f;
  border-radius: 10px;
  padding: 20px;
  border-top: 2px solid #BD4E7B;
  transition: background .18s ease
}

.contact-us .metric-item:hover {
  background: #f1eeeb1f
}

.contact-us .metric-number {
  font-size: 40px;
  line-height: 1.1;
  font-weight: 700;
  color: #BD4E7B;
  letter-spacing: -.02em
}

.contact-us .metric-desc {
  font-size: 14px;
  line-height: 1.6;
  color: #DFC2C8;
  margin-top: 4px
}

@media (max-width: 960px) {
  .contact-us .reach-inner {
    flex-direction: column;
    gap: 32px
  }

  .contact-us .reach-right {
    flex: 1 1 auto;
    width: 100%
  }

  .contact-us .pulse-inner {
    flex-direction: column;
    gap: 32px
  }

  .contact-us .pulse-aside {
    flex-direction: row;
    flex-wrap: wrap
  }

  .contact-us .metric-item {
    flex: 1 1 140px
  }
}

@media (max-width: 480px) {
  .contact-us .reach-heading {
    font-size: 29px
  }

  .contact-us .pulse-heading {
    font-size: 22px
  }

  .contact-us .form-card {
    padding: 20px
  }

  .contact-us .reach-block,
  .contact-us .pulse-block {
    padding: 32px 12px
  }

  .contact-us .pulse-aside {
    flex-direction: column
  }
}

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

.subscribe .page-body {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 20px
}

.subscribe .dot-field {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0
}

.subscribe .dot-field::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle, #BD4E7B 1px, transparent 1px);
  background-size: 28px 28px;
  opacity: .045
}

.subscribe .pill {
  display: inline-block;
  background: #DFC2C8;
  color: #5a1f36;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .06em;
  padding: 4px 12px;
  border-radius: 32px;
  margin-bottom: 20px
}

.subscribe .title-block {
  position: relative;
  padding: 64px 0;
  background: #F1EEEB
}

.subscribe .title-block .page-body {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: 32px
}

.subscribe .title-strip {
  flex: 0 0 220px;
  border-radius: 10px;
  overflow: hidden;
  position: relative;
  min-height: 380px;
  box-shadow: 0 5px 22px 1px #bd4e7b1a
}

.subscribe .title-strip img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: blur(2px) brightness(1.05);
  transform: scale(1.06);
  transition: transform .18s ease-out
}

.subscribe .title-strip:hover img {
  transform: scale(1.1)
}

.subscribe .title-text {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 32px 0 32px 20px;
  position: relative;
  z-index: 1
}

.subscribe .title-text h1 {
  font-size: 40px;
  line-height: 1.1;
  letter-spacing: -.02em;
  color: #2b0e1a;
  text-transform: uppercase;
  margin-bottom: 20px
}

.subscribe .title-text h1 span {
  color: #BD4E7B
}

.subscribe .title-text .lead {
  font-size: 17px;
  line-height: 1.6;
  color: #4a2030;
  max-width: 520px;
  margin-bottom: 20px
}

.subscribe .title-text .lead+.lead {
  margin-bottom: 32px
}

.subscribe .title-note {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 32px
}

.subscribe .title-note .main-note {
  flex: 1 1 0;
  font-size: 17px;
  line-height: 1.6;
  color: #4a2030
}

.subscribe .title-note .side-note {
  flex: 0 0 160px;
  font-size: 14px;
  line-height: 1.6;
  color: #8c5066;
  letter-spacing: .03em;
  border-top: 2px solid #DFC2C8;
  padding-top: 8px
}

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

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

.subscribe .title-text {
  clip-path: inset(0 0 0 0);
  animation: reveal-clip .55s ease-out both
}

.subscribe .receive {
  padding: 64px 0;
  background: #fff;
  position: relative
}

.subscribe .receive .page-body {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 20px;
  align-items: start
}

.subscribe .receive-lead {
  grid-column: 1;
  padding-right: 32px
}

.subscribe .receive-lead h2 {
  font-size: 29px;
  line-height: 1.1;
  letter-spacing: -.01em;
  color: #2b0e1a;
  text-transform: uppercase;
  margin-bottom: 20px
}

.subscribe .receive-lead p {
  font-size: 17px;
  line-height: 1.6;
  color: #4a2030;
  margin-bottom: 12px
}

.subscribe .receive-lead .side-note {
  font-size: 14px;
  line-height: 1.6;
  color: #8c5066;
  border-top: 2px solid #DFC2C8;
  padding-top: 8px;
  margin-top: 20px
}

.subscribe .receive-card {
  background: #F1EEEB;
  border-radius: 10px;
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  box-shadow: 0 1px 6px 1px #bd4e7b0f;
  transition: box-shadow .15s ease-out, transform .15s ease-out
}

.subscribe .receive-card:hover {
  box-shadow: 0 5px 22px 1px #bd4e7b1a;
  transform: translateY(-2px)
}

.subscribe .receive-card .card-icon {
  width: 40px;
  height: 40px;
  background: #BD4E7B;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 17px;
  flex-shrink: 0;
  transition: transform .12s ease-out
}

.subscribe .receive-card:hover .card-icon {
  transform: rotate(6deg)
}

.subscribe .receive-card h4 {
  font-size: 17px;
  line-height: 1.1;
  color: #2b0e1a;
  margin: 0
}

.subscribe .receive-card p {
  font-size: 14px;
  line-height: 1.6;
  color: #5a3040;
  margin: 0
}

.subscribe .process {
  padding: 64px 0;
  background: #2b0e1a;
  position: relative;
  overflow: hidden
}

.subscribe .process .bg-texture {
  position: absolute;
  inset: 0;
  background-image: url(./profile_pictures/section3_20241109.jpg);
  background-size: cover;
  background-position: center;
  opacity: .07;
  pointer-events: none
}

.subscribe .process .page-body {
  position: relative;
  z-index: 1
}

.subscribe .process .pill {
  background: #dfc2c82e;
  color: #DFC2C8
}

.subscribe .process h2 {
  font-size: 29px;
  line-height: 1.1;
  letter-spacing: -.01em;
  color: #F1EEEB;
  text-transform: uppercase;
  margin-bottom: 8px
}

.subscribe .process .sub {
  font-size: 17px;
  line-height: 1.6;
  color: #c09aaa;
  margin-bottom: 32px;
  max-width: 560px
}

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

.subscribe .step-row {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: 0;
  border-radius: 5px;
  overflow: hidden
}

.subscribe .step-num {
  flex: 0 0 64px;
  background: #BD4E7B;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  font-weight: 700;
  color: #fff;
  letter-spacing: -.02em;
  line-height: 1.1
}

.subscribe .step-body {
  flex: 1 1 0;
  background: #ffffff0d;
  padding: 20px;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 20px;
  transition: background .14s ease-out
}

.subscribe .step-row:hover .step-body {
  background: #ffffff17
}

.subscribe .step-body h5 {
  font-size: 17px;
  line-height: 1.1;
  color: #F1EEEB;
  margin: 0 0 4px;
  flex: 0 0 200px
}

.subscribe .step-body p {
  font-size: 14px;
  line-height: 1.6;
  color: #c09aaa;
  margin: 0;
  flex: 1 1 0
}

.subscribe .step-body .step-aside {
  flex: 0 0 120px;
  font-size: 14px;
  line-height: 1.6;
  color: #8c5066;
  border-top: 1px solid #5a2036;
  padding-top: 8px;
  align-self: flex-start
}

.subscribe .process .bottom-note {
  margin-top: 32px;
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 32px
}

.subscribe .process .bottom-note p {
  font-size: 14px;
  line-height: 1.6;
  color: #8c5066;
  flex: 1 1 0
}

.subscribe .process .bottom-note .contact-link {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: transparent;
  border: 2px solid #BD4E7B;
  color: #DFC2C8;
  font-size: 14px;
  font-weight: 600;
  padding: 8px 20px;
  border-radius: 5px;
  text-decoration: none;
  letter-spacing: .04em;
  transition: background .14s ease-out, color .14s ease-out;
  align-self: center
}

.subscribe .process .bottom-note .contact-link:hover {
  background: #BD4E7B;
  color: #fff
}

.subscribe .process .bottom-note .contact-link i {
  transition: transform .12s ease-out
}

.subscribe .process .bottom-note .contact-link:hover i {
  transform: translateX(3px)
}

@media (max-width: 960px) {
  .subscribe .title-block .page-body {
    flex-direction: column
  }

  .subscribe .title-strip {
    flex: 0 0 220px;
    min-height: 220px;
    width: 100%
  }

  .subscribe .title-text {
    padding: 20px 0 0
  }

  .subscribe .receive .page-body {
    grid-template-columns: 1fr 1fr
  }

  .subscribe .receive-lead {
    grid-column: 1 / -1;
    padding-right: 0
  }

  .subscribe .step-body {
    flex-wrap: wrap
  }

  .subscribe .step-body h5 {
    flex: 0 0 100%
  }

  .subscribe .step-body .step-aside {
    flex: 0 0 100%
  }
}

@media (max-width: 480px) {
  .subscribe .title-text h1 {
    font-size: 29px
  }

  .subscribe .receive .page-body {
    grid-template-columns: 1fr
  }

  .subscribe .step-row {
    flex-direction: column
  }

  .subscribe .step-num {
    flex: 0 0 40px;
    width: 100%;
    padding: 8px 0
  }

  .subscribe .title-note {
    flex-direction: column;
    gap: 12px
  }

  .subscribe .process .bottom-note {
    flex-direction: column;
    gap: 20px
  }
}

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

.about-us .page-card {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 20px
}

.about-us .split-band {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  min-height: 340px;
  background: #F1EEEB;
  position: relative
}

.about-us .split-band .image-half {
  flex: 0 0 50%;
  position: relative;
  overflow: hidden
}

.about-us .split-band .image-half img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .18s ease-out
}

.about-us .split-band .image-half:hover img {
  transform: scale(1.04)
}

.about-us .split-band .image-half .gradient-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, #bd4e7b61 0%, #bd4e7b61 50%, transparent 100%);
  pointer-events: none
}

.about-us .split-band .text-half {
  flex: 0 0 50%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 64px;
  position: relative
}

.about-us .split-band .quote-anchor {
  position: absolute;
  top: 20px;
  right: 32px;
  font-size: 140px;
  line-height: 1.1;
  color: #DFC2C8;
  opacity: .28;
  pointer-events: none;
  user-select: none;
  font-style: normal;
  font-weight: 700
}

.about-us .split-band .label-badge {
  display: inline-block;
  background: #BD4E7B;
  color: #fff;
  font-size: 14px;
  line-height: 1.6;
  letter-spacing: .08em;
  padding: 4px 12px;
  border-radius: 5px;
  margin-bottom: 12px;
  align-self: flex-start
}

.about-us .split-band .band-heading {
  font-size: 40px;
  line-height: 1.1;
  letter-spacing: -.02em;
  color: #2b1a22;
  text-transform: uppercase;
  margin-bottom: 12px;
  margin-top: 0
}

.about-us .split-band .band-heading .marker-highlight {
  background: linear-gradient(180deg, transparent 55%, #DFC2C8 55% 90%, transparent 90%);
  padding: 0 4px
}

.about-us .split-band .band-desc {
  font-size: 17px;
  line-height: 1.6;
  color: #4a2d3a;
  margin: 0;
  max-width: 380px
}

.about-us .depth-section {
  background: #fff;
  background-image: linear-gradient(180deg, #fff 0%, #F1EEEB 100%);
  padding: 64px 0;
  position: relative
}

.about-us .depth-section .fish-scale-bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden
}

.about-us .depth-section .fish-scale-bg svg {
  width: 100%;
  height: 100%;
  opacity: .045
}

.about-us .depth-divider {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 64px;
  gap: 20px
}

.about-us .depth-divider .divider-line {
  flex: 0 0 80px;
  height: 2px;
  background: #BD4E7B;
  border-radius: 3px
}

.about-us .depth-divider .divider-label {
  font-size: 14px;
  line-height: 1.6;
  letter-spacing: .12em;
  color: #BD4E7B;
  text-transform: uppercase
}

.about-us .two-col-editorial {
  display: flex;
  flex-direction: row;
  gap: 64px;
  align-items: flex-start
}

.about-us .two-col-editorial .editorial-main {
  flex: 0 0 58%
}

.about-us .two-col-editorial .editorial-aside {
  flex: 1;
  padding-top: 8px
}

.about-us .editorial-main .section-heading {
  font-size: 29px;
  line-height: 1.1;
  letter-spacing: -.01em;
  color: #2b1a22;
  margin-top: 0;
  margin-bottom: 20px
}

.about-us .editorial-main .body-para {
  font-size: 17px;
  line-height: 1.6;
  color: #4a2d3a;
  margin-bottom: 20px
}

.about-us .editorial-main .list-bordered {
  list-style: none;
  padding: 0;
  margin: 0 0 20px
}

.about-us .editorial-main .list-bordered li {
  font-size: 17px;
  line-height: 1.6;
  color: #4a2d3a;
  padding: 8px 0 8px 20px;
  border-left: 3px solid #BD4E7B;
  margin-bottom: 8px;
  background: transparent
}

.about-us .editorial-aside .side-note {
  background: #F1EEEB;
  border-radius: 10px;
  padding: 20px;
  margin-bottom: 20px;
  box-shadow: 0 1px 6px 1px #bd4e7b0f
}

.about-us .editorial-aside .side-note .note-label {
  display: inline-block;
  font-size: 14px;
  line-height: 1.6;
  letter-spacing: .08em;
  color: #BD4E7B;
  text-transform: uppercase;
  margin-bottom: 8px
}

.about-us .editorial-aside .side-note .note-text {
  font-size: 14px;
  line-height: 1.6;
  color: #4a2d3a;
  margin: 0
}

.about-us .team-strip {
  margin-top: 64px;
  display: flex;
  flex-direction: row;
  gap: 32px;
  align-items: stretch;
  flex-wrap: wrap
}

.about-us .team-strip .person-card {
  flex: 1 1 220px;
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 5px 22px 1px #bd4e7b1a;
  display: flex;
  flex-direction: column;
  transition: box-shadow .15s ease-out, transform .15s ease-out;
  animation: settle-in .2s ease-out both
}

.about-us .team-strip .person-card:nth-child(2) {
  animation-delay: .05s
}

.about-us .team-strip .person-card:nth-child(3) {
  animation-delay: .1s
}

@keyframes settle-in {
  from {
    opacity: .6;
    transform: rotate(-1.5deg) translateY(8px)
  }

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

.about-us .team-strip .person-card:hover {
  box-shadow: 0 10px 36px 1px #bd4e7b24;
  transform: translateY(-3px)
}

.about-us .team-strip .person-card .card-image-wrap {
  overflow: hidden;
  height: 220px
}

.about-us .team-strip .person-card .card-image-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .18s ease-out
}

.about-us .team-strip .person-card:hover .card-image-wrap img {
  transform: scale(1.05)
}

.about-us .team-strip .person-card .card-body {
  padding: 20px;
  flex: 1;
  display: flex;
  flex-direction: column
}

.about-us .team-strip .person-card .person-name {
  font-size: 17px;
  line-height: 1.1;
  color: #2b1a22;
  margin: 0 0 4px;
  font-weight: 700
}

.about-us .team-strip .person-card .person-role {
  font-size: 14px;
  line-height: 1.6;
  color: #BD4E7B;
  margin: 0 0 12px
}

.about-us .team-strip .person-card .person-bio {
  font-size: 14px;
  line-height: 1.6;
  color: #4a2d3a;
  margin: 0;
  flex: 1
}

.about-us .metrics-row {
  display: flex;
  flex-direction: row;
  gap: 32px;
  margin-top: 64px;
  flex-wrap: wrap
}

.about-us .metrics-row .metric-item {
  flex: 1 1 140px;
  background: linear-gradient(180deg, #BD4E7B 0%, #BD4E7B 50%, #9e3d65 100%);
  border-radius: 10px;
  padding: 32px 20px;
  text-align: center;
  box-shadow: 0 5px 22px 1px #bd4e7b1a;
  transition: transform .12s ease-out
}

.about-us .metrics-row .metric-item:hover {
  transform: translateY(-4px)
}

.about-us .metrics-row .metric-item .metric-number {
  font-size: 40px;
  line-height: 1.1;
  color: #fff;
  font-weight: 700;
  letter-spacing: -.02em;
  display: block
}

.about-us .metrics-row .metric-item .metric-label {
  font-size: 14px;
  line-height: 1.6;
  color: #f5dce6;
  display: block;
  margin-top: 4px;
  letter-spacing: .06em
}

.about-us .nested-interactive {
  margin-top: 64px;
  background: #2b1a22;
  border-radius: 20px;
  padding: 32px;
  position: relative;
  overflow: hidden;
  box-shadow: 0 10px 36px 1px #bd4e7b24
}

.about-us .nested-interactive .nested-quote-anchor {
  position: absolute;
  bottom: -20px;
  right: 20px;
  font-size: 180px;
  line-height: 1.1;
  color: #BD4E7B;
  opacity: .12;
  pointer-events: none;
  user-select: none;
  font-weight: 700
}

.about-us .nested-interactive .nested-heading {
  font-size: 22px;
  line-height: 1.1;
  color: #fff;
  margin: 0 0 20px
}

.about-us .nested-interactive .approach-tabs {
  display: flex;
  flex-direction: row;
  gap: 12px;
  flex-wrap: wrap
}

.about-us .nested-interactive .approach-item {
  flex: 1 1 180px;
  background: #bd4e7b26;
  border-radius: 10px;
  padding: 20px;
  border: 1px solid #bd4e7b4d;
  transition: background .15s ease-out, border-color .15s ease-out
}

.about-us .nested-interactive .approach-item:hover {
  background: #bd4e7b47;
  border-color: #bd4e7b99
}

.about-us .nested-interactive .approach-item .approach-icon {
  width: 36px;
  height: 36px;
  background: #BD4E7B;
  border-radius: 5px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 12px
}

.about-us .nested-interactive .approach-item .approach-icon i {
  color: #fff;
  font-size: 17px
}

.about-us .nested-interactive .approach-item .approach-label {
  font-size: 14px;
  line-height: 1.6;
  color: #DFC2C8;
  letter-spacing: .06em;
  text-transform: uppercase;
  display: block;
  margin-bottom: 4px
}

.about-us .nested-interactive .approach-item .approach-text {
  font-size: 14px;
  line-height: 1.6;
  color: #e8d5dc;
  margin: 0
}

@media (max-width: 960px) {
  .about-us .split-band {
    flex-direction: column
  }

  .about-us .split-band .image-half {
    flex: 0 0 260px;
    height: 260px
  }

  .about-us .split-band .text-half {
    padding: 32px
  }

  .about-us .two-col-editorial {
    flex-direction: column;
    gap: 32px
  }

  .about-us .two-col-editorial .editorial-main {
    flex: 1 1 auto
  }

  .about-us .team-strip {
    gap: 20px
  }

  .about-us .metrics-row {
    gap: 20px
  }
}

@media (max-width: 480px) {
  .about-us .split-band .text-half {
    padding: 20px
  }

  .about-us .split-band .band-heading {
    font-size: 29px
  }

  .about-us .depth-section {
    padding: 32px 0
  }

  .about-us .depth-divider {
    margin-bottom: 32px
  }

  .about-us .team-strip {
    flex-direction: column;
    margin-top: 32px
  }

  .about-us .metrics-row {
    margin-top: 32px
  }

  .about-us .metrics-row .metric-item {
    flex: 1 1 120px;
    padding: 20px 12px
  }

  .about-us .nested-interactive {
    margin-top: 32px;
    padding: 20px
  }

  .about-us .nested-interactive .approach-tabs {
    flex-direction: column
  }
}

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

.portal .page-bound {
  max-width: 1140px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 32px;
  padding-right: 32px
}

.portal .divider-line {
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, transparent 50%, #BD4E7B 50%, #DFC2C8 100%);
  border: none;
  margin: 0
}

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

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

.portal .drop-1 {
  animation: dropIn .5s ease-out .05s both
}

.portal .drop-2 {
  animation: dropIn .5s ease-out .18s both
}

.portal .drop-3 {
  animation: dropIn .55s ease-out .3s both
}

.portal .drop-4 {
  animation: dropIn .55s ease-out .42s both
}

.portal .title-block {
  padding-top: 64px;
  padding-bottom: 64px;
  background-color: #F1EEEB;
  position: relative
}

.portal .title-block .title-inner {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: 32px
}

.portal .title-block .image-strip {
  width: 120px;
  flex-shrink: 0;
  position: relative;
  border-radius: 5px;
  overflow: hidden
}

.portal .title-block .image-strip img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: grayscale(100%)
}

.portal .title-block .title-text {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 20px;
  position: relative
}

.portal .title-block .shape-outline {
  position: absolute;
  right: -20px;
  top: -32px;
  width: 220px;
  height: 220px;
  border: 2px solid #bd4e7b1f;
  border-radius: 20px;
  transform: rotate(18deg);
  pointer-events: none;
  z-index: 0
}

.portal .title-block .shape-outline-2 {
  position: absolute;
  right: 40px;
  top: 20px;
  width: 140px;
  height: 140px;
  border: 1.5px solid #dfc2c840;
  border-radius: 32px;
  transform: rotate(-8deg);
  pointer-events: none;
  z-index: 0
}

.portal .title-block .title-text>* {
  position: relative;
  z-index: 1
}

.portal .title-block .label-badge {
  display: inline-block;
  background-color: #DFC2C8;
  color: #3a1525;
  font-size: 14px;
  letter-spacing: .06em;
  padding: 4px 12px;
  border-radius: 3px;
  font-weight: 600;
  text-transform: uppercase;
  align-self: flex-start
}

.portal .title-block h1 {
  font-size: 40px;
  line-height: 1.1;
  letter-spacing: -.02em;
  color: #1b0a12;
  text-transform: uppercase;
  margin: 0
}

.portal .title-block .title-sub {
  font-size: 22px;
  line-height: 1.6;
  color: #5c2d42;
  margin: 0
}

.portal .title-block .title-desc {
  font-size: 17px;
  line-height: 1.6;
  color: #4a2233;
  max-width: 560px;
  margin: 0
}

.portal .longterm-block {
  padding-top: 64px;
  padding-bottom: 64px;
  background-color: #fff
}

.portal .longterm-block .lt-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: start
}

.portal .longterm-block .lt-left h2 {
  font-size: 29px;
  line-height: 1.1;
  letter-spacing: -.01em;
  color: #1b0a12;
  margin: 0 0 20px
}

.portal .longterm-block .lt-left .body-text {
  font-size: 17px;
  line-height: 1.6;
  color: #3a1525;
  margin: 0 0 12px
}

.portal .longterm-block .lt-left .aside-note {
  display: flex;
  flex-direction: row;
  gap: 20px;
  margin-top: 32px
}

.portal .longterm-block .lt-left .aside-main {
  flex: 1;
  font-size: 17px;
  line-height: 1.6;
  color: #3a1525
}

.portal .longterm-block .lt-left .aside-side {
  width: 140px;
  flex-shrink: 0;
  font-size: 14px;
  line-height: 1.6;
  color: #BD4E7B;
  letter-spacing: .03em;
  padding-top: 4px
}

.portal .longterm-block .lt-right {
  display: flex;
  flex-direction: column;
  gap: 20px
}

.portal .longterm-block .value-item {
  border-left: none;
  padding: 20px;
  background-color: #F1EEEB;
  border-radius: 10px;
  position: relative;
  box-shadow: 0 1px 6px 1px #bd4e7b0f;
  transition: box-shadow .15s ease-out, transform .15s ease-out
}

.portal .longterm-block .value-item::before {
  content: "";
  display: block;
  width: 3px;
  background-color: #BD4E7B;
  position: absolute;
  left: 0;
  top: 12px;
  bottom: 12px;
  border-radius: 3px
}

.portal .longterm-block .value-item:hover {
  box-shadow: 0 5px 22px 1px #bd4e7b1a;
  transform: translateX(4px)
}

.portal .longterm-block .value-item h5 {
  font-size: 17px;
  line-height: 1.1;
  color: #1b0a12;
  margin: 0 0 8px;
  text-transform: uppercase;
  letter-spacing: .04em
}

.portal .longterm-block .value-item p {
  font-size: 14px;
  line-height: 1.6;
  color: #4a2233;
  margin: 0
}

.portal .team-block {
  padding-top: 64px;
  padding-bottom: 64px;
  background-color: #2a0d1a;
  position: relative;
  overflow: hidden
}

.portal .team-block .bg-lines {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0
}

.portal .team-block .bg-lines span {
  display: block;
  position: absolute;
  left: 0;
  right: 0;
  background-color: #dfc2c80a
}

.portal .team-block .bg-lines span:nth-child(1) {
  top: 12%;
  height: 1px
}

.portal .team-block .bg-lines span:nth-child(2) {
  top: 28%;
  height: 2px
}

.portal .team-block .bg-lines span:nth-child(3) {
  top: 44%;
  height: 1px
}

.portal .team-block .bg-lines span:nth-child(4) {
  top: 60%;
  height: 3px
}

.portal .team-block .bg-lines span:nth-child(5) {
  top: 76%;
  height: 1px
}

.portal .team-block .bg-lines span:nth-child(6) {
  top: 88%;
  height: 2px
}

.portal .team-block .team-inner {
  position: relative;
  z-index: 1
}

.portal .team-block h2 {
  font-size: 40px;
  line-height: 1.1;
  letter-spacing: -.02em;
  color: #F1EEEB;
  text-transform: uppercase;
  margin: 0 0 8px
}

.portal .team-block .team-sub {
  font-size: 17px;
  line-height: 1.6;
  color: #DFC2C8;
  margin: 0 0 64px;
  max-width: 480px
}

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

.portal .team-block .instructor-card {
  background-color: #dfc2c80f;
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid #dfc2c81f;
  transition: border-color .18s ease-out
}

.portal .team-block .instructor-card:hover {
  border-color: #bd4e7b80
}

.portal .team-block .card-image {
  position: relative;
  height: 220px;
  overflow: hidden
}

.portal .team-block .card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .2s ease-out
}

.portal .team-block .instructor-card:hover .card-image img {
  transform: scale(1.05)
}

.portal .team-block .card-image .overlay {
  position: absolute;
  inset: 0;
  background-color: #1a081000;
  display: flex;
  align-items: flex-end;
  padding: 20px;
  transition: background-color .18s ease-out
}

.portal .team-block .instructor-card:hover .card-image .overlay {
  background-color: #1a0810b8
}

.portal .team-block .card-image .overlay-text {
  font-size: 14px;
  line-height: 1.6;
  color: #F1EEEB;
  opacity: 0;
  transition: opacity .15s ease-out
}

.portal .team-block .instructor-card:hover .card-image .overlay-text {
  opacity: 1
}

.portal .team-block .card-body {
  padding: 20px
}

.portal .team-block .card-body h4 {
  font-size: 17px;
  line-height: 1.1;
  color: #F1EEEB;
  margin: 0 0 8px
}

.portal .team-block .card-body .role-tag {
  display: inline-block;
  background-color: #bd4e7b40;
  color: #DFC2C8;
  font-size: 14px;
  letter-spacing: .04em;
  padding: 4px 8px;
  border-radius: 3px;
  margin-bottom: 12px
}

.portal .team-block .card-body p {
  font-size: 14px;
  line-height: 1.6;
  color: #dfc2c8cc;
  margin: 0
}

.portal .approach-block {
  padding-top: 64px;
  padding-bottom: 64px;
  background-color: #F1EEEB
}

.portal .approach-block .approach-header {
  display: flex;
  flex-direction: row;
  align-items: flex-end;
  gap: 32px;
  margin-bottom: 64px
}

.portal .approach-block .approach-header h2 {
  font-size: 29px;
  line-height: 1.1;
  letter-spacing: -.01em;
  color: #1b0a12;
  margin: 0;
  flex: 1
}

.portal .approach-block .approach-header .header-note {
  width: 300px;
  flex-shrink: 0;
  font-size: 14px;
  line-height: 1.6;
  color: #5c2d42
}

.portal .approach-block .approach-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  grid-template-rows: auto auto;
  gap: 20px
}

.portal .approach-block .ap-item {
  background-color: #fff;
  border-radius: 10px;
  padding: 32px;
  box-shadow: 0 1px 6px 1px #bd4e7b0f;
  position: relative;
  overflow: hidden
}

.portal .approach-block .ap-item.featured {
  grid-row: 1 / 3;
  background-color: #BD4E7B;
  box-shadow: 0 10px 36px 1px #bd4e7b24
}

.portal .approach-block .ap-item .corner-reveal {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 0;
  height: 0;
  background-color: #dfc2c826;
  border-radius: 20px 0 10px 0;
  transition: width .2s ease-out, height .2s ease-out
}

.portal .approach-block .ap-item:hover .corner-reveal {
  width: 120px;
  height: 120px
}

.portal .approach-block .ap-item h4 {
  font-size: 17px;
  line-height: 1.1;
  color: #1b0a12;
  margin: 0 0 12px;
  text-transform: uppercase;
  letter-spacing: .04em
}

.portal .approach-block .ap-item.featured h4 {
  color: #fff;
  font-size: 22px
}

.portal .approach-block .ap-item p {
  font-size: 14px;
  line-height: 1.6;
  color: #4a2233;
  margin: 0
}

.portal .approach-block .ap-item.featured p {
  color: #ffffffe0;
  font-size: 17px
}

.portal .approach-block .ap-item .item-icon {
  width: 32px;
  height: 32px;
  margin-bottom: 20px;
  color: #BD4E7B
}

.portal .approach-block .ap-item.featured .item-icon {
  color: #ffffffb3
}

.portal .outcomes-block {
  padding-top: 64px;
  padding-bottom: 64px;
  background-color: #fff
}

.portal .outcomes-block .out-layout {
  display: grid;
  grid-template-columns: 5fr 4fr;
  gap: 64px;
  align-items: start
}

.portal .outcomes-block .out-right img {
  width: 100%;
  height: 360px;
  object-fit: cover;
  border-radius: 10px;
  display: block;
  transition: transform .2s ease-out
}

.portal .outcomes-block .out-right:hover img {
  transform: scale(1.03)
}

.portal .outcomes-block .out-right {
  overflow: hidden;
  border-radius: 10px
}

.portal .outcomes-block h2 {
  font-size: 29px;
  line-height: 1.1;
  letter-spacing: -.01em;
  color: #1b0a12;
  margin: 0 0 20px
}

.portal .outcomes-block .out-intro {
  font-size: 17px;
  line-height: 1.6;
  color: #3a1525;
  margin: 0 0 32px
}

.portal .outcomes-block .outcome-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  list-style: none;
  padding: 0;
  margin: 0
}

.portal .outcomes-block .outcome-list li {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid #DFC2C8;
  font-size: 17px;
  line-height: 1.6;
  color: #3a1525
}

.portal .outcomes-block .outcome-list li:last-child {
  border-bottom: none
}

.portal .outcomes-block .outcome-list li .li-marker {
  width: 4px;
  flex-shrink: 0;
  height: 28px;
  background-color: #BD4E7B;
  border-radius: 3px;
  margin-top: 4px
}

.portal .outcomes-block .out-aside {
  display: flex;
  flex-direction: row;
  gap: 20px;
  margin-top: 32px;
  padding-top: 32px;
  border-top: 1px solid #DFC2C8
}

.portal .outcomes-block .out-aside .aside-main {
  flex: 1;
  font-size: 14px;
  line-height: 1.6;
  color: #4a2233
}

.portal .outcomes-block .out-aside .aside-side {
  width: 120px;
  flex-shrink: 0;
  font-size: 14px;
  line-height: 1.6;
  color: #BD4E7B;
  letter-spacing: .03em
}

.portal .investment-block {
  padding-top: 64px;
  padding-bottom: 64px;
  background-color: #2a0d1a;
  position: relative
}

.portal .investment-block .inv-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: start
}

.portal .investment-block h2 {
  font-size: 40px;
  line-height: 1.1;
  letter-spacing: -.02em;
  color: #F1EEEB;
  text-transform: uppercase;
  margin: 0 0 20px
}

.portal .investment-block .inv-desc {
  font-size: 17px;
  line-height: 1.6;
  color: #DFC2C8;
  margin: 0 0 32px
}

.portal .investment-block .inv-facts {
  display: flex;
  flex-direction: column;
  gap: 20px
}

.portal .investment-block .fact-row {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 20px;
  padding: 20px;
  background-color: #dfc2c80f;
  border-radius: 10px;
  border: 1px solid #dfc2c81a;
  transition: border-color .15s ease-out
}

.portal .investment-block .fact-row:hover {
  border-color: #bd4e7b66
}

.portal .investment-block .fact-row .fact-icon {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  background-color: #bd4e7b33;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #DFC2C8;
  font-size: 17px
}

.portal .investment-block .fact-row .fact-text h5 {
  font-size: 14px;
  line-height: 1.1;
  color: #F1EEEB;
  margin: 0 0 4px;
  text-transform: uppercase;
  letter-spacing: .06em
}

.portal .investment-block .fact-row .fact-text p {
  font-size: 14px;
  line-height: 1.6;
  color: #dfc2c8bf;
  margin: 0
}

.portal .investment-block .inv-image-col {
  position: relative
}

.portal .investment-block .inv-image-col img {
  width: 100%;
  height: 420px;
  object-fit: cover;
  border-radius: 10px;
  display: block;
  transition: transform .2s ease-out
}

.portal .investment-block .inv-image-col:hover img {
  transform: scale(1.03)
}

.portal .investment-block .inv-image-col {
  overflow: hidden;
  border-radius: 10px
}

.portal .investment-block .inv-cta-row {
  margin-top: 32px;
  display: flex;
  flex-direction: row;
  gap: 12px;
  align-items: center
}

.portal .investment-block .btn-primary {
  display: inline-block;
  background-color: #BD4E7B;
  color: #fff;
  font-size: 17px;
  font-weight: 600;
  padding: 12px 32px;
  border-radius: 5px;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: background-color .15s ease-out, transform .12s ease-out
}

.portal .investment-block .btn-primary:hover {
  background-color: #a63d6a
}

.portal .investment-block .btn-primary:active {
  transform: scale(0.97)
}

.portal .investment-block .btn-ghost {
  display: inline-block;
  background-color: transparent;
  color: #DFC2C8;
  font-size: 17px;
  padding: 12px 32px;
  border-radius: 5px;
  text-decoration: none;
  border: 1px solid #dfc2c84d;
  cursor: pointer;
  transition: border-color .15s ease-out, color .15s ease-out
}

.portal .investment-block .btn-ghost:hover {
  border-color: #dfc2c8b3;
  color: #F1EEEB
}

@media (max-width: 960px) {
  .portal .title-block .title-inner {
    flex-direction: column
  }

  .portal .title-block .image-strip {
    width: 100%;
    height: 200px
  }

  .portal .longterm-block .lt-grid {
    grid-template-columns: 1fr;
    gap: 32px
  }

  .portal .team-block .instructors {
    grid-template-columns: 1fr 1fr
  }

  .portal .approach-block .approach-grid {
    grid-template-columns: 1fr 1fr
  }

  .portal .approach-block .ap-item.featured {
    grid-row: auto;
    grid-column: 1 / 3
  }

  .portal .outcomes-block .out-layout {
    grid-template-columns: 1fr;
    gap: 32px
  }

  .portal .investment-block .inv-inner {
    grid-template-columns: 1fr;
    gap: 32px
  }

  .portal .approach-block .approach-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px
  }

  .portal .approach-block .approach-header .header-note {
    width: 100%
  }
}

@media (max-width: 480px) {
  .portal .page-bound {
    padding-left: 20px;
    padding-right: 20px
  }

  .portal .title-block h1 {
    font-size: 29px
  }

  .portal .team-block .instructors {
    grid-template-columns: 1fr
  }

  .portal .approach-block .approach-grid {
    grid-template-columns: 1fr
  }

  .portal .approach-block .ap-item.featured {
    grid-column: auto
  }

  .portal .investment-block h2 {
    font-size: 29px
  }

  .portal .longterm-block .lt-left .aside-note {
    flex-direction: column
  }

  .portal .longterm-block .lt-left .aside-side {
    width: 100%
  }

  .portal .outcomes-block .out-aside {
    flex-direction: column
  }

  .portal .investment-block .inv-cta-row {
    flex-direction: column;
    align-items: flex-start
  }
}

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

.services-page .grain-hero {
  position: relative;
  padding: 64px 0;
  background-color: #2a1a22;
  border-radius: 10px;
  margin: 32px 0;
  overflow: hidden
}

.services-page .grain-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.08'/%3E%3C/svg%3E");
  border-radius: 10px;
  pointer-events: none;
  z-index: 1
}

.services-page .grain-hero .spot {
  position: absolute;
  border-radius: 50%;
  filter: blur(60px);
  pointer-events: none;
  z-index: 0
}

.services-page .grain-hero .spot-a {
  width: 320px;
  height: 320px;
  background: #BD4E7B;
  opacity: .18;
  top: -80px;
  left: -60px
}

.services-page .grain-hero .spot-b {
  width: 200px;
  height: 200px;
  background: #DFC2C8;
  opacity: .13;
  bottom: -40px;
  right: 80px
}

.services-page .grain-hero .hero-inner {
  position: relative;
  z-index: 2;
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
  padding: 0 32px
}

.services-page .grain-hero .hero-label {
  display: inline-block;
  background: #BD4E7B;
  color: #F1EEEB;
  font-size: 14px;
  letter-spacing: .08em;
  padding: 4px 12px;
  border-radius: 5px;
  margin-bottom: 20px;
  text-transform: uppercase
}

.services-page .grain-hero .hero-heading {
  font-size: 40px;
  line-height: 1.1;
  color: #F1EEEB;
  text-transform: uppercase;
  letter-spacing: -.02em;
  margin-bottom: 20px
}

.services-page .grain-hero .hero-sub {
  font-size: 17px;
  line-height: 1.6;
  color: #DFC2C8;
  margin-bottom: 0
}

.services-page .zigzag-divider {
  width: 100%;
  overflow: hidden;
  line-height: 0;
  margin: 0
}

.services-page .grid-area {
  padding: 64px 0;
  background: #F1EEEB;
  border-radius: 10px;
  margin-bottom: 32px
}

.services-page .grid-area .area-label {
  font-size: 14px;
  color: #BD4E7B;
  letter-spacing: .1em;
  text-transform: uppercase;
  margin-bottom: 8px;
  padding: 0 32px
}

.services-page .grid-area .area-heading {
  font-size: 29px;
  line-height: 1.1;
  color: #2a1a22;
  text-transform: uppercase;
  letter-spacing: -.01em;
  margin-bottom: 32px;
  padding: 0 32px
}

.services-page .cards-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  padding: 0 32px
}

.services-page .seminar-card {
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 1px 6px 1px #bd4e7b0f;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  position: relative;
  transition: box-shadow .18s ease-out, transform .15s ease-out
}

.services-page .seminar-card:hover {
  box-shadow: 0 10px 36px 1px #bd4e7b24;
  transform: translateY(-3px)
}

.services-page .seminar-card .card-img-wrap {
  position: relative;
  overflow: hidden;
  height: 180px;
  clip-path: polygon(0 0, 100% 0, 100% 88%, 0 100%)
}

.services-page .seminar-card .card-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(100%);
  transition: transform .2s ease-out, filter .18s ease
}

.services-page .seminar-card:hover .card-img-wrap img {
  transform: scale(1.06);
  filter: grayscale(40%)
}

.services-page .seminar-card .card-corner-tag {
  position: absolute;
  top: 12px;
  right: 12px;
  background: #BD4E7B;
  color: #F1EEEB;
  font-size: 14px;
  padding: 4px 8px;
  border-radius: 3px;
  z-index: 2
}

.services-page .seminar-card .card-body {
  padding: 20px;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px
}

.services-page .seminar-card .user-badge {
  display: inline-block;
  background: #F1EEEB;
  color: #BD4E7B;
  font-size: 14px;
  padding: 4px 8px;
  border-radius: 5px;
  border: 1px solid #DFC2C8;
  align-self: flex-start
}

.services-page .seminar-card .card-title {
  font-size: 17px;
  line-height: 1.6;
  color: #2a1a22;
  margin: 0;
  font-weight: 600
}

.services-page .seminar-card .card-desc {
  font-size: 14px;
  line-height: 1.6;
  color: #5a3a48;
  margin: 0;
  flex: 1
}

.services-page .seminar-card .card-meta {
  display: flex;
  flex-direction: row;
  gap: 12px;
  flex-wrap: wrap;
  font-size: 14px;
  color: #9a6a7a;
  border-top: 1px solid #F1EEEB;
  padding-top: 8px;
  margin-top: 4px
}

.services-page .seminar-card .card-meta span {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 4px
}

.services-page .seminar-card .card-meta i {
  font-size: 14px;
  color: #BD4E7B
}

.services-page .seminar-card .card-price-row {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  margin-top: 8px;
  gap: 8px
}

.services-page .seminar-card .price-amount {
  font-size: 22px;
  line-height: 1.1;
  color: #BD4E7B;
  font-weight: 700
}

.services-page .seminar-card .price-terms {
  font-size: 14px;
  color: #9a6a7a;
  line-height: 1.6
}

.services-page .seminar-card .seats-indicator {
  font-size: 14px;
  color: #BD4E7B;
  background: #bd4e7b14;
  padding: 4px 8px;
  border-radius: 5px;
  white-space: nowrap
}

.services-page .seminar-card .card-link {
  display: block;
  text-align: center;
  background: #BD4E7B;
  color: #F1EEEB;
  font-size: 14px;
  padding: 12px 20px;
  border-radius: 5px;
  text-decoration: none;
  margin-top: 12px;
  transition: background .15s ease-out, transform .1s ease;
  letter-spacing: .04em;
  text-transform: uppercase
}

.services-page .seminar-card .card-link:hover {
  background: #a03a65;
  box-shadow: 0 5px 22px 1px #bd4e7b1a
}

.services-page .seminar-card .card-link:active {
  transform: scale(0.97)
}

.services-page .approach-area {
  padding: 64px 0;
  margin-bottom: 32px;
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 64px;
  align-items: start
}

.services-page .approach-area .approach-aside {
  position: sticky;
  top: 32px
}

.services-page .approach-area .aside-label {
  font-size: 14px;
  color: #BD4E7B;
  text-transform: uppercase;
  letter-spacing: .1em;
  margin-bottom: 12px
}

.services-page .approach-area .aside-heading {
  font-size: 29px;
  line-height: 1.1;
  color: #2a1a22;
  text-transform: uppercase;
  letter-spacing: -.01em;
  margin-bottom: 20px
}

.services-page .approach-area .aside-img-wrap {
  border-radius: 10px;
  overflow: hidden;
  position: relative
}

.services-page .approach-area .aside-img-wrap img {
  width: 100%;
  height: 260px;
  object-fit: cover;
  display: block;
  filter: grayscale(100%);
  transition: transform .2s ease-out
}

.services-page .approach-area .aside-img-wrap:hover img {
  transform: scale(1.05)
}

.services-page .approach-area .aside-note {
  font-size: 14px;
  line-height: 1.6;
  color: #9a6a7a;
  margin-top: 12px
}

.services-page .approach-area .steps-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 20px
}

.services-page .approach-area .steps-list li {
  padding: 20px;
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 1px 6px 1px #bd4e7b0f;
  position: relative;
  padding-left: 32px;
  border-left: 3px solid #BD4E7B;
  transition: box-shadow .18s ease-out
}

.services-page .approach-area .steps-list li:hover {
  box-shadow: 0 5px 22px 1px #bd4e7b1a
}

.services-page .approach-area .steps-list .step-num {
  font-size: 40px;
  line-height: 1.1;
  color: #bd4e7b1f;
  font-weight: 800;
  position: absolute;
  top: 12px;
  right: 20px;
  letter-spacing: -.03em
}

.services-page .approach-area .steps-list .step-title {
  font-size: 17px;
  line-height: 1.6;
  color: #2a1a22;
  font-weight: 600;
  margin-bottom: 4px
}

.services-page .approach-area .steps-list .step-text {
  font-size: 14px;
  line-height: 1.6;
  color: #5a3a48;
  margin: 0
}

.services-page .metrics-band {
  background: #BD4E7B;
  border-radius: 10px;
  padding: 64px 32px;
  margin-bottom: 32px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
  position: relative;
  overflow: hidden
}

.services-page .metrics-band::after {
  content: '';
  position: absolute;
  width: 400px;
  height: 400px;
  border-radius: 50%;
  background: #dfc2c81f;
  top: -120px;
  right: -80px;
  pointer-events: none
}

.services-page .metrics-band .metric-item {
  text-align: center;
  position: relative;
  z-index: 1
}

.services-page .metrics-band .metric-num {
  font-size: 40px;
  line-height: 1.1;
  color: #F1EEEB;
  font-weight: 700;
  letter-spacing: -.02em;
  display: block;
  margin-bottom: 8px
}

.services-page .metrics-band .metric-label {
  font-size: 14px;
  color: #DFC2C8;
  line-height: 1.6;
  letter-spacing: .04em
}

.services-page .metrics-band .metric-icon {
  font-size: 22px;
  color: #f1eeeb80;
  margin-bottom: 8px;
  display: block;
  transition: transform .15s ease-out
}

.services-page .metrics-band .metric-item:hover .metric-icon {
  transform: rotate(-8deg) scale(1.15)
}

.services-page .two-col-block {
  display: grid;
  grid-template-columns: 3fr 2fr;
  gap: 32px;
  margin-bottom: 32px;
  align-items: center
}

.services-page .two-col-block .col-text {
  padding: 32px;
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 1px 6px 1px #bd4e7b0f
}

.services-page .two-col-block .col-text .block-label {
  font-size: 14px;
  color: #BD4E7B;
  text-transform: uppercase;
  letter-spacing: .1em;
  margin-bottom: 12px
}

.services-page .two-col-block .col-text .block-heading {
  font-size: 29px;
  line-height: 1.1;
  color: #2a1a22;
  text-transform: uppercase;
  letter-spacing: -.01em;
  margin-bottom: 20px
}

.services-page .two-col-block .col-text .block-para {
  font-size: 17px;
  line-height: 1.6;
  color: #5a3a48;
  margin-bottom: 12px
}

.services-page .two-col-block .col-text .block-note {
  font-size: 14px;
  line-height: 1.6;
  color: #9a6a7a;
  border-top: 1px solid #F1EEEB;
  padding-top: 12px
}

.services-page .two-col-block .col-img-wrap {
  border-radius: 10px;
  overflow: hidden;
  position: relative
}

.services-page .two-col-block .col-img-wrap img {
  width: 100%;
  height: 320px;
  object-fit: cover;
  display: block;
  filter: grayscale(100%);
  clip-path: polygon(0 0, 100% 0, 100% 92%, 8% 100%, 0 92%);
  transition: transform .2s ease-out
}

.services-page .two-col-block .col-img-wrap:hover img {
  transform: scale(1.05)
}

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

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

.services-page .seminar-card {
  animation: rowReveal .2s ease-out both
}

.services-page .cards-grid .seminar-card:nth-child(1) {
  animation-delay: .05s
}

.services-page .cards-grid .seminar-card:nth-child(2) {
  animation-delay: .1s
}

.services-page .cards-grid .seminar-card:nth-child(3) {
  animation-delay: .15s
}

.services-page .cards-grid .seminar-card:nth-child(4) {
  animation-delay: .2s
}

.services-page .cards-grid .seminar-card:nth-child(5) {
  animation-delay: .25s
}

@media (max-width: 960px) {
  .services-page .cards-grid {
    grid-template-columns: repeat(2, 1fr)
  }

  .services-page .approach-area {
    grid-template-columns: 1fr;
    gap: 32px
  }

  .services-page .approach-area .approach-aside {
    position: static
  }

  .services-page .metrics-band {
    grid-template-columns: repeat(2, 1fr)
  }

  .services-page .two-col-block {
    grid-template-columns: 1fr
  }
}

@media (max-width: 480px) {
  .services-page .cards-grid {
    grid-template-columns: 1fr;
    padding: 0 20px
  }

  .services-page .grain-hero .hero-heading {
    font-size: 29px
  }

  .services-page .metrics-band {
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    padding: 32px 20px
  }

  .services-page .grid-area .area-heading,
  .services-page .grid-area .area-label {
    padding: 0 20px
  }

  .services-page .two-col-block {
    gap: 20px
  }

  .services-page .approach-area {
    padding: 32px 0
  }
}

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

.success-page .card {
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 5px 22px 1px #bd4e7b1a;
  max-width: 540px;
  width: 100%;
  padding: 64px 32px;
  text-align: center
}

.success-page .card .icon-wrap {
  width: 72px;
  height: 72px;
  border-radius: 32px;
  background: #DFC2C8;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  margin: 0 auto 32px
}

.success-page .card .icon-wrap svg {
  width: 36px;
  height: 36px;
  display: block
}

.success-page .card .heading {
  font-size: 29px;
  line-height: 1.1;
  letter-spacing: -.02em;
  color: #2b1a22;
  text-transform: uppercase;
  margin-bottom: 12px
}

.success-page .card .subtext {
  font-size: 17px;
  line-height: 1.6;
  color: #5a3a48;
  margin-bottom: 32px
}

.success-page .card .divider {
  width: 48px;
  height: 3px;
  background: #BD4E7B;
  border-radius: 3px;
  margin: 0 auto 32px
}

.success-page .card .detail {
  font-size: 14px;
  line-height: 1.6;
  color: #7a5464;
  margin-bottom: 32px
}

.success-page .card .back-link {
  display: inline-block;
  background: #BD4E7B;
  color: #fff;
  font-size: 14px;
  letter-spacing: .04em;
  padding: 12px 32px;
  border-radius: 10px;
  text-decoration: none;
  transition: background .15s ease-out, transform .1s ease-out
}

.success-page .card .back-link:hover {
  background: #a03868
}

.success-page .card .back-link:active {
  transform: scale(0.97)
}

@media (max-width: 480px) {
  .success-page .card {
    padding: 32px 20px
  }

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