/* ==========================================================================
   Almanac — Core block-library coverage
   ==========================================================================
   Load AFTER assets/css/almanac.css (token base) and alongside
   assets/css/almanac-overrides.css. On-brand styling for the core blocks that
   shipped with raw WP/browser defaults — every one of these had zero bespoke
   rule before this sheet. Tokens only; no hardcoded values where a token
   exists. Solid-yellow surfaces pin their ink to var(--almanac-on-yellow)
   so they pass contrast in BOTH light and dark mode.

   Sections:
      1. Search — inline core/search block (.almanac-search)
      2. Cover
      3. Media & text
      4. Gallery
      5. File (download button + filename)
      6. Calendar
      7. Details (outside the post body)
      8. Footnotes
      9. Verse
     10. Social links
     11. Tag cloud
     12. Archives / Categories / Page list (incl. count text)
     13. Latest posts / Latest comments / RSS
     14. Post-navigation-link
     15. Query no-results
     16. Comments — reply/date/edit links, comments-pagination, avatar
     17. Embed / Video / Audio frames
     18. Buttons — plain core button hover/focus + disabled/busy
     19. Story card — core/group is-style-almanac-card
   ========================================================================== */


/* ----------------------------------------------------------------------------
   1. Search — inline core/search block.
   The render_block_core/search filter tags the wrapper with .almanac-search.
   Match the theme's input/button/yellow-focus language (the header overlay
   uses a separate .almanac-search-form). button-inside layout preserved.
   ---------------------------------------------------------------------------- */
.wp-block-search.almanac-search { max-width: 32rem; }
.wp-block-search.almanac-search .wp-block-search__label {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--almanac-fg-secondary);
  margin: 0 0 var(--almanac-space-2xs);
}
.wp-block-search.almanac-search .wp-block-search__input {
  padding: 0.625rem 0.875rem;
  font: inherit;
  font-size: 0.9375rem;
  background: var(--almanac-bg-paper);
  color: var(--almanac-fg-primary);
  border: 1px solid var(--almanac-border-strong);
  border-radius: var(--almanac-radius-md);
}
.wp-block-search.almanac-search .wp-block-search__input:focus {
  outline: none;
  border-color: var(--almanac-yellow);
  box-shadow: var(--almanac-shadow-focus);
}
.wp-block-search.almanac-search .wp-block-search__button {
  margin-left: var(--almanac-space-2xs);
  padding: 0 var(--almanac-space-md);
  background: var(--almanac-yellow);
  color: var(--almanac-on-yellow);
  border: 1px solid var(--almanac-yellow);
  border-radius: var(--almanac-radius-md);
  font-weight: 600;
  cursor: pointer;
  transition: background var(--almanac-duration) var(--almanac-ease),
              border-color var(--almanac-duration) var(--almanac-ease);
}
.wp-block-search.almanac-search .wp-block-search__button:hover {
  background: var(--almanac-yellow-deep);
  border-color: var(--almanac-yellow-deep);
}
/* button-inside: tighten the input/button so they share one bordered shell. */
.wp-block-search.almanac-search.wp-block-search__button-inside .wp-block-search__inside-wrapper {
  border: 1px solid var(--almanac-border-strong);
  border-radius: var(--almanac-radius-md);
  padding: var(--almanac-space-3xs);
  background: var(--almanac-bg-paper);
}
.wp-block-search.almanac-search.wp-block-search__button-inside .wp-block-search__input {
  border: 0;
  background: transparent;
}
.wp-block-search.almanac-search.wp-block-search__button-inside .wp-block-search__inside-wrapper:focus-within {
  border-color: var(--almanac-yellow);
  box-shadow: var(--almanac-shadow-focus);
}
.wp-block-search.almanac-search.wp-block-search__button-inside .wp-block-search__input:focus {
  box-shadow: none;
}


/* ----------------------------------------------------------------------------
   2. Cover — rounded, bordered frame; overlay text pinned to a dark ink so it
   never inherits a near-white fg-primary in dark mode.
   ---------------------------------------------------------------------------- */
.wp-block-cover,
.wp-block-cover-image {
  border-radius: var(--almanac-radius-md);
  overflow: clip;
}
.wp-block-cover .wp-block-cover__inner-container,
.wp-block-cover-image .wp-block-cover__inner-container {
  color: #F5EFE2; /* light ink on the dark dimming overlay — fixed in both modes */
}


/* ----------------------------------------------------------------------------
   3. Media & text — rounded media, doc-grade vertical rhythm in the text col.
   ---------------------------------------------------------------------------- */
