html {
  box-sizing: border-box;
  margin: 0;
  padding: 0
}

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

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

:focus-visible {
  outline: 2px solid #4167F6;
  outline-offset: 3px
}

:focus:not(:focus-visible) {
  outline: none
}

::selection {
  background: #4167F6;
  color: #FBFBFB;
  font-weight: 700
}

.page_header {
  position: relative;
  background: linear-gradient(135deg, #FBFBFB 0%, #4167f612 55%, #fb495a17 100%);
  border-bottom: 1px solid #4167f621;
  box-shadow: 0 6px 25px -1px #4167f61c;
  overflow: hidden;
  font-family: 'Exo 2', sans-serif
}

.page_header::before {
  content: '';
  position: absolute;
  top: -40px;
  right: -40px;
  width: 320px;
  height: 320px;
  background: #fb495a0d;
  border-radius: 50%;
  pointer-events: none
}

.page_header::after {
  content: '';
  position: absolute;
  bottom: -60px;
  left: 20%;
  width: 200px;
  height: 200px;
  background: #4167f60d;
  border-radius: 50%;
  pointer-events: none
}

.header_upper {
  max-width: 1280px;
  margin: 0 auto;
  padding: 40px 40px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  position: relative;
  z-index: 2
}

.brand_box {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-shrink: 0
}

.logo_box {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  background: #FBFBFB;
  border-radius: 12px;
  border: 1px solid #4167f62e;
  box-shadow: inset 0 2px 8px #4167f614 0 3px 2px -1px #4167f60f;
  padding: 8px
}

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

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

.brand_label {
  font-size: 27px;
  font-weight: 700;
  line-height: 1.15;
  color: #1b1e2e;
  letter-spacing: -.5px
}

.brand_sub {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.4;
  color: #4167F6;
  letter-spacing: .04em
}

.header_tagline {
  flex: 1;
  text-align: right;
  font-size: 16px;
  line-height: 1.6;
  color: #3a3d52;
  font-weight: 400;
  max-width: 400px;
  margin-left: auto
}

.header_lower {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 40px 40px;
  position: relative;
  z-index: 2
}

.header_divider {
  height: 1px;
  background: linear-gradient(90deg, #4167f600 0%, #4167f62e 30%, #fb495a2e 70%, #fb495a00 100%);
  margin-bottom: 20px
}

.primary_nav {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px
}

.nav_link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: 'Exo 2', sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
  color: #1b1e2e;
  text-decoration: none;
  padding: 8px 20px;
  border-radius: 6px;
  border: 1.5px solid transparent;
  transition: color .28s cubic-bezier(0.4, 0, 0.2, 1), background .28s cubic-bezier(0.4, 0, 0.2, 1), border-color .35s cubic-bezier(0.4, 0, 0.2, 1), box-shadow .28s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
  min-height: 44px;
  letter-spacing: .02em
}

.nav_link:hover {
  color: #4167F6;
  background: #4167f60f;
  border-color: #4167F6;
  box-shadow: 0 3px 2px -1px #4167f60f
}

.nav_link.active {
  color: #FB495A;
  background: #fb495a0f;
  border-color: #fb495a4d
}

.nav_link .pe-7s-home,
.nav_link .pe-7s-info,
.nav_link .pe-7s-mail,
.nav_link .pe-7s-tools {
  font-size: 18px;
  line-height: 1
}

.nav_contact_strip {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap
}

.contact_link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: 'Exo 2', sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.4;
  color: #3a3d52;
  text-decoration: none;
  transition: color .25s ease-in-out;
  min-height: 44px
}

.contact_link:hover {
  color: #FB495A
}

.contact_link .pe-7s-call,
.contact_link .pe-7s-mail {
  font-size: 18px;
  color: #4167F6
}

.page_footer {
  font-family: 'Exo 2', sans-serif;
  background: linear-gradient(180deg, #1b1e2e 0%, #12152a 100%);
  color: #FBFBFB;
  position: relative;
  overflow: hidden
}

.page_footer::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, #4167F6 0%, #FB495A 100%)
}

.footer_main_box {
  max-width: 1280px;
  margin: 0 auto;
  padding: 80px 40px 40px;
  display: flex;
  align-items: flex-start;
  gap: 80px;
  flex-wrap: wrap
}

.footer_brand_box {
  display: flex;
  flex-direction: column;
  gap: 20px;
  min-width: 200px
}

.footer_logo_box {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  background: #fbfbfb14;
  border-radius: 12px;
  border: 1px solid #fbfbfb26;
  box-shadow: inset 0 2px 8px #4167f61f 0 3px 2px -1px #4167f60f;
  padding: 8px
}

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

.footer_brand_name {
  font-size: 27px;
  font-weight: 700;
  line-height: 1.15;
  color: #FBFBFB;
  letter-spacing: -.3px
}

.footer_brand_desc {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.6;
  color: #fbfbfb99;
  max-width: 240px
}

.footer_since {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.4;
  color: #fbfbfb61;
  letter-spacing: .04em
}

.footer_columns {
  display: flex;
  gap: 80px;
  flex-wrap: wrap;
  flex: 1
}

.footer_column {
  display: flex;
  flex-direction: column;
  gap: 20px;
  min-width: 160px
}

.footer_col_heading {
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
  color: #FBFBFB;
  letter-spacing: .08em;
  text-transform: uppercase
}

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

.footer_col_list li a {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.6;
  color: #fbfbfba6;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: color .26s ease-in-out;
  min-height: 44px
}

.footer_col_list li a:hover {
  color: #FB495A
}

.footer_contact_detail {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.6;
  color: #fbfbfba6
}

.footer_contact_detail a {
  color: #fbfbfba6;
  text-decoration: none;
  transition: color .26s ease-in-out
}

.footer_contact_detail a:hover {
  color: #4167F6
}

.footer_contact_detail .pe-7s-call,
.footer_contact_detail .pe-7s-mail,
.footer_contact_detail .pe-7s-map-marker {
  color: #4167F6;
  font-size: 18px;
  flex-shrink: 0;
  margin-top: 2px
}

.footer_bottom_box {
  max-width: 1280px;
  margin: 0 auto;
  padding: 20px 40px 40px;
  border-top: 1px solid #fbfbfb14;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 20px
}

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

.footer_legal_links li a {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.4;
  color: #fbfbfb73;
  text-decoration: none;
  transition: color .25s ease-in-out;
  min-height: 44px;
  display: inline-flex;
  align-items: center
}

.footer_legal_links li a:hover {
  color: #FBFBFB
}

.footer_cookie_manage {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.4;
  color: #fbfbfb73;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  font-family: 'Exo 2', sans-serif;
  transition: color .25s ease-in-out;
  min-height: 44px;
  display: inline-flex;
  align-items: center
}

.footer_cookie_manage:hover {
  color: #FBFBFB
}

.footer_copyright {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.4;
  color: #fbfbfb59
}

.cookie_popup {
  display: none;
  position: fixed;
  bottom: 20px;
  left: 0;
  right: 0;
  margin: 0 auto;
  width: 480px;
  max-width: calc(100vw - 40px);
  background: #FBFBFB;
  border-radius: 12px;
  border: 1px solid #4167f626;
  box-shadow: 0 12px 48px -1px #4167f61f 0 6px 25px -1px #4167f61c;
  z-index: 1000;
  font-family: 'Exo 2', sans-serif;
  transform: translateX(120%);
  transition: transform .32s cubic-bezier(0.4, 0, 0.2, 1);
  overflow: hidden
}

.cookie_popup.showing {
  transform: translateX(0)
}

.cookie_popup_body {
  padding: 20px
}

.cookie_popup_uses {
  font-size: 16px;
  line-height: 1.6;
  color: #3a3d52;
  margin: 0 0 8px;
  padding: 0
}

.cookie_popup_list {
  font-size: 16px;
  line-height: 1.6;
  color: #3a3d52;
  margin: 0 0 20px;
  padding: 0 0 0 20px
}

.cookie_popup_headline {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.4;
  color: #1b1e2e;
  margin: 0 0 8px
}

.cookie_settings_panel {
  display: none;
  border-top: 1px solid #4167f61a;
  padding-top: 20px;
  margin-top: 8px
}

.cookie_settings_panel.open {
  display: block
}

.cookie_toggle_row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 8px
}

.cookie_toggle_label {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.4;
  color: #1b1e2e
}

.cookie_toggle_input {
  width: 40px;
  height: 24px;
  cursor: pointer;
  accent-color: #4167F6
}

.cookie_datasale_row {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 8px;
  background: #fb495a0d;
  border-radius: 6px;
  margin-bottom: 20px
}

.cookie_datasale_text {
  font-size: 16px;
  line-height: 1.6;
  color: #1b1e2e;
  flex: 1
}

.cookie_datasale_check {
  width: 20px;
  height: 20px;
  cursor: pointer;
  accent-color: #FB495A;
  flex-shrink: 0;
  margin-top: 2px
}

.cookie_buttons {
  display: flex;
  gap: 8px;
  flex-wrap: wrap
}

.cookie_btn {
  flex: 1;
  min-width: 120px;
  min-height: 44px;
  padding: 8px 20px;
  font-family: 'Exo 2', sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
  border-radius: 6px;
  cursor: pointer;
  border: 2px solid transparent;
  transition: background .28s cubic-bezier(0.4, 0, 0.2, 1), color .28s cubic-bezier(0.4, 0, 0.2, 1), border-color .35s cubic-bezier(0.4, 0, 0.2, 1);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px
}

