/*
 * Interior reading scale. Load after editorial.css and page-specific styles.
 * Keep the homepage, concern covers, chosen fonts and original media layouts.
 * Text measures belong to paragraphs, never to a container holding photographs.
 */

main.site-page:not(:has(> .home-magazine-cover, > .home-cover)) {
  font-size: 18px;
  line-height: 1.7;
}

main.site-page:not(:has(> .home-magazine-cover, > .home-cover)) > .page-heading {
  text-align: left;
  padding: 32px 0 28px;
}
main.site-page:not(:has(> .home-magazine-cover, > .home-cover)) > .page-heading .actions {
  justify-content: flex-start;
  margin-top: 22px;
}
main.site-page:not(:has(> .home-magazine-cover, > .home-cover)) > .article-hero {
  align-items: start;
  padding-top: 22px;
}

.article-hero .lower-lid-hammock-figure {
  width: 100%;
  max-width: 520px;
  margin: 0 auto;
}

.article-hero .lower-lid-hammock-animation {
  position: relative;
  aspect-ratio: 3 / 2;
}

.article-hero .lower-lid-hammock-figure .hammock-frame {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 18px 30px rgba(79, 86, 82, .09));
  will-change: opacity, transform;
}

.article-hero .hammock-frame-relaxed {
  animation: hammock-relaxed 6.4s ease-in-out infinite;
}

.article-hero .hammock-frame-tight {
  animation: hammock-tight 6.4s ease-in-out infinite;
}

@keyframes hammock-relaxed {
  0%, 34% { opacity: 1; transform: translateY(3px) scale(1); }
  46%, 84% { opacity: 0; transform: translateY(0) scale(.992); }
  96%, 100% { opacity: 1; transform: translateY(3px) scale(1); }
}

@keyframes hammock-tight {
  0%, 34% { opacity: 0; transform: translateY(3px) scale(1.008); }
  46%, 84% { opacity: 1; transform: translateY(0) scale(1); }
  96%, 100% { opacity: 0; transform: translateY(3px) scale(1.008); }
}

.article-hero .lower-lid-hammock-figure figcaption {
  max-width: 34ch;
  margin: 10px auto 0;
  text-align: center;
  font-size: 12px;
  line-height: 1.5;
}

@media (prefers-reduced-motion: reduce) {
  .article-hero .hammock-frame-relaxed {
    display: none;
    animation: none;
  }

  .article-hero .hammock-frame-tight {
    position: static;
    animation: none;
  }
}

main.site-page:not(:has(> .home-magazine-cover, > .home-cover))
  :is(.page-heading h1, h1.page-heading, .page-title, .chapter > h1,
      .contact-intro h1, .results-page .page-heading h1) {
  font-size: 34px;
  line-height: 1.24;
  letter-spacing: -.02em;
  text-wrap: balance;
}

main.site-page:not(:has(> .home-magazine-cover, > .home-cover))
  :is(.page-heading .deck, .results-page .page-heading p:not(.eyebrow)) {
  font-size: 19px;
  line-height: 1.6;
  max-inline-size: 64ch;
}

main.site-page:not(:has(> .home-magazine-cover, > .home-cover))
  :is(.chapter-head h2, .feature-spread h2, .prose h2, .margin-layout h2,
      .directory-group h2, .mirror-moment h2, .fear-block h2,
      .surgeon-pov h2, .rx-block h2, .contact-details h2,
      .results-page .results-head .display, .chapter h2.issue-section-title,
      .fear-block h2.issue-section-title, .rx-block h2.issue-section-title) {
  font-size: 23px;
  line-height: 1.4;
  letter-spacing: -.01em;
}

main.site-page:not(:has(> .home-magazine-cover, > .home-cover))
  :is(.prose h3, .treatment-points h3, .surgeon-pov h3, .fear-block h3,
      .search-result h3, .proof-placeholder h3) {
  font-size: 21px;
  line-height: 1.4;
  letter-spacing: -.01em;
}

main.site-page:not(:has(> .home-magazine-cover, > .home-cover))
  :is(.prose, .article-hero .prose, .treatment-points p, .fear-block p,
      .surgeon-pov .pov-intro, .faqs details > div, .rx-list li,
      .search-result p) {
  font-size: 18px;
  line-height: 1.7;
}