.wp-block-media-text .wp-block-media-text__media img,
.wp-block-media-text .wp-block-media-text__media video {
  border-radius: var(--almanac-radius-md);
}
.wp-block-media-text .wp-block-media-text__content {
  padding-inline: var(--almanac-space-lg);
}
.wp-block-media-text .wp-block-media-text__content > * + * {
  margin-top: var(--almanac-space-sm);
}


/* ----------------------------------------------------------------------------
   4. Gallery — consistent gap + framed figures with shared caption color.
   ---------------------------------------------------------------------------- */
.wp-block-gallery.has-nested-images {
  gap: var(--almanac-space-sm);
}
.wp-block-gallery.has-nested-images figure.wp-block-image img {
  border: 1px solid var(--almanac-border);
  border-radius: var(--almanac-radius-md);
}
.wp-block-gallery .wp-block-image figcaption {
  color: var(--almanac-fg-tertiary);
}


/* ----------------------------------------------------------------------------
   5. File — download button reuses the outline-button look; mono filename.
   ---------------------------------------------------------------------------- */
.wp-block-file {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--almanac-space-sm);
  padding: var(--almanac-space-sm) var(--almanac-space-md);
  background: var(--almanac-bg-cream);
  border: 1px solid var(--almanac-border);
  border-radius: var(--almanac-radius-md);
}
.wp-block-file a:not(.wp-block-file__button) {
  font-family: var(--almanac-font-mono);
  font-size: 0.9375rem;
  color: var(--almanac-fg-primary);
}
.wp-block-file .wp-block-file__button {
  background: transparent;
  color: var(--almanac-fg-primary);
  border: 1px solid var(--almanac-border-strong);
  border-radius: var(--almanac-radius-md);
  padding: var(--almanac-space-2xs) var(--almanac-space-md);
  font-weight: 600;
  text-decoration: none;
  transition: background var(--almanac-duration) var(--almanac-ease),
              border-color var(--almanac-duration) var(--almanac-ease);
}
.wp-block-file .wp-block-file__button:hover {
  background: var(--almanac-yellow);
  color: var(--almanac-on-yellow);
  border-color: var(--almanac-yellow);
}
.wp-block-file .wp-block-file__button:focus-visible {
  outline: 3px solid var(--almanac-yellow);
  outline-offset: 2px;
}


/* ----------------------------------------------------------------------------
   6. Calendar — cream header row, yellow-soft "today".
   ---------------------------------------------------------------------------- */
.wp-block-calendar table {
  border-collapse: collapse;
  width: 100%;
  font-size: 0.875rem;
}
.wp-block-calendar caption {
  caption-side: top;
  font-weight: 700;
  color: var(--almanac-fg-secondary);
  padding-bottom: var(--almanac-space-2xs);
}
.wp-block-calendar th {
  background: var(--almanac-bg-cream);
  color: var(--almanac-fg-secondary);
  border: 1px solid var(--almanac-border);
  padding: var(--almanac-space-3xs) var(--almanac-space-2xs);
}
.wp-block-calendar td {
  border: 1px solid var(--almanac-border-faint);
  padding: var(--almanac-space-3xs) var(--almanac-space-2xs);
  text-align: center;
}
.wp-block-calendar td#today {
  background: var(--almanac-yellow-soft);
  font-weight: 700;
}
.wp-block-calendar a { font-weight: 600; }
.wp-block-calendar nav.wp-calendar-nav {
  display: flex;
  justify-content: space-between;
  margin-top: var(--almanac-space-2xs);
  font-size: 0.8125rem;
}


/* ----------------------------------------------------------------------------
   7. Details (outside the post body) — bordered surface, ink summary.
   (In-body details get their own treatment in the prose sheets.)
   ---------------------------------------------------------------------------- */
.wp-block-details {
  border: 1px solid var(--almanac-border);
  border-radius: var(--almanac-radius-md);
  background: var(--almanac-bg-cream);
  padding: var(--almanac-space-sm) var(--almanac-space-md);
}
.wp-block-details > summary {
  font-weight: 600;
  color: var(--almanac-fg-primary);
  cursor: pointer;
  list-style-position: inside;
}
.wp-block-details > summary:focus-visible {
  outline: 3px solid var(--almanac-yellow);
  outline-offset: 2px;
}
.wp-block-details[open] > summary {
  margin-bottom: var(--almanac-space-xs);
  border-bottom: 1px solid var(--almanac-border-faint);
  padding-bottom: var(--almanac-space-2xs);
}


/* ----------------------------------------------------------------------------
   8. Footnotes — small tertiary ordered list with branded backref.
   ---------------------------------------------------------------------------- */