.cookie_btn_accept {
  background: #4167F6;
  color: #FBFBFB;
  border-color: #4167F6
}

.cookie_btn_accept:hover {
  background: #2e52e0;
  border-color: #2e52e0
}

.cookie_btn_reject {
  background: transparent;
  color: #1b1e2e;
  border-color: #4167f64d
}

.cookie_btn_reject:hover {
  border-color: #FB495A;
  color: #FB495A
}

.cookie_btn_settings {
  background: transparent;
  color: #4167F6;
  border-color: #4167f633;
  font-weight: 400
}

.cookie_btn_settings:hover {
  background: #4167f60f;
  border-color: #4167F6
}

@media (max-width: 1024px) {
  .header_upper {
    padding: 40px 20px 20px;
    flex-wrap: wrap
  }

  .header_lower {
    padding: 0 20px 40px
  }

  .header_tagline {
    display: none
  }

  .nav_contact_strip {
    margin-left: 0
  }

  .footer_main_box {
    padding: 80px 20px 40px;
    gap: 40px
  }

  .footer_columns {
    gap: 40px
  }

  .footer_bottom_box {
    padding: 20px 20px 40px
  }
}

@media (max-width: 640px) {
  .header_upper {
    padding: 20px;
    gap: 20px
  }

  .header_lower {
    padding: 0 20px 20px
  }

  .brand_label {
    font-size: 18px
  }

  .primary_nav {
    gap: 4px
  }

  .nav_link {
    padding: 8px;
    font-size: 16px
  }

  .footer_main_box {
    padding: 40px 20px 20px;
    gap: 40px
  }

  .footer_columns {
    gap: 40px;
    flex-direction: column
  }

  .footer_bottom_box {
    flex-direction: column;
    align-items: flex-start;
    padding: 20px 20px 40px
  }

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

.agreement-section {
  max-width: 1280px;
  margin: 0 auto;
  padding: 80px 40px;
  color: #2d2d3a;
  line-height: 1.6;
  font-size: 18px
}

.agreement-section p {
  font-size: 18px;
  line-height: 1.6;
  margin: 0 0 20px;
  color: #2d2d3a
}

.agreement-section strong,
.agreement-section b {
  font-weight: 700;
  color: #1a1a2e
}

.agreement-section em,
.agreement-section i {
  font-style: italic;
  color: #3a3a50
}

.agreement-section a {
  color: #4167F6;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: color .25s cubic-bezier(0.4, 0, 0.2, 1), text-decoration-color .28s ease-in-out
}

.agreement-section a:hover {
  color: #FB495A;
  text-decoration-color: #FB495A
}

.agreement-section table {
  width: 100%;
  border-collapse: collapse;
  margin: 40px 0;
  font-size: 16px;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 6px 25px -1px #4167f61c
}

.agreement-section thead {
  background: #4167F6
}

.agreement-section thead th {
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .04em;
  padding: 20px;
  text-align: left;
  line-height: 1.4
}

.agreement-section tbody tr {
  border-bottom: 1px solid #4167f61a;
  transition: background .25s ease-in-out
}

.agreement-section tbody tr:last-child {
  border-bottom: none
}

.agreement-section tbody tr:nth-child(even) {
  background: #fbf9fb99
}

.agreement-section tbody tr:hover {
  background: #4167f60d
}

.agreement-section td {
  padding: 20px;
  font-size: 16px;
  line-height: 1.6;
  color: #2d2d3a;
  vertical-align: top
}

.agreement-section th {
  padding: 20px;
  font-size: 16px;
  line-height: 1.4;
  vertical-align: top
}

.agreement-section hr {
  border: none;
  height: 2px;
  background: linear-gradient(90deg, #fb495a2e 0%, #4167f62e 100%);
  border-radius: 2px;
  margin: 40px 0
}

.agreement-section div {
  margin: 20px 0
}

@media (max-width: 1024px) {
  .agreement-section {
    padding: 80px 20px
  }

  .agreement-section table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch
  }
}

@media (max-width: 640px) {
  .agreement-section {
    padding: 40px 20px;
    font-size: 16px
  }

  .agreement-section p {
    font-size: 16px
  }

  .agreement-section thead th,
  .agreement-section td,
  .agreement-section th {
    padding: 8px 20px;
    font-size: 16px
  }
}

.opening {
  overflow-x: clip;
  position: relative
}

.opening *,
.opening ::before,
.opening ::after {
  box-sizing: border-box
}

.opening ::selection {
  background: #1a0a0f;
  color: #FBFBFB;
  font-weight: 700
}

.opening .drop_one {
  animation: drop_settle .55s cubic-bezier(0.34, 1.56, 0.64, 1) both
}

.opening .drop_two {
  animation: drop_settle .6s cubic-bezier(0.34, 1.56, 0.64, 1) .1s both
}

.opening .drop_three {
  animation: drop_settle .65s cubic-bezier(0.34, 1.56, 0.64, 1) .2s both
}

.opening .drop_four {
  animation: drop_settle .7s cubic-bezier(0.34, 1.56, 0.64, 1) .3s both
}

@keyframes drop_settle {
  0% {
    opacity: 0;
    transform: translateY(-32px)
  }

  100% {
    opacity: 1;
    transform: translateY(0)
  }
}

.opening .gradient_divider {
  height: 3px;
  background: linear-gradient(90deg, #FB495A 0%, #4167F6 100%);
  border: none;
  margin: 0
}

.opening .gradient_divider_rev {
  height: 3px;
  background: linear-gradient(90deg, #4167F6 0%, #FB495A 100%);
  border: none;
  margin: 0
}

.opening .gradient_divider_fade {
  height: 2px;
  background: linear-gradient(90deg, transparent 0%, #FB495A 40%, #4167F6 60%, transparent 100%);
  border: none;
  margin: 0
}

.opening .title_block {
  display: flex;
  flex-direction: row;
  max-width: 1280px;
  margin: 0 auto;
  min-height: 520px;
  position: relative
}

.opening .title_image_side {
  flex: 0 0 50%;
  position: relative;
  overflow: hidden
}

.opening .title_image_side img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  filter: sepia(0.38) contrast(1.12) brightness(0.88) saturate(0.82)
}

.opening .title_image_side::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at top left, #fb495a2e 0%, transparent 65%), linear-gradient(to right, transparent 60%, #fbfbfb2e 100%);
  pointer-events: none
}

.opening .title_image_vignette {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at center, transparent 38%, #14080c85 100%);
  pointer-events: none;
  z-index: 1
}

.opening .title_shape_accent {
  position: absolute;
  top: 40px;
  right: -18px;
  width: 54px;
  height: 54px;
  border: 3px solid #fb495a61;
  border-radius: 12px;
  transform: rotate(18deg);
  z-index: 2;
  pointer-events: none
}

.opening .title_shape_dot {
  position: absolute;
  bottom: 80px;
  right: 20px;
  width: 14px;
  height: 14px;
  background: #4167f670;
  border-radius: 2px;
  transform: rotate(30deg);
  z-index: 2;
  pointer-events: none
}

.opening .title_text_side {
  flex: 0 0 50%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 80px 80px 80px 40px;
  background: #FBFBFB;
  position: relative
}

.opening .title_label {
  font-size: 16px;
  line-height: 1.4;
  letter-spacing: .12em;
  color: #FB495A;
  font-weight: 600;
  text-transform: uppercase;
  margin-bottom: 20px
}

.opening .title_heading {
  font-size: 68px;
  line-height: 1.15;
  font-weight: 900;
  color: #181018;
  margin: 0 0 20px
}

.opening .title_heading span {
  display: block
}

.opening .title_heading .accent_word {
  color: #FB495A
}

.opening .title_heading .blue_word {
  color: #4167F6
}

.opening .title_sub {
  font-size: 18px;
  line-height: 1.6;
  color: #2a1a20;
  max-width: 380px;
  margin-bottom: 40px
}

.opening .title_cta_row {
  display: flex;
  flex-direction: row;
  gap: 20px;
  align-items: center
}

.opening .btn_primary {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  padding: 20px 40px;
  background: #FB495A;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  border-radius: 6px;
  border: 2px solid #FB495A;
  cursor: pointer;
  text-decoration: none;
  position: relative;
  overflow: hidden;
  transition: background .28s cubic-bezier(0.4, 0, 0.2, 1), color .28s cubic-bezier(0.4, 0, 0.2, 1), box-shadow .35s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 6px 25px -1px #fb495a1c
}

.opening .btn_primary::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 6px;
  border: 2px solid #FB495A;
  transform: scale(0.85);
  opacity: 0;
  transition: transform .32s cubic-bezier(0.34, 1.56, 0.64, 1), opacity .28s ease-in-out;
  pointer-events: none
}

.opening .btn_primary:hover::before {
  transform: scale(1.04);
  opacity: 1
}

.opening .btn_primary:hover {
  background: #d93245;
  box-shadow: 0 12px 48px -1px #fb495a1f
}

.opening .btn_primary:focus {
  outline: 3px solid #4167F6;
  outline-offset: 3px
}

.opening .btn_secondary {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  padding: 20px 40px;
  background: transparent;
  color: #4167F6;
  font-size: 16px;
  font-weight: 700;
  border-radius: 6px;
  border: 2px solid #4167F6;
  cursor: pointer;
  text-decoration: none;
  position: relative;
  transition: background .28s cubic-bezier(0.4, 0, 0.2, 1), color .28s cubic-bezier(0.4, 0, 0.2, 1)
}

.opening .btn_secondary::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 6px;
  border: 2px solid #4167F6;
  transform: scale(0.85);
  opacity: 0;
  transition: transform .35s cubic-bezier(0.34, 1.56, 0.64, 1), opacity .3s ease-in-out;
  pointer-events: none
}

