/* Consistent corners for visible landing surfaces. Circles and pill labels keep their shapes. */
:root {
  --offer-radius-surface: 18px;
  --offer-radius-media: 16px;
  --offer-radius-control: 10px;
}

.evan figcaption { border-radius: 12px; }

.proof-sheet,
.proof-media { border-radius: var(--offer-radius-media); }
.proof-media::after { border-radius: 8px; }
.proof-open,
.platform-v2-expand-hint,
.platform-v2:not(.is-ready) .platform-v2-card::after { border-radius: var(--offer-radius-control); }
.platform-v2.is-morphed .platform-v2-visual:has(.dot-sculpture:not(.is-ready)) .platform-v2-card.is-active::after {
  border-radius: 30px;
}

.future-view-images,
.future-view-image { border-radius: var(--offer-radius-media); }
.future-view-images { overflow: hidden; }

#plans.pricing { border-radius: 28px 28px 0 0; scroll-margin-top: 0; }
.member-pass { border-radius: var(--offer-radius-media); }
.member-pass::after { inset: 8px; border-radius: 8px; }

.reviews .review-card,
.reviews .review-card:first-child,
.review-dialog .review-dialog-surface { border-radius: var(--offer-radius-surface); }

.meetings .gallery-display { border-radius: clamp(20px, 2.4vw, 32px); }
.gallery-photo { border-radius: clamp(9px, 1vw, 14px); }

.letter .letter-page,
.letter .letter-visual { border-radius: var(--offer-radius-surface); }
.letter .letter-page { overflow: hidden; }

.contact .contact-form { border-radius: var(--offer-radius-surface); }
.contact .contact-form input,
.contact .contact-form textarea,
.join-field input { border-radius: var(--offer-radius-control); }
dialog .modal-surface,
.legal-dialog .legal-surface { border-radius: var(--offer-radius-surface); }
.lightbox .lightbox-surface img { border-radius: 12px; }

/* Give the pricing details room while sizing the passes to the laptop viewport. */
@media (min-width: 801px) {
  #plans.pricing {
    padding-block: clamp(24px, 3.2svh, 34px) clamp(22px, 3svh, 32px);
  }
  #plans.pricing .chapter-head { margin-bottom: 22px; }
  #plans.pricing .pricing-grid {
    width: min(100%, clamp(920px, 128svh, 1030px));
  }
  #plans.pricing .plan-details { padding-top: 16px; }
  #plans.pricing .plan-pricing { margin-block: 13px 11px; }
  #plans.pricing .plan-details .availability { margin-top: 9px; }
  #plans.pricing .installment-note { margin-top: 14px; }
}

@media (max-width: 760px) {
  /* With no mobile header, the persistent illustration can sit at the viewport edge. */
  .outcomes-v3 .outcomes-v3-visual { top: 0; padding-top: 0; }
  #plans.pricing { border-radius: 20px 20px 0 0; }
}

@media (max-width: 420px) {
  .meetings .gallery-display { border-radius: 17px; }
  .gallery-photo { border-radius: 8px; }
}