.wp-block-footnotes {
  margin-top: var(--almanac-space-2xl);
  padding-top: var(--almanac-space-md);
  border-top: 1px solid var(--almanac-border);
  font-size: 0.875rem;
  color: var(--almanac-fg-tertiary);
}
.wp-block-footnotes li { margin-bottom: var(--almanac-space-2xs); }
.wp-block-footnotes li:target { background: var(--almanac-yellow-soft); }
.wp-block-footnotes .fn-backref {
  color: var(--almanac-tan-deep);
  text-decoration: none;
  margin-left: var(--almanac-space-3xs);
}
.wp-block-footnotes .fn-backref:hover { text-decoration: underline; }


/* ----------------------------------------------------------------------------
   9. Verse — mono framed block, preserves whitespace.
   ---------------------------------------------------------------------------- */
.wp-block-verse {
  font-family: var(--almanac-font-code);
  font-size: 0.9375rem;
  line-height: 1.7;
  background: var(--almanac-bg-cream);
  border-left: 3px solid var(--almanac-border-strong);
  border-radius: var(--almanac-radius-sm);
  padding: var(--almanac-space-md) var(--almanac-space-lg);
  color: var(--almanac-fg-primary);
}


/* ----------------------------------------------------------------------------
   10. Social links — circular tan-bordered icons w/ transition + focus ring.
   ---------------------------------------------------------------------------- */
.wp-block-social-links { gap: var(--almanac-space-xs); }
.wp-block-social-links .wp-social-link {
  border: 1px solid var(--almanac-tan);
  border-radius: var(--almanac-radius-pill);
  background: var(--almanac-bg-canvas);
  color: var(--almanac-fg-primary);
  transition: background var(--almanac-duration) var(--almanac-ease),
              border-color var(--almanac-duration) var(--almanac-ease),
              transform var(--almanac-duration) var(--almanac-ease);
}
.wp-block-social-links:not(.is-style-logos-only) .wp-social-link {
  background: var(--almanac-bg-canvas);
}
.wp-block-social-links .wp-social-link:hover {
  background: var(--almanac-yellow);
  border-color: var(--almanac-yellow);
  transform: translateY(-1px);
}
.wp-block-social-links .wp-social-link:hover a,
.wp-block-social-links .wp-social-link:hover svg {
  color: var(--almanac-on-yellow);
  fill: var(--almanac-on-yellow);
}
.wp-block-social-links .wp-social-link a:focus-visible {
  outline: 3px solid var(--almanac-yellow);
  outline-offset: 2px;
}


/* ----------------------------------------------------------------------------
   11. Tag cloud — pill chips, tan-deep hover.
   ---------------------------------------------------------------------------- */
.wp-block-tag-cloud {
  display: flex;
  flex-wrap: wrap;
  gap: var(--almanac-space-2xs);
}
.wp-block-tag-cloud a {
  display: inline-block;
  padding: var(--almanac-space-3xs) var(--almanac-space-sm);
  background: var(--almanac-bg-cream);
  border: 1px solid var(--almanac-border);
  border-radius: var(--almanac-radius-pill);
  color: var(--almanac-fg-secondary);
  text-decoration: none;
  transition: background var(--almanac-duration) var(--almanac-ease),
              border-color var(--almanac-duration) var(--almanac-ease),
              color var(--almanac-duration) var(--almanac-ease);
}
.wp-block-tag-cloud a:hover {
  background: var(--almanac-yellow-soft);
  border-color: var(--almanac-tan-deep);
  color: var(--almanac-fg-primary);
}


/* ----------------------------------------------------------------------------
   12. Archives / Categories / Page list — divided rows, display titles,
   muted bracketed count so it isn't bare.
   ---------------------------------------------------------------------------- */
.wp-block-archives,
.wp-block-categories,
.wp-block-page-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.wp-block-archives li,
.wp-block-categories li,
.wp-block-page-list li {
  border-bottom: 1px solid var(--almanac-border-faint);
}
.wp-block-archives li a,
.wp-block-categories li a,
.wp-block-page-list li > a {
  display: inline-block;
  padding: var(--almanac-space-2xs) 0;
  font-family: var(--almanac-font-display);
  color: var(--almanac-fg-primary);
  text-decoration: none;
  transition: color var(--almanac-duration) var(--almanac-ease);
}
.wp-block-archives li a:hover,
.wp-block-categories li a:hover,
.wp-block-page-list li > a:hover {
  color: var(--almanac-tan-deep);
}
/* The (n) post count beside each term — was bare, now muted. */
.wp-block-categories .wp-block-categories__count,
.wp-block-archives li .wp-block-archives__count {
  color: var(--almanac-fg-tertiary);
  font-size: 0.8125rem;
  margin-left: var(--almanac-space-3xs);
}
/* Dropdown variants — give the <select> the theme input frame. */
.wp-block-archives select,
.wp-block-categories select {
  padding: var(--almanac-space-2xs) var(--almanac-space-sm);
  background: var(--almanac-bg-paper);
  color: var(--almanac-fg-primary);
  border: 1px solid var(--almanac-border-strong);
  border-radius: var(--almanac-radius-md);
  font: inherit;
}