.opening .btn_secondary:hover::before {
  transform: scale(1.05);
  opacity: 1
}

.opening .btn_secondary:hover {
  background: #4167f612
}

.opening .btn_secondary:focus {
  outline: 3px solid #FB495A;
  outline-offset: 3px
}

.opening .title_section_outer {
  background: #FBFBFB;
  position: relative
}

.opening .reputation_outer {
  background: linear-gradient(180deg, #fff 0%, #4167f60f 100%);
  position: relative;
  padding: 80px 0 40px;
  overflow: hidden
}

.opening .reputation_curl {
  position: absolute;
  top: 20px;
  right: 40px;
  width: 80px;
  height: 80px;
  border: 2px solid #4167f61f;
  border-radius: 40px 12px 40px 12px;
  pointer-events: none;
  opacity: .55
}

.opening .reputation_inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 40px
}

.opening .reputation_top {
  display: flex;
  flex-direction: row;
  gap: 80px;
  align-items: flex-start;
  margin-bottom: 40px
}

.opening .reputation_text_col {
  flex: 0 0 42%
}

.opening .reputation_label {
  font-size: 16px;
  letter-spacing: .13em;
  color: #4167F6;
  font-weight: 600;
  text-transform: uppercase;
  margin-bottom: 20px;
  line-height: 1.4
}

.opening .reputation_heading {
  font-size: 37px;
  line-height: 1.15;
  font-weight: 800;
  color: #181018;
  margin: 0 0 20px
}

.opening .reputation_heading span {
  display: block
}

.opening .reputation_body {
  font-size: 16px;
  line-height: 1.6;
  color: #2a1a20;
  columns: 2;
  column-gap: 20px
}

.opening .reputation_body p {
  margin: 0 0 8px;
  break-inside: avoid
}

.opening .reputation_cards_col {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  gap: 20px
}

.opening .reputation_card {
  background: #fff;
  border-radius: 12px;
  padding: 20px;
  box-shadow: 0 3px 2px -1px #fb495a0f 0 6px 25px -1px #fb495a1c;
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 20px;
  transition: box-shadow .28s cubic-bezier(0.4, 0, 0.2, 1), transform .28s cubic-bezier(0.4, 0, 0.2, 1)
}

.opening .reputation_card:hover {
  box-shadow: 0 12px 48px -1px #fb495a1f;
  transform: translateY(-2px)
}

.opening .reputation_icon_box {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: #4167f61a;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0
}

.opening .reputation_icon_box.red {
  background: #fb495a1a
}

.opening .reputation_icon_box i {
  font-size: 20px;
  color: #4167F6
}

.opening .reputation_icon_box.red i {
  color: #FB495A
}

.opening .reputation_card_text h5 {
  font-size: 16px;
  font-weight: 700;
  color: #181018;
  margin: 0 0 4px;
  line-height: 1.4
}

.opening .reputation_card_text p {
  font-size: 16px;
  line-height: 1.6;
  color: #3a2a30;
  margin: 0
}

.opening .reputation_image_strip {
  display: flex;
  flex-direction: row;
  gap: 20px;
  align-items: stretch
}

.opening .reputation_img_box {
  flex: 1 1 0;
  border-radius: 12px;
  overflow: hidden;
  position: relative;
  min-height: 200px
}

.opening .reputation_img_box img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  filter: sepia(0.2) contrast(1.08) brightness(0.9)
}

.opening .reputation_img_box::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at center, transparent 42%, #14080c7a 100%);
  pointer-events: none
}

.opening .reputation_stat_box {
  flex: 0 0 220px;
  background: #4167F6;
  border-radius: 12px;
  padding: 40px 20px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 20px
}

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

.opening .reputation_stat_number {
  font-size: 37px;
  font-weight: 900;
  color: #fff;
  line-height: 1.15
}

.opening .reputation_stat_label {
  font-size: 16px;
  color: #ffffffd1;
  line-height: 1.4
}

.opening .audience_outer {
  position: relative;
  padding: 80px 0
}

.opening .audience_bg_split {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  pointer-events: none
}

.opening .audience_bg_top {
  flex: 0 0 50%;
  background: #fff
}

.opening .audience_bg_bottom {
  flex: 0 0 50%;
  background: #fb495a0d
}

.opening .audience_inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 40px;
  position: relative;
  z-index: 2
}

.opening .audience_grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto;
  gap: 20px
}

.opening .audience_header_cell {
  grid-column: 1 / 2;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-bottom: 20px
}

.opening .audience_label {
  font-size: 16px;
  letter-spacing: .13em;
  color: #FB495A;
  font-weight: 600;
  text-transform: uppercase;
  margin-bottom: 20px;
  line-height: 1.4
}

.opening .audience_heading {
  font-size: 37px;
  line-height: 1.15;
  font-weight: 800;
  color: #181018;
  margin: 0
}

.opening .audience_heading span {
  display: block
}

.opening .audience_image_cell {
  grid-column: 2 / 3;
  grid-row: 1 / 3;
  position: relative
}

.opening .audience_img_portrait {
  width: 100%;
  height: 100%;
  min-height: 420px;
  object-fit: cover;
  object-position: top;
  display: block;
  border-radius: 2px;
  filter: sepia(0.18) contrast(1.1) brightness(0.9)
}

.opening .audience_img_vignette {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at center, transparent 40%, #14080c70 100%);
  pointer-events: none;
  border-radius: 2px
}

.opening .audience_lists_cell {
  grid-column: 1 / 2;
  display: flex;
  flex-direction: column;
  gap: 20px
}

.opening .audience_list_block {
  background: #fff;
  border-radius: 12px;
  padding: 20px;
  box-shadow: 0 3px 2px -1px #4167f60f 0 6px 25px -1px #4167f61c
}

.opening .audience_list_title {
  font-size: 16px;
  font-weight: 700;
  color: #181018;
  margin: 0 0 8px;
  line-height: 1.4;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px
}

.opening .audience_list_title i {
  color: #4167F6;
  font-size: 18px
}

.opening .audience_list_title.red_title i {
  color: #FB495A
}

.opening .audience_items {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 4px
}

.opening .audience_items li {
  font-size: 16px;
  line-height: 1.6;
  padding: 4px 8px;
  border-radius: 6px
}

.opening .audience_items li:nth-child(odd) {
  background: #4167f612;
  color: #1a1850
}

.opening .audience_items li:nth-child(even) {
  background: #fb495a0f;
  color: #3a0a12
}

.opening .value_outer {
  background: #fff;
  padding: 80px 0;
  position: relative;
  overflow: hidden
}

.opening .value_curl_accent {
  position: absolute;
  bottom: 40px;
  left: 20px;
  width: 60px;
  height: 60px;
  border: 2px solid #fb495a24;
  border-radius: 40px 6px 40px 6px;
  pointer-events: none;
  opacity: .6
}

.opening .value_inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 40px
}

.opening .value_top_row {
  display: flex;
  flex-direction: row;
  gap: 80px;
  margin-bottom: 40px;
  align-items: flex-start
}

.opening .value_heading_col {
  flex: 0 0 38%
}

.opening .value_label {
  font-size: 16px;
  letter-spacing: .13em;
  color: #4167F6;
  font-weight: 600;
  text-transform: uppercase;
  margin-bottom: 20px;
  line-height: 1.4
}

.opening .value_heading {
  font-size: 37px;
  line-height: 1.15;
  font-weight: 800;
  color: #181018;
  margin: 0
}

.opening .value_heading span {
  display: block
}

.opening .value_text_col {
  flex: 1 1 0
}

.opening .value_body {
  font-size: 16px;
  line-height: 1.6;
  color: #2a1a20;
  columns: 2;
  column-gap: 20px
}

.opening .value_body p {
  margin: 0 0 8px;
  break-inside: avoid
}

.opening .value_skills_row {
  display: flex;
  flex-direction: row;
  gap: 40px;
  margin-bottom: 40px;
  align-items: flex-start
}

.opening .value_skills_bars {
  flex: 0 0 52%;
  display: flex;
  flex-direction: column;
  gap: 20px
}

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

.opening .skill_bar_label_row {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center
}

.opening .skill_bar_name {
  font-size: 16px;
  font-weight: 600;
  color: #181018;
  line-height: 1.4
}

.opening .skill_bar_pct {
  font-size: 16px;
  font-weight: 700;
  color: #FB495A;
  line-height: 1.4
}

.opening .skill_bar_track {
  height: 8px;
  background: #4167f61a;
  border-radius: 6px;
  overflow: hidden
}

