/* Desktop/tablet brand lockup polish. Mobile intentionally keeps its existing sizing. */
@media (min-width: 768px) {
  .public-site-body .brand {
    gap: .8rem;
    font-size: 1rem;
  }

  .public-site-body .brand-mark {
    width: 2.375rem;
    height: 2.375rem;
    flex: 0 0 2.375rem;
  }
}

.public-site-body .social-link--instagram,
.public-site-body .social-link--instagram:hover,
.public-site-body .social-link--instagram:focus-visible {
  color: #c13584 !important;
}

.public-site-body .social-link--instagram svg {
  box-sizing: border-box;
  padding: 2px;
  border-radius: 6px;
  background: radial-gradient(circle at 31% 110%, #ffd600 0 18%, #ff7a00 32%, #ff0169 54%, #d300c5 72%, #7638fa 100%);
  color: #fff;
}

.public-site-body .social-link--facebook,
.public-site-body .social-link--facebook:hover,
.public-site-body .social-link--facebook:focus-visible {
  color: #1877f2 !important;
}

.public-site-body .public-offer-head-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 320px);
  align-items: center;
  gap: clamp(2rem, 5vw, 5rem);
}

.public-site-body .public-offer-head-photo {
  width: 100%;
  max-width: 320px;
  margin: 0;
  justify-self: end;
  overflow: hidden;
  border-radius: var(--radius-sm);
}

.public-site-body .public-offer-head-photo img {
  display: block;
  width: 100%;
  height: 240px;
  object-fit: cover;
}

.public-site-body .public-corporate-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(260px, 400px);
  align-items: center;
  gap: clamp(2rem, 4vw, 4rem);
}

.public-site-body .public-corporate-hero-photo,
.public-site-body .public-corporate-process-photo {
  width: 100%;
  margin: 0;
  overflow: hidden;
  border-radius: var(--radius-sm);
  aspect-ratio: 4 / 3;
}

.public-site-body .public-corporate-hero-photo {
  max-width: 400px;
  justify-self: end;
}

.public-site-body .public-corporate-process-photo {
  max-width: 420px;
  margin-top: 1.25rem;
}

.public-site-body :is(.public-corporate-hero-photo, .public-corporate-process-photo) img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.public-site-body #main .public-process-page-head {
  padding-block: clamp(1.75rem, 2.6vw, 2.75rem);
}

.public-site-body #main .public-faq-page-head {
  padding-block: clamp(1.75rem, 2.6vw, 2.75rem);
}

.public-site-body #main .public-contact-page-head {
  padding-block: clamp(1.75rem, 2.6vw, 2.75rem);
}

.public-site-body #main .public-contact-page-section {
  padding-block: clamp(2rem, 3.4vw, 3.5rem);
}

.public-site-body #main .public-contact-page-section .public-contact-grid {
  width: min(calc(100% - 2rem), 58rem);
  max-width: 58rem;
  gap: clamp(2rem, 4vw, 3rem);
}

.public-site-body #main .public-contact-page-section .public-contact-form-column,
.public-site-body #main .public-contact-page-section .public-contact-form {
  max-width: 36rem;
}

.public-site-body #main .public-contact-page-section .public-contact-form-column > h2 {
  margin-bottom: 1rem;
  font-size: clamp(1.8rem, 2.4vw, 2.2rem);
}

.public-site-body #main .public-contact-page-section .public-contact-form {
  gap: .55rem;
}

.public-site-body #main .public-contact-page-section .public-contact-form label {
  gap: .15rem;
  font-size: .95rem;
}

.public-site-body #main .public-contact-page-section .public-contact-form :is(input:not([type="checkbox"]):not([type="radio"]), select) {
  min-height: 2.625rem;
  height: 2.625rem;
  padding-block: .45rem;
}

.public-site-body #main .public-contact-page-section .public-contact-form textarea {
  min-height: 6.5rem;
  height: 6.5rem;
}

@media (min-width: 901px) {
  .public-site-body #main .public-contact-page-section .public-contact-grid {
    grid-template-columns: minmax(0, 36rem) minmax(14rem, 17rem);
  }
}

.public-site-body #main .public-faq-page-section {
  padding-block: clamp(2rem, 3.4vw, 3.5rem);
}

.public-site-body #main .public-faq-page-section .faq-list {
  width: min(calc(100% - 2rem), 58rem);
  max-width: 58rem;
}

.public-site-body #main .public-faq-page-section .faq-item {
  margin-bottom: .5rem;
  padding-block: 0;
}

.public-site-body #main .public-faq-page-section .faq-question {
  min-height: 3rem;
  padding: .8rem 1rem;
  font-size: 1rem;
  line-height: 1.4;
}

.public-site-body #main .public-faq-page-section .faq-answer {
  padding: 0 1rem 1rem;
}

.public-site-body #main .public-faq-page-section .faq-answer p {
  max-width: 68ch;
  line-height: 1.55;
}

.public-site-body #main .public-process-page-section {
  padding-block: clamp(2rem, 3.4vw, 3.5rem);
}

.public-site-body #main .public-process-step {
  padding: clamp(1.1rem, 1.5vw, 1.4rem);
}

.public-site-body #main .public-process-step h2 {
  margin: .4rem 0 .3rem;
}

@media (max-width: 767px) {
  .public-site-body .public-offer-head-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.5rem;
  }

  .public-site-body .public-offer-head-photo {
    width: min(100%, 320px);
    justify-self: start;
  }

  .public-site-body .public-offer-head-photo img {
    height: 220px;
  }

  .public-site-body .public-corporate-hero-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.5rem;
  }

  .public-site-body .public-corporate-hero-photo {
    max-width: 100%;
    justify-self: start;
  }

  .public-site-body #main .public-process-page-head {
    padding-block: 1.75rem;
  }

  .public-site-body #main .public-faq-page-head {
    padding-block: 1.75rem;
  }

  .public-site-body #main .public-contact-page-head {
    padding-block: 1.75rem;
  }

  .public-site-body #main .public-contact-page-section {
    padding-block: 2rem;
  }

  .public-site-body #main .public-contact-page-section .public-contact-grid {
    width: min(calc(100% - 2.5rem), 58rem);
  }

  .public-site-body #main .public-contact-page-section .public-contact-form .button {
    width: auto;
    min-width: 13.75rem;
    max-width: 15rem;
  }

  .public-site-body #main .public-faq-page-section {
    padding-block: 2rem;
  }

  .public-site-body #main .public-faq-page-section .faq-list {
    width: min(calc(100% - 2.5rem), 58rem);
  }

  .public-site-body #main .public-process-page-section {
    padding-block: 2rem;
  }
}
