/* Card-grid index for News, category/tag archives and search.
   Blocksy already outputs boxed cards with data-layout=grid, but the child
   theme header no longer prints data-prefix="blog", so the 3/2/1 column
   variables never applied and the listing rendered as a single column. */

/* Align the heading/intro and the card grid to the same 1200px wrap. */
body.blog .bn-archive-hero .wrap,
body.archive .bn-archive-hero .wrap,
body.search .bn-archive-hero .wrap,
body.blog .ct-container,
body.archive .ct-container,
body.search .ct-container{
  max-width:1200px;
  width:100%;
  margin-left:auto;
  margin-right:auto;
  padding-left:28px;
  padding-right:28px;
  box-sizing:border-box;
}

.bn-archive-intro{max-width:820px;margin:14px 0 0;font:400 16.5px/1.6 var(--bfont);color:var(--ink)}
.bn-archive-intro p{margin:0 0 12px}
.bn-archive-intro p:last-child{margin-bottom:0}
.bn-archive-intro h2{font:700 clamp(20px,3vw,26px)/1.25 var(--hfont);color:var(--navy);margin:0 0 12px;letter-spacing:-.01em}
.bn-archive-intro ul{margin:0 0 12px;padding-left:1.2em}
.bn-archive-intro a{color:var(--accent, var(--red));text-decoration:underline;text-underline-offset:.15em}

body.blog .ct-container,
body.archive .ct-container,
body.search .ct-container{
  padding-top:28px;
  padding-bottom:48px;
}

/* 3 / 2 / 1 columns — do not depend on Blocksy data-prefix. */
body.blog .entries[data-layout=grid],
body.archive .entries[data-layout=grid],
body.search .entries[data-layout=grid]{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:1.35rem !important;
  --grid-template-columns:1fr;
}
@media (min-width:640px){
  body.blog .entries[data-layout=grid],
  body.archive .entries[data-layout=grid],
  body.search .entries[data-layout=grid]{
    grid-template-columns:repeat(2, minmax(0,1fr)) !important;
    --grid-template-columns:repeat(2, minmax(0,1fr));
  }
}
@media (min-width:1024px){
  body.blog .entries[data-layout=grid],
  body.archive .entries[data-layout=grid],
  body.search .entries[data-layout=grid]{
    grid-template-columns:repeat(3, minmax(0,1fr)) !important;
    --grid-template-columns:repeat(3, minmax(0,1fr));
  }
}

body.blog .entries .entry-card,
body.archive .entries .entry-card,
body.search .entries .entry-card{
  display:flex;
  flex-direction:column;
  height:100%;
  min-height:0 !important;
  padding:0 !important;
  overflow:hidden;
  background:#fff;
  border:1px solid var(--line);
  border-top:5px solid var(--accent, var(--red));
  border-radius:var(--r, 18px);
  box-shadow:0 2px 10px rgba(6,23,34,.06);
  transition:transform .15s, box-shadow .15s;
}
body.blog .entries .entry-card:hover,
body.archive .entries .entry-card:hover,
body.search .entries .entry-card:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 22px rgba(6,23,34,.12);
}

/* Featured image first, then category, title, date, excerpt, Read more.
   DOM order stays as Blocksy outputs it; visual order is via flex. */
body.blog .entries .entry-card > .ct-media-container,
body.archive .entries .entry-card > .ct-media-container,
body.search .entries .entry-card > .ct-media-container{order:0}
body.blog .entries .entry-card > .entry-meta[data-id="meta_1"],
body.archive .entries .entry-card > .entry-meta[data-id="meta_1"],
body.search .entries .entry-card > .entry-meta[data-id="meta_1"]{order:1;padding:1rem 1.15rem 0;margin:0}
body.blog .entries .entry-card > .entry-title,
body.archive .entries .entry-card > .entry-title,
body.search .entries .entry-card > .entry-title{order:2;padding:0 1.15rem;margin:.35rem 0 .4rem}
body.blog .entries .entry-card > .entry-meta[data-id="meta_2"],
body.archive .entries .entry-card > .entry-meta[data-id="meta_2"],
body.search .entries .entry-card > .entry-meta[data-id="meta_2"]{order:3;padding:0 1.15rem;margin:0 0 .45rem}
body.blog .entries .entry-card > .entry-excerpt,
body.archive .entries .entry-card > .entry-excerpt,
body.search .entries .entry-card > .entry-excerpt{
  order:4;
  padding:0 1.15rem 1.2rem;
  margin:0;
  flex:1;
  display:flex;
  flex-direction:column;
}

/* Show the full featured image. Do not force a ratio and do not crop. */
body.blog .entries .entry-card .ct-media-container,
body.archive .entries .entry-card .ct-media-container,
body.search .entries .entry-card .ct-media-container,
body.blog .entries .entry-card .ct-media-container.boundless-image,
body.archive .entries .entry-card .ct-media-container.boundless-image,
body.search .entries .entry-card .ct-media-container.boundless-image{
  position:relative !important;
  inset:auto !important;
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  height:auto !important;
  margin:0 !important;
  aspect-ratio:auto !important;
  overflow:hidden;
  background:var(--mist);
  border-radius:0 !important;
  --theme-object-fit:contain;
}
body.blog .entries .entry-card .ct-media-container img,
body.archive .entries .entry-card .ct-media-container img,
body.search .entries .entry-card .ct-media-container img{
  aspect-ratio:auto !important;
  width:100% !important;
  height:auto !important;
  max-height:none !important;
  object-fit:contain !important;
  object-position:center center !important;
  transform:none !important;
  background:var(--mist);
  border-radius:0 !important;
}

