/* Shared soft corners for all four websites. Full-width bands and circular
   controls keep their geometry; only freestanding boxes and photos change. */
:root {
  --soa-box-radius: 16px;
  --soa-photo-radius: 14px;
  --soa-control-radius: 10px;
}

/* Final radius overrides also cover the preserved export's older selectors. */
body :is(
  .cv-program-grid, .cv-program, .program-card, .service-card,
  .cv-transaction, .transaction-card, .report-card, .hero-panel,
  .coverage-map-card, .capital-relations-panel, .program-addons,
  .intake-assurance, .financing-choice-panel, .broker-callout,
  .modern-contact-form, .success-panel, .disclaimer, .review-final-cta,
  .program-lists > div, .benefit-grid > article, .asset-grid > article,
  .capital-source-grid > article, .capability-grid > article,
  .dark-process-grid > article, .contact-aside > article,
  .intake-step-grid > article, .review-next-grid > li,
  .report-takeaways ol, .report-aside-contact, .report-information-note,
  .reports-empty, .soa-callback-fields, .soa-inquiry-result,
  .contact-draft-status, .soa-property-catalog, .soa-phase-details,
  .soa-strategy-detail details
) {
  border-radius: var(--soa-box-radius) !important;
}

body :is(
  .soa-service-photo, .soa-section-photo img, .brand-practice-image,
  .leadership-portrait, .leadership-portrait img,
  .transaction-image, .transaction-image img,
  .cv-transaction-image, .cv-transaction-image img,
  .report-card-image, .report-card-image img, .report-cover img
) {
  border-radius: var(--soa-photo-radius) !important;
}

body :is(
  .button, .nav-cta, .nav-login, .program-index > a,
  .information-service-index a, .report-filters a,
  .property-chips > span, .coverage-exclusions li,
  .financing-choice-list > span, .cv-transaction-image > span,
  .report-image-arrow, .footer-capitalos, .soa-business-linkedin,
  [data-footer-crm],
  form input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
  form select, form textarea
) {
  border-radius: var(--soa-control-radius) !important;
}

/* Clip only edge-to-edge image/group surfaces, not form or text panels. */
body :is(.cv-program-grid, .cv-transaction, .transaction-card, .report-card) {
  overflow: hidden;
}
.report-card-link { border-radius: inherit; }
body .report-card-link:focus-visible,
body .cv-program-grid > a.cv-program:focus-visible { outline-offset: -4px; }

/* Summary hover fills and expanded content follow the disclosure outline. */
body :is(.soa-property-catalog, .soa-phase-details, .soa-strategy-detail details) > summary {
  border-radius: var(--soa-box-radius);
}
body :is(.soa-property-catalog, .soa-phase-details, .soa-strategy-detail details)[open] > summary {
  border-radius: var(--soa-box-radius) var(--soa-box-radius) 0 0;
}
body :is(.soa-property-catalog, .soa-phase-details, .soa-strategy-detail details)[open] > :last-child:not(summary) {
  border-radius: 0 0 var(--soa-box-radius) var(--soa-box-radius);
}

/* Photos in cards run to the card edges. One outer clipping curve avoids
   background slivers caused by rounding both the photo and its container. */
body .conversion-home .cv-program:has(> .soa-service-photo) {
  --soa-photo-inset: 30px;
  padding-top: 0;
  overflow: hidden;
}
body .conversion-home .cv-program > .soa-service-photo {
  width: calc(100% + 2 * var(--soa-photo-inset));
  max-width: none;
  margin-left: calc(-1 * var(--soa-photo-inset));
  margin-right: calc(-1 * var(--soa-photo-inset));
  border-radius: 0 !important;
  object-fit: cover;
}
@media (max-width: 1120px) {
  body .conversion-home .cv-program:has(> .soa-service-photo) {
    --soa-photo-inset: 23px;
  }
}
body :is(
  .report-card .report-card-image, .report-card .report-card-image img,
  .cv-transaction .cv-transaction-image, .cv-transaction .cv-transaction-image img,
  .transaction-card .transaction-image, .transaction-card .transaction-image img,
  .leadership-portrait img
) {
  border-radius: 0 !important;
}
body :is(.report-card-image, .cv-transaction-image, .transaction-image) > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Independent cards have space and complete outlines on every side. */
body .conversion-home .cv-program-grid {
  gap: 24px;
  border: 0;
  background: transparent;
  overflow: visible;
  border-radius: 0 !important;
}
body .cv-program-grid > .cv-program {
  border: 1px solid var(--cv-card-border, #c7d4de) !important;
}
@media (min-width: 821px) {
  /* These three cards share text rows, not vertical card positions. */
  body .brand-group .group-strategy-grid { row-gap: 0; }
}

body .soa-phase-grid {
  gap: 16px;
  padding: 16px;
  background: transparent;
}
body main.home-page .soa-phase-grid > .cv-program {
  border: 1px solid var(--cv-card-border, #c7d4de);
}

body .report-takeaways ol {
  gap: 20px;
  border: 0;
  background: transparent;
}
body .report-takeaways ol > li:nth-child(n) {
  border: 1px solid #d9e2e9;
  border-radius: var(--soa-box-radius);
  background: #f1f5f8;
}
@media (max-width: 680px) {
  body .conversion-home .cv-program-grid { gap: 18px; }
  body .soa-phase-grid { gap: 14px; padding: 14px; }
  body .report-takeaways ol { gap: 16px; }
}
