
.site-main {
  padding-top: 3rem;
}

.section-title .title {
  font-size: clamp(48px, 8.889vw, 128px);
}

@media screen and (min-width: 992px) {
  .site-main {
    padding-top: 3rem;
  }
}

.block-title .title {
  color: #87a2b2;
  font-size: clamp(28px, 4.444vw,64px);
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.6;
  padding: 1.625rem 0 0 0;
}

.block-title .subtitle {
  font-size: clamp(20px,2.5vw,36px);
  font-weight: 600;
  line-height: 1.6;
}

@media screen and (min-width: 992px) {
  .block-title .title {
    padding: 5.625rem 0 0 0;
  }
}

.section-body {
  padding: 1rem 0 1rem 0;
}

.section-body .text {
  font-size: clamp(11px,1.25vw,18px);
  font-weight: 500;
  line-height: 1.6;
}

.section-body a {
  text-decoration: none;
  color: var(--color-light-blue);
}

.section-body .contact {
  display: flex;
  flex-flow: column;
}

@media screen and (min-width: 992px) {
  .section-body .contact {
    flex-flow: row;
  }
}

.form-control::placeholder {
  color: #2A2A2A;
  opacity: 0.3;
}

.contact-form {
  padding: 3rem 0;
}

.contact-form .form-field,
.contact-form .form-check {
  margin-bottom: 1.25rem;
}

.contact-form .form-label {
  font-size: clamp(14px,1.111vw,16px);
  font-weight: 500;
  letter-spacing: 0em;
  line-height: 1.4;
}

.contact-form .form-check-label {
  font-size: 14px;
  font-weight: 400;
  line-height: 1.4;
}

.contact-form .form-label.required,
.contact-form .form-check-label.required {
  position: relative;
}

.contact-form .form-label.required::after,
.contact-form .form-check-label.required::after {
  content: '*';
  color: #f23a3c;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0em;
  line-height: 1.4;
}

.contact-form .form-actions {
  display: flex;
  width: 100%;
  flex-flow: row;
  justify-content: center;
}

.contact-form .btn-primary {
  --bs-btn-color: var(--bs-white);
  --bs-btn-bg: var(--color-dark-blue);
  --bs-btn-border-color: #FFF;
  --bs-btn-padding-x: 1rem;
  --bs-btn-padding-y: 1rem;
  --bs-btn-hover-bg: var(--color-light-blue);
  --bs-btn-hover-border-color: var(--color-light-blue);
  position: relative;
  display: inline-flex;
  flex-flow: row;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  font-size: clamp(14px, 1.667vw,24px);
  font-weight: 400;
  line-height: 1.4;
  margin-top: 1.5rem;
  margin-bottom: 0.5rem;
  border-radius: 0.625rem;
  min-width: 80%;
}

.contact-form .btn-primary .icon-arrow {
  position: absolute;
  right: 10%;
  width: 18px;
  height: 18px;
  transition-property: translate;
  transition: .3s cubic-bezier(.4,.4,0,1);
  transform: translateX(0);
}

.contact-form .btn-primary:hover .icon-arrow {
  transform: translateX(1.5rem);
}

.contact-form .form-check:has(input:not(:checked)) ~ .form-actions > button[type='submit'] {
  opacity: 0.4;
  pointer-events: none;
}

.info {
  padding: 2rem 0 0 0;
}

.info .info-title {
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
}

.info .map {
  max-width: 100%;
  aspect-ratio: 4/3;
  padding: 0;
  overflow: hidden;
  margin-bottom: 1.25rem;
}

.info .map > iframe {
  width: 100%;
  height: 100%;
}

.info .info-row {
  display: flex;
  flex-flow: row;
  align-items: center;
  gap: 1.5rem;
  padding: 0.25rem 0 0.25rem 0;
}

.info .info-row > p {
  margin-top: 0.375rem;
  font-size: clamp(12px,1.111vw,16px);
  font-weight: 400;
  line-height: 1.6;
}

@media screen and (min-width: 992px) {
  .contact-form {
    flex: 1 1 50%;
  }

  .info {
    padding: 3rem 3rem 0 3rem;
    flex: 1 1 50%;
  }
}