/* Tidy fallback when a post has no featured image. */
body.blog .entries .entry-card:not(.has-post-thumbnail)::before,
body.archive .entries .entry-card:not(.has-post-thumbnail)::before,
body.search .entries .entry-card:not(.has-post-thumbnail)::before{
  content:"";
  order:0;
  display:block;
  width:100%;
  aspect-ratio:16/9;
  background:linear-gradient(180deg, rgba(16,34,47,.04), rgba(16,34,47,.10)), var(--sage-50, var(--mist));
  border-bottom:1px solid var(--line);
}

body.blog .entries .entry-card .entry-title,
body.archive .entries .entry-card .entry-title,
body.search .entries .entry-card .entry-title{
  font:700 1.15rem/1.3 var(--hfont);
  color:var(--navy);
  letter-spacing:-.01em;
}
body.blog .entries .entry-card .entry-title a,
body.archive .entries .entry-card .entry-title a,
body.search .entries .entry-card .entry-title a{
  text-decoration:none;
  color:var(--navy);
}
body.blog .entries .entry-card .entry-title a:hover,
body.archive .entries .entry-card .entry-title a:hover,
body.search .entries .entry-card .entry-title a:hover{
  color:var(--accent, var(--red));
}

/* One category label; hide the author to keep the card to category, title, date. */
body.blog .entries .entry-card .meta-categories,
body.archive .entries .entry-card .meta-categories,
body.search .entries .entry-card .meta-categories{
  font-size:0;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--accent, var(--red));
}
body.blog .entries .entry-card .meta-categories a:first-of-type,
body.archive .entries .entry-card .meta-categories a:first-of-type,
body.search .entries .entry-card .meta-categories a:first-of-type{
  font:700 12px/1 var(--hfont);
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--accent, var(--red));
  text-decoration:none;
}
body.blog .entries .entry-card .meta-categories a:not(:first-of-type),
body.archive .entries .entry-card .meta-categories a:not(:first-of-type),
body.search .entries .entry-card .meta-categories a:not(:first-of-type){display:none}
body.blog .entries .entry-card .meta-author,
body.archive .entries .entry-card .meta-author,
body.search .entries .entry-card .meta-author,
body.blog .entries .entry-card .entry-meta .ct-meta-element-author,
body.archive .entries .entry-card .entry-meta .ct-meta-element-author,
body.search .entries .entry-card .entry-meta .ct-meta-element-author{display:none !important}

body.blog .entries .entry-card .entry-meta,
body.archive .entries .entry-card .entry-meta,
body.search .entries .entry-card .entry-meta{
  font:400 .82rem/1.3 var(--bfont);
  color:var(--muted);
  text-transform:none;
  letter-spacing:0;
}
body.blog .entries .entry-card .entry-excerpt,
body.archive .entries .entry-card .entry-excerpt,
body.search .entries .entry-card .entry-excerpt{
  font:400 .95rem/1.5 var(--bfont);
  color:var(--muted);
}
body.blog .entries .entry-card .entry-excerpt p,
body.archive .entries .entry-card .entry-excerpt p,
body.search .entries .entry-card .entry-excerpt p{margin:0 0 .85rem}

.bn-read-more{
  margin-top:auto;
  font:600 .95rem/1.3 var(--hfont);
  color:var(--accent, var(--red));
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  gap:.35rem;
}
.bn-read-more:hover{text-decoration:underline;text-underline-offset:.15em}

body.blog .ct-pagination,
body.archive .ct-pagination,
body.search .ct-pagination{
  margin-top:2rem;
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  justify-content:center;
  align-items:center;
}
body.blog .ct-pagination .page-numbers,
body.archive .ct-pagination .page-numbers,
body.search .ct-pagination .page-numbers{
  min-width:2.4rem;
  height:2.4rem;
  padding:.35rem .7rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--line);
  border-radius:10px;
  text-decoration:none;
  color:var(--navy);
  font:600 15px/1 var(--hfont);
}
body.blog .ct-pagination .page-numbers.current,
body.archive .ct-pagination .page-numbers.current,
body.search .ct-pagination .page-numbers.current{
  background:var(--accent, var(--red));
  border-color:var(--accent, var(--red));
  color:#fff;
}

@media (max-width:599px){
  body.blog .bn-archive-hero .wrap,
  body.archive .bn-archive-hero .wrap,
  body.search .bn-archive-hero .wrap,
  body.blog .ct-container,
  body.archive .ct-container,
  body.search .ct-container{
    padding-left:20px;
    padding-right:20px;
  }
}

/* Blocksy's own Read more layer (entry-button sibling, not inside the excerpt). */
body.blog .entries .entry-card > .entry-button,
body.archive .entries .entry-card > .entry-button,
body.search .entries .entry-card > .entry-button{
  order:5;
  margin:auto 1.15rem 1.2rem;
  padding:0;
  display:inline-flex;
  align-items:center;
  width:fit-content;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  font:600 .95rem/1.3 var(--hfont);
  color:var(--accent, var(--red)) !important;
  text-decoration:none;
}
body.blog .entries .entry-card > .entry-button:hover,
body.archive .entries .entry-card > .entry-button:hover,
body.search .entries .entry-card > .entry-button:hover{
  text-decoration:underline;
  text-underline-offset:.15em;
  background:transparent !important;
}
body.blog .entries .entry-card .meta-comments,
body.archive .entries .entry-card .meta-comments,
body.search .entries .entry-card .meta-comments{display:none !important}