.opening .skill_bar_fill {
  height: 100%;
  border-radius: 6px;
  background: linear-gradient(90deg, #FB495A 0%, #4167F6 100%);
  animation: bar_grow 1.1s cubic-bezier(0.34, 1.2, 0.64, 1) both;
  box-shadow: inset 0 1px 3px #ffffff59
}

.opening .skill_bar_fill.delay_one {
  animation-delay: .12s
}

.opening .skill_bar_fill.delay_two {
  animation-delay: .24s
}

.opening .skill_bar_fill.delay_three {
  animation-delay: .36s
}

.opening .skill_bar_fill.delay_four {
  animation-delay: .48s
}

@keyframes bar_grow {
  0% {
    width: 0
  }

  100% {
    width: var(--fill-width)
  }
}

.opening .value_portraits_col {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  gap: 20px
}

.opening .value_portrait_card {
  background: #4167f60d;
  border-radius: 12px;
  padding: 20px;
  display: flex;
  flex-direction: row;
  gap: 20px;
  align-items: flex-start;
  box-shadow: 0 3px 2px -1px #4167f60f
}

.opening .value_portrait_img {
  width: 64px;
  height: 64px;
  object-fit: cover;
  object-position: top;
  flex-shrink: 0;
  border-radius: 2px;
  filter: sepia(0.15) contrast(1.08) brightness(0.92)
}

.opening .value_portrait_text h6 {
  font-size: 16px;
  font-weight: 700;
  color: #181018;
  margin: 0 0 4px;
  line-height: 1.4
}

.opening .value_portrait_text p {
  font-size: 16px;
  line-height: 1.6;
  color: #2a1a20;
  margin: 0
}

.opening .value_portrait_role {
  font-size: 16px;
  color: #4167F6;
  font-weight: 600;
  line-height: 1.4;
  margin-bottom: 4px;
  display: block
}

.opening .value_bottom_image {
  width: 100%;
  border-radius: 12px;
  overflow: hidden;
  position: relative;
  height: 220px
}

.opening .value_bottom_image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  filter: sepia(0.22) contrast(1.1) brightness(0.88)
}

.opening .value_bottom_image::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at center, transparent 38%, #14080c80 100%);
  pointer-events: none
}

@media (max-width: 1024px) {
  .opening .title_block {
    flex-direction: column
  }

  .opening .title_image_side {
    flex: 0 0 320px;
    min-height: 320px
  }

  .opening .title_text_side {
    padding: 40px
  }

  .opening .title_heading {
    font-size: 52px
  }

  .opening .reputation_top {
    flex-direction: column;
    gap: 40px
  }

  .opening .reputation_text_col {
    flex: 1 1 auto
  }

  .opening .reputation_image_strip {
    flex-direction: column
  }

  .opening .reputation_stat_box {
    flex: 0 0 auto;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 20px
  }

  .opening .audience_grid {
    grid-template-columns: 1fr;
    grid-template-rows: auto
  }

  .opening .audience_image_cell {
    grid-column: 1 / 2;
    grid-row: auto
  }

  .opening .audience_img_portrait {
    min-height: 280px
  }

  .opening .value_top_row {
    flex-direction: column;
    gap: 20px
  }

  .opening .value_skills_row {
    flex-direction: column;
    gap: 20px
  }

  .opening .value_skills_bars {
    flex: 1 1 auto;
    width: 100%
  }
}

@media (max-width: 640px) {
  .opening .title_text_side {
    padding: 40px 20px
  }

  .opening .title_heading {
    font-size: 37px
  }

  .opening .title_cta_row {
    flex-direction: column;
    gap: 8px;
    align-items: flex-start
  }

  .opening .reputation_inner {
    padding: 0 20px
  }

  .opening .reputation_body {
    columns: 1
  }

  .opening .reputation_heading {
    font-size: 27px
  }

  .opening .audience_inner {
    padding: 0 20px
  }

  .opening .audience_heading {
    font-size: 27px
  }

  .opening .value_inner {
    padding: 0 20px
  }

  .opening .value_heading {
    font-size: 27px
  }

  .opening .value_body {
    columns: 1
  }

  .opening .reputation_outer {
    padding: 40px 0 20px
  }

  .opening .audience_outer {
    padding: 40px 0
  }

  .opening .value_outer {
    padding: 40px 0
  }
}

.about-us {
  overflow-x: clip;
  position: relative
}

.about-us *,
.about-us ::before,
.about-us ::after {
  box-sizing: border-box
}

.about-us ::selection {
  background: #1a1a2e;
  color: #FBFBFB
}

.about-us .page-identity {
  padding: 80px 40px;
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
  position: relative
}

.about-us .blob_red {
  position: absolute;
  width: 420px;
  height: 420px;
  background: radial-gradient(circle at top left, #fb495a2e, transparent 70%);
  top: -40px;
  left: -80px;
  border-radius: 40px;
  pointer-events: none;
  filter: blur(48px);
  z-index: 0
}

.about-us .blob_blue {
  position: absolute;
  width: 320px;
  height: 320px;
  background: radial-gradient(circle at top left, #4167f621, transparent 70%);
  bottom: 0;
  right: 80px;
  border-radius: 40px;
  pointer-events: none;
  filter: blur(40px);
  z-index: 0
}

.about-us .page-identity .text_zone {
  position: relative;
  z-index: 1
}

.about-us .page-identity .label_tag {
  display: inline-block;
  font-size: 16px;
  letter-spacing: .12em;
  color: #FB495A;
  background: #fb495a14;
  border-radius: 6px;
  padding: 4px 20px;
  margin-bottom: 20px;
  line-height: 1.6
}

.about-us .page-identity .headline {
  font-size: 68px;
  line-height: 1.15;
  color: #111827;
  margin: 0 0 20px
}

.about-us .page-identity .headline span {
  display: block
}

.about-us .page-identity .sub_line {
  font-size: 18px;
  line-height: 1.6;
  color: #374151;
  margin: 0 0 40px;
  max-width: 480px
}

.about-us .page-identity .stat_row {
  display: flex;
  flex-direction: row;
  gap: 40px;
  align-items: flex-start
}

.about-us .stat_item .number {
  font-size: 37px;
  line-height: 1.15;
  color: #4167F6;
  display: block
}

.about-us .stat_item .label {
  font-size: 16px;
  line-height: 1.4;
  color: #374151
}

.about-us .image_clip_zone {
  position: relative;
  z-index: 1
}

.about-us .clip_frame {
  position: relative;
  width: 100%;
  aspect-ratio: 5/6;
  border-radius: 24px;
  overflow: hidden
}

.about-us .clip_frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform .38s cubic-bezier(0.4, 0, 0.2, 1)
}

.about-us .clip_frame:hover img {
  transform: scale(1.04)
}

.about-us .clip_frame .color_wash {
  position: absolute;
  inset: 0;
  background: linear-gradient(160deg, #fb495a73, #4167f64d);
  opacity: 0;
  transition: opacity .35s ease-in-out;
  border-radius: 24px;
  pointer-events: none
}

.about-us .clip_frame:hover .color_wash {
  opacity: 1
}

.about-us .corner_decoration {
  position: absolute;
  top: -8px;
  right: -8px;
  width: 60px;
  height: 60px;
  pointer-events: none
}

.about-us .corner_decoration::before {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  width: 40px;
  height: 3px;
  background: #FB495A;
  border-radius: 2px
}

.about-us .corner_decoration::after {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  width: 3px;
  height: 40px;
  background: #FB495A;
  border-radius: 2px
}

.about-us .corner_decoration_bottom {
  position: absolute;
  bottom: -8px;
  left: -8px;
  width: 60px;
  height: 60px;
  pointer-events: none
}

.about-us .corner_decoration_bottom::before {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 40px;
  height: 3px;
  background: #4167F6;
  border-radius: 2px
}

.about-us .corner_decoration_bottom::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 3px;
  height: 40px;
  background: #4167F6;
  border-radius: 2px
}

.about-us .mission_strip {
  background: #FB495A;
  position: relative;
  overflow: hidden
}

.about-us .mission_strip .animated_overlay {
  position: absolute;
  inset: 0;
  background: #4167f62e;
  animation: overlay_pulse 5s ease-in-out infinite;
  pointer-events: none
}

@keyframes overlay_pulse {

  0%,
  100% {
    opacity: 0
  }

  50% {
    opacity: 1
  }
}

.about-us .mission_strip .strip_inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 80px 40px;
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 80px;
  align-items: center;
  position: relative;
  z-index: 1
}

.about-us .mission_strip .strip_label {
  font-size: 52px;
  line-height: 1.15;
  color: #FBFBFB
}

.about-us .mission_strip .strip_label span {
  display: block
}

.about-us .mission_strip .strip_text_columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px
}

.about-us .mission_strip .strip_paragraph {
  font-size: 18px;
  line-height: 1.6;
  color: #fbfbfbeb;
  margin: 0
}

.about-us .process_block {
  background: #FBFBFB;
  padding: 80px 40px
}

.about-us .process_block .process_inner {
  max-width: 1280px;
  margin: 0 auto
}

.about-us .process_block .process_head {
  display: flex;
  flex-direction: row;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 40px;
  gap: 40px
}

.about-us .process_block .process_heading {
  font-size: 37px;
  line-height: 1.15;
  color: #111827;
  margin: 0;
  max-width: 480px
}

.about-us .process_block .process_heading span {
  display: block
}

.about-us .process_block .process_note {
  font-size: 16px;
  line-height: 1.6;
  color: #374151;
  max-width: 340px;
  margin: 0;
  text-align: right
}

.about-us .steps_row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  margin-bottom: 40px
}

