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

* {
  box-sizing: border-box
}

html {
  scroll-behavior: smooth
}

body {
  margin: 0
}

.site-header {
  background: linear-gradient(160deg, #5518A0 0%, #962CAF 60%, #F2DFF2 100%);
  position: relative
}

.header-top-band {
  display: flex;
  justify-content: center;
  padding: 24px 24px 12px
}

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

.logo-shell {
  background: #ffffff2e;
  border: 1px solid #ffffff73;
  border-radius: 8px;
  box-shadow: 2px 4px 28px 1px #5518a014 0 0 0 2px #ffffff1f;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px;
  width: 85px;
  height: 85px
}

.logo-shell img {
  display: block;
  object-fit: contain;
  width: 100%;
  height: 100%
}

.brand-name {
  color: #fff;
  font-family: 'Merriweather', Georgia, serif;
  font-size: 32px;
  font-weight: 700;
  letter-spacing: -.02em;
  line-height: 1.1;
  text-align: center
}

.brand-name span {
  color: #F2DFF2;
  font-size: 18px;
  font-weight: 400;
  letter-spacing: .04em;
  line-height: 1.3;
  display: block;
  margin-top: 6px;
  font-family: 'Manrope', Arial, sans-serif
}

.primary-menu-mount {
  border-top: 1px solid #fff3;
  display: flex;
  justify-content: center;
  padding: 0 24px
}

.primary-menu {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: center;
  list-style: none;
  margin: 0;
  padding: 12px 0
}

.primary-menu li {
  display: flex
}

.primary-menu a {
  border-radius: 48px;
  color: #ffffffe0;
  display: inline-flex;
  align-items: center;
  font-family: 'Manrope', Arial, sans-serif;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .03em;
  line-height: 1.3;
  min-height: 44px;
  padding: 6px 24px;
  position: relative;
  text-decoration: none;
  transition: color .35s cubic-bezier(0.34, 1.2, 0.64, 1), background .35s cubic-bezier(0.34, 1.2, 0.64, 1);
  z-index: 1;
  overflow: hidden
}

.primary-menu a::before {
  background: #ffffff26;
  border-radius: 48px;
  content: '';
  inset: 0;
  position: absolute;
  opacity: 0;
  transition: opacity .35s cubic-bezier(0.34, 1.2, 0.64, 1);
  z-index: -1
}

.primary-menu a:hover {
  color: #fff
}

.primary-menu a:hover::before {
  opacity: 1
}

.primary-menu a:focus-visible {
  box-shadow: 0 0 0 3px #f2dff2b3;
  outline: none
}

.primary-menu a[aria-current="page"] {
  background: #ffffff2e;
  color: #fff
}

.header-contact-strip {
  background: #5518a059;
  border-top: 1px solid #ffffff1f;
  display: flex;
  justify-content: center;
  gap: 48px;
  flex-wrap: wrap;
  padding: 12px 24px
}

.contact-link {
  color: #F2DFF2;
  font-family: 'Manrope', Arial, sans-serif;
  font-size: 16px;
  letter-spacing: .02em;
  line-height: 1.5;
  text-decoration: none;
  transition: color .32s ease-in-out
}

.contact-link:hover {
  color: #fff
}

.contact-link:focus-visible {
  box-shadow: 0 0 0 3px #f2dff2b3;
  border-radius: 8px;
  outline: none
}

.contact-label {
  color: #f2dff299;
  font-family: 'Manrope', Arial, sans-serif;
  font-size: 16px;
  letter-spacing: .04em;
  line-height: 1.5;
  margin-right: 6px
}

.site-footer {
  background: #2a0a52;
  padding: 48px 24px 24px
}

.footer-shell {
  margin: 0 auto;
  max-width: 1366px
}

.footer-upper {
  border-bottom: 1px solid #f2dff21f;
  display: flex;
  flex-wrap: wrap;
  gap: 48px;
  justify-content: space-between;
  padding-bottom: 48px
}

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

.footer-brand-name {
  color: #F2DFF2;
  font-family: 'Merriweather', Georgia, serif;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: -.01em;
  line-height: 1.3
}

.footer-brand-descriptor {
  color: #f2dff299;
  font-family: 'Manrope', Arial, sans-serif;
  font-size: 16px;
  line-height: 1.5;
  max-width: 280px
}

.footer-links-column {
  display: flex;
  flex-direction: column;
  gap: 12px
}

.footer-column-heading {
  color: #f2dff280;
  font-family: 'Manrope', Arial, sans-serif;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .06em;
  line-height: 1.3;
  text-transform: uppercase
}

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

.footer-menu a {
  border-radius: 8px;
  color: #f2dff2cc;
  display: inline-block;
  font-family: 'Manrope', Arial, sans-serif;
  font-size: 16px;
  line-height: 1.5;
  min-height: 44px;
  padding: 6px 0;
  text-decoration: none;
  transition: color .32s ease-in-out
}

.footer-menu a:hover {
  color: #F2DFF2
}

.footer-menu a:focus-visible {
  box-shadow: 0 0 0 3px #962caf80;
  outline: none;
  padding-left: 6px
}

.footer-contacts-column {
  display: flex;
  flex-direction: column;
  gap: 12px
}

.footer-contact-item {
  display: flex;
  flex-direction: column;
  gap: 6px
}

.footer-contact-type {
  color: #f2dff280;
  font-family: 'Manrope', Arial, sans-serif;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .05em;
  line-height: 1.3;
  text-transform: uppercase
}

.footer-contact-value {
  color: #f2dff2d9;
  font-family: 'Manrope', Arial, sans-serif;
  font-size: 16px;
  line-height: 1.5;
  text-decoration: none;
  transition: color .32s ease-in-out
}

.footer-contact-value:hover {
  color: #F2DFF2
}

.footer-contact-value:focus-visible {
  box-shadow: 0 0 0 3px #962caf80;
  border-radius: 8px;
  outline: none
}

.footer-address-text {
  color: #f2dff2a6;
  font-family: 'Manrope', Arial, sans-serif;
  font-size: 16px;
  line-height: 1.5;
  max-width: 260px
}

.footer-lower {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  justify-content: space-between;
  padding-top: 24px
}

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

.footer-legal-links a {
  border-radius: 8px;
  color: #f2dff280;
  font-family: 'Manrope', Arial, sans-serif;
  font-size: 16px;
  line-height: 1.5;
  min-height: 44px;
  padding: 6px 0;
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  transition: color .32s ease-in-out
}

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

.footer-legal-links a:focus-visible {
  box-shadow: 0 0 0 3px #962caf80;
  outline: none
}

.footer-copyright {
  color: #f2dff266;
  font-family: 'Manrope', Arial, sans-serif;
  font-size: 16px;
  line-height: 1.5
}

.footer-logo-mount {
  border-top: 1px solid #f2dff214;
  display: flex;
  justify-content: center;
  padding-top: 24px;
  margin-top: 24px
}

.footer-logo-shell {
  background: #ffffff14;
  border: 1px solid #f2dff233;
  border-radius: 8px;
  box-shadow: 2px 3px 2px 1px #5518a014;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px;
  width: 70px;
  height: 70px
}

.footer-logo-shell img {
  display: block;
  object-fit: contain;
  width: 100%;
  height: 100%
}

.consent-popup {
  background: #fff;
  border: 1px solid #5518a026;
  border-radius: 8px;
  bottom: 24px;
  box-shadow: 2px 8px 36px 1px #5518a021;
  display: none;
  max-width: 340px;
  padding: 24px;
  position: fixed;
  right: 24px;
  width: calc(100vw - 48px);
  z-index: 4000
}

.consent-description {
  color: #3a1060;
  font-family: 'Manrope', Arial, sans-serif;
  font-size: 16px;
  line-height: 1.5;
  margin: 0 0 12px
}

.consent-heading {
  color: #5518A0;
  font-family: 'Merriweather', Georgia, serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
  margin: 0 0 12px
}

.consent-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center
}

.consent-accept-button {
  background: #5518A0;
  border: none;
  border-radius: 8px;
  color: #fff;
  cursor: pointer;
  font-family: 'Manrope', Arial, sans-serif;
  font-size: 16px;
  font-weight: 700;
  min-height: 44px;
  padding: 6px 24px;
  position: relative;
  overflow: hidden;
  transition: background .38s cubic-bezier(0.34, 1.2, 0.64, 1)
}

.consent-accept-button:hover {
  background: #962CAF
}

.consent-accept-button:focus-visible {
  box-shadow: 0 0 0 3px #962caf66;
  outline: none
}

.consent-settings-toggle {
  background: none;
  border: none;
  color: #5518A0;
  cursor: pointer;
  font-family: 'Manrope', Arial, sans-serif;
  font-size: 16px;
  min-height: 44px;
  padding: 6px 0;
  text-decoration: underline;
  transition: color .32s ease-in-out
}

.consent-settings-toggle:hover {
  color: #962CAF
}

.consent-settings-toggle:focus-visible {
  box-shadow: 0 0 0 3px #962caf66;
  border-radius: 8px;
  outline: none
}

.consent-panel {
  border-top: 1px solid #5518a01f;
  display: none;
  margin-top: 12px;
  padding-top: 12px
}

.consent-panel.open {
  display: block
}

.consent-option {
  align-items: flex-start;
  display: flex;
  gap: 12px;
  margin-bottom: 12px
}

.consent-option input[type="checkbox"] {
  accent-color: #5518A0;
  cursor: pointer;
  height: 20px;
  margin-top: 2px;
  min-width: 20px;
  width: 20px
}

.consent-option-label {
  color: #3a1060;
  font-family: 'Manrope', Arial, sans-serif;
  font-size: 16px;
  line-height: 1.5
}

.consent-mini-strip {
  background: #5518A0;
  border-radius: 8px 8px 0 0;
  bottom: 0;
  display: none;
  position: fixed;
  right: 24px;
  z-index: 4000
}

.consent-mini-button {
  background: none;
  border: none;
  color: #F2DFF2;
  cursor: pointer;
  font-family: 'Manrope', Arial, sans-serif;
  font-size: 16px;
  min-height: 44px;
  padding: 6px 24px;
  text-decoration: underline;
  transition: color .32s ease-in-out
}

.consent-mini-button:hover {
  color: #fff
}

.consent-mini-button:focus-visible {
  box-shadow: 0 0 0 3px #f2dff299;
  border-radius: 8px;
  outline: none
}

@media (max-width: 640px) {
  .header-top-band {
    padding: 16px 16px 8px
  }

  .logo-shell {
    width: 52px;
    height: 52px;
    padding: 8px
  }

  .brand-name {
    font-size: 22px
  }

  .brand-name span {
    font-size: 13px
  }

  .primary-menu-mount {
    padding: 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    justify-content: flex-start
  }

  .primary-menu-mount::-webkit-scrollbar {
    display: none
  }

  .primary-menu {
    flex-wrap: nowrap;
    gap: 4px;
    padding: 8px 12px;
    justify-content: flex-start
  }

  .primary-menu a {
    font-size: 13px;
    padding: 6px 12px;
    min-height: 34px;
    white-space: nowrap;
    background: #ffffff1a
  }

  .primary-menu a[aria-current="page"] {
    background: #ffffff3d
  }

  .header-contact-strip {
    gap: 8px;
    flex-direction: column;
    align-items: center;
    padding: 8px 16px
  }

  .contact-label,
  .contact-link {
    font-size: 14px
  }

  .footer-upper {
    flex-direction: column;
    gap: 24px
  }

  .footer-lower {
    flex-direction: column;
    align-items: flex-start
  }

  .consent-popup {
    right: 12px;
    bottom: 12px;
    width: calc(100vw - 24px);
    max-width: none
  }

  .consent-mini-strip {
    right: 12px
  }
}

.rules-content {
  margin-left: auto;
  margin-right: auto;
  max-width: 1366px;
  padding: 48px 24px
}

.rules-content p {
  color: #2a1a3e;
  font-size: 18px;
  line-height: 1.7;
  margin-bottom: 24px;
  margin-top: 0
}

.rules-content strong,
.rules-content b {
  color: #5518A0;
  font-weight: 700
}

.rules-content em,
.rules-content i {
  color: #3d1470;
  font-style: italic
}

.rules-content hr {
  background: linear-gradient(90deg, #5518A0, #962CAF, #F2DFF2);
  border: none;
  height: 2px;
  margin-bottom: 48px;
  margin-top: 48px;
  opacity: .35
}

.rules-content table {
  border-collapse: collapse;
  border-radius: 8px;
  box-shadow: 2px 4px 28px 1px #5518a014;
  font-size: 16px;
  line-height: 1.5;
  margin-bottom: 48px;
  margin-top: 24px;
  overflow: hidden;
  width: 100%
}

.rules-content thead {
  background-color: #5518A0
}

.rules-content thead th {
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .03em;
  line-height: 1.3;
  padding: 12px 24px;
  text-align: left
}

.rules-content tbody tr {
  border-bottom: 1px solid #F2DFF2;
  transition: background-color .35s cubic-bezier(0.34, 1.2, 0.64, 1)
}

.rules-content tbody tr:last-child {
  border-bottom: none
}

.rules-content tbody tr:hover {
  background-color: #F2DFF2
}

.rules-content tbody td {
  color: #2a1a3e;
  font-size: 16px;
  line-height: 1.5;
  padding: 12px 24px;
  vertical-align: top
}

.rules-content tbody tr:nth-child(even) {
  background-color: #faf6ff
}

.rules-content tbody tr:nth-child(even):hover {
  background-color: #F2DFF2
}

@media (max-width: 768px) {
  .rules-content {
    padding: 24px 12px
  }

  .rules-content table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch
  }

  .rules-content p {
    font-size: 16px
  }

  .rules-content thead th,
  .rules-content tbody td {
    padding: 12px
  }
}

.services-detail {
  background: #fff;
  color: #1b1228;
  overflow-x: clip;
  padding: 0
}

.services-detail .exhibition-title-block {
  max-width: 1366px;
  margin: 0 auto;
  padding: 48px 48px 0;
  position: relative
}

