/* ============================================================
   23 — Prose
   Long-form text pages. The template's other sections are all composed layouts, and
   base.css resets every margin to 0, so a page of bare <p>/<ul> renders as one
   unreadable block. This section is the minimum needed for the plain content pages a
   client site almost always has and the six master pages do not cover: privacy policy,
   careers, staff bios, city landing pages, thank-you pages.

   Usage:
     <section class="sec-23-prose section on-bone">
       <div class="sec-23-prose__wrap container">
         <h2 class="sec-23-prose__h">...</h2>
         <p>...</p>
         <ul class="sec-23-prose__list"><li>...</li></ul>
       </div>
     </section>
   ============================================================ */

.sec-23-prose {
  /* This component ships without the sitewide .section-pad utility class in its
     markup (every page using it writes class="sec-23-prose section on-bone"), so
     without this rule the section has zero top/bottom breathing room -- content
     runs flush into the section above and the one below. */
  padding-block: var(--sp-section);
}

.sec-23-prose__wrap {
  /* This element also carries .container, which produces the site's gutter via
     width:min(--container, 100% - 2.5rem) + margin-inline:auto. Narrowing THIS element to
     a 68ch measure makes the auto-centring indent the whole column inward; overriding
     margin-inline to 0 to compensate then jams it against the viewport edge and lets the
     chapter rail print through the copy. Let .container own the gutter, and cap the
     MEASURE on the children instead. */
  max-width: none;
}

.sec-23-prose__wrap > * {
  max-width: 68ch;
}

/* staff-bio portrait: sits above the copy on mobile, floats beside it on desktop */
.sec-23-prose__portrait {
  margin-bottom: 1.6rem;
  border-radius: var(--radius-card);
  overflow: hidden;
  box-shadow: var(--shadow-lift);
  max-width: 260px;
}

.sec-23-prose__portrait img {
  width: 100%;
  height: auto;
}

@media (min-width: 720px) {
  .sec-23-prose__portrait {
    float: right;
    width: 260px;
    margin-left: 2rem;
    margin-bottom: 1.25rem;
  }
}

/* A CTA button that follows floated prose (e.g. .sec-23-prose__portrait) --
   clear:both so it always sits full-width below the copy, never squeezed
   into whatever's left beside the float. */
.sec-23-prose__cta {
  clear: both;
  margin-top: 1.75rem;
}

.sec-23-prose p,
.sec-23-prose li {
  color: var(--text-on-bone);
  font-size: 1.02rem;
  line-height: 1.75;
}

.sec-23-prose p + p {
  margin-top: 1.1rem;
}

.sec-23-prose__h {
  font-family: var(--font-display);
  font-size: var(--fs-h3);
  letter-spacing: -0.02em;
  margin-top: 2.8rem;
  margin-bottom: 0.85rem;
}

.sec-23-prose__h:first-child {
  margin-top: 0;
}

.sec-23-prose__list {
  margin-top: 1.1rem;
  display: grid;
  gap: 0.6rem;
  padding-left: 1.1rem;
}

.sec-23-prose__list li {
  list-style: disc;
  padding-left: 0.35rem;
}

.sec-23-prose__list li::marker {
  color: var(--accent);
}

/* :not(.btn) -- a real button-styled link (e.g. .sec-23-prose__cta .btn) must
   keep the button's own color/no-underline styling, not the inline-text-link
   treatment below. Without this, this rule's higher specificity (element +
   class vs. .btn's single class) overrides .btn/.btn--solid's colors. */
.sec-23-prose a:not(.btn) {
  color: var(--accent-strong);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
  transition: color 200ms var(--ease-out);
}

.sec-23-prose a:not(.btn):hover,
.sec-23-prose a:not(.btn):focus-visible {
  color: var(--accent);
}

@media (max-width: 640px) {
  .sec-23-prose p,
  .sec-23-prose li {
    font-size: 0.98rem;
  }
  .sec-23-prose__h {
    margin-top: 2.1rem;
  }
}

/* --- Optional photo grid (careers page: real clinic photos) --- */
.sec-23-prose__photo-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--sp-gap);
  margin: 2rem 0;
}

.sec-23-prose__photo-grid-item {
  margin: 0;
}

.sec-23-prose__photo-grid-item img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-soft);
}

.sec-23-prose__photo-grid-item figcaption {
  margin-top: 0.6rem;
  font-size: 0.85rem;
  color: var(--text-on-bone-dim);
  text-align: center;
}

@media (max-width: 640px) {
  .sec-23-prose__photo-grid {
    grid-template-columns: 1fr;
  }
}

/* --- Plan chip grid (insurance page: text-only, no insurer logos) --- */
.sec-23-prose__chip-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin: 1.5rem 0;
  padding: 0;
  list-style: none;
}

.sec-23-prose__chip {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.55rem 1.1rem;
  background: var(--bone-2);
  border: 1px solid var(--line-bone);
  border-radius: var(--radius-pill);
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--text-on-bone);
}

.sec-23-prose__chip-icon {
  flex-shrink: 0;
  color: var(--accent-strong);
}

/* --- Downloadable resource grid (at-home-exercise page: real printable handouts) --- */
.sec-23-prose__resource-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--sp-gap);
  margin: 1.75rem 0;
  max-width: none;
}

.sec-23-prose__resource-grid--single {
  grid-template-columns: minmax(0, 320px);
}

.sec-23-prose__resource {
  margin: 0;
  background: var(--bone-2);
  border: 1px solid var(--line-bone);
  border-radius: var(--radius-card);
  overflow: hidden;
}

.sec-23-prose__resource > a {
  display: block;
}

.sec-23-prose__resource img {
  display: block;
  width: 100%;
  height: auto;
  border-bottom: 1px solid var(--line-bone);
}

.sec-23-prose__resource figcaption {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.85rem 1rem;
}

.sec-23-prose__resource-title {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--text-on-bone);
}

.sec-23-prose__resource-btn {
  padding: 0.45rem 1.1rem;
  font-size: 0.8rem;
  flex-shrink: 0;
}

/* Form variant: title + short description + button, stacked (paperwork page).
   Overrides the default row-layout figcaption used by the photo/exercise cards. */
.sec-23-prose__resource--form figcaption {
  flex-direction: column;
  align-items: flex-start;
  padding: 1.25rem 1.25rem 1.5rem;
}

.sec-23-prose__resource--form .sec-23-prose__resource-desc {
  font-size: 0.88rem;
  line-height: 1.55;
  color: var(--text-on-bone-dim);
  margin: 0.4rem 0 1.1rem;
}

.sec-23-prose__resource--form .sec-23-prose__resource-doc-icon-wrap {
  padding: 1.5rem 1rem 0.5rem;
  border-bottom: none;
}

/* Doc variant: no thumbnail image, so an icon area stands in for it --
   same overall card shape (icon area + figcaption footer) as the photo
   variant, one real link (the Download button), no nested/duplicate link. */
.sec-23-prose__resource--doc .sec-23-prose__resource-doc-icon-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem 1rem;
  border-bottom: 1px solid var(--line-bone);
}

.sec-23-prose__resource-doc-icon {
  color: var(--accent-strong);
}

@media (max-width: 640px) {
  .sec-23-prose__resource-grid {
    grid-template-columns: 1fr;
  }
}