.about-us .step_item {
  position: relative;
  padding: 20px;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 6px 25px -1px #4167f61c;
  transition: box-shadow .28s ease-in-out, transform .28s cubic-bezier(0.4, 0, 0.2, 1)
}

.about-us .step_item:hover {
  box-shadow: 0 12px 48px -1px #4167f61f;
  transform: translateY(-4px)
}

.about-us .step_item.odd_step {
  border-top: 3px solid #FB495A
}

.about-us .step_item.even_step {
  border-top: 3px solid #4167F6
}

.about-us .step_number {
  position: absolute;
  top: 20px;
  right: 20px;
  font-size: 37px;
  line-height: 1.15;
  color: #4167f61a;
  font-weight: 700
}

.about-us .step_item.odd_step .step_number {
  color: #fb495a1a
}

.about-us .step_icon {
  width: 40px;
  height: 40px;
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  justify-content: center
}

.about-us .step_icon i {
  font-size: 27px;
  color: #4167F6
}

.about-us .step_item.odd_step .step_icon i {
  color: #FB495A
}

.about-us .step_title {
  font-size: 18px;
  line-height: 1.4;
  color: #111827;
  margin: 0 0 8px
}

.about-us .step_desc {
  font-size: 16px;
  line-height: 1.6;
  color: #374151;
  margin: 0
}

.about-us .process_images {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 20px
}

.about-us .process_img_frame {
  border-radius: 12px;
  overflow: hidden;
  position: relative
}

.about-us .process_img_frame img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  display: block;
  transition: transform .35s cubic-bezier(0.4, 0, 0.2, 1)
}

.about-us .process_img_frame:hover img {
  transform: scale(1.05)
}

.about-us .process_img_frame .color_wash {
  position: absolute;
  inset: 0;
  background: linear-gradient(160deg, #4167f673, #fb495a40);
  opacity: 0;
  transition: opacity .32s ease-in-out;
  pointer-events: none
}

.about-us .process_img_frame:hover .color_wash {
  opacity: 1
}

.about-us .team_block {
  background: #fff;
  padding: 80px 40px;
  border-top: 1px dashed #d1d5db
}

.about-us .team_block .team_inner {
  max-width: 1280px;
  margin: 0 auto
}

.about-us .team_block .team_layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: start
}

.about-us .team_block .team_heading {
  font-size: 37px;
  line-height: 1.15;
  color: #111827;
  margin: 0 0 20px
}

.about-us .team_block .team_heading span {
  display: block
}

.about-us .team_block .team_description {
  font-size: 18px;
  line-height: 1.6;
  color: #374151;
  margin: 0 0 40px
}

.about-us .team_block .team_description_two {
  font-size: 16px;
  line-height: 1.6;
  color: #374151;
  margin: 0
}

.about-us .portrait_grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px
}

.about-us .portrait_card {
  position: relative;
  background: #FBFBFB;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 3px 2px -1px #4167f60f;
  transition: box-shadow .32s ease-in-out
}

.about-us .portrait_card:hover {
  box-shadow: 0 12px 48px -1px #4167f61f
}

.about-us .portrait_frame {
  width: 100%;
  aspect-ratio: 7/9;
  overflow: hidden;
  position: relative
}

.about-us .portrait_frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top;
  display: block;
  transition: transform .38s cubic-bezier(0.4, 0, 0.2, 1)
}

.about-us .portrait_card:hover .portrait_frame img {
  transform: scale(1.04)
}

