/*
 * Purtle.com unified Library article presentation.
 *
 * Public presentation only. RAG, transcript, review, and corpus data remain
 * stored unchanged.
 */

/* --------------------------------------------------------------------------
   Article shell
   -------------------------------------------------------------------------- */

body.page-node-type-article
  .purtle-system-stack:empty {
  display: none;
}

.purtle-article {
  background: #fff;
}

.purtle-article__shell {
  width: min(1120px, calc(100% - 2rem));
  margin-inline: auto;
  padding:
    clamp(2rem, 4vw, 3.75rem)
    0
    clamp(4.5rem, 8vw, 7rem);
}

/* --------------------------------------------------------------------------
   Editorial header
   -------------------------------------------------------------------------- */

.purtle-article__header {
  max-width: 1040px;
  margin:
    0
    auto
    clamp(2.25rem, 5vw, 4rem);
}

.purtle-article__back {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin-bottom: 1.25rem;
  color: #795015;
  font-size: 0.9rem;
  font-weight: 750;
  text-decoration: none;
}

.purtle-article__back:hover,
.purtle-article__back:focus-visible {
  color: #111113;
  text-decoration: underline;
  text-decoration-color: #B98A3D;
  text-underline-offset: 0.2em;
}

.purtle-article__categories {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-bottom: 1rem;
}

.purtle-article__categories a {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0.26rem 0.65rem;
  border: 1px solid rgba(156, 107, 32, 0.24);
  border-radius: 999px;
  background: rgba(185, 138, 61, 0.07);
  color: #795015;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.055em;
  text-decoration: none;
  text-transform: uppercase;
}

.purtle-article__categories a:hover,
.purtle-article__categories a:focus-visible {
  border-color: rgba(156, 107, 32, 0.5);
  background: rgba(185, 138, 61, 0.13);
  color: #111113;
}

.purtle-article__title {
  max-width: 1100px;
  margin:
    0
    0
    clamp(1rem, 2vw, 1.4rem);
  color: #111113;
  font-size:
    clamp(
      2.25rem,
      1.55rem + 2.15vw,
      3.85rem
    );
  font-weight: 700;
  letter-spacing: -0.035em;
  line-height: 1.04;
}

.purtle-article__deck {
  max-width: 850px;
  margin: 0;
  color: rgba(17, 17, 19, 0.75);
  font-size:
    clamp(
      1.08rem,
      1rem + 0.28vw,
      1.24rem
    );
  line-height: 1.65;
}

.purtle-article__source {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  max-width: 850px;
  margin: 0;
  color: rgba(17, 17, 19, 0.7);
  font-size: 0.98rem;
  line-height: 1.55;
}

.purtle-article__source span {
  color: #795015;
  font-weight: 800;
  letter-spacing: 0.045em;
  text-transform: uppercase;
}

/* --------------------------------------------------------------------------
   Primary video
   -------------------------------------------------------------------------- */

.purtle-article__primary-media {
  width: min(1040px, 100%);
  margin:
    0
    auto
    clamp(3rem, 6vw, 5rem);
}

.purtle-article__primary-media
  .field--name-field-media-videos,
.purtle-article__primary-media
  .field__item {
  width: 100%;
}

.purtle-article__primary-media
  .field--name-field-media-oembed-video {
  position: relative;
  width: 100%;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  border-radius: 18px;
  background: #111113;
  box-shadow:
    0 20px 50px rgba(17, 17, 19, 0.14);
}

.purtle-article__primary-media
  iframe.media-oembed-content {
  position: absolute;
  inset: 0;
  display: block;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  min-height: 0 !important;
  border: 0;
}

/* --------------------------------------------------------------------------
   Featured image for non-video resources
   -------------------------------------------------------------------------- */

.purtle-article__featured-image {
  width: min(760px, 100%);
  margin:
    0
    auto
    clamp(3rem, 6vw, 5rem);
}

.purtle-article__featured-image
  .field__label {
  display: none;
}

.purtle-article__featured-image img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 16px;
}

/* --------------------------------------------------------------------------
   Main article prose
   -------------------------------------------------------------------------- */

.purtle-article__prose,
.purtle-article__session-guide,
.purtle-article__research,
.purtle-article__topics {
  width: min(860px, 100%);
  margin-inline: auto;
}

.purtle-article__prose {
  color: #171719;
  font-size: clamp(1rem, 0.96rem + 0.15vw, 1.08rem);
  line-height: 1.74;
}

.purtle-article__prose
  .paragraph,
