/* Reading and browsing surfaces share the site's light/dark color tokens. */
.layout-post .article-post, .layout-page .article-post, .hny-page-header, .hny-post-header {
  width: 100%; max-width: 900px; margin-left: auto; margin-right: auto; padding-left: 0; padding-right: 0;
}
.hny-page-header { margin-bottom: 22px; text-align: left; }
.hny-page-header .posttitle { margin-bottom: 0; text-align: left; }
.hny-author-note { display: flex; flex-wrap: wrap; gap: 4px 18px; max-width: 900px; margin: 28px auto; padding-top: 18px; border-top: 1px solid var(--hny-border); color: var(--hny-text-soft); font-size: .88rem; line-height: 1.8; }
.hny-author-note a { display: inline-block; padding: 4px 0; }
.hny-post-header { max-width: 900px; margin: 0 auto 22px; text-align: left; }
.hny-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 16px; color: var(--hny-text-soft); font-size: .9rem; }
.hny-breadcrumb a { padding: 5px 0; color: var(--hny-text-soft); text-decoration: none; }
.hny-breadcrumb a:hover { text-decoration: underline; }
.hny-post-header .posttitle { margin-bottom: 16px; text-align: left; overflow-wrap: anywhere; }
.hny-post-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 18px; color: var(--hny-text-soft); font-size: .88rem; line-height: 1.7; }
.hny-post-meta a { color: inherit; }
.hny-post-meta time { white-space: nowrap; }
.hny-price-context { max-width: 900px; margin: 0 auto 28px; padding: 16px 20px; background: var(--hny-surface); border: 1px solid var(--hny-border); border-radius: 12px; font-size: .92rem; line-height: 1.7; color: var(--hny-text-soft); }
.hny-price-context > p { margin: 0 0 7px; }
.hny-price-context strong { color: var(--hny-text); font-weight: 650; }
.hny-price-age { display: inline-block; margin-left: 10px; font-size: .82rem; }
.hny-price-context summary { width: fit-content; max-width: 100%; padding: 5px 0; cursor: pointer; color: var(--hny-text); font-weight: 600; }
.hny-price-context details p { margin: 10px 0; }
.hny-price-context details a { display: inline-block; padding: 5px 0; }
.hny-price-context summary:focus-visible, .hny-directory-group > summary:focus-visible { outline: 3px solid var(--hny-brand); outline-offset: 4px; border-radius: 3px; }
.hny-reading-related { margin: 40px auto 0; max-width: 1100px; padding-top: 28px; border-top: 1px solid var(--hny-border); }
.hny-reading-related h2 { margin: 0 0 14px; font-size: 1.35rem; line-height: 1.4; letter-spacing: -.02em; color: var(--hny-text); }
.hny-reading-related > ul { margin: 0 0 10px; padding-left: 22px; }
.hny-reading-related > ul a { display: inline-block; padding: 6px 0; line-height: 1.6; }
.hny-section-link { display: inline-block; padding: 7px 0; font-size: .95rem; line-height: 1.6; }
.hny-reading-section-heading { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 4px 20px; margin-bottom: 14px; }
.hny-reading-section-heading h2 { margin-bottom: 0; }
.hny-partner-events { margin: 32px auto; padding: 22px; background: var(--hny-surface); border: 1px solid var(--hny-border); border-radius: 14px; color: var(--hny-text); }
.hny-partner-events h2 { margin: 0 0 14px; font-size: 1.3rem; line-height: 1.4; }
.hny-partner-events ul { margin: 0; padding: 0; list-style: none; }
.hny-partner-events li { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 4px 16px; padding: 10px 0; border-bottom: 1px solid var(--hny-border); }
.hny-partner-events li[hidden], .hny-partner-events[hidden] { display: none; }
.hny-partner-events li a { flex: 1 1 220px; line-height: 1.6; }
.hny-event-date { color: var(--hny-text-soft); font-size: .86rem; white-space: nowrap; }
.hny-new-window { font-size: .8em; font-weight: 400; }
.hny-partner-events .hny-event-scope { margin: 14px 0 8px; color: var(--hny-text-soft); font-size: .9rem; line-height: 1.65; }
.hny-partner-events .hny-affiliate-note { margin: 0; color: var(--hny-text-soft); font-size: .8rem; line-height: 1.6; }
.hny-directory { max-width: 960px; margin: 0 auto 48px; }
.hny-directory-intro { max-width: 720px; color: var(--hny-text-soft); font-size: 1rem; line-height: 1.8; }
.hny-directory-link { margin: 16px 0 24px; font-size: .95rem; }
.hny-directory-link a { display: inline-block; padding: 5px 0; }
.hny-category-directory { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 24px 0; }
.hny-category-link { display: grid; grid-template-columns: 1fr auto; gap: 4px 14px; align-items: center; padding: 20px; border: 1px solid var(--hny-border); border-radius: 12px; color: var(--hny-text); background: var(--hny-surface); text-decoration: none; transition: border-color .15s ease, box-shadow .15s ease; }
.hny-category-link:hover { color: var(--hny-text); border-color: var(--hny-brand); text-decoration: none; box-shadow: 0 4px 16px rgba(0,0,0,.05); }
.hny-category-link:focus-visible { outline: 3px solid var(--hny-brand); outline-offset: 3px; }
.hny-category-name { font-size: 1.1rem; font-weight: 700; line-height: 1.5; }
.hny-category-count { grid-column: 1; color: var(--hny-text-soft); font-size: .85rem; line-height: 1.5; }
.hny-category-arrow { grid-column: 2; grid-row: 1 / span 2; color: var(--hny-text-soft); }
.hny-directory-group { margin: 12px 0; border: 1px solid var(--hny-border); border-radius: 12px; background: var(--hny-surface); overflow: visible; }
.hny-directory-group > summary { padding: 17px 20px; cursor: pointer; font-weight: 700; font-size: 1.06rem; color: var(--hny-text); line-height: 1.5; }
.hny-directory-group > summary .hny-count { margin-left: 10px; color: var(--hny-text-soft); font-size: .85rem; font-weight: 400; }
.hny-directory-group-body { padding: 0 20px 18px; border-top: 1px solid var(--hny-border); }
.hny-directory-group-body ul { margin: 8px 0 12px; padding-left: 20px; }
.hny-directory-group-body li { padding: 3px 0; }
.hny-directory-group-body li a { display: inline-block; padding: 5px 0; font-size: .98rem; line-height: 1.65; overflow-wrap: anywhere; }
@media (max-width: 700px) {
  .layout-post .article-post, .layout-page .article-post { font-size: 16px; }
  .hny-post-header { margin-bottom: 18px; }
  .hny-post-meta { gap: 4px 12px; font-size: .82rem; }
  .hny-price-context { padding: 14px 16px; font-size: .86rem; }
  .hny-price-age { display: block; margin: 2px 0 0; }
  .hny-reading-related { margin-top: 30px; padding-top: 22px; }
  .hny-reading-related h2 { font-size: 1.2rem; }
  .hny-partner-events { padding: 18px; }
  .hny-category-directory { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .hny-category-link { padding: 16px 14px; gap: 5px 8px; }
  .hny-category-name { font-size: 1rem; }
  .hny-category-count { font-size: .78rem; }
  .hny-directory-group > summary { padding: 16px; }
  .hny-directory-group-body { padding: 0 16px 16px; }
}
@media (max-width: 340px) { .hny-category-directory { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .hny-category-link { transition: none; } }