.about-us .portrait_frame .color_wash {
  position: absolute;
  inset: 0;
  background: linear-gradient(160deg, #fb495a66, #4167f640);
  opacity: 0;
  transition: opacity .35s ease-in-out;
  pointer-events: none
}

.about-us .portrait_card:hover .portrait_frame .color_wash {
  opacity: 1
}

.about-us .portrait_info {
  padding: 20px
}

.about-us .portrait_name {
  font-size: 18px;
  line-height: 1.4;
  color: #111827;
  margin: 0 0 4px
}

.about-us .portrait_role {
  font-size: 16px;
  line-height: 1.4;
  color: #4167F6;
  margin: 0
}

.about-us .no_portrait_card {
  background: #FBFBFB;
  border-radius: 12px;
  padding: 20px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 200px;
  box-shadow: 0 3px 2px -1px #fb495a0f
}

.about-us .no_portrait_card.odd_card {
  background: #fb495a0f
}

.about-us .no_portrait_card.even_card {
  background: #4167f60f
}

.about-us .no_portrait_initials {
  width: 40px;
  height: 40px;
  border-radius: 40px;
  background: #4167F6;
  color: #fff;
  font-size: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px
}

.about-us .no_portrait_card.odd_card .no_portrait_initials {
  background: #FB495A
}

.about-us .no_portrait_name {
  font-size: 18px;
  line-height: 1.4;
  color: #111827;
  margin: 0 0 4px
}

.about-us .no_portrait_role {
  font-size: 16px;
  line-height: 1.4;
  color: #4167F6;
  margin: 0
}

.about-us .no_portrait_card.odd_card .no_portrait_role {
  color: #FB495A
}

.about-us .values_list {
  margin: 40px 0 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 8px
}

.about-us .values_list li {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 20px;
  padding: 8px 20px;
  border-radius: 6px;
  font-size: 16px;
  line-height: 1.6;
  color: #111827
}

.about-us .values_list li:nth-child(odd) {
  background: #fb495a12
}

.about-us .values_list li:nth-child(even) {
  background: #4167f612
}

.about-us .values_list li i {
  font-size: 18px;
  flex-shrink: 0
}

.about-us .values_list li:nth-child(odd) i {
  color: #FB495A
}

.about-us .values_list li:nth-child(even) i {
  color: #4167F6
}

.about-us .divider_dashed {
  border: none;
  border-top: 1px dashed #d1d5db;
  margin: 0
}

@media (max-width: 1024px) {
  .about-us .page-identity {
    grid-template-columns: 1fr;
    gap: 40px;
    padding: 80px 40px
  }

  .about-us .page-identity .headline {
    font-size: 52px
  }

  .about-us .mission_strip .strip_inner {
    grid-template-columns: 1fr;
    gap: 40px;
    padding: 80px 40px
  }

  .about-us .mission_strip .strip_label {
    font-size: 37px
  }

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

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

  .about-us .team_block .team_layout {
    grid-template-columns: 1fr;
    gap: 40px
  }

  .about-us .process_block .process_head {
    flex-direction: column;
    align-items: flex-start
  }

  .about-us .process_block .process_note {
    text-align: left
  }
}

@media (max-width: 640px) {
  .about-us .page-identity {
    padding: 40px 20px
  }

  .about-us .page-identity .headline {
    font-size: 37px
  }

  .about-us .page-identity .stat_row {
    flex-direction: column;
    gap: 20px
  }

  .about-us .mission_strip .strip_inner {
    padding: 40px 20px
  }

  .about-us .mission_strip .strip_text_columns {
    grid-template-columns: 1fr;
    gap: 20px
  }

  .about-us .process_block {
    padding: 40px 20px
  }

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

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

  .about-us .team_block {
    padding: 40px 20px
  }

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

  .about-us .process_block .process_heading {
    font-size: 27px
  }

  .about-us .team_block .team_heading {
    font-size: 27px
  }
}

.contact-us-page {
  background: #FBFBFB;
  overflow-x: clip
}

.contact-us-page *,
.contact-us-page ::before,
.contact-us-page ::after {
  box-sizing: border-box
}

.contact-us-page ::selection {
  background: #1a1a1a;
  color: #FBFBFB
}

.contact-us-page .split_area {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 100vh;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 20px;
  gap: 80px;
  align-items: start
}

.contact-us-page .left_column {
  padding: 80px 0;
  position: relative
}

.contact-us-page .left_column::before {
  content: '';
  position: absolute;
  top: 80px;
  bottom: 80px;
  right: -40px;
  width: 1px;
  background: linear-gradient(to bottom, transparent, #fb495a40 20%, #4167f640 80%, transparent)
}

.contact-us-page .eyebrow_label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 16px;
  letter-spacing: .12em;
  color: #FB495A;
  text-transform: uppercase;
  font-weight: 600;
  margin-bottom: 20px
}

.contact-us-page .eyebrow_label .pe-7s-mail {
  font-size: 18px
}

.contact-us-page .primary_heading {
  font-size: 68px;
  line-height: 1.15;
  color: #111827;
  font-weight: 800;
  margin: 0 0 40px
}

.contact-us-page .primary_heading span {
  display: block
}

.contact-us-page .primary_heading .accent_word {
  color: #FB495A
}

.contact-us-page .address_block {
  margin-bottom: 40px;
  padding: 20px;
  background: #4167f60a;
  border-radius: 12px;
  border: 1px solid #4167f61a;
  box-shadow: 0 3px 2px -1px #4167f60f
}

.contact-us-page .address_row {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  padding: 8px 0
}

.contact-us-page .address_row+.address_row {
  border-top: 1px solid #4167f614;
  margin-top: 8px
}

.contact-us-page .address_icon {
  width: 36px;
  height: 36px;
  border-radius: 6px;
  background: #4167f61a;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: #4167F6;
  font-size: 18px
}

.contact-us-page .address_detail {
  flex: 1
}

.contact-us-page .address_detail .label_small {
  font-size: 16px;
  color: #6a7282;
  letter-spacing: .06em;
  display: block;
  margin-bottom: 4px
}

.contact-us-page .address_detail .value_text {
  font-size: 18px;
  color: #111827;
  font-weight: 500;
  line-height: 1.4
}

.contact-us-page .address_detail a.value_text {
  text-decoration: none;
  color: #111827;
  transition: color .25s ease-in-out
}

.contact-us-page .address_detail a.value_text:hover {
  color: #FB495A
}

.contact-us-page .timeline_strip {
  position: relative;
  padding-left: 20px
}

.contact-us-page .timeline_strip::before {
  content: '';
  position: absolute;
  left: 0;
  top: 8px;
  bottom: 8px;
  width: 2px;
  background: linear-gradient(to bottom, #FB495A, #4167F6);
  border-radius: 2px
}

.contact-us-page .timeline_item {
  position: relative;
  margin-bottom: 20px
}

.contact-us-page .timeline_item:last-child {
  margin-bottom: 0
}

.contact-us-page .timeline_dot {
  position: absolute;
  left: -25px;
  top: 6px;
  width: 10px;
  height: 10px;
  border-radius: 40px;
  background: #FB495A;
  border: 2px solid #FBFBFB;
  box-shadow: 0 0 0 2px #FB495A
}

.contact-us-page .timeline_item.step_two .timeline_dot {
  background: #4167F6;
  box-shadow: 0 0 0 2px #4167F6
}

.contact-us-page .timeline_item.step_three .timeline_dot {
  background: #FB495A;
  box-shadow: 0 0 0 2px #FB495A;
  opacity: .6
}

.contact-us-page .timeline_label {
  font-size: 16px;
  font-weight: 700;
  color: #111827;
  margin-bottom: 4px
}

.contact-us-page .timeline_desc {
  font-size: 16px;
  color: #4a5568;
  line-height: 1.6;
  margin: 0
}

.contact-us-page .right_column {
  padding: 80px 0
}

.contact-us-page .form_card {
  background: #fff;
  border-radius: 24px;
  padding: 40px;
  box-shadow: 0 6px 25px -1px #fb495a1c 0 12px 48px -1px #fb495a1f;
  border: 1px solid #fb495a14
}

.contact-us-page .form_heading {
  font-size: 37px;
  line-height: 1.15;
  color: #111827;
  font-weight: 700;
  margin: 0 0 8px
}

.contact-us-page .form_subtext {
  font-size: 16px;
  color: #4a5568;
  line-height: 1.6;
  margin: 0 0 40px
}

.contact-us-page .field_group {
  margin-bottom: 20px
}

.contact-us-page .field_label {
  display: block;
  font-size: 16px;
  font-weight: 600;
  color: #111827;
  margin-bottom: 8px;
  letter-spacing: .02em
}

.contact-us-page .field_label .required_mark {
  color: #FB495A;
  margin-left: 4px
}

.contact-us-page .text_input {
  width: 100%;
  padding: 20px;
  font-size: 16px;
  border: 1.5px solid #4167f633;
  border-radius: 12px;
  background: #fbfbfbcc;
  color: #111827;
  outline: none;
  transition: border-color .28s cubic-bezier(0.4, 0, 0.2, 1), box-shadow .28s cubic-bezier(0.4, 0, 0.2, 1)
}

.contact-us-page .text_input::placeholder {
  color: #9ca3af;
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap
}

.contact-us-page .text_input:focus {
  border-color: #4167F6;
  box-shadow: 0 0 0 3px #4167f61f inset 0 1px 3px #4167f60f;
  background: #fff
}

.contact-us-page .text_input:hover:not(:focus) {
  border-color: #4167f666
}

.contact-us-page .textarea_input {
  width: 100%;
  padding: 20px;
  font-size: 16px;
  border: 1.5px solid #4167f633;
  border-radius: 12px;
  background: #fbfbfbcc;
  color: #111827;
  outline: none;
  resize: vertical;
  min-height: 120px;
  transition: border-color .28s cubic-bezier(0.4, 0, 0.2, 1), box-shadow .28s cubic-bezier(0.4, 0, 0.2, 1);
  line-height: 1.6
}

.contact-us-page .textarea_input::placeholder {
  color: #9ca3af
}

.contact-us-page .textarea_input:focus {
  border-color: #4167F6;
  box-shadow: 0 0 0 3px #4167f61f inset 0 1px 3px #4167f60f;
  background: #fff
}

.contact-us-page .textarea_input:hover:not(:focus) {
  border-color: #4167f666
}

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

.contact-us-page .select_input {
  width: 100%;
  padding: 20px;
  font-size: 16px;
  border: 1.5px solid #4167f633;
  border-radius: 12px;
  background: #fbfbfbcc;
  color: #111827;
  outline: none;
  appearance: none;
  cursor: pointer;
  transition: border-color .28s cubic-bezier(0.4, 0, 0.2, 1), box-shadow .28s cubic-bezier(0.4, 0, 0.2, 1);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%234167F6' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 20px center;
  padding-right: 48px
}

.contact-us-page .select_input:focus {
  border-color: #4167F6;
  box-shadow: 0 0 0 3px #4167f61f
}

.contact-us-page .privacy_row {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 20px;
  padding: 20px;
  background: #4167f60a;
  border-radius: 12px;
  border: 1px solid #4167f61a
}

.contact-us-page .privacy_checkbox {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  margin-top: 2px;
  accent-color: #4167F6;
  cursor: pointer
}

.contact-us-page .privacy_text {
  font-size: 16px;
  color: #4a5568;
  line-height: 1.6;
  margin: 0
}

.contact-us-page .privacy_text a {
  color: #4167F6;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color .25s ease-in-out
}

.contact-us-page .privacy_text a:hover {
  color: #FB495A
}

.contact-us-page .submit_button {
  width: 100%;
  padding: 20px 40px;
  font-size: 18px;
  font-weight: 700;
  color: #fff;
  background: #FB495A;
  border: 2px solid #FB495A;
  border-radius: 12px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  position: relative;
  overflow: hidden;
  transition: background-color .35s cubic-bezier(0.4, 0, 0.2, 1), box-shadow .35s cubic-bezier(0.4, 0, 0.2, 1), transform .2s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 6px 25px -1px #fb495a1c
}

.contact-us-page .submit_button::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 12px;
  border: 2px solid transparent;
  transition: border-color .35s cubic-bezier(0.4, 0, 0.2, 1)
}

.contact-us-page .submit_button:hover {
  background: #d93546;
  box-shadow: 0 12px 48px -1px #fb495a1f;
  transform: translateY(-1px)
}

.contact-us-page .submit_button:hover::before {
  border-color: #ffffff4d
}

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

.contact-us-page .submit_button:focus-visible {
  outline: 3px solid #4167F6;
  outline-offset: 3px
}

.contact-us-page .submit_button .pe-7s-paper-plane {
  font-size: 20px;
  animation: float_icon 2.8s ease-in-out infinite
}

@keyframes float_icon {

  0%,
  100% {
    transform: translateY(0px)
  }

  50% {
    transform: translateY(-4px)
  }
}

.contact-us-page .bottom_strip {
  background: #fb495a0a;
  border-top: 1px solid #fb495a1a
}

.contact-us-page .bottom_strip_inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 40px 20px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 40px
}

.contact-us-page .strip_left {
  display: flex;
  flex-direction: column;
  gap: 8px
}

.contact-us-page .strip_tagline {
  font-size: 27px;
  font-weight: 700;
  color: #111827;
  line-height: 1.4;
  margin: 0
}

.contact-us-page .strip_note {
  font-size: 16px;
  color: #4a5568;
  line-height: 1.6;
  margin: 0
}