.services-detail .exhibition-title-block::before {
  background: linear-gradient(180deg, #5518A0, #962CAF);
  content: "";
  display: block;
  height: 3px;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%
}

.services-detail .title-layout {
  align-items: stretch;
  display: flex;
  flex-direction: row;
  gap: 24px
}

.services-detail .title-image-left {
  border-radius: 8px;
  flex: 0 0 240px;
  overflow: hidden;
  position: relative
}

.services-detail .title-image-right {
  border-radius: 8px;
  flex: 0 0 200px;
  overflow: hidden;
  position: relative
}

.services-detail .title-image-left img,
.services-detail .title-image-right img {
  border: 1px solid #5518a01f;
  border-radius: 8px;
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%
}

.services-detail .title-image-left::after,
.services-detail .title-image-right::after {
  background: linear-gradient(180deg, transparent 40%, #5518a08c 100%);
  border-radius: 8px;
  bottom: 0;
  content: "";
  left: 0;
  pointer-events: none;
  position: absolute;
  right: 0;
  top: 0
}

.services-detail .title-text-zone {
  flex: 1 1 auto;
  padding: 24px 12px;
  position: relative
}

.services-detail .title-decoration {
  animation: spin-slow 14s linear infinite;
  border: 2px solid #962caf2e;
  border-radius: 8px;
  height: 120px;
  left: 50%;
  pointer-events: none;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 120px;
  z-index: 0
}

@keyframes spin-slow {
  from {
    transform: translate(-50%, -50%) rotate(0deg)
  }

  to {
    transform: translate(-50%, -50%) rotate(360deg)
  }
}

.services-detail .title-eyebrow {
  background: linear-gradient(180deg, #5518A0, #962CAF);
  border-radius: 48px;
  color: #fff;
  display: inline-block;
  font-size: 16px;
  letter-spacing: .06em;
  line-height: 1.3;
  margin-bottom: 12px;
  padding: 6px 24px;
  position: relative;
  z-index: 1
}

.services-detail .title-heading-wrap {
  position: relative;
  z-index: 1
}

.services-detail .title-heading-main {
  background: linear-gradient(180deg, #5518A0, #962CAF);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  display: block;
  font-size: 62px;
  font-weight: 800;
  letter-spacing: -.02em;
  line-height: 1.1;
  transition: opacity .38s cubic-bezier(0.34, 1.2, 0.64, 1)
}

.services-detail .title-heading-hover {
  background: linear-gradient(180deg, #962CAF, #5518A0);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  display: block;
  font-size: 62px;
  font-weight: 800;
  left: 0;
  letter-spacing: -.02em;
  line-height: 1.1;
  opacity: 0;
  position: absolute;
  top: 0;
  transition: opacity .38s cubic-bezier(0.34, 1.2, 0.64, 1);
  width: 100%
}

.services-detail .title-heading-wrap:hover .title-heading-main {
  opacity: 0
}

.services-detail .title-heading-wrap:hover .title-heading-hover {
  opacity: 1
}

.services-detail .title-sub {
  color: #3a2260;
  font-size: 18px;
  letter-spacing: .01em;
  line-height: 1.5;
  margin-top: 12px;
  position: relative;
  text-align: justify;
  z-index: 1
}

.services-detail .title-meta-row {
  align-items: center;
  display: flex;
  flex-direction: row;
  gap: 24px;
  margin-top: 24px;
  position: relative;
  z-index: 1
}

.services-detail .price-badge {
  align-items: center;
  background: #F2DFF2;
  border: 2px solid #962CAF;
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  padding: 12px 24px
}

.services-detail .price-badge-label {
  color: #5518A0;
  font-size: 16px;
  letter-spacing: .04em;
  line-height: 1.3
}

.services-detail .price-badge-value {
  background: linear-gradient(180deg, #5518A0, #962CAF);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-size: 32px;
  font-weight: 800;
  letter-spacing: -.01em;
  line-height: 1.1
}

.services-detail .like-shape {
  align-items: center;
  border: 3px solid #5518A0;
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 12px 24px
}

.services-detail .like-count {
  background: linear-gradient(180deg, #5518A0, #962CAF);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-size: 32px;
  font-weight: 800;
  line-height: 1.1
}

.services-detail .like-label {
  color: #5518A0;
  font-size: 16px;
  letter-spacing: .03em;
  line-height: 1.3
}

.services-detail .title-cta {
  background: linear-gradient(135deg, #5518A0, #962CAF);
  border: none;
  border-radius: 8px;
  box-shadow: 2px 4px 28px 1px #5518a014;
  color: #fff;
  cursor: pointer;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: .02em;
  line-height: 1.3;
  overflow: hidden;
  padding: 12px 48px;
  position: relative;
  transition: box-shadow .35s cubic-bezier(0.34, 1.2, 0.64, 1)
}

.services-detail .title-cta::before {
  background: linear-gradient(135deg, transparent 0%, #ffffff2e 50%, transparent 100%);
  content: "";
  height: 100%;
  left: -100%;
  position: absolute;
  top: 0;
  transition: left .42s cubic-bezier(0.34, 1.2, 0.64, 1);
  width: 100%
}

.services-detail .title-cta:hover::before {
  left: 100%
}

.services-detail .title-cta:hover {
  box-shadow: 2px 8px 36px 1px #5518a021
}

.services-detail .title-cta:focus {
  outline: 3px solid #962CAF;
  outline-offset: 2px
}

.services-detail .brushstroke-divider {
  display: block;
  margin: 0 auto;
  max-width: 1366px;
  overflow: hidden;
  padding: 0 48px
}

.services-detail .detail-body {
  background: #fff;
  max-width: 1366px;
  margin: 0 auto;
  padding: 48px;
  position: relative
}

.services-detail .detail-body::after {
  background: linear-gradient(180deg, #5518A0, #962CAF);
  bottom: 0;
  content: "";
  display: block;
  height: 3px;
  left: 0;
  position: absolute;
  width: 100%
}

.services-detail .body-grid {
  display: grid;
  gap: 48px;
  grid-template-columns: 1fr 380px
}

.services-detail .body-left {
  display: flex;
  flex-direction: column;
  gap: 24px
}

.services-detail .program-block {
  background: #F2DFF2;
  border-radius: 8px;
  box-shadow: 2px 3px 2px 1px #5518a014;
  padding: 24px
}

.services-detail .program-heading {
  background: linear-gradient(180deg, #5518A0, #962CAF);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-size: 24px;
  font-weight: 800;
  letter-spacing: -.01em;
  line-height: 1.3;
  margin-bottom: 12px
}

.services-detail .program-block p {
  color: #2a1a4a;
  font-size: 16px;
  line-height: 1.7;
  margin-bottom: 12px;
  text-align: justify
}

.services-detail .program-block h2 {
  background: linear-gradient(180deg, #5518A0, #962CAF);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.3;
  margin-bottom: 12px;
  margin-top: 24px
}

.services-detail .program-block h3 {
  color: #5518A0;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
  margin-bottom: 6px;
  margin-top: 12px
}

.services-detail .program-block mark {
  background: #962caf24;
  border-radius: 4px;
  color: #3a1270;
  padding: 0 6px
}

.services-detail .program-block small {
  color: #5518A0;
  font-size: 16px;
  line-height: 1.5
}

.services-detail .program-block ol {
  color: #2a1a4a;
  font-size: 16px;
  line-height: 1.7;
  padding-left: 24px
}

.services-detail .program-block li {
  margin-bottom: 6px
}

.services-detail .program-block dl {
  display: grid;
  gap: 6px;
  grid-template-columns: auto 1fr
}

.services-detail .program-block dt {
  color: #5518A0;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5
}

.services-detail .program-block dd {
  color: #2a1a4a;
  font-size: 16px;
  line-height: 1.5;
  margin: 0
}

.services-detail .program-block blockquote {
  border-radius: 8px;
  border-top: 3px solid #962CAF;
  color: #3a1270;
  font-size: 18px;
  font-style: italic;
  line-height: 1.5;
  margin: 12px 0;
  padding: 12px 24px;
  background: #f2dff280
}

.services-detail .program-block details {
  border: 1px solid #5518a033;
  border-radius: 8px;
  margin-bottom: 6px;
  padding: 6px 12px
}

.services-detail .program-block summary {
  color: #5518A0;
  cursor: pointer;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  padding: 6px 0
}

.services-detail .description-block {
  background: #fff;
  border-radius: 8px;
  box-shadow: 2px 4px 28px 1px #5518a014;
  padding: 24px
}

.services-detail .description-heading {
  background: linear-gradient(180deg, #5518A0, #962CAF);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-size: 24px;
  font-weight: 800;
  letter-spacing: -.01em;
  line-height: 1.3;
  margin-bottom: 12px
}

.services-detail .description-block p {
  color: #2a1a4a;
  font-size: 16px;
  line-height: 1.7;
  margin-bottom: 12px;
  text-align: justify
}

.services-detail .description-block h2 {
  background: linear-gradient(180deg, #5518A0, #962CAF);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.3;
  margin-bottom: 12px;
  margin-top: 24px
}

.services-detail .description-block cite {
  color: #5518A0;
  font-size: 16px;
  font-style: italic;
  line-height: 1.5
}

.services-detail .description-block ol {
  color: #2a1a4a;
  font-size: 16px;
  line-height: 1.7;
  padding-left: 24px
}

.services-detail .description-block li {
  margin-bottom: 6px
}

.services-detail .description-block dl {
  display: grid;
  gap: 6px;
  grid-template-columns: auto 1fr
}

.services-detail .description-block dt {
  color: #5518A0;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5
}

.services-detail .description-block dd {
  color: #2a1a4a;
  font-size: 16px;
  line-height: 1.5;
  margin: 0
}

.services-detail .description-block figure {
  border-radius: 8px;
  margin: 12px 0;
  overflow: hidden
}

.services-detail .description-block figcaption {
  color: #5518A0;
  font-size: 16px;
  line-height: 1.5;
  margin-top: 6px;
  text-align: center
}

.services-detail .body-right {
  display: flex;
  flex-direction: column;
  gap: 24px
}

.services-detail .sidebar-image-frame {
  border: 1px solid #5518a026;
  border-radius: 8px;
  box-shadow: 2px 4px 28px 1px #5518a014;
  overflow: hidden;
  position: relative
}

.services-detail .sidebar-image-frame img {
  display: block;
  height: 280px;
  object-fit: cover;
  width: 100%
}

.services-detail .sidebar-image-frame::after {
  background: linear-gradient(180deg, transparent 50%, #5518a066 100%);
  bottom: 0;
  content: "";
  left: 0;
  pointer-events: none;
  position: absolute;
  right: 0;
  top: 0
}

.services-detail .poll-block {
  background: #1b1228;
  border-radius: 8px;
  box-shadow: 2px 8px 36px 1px #5518a021;
  padding: 24px
}

.services-detail .poll-heading {
  background: linear-gradient(180deg, #F2DFF2, #d8b4e2);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-size: 18px;
  font-weight: 800;
  letter-spacing: -.01em;
  line-height: 1.3;
  margin-bottom: 6px
}

.services-detail .poll-sub {
  color: #c9aee8;
  font-size: 16px;
  line-height: 1.5;
  margin-bottom: 24px
}

.services-detail .poll-options {
  display: flex;
  flex-direction: column;
  gap: 12px
}

.services-detail .poll-option {
  display: flex;
  flex-direction: row;
  position: relative
}

.services-detail .poll-option input[type="radio"] {
  height: 0;
  opacity: 0;
  position: absolute;
  width: 0
}

.services-detail .poll-option-label {
  align-items: center;
  border: 2px solid #f2dff240;
  border-radius: 8px;
  color: #e8d8f8;
  cursor: pointer;
  display: flex;
  flex-direction: row;
  font-size: 16px;
  gap: 12px;
  line-height: 1.5;
  padding: 12px;
  transition: border-color .35s cubic-bezier(0.34, 1.2, 0.64, 1), background .35s cubic-bezier(0.34, 1.2, 0.64, 1);
  width: 100%
}

.services-detail .poll-option-label::before {
  background: transparent;
  border: 2px solid #f2dff266;
  border-radius: 48px;
  content: "";
  flex-shrink: 0;
  height: 18px;
  transition: background .28s cubic-bezier(0.34, 1.2, 0.64, 1), border-color .28s cubic-bezier(0.34, 1.2, 0.64, 1);
  width: 18px
}

.services-detail .poll-option input[type="radio"]:checked+.poll-option-label {
  background: #962caf38;
  border-color: #962CAF;
  color: #fff
}

.services-detail .poll-option input[type="radio"]:checked+.poll-option-label::before {
  background: #962CAF;
  border-color: #962CAF
}

.services-detail .poll-option input[type="radio"]:focus+.poll-option-label {
  outline: 2px solid #F2DFF2;
  outline-offset: 2px
}

.services-detail .poll-option-label:hover {
  background: #f2dff20f;
  border-color: #962caf80
}

.services-detail .poll-submit {
  background: linear-gradient(135deg, #5518A0, #962CAF);
  border: none;
  border-radius: 8px;
  color: #fff;
  cursor: pointer;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .03em;
  line-height: 1.3;
  margin-top: 24px;
  overflow: hidden;
  padding: 12px 24px;
  position: relative;
  transition: box-shadow .4s cubic-bezier(0.34, 1.2, 0.64, 1);
  width: 100%
}

.services-detail .poll-submit::before {
  background: linear-gradient(135deg, transparent 0%, #ffffff26 50%, transparent 100%);
  content: "";
  height: 100%;
  left: -100%;
  position: absolute;
  top: 0;
  transition: left .42s cubic-bezier(0.34, 1.2, 0.64, 1);
  width: 100%
}

.services-detail .poll-submit:hover::before {
  left: 100%
}

.services-detail .poll-submit:hover {
  box-shadow: 2px 8px 36px 1px #5518a021
}

.services-detail .poll-submit:focus {
  outline: 3px solid #F2DFF2;
  outline-offset: 2px
}

.services-detail .contact-strip {
  background: #F2DFF2;
  border-radius: 8px;
  box-shadow: 2px 3px 2px 1px #5518a014;
  padding: 24px
}

.services-detail .contact-strip-heading {
  background: linear-gradient(180deg, #5518A0, #962CAF);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-size: 18px;
  font-weight: 800;
  line-height: 1.3;
  margin-bottom: 12px
}

.services-detail .contact-strip-text {
  color: #3a1270;
  font-size: 16px;
  line-height: 1.5;
  margin-bottom: 12px;
  text-align: justify
}

.services-detail .contact-link {
  background: linear-gradient(135deg, #5518A0, #962CAF);
  border-radius: 8px;
  color: #fff;
  display: inline-block;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .03em;
  line-height: 1.3;
  overflow: hidden;
  padding: 12px 24px;
  position: relative;
  text-decoration: none;
  transition: box-shadow .38s cubic-bezier(0.34, 1.2, 0.64, 1)
}

.services-detail .contact-link::before {
  background: linear-gradient(135deg, transparent 0%, #ffffff26 50%, transparent 100%);
  content: "";
  height: 100%;
  left: -100%;
  position: absolute;
  top: 0;
  transition: left .44s cubic-bezier(0.34, 1.2, 0.64, 1);
  width: 100%
}

.services-detail .contact-link:hover::before {
  left: 100%
}

.services-detail .contact-link:hover {
  box-shadow: 2px 8px 36px 1px #5518a021
}

.services-detail .contact-link:focus {
  outline: 3px solid #5518A0;
  outline-offset: 2px
}

@media (max-width: 1024px) {
  .services-detail .body-grid {
    grid-template-columns: 1fr
  }

  .services-detail .body-right {
    display: grid;
    gap: 24px;
    grid-template-columns: 1fr 1fr
  }

  .services-detail .sidebar-image-frame {
    grid-column: 1 / -1
  }
}

@media (max-width: 768px) {
  .services-detail .exhibition-title-block {
    padding: 48px 24px 0
  }

  .services-detail .title-layout {
    flex-direction: column
  }

  .services-detail .title-image-left,
  .services-detail .title-image-right {
    flex: 0 0 180px
  }

  .services-detail .title-heading-main,
  .services-detail .title-heading-hover {
    font-size: 32px
  }

  .services-detail .title-meta-row {
    flex-wrap: wrap
  }

  .services-detail .detail-body {
    padding: 48px 24px
  }

  .services-detail .body-right {
    grid-template-columns: 1fr
  }

  .services-detail .brushstroke-divider {
    padding: 0 24px
  }
}

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

.philanthropy .exhibition-hero {
  background: #5518A0;
  padding: 48px 0 0;
  position: relative
}

.philanthropy .exhibition-hero-inner {
  max-width: 1366px;
  margin: 0 auto;
  padding: 0 48px;
  display: flex;
  flex-direction: row;
  align-items: flex-end;
  gap: 48px
}

.philanthropy .exhibition-text-area {
  flex: 1;
  padding-bottom: 48px;
  position: relative;
  z-index: 1
}

.philanthropy .dot-grid {
  position: absolute;
  top: 0;
  left: -24px;
  width: calc(100% + 24px);
  height: 100%;
  background-image: radial-gradient(circle, #f2dff22e 1px, transparent 1px);
  background-size: 18px 18px;
  pointer-events: none
}

.philanthropy .exhibition-label {
  display: inline-block;
  background: #f2dff226;
  border: 1px solid #f2dff24d;
  border-radius: 8px;
  color: #F2DFF2;
  font-size: 16px;
  letter-spacing: .08em;
  line-height: 1.3;
  padding: 6px 12px;
  margin-bottom: 24px
}

.philanthropy .exhibition-heading {
  font-size: 62px;
  line-height: 1.1;
  letter-spacing: -.02em;
  margin: 0 0 24px;
  background: linear-gradient(180deg, #F2DFF2 0%, #962CAF 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text
}

.philanthropy .exhibition-heading span {
  display: block;
  font-size: 72px;
  letter-spacing: -.03em
}

.philanthropy .exhibition-subtext {
  font-size: 18px;
  line-height: 1.5;
  color: #f2dff2d9;
  max-width: 520px;
  margin: 0 0 24px;
  text-align: justified
}

.philanthropy .exhibition-cta {
  display: inline-block;
  background: #F2DFF2;
  border-radius: 8px;
  color: #5518A0;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .04em;
  line-height: 1.3;
  padding: 12px 24px;
  text-decoration: none;
  position: relative;
  overflow: hidden;
  transition: color .38s cubic-bezier(0.34, 1.2, 0.64, 1), box-shadow .38s cubic-bezier(0.34, 1.2, 0.64, 1);
  box-shadow: 2px 4px 28px 1px #5518a014
}

.philanthropy .exhibition-cta::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #962CAF 0%, #5518A0 100%);
  transition: left .42s cubic-bezier(0.34, 1.2, 0.64, 1);
  z-index: 0
}

.philanthropy .exhibition-cta:hover::before {
  left: 0
}

.philanthropy .exhibition-cta:hover {
  color: #F2DFF2;
  box-shadow: 2px 8px 36px 1px #5518a021
}

.philanthropy .exhibition-cta-text {
  position: relative;
  z-index: 1
}

.philanthropy .exhibition-image-area {
  flex: 0 0 420px;
  position: relative;
  align-self: flex-end
}

.philanthropy .exhibition-image-frame {
  border-radius: 8px 8px 0 0;
  overflow: hidden;
  border: 1px solid #f2dff240;
  box-shadow: 2px 8px 36px 1px #5518a021
}

.philanthropy .exhibition-image-frame img {
  width: 420px;
  height: 380px;
  object-fit: cover;
  display: block;
  transition: transform .42s cubic-bezier(0.34, 1.2, 0.64, 1);
  filter: blur(0px)
}

.philanthropy .exhibition-image-frame img:hover {
  transform: scale(1.04)
}

.philanthropy .circle-decoration {
  position: absolute;
  border-radius: 48px;
  pointer-events: none
}

.philanthropy .circle-decoration.large {
  width: 320px;
  height: 320px;
  border-radius: 50%;
  background: #962caf1f;
  top: -60px;
  right: -60px
}

.philanthropy .circle-decoration.medium {
  width: 200px;
  height: 200px;
  border-radius: 50%;
  background: #f2dff212;
  top: 40px;
  right: 40px
}

.philanthropy .circle-decoration.small {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  background: #962caf17;
  top: 100px;
  right: 120px
}

.philanthropy .zigzag-divider {
  display: block;
  width: 100%;
  height: 40px;
  background: #5518A0
}

.philanthropy .zigzag-divider svg {
  display: block;
  width: 100%;
  height: 40px
}

.philanthropy .exhibition-about {
  background: #fff;
  padding: 48px 0;
  position: relative
}

.philanthropy .exhibition-about-inner {
  max-width: 1366px;
  margin: 0 auto;
  padding: 0 48px;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 24px;
  align-items: start
}

.philanthropy .about-statement {
  grid-column: 1 / 3
}

.philanthropy .about-heading {
  font-size: 32px;
  line-height: 1.1;
  letter-spacing: -.01em;
  margin: 0 0 24px;
  background: linear-gradient(180deg, #5518A0 0%, #962CAF 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text
}

.philanthropy .about-body {
  font-size: 18px;
  line-height: 1.7;
  color: #2a1040;
  text-align: justify;
  margin: 0 0 24px
}

.philanthropy .about-accent {
  display: inline;
  background: #F2DFF2;
  border-radius: 8px;
  padding: 2px 8px;
  font-weight: 600;
  color: #5518A0
}

.philanthropy .about-metrics {
  grid-column: 3 / 4;
  display: flex;
  flex-direction: column;
  gap: 12px
}

.philanthropy .metric-bar-group {
  background: #F2DFF2;
  border-radius: 8px;
  padding: 12px;
  box-shadow: 2px 3px 2px 1px #5518a014
}

.philanthropy .metric-label {
  font-size: 16px;
  line-height: 1.3;
  color: #5518A0;
  font-weight: 600;
  margin-bottom: 6px
}

.philanthropy .metric-bars {
  display: flex;
  flex-direction: column;
  gap: 6px
}

.philanthropy .bar-row {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 6px
}

.philanthropy .bar-tag {
  font-size: 16px;
  line-height: 1.3;
  color: #5518A0;
  min-width: 80px
}

.philanthropy .bar-track {
  flex: 1;
  height: 8px;
  background: #5518a01f;
  border-radius: 48px;
  overflow: hidden
}

.philanthropy .bar-fill {
  height: 100%;
  border-radius: 48px;
  background: linear-gradient(180deg, #5518A0 0%, #962CAF 100%);
  animation: bar-grow .45s cubic-bezier(0.34, 1.2, 0.64, 1) both
}

@keyframes bar-grow {
  from {
    width: 0
  }

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

.philanthropy .bar-value {
  font-size: 16px;
  color: #962CAF;
  font-weight: 700;
  min-width: 36px;
  text-align: right
}

.philanthropy .about-cards-row {
  grid-column: 1 / 3;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 24px
}

.philanthropy .about-card {
  background: #fff;
  border-radius: 8px;
  border: 1px solid #5518a01f;
  padding: 24px;
  box-shadow: 2px 4px 28px 1px #5518a014;
  transition: box-shadow .38s cubic-bezier(0.34, 1.2, 0.64, 1), border-color .35s ease-in-out
}

.philanthropy .about-card:hover {
  box-shadow: 2px 8px 36px 1px #5518a021;
  border-color: #962caf4d
}

.philanthropy .card-number {
  font-size: 32px;
  line-height: 1.1;
  font-weight: 800;
  background: linear-gradient(180deg, #5518A0 0%, #962CAF 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin-bottom: 6px
}

.philanthropy .card-description {
  font-size: 16px;
  line-height: 1.5;
  color: #2a1040;
  margin: 0
}

.philanthropy .zigzag-divider-bottom {
  display: block;
  width: 100%;
  height: 40px;
  background: #fff
}

.philanthropy .zigzag-divider-bottom svg {
  display: block;
  width: 100%;
  height: 40px
}

.philanthropy .exhibition-programs {
  background: linear-gradient(180deg, #1a0535 0%, #3a0e7a 40%, #F2DFF2 100%);
  padding: 48px 0;
  position: relative;
  overflow: hidden
}

.philanthropy .wave-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  overflow: hidden
}

.philanthropy .wave-bg svg {
  position: absolute;
  top: 0;
  left: 0;
  width: 200%;
  height: 100%;
  animation: wave-pass 6s linear infinite;
  opacity: .18
}

@keyframes wave-pass {
  from {
    transform: translateX(0)
  }

  to {
    transform: translateX(-50%)
  }
}

.philanthropy .cross-hatch-texture {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  background-image: repeating-linear-gradient(45deg, #f2dff20a 0px, #f2dff20a 1px, transparent 1px, transparent 8px), repeating-linear-gradient(-45deg, #f2dff20a 0px, #f2dff20a 1px, transparent 1px, transparent 8px)
}

.philanthropy .programs-inner {
  max-width: 1366px;
  margin: 0 auto;
  padding: 0 48px;
  position: relative;
  z-index: 1
}

.philanthropy .programs-top {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  justify-content: space-between;
  gap: 48px;
  margin-bottom: 48px
}

.philanthropy .programs-heading {
  font-size: 32px;
  line-height: 1.1;
  letter-spacing: -.01em;
  margin: 0 0 12px;
  background: linear-gradient(180deg, #F2DFF2 0%, #962CAF 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text
}

.philanthropy .programs-intro {
  font-size: 18px;
  line-height: 1.5;
  color: #f2dff2cc;
  max-width: 480px;
  margin: 0;
  text-align: justify
}

.philanthropy .programs-link {
  display: inline-block;
  border: 1px solid #f2dff266;
  border-radius: 8px;
  color: #F2DFF2;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: .04em;
  line-height: 1.3;
  padding: 12px 24px;
  text-decoration: none;
  white-space: nowrap;
  align-self: flex-start;
  position: relative;
  overflow: hidden;
  transition: border-color .35s ease-in-out, color .35s ease-in-out, box-shadow .38s cubic-bezier(0.34, 1.2, 0.64, 1);
  box-shadow: 2px 3px 2px 1px #962caf14
}

.philanthropy .programs-link::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #962CAF 0%, #5518A0 100%);
  transition: left .42s cubic-bezier(0.34, 1.2, 0.64, 1);
  z-index: 0
}

.philanthropy .programs-link:hover::before {
  left: 0
}

.philanthropy .programs-link:hover {
  border-color: #962CAF;
  box-shadow: 2px 8px 36px 1px #962caf21
}

.philanthropy .programs-link-text {
  position: relative;
  z-index: 1
}

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

.philanthropy .program-card {
  background: #ffffff0f;
  border-radius: 8px;
  border: 1px solid #f2dff226;
  padding: 24px;
  box-shadow: 2px 4px 28px 1px #5518a014;
  transition: background .38s cubic-bezier(0.34, 1.2, 0.64, 1), border-color .35s ease-in-out, box-shadow .38s cubic-bezier(0.34, 1.2, 0.64, 1);
  cursor: default
}

.philanthropy .program-card:hover {
  background: #f2dff21a;
  border-color: #962caf66;
  box-shadow: 2px 8px 36px 1px #5518a021
}

.philanthropy .program-card-icon {
  width: 40px;
  height: 40px;
  margin-bottom: 12px
}

.philanthropy .program-card-name {
  font-size: 18px;
  line-height: 1.3;
  font-weight: 700;
  margin: 0 0 12px;
  background: linear-gradient(180deg, #F2DFF2 0%, #962CAF 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text
}

.philanthropy .program-card-text {
  font-size: 16px;
  line-height: 1.5;
  color: #f2dff2bf;
  margin: 0;
  text-align: justify
}

.philanthropy .programs-disclosure {
  margin-top: 48px
}

.philanthropy .disclosure-summary-row {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 12px;
  background: #f2dff214;
  border: 1px solid #f2dff233;
  border-radius: 8px;
  padding: 12px 24px;
  cursor: pointer;
  list-style: none;
  transition: background .35s ease-in-out, border-color .35s ease-in-out
}

.philanthropy .disclosure-summary-row:hover {
  background: #f2dff224;
  border-color: #962caf66
}

.philanthropy .disclosure-summary-row::-webkit-details-marker {
  display: none
}

.philanthropy .disclosure-label {
  font-size: 18px;
  line-height: 1.3;
  color: #F2DFF2;
  font-weight: 600;
  flex: 1
}

.philanthropy .disclosure-arrow {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  transition: transform .42s cubic-bezier(0.34, 1.2, 0.64, 1)
}

.philanthropy details[open] .disclosure-arrow {
  transform: rotate(180deg)
}

.philanthropy .disclosure-details-body {
  padding: 24px;
  background: #ffffff0a;
  border: 1px solid #f2dff21f;
  border-top: none;
  border-radius: 0 0 8px 8px
}

.philanthropy .disclosure-details-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px
}

.philanthropy .disclosure-item-heading {
  font-size: 18px;
  line-height: 1.3;
  color: #F2DFF2;
  font-weight: 700;
  margin: 0 0 6px
}

.philanthropy .disclosure-item-text {
  font-size: 16px;
  line-height: 1.5;
  color: #f2dff2bf;
  margin: 0;
  text-align: justify
}

@media (max-width: 1024px) {
  .philanthropy .exhibition-hero-inner {
    flex-direction: column;
    padding: 0 24px;
    gap: 24px
  }

  .philanthropy .exhibition-image-area {
    flex: 0 0 auto;
    width: 100%
  }

  .philanthropy .exhibition-image-frame img {
    width: 100%;
    height: 280px
  }

  .philanthropy .exhibition-heading {
    font-size: 48px
  }

  .philanthropy .exhibition-heading span {
    font-size: 56px
  }

  .philanthropy .exhibition-about-inner {
    grid-template-columns: 1fr;
    padding: 0 24px
  }

  .philanthropy .about-statement {
    grid-column: 1 / 2
  }

  .philanthropy .about-metrics {
    grid-column: 1 / 2
  }

  .philanthropy .about-cards-row {
    grid-column: 1 / 2;
    grid-template-columns: 1fr
  }

  .philanthropy .programs-inner {
    padding: 0 24px
  }

  .philanthropy .programs-grid {
    grid-template-columns: 1fr 1fr
  }

  .philanthropy .programs-top {
    flex-direction: column;
    gap: 24px
  }

  .philanthropy .disclosure-details-grid {
    grid-template-columns: 1fr
  }
}

@media (max-width: 640px) {
  .philanthropy .exhibition-heading {
    font-size: 32px
  }

  .philanthropy .exhibition-heading span {
    font-size: 40px
  }

  .philanthropy .programs-grid {
    grid-template-columns: 1fr
  }

  .philanthropy .about-cards-row {
    grid-template-columns: 1fr
  }

  .philanthropy .exhibition-hero-inner {
    padding: 0 12px
  }

  .philanthropy .programs-inner {
    padding: 0 12px
  }

  .philanthropy .exhibition-about-inner {
    padding: 0 12px
  }
}

.contact-us-page {
  max-width: 1366px;
  margin: 0 auto;
  overflow: hidden
}

.contact-us-page .split-panel {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 0;
  min-height: 600px
}

.contact-us-page .panel-image-column {
  flex: 0 0 38%;
  position: relative;
  align-self: stretch
}

.contact-us-page .panel-image-column img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block
}

.contact-us-page .panel-image-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to right, #5518a02e 0%, #962caf8c 100%);
  pointer-events: none
}

.contact-us-page .panel-image-frame {
  position: absolute;
  top: 24px;
  left: 24px;
  right: 0;
  bottom: 24px;
  border: 1.5px solid #f2dff273;
  border-right: none;
  border-radius: 48px 0 0 48px;
  pointer-events: none
}

.contact-us-page .panel-text-column {
  flex: 1 1 62%;
  padding: 48px;
  background: #fff;
  position: relative;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: center
}

.contact-us-page .panel-frame-lines {
  position: absolute;
  top: 24px;
  left: 0;
  right: 24px;
  bottom: 24px;
  border: 1.5px solid #5518a021;
  border-left: none;
  border-radius: 0 48px 48px 0;
  pointer-events: none
}

.contact-us-page .panel-accent-bar {
  width: 48px;
  height: 4px;
  background: linear-gradient(to bottom, #5518A0, #962CAF);
  border-radius: 8px;
  margin-bottom: 24px
}

.contact-us-page .panel-heading {
  font-size: 62px;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -.03em;
  background: linear-gradient(to bottom, #5518A0, #962CAF);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin-bottom: 24px;
  max-width: 520px
}

.contact-us-page .panel-sub {
  font-size: 18px;
  line-height: 1.5;
  color: #3a2050;
  margin-bottom: 48px;
  max-width: 460px;
  text-align: left
}

.contact-us-page .contact-details-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px
}

.contact-us-page .detail-item {
  display: flex;
  flex-direction: column;
  gap: 6px
}

.contact-us-page .detail-label {
  font-size: 16px;
  font-weight: 700;
  color: #5518A0;
  letter-spacing: .06em;
  text-transform: uppercase
}

.contact-us-page .detail-value {
  font-size: 18px;
  line-height: 1.3;
  color: #2a1040;
  text-decoration: none;
  transition: color .38s cubic-bezier(0.34, 1.2, 0.64, 1)
}

.contact-us-page .detail-value:hover {
  color: #962CAF
}

.contact-us-page .detail-address {
  grid-column: 1 / -1
}

.contact-us-page .section-divider {
  width: 100%;
  height: 2px;
  background: radial-gradient(ellipse at 50% 50%, #962CAF 0%, #5518a000 80%);
  border: none;
  margin: 0
}

.contact-us-page .form-area {
  background: #F2DFF2;
  padding: 48px;
  position: relative;
  overflow: hidden
}

.contact-us-page .form-area-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  max-width: 1200px;
  margin: 0 auto
}

.contact-us-page .form-intro-col {
  display: flex;
  flex-direction: column;
  gap: 24px;
  justify-content: flex-start
}

.contact-us-page .form-heading {
  font-size: 32px;
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: -.01em;
  background: linear-gradient(to bottom, #5518A0, #962CAF);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text
}

.contact-us-page .form-description {
  font-size: 18px;
  line-height: 1.7;
  color: #3a1f58;
  text-align: justify
}

.contact-us-page .form-category-group {
  display: flex;
  flex-direction: column;
  gap: 12px
}

.contact-us-page .form-category-label {
  font-size: 16px;
  font-weight: 700;
  color: #5518A0;
  letter-spacing: .05em
}

.contact-us-page .category-options {
  display: flex;
  flex-direction: column;
  gap: 6px
}

.contact-us-page .category-option {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  padding: 12px;
  border-radius: 8px;
  border: 1.5px solid #5518a02e;
  background: #fff;
  transition: border-color .38s cubic-bezier(0.34, 1.2, 0.64, 1), box-shadow .42s cubic-bezier(0.34, 1.2, 0.64, 1)
}

.contact-us-page .category-option:hover {
  border-color: #962CAF;
  box-shadow: 2px 4px 28px 1px #5518a014
}

.contact-us-page .category-option input[type="radio"] {
  accent-color: #5518A0;
  width: 18px;
  height: 18px;
  flex-shrink: 0
}

.contact-us-page .category-option-text {
  font-size: 16px;
  line-height: 1.3;
  color: #2a1040
}

.contact-us-page .form-col {
  display: flex;
  flex-direction: column;
  gap: 24px
}

.contact-us-page .field-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
  position: relative
}

.contact-us-page .field-group input {
  width: 100%;
  padding: 16px 18px;
  font-size: 16px;
  line-height: 1.5;
  color: #2a1040;
  background: #fff;
  border: 1.5px solid #5518a033;
  border-radius: 8px;
  outline: none;
  box-shadow: inset 2px 3px 2px 1px #5518a00a;
  transition: border-color .38s cubic-bezier(0.34, 1.2, 0.64, 1), box-shadow .42s cubic-bezier(0.34, 1.2, 0.64, 1);
  box-sizing: border-box
}

.contact-us-page .field-group input:focus {
  border-color: #5518A0;
  box-shadow: inset 2px 3px 2px 1px #5518a012 2px 4px 28px 1px #5518a014
}

.contact-us-page .field-group input::placeholder {
  color: transparent
}

.contact-us-page .floating-label {
  position: absolute;
  top: 16px;
  left: 18px;
  font-size: 16px;
  color: #7a5a9a;
  pointer-events: none;
  transition: top .35s cubic-bezier(0.34, 1.2, 0.64, 1), font-size .35s cubic-bezier(0.34, 1.2, 0.64, 1), color .35s ease-in-out;
  background: #fff;
  padding: 0 4px;
  border-radius: 4px
}

.contact-us-page .field-group input:focus+.floating-label,
.contact-us-page .field-group input:not(:placeholder-shown)+.floating-label {
  top: -10px;
  font-size: 16px;
  color: #5518A0;
  font-weight: 700
}

.contact-us-page .field-group textarea {
  width: 100%;
  padding: 16px 18px;
  font-size: 16px;
  line-height: 1.5;
  color: #2a1040;
  background: #fff;
  border: 1.5px solid #5518a033;
  border-radius: 8px;
  outline: none;
  box-shadow: inset 2px 3px 2px 1px #5518a00a;
  transition: border-color .38s cubic-bezier(0.34, 1.2, 0.64, 1), box-shadow .42s cubic-bezier(0.34, 1.2, 0.64, 1);
  resize: vertical;
  min-height: 110px;
  box-sizing: border-box
}

.contact-us-page .field-group textarea:focus {
  border-color: #5518A0;
  box-shadow: inset 2px 3px 2px 1px #5518a012 2px 4px 28px 1px #5518a014
}

.contact-us-page .field-group textarea::placeholder {
  color: transparent
}

.contact-us-page .field-group textarea:focus+.floating-label,
.contact-us-page .field-group textarea:not(:placeholder-shown)+.floating-label {
  top: -10px;
  font-size: 16px;
  color: #5518A0;
  font-weight: 700
}

.contact-us-page .privacy-row {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 12px
}

.contact-us-page .privacy-row input[type="checkbox"] {
  accent-color: #5518A0;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  margin-top: 2px
}

.contact-us-page .privacy-text {
  font-size: 16px;
  line-height: 1.5;
  color: #3a1f58
}

.contact-us-page .privacy-text a {
  color: #5518A0;
  text-decoration: underline;
  transition: color .38s cubic-bezier(0.34, 1.2, 0.64, 1)
}

.contact-us-page .privacy-text a:hover {
  color: #962CAF
}

.contact-us-page .submit-button {
  display: inline-block;
  padding: 16px 48px;
  font-size: 18px;
  font-weight: 700;
  color: #fff;
  background: linear-gradient(to bottom, #5518A0, #962CAF);
  border: none;
  border-radius: 8px;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  box-shadow: 2px 8px 36px 1px #5518a021;
  transition: box-shadow .42s cubic-bezier(0.34, 1.2, 0.64, 1), transform .38s cubic-bezier(0.34, 1.2, 0.64, 1);
  align-self: flex-start
}

.contact-us-page .submit-button::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #f2dff238 0%, #962caf52 100%);
  transition: left .42s cubic-bezier(0.34, 1.2, 0.64, 1);
  pointer-events: none
}

.contact-us-page .submit-button:hover::before {
  left: 0
}

.contact-us-page .submit-button:hover {
  box-shadow: 2px 8px 36px 1px #962caf38;
  transform: translateY(-2px)
}

.contact-us-page .submit-button:focus {
  outline: 2px solid #5518A0;
  outline-offset: 3px
}

.contact-us-page .submit-button:active {
  transform: translateY(0)
}

.contact-us-page .form-decorative-circle {
  position: absolute;
  top: -48px;
  right: -48px;
  width: 200px;
  height: 200px;
  border-radius: 48px;
  border: 2px solid #5518a01a;
  pointer-events: none
}

.contact-us-page .form-decorative-circle-small {
  position: absolute;
  bottom: 24px;
  left: 24px;
  width: 80px;
  height: 80px;
  border-radius: 48px;
  border: 1.5px solid #962caf21;
  pointer-events: none
}

@keyframes colReveal {
  from {
    opacity: 0;
    transform: translateY(32px)
  }

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

.contact-us-page .panel-image-column {
  animation: colReveal .42s cubic-bezier(0.34, 1.2, 0.64, 1) .05s both
}

.contact-us-page .panel-text-column {
  animation: colReveal .44s cubic-bezier(0.34, 1.2, 0.64, 1) .18s both
}

.contact-us-page .form-intro-col {
  animation: colReveal .44s cubic-bezier(0.34, 1.2, 0.64, 1) .28s both
}

.contact-us-page .form-col {
  animation: colReveal .44s cubic-bezier(0.34, 1.2, 0.64, 1) .38s both
}

@media (max-width: 900px) {
  .contact-us-page .split-panel {
    flex-direction: column
  }

  .contact-us-page .panel-image-column {
    flex: 0 0 280px;
    width: 100%;
    min-height: 280px
  }

  .contact-us-page .panel-image-column img {
    width: 100%;
    height: 280px
  }

  .contact-us-page .panel-text-column {
    padding: 48px 24px
  }

  .contact-us-page .panel-heading {
    font-size: 32px
  }

  .contact-us-page .form-area-inner {
    grid-template-columns: 1fr;
    gap: 24px
  }

  .contact-us-page .form-area {
    padding: 48px 24px
  }

  .contact-us-page .contact-details-grid {
    grid-template-columns: 1fr
  }
}

@media (max-width: 600px) {
  .contact-us-page .panel-heading {
    font-size: 24px
  }

  .contact-us-page .panel-text-column {
    padding: 24px 12px
  }

  .contact-us-page .form-area {
    padding: 24px 12px
  }
}

.about-us {
  max-width: 1366px;
  margin: 0 auto;
  overflow: hidden
}

.about-us .portrait-frame {
  border-radius: 48px;
  overflow: hidden;
  width: 96px;
  height: 120px;
  flex-shrink: 0;
  box-shadow: 2px 4px 28px 1px #5518a014;
  border: 1.5px solid #5518a02e
}

.about-us .portrait-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block
}

.about-us .gradient-heading {
  background: linear-gradient(180deg, #5518A0 0%, #962CAF 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  display: inline-block
}

.about-us .identity-strip {
  padding: 48px;
  background: #fff;
  position: relative
}

.about-us .identity-strip::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: url(./assets/04-28-bg5-v2.jpg);
  background-size: cover;
  background-position: center;
  opacity: .04;
  pointer-events: none;
  border-radius: 0
}

.about-us .identity-layout {
  display: flex;
  flex-direction: row;
  gap: 48px;
  align-items: flex-start;
  position: relative;
  z-index: 1
}

.about-us .identity-image-col {
  flex: 0 0 420px;
  position: relative
}

.about-us .identity-frame {
  border-radius: 8px;
  overflow: hidden;
  border: 2px solid #5518a038;
  box-shadow: 2px 8px 36px 1px #5518a021;
  position: relative
}

.about-us .identity-frame img {
  width: 100%;
  height: 480px;
  object-fit: cover;
  object-position: center;
  display: block;
  filter: saturate(0.7) brightness(0.95) contrast(1.08)
}

.about-us .dots-path {
  position: absolute;
  bottom: -24px;
  right: -24px;
  display: grid;
  grid-template-columns: repeat(5, 10px);
  grid-template-rows: repeat(5, 10px);
  gap: 6px;
  pointer-events: none;
  z-index: 2
}

.about-us .dot-item {
  width: 5px;
  height: 5px;
  border-radius: 48px;
  background: #962CAF;
  opacity: .35
}

.about-us .identity-text-col {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding-top: 12px
}

.about-us .identity-label {
  font-size: 16px;
  line-height: 1.3;
  letter-spacing: .08em;
  color: #962CAF;
  text-transform: uppercase;
  font-weight: 600
}

.about-us .identity-heading {
  font-size: 62px;
  line-height: 1.1;
  letter-spacing: -.02em;
  font-weight: 800;
  margin: 0
}

.about-us .identity-quote {
  font-size: 18px;
  line-height: 1.7;
  color: #3a1a5c;
  font-style: italic;
  border-top: 1.5px solid #5518a02e;
  padding-top: 24px;
  text-align: justify
}

.about-us .identity-body {
  font-size: 18px;
  line-height: 1.7;
  color: #2a1540;
  text-align: justify
}

.about-us .identity-accent-sentence {
  background: #f2dff2b3;
  border-radius: 8px;
  padding: 12px;
  font-size: 18px;
  line-height: 1.5;
  color: #3a1a5c;
  font-weight: 500
}

.about-us .expert-row {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 12px;
  padding-top: 12px;
  border-top: 1.5px solid #5518a024
}

.about-us .expert-meta {
  display: flex;
  flex-direction: column;
  gap: 6px
}

.about-us .expert-name {
  font-size: 16px;
  line-height: 1.3;
  font-weight: 700;
  color: #2a1540
}

.about-us .expert-role {
  font-size: 16px;
  line-height: 1.3;
  color: #962CAF
}

.about-us .divider-svg {
  width: 100%;
  display: block;
  line-height: 0
}

.about-us .depth-strip {
  background: #f0e8f8;
  padding: 48px;
  position: relative;
  overflow: hidden
}

.about-us .depth-strip::after {
  content: "";
  position: absolute;
  bottom: 0;
  right: 0;
  width: 320px;
  height: 320px;
  background-image: repeating-radial-gradient(circle at 100% 100%, transparent 0px, transparent 14px, #5518a012 15px, #5518a012 16px);
  pointer-events: none
}

.about-us .depth-layout {
  display: flex;
  flex-direction: column;
  gap: 48px;
  position: relative;
  z-index: 1
}

.about-us .depth-top {
  display: flex;
  flex-direction: row;
  gap: 48px;
  align-items: flex-start
}

.about-us .depth-heading-col {
  flex: 0 0 340px
}

.about-us .depth-heading {
  font-size: 32px;
  line-height: 1.3;
  letter-spacing: -.01em;
  font-weight: 800;
  margin: 0 0 24px
}

.about-us .depth-sub {
  font-size: 18px;
  line-height: 1.7;
  color: #3a1a5c;
  text-align: justify
}

.about-us .depth-sidebar {
  flex: 0 0 160px;
  display: flex;
  flex-direction: column;
  gap: 24px
}

.about-us .sidebar-icon-item {
  display: flex;
  flex-direction: column;
  gap: 6px
}

.about-us .sidebar-icon {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center
}

.about-us .sidebar-icon svg {
  width: 28px;
  height: 28px
}

.about-us .sidebar-label {
  font-size: 16px;
  line-height: 1.3;
  color: #5518A0;
  font-weight: 600
}

.about-us .sidebar-divider {
  width: 100%;
  height: 1px;
  background: #5518a040
}

.about-us .depth-body-col {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 24px
}

.about-us .depth-body-text {
  font-size: 18px;
  line-height: 1.7;
  color: #2a1540;
  text-align: justify
}

.about-us .matrix-block {
  border: 1.5px dashed #5518a061;
  border-radius: 8px;
  padding: 24px;
  background: #fff;
  box-shadow: 2px 3px 2px 1px #5518a014
}

.about-us .matrix-heading {
  font-size: 24px;
  line-height: 1.3;
  font-weight: 700;
  margin: 0 0 24px
}

.about-us .matrix-table {
  width: 100%;
  border-collapse: collapse
}

.about-us .matrix-table th {
  font-size: 16px;
  line-height: 1.3;
  font-weight: 700;
  color: #5518A0;
  padding: 12px;
  text-align: left;
  border-bottom: 2px solid #5518a038;
  letter-spacing: .04em
}

.about-us .matrix-table td {
  font-size: 16px;
  line-height: 1.5;
  color: #2a1540;
  padding: 12px;
  border-bottom: 1px solid #5518a01a;
  vertical-align: middle
}

.about-us .matrix-table tr:last-child td {
  border-bottom: none
}

.about-us .matrix-indicator {
  display: inline-block;
  width: 18px;
  height: 18px;
  border-radius: 48px;
  background: linear-gradient(180deg, #5518A0 0%, #962CAF 100%);
  vertical-align: middle
}

.about-us .matrix-indicator-partial {
  display: inline-block;
  width: 18px;
  height: 18px;
  border-radius: 48px;
  background: #5518a038;
  border: 2px solid #5518A0;
  vertical-align: middle
}

.about-us .matrix-indicator-none {
  display: inline-block;
  width: 18px;
  height: 18px;
  border-radius: 48px;
  background: #962caf14;
  border: 1.5px solid #962caf40;
  vertical-align: middle
}

.about-us .cards-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px
}

.about-us .detail-card {
  background: #fff;
  border-radius: 8px;
  padding: 24px;
  box-shadow: 2px 4px 28px 1px #5518a014;
  border: 1.5px solid #5518a01a;
  display: flex;
  flex-direction: column;
  gap: 12px;
  cursor: default;
  transition: box-shadow .38s cubic-bezier(0.34, 1.2, 0.64, 1), border-color .42s ease-in-out
}

.about-us .detail-card:hover {
  box-shadow: 2px 8px 36px 1px #5518a021;
  border-color: #962caf61
}

.about-us .detail-card:active {
  animation: border-expand .35s cubic-bezier(0.34, 1.2, 0.64, 1)
}

@keyframes border-expand {
  0% {
    outline: 0 solid #5518a000
  }

  40% {
    outline: 4px solid #5518a059
  }

  100% {
    outline: 0 solid #5518a000
  }
}

.about-us .card-image-wrap {
  border-radius: 8px;
  overflow: hidden;
  border: 1.5px solid #5518a01f
}

.about-us .card-image-wrap img {
  width: 100%;
  height: 160px;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform .42s cubic-bezier(0.34, 1.2, 0.64, 1)
}

.about-us .detail-card:hover .card-image-wrap img {
  transform: scale(1.04)
}

.about-us .card-label {
  font-size: 16px;
  line-height: 1.3;
  color: #962CAF;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase
}

.about-us .card-title {
  font-size: 18px;
  line-height: 1.5;
  font-weight: 700;
  color: #2a1540;
  margin: 0
}

.about-us .card-text {
  font-size: 16px;
  line-height: 1.7;
  color: #3a1a5c;
  text-align: justify
}

.about-us .card-divider {
  width: 100%;
  height: 1px;
  background: #5518a024
}

.about-us .appear-element {
  animation: appear-scale .45s cubic-bezier(0.34, 1.2, 0.64, 1) both
}

@keyframes appear-scale {
  from {
    transform: scale(0.8);
    opacity: 0
  }

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

.about-us .appear-delay-1 {
  animation-delay: .08s
}

.about-us .appear-delay-2 {
  animation-delay: .16s
}

.about-us .appear-delay-3 {
  animation-delay: .24s
}

@media (max-width: 1024px) {
  .about-us .identity-layout {
    flex-direction: column
  }

  .about-us .identity-image-col {
    flex: none;
    width: 100%
  }

  .about-us .identity-frame img {
    height: 340px
  }

  .about-us .identity-heading {
    font-size: 48px
  }

  .about-us .depth-top {
    flex-direction: column
  }

  .about-us .depth-heading-col {
    flex: none;
    width: 100%
  }

  .about-us .depth-sidebar {
    flex: none;
    flex-direction: row;
    flex-wrap: wrap;
    width: 100%
  }

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

@media (max-width: 680px) {
  .about-us .identity-strip {
    padding: 24px
  }

  .about-us .identity-heading {
    font-size: 32px
  }

  .about-us .depth-strip {
    padding: 24px
  }

  .about-us .cards-row {
    grid-template-columns: 1fr
  }

  .about-us .matrix-block {
    padding: 16px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin
  }

  .about-us .matrix-table {
    display: table;
    min-width: 520px
  }

  .about-us .matrix-table thead {
    display: table-header-group
  }

  .about-us .matrix-table tbody {
    display: table-row-group
  }

  .about-us .matrix-table tr {
    display: table-row
  }

  .about-us .matrix-table th,
  .about-us .matrix-table td {
    display: table-cell;
    padding: 8px;
    font-size: 14px
  }
}

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

.press .press-bounded {
  margin-left: auto;
  margin-right: auto;
  max-width: 1366px;
  padding-left: 48px;
  padding-right: 48px
}

.press .gradient-text {
  background: linear-gradient(180deg, #5518A0, #962CAF);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text
}

.press .dash-accent {
  display: inline-block;
  background: #5518A0;
  height: 3px;
  margin-right: 12px;
  vertical-align: middle;
  width: 24px
}

.press .media-lead {
  background: linear-gradient(160deg, #F2DFF2 0%, #e8d0f0 40%, #d4b8e8 100%);
  padding-bottom: 48px;
  padding-top: 48px;
  position: relative
}

.press .media-lead::before {
  background: linear-gradient(135deg, #5518A0 0%, transparent 60%);
  content: "";
  height: 4px;
  left: 0;
  opacity: .6;
  position: absolute;
  top: 0;
  width: 100%
}

.press .media-lead-grid {
  align-items: stretch;
  display: grid;
  gap: 48px;
  grid-template-columns: 1fr 1fr
}

.press .media-lead-left {
  display: flex;
  flex-direction: column;
  gap: 24px;
  justify-content: center
}

.press .media-lead-eyebrow {
  align-items: center;
  display: flex;
  flex-direction: row;
  gap: 12px
}

.press .media-lead-eyebrow-label {
  color: #5518A0;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .08em;
  line-height: 1.3;
  text-transform: uppercase
}

.press .media-lead-heading {
  font-size: 62px;
  font-weight: 800;
  letter-spacing: -.02em;
  line-height: 1.1;
  margin: 0
}

.press .media-lead-sub {
  color: #2a0060;
  font-size: 18px;
  line-height: 1.7;
  margin: 0;
  text-align: justify
}

.press .media-lead-points {
  display: flex;
  flex-direction: column;
  gap: 12px;
  list-style: none;
  margin: 0;
  padding: 0
}

.press .media-lead-points li {
  align-items: flex-start;
  color: #2a0060;
  display: flex;
  flex-direction: row;
  font-size: 16px;
  gap: 12px;
  line-height: 1.5
}

.press .point-marker {
  background: linear-gradient(180deg, #5518A0, #962CAF);
  border-radius: 48px;
  flex-shrink: 0;
  height: 8px;
  margin-top: 7px;
  width: 8px
}

.press .media-lead-right {
  position: relative
}

.press .media-image-frame {
  border: 2px solid #5518a02e;
  border-radius: 8px;
  height: 100%;
  min-height: 360px;
  overflow: hidden;
  position: relative
}

.press .media-image-frame img {
  display: block;
  height: 100%;
  object-fit: cover;
  transition: filter .38s cubic-bezier(0.34, 1.2, 0.64, 1);
  width: 100%
}

.press .media-image-frame:hover img {
  filter: brightness(0.45)
}

.press .media-image-overlay {
  align-items: center;
  bottom: 0;
  color: #fff;
  display: flex;
  flex-direction: column;
  font-size: 18px;
  justify-content: center;
  left: 0;
  line-height: 1.5;
  opacity: 0;
  padding: 24px;
  position: absolute;
  right: 0;
  text-align: center;
  top: 0;
  transition: opacity .42s cubic-bezier(0.34, 1.2, 0.64, 1)
}

.press .media-image-frame:hover .media-image-overlay {
  opacity: 1
}

.press .media-image-overlay-text {
  font-size: 18px;
  font-weight: 600;
  line-height: 1.5;
  margin: 0
}

.press .corner-lines {
  bottom: 12px;
  opacity: .35;
  position: absolute;
  right: -24px
}

.press .corner-lines svg {
  display: block
}

.press .metrics-strip {
  background: #fff;
  border-top: 1px solid #5518a01f;
  margin-top: 48px
}

.press .metrics-row {
  align-items: stretch;
  display: flex;
  flex-direction: row
}

.press .metric-cell {
  border-right: 1px solid #5518a024;
  flex: 1;
  text-align: center;
  padding: 24px
}

.press .metric-cell:last-child {
  border-right: none
}

.press .metric-number {
  display: block;
  font-size: 32px;
  font-weight: 800;
  letter-spacing: -.02em;
  line-height: 1.1
}

.press .metric-label {
  color: #4a3060;
  display: block;
  font-size: 16px;
  line-height: 1.5;
  margin-top: 6px
}

.press .kit-area {
  background-color: #fff;
  padding-bottom: 48px;
  padding-top: 48px;
  position: relative
}

.press .kit-area::after {
  background: linear-gradient(135deg, #F2DFF2 50%, transparent 50%);
  bottom: 0;
  content: "";
  height: 160px;
  pointer-events: none;
  position: absolute;
  right: 0;
  width: 320px;
  z-index: 0
}

.press .kit-zigzag {
  left: 0;
  line-height: 0;
  position: absolute;
  right: 0;
  top: -1px
}

.press .kit-zigzag svg {
  display: block;
  width: 100%
}

.press .kit-two-col {
  display: grid;
  gap: 48px;
  grid-template-columns: 1fr 1fr;
  position: relative;
  z-index: 1
}

.press .kit-divider-line {
  border-left: 1px solid #5518a02e;
  position: absolute;
  left: 50%;
  top: 0;
  bottom: 0;
  transform: translateX(-50%)
}

.press .kit-column {
  display: flex;
  flex-direction: column;
  gap: 24px
}

.press .kit-column-heading {
  font-size: 32px;
  font-weight: 700;
  letter-spacing: -.01em;
  line-height: 1.3;
  margin: 0
}

.press .kit-body {
  color: #2a0060;
  font-size: 16px;
  line-height: 1.7;
  margin: 0;
  text-align: justify
}

.press .kit-contacts-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  list-style: none;
  margin: 0;
  padding: 0
}

.press .kit-contact-item {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: 6px
}

.press .kit-contact-label {
  color: #5518A0;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .04em;
  line-height: 1.3;
  text-transform: uppercase
}

.press .kit-contact-value {
  color: #2a0060;
  font-size: 18px;
  line-height: 1.5;
  text-decoration: none;
  transition: color .35s cubic-bezier(0.34, 1.2, 0.64, 1)
}

.press .kit-contact-value:hover {
  color: #962CAF
}

.press .kit-address {
  color: #2a0060;
  font-size: 16px;
  line-height: 1.7;
  margin: 0
}

.press .kit-highlight-sentence {
  background: #F2DFF2;
  border-radius: 8px;
  color: #2a0060;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.5;
  padding: 12px 24px
}

.press .kit-assets-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: 1fr 1fr
}

.press .asset-card {
  border: 1px solid #5518a026;
  border-radius: 8px;
  box-shadow: 2px 3px 2px 1px #5518a014;
  padding: 24px;
  transition: box-shadow .38s cubic-bezier(0.34, 1.2, 0.64, 1), border-color .38s cubic-bezier(0.34, 1.2, 0.64, 1)
}

.press .asset-card:hover {
  border-color: #5518a059;
  box-shadow: 2px 4px 28px 1px #5518a014
}

.press .asset-card-icon {
  display: block;
  margin-bottom: 12px
}

.press .asset-icon-shape {
  background: linear-gradient(180deg, #5518A0, #962CAF);
  border-radius: 8px;
  display: inline-block;
  height: 36px;
  width: 36px
}

.press .asset-card-name {
  color: #2a0060;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.3;
  margin: 0 0 6px
}

.press .asset-card-desc {
  color: #4a3060;
  font-size: 16px;
  line-height: 1.5;
  margin: 0
}

.press .wavy-bg-column {
  overflow: hidden;
  position: relative
}

.press .wavy-bg-column::before {
  background: none;
  bottom: 0;
  content: "";
  left: 0;
  pointer-events: none;
  position: absolute;
  right: 0;
  top: 0
}

.press .wavy-pattern {
  bottom: 0;
  left: 0;
  opacity: .07;
  pointer-events: none;
  position: absolute;
  right: 0;
  top: 0;
  z-index: 0
}

.press .wavy-pattern svg {
  height: 100%;
  width: 100%
}

.press .kit-column-inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 24px
}

@keyframes col-appear {
  from {
    opacity: 0;
    transform: translateY(24px)
  }

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

.press .media-lead-left {
  animation: col-appear .42s cubic-bezier(0.34, 1.2, 0.64, 1) .05s both
}

.press .media-lead-right {
  animation: col-appear .42s cubic-bezier(0.34, 1.2, 0.64, 1) .18s both
}

.press .kit-column:first-child {
  animation: col-appear .45s cubic-bezier(0.34, 1.2, 0.64, 1) .1s both
}

.press .kit-column:last-child {
  animation: col-appear .45s cubic-bezier(0.34, 1.2, 0.64, 1) .25s both
}

@media (max-width: 900px) {
  .press .press-bounded {
    padding-left: 24px;
    padding-right: 24px
  }

  .press .media-lead-grid {
    grid-template-columns: 1fr
  }

  .press .media-image-frame {
    min-height: 260px
  }

  .press .corner-lines {
    display: none
  }

  .press .media-lead-heading {
    font-size: 32px
  }

  .press .kit-two-col {
    grid-template-columns: 1fr
  }

  .press .kit-divider-line {
    display: none
  }

  .press .metrics-row {
    flex-direction: column
  }

  .press .metric-cell {
    border-bottom: 1px solid #5518a024;
    border-right: none
  }

  .press .metric-cell:last-child {
    border-bottom: none
  }

  .press .kit-assets-grid {
    grid-template-columns: 1fr
  }

  .press .kit-area::after {
    display: none
  }
}

@media (max-width: 600px) {
  .press .media-lead-heading {
    font-size: 32px
  }
}

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

.services-page .diagonal-bg {
  background: linear-gradient(180deg, #5518A0 0%, #962CAF 100%);
  background-size: 400% 400%;
  animation: drift-diagonal 8s ease-in-out infinite;
  padding: 48px;
  position: relative
}

@keyframes drift-diagonal {
  0% {
    background-position: 0 0
  }

  50% {
    background-position: 100% 100%
  }

  100% {
    background-position: 0 0
  }
}

.services-page .diagonal-bg::before {
  content: '';
  position: absolute;
  top: 12px;
  left: 12px;
  right: 12px;
  bottom: 12px;
  border: 1px solid #f2dff240;
  border-radius: 8px;
  pointer-events: none
}

.services-page .diagonal-bg::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: repeating-linear-gradient(135deg, #ffffff08 0px, #ffffff08 1px, transparent 1px, transparent 40px);
  pointer-events: none
}

.services-page .page-label {
  font-size: 16px;
  color: #F2DFF2;
  letter-spacing: .12em;
  text-transform: uppercase;
  margin-bottom: 12px;
  opacity: .8;
  line-height: 1.3
}

.services-page .page-heading {
  font-size: 62px;
  line-height: 1.1;
  letter-spacing: -.02em;
  background: linear-gradient(180deg, #fff 0%, #F2DFF2 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin: 0 0 24px;
  max-width: 700px
}

.services-page .page-description {
  font-size: 18px;
  line-height: 1.7;
  color: #f2dff2e6;
  max-width: 560px;
  text-align: justified
}

.services-page .shape-layer {
  position: absolute;
  top: -24px;
  right: 48px;
  width: 220px;
  height: 220px;
  border: 2px solid #f2dff226;
  border-radius: 48px;
  transform: rotate(18deg);
  pointer-events: none
}

.services-page .shape-layer-two {
  position: absolute;
  bottom: 24px;
  right: 120px;
  width: 120px;
  height: 120px;
  border: 1px solid #f2dff21a;
  border-radius: 48px;
  transform: rotate(-12deg);
  pointer-events: none
}

.services-page .triangle-divider {
  display: block;
  width: 100%;
  line-height: 0
}

.services-page .triangle-divider svg {
  display: block;
  width: 100%
}

.services-page .cards-area {
  background: #fff;
  padding: 48px;
  margin-left: 48px
}

.services-page .cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 24px
}

.services-page .service-card {
  border-radius: 8px;
  background: #fff;
  box-shadow: 2px 4px 28px 1px #5518a014;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow .38s cubic-bezier(0.34, 1.2, 0.64, 1), transform .38s cubic-bezier(0.34, 1.2, 0.64, 1);
  position: relative
}

.services-page .service-card:hover {
  box-shadow: 2px 8px 36px 1px #5518a021;
  transform: translateY(-4px)
}

.services-page .card-image-wrap {
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid #5518a014
}

.services-page .card-image-wrap img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform .42s cubic-bezier(0.34, 1.2, 0.64, 1)
}

.services-page .service-card:hover .card-image-wrap img {
  transform: scale(1.04)
}

.services-page .card-image-wrap::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 50%, #5518a02e 100%);
  opacity: 0;
  transition: opacity .35s ease-in-out;
  pointer-events: none
}

.services-page .service-card:hover .card-image-wrap::after {
  opacity: 1
}

.services-page .like-counter {
  position: absolute;
  top: 12px;
  right: 12px;
  background: #ffffffeb;
  border-radius: 48px;
  padding: 6px 12px;
  font-size: 16px;
  color: #5518A0;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 6px;
  box-shadow: 2px 3px 2px 1px #5518a014;
  line-height: 1.3
}

.services-page .like-icon {
  width: 16px;
  height: 16px;
  display: block
}

.services-page .card-body {
  padding: 24px;
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 12px
}

.services-page .card-title {
  font-size: 18px;
  line-height: 1.3;
  letter-spacing: -.01em;
  background: linear-gradient(180deg, #5518A0 0%, #962CAF 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin: 0
}

.services-page .card-description {
  font-size: 16px;
  line-height: 1.7;
  color: #3a2060;
  margin: 0;
  text-align: justify;
  flex: 1
}

.services-page .card-footer {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  padding: 12px 24px 24px;
  gap: 12px
}

.services-page .card-price {
  font-size: 24px;
  line-height: 1.1;
  color: #5518A0;
  letter-spacing: -.02em;
  font-weight: 700
}

.services-page .card-link {
  display: inline-block;
  background: linear-gradient(135deg, #5518A0 0%, #962CAF 100%);
  color: #fff;
  font-size: 16px;
  line-height: 1.3;
  padding: 12px 24px;
  border-radius: 8px;
  text-decoration: none;
  position: relative;
  overflow: hidden;
  transition: box-shadow .35s ease-in-out, color .35s ease-in-out;
  box-shadow: 2px 3px 2px 1px #5518a014
}

.services-page .card-link::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #962CAF 0%, #5518A0 100%);
  transition: left .38s cubic-bezier(0.34, 1.2, 0.64, 1)
}

.services-page .card-link:hover::before {
  left: 0
}

.services-page .card-link span {
  position: relative;
  z-index: 1
}

.services-page .card-link:hover {
  box-shadow: 2px 8px 36px 1px #5518a021
}

.services-page .card-link:focus {
  outline: 2px solid #5518A0;
  outline-offset: 3px
}

.services-page .triangle-up {
  display: block;
  width: 100%;
  line-height: 0
}

.services-page .triangle-up svg {
  display: block;
  width: 100%
}

.services-page .process-area {
  background: #F2DFF2;
  padding: 48px;
  margin-right: 48px;
  border-radius: 8px;
  position: relative
}

.services-page .process-area::before {
  content: '';
  position: absolute;
  top: 8px;
  left: 8px;
  width: 40px;
  height: 40px;
  border-top: 2px solid #5518a04d;
  border-left: 2px solid #5518a04d;
  border-radius: 8px 0 0 0
}

.services-page .process-area::after {
  content: '';
  position: absolute;
  bottom: 8px;
  right: 8px;
  width: 40px;
  height: 40px;
  border-bottom: 2px solid #962caf4d;
  border-right: 2px solid #962caf4d;
  border-radius: 0 0 8px 0
}

.services-page .process-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  align-items: start
}

.services-page .process-text-col {
  display: flex;
  flex-direction: column;
  gap: 24px
}

.services-page .process-heading {
  font-size: 32px;
  line-height: 1.1;
  letter-spacing: -.02em;
  background: linear-gradient(180deg, #5518A0 0%, #962CAF 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin: 0
}

.services-page .process-body {
  font-size: 16px;
  line-height: 1.7;
  color: #2a1040;
  text-align: justify;
  margin: 0
}

.services-page .process-accent {
  background: #5518a014;
  border-radius: 8px;
  padding: 12px 24px;
  font-size: 16px;
  line-height: 1.5;
  color: #5518A0
}

.services-page .steps-col {
  display: flex;
  flex-direction: column;
  gap: 12px
}

.services-page .step-item {
  background: #fff;
  border-radius: 8px;
  padding: 24px;
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 12px;
  box-shadow: 2px 3px 2px 1px #5518a014;
  transition: box-shadow .4s cubic-bezier(0.34, 1.2, 0.64, 1)
}

.services-page .step-item:hover {
  box-shadow: 2px 4px 28px 1px #5518a014
}

.services-page .step-number {
  font-size: 32px;
  line-height: 1.1;
  color: #962CAF;
  font-weight: 700;
  min-width: 40px;
  letter-spacing: -.03em
}

.services-page .step-detail {
  display: flex;
  flex-direction: column;
  gap: 6px
}

.services-page .step-name {
  font-size: 18px;
  line-height: 1.3;
  color: #5518A0;
  margin: 0
}

.services-page .step-text {
  font-size: 16px;
  line-height: 1.5;
  color: #3a2060;
  margin: 0
}

.services-page .triangle-up-two {
  display: block;
  width: 100%;
  line-height: 0
}

.services-page .triangle-up-two svg {
  display: block;
  width: 100%
}

.services-page .portrait-area {
  background: #fff;
  padding: 48px;
  margin-left: 24px
}

.services-page .portrait-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: start
}

.services-page .portrait-text-col {
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding-top: 12px
}

.services-page .portrait-heading {
  font-size: 32px;
  line-height: 1.1;
  letter-spacing: -.02em;
  background: linear-gradient(180deg, #5518A0 0%, #962CAF 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin: 0
}

.services-page .portrait-body {
  font-size: 16px;
  line-height: 1.7;
  color: #2a1040;
  text-align: justify;
  margin: 0
}

.services-page .portrait-cards-col {
  display: flex;
  flex-direction: column;
  gap: 24px
}

.services-page .expert-card {
  display: flex;
  flex-direction: row;
  gap: 24px;
  align-items: flex-start;
  background: #F2DFF2;
  border-radius: 8px;
  padding: 24px;
  box-shadow: 2px 3px 2px 1px #5518a014;
  transition: box-shadow .42s cubic-bezier(0.34, 1.2, 0.64, 1)
}

.services-page .expert-card:hover {
  box-shadow: 2px 4px 28px 1px #5518a014
}

.services-page .expert-portrait-wrap {
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid #5518a026;
  flex-shrink: 0
}

.services-page .expert-portrait-wrap img {
  width: 100px;
  height: 128px;
  object-fit: cover;
  object-position: center;
  display: block;
  aspect-ratio: 7/9
}

.services-page .expert-info {
  display: flex;
  flex-direction: column;
  gap: 6px
}

.services-page .expert-name {
  font-size: 18px;
  line-height: 1.3;
  color: #5518A0;
  margin: 0
}

.services-page .expert-role {
  font-size: 16px;
  line-height: 1.3;
  color: #962CAF;
  margin: 0
}

.services-page .expert-quote {
  font-size: 16px;
  line-height: 1.5;
  color: #3a2060;
  margin: 0;
  text-align: justify
}

.services-page .contact-strip {
  background: linear-gradient(180deg, #5518A0 0%, #962CAF 100%);
  padding: 48px;
  margin-right: 48px;
  border-radius: 8px;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  position: relative;
  overflow: hidden
}

.services-page .contact-strip::before {
  content: '';
  position: absolute;
  top: -40px;
  right: -40px;
  width: 180px;
  height: 180px;
  border: 2px solid #f2dff226;
  border-radius: 48px;
  transform: rotate(20deg);
  pointer-events: none
}

.services-page .contact-text {
  display: flex;
  flex-direction: column;
  gap: 12px
}

.services-page .contact-heading {
  font-size: 32px;
  line-height: 1.1;
  color: #fff;
  letter-spacing: -.02em;
  margin: 0
}

.services-page .contact-subtext {
  font-size: 16px;
  line-height: 1.5;
  color: #f2dff2e6;
  margin: 0;
  max-width: 420px
}

.services-page .contact-action {
  display: inline-block;
  background: #fff;
  color: #5518A0;
  font-size: 18px;
  line-height: 1.3;
  padding: 24px 48px;
  border-radius: 8px;
  text-decoration: none;
  font-weight: 700;
  flex-shrink: 0;
  position: relative;
  overflow: hidden;
  transition: box-shadow .38s cubic-bezier(0.34, 1.2, 0.64, 1), color .35s ease-in-out;
  box-shadow: 2px 3px 2px 1px #5518a014
}

.services-page .contact-action::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: #F2DFF2;
  transition: left .4s cubic-bezier(0.34, 1.2, 0.64, 1)
}

.services-page .contact-action:hover::before {
  left: 0
}

.services-page .contact-action:hover {
  box-shadow: 2px 8px 36px 1px #5518a021
}

.services-page .contact-action-text {
  position: relative;
  z-index: 1
}

.services-page .contact-action:focus {
  outline: 2px solid #F2DFF2;
  outline-offset: 3px
}

.services-page .image-showcase {
  padding: 48px 48px 48px 96px;
  background: #fff;
  position: relative
}

.services-page .showcase-grid {
  display: grid;
  grid-template-columns: 5fr 4fr;
  gap: 48px;
  align-items: center
}

.services-page .showcase-image-wrap {
  position: relative;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid #5518a01f;
  box-shadow: 2px 4px 28px 1px #5518a014
}

.services-page .showcase-image-wrap img {
  width: 100%;
  height: 380px;
  object-fit: cover;
  object-position: center;
  display: block
}

.services-page .showcase-counter {
  position: absolute;
  bottom: 12px;
  left: 12px;
  background: #5518a0e0;
  color: #fff;
  font-size: 16px;
  line-height: 1.3;
  padding: 6px 12px;
  border-radius: 8px
}

.services-page .showcase-text-col {
  display: flex;
  flex-direction: column;
  gap: 24px
}

.services-page .showcase-heading {
  font-size: 32px;
  line-height: 1.1;
  letter-spacing: -.02em;
  background: linear-gradient(180deg, #5518A0 0%, #962CAF 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin: 0
}

.services-page .showcase-body {
  font-size: 16px;
  line-height: 1.7;
  color: #2a1040;
  text-align: justify;
  margin: 0
}

.services-page .showcase-accent {
  background: #962caf14;
  border-radius: 8px;
  padding: 12px 24px;
  font-size: 16px;
  line-height: 1.5;
  color: #5518A0
}

.services-page .showcase-image-two-wrap {
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid #5518a01f;
  box-shadow: 2px 3px 2px 1px #5518a014;
  margin-top: 12px
}

.services-page .showcase-image-two-wrap img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  object-position: center;
  display: block
}

@media (max-width: 900px) {

  .services-page .process-grid,
  .services-page .portrait-grid,
  .services-page .showcase-grid {
    grid-template-columns: 1fr
  }

  .services-page .cards-area,
  .services-page .process-area,
  .services-page .portrait-area,
  .services-page .image-showcase {
    margin-left: 0;
    margin-right: 0;
    padding: 24px
  }

  .services-page .diagonal-bg {
    padding: 24px
  }

  .services-page .page-heading {
    font-size: 32px
  }

  .services-page .contact-strip {
    flex-direction: column;
    align-items: flex-start;
    margin-left: 0;
    margin-right: 0;
    padding: 24px
  }

  .services-page .contact-action {
    padding: 12px 24px
  }
}

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

  .services-page .expert-card {
    flex-direction: column
  }

  .services-page .page-heading {
    font-size: 32px
  }
}

.start {
  background-color: #f5f0fa;
  overflow-x: clip;
  position: relative
}

.start .page-boundary {
  margin-left: auto;
  margin-right: auto;
  max-width: 1366px;
  padding-left: 48px;
  padding-right: 48px
}

.start .opening-frame {
  background-color: #fff;
  border-bottom: 3px solid #5518A0;
  border-top: 3px solid #962CAF;
  padding-bottom: 48px;
  padding-top: 48px;
  position: relative
}

.start .opening-frame::before {
  background: radial-gradient(ellipse 60% 40% at 30% 50%, #5518a00f 0%, transparent 70%);
  content: '';
  inset: 0;
  pointer-events: none;
  position: absolute
}

.start .opening-layout {
  align-items: stretch;
  display: flex;
  flex-direction: row;
  gap: 48px
}

.start .opening-text-column {
  display: flex;
  flex-direction: column;
  flex: 1 1 0;
  gap: 24px;
  justify-content: center
}

.start .opening-label {
  color: #962CAF;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: .12em;
  line-height: 1.3;
  text-transform: uppercase
}

.start .opening-heading {
  background: linear-gradient(180deg, #5518A0 0%, #962CAF 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: 62px;
  font-weight: 800;
  letter-spacing: -.02em;
  line-height: 1.1;
  margin: 0
}

.start .opening-description {
  color: #2a1040;
  font-size: 18px;
  line-height: 1.7;
  margin: 0;
  text-align: justify
}

.start .opening-accent-sentence {
  background-color: #F2DFF2;
  border-radius: 8px;
  color: #3a1060;
  display: inline-block;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.5;
  padding: 12px 24px
}

.start .opening-action {
  align-items: center;
  display: flex;
  flex-direction: row;
  gap: 24px;
  margin-top: 6px
}

.start .button-primary {
  background: linear-gradient(180deg, #5518A0 0%, #962CAF 100%);
  border: none;
  border-radius: 8px;
  box-shadow: 2px 4px 28px 1px #5518a014;
  color: #fff;
  cursor: pointer;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .04em;
  line-height: 1.3;
  overflow: hidden;
  padding: 12px 48px;
  position: relative;
  transition: box-shadow .38s cubic-bezier(0.34, 1.2, 0.64, 1), color .38s cubic-bezier(0.34, 1.2, 0.64, 1)
}

.start .button-primary::before {
  background: linear-gradient(135deg, #962CAF 0%, #5518A0 100%);
  content: '';
  inset: 0;
  opacity: 0;
  position: absolute;
  transition: opacity .38s cubic-bezier(0.34, 1.2, 0.64, 1)
}

.start .button-primary:hover::before {
  opacity: 1
}

.start .button-primary:hover {
  box-shadow: 2px 8px 36px 1px #5518a021
}

.start .button-primary span {
  position: relative;
  z-index: 1
}

.start .button-secondary {
  background: transparent;
  border: 2px solid #5518A0;
  border-radius: 8px;
  color: #5518A0;
  cursor: pointer;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: .04em;
  line-height: 1.3;
  overflow: hidden;
  padding: 12px 24px;
  position: relative;
  transition: color .32s cubic-bezier(0.34, 1.2, 0.64, 1), border-color .32s cubic-bezier(0.34, 1.2, 0.64, 1)
}

.start .button-secondary::before {
  background: linear-gradient(135deg, #F2DFF2 0%, #962caf1f 100%);
  content: '';
  inset: 0;
  opacity: 0;
  position: absolute;
  transition: opacity .32s cubic-bezier(0.34, 1.2, 0.64, 1)
}

.start .button-secondary:hover::before {
  opacity: 1
}

.start .button-secondary:hover {
  border-color: #962CAF;
  color: #962CAF
}

.start .button-secondary span {
  position: relative;
  z-index: 1
}

.start .opening-image-column {
  flex: 0 0 420px;
  position: relative
}

.start .opening-image-frame {
  border: 2px solid #5518a02e;
  border-radius: 8px;
  box-shadow: 2px 8px 36px 1px #5518a021;
  height: 100%;
  min-height: 380px;
  overflow: hidden;
  position: relative
}

.start .opening-image-frame::after {
  background: linear-gradient(180deg, #5518a02e 0%, #962caf38 100%);
  content: '';
  inset: 0;
  pointer-events: none;
  position: absolute
}

.start .opening-image-frame img {
  display: block;
  height: 100%;
  object-fit: cover;
  object-position: center;
  width: 100%;
  filter: grayscale(30%) contrast(1.05);
  transition: filter .42s cubic-bezier(0.34, 1.2, 0.64, 1), transform .42s cubic-bezier(0.34, 1.2, 0.64, 1)
}

.start .opening-image-frame:hover img {
  filter: grayscale(0%) contrast(1.08);
  transform: scale(1.02)
}

.start .opening-dots {
  bottom: -12px;
  display: grid;
  gap: 6px;
  grid-template-columns: repeat(5, 8px);
  left: 24px;
  position: absolute
}

.start .opening-dots span {
  background-color: #962CAF;
  border-radius: 48px;
  display: block;
  height: 8px;
  opacity: .3;
  width: 8px
}

.start .opening-dots span:nth-child(1) {
  opacity: .6
}

.start .opening-dots span:nth-child(2) {
  opacity: .45
}

.start .opening-dots span:nth-child(3) {
  opacity: .3
}

.start .opening-dots span:nth-child(4) {
  opacity: .18
}

.start .opening-dots span:nth-child(5) {
  opacity: .1
}

.start .relations-band {
  background-color: #2a1040;
  border-bottom: 3px solid #962CAF;
  padding-bottom: 48px;
  padding-top: 48px;
  position: relative
}

.start .relations-band::before {
  background: linear-gradient(180deg, #5518a02e 0%, transparent 100%);
  content: '';
  inset: 0;
  pointer-events: none;
  position: absolute
}

.start .relations-grid {
  display: grid;
  gap: 48px;
  grid-template-columns: 1fr 1fr 1fr;
  position: relative
}

.start .relations-heading {
  background: linear-gradient(180deg, #F2DFF2 0%, #962CAF 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: 32px;
  font-weight: 700;
  grid-column: 1 / -1;
  letter-spacing: -.01em;
  line-height: 1.3;
  margin: 0 0 6px
}

.start .relations-card {
  background-color: #ffffff0d;
  border: 1px solid #f2dff226;
  border-radius: 8px;
  padding: 24px;
  transition: background-color .35s cubic-bezier(0.34, 1.2, 0.64, 1), border-color .35s cubic-bezier(0.34, 1.2, 0.64, 1)
}

.start .relations-card:hover {
  background-color: #f2dff214;
  border-color: #962caf66
}

.start .relations-card-number {
  color: #962CAF;
  font-size: 32px;
  font-weight: 800;
  line-height: 1.1;
  margin-bottom: 6px
}

.start .relations-card-label {
  color: #F2DFF2;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.3;
  margin-bottom: 12px
}

.start .relations-card-text {
  color: #f2dff2b8;
  font-size: 16px;
  line-height: 1.7;
  margin: 0;
  text-align: justify
}

.start .relations-image-wrapper {
  border: 2px solid #962caf4d;
  border-radius: 8px;
  box-shadow: 2px 4px 28px 1px #5518a014;
  grid-column: 1 / -1;
  overflow: hidden;
  position: relative
}

.start .relations-image-wrapper::after {
  background: linear-gradient(180deg, #2a104059 0%, #962caf47 100%);
  content: '';
  inset: 0;
  pointer-events: none;
  position: absolute
}

.start .relations-image-wrapper img {
  display: block;
  filter: grayscale(60%) contrast(1.1);
  height: 260px;
  object-fit: cover;
  object-position: center;
  width: 100%;
  transition: filter .4s cubic-bezier(0.34, 1.2, 0.64, 1)
}

.start .relations-image-wrapper:hover img {
  filter: grayscale(20%) contrast(1.08)
}

.start .outcomes-strip {
  background-color: #fff;
  border-top: 3px solid #5518A0;
  padding-bottom: 48px;
  padding-top: 48px
}

.start .outcomes-layout {
  display: grid;
  gap: 24px;
  grid-template-columns: 1.6fr 1fr
}

.start .outcomes-left {
  display: flex;
  flex-direction: column;
  gap: 24px
}

.start .outcomes-heading {
  background: linear-gradient(180deg, #5518A0 0%, #962CAF 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: 32px;
  font-weight: 700;
  letter-spacing: -.01em;
  line-height: 1.3;
  margin: 0
}

.start .outcomes-intro {
  color: #2a1040;
  font-size: 18px;
  line-height: 1.7;
  margin: 0;
  text-align: justify
}

.start .outcome-item {
  background-color: #f5f0fa;
  border-radius: 8px;
  box-shadow: 2px 3px 2px 1px #5518a014;
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 24px;
  transition: box-shadow .38s cubic-bezier(0.34, 1.2, 0.64, 1), background-color .38s cubic-bezier(0.34, 1.2, 0.64, 1)
}

.start .outcome-item:hover {
  background-color: #ede4f8;
  box-shadow: 2px 8px 36px 1px #5518a021
}

.start .outcome-person {
  color: #5518A0;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .04em;
  line-height: 1.3
}

.start .outcome-situation {
  color: #3a1060;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.5
}

.start .outcome-detail {
  color: #4a3060;
  font-size: 16px;
  line-height: 1.7;
  margin: 0;
  text-align: justify
}

.start .outcomes-right {
  display: flex;
  flex-direction: column;
  gap: 24px
}

.start .outcomes-portrait-block {
  display: flex;
  flex-direction: column;
  gap: 12px
}

.start .portrait-frame {
  border: 2px solid #5518a033;
  border-radius: 48px;
  box-shadow: 2px 4px 28px 1px #5518a014;
  height: 220px;
  overflow: hidden;
  width: 100%
}

.start .portrait-frame img {
  aspect-ratio: 2/3;
  display: block;
  height: 100%;
  object-fit: cover;
  object-position: center;
  width: 100%;
  filter: grayscale(20%);
  transition: filter .4s cubic-bezier(0.34, 1.2, 0.64, 1)
}

.start .portrait-frame:hover img {
  filter: grayscale(0%)
}

.start .portrait-caption {
  color: #5518A0;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.3;
  text-align: center
}

.start .outcomes-quote {
  background-color: #F2DFF2;
  border-radius: 8px;
  color: #3a1060;
  font-size: 16px;
  font-style: italic;
  line-height: 1.7;
  padding: 24px
}

.start .difference-field {
  background-color: #F2DFF2;
  border-bottom: 3px solid #5518A0;
  border-top: 3px solid #962CAF;
  padding-bottom: 48px;
  padding-top: 48px;
  position: relative
}

.start .difference-layout {
  display: grid;
  gap: 48px;
  grid-template-columns: 1fr 1fr
}

.start .difference-text-block {
  display: flex;
  flex-direction: column;
  gap: 24px
}

.start .difference-heading {
  background: linear-gradient(180deg, #5518A0 0%, #962CAF 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: 32px;
  font-weight: 700;
  letter-spacing: -.01em;
  line-height: 1.3;
  margin: 0
}

.start .difference-body {
  color: #2a1040;
  font-size: 18px;
  line-height: 1.7;
  margin: 0;
  text-align: justify
}

.start .difference-accent {
  background-color: #5518a01a;
  border-radius: 8px;
  color: #3a1060;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.5;
  padding: 12px 24px
}

.start .difference-point {
  background-color: #fff;
  border-radius: 8px;
  box-shadow: 2px 4px 28px 1px #5518a014;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 24px;
  transition: box-shadow .35s cubic-bezier(0.34, 1.2, 0.64, 1)
}

.start .difference-point:hover {
  box-shadow: 2px 8px 36px 1px #5518a021
}

.start .difference-point-label {
  color: #5518A0;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3
}

.start .difference-point-text {
  color: #2a1040;
  font-size: 16px;
  line-height: 1.7;
  margin: 0;
  text-align: justify
}

.start .difference-visual {
  display: flex;
  flex-direction: column;
  gap: 24px
}

.start .difference-image-frame {
  border: 2px solid #5518a033;
  border-radius: 8px;
  box-shadow: 2px 8px 36px 1px #5518a021;
  flex: 1 1 0;
  overflow: hidden;
  position: relative
}

.start .difference-image-frame::after {
  background: linear-gradient(180deg, #5518a01f 0%, #962caf2e 100%);
  content: '';
  inset: 0;
  pointer-events: none;
  position: absolute
}

.start .difference-image-frame img {
  display: block;
  filter: grayscale(30%) contrast(1.05);
  height: 100%;
  min-height: 280px;
  object-fit: cover;
  object-position: center;
  width: 100%;
  transition: filter .42s cubic-bezier(0.34, 1.2, 0.64, 1), transform .42s cubic-bezier(0.34, 1.2, 0.64, 1)
}

.start .difference-image-frame:hover img {
  filter: grayscale(0%) contrast(1.06);
  transform: scale(1.02)
}

.start .standing-panel {
  background-color: #2a1040;
  padding-bottom: 48px;
  padding-top: 48px;
  position: relative
}

.start .standing-panel::before {
  background: linear-gradient(180deg, #962caf1f 0%, transparent 60%);
  content: '';
  inset: 0;
  pointer-events: none;
  position: absolute
}

.start .standing-inner {
  display: grid;
  gap: 48px;
  grid-template-columns: 1fr 2fr;
  position: relative
}

.start .standing-left {
  display: flex;
  flex-direction: column;
  gap: 24px
}

.start .standing-heading {
  background: linear-gradient(180deg, #F2DFF2 0%, #962CAF 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: 32px;
  font-weight: 700;
  letter-spacing: -.01em;
  line-height: 1.3;
  margin: 0
}

.start .standing-body {
  color: #f2dff2cc;
  font-size: 16px;
  line-height: 1.7;
  margin: 0;
  text-align: justify
}

.start .standing-portrait-pair {
  display: flex;
  flex-direction: row;
  gap: 12px
}

.start .standing-portrait-wrap {
  border: 2px solid #962caf59;
  border-radius: 48px;
  box-shadow: 2px 3px 2px 1px #5518a014;
  flex: 1 1 0;
  height: 180px;
  overflow: hidden
}

.start .standing-portrait-wrap img {
  display: block;
  filter: grayscale(40%) contrast(1.05);
  height: 100%;
  object-fit: cover;
  object-position: center;
  width: 100%;
  transition: filter .4s cubic-bezier(0.34, 1.2, 0.64, 1)
}

.start .standing-portrait-wrap:hover img {
  filter: grayscale(0%) contrast(1.06)
}

.start .standing-right {
  display: flex;
  flex-direction: column;
  gap: 24px
}

.start .standing-associations {
  display: grid;
  gap: 12px;
  grid-template-columns: 1fr 1fr
}

.start .association-tile {
  background-color: #ffffff0f;
  border: 1px solid #f2dff21f;
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 24px;
  transition: background-color .35s cubic-bezier(0.34, 1.2, 0.64, 1), border-color .35s cubic-bezier(0.34, 1.2, 0.64, 1)
}

.start .association-tile:hover {
  background-color: #f2dff21a;
  border-color: #962caf66
}

.start .association-name {
  color: #F2DFF2;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.3
}

.start .association-detail {
  color: #f2dff2a6;
  font-size: 16px;
  line-height: 1.5;
  margin: 0
}

.start .standing-philanthropy-link {
  background-color: #5518a04d;
  border-radius: 8px;
  color: #F2DFF2;
  display: inline-block;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.5;
  padding: 12px 24px;
  text-decoration: none;
  transition: background-color .35s cubic-bezier(0.34, 1.2, 0.64, 1), color .35s cubic-bezier(0.34, 1.2, 0.64, 1)
}

.start .standing-philanthropy-link:hover {
  background-color: #962caf80;
  color: #fff
}

.start .situations-field {
  background-color: #fff;
  border-top: 3px solid #5518A0;
  padding-bottom: 48px;
  padding-top: 48px
}

.start .situations-layout {
  display: grid;
  gap: 48px;
  grid-template-columns: 2fr 1fr
}

.start .situations-main {
  display: flex;
  flex-direction: column;
  gap: 24px
}

.start .situations-heading {
  background: linear-gradient(180deg, #5518A0 0%, #962CAF 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: 32px;
  font-weight: 700;
  letter-spacing: -.01em;
  line-height: 1.3;
  margin: 0
}

.start .situations-intro {
  color: #2a1040;
  font-size: 18px;
  line-height: 1.7;
  margin: 0;
  text-align: justify
}

.start .situations-rows {
  display: flex;
  flex-direction: column;
  gap: 12px
}

.start .situation-row {
  align-items: flex-start;
  background-color: #f5f0fa;
  border-radius: 8px;
  display: flex;
  flex-direction: row;
  gap: 24px;
  padding: 24px;
  transition: background-color .35s cubic-bezier(0.34, 1.2, 0.64, 1)
}

.start .situation-row:hover {
  background-color: #ede4f8
}

.start .situation-marker {
  background: linear-gradient(180deg, #5518A0 0%, #962CAF 100%);
  border-radius: 48px;
  flex-shrink: 0;
  height: 10px;
  margin-top: 6px;
  width: 10px
}

.start .situation-text-block {
  display: flex;
  flex-direction: column;
  gap: 6px
}

.start .situation-label {
  color: #5518A0;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.3
}

.start .situation-description {
  color: #3a1060;
  font-size: 16px;
  line-height: 1.7;
  margin: 0;
  text-align: justify
}

.start .situations-sidebar {
  display: flex;
  flex-direction: column;
  gap: 24px
}

.start .situations-image-frame {
  border: 2px solid #5518a02e;
  border-radius: 8px;
  box-shadow: 2px 4px 28px 1px #5518a014;
  flex: 1 1 0;
  overflow: hidden;
  position: relative
}

.start .situations-image-frame::after {
  background: linear-gradient(180deg, #5518a024 0%, #962caf33 100%);
  content: '';
  inset: 0;
  pointer-events: none;
  position: absolute
}

.start .situations-image-frame img {
  display: block;
  filter: grayscale(25%) contrast(1.05);
  height: 100%;
  min-height: 260px;
  object-fit: cover;
  object-position: center;
  width: 100%;
  transition: filter .42s cubic-bezier(0.34, 1.2, 0.64, 1)
}

.start .situations-image-frame:hover img {
  filter: grayscale(0%) contrast(1.06)
}

.start .situations-note {
  background-color: #F2DFF2;
  border-radius: 8px;
  color: #3a1060;
  font-size: 16px;
  line-height: 1.7;
  padding: 24px
}

.start .situations-services-link {
  background: linear-gradient(180deg, #5518A0 0%, #962CAF 100%);
  border-radius: 8px;
  box-shadow: 2px 4px 28px 1px #5518a014;
  color: #fff;
  display: inline-block;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .04em;
  line-height: 1.3;
  overflow: hidden;
  padding: 12px 24px;
  position: relative;
  text-decoration: none;
  transition: box-shadow .38s cubic-bezier(0.34, 1.2, 0.64, 1)
}

.start .situations-services-link::before {
  background: linear-gradient(135deg, #962CAF 0%, #5518A0 100%);
  content: '';
  inset: 0;
  opacity: 0;
  position: absolute;
  transition: opacity .38s cubic-bezier(0.34, 1.2, 0.64, 1)
}

.start .situations-services-link:hover::before {
  opacity: 1
}

.start .situations-services-link:hover {
  box-shadow: 2px 8px 36px 1px #5518a021
}

.start .situations-services-link span {
  position: relative;
  z-index: 1
}

@media (max-width: 900px) {
  .start .page-boundary {
    padding-left: 24px;
    padding-right: 24px
  }

  .start .opening-layout {
    flex-direction: column
  }

  .start .opening-image-column {
    flex: 0 0 auto
  }

  .start .opening-image-frame {
    min-height: 240px
  }

  .start .opening-heading {
    font-size: 32px
  }

  .start .relations-grid {
    grid-template-columns: 1fr
  }

  .start .outcomes-layout {
    grid-template-columns: 1fr
  }

  .start .difference-layout {
    grid-template-columns: 1fr
  }

  .start .standing-inner {
    grid-template-columns: 1fr
  }

  .start .situations-layout {
    grid-template-columns: 1fr
  }

  .start .standing-associations {
    grid-template-columns: 1fr
  }

  .start .opening-action {
    flex-direction: column;
    align-items: flex-start
  }
}

@media (max-width: 600px) {
  .start .opening-heading {
    font-size: 24px
  }

  .start .relations-card-number {
    font-size: 24px
  }

  .start .outcomes-heading,
  .start .difference-heading,
  .start .standing-heading,
  .start .situations-heading {
    font-size: 24px
  }

  .start .standing-portrait-pair {
    flex-direction: column
  }
}

.success-page {
  align-items: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 70vh;
  padding: 48px 24px
}

.success-page .confirmation-wrapper {
  align-items: center;
  display: flex;
  flex-direction: column;
  max-width: 600px;
  text-align: center;
  width: 100%
}

.success-page .confirmation-icon-frame {
  align-items: center;
  background: #F2DFF2;
  border-radius: 48px;
  box-shadow: 2px 8px 36px 1px #5518a021;
  display: flex;
  flex-direction: column;
  height: 96px;
  justify-content: center;
  margin-bottom: 24px;
  width: 96px
}

.success-page .confirmation-icon-frame svg {
  display: block
}

.success-page .confirmation-heading {
  background: linear-gradient(180deg, #5518A0, #962CAF);
  -webkit-background-clip: text;
  background-clip: text;
  font-size: 32px;
  font-weight: 700;
  letter-spacing: -.02em;
  line-height: 1.1;
  margin-bottom: 12px;
  -webkit-text-fill-color: transparent
}

.success-page .confirmation-subtext {
  color: #3a3a3a;
  font-size: 18px;
  line-height: 1.5;
  margin-bottom: 24px;
  max-width: 480px;
  text-align: center
}

.success-page .confirmation-detail-block {
  background: #F2DFF2;
  border-radius: 8px;
  box-shadow: 2px 3px 2px 1px #5518a014;
  margin-bottom: 48px;
  padding: 24px;
  width: 100%
}

.success-page .confirmation-detail-block p {
  color: #3a3a3a;
  font-size: 16px;
  line-height: 1.7;
  margin: 0;
  text-align: center
}

.success-page .confirmation-detail-block p strong {
  color: #5518A0
}

.success-page .return-link {
  background: linear-gradient(180deg, #5518A0, #962CAF);
  border: none;
  border-radius: 8px;
  box-shadow: 2px 4px 28px 1px #5518a014;
  color: #fff;
  cursor: pointer;
  display: inline-block;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: .02em;
  line-height: 1.3;
  padding: 12px 48px;
  position: relative;
  text-decoration: none;
  transition: box-shadow .38s cubic-bezier(0.34, 1.2, 0.64, 1), opacity .32s ease-in-out
}

.success-page .return-link::before {
  background: linear-gradient(135deg, #ffffff2e 0%, #fff0 60%);
  border-radius: 8px;
  content: "";
  inset: 0;
  opacity: 0;
  position: absolute;
  transition: opacity .42s cubic-bezier(0.34, 1.2, 0.64, 1)
}

.success-page .return-link:hover {
  box-shadow: 2px 8px 36px 1px #5518a021;
  opacity: .92
}

.success-page .return-link:hover::before {
  opacity: 1
}

.success-page .return-link:focus {
  outline: 3px solid #5518A0;
  outline-offset: 4px
}

.success-page .return-link:active {
  opacity: .82
}

@media (max-width: 600px) {
  .success-page .confirmation-heading {
    font-size: 24px
  }

  .success-page .confirmation-subtext {
    font-size: 16px
  }

  .success-page .confirmation-icon-frame {
    height: 80px;
    width: 80px
  }
}