/* BolNexus theme — crafted component layer on top of theme.json tokens. */

:root {
  --bn-radius: 16px;
  --bn-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
  --bn-shadow: 0 1px 2px rgba(20,25,21,.04), 0 12px 32px -18px rgba(20,25,21,.22);
}

::selection { background: color-mix(in srgb, var(--wp--preset--color--primary) 22%, transparent); }
:where(a, button, input, .wp-block-post-featured-image img) { transition: all .22s var(--bn-ease); }
:where(:focus-visible) { outline: 2px solid var(--wp--preset--color--primary); outline-offset: 3px; border-radius: 4px; }
img { image-rendering: auto; }
hr.wp-block-separator { border-color: var(--wp--preset--color--line); opacity: 1; }

/* ---------------- Announcement bar ---------------- */
.bn-announce {
  background: var(--wp--preset--color--contrast);
  color: var(--wp--preset--color--base);
  text-align: center;
  font-size: .86rem;
  letter-spacing: .01em;
  padding: .55rem 1rem;
}
.bn-announce a { color: var(--wp--preset--color--accent); font-weight: 600; text-decoration: none; }
.bn-announce a:hover { text-decoration: underline; }

/* ---------------- Header (centered) ---------------- */
.site-header { background: color-mix(in srgb, var(--wp--preset--color--base) 82%, transparent); border-bottom: 1px solid var(--wp--preset--color--line); text-align: center; }
.site-header .wp-block-site-title { font-size: 1.55rem; }
.site-header .wp-block-navigation { --wp--style--block-gap: 0; gap: clamp(1rem, 2.4vw, 2rem); justify-content: center; }
.site-header .wp-block-navigation .wp-block-navigation-item__content {
  font-size: .96rem; font-weight: 500; color: var(--wp--preset--color--contrast);
  padding: .35rem 0; position: relative;
}
.site-header .wp-block-navigation .wp-block-navigation-item__content::after {
  content: ""; position: absolute; left: 0; right: 100%; bottom: -2px; height: 2px;
  background: var(--wp--preset--color--primary); transition: right .25s var(--bn-ease);
}
.site-header .wp-block-navigation .wp-block-navigation-item:hover .wp-block-navigation-item__content::after,
.site-header .wp-block-navigation .current-menu-item .wp-block-navigation-item__content::after { right: 0; }
.site-header .wp-block-navigation .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--primary); text-decoration: none; }
.header-cta .wp-block-button__link { font-size: .9rem; padding: .55rem 1.15rem; }