.contact-us-page .strip_divider {
  width: 1px;
  height: 60px;
  background: linear-gradient(to bottom, transparent, #fb495a4d, transparent)
}

.contact-us-page .strip_right {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: flex-end
}

.contact-us-page .strip_stat {
  display: flex;
  align-items: center;
  gap: 8px
}

.contact-us-page .stat_number {
  font-size: 37px;
  font-weight: 800;
  color: #FB495A;
  line-height: 1.15
}

.contact-us-page .stat_label {
  font-size: 16px;
  color: #4a5568;
  line-height: 1.4;
  max-width: 120px
}

.contact-us-page .grid_bg {
  position: absolute;
  inset: 0;
  background-image: linear-gradient(#4167f60a 1px, transparent 1px), linear-gradient(90deg, #4167f60a 1px, transparent 1px);
  background-size: 40px 40px;
  pointer-events: none;
  z-index: 0
}

.contact-us-page .left_column_relative {
  position: relative
}

.contact-us-page .left_column_relative>* {
  position: relative;
  z-index: 1
}

.contact-us-page .accent_bar {
  width: 4px;
  height: 60px;
  background: linear-gradient(to bottom, #FB495A, #4167F6);
  border-radius: 2px;
  margin-bottom: 20px
}

.contact-us-page .cycling_bg {
  animation: bg_cycle 6s ease-in-out infinite
}

@keyframes bg_cycle {

  0%,
  100% {
    background-color: #fb495a0a
  }

  50% {
    background-color: #4167f60f
  }
}

@media (max-width: 1024px) {
  .contact-us-page .split_area {
    grid-template-columns: 1fr;
    gap: 40px;
    padding: 0 20px
  }

  .contact-us-page .left_column {
    padding: 40px 0 0
  }

  .contact-us-page .left_column::before {
    display: none
  }

  .contact-us-page .right_column {
    padding: 0 0 40px
  }

  .contact-us-page .primary_heading {
    font-size: 52px
  }

  .contact-us-page .bottom_strip_inner {
    grid-template-columns: 1fr;
    gap: 20px
  }

  .contact-us-page .strip_divider {
    display: none
  }

  .contact-us-page .strip_right {
    align-items: flex-start
  }
}

@media (max-width: 640px) {
  .contact-us-page .primary_heading {
    font-size: 37px
  }

  .contact-us-page .form_card {
    padding: 20px
  }

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

  .contact-us-page .form_heading {
    font-size: 27px
  }
}

.services {
  overflow-x: hidden;
  position: relative
}

.services *,
.services ::before,
.services ::after {
  box-sizing: border-box
}

.services ::selection {
  background: #1a0a2e;
  color: #FBFBFB;
  font-weight: 700
}

.services .gradient_block {
  position: relative;
  padding: 80px 40px;
  background: linear-gradient(135deg, #FB495A 0%, #4167F6 60%, #FB495A 100%);
  background-size: 300% 300%;
  animation: grad_shift 8s ease-in-out infinite;
  overflow: hidden
}

@keyframes grad_shift {
  0% {
    background-position: 0 50%
  }

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

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

.services .gradient_block .corner_line_tl {
  position: absolute;
  top: 20px;
  left: 20px;
  width: 60px;
  height: 60px;
  pointer-events: none
}

.services .gradient_block .corner_line_tl::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background: #fbfbfb80
}

.services .gradient_block .corner_line_tl::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 2px;
  height: 100%;
  background: #fbfbfb80
}

.services .gradient_block .corner_line_br {
  position: absolute;
  bottom: 20px;
  right: 20px;
  width: 60px;
  height: 60px;
  pointer-events: none
}

.services .gradient_block .corner_line_br::before {
  content: '';
  position: absolute;
  bottom: 0;
  right: 0;
  width: 100%;
  height: 2px;
  background: #fbfbfb80
}

.services .gradient_block .corner_line_br::after {
  content: '';
  position: absolute;
  bottom: 0;
  right: 0;
  width: 2px;
  height: 100%;
  background: #fbfbfb80
}

.services .gradient_block .upper_area {
  max-width: 1280px;
  margin: 0 auto;
  display: flex;
  flex-direction: row;
  align-items: flex-end;
  gap: 40px;
  padding-top: 80px
}

.services .gradient_block .text_side {
  flex: 1;
  min-width: 0
}

.services .gradient_block .label_tag {
  display: inline-block;
  font-size: 16px;
  letter-spacing: .12em;
  color: #fbfbfbcc;
  text-transform: uppercase;
  margin-bottom: 20px;
  border: 1px solid #fbfbfb4d;
  padding: 4px 20px;
  border-radius: 2px
}

.services .gradient_block .big_heading {
  font-size: 68px;
  line-height: 1.15;
  color: #FBFBFB;
  margin: 0 0 20px;
  font-weight: 900
}

.services .gradient_block .big_heading span {
  display: block
}

.services .gradient_block .sub_text {
  font-size: 18px;
  line-height: 1.6;
  color: #fbfbfbd9;
  max-width: 480px;
  margin: 0
}

.services .gradient_block .image_side {
  flex: 0 0 420px;
  position: relative;
  height: 360px
}

.services .gradient_block .image_side .img_mask {
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: 12px;
  clip-path: polygon(0 0, 85% 0, 100% 15%, 100% 100%, 15% 100%, 0 85%)
}

.services .gradient_block .image_side .img_mask img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block
}

.services .gradient_block .image_side .img_overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to left, transparent 40%, #4167f68c 100%);
  border-radius: 12px;
  pointer-events: none
}

.services .wavy_divider {
  width: 100%;
  line-height: 0;
  overflow: hidden
}

.services .wavy_divider svg {
  display: block;
  width: 100%
}

.services .catalog_block {
  background: #FBFBFB;
  padding: 80px 40px;
  position: relative
}

.services .catalog_block .split_bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0
}

.services .catalog_block .split_bg::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 50%;
  background: #4167f60a
}

.services .catalog_block .split_bg::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 50%;
  background: #fb495a0a
}

.services .catalog_block .inner_catalog {
  max-width: 1280px;
  margin: 0 auto;
  position: relative;
  z-index: 1
}

.services .catalog_block .catalog_top {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 40px;
  margin-bottom: 80px
}

.services .catalog_block .catalog_heading_col {
  flex: 0 0 auto;
  position: relative;
  padding-left: 20px
}

.services .catalog_block .catalog_heading_col::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background: linear-gradient(180deg, #FB495A 0%, #4167F6 100%);
  border-radius: 2px
}

.services .catalog_block .catalog_heading_col .section_label {
  font-size: 16px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #4167F6;
  margin-bottom: 8px;
  display: block
}

.services .catalog_block .catalog_heading_col h2 {
  font-size: 52px;
  line-height: 1.15;
  color: #1b1b2f;
  margin: 0;
  font-weight: 800
}

.services .catalog_block .catalog_heading_col h2 span {
  display: block
}

.services .catalog_block .catalog_intro_col {
  flex: 1;
  min-width: 0;
  padding-top: 20px
}

.services .catalog_block .catalog_intro_col p {
  font-size: 18px;
  line-height: 1.6;
  color: #2d2d3a;
  margin: 0 0 20px;
  columns: 2;
  column-gap: 40px
}

.services .catalog_block .catalog_intro_col p:last-child {
  margin-bottom: 0
}

.services .catalog_block .indicators_row {
  display: flex;
  flex-direction: row;
  gap: 20px;
  margin-bottom: 80px;
  align-items: center;
  flex-wrap: wrap
}

.services .catalog_block .indicator_circle {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 120px;
  height: 120px;
  border-radius: 40px;
  border: 2px solid transparent;
  background: #fff;
  box-shadow: 0 6px 25px -1px #4167f61c;
  transition: box-shadow .28s cubic-bezier(0.4, 0, 0.2, 1), transform .28s cubic-bezier(0.34, 1.56, 0.64, 1);
  cursor: default;
  position: relative;
  overflow: hidden
}

.services .catalog_block .indicator_circle:nth-child(odd) {
  border-color: #fb495a40
}

.services .catalog_block .indicator_circle:nth-child(even) {
  border-color: #4167f640
}

.services .catalog_block .indicator_circle:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 48px -1px #4167f61f
}

.services .catalog_block .indicator_circle .circle_number {
  font-size: 27px;
  font-weight: 800;
  line-height: 1.15;
  color: #1b1b2f
}

.services .catalog_block .indicator_circle:nth-child(odd) .circle_number {
  color: #FB495A
}

.services .catalog_block .indicator_circle:nth-child(even) .circle_number {
  color: #4167F6
}

.services .catalog_block .indicator_circle .circle_label {
  font-size: 16px;
  line-height: 1.4;
  color: #556;
  text-align: center;
  padding: 0 8px
}

.services .catalog_block .divider_line {
  width: 100%;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, #4167F6 50%, transparent 100%);
  margin-bottom: 80px;
  position: relative
}

.services .catalog_block .divider_line::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 40px;
  height: 6px;
  background: #FB495A;
  border-radius: 2px
}

.services .catalog_block .zigzag_list {
  display: flex;
  flex-direction: column;
  gap: 80px
}

.services .catalog_block .service_row {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 40px
}

.services .catalog_block .service_row.reverse {
  flex-direction: row-reverse
}

.services .catalog_block .service_row .service_image_col {
  flex: 0 0 420px;
  position: relative
}

.services .catalog_block .service_row .service_image_col .img_frame {
  width: 100%;
  height: 300px;
  overflow: hidden;
  border-radius: 12px;
  clip-path: polygon(8% 0, 100% 0, 100% 92%, 92% 100%, 0 100%, 0 8%);
  box-shadow: 0 6px 25px -1px #fb495a1c
}

.services .catalog_block .service_row.reverse .service_image_col .img_frame {
  clip-path: polygon(0 0, 92% 0, 100% 8%, 100% 100%, 8% 100%, 0 92%)
}

.services .catalog_block .service_row .service_image_col .img_frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block
}

.services .catalog_block .service_row .service_image_col .wavy_accent {
  position: absolute;
  bottom: -12px;
  left: 20px;
  right: 20px;
  height: 24px;
  pointer-events: none
}

.services .catalog_block .service_row .service_text_col {
  flex: 1;
  min-width: 0
}

.services .catalog_block .service_row .service_num {
  font-size: 68px;
  font-weight: 900;
  line-height: 1.15;
  color: #4167f614;
  display: block;
  margin-bottom: 4px
}

.services .catalog_block .service_row.reverse .service_num {
  color: #fb495a14
}

.services .catalog_block .service_row h3 {
  font-size: 37px;
  line-height: 1.15;
  color: #1b1b2f;
  margin: 0 0 20px;
  font-weight: 800
}

.services .catalog_block .service_row h3 span {
  display: block
}

.services .catalog_block .service_row .service_desc {
  font-size: 18px;
  line-height: 1.6;
  color: #2d2d3a;
  margin: 0 0 20px;
  columns: 2;
  column-gap: 20px
}

.services .catalog_block .service_row .feature_list {
  list-style: none;
  padding: 0;
  margin: 0 0 20px;
  display: flex;
  flex-direction: column;
  gap: 8px
}

