/* Shared public-page finish: preserves page layouts while aligning the
   information density and surfaces used across the B2B site. */
.public-body {
  --front-card-radius: 12px;
  --front-card-border: rgba(20, 54, 102, .12);
  --front-card-shadow: 0 6px 18px rgba(8, 17, 31, .05);
  --front-card-shadow-hover: 0 12px 28px rgba(8, 17, 31, .09);
}

.public-body .site-header-blueprint {
  box-shadow: 0 3px 14px rgba(13, 28, 51, .05);
}

.public-body :is(
  .card, .panel, .contact-card, .contact-v30-form-card, .contact-v30-sidebar-card,
  .sidebar-card, .story-panel, .empty-state, .component-catalog-head-v24,
  .filter-select-card, .product-showcase-card, .product-table-view-v26,
  .product-compare-wrap, .ind-snapshot-card, .ind-card, .svc-detail-process-card,
  .svc-detail-check-item, .svc-detail-list-item, .svc-detail-usecase-card,
  .article-reading-card, .post-card, .featured-post-card, .product-card,
  .industry-card, .service-highlight-card, .industry-highlight-card,
  .quality-highlight-card, .product-highlight-card, .dynamic-image-card,
  .location-card, .team-card, .certificate-card, .video-card
) {
  border-radius: 12px;
  box-shadow: var(--front-card-shadow);
}

.public-body :is(.ind-snapshot-card, .ind-card, .svc-detail-process-card, .svc-detail-check-item,
  .svc-detail-list-item, .svc-detail-usecase-card, .contact-v30-form-card,
  .contact-v30-sidebar-card, .component-catalog-head-v24) {
  border-color: var(--front-card-border);
}

@media (hover: hover) {
  .public-body :is(
    .contact-card, .contact-v30-sidebar-card, .product-showcase-card, .post-card,
    .product-card, .ind-snapshot-card, .ind-card, .svc-detail-process-card,
    .svc-detail-usecase-card, .service-highlight-card, .industry-highlight-card,
    .quality-highlight-card, .product-highlight-card, .dynamic-image-card,
    .location-card, .team-card, .certificate-card, .video-card
  ):hover {
    border-color: rgba(11, 124, 255, .22);
    box-shadow: var(--front-card-shadow-hover);
  }
}

.public-body :is(.section-head, .ind-section-head, .jhead) {
  gap: 14px;
  margin-bottom: 18px;
}

.public-body :is(.section-head, .ind-section-head) :is(h2, h3) {
  margin-bottom: 0;
  line-height: 1.2;
  letter-spacing: 0;
}

.public-body .public-form label {
  gap: 7px;
}

.public-body .public-form :is(input[type='text'], input[type='email'], input[type='search'],
  input[type='tel'], input[type='number'], select, textarea) {
  min-height: 44px;
  border-radius: 8px;
  border-color: rgba(20, 54, 102, .16);
  background: #fff;
}

.public-body .public-form textarea {
  min-height: 132px;
  resize: vertical;
}

.public-body .btn {
  min-height: 40px;
  border-radius: 8px;
  box-shadow: none;
}

.public-body .btn-small {
  min-height: 34px;
  border-radius: 6px;
}

.public-body .btn-primary {
  box-shadow: 0 6px 14px rgba(11, 124, 255, .18);
}

.public-body :is(button, a, input, select, textarea):focus-visible {
  outline: 3px solid rgba(11, 124, 255, .24);
  outline-offset: 2px;
}

.public-body :is(.product-compare-wrap, .product-table-view-v26) {
  border-color: var(--front-card-border);
  background: #fff;
}

@media (max-width: 760px) {
  .public-body :is(
    .contact-v30-form-card, .contact-v30-sidebar-card, .component-catalog-head-v24,
    .ind-snapshot-card, .ind-card, .svc-detail-process-card, .svc-detail-check-item,
    .svc-detail-list-item, .svc-detail-usecase-card
  ) {
    border-radius: 10px;
  }

  .public-body .public-form textarea {
    min-height: 120px;
  }

  .public-body .btn:not(.btn-small) {
    min-height: 42px;
  }
}