/* ---------------- Buttons ---------------- */
.wp-block-button__link { box-shadow: none; }
.wp-block-button.is-style-outline .wp-block-button__link {
  border: 1.5px solid var(--wp--preset--color--line); color: var(--wp--preset--color--contrast); background: transparent;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover { border-color: var(--wp--preset--color--contrast); background: transparent; color: var(--wp--preset--color--contrast); }

/* ---------------- Post cards ---------------- */
.bolnexus-card { box-shadow: none; overflow: hidden; transition: transform .3s var(--bn-ease), box-shadow .3s var(--bn-ease), border-color .3s var(--bn-ease); }
.bolnexus-card:hover { transform: translateY(-4px); box-shadow: var(--bn-shadow); border-color: color-mix(in srgb, var(--wp--preset--color--primary) 30%, var(--wp--preset--color--line)); }
.bolnexus-card .wp-block-post-featured-image { overflow: hidden; border-radius: 0; margin: 0; }
.bolnexus-card .wp-block-post-featured-image img { transition: transform .5s var(--bn-ease); width: 100%; display: block; }
.bolnexus-card:hover .wp-block-post-featured-image img { transform: scale(1.045); }
.bolnexus-card .wp-block-post-title a { text-decoration: none; }
.bolnexus-card .wp-block-post-title a:hover { color: var(--wp--preset--color--primary); }
.wp-block-post-terms a { text-decoration: none; }

/* ---------------- Single / page reading experience ---------------- */
.bn-article .wp-block-post-title { margin-bottom: .4rem; }
.bn-article .bn-meta { display: flex; align-items: center; gap: .9rem; flex-wrap: wrap; color: var(--wp--preset--color--muted); font-size: .92rem; }
.bn-article .bn-meta .bn-avatar { width: 30px; height: 30px; border-radius: 50%; object-fit: cover; background: var(--wp--preset--color--surface); }
.bn-article .bn-meta .bn-dot { width: 3px; height: 3px; border-radius: 50%; background: currentColor; opacity: .5; }
.bn-article .wp-block-post-content { font-size: 1.125rem; line-height: 1.78; }
.bn-article .wp-block-post-content > p:first-of-type::first-letter {
  font-family: var(--wp--preset--font-family--display); font-weight: 560;
  float: left; font-size: 3.4em; line-height: .82; padding: .06em .12em 0 0; color: var(--wp--preset--color--primary);
}
.bn-article .wp-block-post-content :is(h2, h3) { margin-top: 2.4rem; }
.bn-article .wp-block-post-content :where(img, figure) { border-radius: 12px; }
.bn-article figcaption, .wp-element-caption { color: var(--wp--preset--color--muted); font-size: .86rem; text-align: center; margin-top: .5rem; }
.bn-article blockquote, .wp-block-quote {
  border-left: 3px solid var(--wp--preset--color--primary); margin: 2rem 0; padding: .2rem 0 .2rem 1.4rem;
  font-family: var(--wp--preset--font-family--display); font-size: 1.35rem; line-height: 1.45; font-style: italic; color: var(--wp--preset--color--contrast);
}
.wp-block-pullquote { border: 0; border-top: 1px solid var(--wp--preset--color--line); border-bottom: 1px solid var(--wp--preset--color--line); padding: 2rem 0; }
.wp-block-pullquote p { font-size: 1.9rem; line-height: 1.25; font-style: italic; }
.bn-article :where(code, pre) { font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; }
.bn-article pre.wp-block-code { background: var(--wp--preset--color--contrast); color: #eef1ee; padding: 1.1rem 1.25rem; border-radius: 12px; font-size: .9rem; overflow-x: auto; }

/* author card + post nav */
.bn-authorcard { display: flex; gap: 1rem; align-items: flex-start; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); border-radius: var(--bn-radius); padding: 1.3rem 1.4rem; margin: 3rem 0 2rem; }
.bn-authorcard img { width: 54px; height: 54px; border-radius: 50%; object-fit: cover; }
.bn-authorcard .bn-authorcard__name { font-family: var(--wp--preset--font-family--display); font-weight: 560; font-size: 1.1rem; }
.bn-authorcard .bn-authorcard__bio { color: var(--wp--preset--color--muted); font-size: .95rem; margin-top: .15rem; }

/* ---------------- Comments ---------------- */
.wp-block-comments { margin-top: 3rem; }
.wp-block-comments-title { font-family: var(--wp--preset--font-family--display); font-weight: 540; }
.wp-block-comment-template ol { list-style: none; padding: 0; }
.wp-block-comment-template li { border-top: 1px solid var(--wp--preset--color--line); padding: 1.4rem 0; }
.wp-block-comment-template .wp-block-comment-author-name { font-weight: 600; }
.wp-block-comment-template .wp-block-comment-author-name a { text-decoration: none; }
.wp-block-comment-template .wp-block-comment-date { color: var(--wp--preset--color--muted); font-size: .85rem; }
.wp-block-comment-template .wp-block-comment-content { margin: .5rem 0; }
.wp-block-comment-reply-link a { font-size: .85rem; font-weight: 600; color: var(--wp--preset--color--primary); }
.comment-respond, .wp-block-post-comments-form { margin-top: 2rem; }
.comment-form input:not([type=submit]):not([type=checkbox]), .comment-form textarea, .wp-block-search__input, input[type=text], input[type=email], input[type=url], input[type=search], textarea {
  width: 100%; background: var(--wp--preset--color--base); border: 1.5px solid var(--wp--preset--color--line); border-radius: 10px; padding: .7rem .85rem; font: inherit; color: var(--wp--preset--color--contrast);
}
.comment-form input:focus, .comment-form textarea:focus, input:focus, textarea:focus { border-color: var(--wp--preset--color--primary); outline: none; }
.comment-form label { font-size: .85rem; font-weight: 600; display: block; margin-bottom: .3rem; }
.form-submit .submit, .wp-block-button__link, .comment-form input[type=submit] { cursor: pointer; }
.comment-form input[type=submit] { background: var(--wp--preset--color--primary); color: var(--wp--preset--color--base); border: 0; border-radius: 999px; padding: .7rem 1.6rem; font-weight: 600; }
.comment-form input[type=submit]:hover { background: var(--wp--preset--color--contrast); }

/* ---------------- Search ---------------- */
.wp-block-search__button { border-radius: 999px !important; background: var(--wp--preset--color--primary); color: var(--wp--preset--color--base); border: 0; font-weight: 600; }

/* ---------------- Footer (light, full-width, centered) ---------------- */
.site-footer { background: var(--wp--preset--color--base); border-top: 1px solid var(--wp--preset--color--line); text-align: center; }
.site-footer a { color: var(--wp--preset--color--contrast); text-decoration: none; }
.site-footer a:hover { color: var(--wp--preset--color--primary); }
.site-footer .bn-foot-center { align-items: center; }
.site-footer .bn-foot-brand { font-family: var(--wp--preset--font-family--display); font-weight: 560; font-size: 1.75rem; color: var(--wp--preset--color--contrast); }
.site-footer .bn-foot-h { font-size: .76rem; text-transform: uppercase; letter-spacing: .13em; color: var(--wp--preset--color--muted); font-weight: 600; margin: 0; }
.site-footer .bn-foot-subscribe { width: 100%; }
.site-footer .wp-block-navigation { justify-content: center; }
.site-footer .wp-block-navigation .wp-block-navigation-item__content { font-size: .92rem; color: var(--wp--preset--color--contrast); }
.bn-social { display: flex; gap: .7rem; flex-wrap: wrap; justify-content: center; }
.bn-social a { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--wp--preset--color--line); color: var(--wp--preset--color--contrast); }
.bn-social a:hover { background: var(--wp--preset--color--primary); border-color: var(--wp--preset--color--primary); color: var(--wp--preset--color--base); }
.bn-social svg { width: 17px; height: 17px; fill: currentColor; }
.site-footer .bn-foot-bottom { justify-content: center; border-top: 1px solid var(--wp--preset--color--line); margin-top: 2rem; padding-top: 1.4rem; font-size: .84rem; color: var(--wp--preset--color--muted); }