.services .catalog_block .service_row .feature_list li {
  font-size: 16px;
  line-height: 1.4;
  padding: 8px 20px;
  border-radius: 6px;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px
}

.services .catalog_block .service_row .feature_list li:nth-child(odd) {
  background: #fb495a12;
  color: #2d2d3a
}

.services .catalog_block .service_row .feature_list li:nth-child(even) {
  background: #4167f612;
  color: #2d2d3a
}

.services .catalog_block .service_row .feature_list li .dot {
  width: 8px;
  height: 8px;
  border-radius: 40px;
  flex-shrink: 0
}

.services .catalog_block .service_row .feature_list li:nth-child(odd) .dot {
  background: #FB495A
}

.services .catalog_block .service_row .feature_list li:nth-child(even) .dot {
  background: #4167F6
}

.services .catalog_block .service_row .action_link {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  font-size: 16px;
  font-weight: 700;
  color: #FBFBFB;
  background: #FB495A;
  padding: 8px 20px;
  border-radius: 6px;
  text-decoration: none;
  position: relative;
  border: 2px solid transparent;
  transition: color .28s cubic-bezier(0.4, 0, 0.2, 1), background .28s cubic-bezier(0.4, 0, 0.2, 1), border-color .35s cubic-bezier(0.4, 0, 0.2, 1);
  overflow: hidden
}

.services .catalog_block .service_row .action_link::before {
  content: '';
  position: absolute;
  inset: 0;
  border: 2px solid #FB495A;
  border-radius: 6px;
  opacity: 0;
  transition: opacity .35s cubic-bezier(0.4, 0, 0.2, 1)
}

.services .catalog_block .service_row .action_link:hover {
  background: #fff;
  color: #FB495A;
  border-color: #FB495A
}

.services .catalog_block .service_row .action_link:hover::before {
  opacity: 1
}

.services .catalog_block .service_row.reverse .action_link {
  background: #4167F6
}

.services .catalog_block .service_row.reverse .action_link::before {
  border-color: #4167F6
}

.services .catalog_block .service_row.reverse .action_link:hover {
  background: #fff;
  color: #4167F6;
  border-color: #4167F6
}

.services .catalog_block .faq_area {
  margin-top: 80px
}

.services .catalog_block .faq_area .faq_heading {
  font-size: 37px;
  line-height: 1.15;
  color: #1b1b2f;
  margin: 0 0 40px;
  font-weight: 800
}

.services .catalog_block .faq_area .faq_heading span {
  display: block
}

.services .catalog_block .faq_list {
  display: flex;
  flex-direction: column;
  gap: 8px
}

.services .catalog_block .faq_item {
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 3px 2px -1px #4167f60f;
  overflow: hidden
}

.services .catalog_block .faq_item input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  pointer-events: none
}

.services .catalog_block .faq_item .faq_question {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  padding: 20px;
  cursor: pointer;
  font-size: 18px;
  font-weight: 700;
  color: #1b1b2f;
  line-height: 1.4;
  user-select: none;
  gap: 20px;
  transition: color .25s ease-in-out
}

.services .catalog_block .faq_item .faq_question:hover {
  color: #4167F6
}

.services .catalog_block .faq_item .faq_icon {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: 40px;
  background: #4167f61a;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .28s cubic-bezier(0.4, 0, 0.2, 1), transform .28s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.services .catalog_block .faq_item .faq_icon svg {
  transition: transform .28s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.services .catalog_block .faq_item .faq_answer {
  display: none;
  padding: 0 20px 20px;
  font-size: 16px;
  line-height: 1.6;
  color: #2d2d3a
}

.services .catalog_block .faq_item.open .faq_answer {
  display: block
}

.services .catalog_block .faq_item.open .faq_icon {
  background: #4167F6;
  transform: rotate(45deg)
}

.services .catalog_block .faq_item.open .faq_question {
  color: #4167F6
}

.services .catalog_block .faq_item.open .faq_icon svg path {
  stroke: #fff
}

.services .catalog_block .team_strip {
  margin-top: 80px;
  display: flex;
  flex-direction: row;
  gap: 40px;
  align-items: stretch;
  flex-wrap: wrap
}

.services .catalog_block .team_card {
  flex: 1;
  min-width: 260px;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 6px 25px -1px #fb495a1c;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 20px;
  padding: 20px;
  transition: box-shadow .32s cubic-bezier(0.4, 0, 0.2, 1), transform .32s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.services .catalog_block .team_card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 48px -1px #fb495a1f
}

.services .catalog_block .team_card .portrait_frame {
  flex-shrink: 0;
  width: 80px;
  height: 102px;
  border-radius: 12px;
  overflow: hidden
}

.services .catalog_block .team_card .portrait_frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top;
  display: block
}

.services .catalog_block .team_card .team_info {
  flex: 1;
  min-width: 0
}

.services .catalog_block .team_card .team_name {
  font-size: 18px;
  font-weight: 800;
  color: #1b1b2f;
  margin: 0 0 4px;
  line-height: 1.4
}

.services .catalog_block .team_card .team_role {
  font-size: 16px;
  color: #4167F6;
  margin: 0 0 8px;
  line-height: 1.4
}

.services .catalog_block .team_card .team_note {
  font-size: 16px;
  color: #556;
  margin: 0;
  line-height: 1.4
}

@media (max-width: 1024px) {
  .services .gradient_block .upper_area {
    flex-direction: column;
    padding-top: 40px
  }

  .services .gradient_block .image_side {
    flex: 0 0 auto;
    width: 100%;
    height: 260px
  }

  .services .gradient_block .big_heading {
    font-size: 52px
  }

  .services .catalog_block .catalog_top {
    flex-direction: column
  }

  .services .catalog_block .catalog_intro_col p {
    columns: 1
  }

  .services .catalog_block .service_row,
  .services .catalog_block .service_row.reverse {
    flex-direction: column
  }

  .services .catalog_block .service_row .service_image_col {
    flex: 0 0 auto;
    width: 100%
  }

  .services .catalog_block .service_row .service_desc {
    columns: 1
  }

  .services .catalog_block .catalog_heading_col h2 {
    font-size: 37px
  }
}

@media (max-width: 640px) {
  .services .gradient_block {
    padding: 40px 20px
  }

  .services .gradient_block .big_heading {
    font-size: 37px
  }

  .services .gradient_block .upper_area {
    padding-top: 20px
  }

  .services .catalog_block {
    padding: 40px 20px
  }

  .services .catalog_block .indicators_row {
    gap: 8px
  }

  .services .catalog_block .indicator_circle {
    width: 90px;
    height: 90px
  }

  .services .catalog_block .indicator_circle .circle_number {
    font-size: 18px
  }

  .services .catalog_block .indicator_circle .circle_label {
    font-size: 16px
  }

  .services .catalog_block .catalog_heading_col h2 {
    font-size: 27px
  }

  .services .catalog_block .faq_area .faq_heading {
    font-size: 27px
  }

  .services .catalog_block .service_row h3 {
    font-size: 27px
  }

  .services .catalog_block .team_strip {
    flex-direction: column
  }
}

.success_page {
  min-height: 60vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 80px 20px;
  background: #FBFBFB
}

.success_page .success_card {
  max-width: 560px;
  width: 100%;
  background: #fff;
  border-radius: 24px;
  padding: 40px;
  box-shadow: 0 6px 25px -1px #4167f61c;
  text-align: center
}

.success_page .success_icon_wrap {
  width: 72px;
  height: 72px;
  border-radius: 40px;
  background: linear-gradient(135deg, #fb495a1a 0%, #4167f61a 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 20px
}

.success_page .success_icon_wrap svg {
  display: block
}

.success_page .success_heading {
  font-size: 37px;
  line-height: 1.15;
  color: #181820;
  margin: 0 0 20px;
  letter-spacing: -.5px
}

.success_page .success_text {
  font-size: 18px;
  line-height: 1.6;
  color: #3a3a4a;
  margin: 0 0 40px
}

.success_page .success_divider {
  width: 48px;
  height: 3px;
  border-radius: 2px;
  background: linear-gradient(90deg, #FB495A, #4167F6);
  margin: 0 auto 40px
}

.success_page .success_back_link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 16px;
  line-height: 1.4;
  color: #fff;
  background: #4167F6;
  border-radius: 12px;
  padding: 20px 40px;
  text-decoration: none;
  border: 2px solid transparent;
  transition: background .28s cubic-bezier(0.4, 0, 0.2, 1), color .28s cubic-bezier(0.4, 0, 0.2, 1), border-color .35s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative
}

.success_page .success_back_link:hover {
  background: #fff;
  color: #4167F6;
  border-color: #4167F6
}

.success_page .success_back_link:focus-visible {
  outline: 3px solid #FB495A;
  outline-offset: 4px
}

.success_page .success_back_link svg {
  flex-shrink: 0;
  transition: transform .28s cubic-bezier(0.4, 0, 0.2, 1)
}

.success_page .success_back_link:hover svg {
  transform: translateX(-3px)
}

@media (max-width: 640px) {
  .success_page {
    padding: 40px 20px
  }

  .success_page .success_card {
    padding: 40px 20px
  }

  .success_page .success_heading {
    font-size: 27px
  }

  .success_page .success_back_link {
    padding: 20px;
    width: 100%;
    justify-content: center
  }
}