*, ::before, ::after {
  /* outline: .1px solid red; */
  box-sizing: border-box;
  padding: 0;
  margin: 0;
  -webkit-tap-highlight-color: transparent;
}

img, svg {
  display: block;
  max-width: 100%;
  height: auto;
}

hr {
  border: 2px solid rgba(0, 0, 0, 0.1);
  border-width: 0 0 2px 2px;
  align-self: stretch;
}

sup, sub {
  font-size: 10px;
}

ol, ul {
  padding-left: 1.5em;
}

:root {
  --radius-full: 9999px;
  --color-primary: #CA325D;
  --color-gray: #F4F4F4;
  --color-gray-2: #EAE7E4;
  --color-text: #333;
  --h2-size: 26px;
  --h2-height: 36px;
  --p-size: 16px;
  --strong-size: 20px;
  --strong-height: 25px;
  --strong-span-size: 32px;
  --strong-span-height: 35px;
}
@media (max-width: 600px) {
  :root {
    --h2-size: 21px;
    --h2-height: 28px;
    --p-size: 14px;
    --strong-size: 18px;
    --strong-height: 22px;
    --strong-span-size: 28px;
    --strong-span-height: 32px;
  }
}

html {
  font-family: "Manrope", sans-serif;
  font-size: var(--p-size);
  font-optical-sizing: auto;
  text-size-adjust: none;
  background-color: #fff;
  color: var(--color-text);
  margin: auto;
}
html, html body {
  min-width: 360px;
  max-width: 760px;
}

body {
  display: flex;
  flex-direction: column;
  gap: 40px;
}
@media (max-width: 600px) {
  body {
    gap: 30px;
  }
}

.bg-pink {
  display: block;
  padding: 10px 20px;
  background-color: var(--color-primary);
  color: #FFF;
  text-align: center;
}

.text-pink, p strong {
  color: var(--color-primary);
}

.text-center {
  text-align: center;
}

h2, .h2 {
  font-size: var(--h2-size);
  line-height: var(--h2-height);
  text-align: center;
}

h3, .h3 {
  font-size: 21px;
  line-height: 28px;
}

section, .flex, .flex-col {
  display: flex;
  align-items: center;
  gap: 20px;
}

section, .flex-col {
  flex-direction: column;
}

section {
  gap: 20px;
}
section > h2 {
  box-sizing: content-box;
  max-width: 460px;
  padding-inline: 6%;
  padding-inline: 5%;
}
section > div {
  width: 100%;
  padding: 30px 35px;
  background: var(--color-gray);
}
@media (max-width: 600px) {
  section > div {
    padding: 25px;
  }
}

#hero-image {
  max-height: 590px;
  background: linear-gradient(to bottom, #7D0096 0, #7D0096 435px, #1482FA 435px, #1482FA 100%);
}
#hero-image img {
  max-height: 590px;
  margin: auto;
}

#logo-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 22px;
  background: #FFFFFF;
  max-width: 540px;
  padding: 20px;
  margin: auto;
  border-bottom: 1px solid var(--color-primary);
}
#logo-container img {
  width: 100%;
  max-width: 375px;
}
#logo-container h2 {
  text-transform: uppercase;
  letter-spacing: 0.2em;
}

#section-2 > div {
  gap: 6%;
  padding: 30px 6%;
}
@media (max-width: 600px) {
  #section-2 > div {
    flex-direction: column;
    gap: 50px;
  }
}
#section-2 > div > :first-child {
  align-items: start;
  gap: 10px;
  max-width: 180px;
}
@media (max-width: 600px) {
  #section-2 > div > :first-child {
    flex-direction: row;
    align-items: center;
    gap: 18%;
    max-width: 350px;
  }
}
#section-2 > div > :first-child strong {
  font-size: var(--strong-size);
  font-weight: 400;
  line-height: var(--strong-height);
}
#section-2 > div > :first-child strong span {
  font-size: var(--strong-span-size);
  font-weight: 700;
  line-height: var(--strong-span-height);
}
#section-2 > div > :last-child {
  gap: 15px;
}
#section-2 > div > :last-child img {
  width: min(30%, 150px);
}