/* ---------------- Query title / archives ---------------- */
.wp-block-query-title { font-family: var(--wp--preset--font-family--display); }
.wp-block-query-pagination .wp-block-query-pagination-numbers .page-numbers { padding: .35rem .7rem; border-radius: 8px; }
.wp-block-query-pagination .page-numbers.current { background: var(--wp--preset--color--primary); color: var(--wp--preset--color--base); }

/* core post-author rendered as a bio card */
.bn-authorcard-wrap .wp-block-post-author { display: flex; gap: 1rem; align-items: flex-start; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); border-radius: var(--bn-radius); padding: 1.3rem 1.4rem; margin: 3rem 0 0; }
.bn-authorcard-wrap .wp-block-post-author__avatar img { border-radius: 50%; }
.bn-authorcard-wrap .wp-block-post-author__byline { color: var(--wp--preset--color--muted); font-size: .74rem; text-transform: uppercase; letter-spacing: .12em; margin: 0 0 2px; }
.bn-authorcard-wrap .wp-block-post-author__name { font-family: var(--wp--preset--font-family--display); font-weight: 560; font-size: 1.12rem; }
.bn-authorcard-wrap .wp-block-post-author__bio { color: var(--wp--preset--color--muted); font-size: .95rem; margin-top: .25rem; line-height: 1.6; }
.bn-readtime { color: var(--wp--preset--color--muted); font-size: .92rem; }
.bn-meta .bn-dot { width: 3px; height: 3px; border-radius: 50%; background: var(--wp--preset--color--muted); opacity: .55; margin: 0; }

/* prev / next post links */
.wp-block-post-navigation-link { display: inline-flex; font-weight: 600; color: var(--wp--preset--color--primary); }
.wp-block-post-navigation-link.post-navigation-link-next { float: right; }

@media (max-width: 640px) {
  .bn-article .wp-block-post-content { font-size: 1.06rem; }
  .bn-article .wp-block-post-content > p:first-of-type::first-letter { font-size: 2.8em; }
  .site-header__inner .wp-block-site-title { font-size: 1.15rem; }
}