main.site-page:not(:has(> .home-magazine-cover, > .home-cover))
  :is(.prose > p, .prose > ul, .prose > ol, .treatment-points p,
      .fear-block p, .faqs details > div > p) {
  max-inline-size: 66ch;
}

main.site-page:not(:has(> .home-magazine-cover, > .home-cover))
  :is(.article-hero .pull, .feature-spread blockquote, .mirror-moment blockquote,
      .mirror-moment .mirror-thoughts p, .fear-block blockquote,
      .faqs blockquote, .rx-question) {
  font-size: 21px;
  line-height: 1.55;
  letter-spacing: 0;
  max-inline-size: 62ch;
}

main.site-page:not(:has(> .home-magazine-cover, > .home-cover))
  :is(.directory-row, .resource-list a, .faqs summary) {
  font-size: 20px;
  line-height: 1.5;
}

main.site-page:not(:has(> .home-magazine-cover, > .home-cover))
  .reading-columns p:first-child:first-letter {
  font-size: 46px;
}

/* Results keeps its viewer, image sizes and controls; its reading copy is 18px. */
main.site-page .results-page {
  --reading-size: 18px;
}

/* About retains its three portrait previews and intact approved quotation. */
main.site-page .about-page :is(.about-heading-main, .about-options-heading h1) {
  font-size: 34px;
  line-height: 1.25;
  letter-spacing: -.02em;
}

main.site-page .about-page .about-heading-script {
  font-size: 32px;
  line-height: 1.35;
}

main.site-page .about-page .about-heading-end {
  font-size: 18px;
  line-height: 1.7;
}

main.site-page .about-page .about-opening .about-motivation {
  font-size: 25px;
  line-height: 1.5;
}

main.site-page .about-page :is(.about-opening > p, .about-team-copy > p,
                              .about-fact dd > p, .about-book-intro > p) {
  max-inline-size: 66ch;
}

/* The shared closing invitation reads at article scale on every route. */
.site-footer .footer-invitation h2 {
  font-size: 28px;
  line-height: 1.3;
  letter-spacing: -.015em;
}

.site-footer .footer-invitation p:not(.eyebrow) {
  font-size: 18px;
  line-height: 1.5;
}

/* Diary entries have their own document shell, without .site-page. */
main.diary-entry-page {
  font-size: 18px;
  line-height: 1.7;
}

main.diary-entry-page h1.page-heading {
  font-size: 34px;
  line-height: 1.24;
  letter-spacing: -.02em;
  text-wrap: balance;
}

main.diary-entry-page :is(.prose, .private-review p, .private-review dd) {
  font-size: 18px;
  line-height: 1.7;
}

main.diary-entry-page :is(p.prose, .prose > p, .private-review p) {
  max-inline-size: 66ch;
}

main.diary-entry-page .patient-caption-quote {
  font-size: 21px;
  line-height: 1.55;
  max-inline-size: 62ch;
}

/* Keep titles comfortable beside a portrait at a 790px viewport. */
@media (max-width: 820px) {
  main.site-page .about-page :is(.about-heading-main, .about-options-heading h1) {
    font-size: 32px;
  }
  main.site-page .about-page .about-heading-script {
    font-size: 31px;
  }
}

/* 390px: body stays 18px; only the title steps down. */
@media (max-width: 640px) {
  main.site-page:not(:has(> .home-magazine-cover, > .home-cover))
    :is(.page-heading h1, h1.page-heading, .page-title, .chapter > h1,
        .contact-intro h1, .results-page .page-heading h1) {
    font-size: 30px;
    line-height: 1.28;
  }
  main.site-page .about-page :is(.about-heading-main, .about-options-heading h1) {
    font-size: 30px;
    line-height: 1.28;
  }
  main.site-page .about-page .about-heading-script {
    font-size: 30px;
  }
  main.site-page .about-page .about-opening .about-motivation {
    font-size: 24px;
  }
  main.diary-entry-page h1.page-heading {
    font-size: 30px;
    line-height: 1.28;
  }
}

/* Owner typography: Instrument Sans prose; Jost for practice contact details. */
.site-footer .footer-invitation p:not(.eyebrow){font-family:var(--reading);font-weight:400}
.site-footer .footer-invitation > div:last-child > p{font-family:Jost,Arial,sans-serif}
