/* Journal: shared by native archives, search, blog template and articles.
   Design contract: /design.md. No reveal effects: reading stays stable. */
.gx-journal, .gx-story { padding-block: clamp(2.5rem, 6vw, 6rem) var(--gx-space-section); }
.gx-journal-heading { max-width: 60rem; margin-bottom: clamp(2rem, 4vw, 4rem); }
.gx-journal-heading h1, .gx-story-heading h1 { font-size: var(--gx-text-heading); margin: 0 0 1.25rem; overflow-wrap: anywhere; }
.gx-journal-description { max-width: 42rem; color: var(--color-muted); font-size: var(--gx-text-lead); }
.gx-journal-description p { margin: 0; }
.gx-journal-tools { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding-block: 1rem; margin-bottom: 2.5rem; border-block: 1px solid var(--color-border); }
.gx-journal-topics { display: flex; flex-wrap: wrap; gap: .25rem 1.5rem; }
.gx-journal-topics a { display: inline-flex; align-items: center; min-height: 44px; color: var(--color-muted); text-decoration: none; }
.gx-journal-topics a[aria-current], .gx-journal-topics a:hover { color: var(--color-primary); text-decoration: underline; text-underline-offset: .6em; }
.gx-journal-search { display: flex; align-items: stretch; flex: 0 0 18rem; max-width: 100%; background: var(--color-bg-soft); border: 1px solid var(--color-border); }
.gx-journal-search input { width: 100%; min-width: 0; border: 0; border-radius: 0; background: transparent; color: var(--color-text); padding: .65rem .85rem; }
.gx-journal-search input::placeholder { color: var(--color-muted); opacity: 1; }
.gx-journal-search button { display: grid; place-items: center; flex: 0 0 48px; min-height: 48px; padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--color-primary); cursor: pointer; }
.gx-journal-search button:hover { background: var(--color-card); }
.gx-journal-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(2.5rem, 5vw, 5rem) clamp(1.5rem, 3vw, 3rem); }
.gx-journal-card { min-width: 0; }
.gx-journal-card__image { display: block; background: var(--color-bg-soft); overflow: hidden; }
.gx-journal-card__image img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: contain; border-radius: 0; }
.gx-journal-card__body { padding-top: 1.5rem; }
.gx-journal-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: .35rem 1.25rem; color: var(--color-muted); font-size: var(--gx-text-small); }
.gx-journal-meta a { color: var(--color-primary); text-decoration: none; }
.gx-journal-meta a:hover { text-decoration: underline; }
.gx-journal-card h2 { font-size: clamp(1.75rem, 1.2rem + 1.3vw, 2.75rem); margin: .85rem 0; overflow-wrap: anywhere; }
.gx-journal-card h2 a { color: var(--color-text); text-decoration: none; }
.gx-journal-card h2 a:hover { color: var(--color-primary); }
.gx-journal-card__excerpt { color: var(--color-muted); margin: 0 0 1rem; max-width: 55ch; }
.gx-journal-card__read, .gx-story-back { display: inline-flex; align-items: center; gap: .75rem; min-height: 44px; color: var(--color-text); text-decoration: none; }
.gx-journal-card__read .gx-icon { color: var(--color-primary); }
.gx-journal-card__read:hover, .gx-story-back:hover { color: var(--color-primary); text-decoration: underline; }
.gx-journal-card--featured { display: grid; grid-template-columns: 1.35fr 1fr; grid-column: 1 / -1; gap: clamp(1.5rem, 4vw, 4rem); align-items: center; padding-bottom: clamp(2.5rem, 5vw, 5rem); border-bottom: 1px solid var(--color-border); }
.gx-journal-card--featured .gx-journal-card__body { padding-top: 0; }
.gx-journal-card--featured .gx-journal-card__image img { aspect-ratio: 16 / 9; }
.gx-journal-card--featured h2 { font-size: clamp(2rem, 1.25rem + 2vw, 3.5rem); }
.gx-journal-card--text { border-top: 1px solid var(--color-border); }
.gx-journal-card--featured.gx-journal-card--text { display: block; padding-top: 2rem; }
.gx-journal-card--featured.gx-journal-card--text .gx-journal-card__body { max-width: 50rem; }
.gx-journal-pagination { border-top: 1px solid var(--color-border); margin-top: 4rem; padding-top: 1.5rem; }
.gx-journal-pagination ul.page-numbers { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; margin: 0; padding: 0; border: 0; background: transparent; }
.gx-journal-pagination li { margin: 0; }
.gx-journal-pagination li .page-numbers { gap: .5rem; min-width: 44px; min-height: 44px; padding: .5rem .85rem; border-radius: 0; background: transparent; color: var(--color-text); }
.gx-journal-pagination li .current, .gx-journal-pagination li a:hover { color: var(--gx-ink); border-color: var(--color-primary); background: var(--color-primary); }
.gx-journal-empty { padding-block: 2rem 4rem; }
.gx-story-heading { max-width: 62rem; margin: 0 auto 3rem; }
.gx-story-back { margin-bottom: 2rem; color: var(--color-muted); }
.gx-story-heading h1 { margin-top: 1rem; }
.gx-story-image { margin: 0 0 clamp(2.5rem, 5vw, 5rem); }
.gx-story-image img { display: block; width: 100%; height: auto; border-radius: 0; }
.gx-story-image figcaption { color: var(--color-muted); font-size: var(--gx-text-small); margin-top: .75rem; }
.gx-story-copy, .gx-story-taxonomies, .gx-story .gx-comments { max-width: 48rem; margin-inline: auto; }
.gx-story-copy { font-size: clamp(1.0625rem, 1rem + .2vw, 1.1875rem); line-height: 1.8; overflow-wrap: anywhere; display: flow-root; }
.gx-story-copy > :first-child { margin-top: 0; }
.gx-story-copy h2 { font-size: clamp(1.75rem, 2.5vw, 2.5rem); margin-top: 2.5rem; }
.gx-story-copy h3 { font-size: 1.6rem; margin-top: 2rem; }
.gx-story-copy a, .gx-story-taxonomies a { color: var(--color-primary); text-decoration: underline; }
.gx-story-copy img, .gx-story-copy figure { max-width: 100%; border-radius: 0; }
.gx-story-copy img { height: auto; }
.gx-story-copy blockquote { margin-inline: 0; padding: 1rem 1.5rem; border-left: 3px solid var(--color-primary); border-radius: 0; background: var(--color-bg-soft); }
.gx-story-copy pre, .gx-story-copy .wp-block-table { max-width: 100%; overflow-x: auto; }
.gx-story-copy iframe { max-width: 100%; }
.gx-story-pages { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
.gx-story-pages .post-page-numbers { display: grid; place-items: center; min-width: 44px; min-height: 44px; border: 1px solid var(--color-border); }
.gx-story-pages .current { background: var(--color-primary); color: var(--gx-ink); }
.gx-story-taxonomies { margin-top: 3rem; padding-block: 1.5rem; border-block: 1px solid var(--color-border); }
.gx-story-taxonomies > div { display: grid; grid-template-columns: 8rem minmax(0, 1fr); gap: 1rem; padding-block: .4rem; }
.gx-story-taxonomies > div > span { color: var(--color-muted); }
.gx-story-taxonomies a { display: inline-block; padding-block: .25rem; overflow-wrap: anywhere; }
.gx-story-neighbors { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3rem; margin-top: clamp(3rem, 6vw, 6rem); padding-block: 2rem; border-block: 1px solid var(--color-border); }
.gx-story-neighbor { display: block; color: var(--color-text); text-decoration: none; min-width: 0; }
.gx-story-neighbor--next { grid-column: 2; }
.gx-story-neighbor__direction { display: flex; align-items: center; gap: .65rem; color: var(--color-muted); font-size: var(--gx-text-small); margin-bottom: 1.25rem; }
.gx-story-neighbor__direction .gx-icon { color: var(--color-primary); }
.gx-story-neighbor__body { display: flex; align-items: center; gap: 1.25rem; font-family: var(--gx-font-display); font-size: clamp(1.5rem, 2vw, 2rem); line-height: 1.15; overflow-wrap: anywhere; }
.gx-story-neighbor__body img { width: 96px; height: 80px; flex: 0 0 96px; object-fit: cover; border-radius: 0; }
.gx-story-neighbor:hover .gx-story-neighbor__body { color: var(--color-primary); }
.gx-story .gx-comments { margin-top: 4rem; background: transparent; border: 0; box-shadow: none; }
.gx-story .gx-comments__inner { padding: 0; }
.gx-story .gx-comment-list .comment-body { border: 0; border-bottom: 1px solid var(--color-border); padding: 1.5rem 0; background: transparent; border-radius: 0; }
.gx-story .gx-comment-list .comment-reply-link { border: 0; padding: .5rem 0; background: transparent; color: var(--color-primary); text-decoration: underline; }
.gx-story .gx-comment-form input:not([type=submit]):not([type=checkbox]), .gx-story .gx-comment-form textarea, .gx-story .post-password-form input[type=password] { border: 1px solid var(--color-border); border-radius: 0; color: var(--color-text); background: var(--color-bg-soft); padding: .75rem; max-width: 100%; }
.gx-story .post-password-form input[type=submit] { border: 0; background: var(--color-primary); color: var(--gx-ink); padding: .75rem 1.25rem; cursor: pointer; }
@media (max-width: 991px) {
  .gx-journal-tools { align-items: stretch; flex-direction: column; gap: .75rem; }
  .gx-journal-search { flex-basis: auto; width: 100%; }
  .gx-journal-card--featured { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
}
@media (max-width: 599px) {
  .gx-journal-grid, .gx-journal-card--featured, .gx-story-neighbors { grid-template-columns: minmax(0, 1fr); }
  .gx-journal-card--featured .gx-journal-card__image img { aspect-ratio: 16 / 9; }
  .gx-journal-card--featured h2 { font-size: 2rem; }
  .gx-journal-topics { gap: .25rem 1.25rem; }
  .gx-story-neighbors { gap: 2rem; }
  .gx-story-neighbor--next { grid-column: auto; }
  .gx-story-neighbor + .gx-story-neighbor { border-top: 1px solid var(--color-border); padding-top: 2rem; }
  .gx-story-taxonomies > div { grid-template-columns: minmax(0, 1fr); gap: .1rem; }
}
