.catalog-page > .company-banner {
  background: #f0f5fa;
  color: #101b2d;
}
.company-banner .breadcrumbs {
  color: #526176;
}
.company-banner .banner-image {
  background: #d6e3f0;
}
.company-banner > .wrap {
  min-height: 185px;
}
.catalog-page > .company-section {
  padding: 28px 0;
}
.company-section h2 {
  font-size: 26px;
  margin: 0 0 18px;
}
.company-section h3 {
  font-size: 18px;
  line-height: 1.4;
  margin: 0 0 8px;
}
.company-section p {
  font-size: 16px;
  line-height: 1.65;
  color: #526176;
  margin: 0 0 16px;
}
.company-section p:last-child {
  margin-bottom: 0;
}
.company-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 38px;
  align-items: center;
}
.company-media {
  aspect-ratio: 16/6;
  background: #dfe7ef;
  border-radius: 3px;
}
.company-media-tall {
  aspect-ratio: 16/9;
}
.company-tint {
  background: #f6f8fb;
}
.company-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.company-card {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  background: white;
  border: 1px solid #dfe7ef;
  border-radius: 3px;
  padding: 20px;
}
.company-card p {
  font-size: 14px;
  line-height: 1.55;
}
.company-card h3 {
  font-size: 16px;
}
.company-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #edf3fc;
  width: 48px;
  height: 48px;
  flex-shrink: 0;
  color: #2457d6;
}
.company-icon svg {
  width: 26px;
  height: 26px;
}
.company-section .company-preview {
  font-size: 12px;
  color: #65758d;
  margin-top: 12px;
}
.contact-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: start;
}
.contact-main {
  scroll-margin-top: 80px;
}
.contact-information > p {
  max-width: 490px;
}
.contact-channel-grid {
  display: flex;
  gap: 14px;
  margin: 24px 0;
}
.contact-channel-grid a,
.contact-channel-grid button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  padding: 12px;
  color: #2457d6;
  background: white;
  border: 1px solid #b4c7ed;
  border-radius: 4px;
}
.contact-channel-grid svg {
  width: 30px;
  height: 30px;
}
.contact-text {
  display: grid;
  gap: 24px;
}
.contact-text + h3 {
  margin-top: 28px;
}
.contact-text a {
  overflow-wrap: anywhere;
}
.contact-text a:hover {
  color: #2457d6;
}
.contact-text span {
  font-size: 15px;
  color: #526176;
}
.contact-form {
  background: #f6f8fb;
  border: 1px solid #dfe7ef;
  border-radius: 4px;
  padding: 26px;
}
.contact-form form {
  margin: 0;
}
.contact-form h2 {
  font-size: 28px;
  margin-bottom: 20px;
}
.contact-form .inquiry-field input,
.contact-form .inquiry-field textarea {
  background: white;
}
.contact-form .privacy {
  font-size: 12px;
  text-align: center;
  margin-top: 14px;
}
.contact-form .privacy a {
  color: #2457d6;
  text-decoration: underline;
}
.contact-form [data-notice] {
  font-size: 14px;
  margin-top: 14px;
}
.contact-form [data-notice]:empty {
  display: none;
}
.contact-form .button {
  width: 100%;
}
.company-map {
  height: 280px;
  position: relative;
  background-color: #e5ecf2;
  background-image:
    linear-gradient(30deg, transparent 46%, #f8fafc 47%, #f8fafc 51%, transparent 52%),
    linear-gradient(105deg, transparent 45%, #f8fafc 46%, #f8fafc 50%, transparent 51%);
  background-size:
    135px 100px,
    175px 150px;
  border: 1px solid #dfe7ef;
  border-radius: 3px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.map-marker {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  text-align: center;
}
.map-marker svg {
  width: 38px;
  height: 38px;
  color: #2457d6;
  fill: #e7efff;
}
.map-marker span {
  background: white;
  border: 1px solid #cbd6e4;
  border-radius: 3px;
  padding: 8px 12px;
  font-size: 13px;
  color: #526176;
}
.map-address {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: center;
  margin-top: 16px;
}
.map-address strong {
  font-size: 14px;
}
.map-address p {
  font-size: 14px;
  margin: 4px 0 0;
}
.map-address button {
  padding: 10px 16px;
  background: white;
  color: #65758d;
  border: 1px solid #cbd6e4;
  border-radius: 3px;
  font-size: 14px;
  cursor: not-allowed;
}
@media (max-width: 850px) {
  .company-cards {
    grid-template-columns: 1fr;
  }
  .company-split,
  .contact-layout {
    gap: 24px;
  }
  .company-card {
    padding: 16px;
  }
}
@media (max-width: 650px) {
  .company-split,
  .contact-layout {
    grid-template-columns: 1fr;
  }
  .company-banner > .wrap {
    min-height: 170px;
  }
  .company-section h2 {
    font-size: 23px;
  }
  .company-media {
    aspect-ratio: 16/8;
  }
  .company-section p {
    font-size: 15px;
  }
  .contact-form {
    padding: 20px;
  }
  .contact-form h2 {
    font-size: 24px;
  }
  .contact-text {
    gap: 18px;
  }
  .company-map {
    height: 230px;
  }
  .map-marker span {
    max-width: 240px;
  }
  .map-address {
    align-items: flex-start;
  }
  .map-address button {
    font-size: 12px;
    padding: 9px;
  }
  .catalog-page > .company-section {
    padding: 24px 0;
  }
}
.contact-methods {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  gap: 20px;
  margin-top: 24px;
}
.contact-methods .contact-channel-grid {
  display: grid;
  grid-template-rows: repeat(4, 76px);
  gap: 16px;
  margin: 0;
  align-items: center;
}
.contact-methods .contact-text {
  grid-template-rows: repeat(4, 76px);
  gap: 16px;
  align-items: center;
}
.contact-text h3 {
  margin-bottom: 4px;
}
@media (max-width: 650px) {
  .contact-methods {
    gap: 14px;
    grid-template-columns: 56px minmax(0, 1fr);
  }
  .contact-methods .contact-channel-grid,
  .contact-methods .contact-text {
    grid-template-rows: repeat(4, 66px);
    gap: 12px;
  }
}
.contact-privacy {
  border: 0;
  background: none;
  color: #2457d6;
  text-decoration: underline;
  font-size: 12px;
  padding: 0;
}