.purtle-article__prose
  .container {
  width: 100%;
  max-width: none;
  margin-inline: 0;
  padding-inline: 0;
}

.purtle-article__prose p {
  margin:
    0
    0
    1.25rem;
}

.purtle-article__prose h2 {
  margin:
    clamp(2.4rem, 5vw, 3.75rem)
    0
    1rem;
  color: #111113;
  font-size:
    clamp(
      1.65rem,
      1.4rem + 0.8vw,
      2.2rem
    );
  line-height: 1.18;
}

.purtle-article__prose h3 {
  margin:
    clamp(2rem, 4vw, 3rem)
    0
    0.8rem;
  color: #111113;
  font-size:
    clamp(
      1.28rem,
      1.12rem + 0.45vw,
      1.58rem
    );
  line-height: 1.25;
}

.purtle-article__prose ul,
.purtle-article__prose ol {
  margin:
    0
    0
    1.4rem;
  padding-left: 1.35rem;
}

.purtle-article__prose li + li {
  margin-top: 0.35rem;
}

.purtle-article__prose img {
  max-width: 100%;
  height: auto;
}

/*
 * Older migrated articles may begin a paragraph with a spacer immediately
 * before a legacy pull quote. Suppress only that spacer presentation.
 */
.purtle-article__prose
  p:first-child:has(+ figure.bg-pattern-diagonal) {
  display: none;
}

.purtle-article__prose
  figure.bg-pattern-diagonal {
  max-width: 860px;
  margin:
    clamp(0.75rem, 1.5vw, 1.25rem)
    auto
    clamp(2.5rem, 5vw, 3.75rem)
    !important;
  padding:
    clamp(1.5rem, 3vw, 2.4rem)
    !important;
  border-left: 4px solid rgba(156, 107, 32, 0.72);
  border-radius: 0 14px 14px 0;
  background: rgba(185, 138, 61, 0.07);
}

.purtle-article__prose
  figure.bg-pattern-diagonal
  blockquote {
  margin: 0;
  color: #18181a;
  font-size:
    clamp(
      1.22rem,
      1.05rem + 0.55vw,
      1.6rem
    ) !important;
  line-height: 1.55;
}

.purtle-article__prose
  figure.bg-pattern-diagonal
  blockquote
  p:last-child {
  margin-bottom: 0;
}

.purtle-article__prose
  figure.bg-pattern-diagonal
  figcaption {
  margin-top: 1rem !important;
  color: rgba(17, 17, 19, 0.62) !important;
  font-size: 0.9rem;
  font-weight: 750;
}

/* --------------------------------------------------------------------------
   Section heading primitive
   -------------------------------------------------------------------------- */

.purtle-article__section-heading {
  margin-bottom: clamp(1.75rem, 3vw, 2.5rem);
}