#section-3 {
  border-bottom: 1px solid var(--color-primary);
}
#section-3 > h2 {
  max-width: 400px;
}
#section-3 > div {
  flex-wrap: wrap;
  gap: 30px;
}
#section-3 > div > div {
  flex: 1;
  align-self: stretch;
  justify-content: space-between;
  text-align: center;
}
#section-3 > div > div:first-of-type {
  padding-bottom: 15px;
}
#section-3 > div > div:last-of-type {
  flex: 100%;
  gap: 30px;
}
#section-3 > div > div:last-of-type > div > div {
  flex: 1;
  align-items: start;
  gap: 15px;
  align-self: stretch;
  text-align: initial;
}
#section-3 > div > div:last-of-type strong {
  display: block;
  margin-bottom: 6px;
}
#section-3 > div > hr:last-of-type {
  flex: 100%;
}
@media (max-width: 600px) {
  #section-3 > div {
    flex-direction: column;
  }
  #section-3 > div > div {
    text-align: initial;
    gap: 30px;
  }
  #section-3 > div > div:nth-of-type(3) > p {
    max-width: 400px;
  }
  #section-3 > div > div:nth-of-type(3) > div {
    flex-direction: column;
  }
  #section-3 > div > div:nth-of-type(3) > div > div {
    flex-direction: row;
    gap: 30px;
  }
}
@media (max-width: 600px) and (min-width: 450px) {
  #section-3 > div > div:nth-of-type(1) {
    flex-direction: row;
  }
  #section-3 > div > div:nth-of-type(2) {
    flex-direction: row-reverse;
  }
}

#section-4 > h2 {
  max-width: 680px;
}

#section-5 > div #map-wrpr {
  position: relative;
  width: 100%;
}
#section-5 > div #map-wrpr #map {
  margin: auto;
}
#section-5 > div #bubble-wrpr {
  display: contents;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  margin-top: -15px;
}
#section-5 > div #bubble-wrpr > div {
  position: absolute;
  flex: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  background-color: var(--color-gray-2);
  border-radius: var(--radius-full);
}
#section-5 > div #bubble-wrpr > div:first-child {
  width: 145px;
  height: 145px;
}
#section-5 > div #bubble-wrpr > div:first-child ~ div {
  width: 95px;
  height: 95px;
}
#section-5 > div #bubble-wrpr > div:nth-child(1) {
  top: 45px;
}
#section-5 > div #bubble-wrpr > div:nth-child(2) {
  top: 155px;
  left: 115px;
}
#section-5 > div #bubble-wrpr > div:nth-child(3) {
  top: 42px;
  right: 5px;
}
#section-5 > div #bubble-wrpr > div:nth-child(4) {
  top: 150px;
  right: 20px;
}
#section-5 > div #bubble-wrpr strong {
  font-weight: 400;
}
#section-5 > div #bubble-wrpr strong .text-pink {
  font-size: 26px;
}
#section-5 > div > p {
  font-size: 12px;
}
#section-5 > div > p:first-of-type {
  max-width: 420px;
  margin-bottom: 20px;
}
@media (max-width: 600px) {
  #section-5 > div #bubble-wrpr {
    display: flex;
    margin-top: 15px;
  }
  #section-5 > div #bubble-wrpr > div {
    position: static;
    padding: 10px;
  }
  #section-5 > div #chart {
    width: calc(100% + 25px);
    max-width: unset;
  }
}
@media (max-width: 500px) {
  #section-5 > div #bubble-wrpr {
    display: grid;
    grid-template-columns: 1fr 1fr;
    justify-items: center;
    gap: 20px 0;
  }
  #section-5 > div #bubble-wrpr > div {
    position: static;
    padding: 10px;
  }
}

#section-6 > div {
  gap: 40px;
}
#section-6 > div > div {
  gap: 30px;
}
#section-6 > div > div > div {
  gap: 10px;
}
#section-6 > div > div strong > span {
  font-size: 26px;
  line-height: 36px;
}
@media (max-width: 600px) {
  #section-6 > div > div {
    width: 100%;
    max-width: 400px;
  }
  #section-6 > div > div > div {
    flex-direction: column;
  }
  #section-6 > div > div img {
    flex: 1 150px;
  }
}
@media (max-width: 450px) {
  #section-6 > div > div {
    flex-direction: column;
  }
}

footer {
  background-color: #D1CCC6;
  padding: 30px 55px;
  font-size: 12px;
  line-height: 16px;
}
@media (max-width: 600px) {
  footer {
    padding: 30px 40px;
  }
}
@media (max-width: 450px) {
  footer {
    padding: 30px 25px;
  }
}
