/* ============================================================
   Noolberry — WordPress structural glue.

   noolberry.css is the vendored design system and must stay
   untouched. This file adds only what WordPress needs and the
   handoff did not cover: accessibility utilities, the header
   drawers, blog entries, pagination, comments, widgets.

   Rule: use the tokens from noolberry.css. Never introduce a
   new colour, font, or radius here.
   ============================================================ */

/* ---------- Accessibility utilities ------------------------ */
.screen-reader-text{
  border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;
  padding:0;position:absolute;white-space:nowrap;width:1px;
}
.screen-reader-text:focus{
  background:var(--surface-card);clip-path:none;color:var(--text-heading);
  display:block;font-size:13px;height:auto;left:var(--space-1);
  padding:var(--space-2) var(--space-3);position:fixed;top:var(--space-1);
  text-decoration:none;width:auto;z-index:100000;
  border-radius:var(--radius-sharp);box-shadow:var(--shadow-card);
}
:where(a,button,input,select,textarea):focus-visible{
  outline:2px solid var(--text-accent);outline-offset:2px;
}

/* ---------- Header drawers (menu + search) ----------------- */
.nb-toggle{background:none;border:0;padding:0;color:inherit;font:inherit}

.nb-drawer{
  padding:var(--space-4) var(--gutter);
  background:rgba(246,238,225,.55);
  border-bottom:1px solid var(--rule);
}
.nb-drawer[hidden]{display:none}

.nb-drawer__menu{
  list-style:none;margin:0;padding:0;
  display:flex;flex-wrap:wrap;gap:var(--space-4);
}
.nb-drawer__menu li{position:relative}
.nb-drawer__menu a{
  color:var(--text-heading);font-size:13px;letter-spacing:.06em;
}
.nb-drawer__menu .sub-menu{
  list-style:none;margin:var(--space-1) 0 0;padding:0;
  display:flex;flex-direction:column;gap:6px;
}
.nb-drawer__menu .sub-menu a{font-size:12.5px;color:var(--text-body)}

@media (max-width:900px){
  .nb-drawer__menu{flex-direction:column;gap:var(--space-2)}
}

/* ---------- Header cart count ------------------------------ */
.nb-cart{position:relative}
.nb-cart__count{
  font-family:var(--font-body);font-size:10px;font-weight:700;
  color:var(--action-fg);background:var(--action-bg);
  border-radius:999px;padding:1px 5px;margin-left:2px;top:-.6em;
}

/* ---------- Coming soon holding page ----------------------- */
/* Reuses .nb-hero for its paper texture, then centres a single
   column of copy instead of the corner-anchored hero layout.   */
.nb-hero--solo{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  gap:var(--space-3);
  padding:var(--space-8) var(--gutter);
  box-sizing:border-box;
  min-height:min(80vh,640px);
}
.nb-hero--solo .nb-wordmark{margin-bottom:var(--space-6)}
.nb-holding__eyebrow{margin:0}
.nb-holding__heading{max-width:18ch;margin:0}
.nb-holding__lede{max-width:48ch;margin:var(--space-2) 0 0}
.nb-hero--solo .nb-signup{margin-top:var(--space-5);text-align:left}

@media (max-width:900px){
  .nb-hero--solo{min-height:min(78vh,520px);padding:var(--space-7) var(--gutter)}
  .nb-hero--solo .nb-wordmark{margin-bottom:var(--space-5)}
}

/* ---------- Entries (blog, pages) -------------------------- */
.nb-entry{margin:0 0 var(--space-7)}
.nb-entry:last-child{margin-bottom:0}
.nb-entry--teaser{
  padding-bottom:var(--space-6);border-bottom:1px solid var(--rule);
}
.nb-entry--teaser:last-of-type{border-bottom:0;padding-bottom:0}
.nb-entry__media{margin:0 0 var(--space-5)}
.nb-entry__media img{border-radius:var(--radius-card);display:block}

.nb-entry__content{
  font-size:var(--text-body-lg);line-height:1.8;color:var(--text-body);
  max-width:70ch;
}
.nb-entry__content h2{font-family:var(--font-display);font-weight:400;font-size:var(--text-h3);color:var(--text-heading)}
.nb-entry__content h3{font-family:var(--font-display);font-weight:400;font-size:var(--text-title);color:var(--text-heading)}
.nb-entry__content blockquote{
  margin:var(--space-5) 0;padding-left:var(--space-4);
  border-left:2px solid var(--text-accent);
  font-family:var(--font-display);font-size:var(--text-title);
  line-height:1.4;color:var(--text-heading);
}
.nb-entry__content img{border-radius:var(--radius-card);height:auto}
.nb-entry__content code,.nb-entry__content pre{
  background:var(--cream-100);border-radius:var(--radius-sharp);
}
.nb-entry__content pre{padding:var(--space-3);overflow-x:auto}
.nb-entry__content table{width:100%;border-collapse:collapse}
.nb-entry__content th,.nb-entry__content td{
  padding:var(--space-2);border-bottom:1px solid var(--rule);text-align:left;
}

/* ---------- Pagination / post navigation ------------------- */
.pagination,.posts-navigation,.post-navigation,.comments-pagination{
  margin-top:var(--space-7);padding-top:var(--space-5);
  border-top:1px solid var(--rule);
  font-size:13px;
}
.pagination .nav-links,
.posts-navigation .nav-links,
.post-navigation .nav-links,
.comments-pagination .nav-links{
  display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:baseline;
}
.pagination .page-numbers.current{color:var(--text-heading);font-weight:700}

/* ---------- Comments --------------------------------------- */
.nb-comments{margin-top:var(--space-7);padding-top:var(--space-6);border-top:1px solid var(--rule)}
.nb-comments__list{list-style:none;margin:var(--space-5) 0;padding:0}
.nb-comments__list ol{list-style:none;padding-left:var(--space-5)}
.nb-comments__list .comment-body{
  padding:var(--space-4) 0;border-bottom:1px solid var(--rule);
  font-size:var(--text-body-sm);line-height:1.7;color:var(--text-body);
}
.nb-comments .comment-form label{
  display:block;font-size:12px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--text-muted);margin-bottom:6px;
}
.nb-comments .comment-form input[type=text],
.nb-comments .comment-form input[type=email],
.nb-comments .comment-form input[type=url],
.nb-comments .comment-form textarea{
  width:100%;max-width:520px;box-sizing:border-box;
  background:#fff;border:0;padding:11px 14px;
  border-radius:var(--radius-sharp);
  font-family:var(--font-body);font-size:13px;color:var(--text-heading);
}
.nb-comments .comment-form textarea{min-height:140px}

/* ---------- Alignment (block editor) ----------------------- */
.alignleft{float:left;margin:0 var(--space-4) var(--space-3) 0}
.alignright{float:right;margin:0 0 var(--space-3) var(--space-4)}
.aligncenter{margin-left:auto;margin-right:auto;display:block}
.alignwide,.alignfull{max-width:none}

/* ---------- Motion preference ------------------------------ */
@media (prefers-reduced-motion:reduce){
  .nb-float{animation:none}
  .nb-card{transition:none}
  .nb-card:hover{transform:none}
}