.purtle-article__eyebrow {
  margin-bottom: 0.55rem;
  color: #795015;
  font-size: 0.76rem;
  font-weight: 850;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.purtle-article__section-heading h2,
.purtle-article__footer h2 {
  margin:
    0
    0
    0.7rem;
  color: #111113;
  font-size:
    clamp(
      1.8rem,
      1.45rem + 1vw,
      2.45rem
    );
  line-height: 1.15;
}

.purtle-article__section-heading p {
  max-width: 65ch;
  margin: 0;
  color: rgba(17, 17, 19, 0.7);
  line-height: 1.65;
}

/* --------------------------------------------------------------------------
   Session guide
   -------------------------------------------------------------------------- */

.purtle-article__session-guide {
  margin-top: clamp(3.5rem, 7vw, 5.75rem);
  padding-top: clamp(2.5rem, 5vw, 4rem);
  border-top: 1px solid rgba(17, 17, 19, 0.12);
}

.purtle-article__summary-content
  > .field
  > .field__label {
  display: none;
}

/*
 * Stored transcript summaries already begin with "Transcript Summary".
 * The public template supplies the editorial title "Session Guide".
 */
.purtle-article__summary-content
  > .field
  > .field__item
  > h2:first-child {
  display: none;
}

.purtle-article__summary-content {
  color: #171719;
  font-size: 1.02rem;
  line-height: 1.7;
}

.purtle-article__summary-content h3 {
  margin:
    clamp(2rem, 4vw, 3rem)
    0
    0.75rem;
  color: #111113;
  font-size:
    clamp(
      1.3rem,
      1.12rem + 0.5vw,
      1.6rem
    );
}

.purtle-article__summary-content ul,
.purtle-article__summary-content ol {
  padding-left: 1.35rem;
}

.purtle-article__summary-content li + li {
  margin-top: 0.38rem;
}

/* --------------------------------------------------------------------------
   Research notes — intentionally secondary
   -------------------------------------------------------------------------- */

.purtle-article__research {
  margin-top: clamp(3rem, 6vw, 5rem);
}

.purtle-article__research details {
  overflow: hidden;
  border:
    1px solid
    rgba(156, 107, 32, 0.2);
  border-radius: 14px;
  background:
    rgba(185, 138, 61, 0.045);
}

.purtle-article__research summary {
  display: flex;
  cursor: pointer;
  flex-direction: column;
  gap: 0.25rem;
  padding:
    1.15rem
    1.3rem;
  color: #111113;
  font-weight: 800;
}

.purtle-article__research summary::marker {
  color: #9C6B20;
}

.purtle-article__research summary small {
  color: rgba(17, 17, 19, 0.64);
  font-size: 0.88rem;
  font-weight: 500;
}

.purtle-article__research-content {
  padding:
    0
    1.3rem
    1.5rem;
  color: #171719;
  line-height: 1.68;
}

.purtle-article__research-content
  > .field
  > .field__label {
  display: none;
}

.purtle-article__research-content
  > .field
  > .field__item
  > h2:first-child {
  display: none;
}

.purtle-article__research-content h3 {
  margin:
    2rem
    0
    0.65rem;
  font-size: 1.25rem;
}

.purtle-article__research-content
  ul {
  padding-left: 1.35rem;
}

/* --------------------------------------------------------------------------
   Topics
   -------------------------------------------------------------------------- */

.purtle-article__topics {
  margin-top: clamp(3rem, 6vw, 5rem);
  padding-top: clamp(2rem, 4vw, 3rem);
  border-top: 1px solid rgba(17, 17, 19, 0.12);
}

.purtle-article__topics h2 {
  margin:
    0
    0
    1rem;
  color: #111113;
  font-size: 1.15rem;
}

.purtle-article__topics
  .field__label {
  display: none;
}

.purtle-article__topics
  ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.purtle-article__topics li {
  margin: 0;
  padding: 0;
}

.purtle-article__topics a {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0.35rem 0.72rem;
  border: 1px solid rgba(156, 107, 32, 0.22);
  border-radius: 999px;
  background: rgba(185, 138, 61, 0.07);
  color: #795015;
  font-size: 0.83rem;
  font-weight: 750;
  text-decoration: none;
}

.purtle-article__topics a:hover,
.purtle-article__topics a:focus-visible {
  border-color: rgba(156, 107, 32, 0.5);
  background: rgba(185, 138, 61, 0.13);
  color: #111113;
}

/* --------------------------------------------------------------------------
   Article footer
   -------------------------------------------------------------------------- */

.purtle-article__footer {
  display: flex;
  width: min(1040px, 100%);
  margin:
    clamp(4rem, 8vw, 6.5rem)
    auto
    0;
  align-items: end;
  justify-content: space-between;
  gap: 2rem;
  padding:
    clamp(2rem, 4vw, 3rem);
  border-radius: 18px;
  background: #111113;
  color: #f5efe3;
}

.purtle-article__footer h2 {
  color: #fff;
}

.purtle-article__footer p {
  max-width: 58ch;
  margin: 0;
  color: rgba(255, 255, 255, 0.72);
  line-height: 1.6;
}

.purtle-article__footer
  .purtle-article__eyebrow {
  color: #d3a453;
}

.purtle-article__library-link {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 0.55rem;
  min-height: 46px;
  padding:
    0.65rem
    1rem;
  border:
    1px solid
    rgba(211, 164, 83, 0.55);
  border-radius: 999px;
  color: #f5efe3;
  font-weight: 800;
  text-decoration: none;
}

.purtle-article__library-link:hover,
.purtle-article__library-link:focus-visible {
  background: #d3a453;
  color: #111113;
}

/* --------------------------------------------------------------------------
   Remove Drupal presentation remnants not used by the curated template
   -------------------------------------------------------------------------- */

.purtle-article
  .node__meta,
.purtle-article
  .inline__links,
.purtle-article
  .comment-forbidden {
  display: none;
}

/* --------------------------------------------------------------------------
   Mobile
   -------------------------------------------------------------------------- */

@media (max-width: 767.98px) {
  .purtle-article__shell {
    width: min(100% - 1.25rem, 1120px);
    padding-top: 1.5rem;
  }

  .purtle-article__title {
    font-size:
      clamp(
        2rem,
        1.55rem + 2vw,
        2.75rem
      );
  }

  .purtle-article__primary-media
    .field--name-field-media-oembed-video {
    border-radius: 12px;
  }

  .purtle-article__footer {
    align-items: flex-start;
    flex-direction: column;
    padding: 1.5rem;
  }

  .purtle-article__library-link {
    width: 100%;
    justify-content: center;
  }

  .purtle-article__research summary,
  .purtle-article__research-content {
    padding-left: 1rem;
    padding-right: 1rem;
  }
}


/* ==========================================================================
   ARTICLE FAMILY POLISH V2
   ========================================================================== */

/* Slightly more publication-like measure for long editorial prose. */
.purtle-article__prose {
  width: min(820px, 100%);
}

/* Historical / archival imagery should look intentionally presented. */
.purtle-article__prose img {
  display: block;
  max-width: 100%;
  height: auto;
  margin:
    clamp(1.75rem, 4vw, 3rem)
    auto;
}

.purtle-article__prose
  figure:not(.bg-pattern-diagonal) {
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

/* Suppress genuinely empty legacy spacer paragraphs. */
.purtle-article__prose p:empty,
.purtle-article__prose p:has(> br:only-child) {
  display: none;
}

/* Method Book and Short pages do not need long-form editorial header gaps. */
.purtle-article--method-book
  .purtle-article__header,
.purtle-article--short-faq
  .purtle-article__header {
  margin-bottom:
    clamp(1.75rem, 3.5vw, 2.75rem);
}

/* Method Book editorial context. */
.purtle-article__family-intro {
  width: min(820px, 100%);
  margin:
    0
    auto
    1rem;
}

.purtle-article__family-intro h2 {
  margin: 0;
  color: #111113;
  font-size:
    clamp(
      1.65rem,
      1.4rem + 0.7vw,
      2.1rem
    );
  line-height: 1.18;
}

.purtle-article--method-book
  .purtle-article__prose {
  margin-top: 0;
}

.purtle-article--method-book
  .purtle-article__prose
  iframe.media-oembed-content {
  display: block;
  width: min(680px, 100%) !important;
  height: auto !important;
  margin:
    clamp(1.75rem, 4vw, 2.75rem)
    auto
    0;
  aspect-ratio: 16 / 9;
  border: 0;
}

/* Curated Session Guide. */
.purtle-article__guide-overview {
  margin-bottom:
    clamp(1.75rem, 4vw, 2.75rem);
}

.purtle-article__guide-overview h3 {
  margin:
    0
    0
    0.75rem;
  color: #111113;
  font-size:
    clamp(
      1.35rem,
      1.15rem + 0.5vw,
      1.65rem
    );
}

.purtle-article__guide-overview p {
  margin:
    0
    0
    1rem;
  line-height: 1.7;
}

.purtle-article__guide-details {
  overflow: hidden;
  margin-top: 0.9rem;
  border:
    1px solid
    rgba(156, 107, 32, 0.18);
  border-radius: 14px;
  background:
    rgba(185, 138, 61, 0.04);
}

.purtle-article__guide-details summary {
  display: flex;
  cursor: pointer;
  flex-direction: column;
  gap: 0.25rem;
  padding:
    1.05rem
    1.25rem;
  color: #111113;
  font-weight: 800;
}

.purtle-article__guide-details summary::marker {
  color: #9C6B20;
}

.purtle-article__guide-details summary small {
  color: rgba(17, 17, 19, 0.62);
  font-size: 0.87rem;
  font-weight: 500;
}

.purtle-article__guide-details-content {
  padding:
    0
    1.25rem
    1.35rem;
  color: #171719;
  line-height: 1.68;
}

.purtle-article__guide-details-content
  ul {
  margin: 0;
  padding-left: 1.35rem;
}

.purtle-article__guide-details-content
  li + li {
  margin-top: 0.42rem;
}

/* When no genuine pedagogical topics survive filtering, omit the gap too. */
.purtle-article__research
  + .purtle-article__footer,
.purtle-article__prose
  + .purtle-article__footer,
.purtle-article__primary-media
  + .purtle-article__footer {
  margin-top:
    clamp(3.5rem, 7vw, 5.5rem);
}

@media (max-width: 767.98px) {
  .purtle-article__guide-details summary,
  .purtle-article__guide-details-content {
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

/* ARTICLE FAMILY POLISH V2 */