/* ----------------------------------------------------------------------------
   13. Latest posts / Latest comments / RSS — divided rows, display titles,
   muted meta.
   ---------------------------------------------------------------------------- */
.wp-block-latest-posts,
.wp-block-latest-comments,
.wp-block-rss {
  list-style: none;
  margin: 0;
  padding: 0;
}
.wp-block-latest-posts > li,
.wp-block-latest-comments > li,
.wp-block-rss > li {
  border-bottom: 1px solid var(--almanac-border-faint);
  padding: var(--almanac-space-sm) 0;
}
.wp-block-latest-posts__post-title,
.wp-block-rss .wp-block-rss__item-title a {
  font-family: var(--almanac-font-display);
  font-weight: 600;
  color: var(--almanac-fg-primary);
  text-decoration: none;
}
.wp-block-latest-posts__post-title:hover,
.wp-block-rss .wp-block-rss__item-title a:hover {
  color: var(--almanac-tan-deep);
}
.wp-block-latest-posts__post-date,
.wp-block-latest-posts__post-author,
.wp-block-latest-comments__comment-meta,
.wp-block-latest-comments__comment-date,
.wp-block-rss .wp-block-rss__item-publish-date,
.wp-block-rss .wp-block-rss__item-author {
  display: block;
  font-size: 0.8125rem;
  color: var(--almanac-fg-tertiary);
}
.wp-block-latest-posts__post-excerpt,
.wp-block-latest-comments__comment-excerpt,
.wp-block-rss .wp-block-rss__item-excerpt {
  color: var(--almanac-fg-secondary);
  font-size: 0.9375rem;
}
/* Grid variants keep the gap consistent. */
.wp-block-latest-posts.is-grid { gap: var(--almanac-space-lg); }


/* ----------------------------------------------------------------------------
   14. Post navigation link — bordered pill w/ hover transition.
   ---------------------------------------------------------------------------- */
.wp-block-post-navigation-link {
  display: inline-block;
}
.wp-block-post-navigation-link a {
  display: inline-flex;
  align-items: center;
  gap: var(--almanac-space-2xs);
  padding: var(--almanac-space-2xs) var(--almanac-space-md);
  background: var(--almanac-bg-canvas);
  border: 1px solid var(--almanac-border);
  border-radius: var(--almanac-radius-pill);
  color: var(--almanac-fg-primary);
  text-decoration: none;
  font-weight: 600;
  transition: background var(--almanac-duration) var(--almanac-ease),
              border-color var(--almanac-duration) var(--almanac-ease);
}
.wp-block-post-navigation-link a:hover {
  background: var(--almanac-yellow-soft);
  border-color: var(--almanac-yellow);
}


/* ----------------------------------------------------------------------------
   15. Query no-results — center the empty-state copy, muted tone.
   (Listing templates render the styled .almanac-empty inside this block; this
   covers any bare core fallback so it still reads as intentional.)
   ---------------------------------------------------------------------------- */
.wp-block-query-no-results {
  padding: var(--almanac-space-2xl) 0;
  text-align: center;
  color: var(--almanac-fg-secondary);
}


/* ----------------------------------------------------------------------------
   16. Comments — reply/date/edit links, comments-pagination, circular avatar.
   ---------------------------------------------------------------------------- */
.wp-block-comment-reply-link a,
.wp-block-comment-edit-link a {
  display: inline-block;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--almanac-tan-deep);
  text-decoration: none;
  transition: color var(--almanac-duration) var(--almanac-ease);
}
.wp-block-comment-reply-link a:hover,
.wp-block-comment-edit-link a:hover {
  color: var(--almanac-fg-primary);
  text-decoration: underline;
}
.wp-block-comment-date a {
  font-size: 0.8125rem;
  color: var(--almanac-fg-tertiary);
  text-decoration: none;
}
.wp-block-comment-date a:hover { color: var(--almanac-fg-secondary); }

/* Comments pagination — reuse the .page-numbers pill look, scoped here. */
.wp-block-comments-pagination {
  display: flex;
  align-items: center;
  gap: var(--almanac-space-sm);
  margin-top: var(--almanac-space-xl);
}
.wp-block-comments-pagination .page-numbers,
.wp-block-comments-pagination .wp-block-comments-pagination-previous,
.wp-block-comments-pagination .wp-block-comments-pagination-next,
.wp-block-comments-pagination .wp-block-comments-pagination-numbers .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 0.625rem;
  background: var(--almanac-bg-canvas);
  border: 1px solid var(--almanac-border);
  border-radius: var(--almanac-radius-md);
  color: var(--almanac-fg-primary);
  text-decoration: none;
  font-weight: 600;
  font-size: 0.9375rem;
  transition: background var(--almanac-duration) var(--almanac-ease),
              border-color var(--almanac-duration) var(--almanac-ease);
}
.wp-block-comments-pagination .page-numbers:hover,
.wp-block-comments-pagination .wp-block-comments-pagination-previous:hover,
.wp-block-comments-pagination .wp-block-comments-pagination-next:hover {
  background: var(--almanac-yellow-soft);
  border-color: var(--almanac-yellow);
}
.wp-block-comments-pagination .page-numbers.current {
  background: var(--almanac-fg-primary);
  color: var(--almanac-fg-inverted);
  border-color: var(--almanac-fg-primary);
}

/* Comment avatar — circular (matches author-bio + byline avatars). */
.almanac-comment-avatar img,
.wp-block-comment-template .wp-block-avatar img {
  border-radius: var(--almanac-radius-pill);
  display: block;
}


/* ----------------------------------------------------------------------------
   17. Embed / Video / Audio — framed media with shared caption color.
   ---------------------------------------------------------------------------- */
.wp-block-embed .wp-block-embed__wrapper,
.wp-block-video video,
.wp-block-embed iframe {
  border-radius: var(--almanac-radius-md);
  overflow: clip;
}
.wp-block-video,
.wp-block-embed {
  border: 1px solid var(--almanac-border);
  border-radius: var(--almanac-radius-md);
  padding: var(--almanac-space-3xs);
  background: var(--almanac-bg-canvas);
}
.wp-block-audio audio {
  width: 100%;
}
.wp-block-embed figcaption,
.wp-block-video figcaption,
.wp-block-audio figcaption {
  color: var(--almanac-fg-tertiary);
}


/* ----------------------------------------------------------------------------
   18. Buttons — plain core button (no almanac style variant) gets a brand
   hover + focus, and a clear disabled/busy state.
   ---------------------------------------------------------------------------- */
.wp-block-button:not(.is-style-almanac-primary):not(.is-style-almanac-outline):not(.is-style-almanac-ghost)
  .wp-block-button__link:hover {
  filter: brightness(0.96);
}
.wp-block-button__link:focus-visible {
  outline: 3px solid var(--almanac-yellow);
  outline-offset: 2px;
}
/* Disabled / busy (JS sets disabled / aria-busy during submit). */
.wp-block-button__link[disabled],
.wp-block-button__link[aria-disabled="true"],
.wp-block-button.is-busy .wp-block-button__link,
.almanac-btn[disabled],
.almanac-btn[aria-busy="true"] {
  opacity: 0.6;
  cursor: not-allowed;
  pointer-events: none;
}


/* ----------------------------------------------------------------------------
   19. Story card — core/group "is-style-almanac-card" (registered in
   functions.php). A surface card so the registered style isn't a no-op.
   ---------------------------------------------------------------------------- */
.wp-block-group.is-style-almanac-card {
  background: var(--almanac-bg-canvas);
  border: 1px solid var(--almanac-border);
  border-radius: var(--almanac-radius-md);
  padding: var(--almanac-space-lg);
  box-shadow: var(--almanac-shadow-card);
}


/* ----------------------------------------------------------------------------
   Reduced motion — drop the hover transforms/transitions added above.
   ---------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .wp-block-search.almanac-search .wp-block-search__button,
  .wp-block-file .wp-block-file__button,
  .wp-block-social-links .wp-social-link,
  .wp-block-tag-cloud a,
  .wp-block-archives li a,
  .wp-block-categories li a,
  .wp-block-page-list li > a,
  .wp-block-post-navigation-link a,
  .wp-block-comment-reply-link a,
  .wp-block-comment-edit-link a,
  .wp-block-comments-pagination .page-numbers {
    transition: none;
  }
  .wp-block-social-links .wp-social-link:hover { transform: none; }
}
