/* ==========================================================================
   Newsboard Inspired — main stylesheet
   1. Tokens & reset        6. Cards               11. Single post
   2. Base typography       7. Homepage sections   12. Comments
   3. Layout                8. Sidebar & widgets   13. Footer
   4. Header & navigation   9. Ads & newsletter    14. Dark mode
   5. Off-canvas & search  10. Archives            15. Responsive
   ========================================================================== */

/* 1. Tokens & reset -------------------------------------------------------- */
:root {
	--nb-accent: #20c1bd;
	--nb-accent-dark: #04a5a1;
	--nb-text: #161616;
	--nb-text-2: #4d4d4d;
	--nb-meta: #3d3d3d;
	--nb-muted: #8a8a8a;
	--nb-border: #e8e8e8;
	--nb-border-2: #dadada;
	--nb-bg: #fff;
	--nb-bg-alt: #f6f6f6;
	--nb-dark: #111215;
	--nb-footer: #0f0f11;
	--nb-footer-lower: #050505;
	--nb-container: 1200px;
	--nb-gutter: 20px;
	--nb-gap: 36px;
	--nb-sidebar: 330px;
	--nb-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
	--nb-font-heading: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--nb-font-logo: "Roboto Condensed", "Helvetica Neue Condensed", "Arial Narrow", "Segoe UI", sans-serif;
	--nb-logo-size: 46px;
	--nb-radius: 2px;
	--nb-header-shadow: 0 3px 4px -2px rgba(0, 0, 0, .07);
}

*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; animation: none !important; } }

body {
	margin: 0;
	background: var(--nb-bg);
	color: var(--nb-text);
	font-family: var(--nb-font);
	font-size: 15px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}

img, video, iframe, svg { max-width: 100%; }
img { height: auto; display: block; }
figure { margin: 0; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }

a { color: inherit; text-decoration: none; transition: color .15s ease; }
a:hover { color: var(--nb-accent); }
:focus-visible { outline: 2px solid var(--nb-accent); outline-offset: 2px; }

.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; width: 1px; margin: -1px; overflow: hidden; padding: 0;
	position: absolute !important; word-wrap: normal !important;
}
.screen-reader-text:focus {
	background: #fff; color: #000; clip: auto !important; clip-path: none;
	display: block; height: auto; width: auto; left: 8px; top: 8px; padding: 12px 18px; z-index: 100000;
	font-weight: 600; box-shadow: 0 0 0 2px var(--nb-accent);
}
.skip-link:focus { position: fixed !important; }

.nb-icon { width: 1em; height: 1em; flex: none; vertical-align: middle; }

/* 2. Base typography -------------------------------------------------------- */
h1, h2, h3, h4, h5, h6 {
	font-family: var(--nb-font-heading);
	font-weight: 600;
	line-height: 1.3;
	margin: 0 0 .6em;
	color: var(--nb-text);
	letter-spacing: -.01em;
}
p { margin: 0 0 1.2em; }

.nb-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 6px;
	background: var(--nb-accent); color: #fff; border: 0; border-radius: var(--nb-radius);
	font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em;
	padding: 0 20px; height: 42px; line-height: 1;
	transition: background-color .15s ease;
}
.nb-btn:hover, .nb-btn:focus-visible { background: var(--nb-accent-dark); color: #fff; }
.nb-btn--sm { height: 38px; padding: 0 18px; font-size: 11px; }
.nb-btn--block { width: 100%; }
.nb-btn--dark { background: #161616; }
.nb-btn--dark:hover { background: var(--nb-accent); }

input[type="text"], input[type="email"], input[type="url"], input[type="search"], input[type="password"], input[type="number"], textarea, select {
	width: 100%; border: 1px solid var(--nb-border-2); background: var(--nb-bg); border-radius: var(--nb-radius);
	padding: 9px 14px; font-size: 14px; line-height: 1.5; min-height: 42px;
}
input:focus, textarea:focus, select:focus { border-color: var(--nb-accent); outline: none; box-shadow: 0 0 0 1px var(--nb-accent); }

/* 3. Layout ----------------------------------------------------------------- */
.nb-container {
	width: 100%;
	max-width: calc(var(--nb-container) + var(--nb-gutter) * 2);
	margin: 0 auto;
	padding: 0 var(--nb-gutter);
}
.nb-content { outline: none; }
.nb-main { padding-bottom: 50px; }

.nb-layout { display: grid; gap: 0 60px; align-items: start; }
.nb-layout--sidebar { grid-template-columns: minmax(0, 1fr) var(--nb-sidebar); }
.nb-layout--full { grid-template-columns: minmax(0, 1fr); }
.nb-layout__main { min-width: 0; }
.nb-layout__sidebar { position: relative; min-width: 0; height: 100%; }
.nb-layout--sidebar > .nb-layout__sidebar::before {
	content: ""; position: absolute; top: 0; bottom: 0; left: -30px; border-left: 1px solid var(--nb-border);
}
.nb-sticky-sidebar .nb-sidebar__inner { position: sticky; top: 30px; }
.nb-has-sticky-header.nb-sticky-sidebar .nb-sidebar__inner { top: 90px; }
body.nb-sidebar-left .nb-layout--sidebar { grid-template-columns: var(--nb-sidebar) minmax(0, 1fr); }
body.nb-sidebar-left .nb-layout--sidebar > .nb-layout__sidebar { order: -1; }
body.nb-sidebar-left .nb-layout--sidebar > .nb-layout__sidebar::before { left: auto; right: -30px; }
/* The homepage keeps its sidebar on the right like the reference layout. */
body.nb-sidebar-left .nb-home-group.nb-layout--sidebar { grid-template-columns: minmax(0, 1fr) var(--nb-sidebar); }
body.nb-sidebar-left .nb-home-group > .nb-layout__sidebar { order: 0; }
body.nb-sidebar-left .nb-home-group > .nb-layout__sidebar::before { right: auto; left: -30px; }

.nb-grid { display: grid; gap: 30px var(--nb-gap); }
.nb-grid--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.nb-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; }
.nb-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.nb-section { margin: 40px 0; }

/* Section heading with the accent bar. */
.nb-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 24px; }
.nb-heading__title {
	position: relative; margin: 0; padding-left: 16px;
	font-size: 15px; line-height: 22px; font-weight: 600; text-transform: uppercase; letter-spacing: .02em;
}
.nb-heading__title::before {
	content: ""; position: absolute; left: 0; top: -1px; bottom: -1px; width: 4px; background: var(--nb-accent);
}
.nb-heading__more { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; font-weight: 600; text-transform: uppercase; color: var(--nb-muted); }
.nb-accent-text { color: var(--nb-accent); }

.nb-admin-hint {
	border: 1px dashed var(--nb-accent); background: rgba(32, 193, 189, .06); padding: 10px 14px;
	font-size: 13px; color: var(--nb-text-2); margin: 20px 0;
}

/* 4. Header & navigation ---------------------------------------------------- */
.nb-header { position: relative; z-index: 50; background: var(--nb-bg); }
.nb-topbar { border-bottom: 1px solid var(--nb-border); }
.nb-topbar__inner { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; min-height: 112px; gap: 20px; }
.nb-topbar__inner--left { grid-template-columns: auto 1fr; }
.nb-topbar__left { display: flex; align-items: center; }
.nb-topbar__right { display: flex; align-items: center; justify-content: flex-end; gap: 18px; }
.nb-topbar__center { text-align: center; }

.nb-brand__text { margin: 0; font-family: var(--nb-font-logo); font-size: var(--nb-logo-size); font-weight: 800; line-height: 1; letter-spacing: -.045em; }
.nb-brand__text a { color: var(--nb-text); }
.nb-brand__text a:hover { color: var(--nb-text); }
.nb-brand .custom-logo-link { display: inline-block; }
.nb-brand .custom-logo { max-height: 70px; width: auto; }

.nb-social { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 9px; }
.nb-social__link { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; color: var(--nb-text); font-size: 15px; }
.nb-social--round .nb-social__link { width: 38px; height: 38px; border: 1px solid var(--nb-border-2); border-radius: 50%; font-size: 16px; transition: border-color .15s, color .15s; }
.nb-social--round .nb-social__link:hover { border-color: var(--nb-accent); color: var(--nb-accent); }
.nb-social--dark .nb-social__link { border-color: rgba(255, 255, 255, .22); color: #fff; }

.nb-navbar { position: relative; background: var(--nb-bg); box-shadow: var(--nb-header-shadow); }
.nb-navbar__inner { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; min-height: 60px; }
.nb-navbar__left, .nb-navbar__right { display: flex; align-items: center; gap: 6px; }
.nb-navbar__right { justify-content: flex-end; }
.nb-navbar__mobile-brand { display: none; }
.nb-navbar.is-stuck { position: fixed; top: 0; left: 0; right: 0; z-index: 60; animation: nb-slide-down .25s ease; }
.admin-bar .nb-navbar.is-stuck { top: 32px; }
@keyframes nb-slide-down { from { transform: translateY(-100%); } to { transform: none; } }

.nb-icon-btn {
	display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px;
	padding: 0; background: none; border: 0; color: var(--nb-text); font-size: 21px; border-radius: 50%;
}
.nb-icon-btn:hover { color: var(--nb-accent); }
.nb-menu-toggle { margin-left: -8px; font-size: 26px; }
.nb-scheme-toggle__sun { display: none; }
.nb-dark .nb-scheme-toggle__sun { display: block; }
.nb-dark .nb-scheme-toggle__moon { display: none; }

.nb-menu { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; justify-content: center; flex-wrap: wrap; }
.nb-menu li { position: relative; }
.nb-menu > li > a {
	display: flex; align-items: center; gap: 4px; padding: 0 21px; min-height: 60px;
	font-size: 14px; font-weight: 600; text-transform: uppercase; letter-spacing: .03em; color: var(--nb-text);
}
.nb-menu > li > a:hover,
.nb-menu > li:focus-within > a,
.nb-menu > .current-menu-item > a,
.nb-menu > .current-menu-ancestor > a,
.nb-menu > .current-menu-parent > a { color: var(--nb-accent); }
.nb-menu-caret { font-size: 15px; color: var(--nb-muted); margin-left: 2px; }

.nb-menu .sub-menu {
	position: absolute; top: 100%; left: 8px; min-width: 220px; list-style: none; margin: 0; padding: 10px 0;
	background: var(--nb-bg); border: 1px solid var(--nb-border); border-top: 2px solid var(--nb-accent);
	box-shadow: 0 8px 22px rgba(0, 0, 0, .08);
	opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .15s, transform .15s, visibility .15s; z-index: 20;
}
.nb-menu .sub-menu .sub-menu { top: -12px; left: 100%; }
.nb-menu li:hover > .sub-menu,
.nb-menu li:focus-within > .sub-menu,
.nb-menu li.is-open > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.nb-menu .sub-menu a { display: flex; align-items: center; justify-content: space-between; padding: 8px 20px; font-size: 14px; color: var(--nb-text); }
.nb-menu .sub-menu a:hover, .nb-menu .sub-menu .current-menu-item > a { color: var(--nb-accent); }
.nb-menu .sub-menu .nb-menu-caret { transform: rotate(-90deg); }

/* Search panel */
.nb-search-panel { border-top: 1px solid var(--nb-border); background: var(--nb-bg); padding: 18px 0; }
.nb-search-panel[hidden] { display: none; }
.nb-search-form { position: relative; display: flex; }
.nb-search-form__input { padding-right: 48px; height: 46px; }
.nb-search-form__submit { position: absolute; right: 0; top: 0; height: 100%; width: 46px; border: 0; background: none; color: var(--nb-text); font-size: 19px; display: inline-flex; align-items: center; justify-content: center; }
.nb-search-form__submit:hover { color: var(--nb-accent); }

/* 5. Off-canvas ------------------------------------------------------------- */
.nb-offcanvas { position: fixed; inset: 0; z-index: 1000; visibility: hidden; }
.nb-offcanvas.is-open { visibility: visible; }
.nb-offcanvas__overlay { position: absolute; inset: 0; background: rgba(0, 0, 0, .45); opacity: 0; transition: opacity .25s; }
.nb-offcanvas.is-open .nb-offcanvas__overlay { opacity: 1; }
.nb-offcanvas__panel {
	position: absolute; top: 0; bottom: 0; left: 0; width: min(360px, 88vw); background: var(--nb-bg);
	padding: 22px 26px 40px; overflow-y: auto; transform: translateX(-100%); transition: transform .3s ease;
}
.nb-offcanvas.is-open .nb-offcanvas__panel { transform: none; }
.nb-offcanvas__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }
.nb-offcanvas__head .nb-brand__text { font-size: 30px; }
.nb-offcanvas__head .custom-logo { max-height: 44px; }
.nb-mobile-menu, .nb-mobile-menu ul { list-style: none; margin: 0; padding: 0; }
.nb-mobile-menu li { position: relative; border-bottom: 1px solid var(--nb-border); }
.nb-mobile-menu a { display: block; padding: 11px 40px 11px 0; font-size: 14px; font-weight: 600; text-transform: uppercase; letter-spacing: .02em; }
.nb-mobile-menu .sub-menu { display: none; padding-left: 14px; border-top: 1px solid var(--nb-border); }
.nb-mobile-menu .sub-menu li:last-child { border-bottom: 0; }
.nb-mobile-menu .sub-menu a { text-transform: none; font-weight: 500; }
.nb-mobile-menu li.is-open > .sub-menu { display: block; }
.nb-submenu-toggle {
	position: absolute; right: 0; top: 4px; width: 36px; height: 36px; border: 0; background: none; font-size: 18px;
	display: inline-flex; align-items: center; justify-content: center; color: var(--nb-text);
}
.nb-submenu-toggle .nb-icon { transition: transform .2s; }
li.is-open > .nb-submenu-toggle .nb-icon { transform: rotate(180deg); }
.nb-offcanvas__search { margin: 24px 0; }
.nb-offcanvas__social { margin-top: 24px; }
body.nb-no-scroll { overflow: hidden; }

/* 6. Cards ------------------------------------------------------------------ */
.nb-card { position: relative; min-width: 0; }
.nb-card__title { font-size: 15px; font-weight: 500; line-height: 1.45; margin: 0; letter-spacing: 0; }
.nb-card__title a { color: var(--nb-text); background-image: linear-gradient(currentColor, currentColor); background-size: 0 1px; background-repeat: no-repeat; background-position: 0 100%; transition: background-size .25s, color .15s; }
.nb-card__title a:hover { color: var(--nb-text); background-size: 100% 1px; }

.nb-media { position: relative; display: block; overflow: hidden; background: var(--nb-bg-alt); }
.nb-media__img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease, opacity .2s; }
a.nb-media:hover .nb-media__img { transform: scale(1.03); }
.nb-media--16x9 { aspect-ratio: 16 / 9; }
.nb-media--3x2 { aspect-ratio: 3 / 2; }
.nb-media--4x3 { aspect-ratio: 4 / 3; }
.nb-media--1x1 { aspect-ratio: 1 / 1; }
.nb-media--hero-side { aspect-ratio: 16 / 9; }
.nb-media--tall { aspect-ratio: 5 / 5.1; }
.nb-media--auto img { height: auto; }
.nb-media__fallback {
	position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
	background: linear-gradient(135deg, #eef4f4 0%, #e3eaea 100%);
	color: rgba(0, 0, 0, .12); font-family: var(--nb-font-logo); font-weight: 800; font-size: 46px; text-transform: uppercase;
}
.nb-format-badge {
	position: absolute; left: 50%; top: 50%; width: 46px; height: 46px; margin: -23px 0 0 -23px; border-radius: 50%;
	border: 2px solid #fff; background: rgba(0, 0, 0, .35); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 20px;
}

.nb-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0 2px; margin-top: 10px; font-size: 11px; line-height: 1.6; color: var(--nb-meta); text-transform: uppercase; letter-spacing: .01em; }
.nb-meta__sep { margin: 0 7px; color: var(--nb-muted); }
.nb-meta__date { color: var(--nb-meta); }
.nb-cat--text { font-weight: 700; color: var(--nb-text); letter-spacing: .03em; }
.nb-cat--text:hover { color: var(--nb-accent); }
.nb-cat--badge {
	display: inline-block; background: var(--nb-accent); color: #fff; font-size: 10px; font-weight: 700; line-height: 1;
	text-transform: uppercase; letter-spacing: .04em; padding: 6px 8px; border-radius: 0;
}
a.nb-cat--badge:hover { color: #fff; background: var(--nb-accent-dark); }

.nb-excerpt { margin: 12px 0 0; font-size: 14px; line-height: 1.7; color: var(--nb-text-2); }

/* Grid card */
.nb-card--grid .nb-card__body { padding-top: 14px; }

/* Lead card */
.nb-card--lead .nb-card__body { padding-top: 16px; }
.nb-card--lead .nb-card__title { font-size: 21px; line-height: 1.35; font-weight: 500; }

/* Medium (side) card */
.nb-card--medium .nb-card__body { padding-top: 14px; }

/* List row: text left, thumb right */
.nb-card--list { display: grid; grid-template-columns: minmax(0, 1fr) 105px; gap: 16px; align-items: start; padding: 18px 0; border-top: 1px solid var(--nb-border); }
.nb-card--list .nb-card__title { font-size: 14px; line-height: 1.45; }
.nb-card--list .nb-meta { margin-top: 8px; }
.nb-card--list .nb-media { aspect-ratio: 3 / 2.1; }
.nb-card--thumb-left { grid-template-columns: 105px minmax(0, 1fr); }
.nb-card--thumb-left .nb-card__thumb { order: -1; }

/* Text-only row */
.nb-card--text { padding: 16px 0; border-top: 1px solid var(--nb-border); }
.nb-card--text .nb-card__title { font-size: 15px; }
.nb-text-link { padding: 14px 0 0; font-size: 14px; }

.nb-read-more { display: inline-block; margin-top: 14px; color: var(--nb-accent); font-size: 15px; border-bottom: 1px solid currentColor; line-height: 1.3; }
.nb-read-more:hover { color: var(--nb-accent-dark); }

/* 7. Homepage sections ------------------------------------------------------ */
.nb-hero { margin: 34px 0 34px; }
.nb-hero__grid { display: grid; grid-template-columns: minmax(0, 2.1fr) minmax(0, 1fr); gap: var(--nb-gap); align-items: start; }
.nb-card--hero .nb-media { aspect-ratio: 16 / 9; }
.nb-card--hero__box {
	position: relative; margin: -38px 18px 0; padding: 22px 22px 0; background: var(--nb-bg);
}
.nb-card--hero .nb-card__title { font-size: 25px; line-height: 1.3; font-weight: 600; letter-spacing: -.01em; }
.nb-card--hero .nb-excerpt { font-size: 15px; }
.nb-hero__side > .nb-card--lead .nb-card__title { font-size: 19px; line-height: 1.4; }
.nb-hero__side > .nb-card--lead { padding-bottom: 22px; }
.nb-hero__side > .nb-card--list:last-child { padding-bottom: 0; }

.nb-row { margin: 40px 0; }

.nb-ad { display: block; width: 100%; max-width: var(--nb-ad-w, 100%); margin: 40px auto; text-align: center; }
.nb-ad img { display: block; width: 100%; height: auto; margin: 0 auto; }
.nb-ad__code { display: flex; justify-content: center; min-height: var(--nb-ad-h, 0); overflow: hidden; }
.nb-ad__code > * { max-width: 100%; }

.nb-home-group { margin-top: 50px; margin-bottom: 50px; }
.nb-block { margin-bottom: 50px; }
.nb-block:last-child { margin-bottom: 0; }
.nb-block__top { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: var(--nb-gap); align-items: start; }
.nb-block__side > :first-child { border-top: 0; padding-top: 0; }
.nb-block__side .nb-card--medium + .nb-card--text { margin-top: 18px; }
.nb-block__side .nb-card--text:last-child { padding-bottom: 0; }
.nb-block__bottom { margin-top: 44px; }
.nb-block--block-b .nb-block__side { display: grid; gap: 28px; }
.nb-block--block-b .nb-block__text-list { margin-top: 18px; }
.nb-block--block-b .nb-block__text-list .nb-card__title { border-top: 1px solid var(--nb-border); padding: 14px 0; margin: 0; }
.nb-block--block-b .nb-block__text-list .nb-card__title:last-child { padding-bottom: 0; }
.nb-block--block-c .nb-block__side { display: grid; gap: 28px; }
.nb-block__thumb-list { margin-top: 24px; }
.nb-block__thumb-list .nb-card--list:last-child { padding-bottom: 0; }
.nb-layout__main > .nb-ad { margin: 0 auto 50px; }

/* Dark strip */
.nb-strip { background: var(--nb-dark); color: #fff; margin: 50px 0; }
.nb-strip .nb-heading { padding-top: 34px; margin-bottom: 0; }
.nb-strip .nb-heading__title { color: #fff; }
.nb-strip__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--nb-gap); align-items: center; }
.nb-strip__main { align-self: stretch; }
.nb-strip__side { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 26px; padding: 34px 0; }
.nb-strip .nb-card--grid .nb-card__title { font-size: 14px; }
.nb-strip .nb-card__title a,
.nb-strip .nb-card__title a:hover { color: #fff; }
.nb-strip .nb-meta, .nb-strip .nb-meta__date { color: rgba(255, 255, 255, .75); }
.nb-strip .nb-media { background: #222; }

.nb-card--overlay { height: 100%; }
.nb-card--overlay .nb-media { height: 100%; }
.nb-card--overlay .nb-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0, 0, 0, .78) 0%, rgba(0, 0, 0, .25) 45%, rgba(0, 0, 0, 0) 70%); pointer-events: none; }
.nb-card--overlay .nb-card__body { position: absolute; left: 0; right: 0; bottom: 0; padding: 26px 28px 28px; z-index: 2; pointer-events: none; }
.nb-card--overlay .nb-card__body a { pointer-events: auto; }
.nb-card--overlay .nb-card__title { color: #fff; font-size: 23px; font-weight: 600; line-height: 1.3; margin-top: 10px; }
.nb-card--overlay .nb-card__title a,
.nb-card--overlay .nb-card__title a:hover { color: #fff; }
.nb-card--overlay .nb-meta, .nb-card--overlay .nb-meta__date { color: rgba(255, 255, 255, .85); }
.nb-strip__main .nb-card--overlay .nb-media { min-height: 380px; aspect-ratio: auto; }

.nb-fitness { margin-top: 50px; }

/* 8. Sidebar & widgets ------------------------------------------------------ */
.nb-sidebar .widget { margin-bottom: 44px; }
.nb-sidebar .widget:last-child { margin-bottom: 0; }
.widget ul { list-style: none; margin: 0; padding: 0; }
.nb-sidebar .widget_categories li,
.nb-sidebar .widget_archive li,
.nb-sidebar .widget_pages li,
.nb-sidebar .widget_nav_menu li,
.nb-sidebar .widget_recent_entries li,
.nb-sidebar .widget_meta li { padding: 9px 0; border-bottom: 1px solid var(--nb-border); font-size: 14px; display: flex; justify-content: space-between; flex-wrap: wrap; }
.nb-sidebar .widget_categories .children { width: 100%; padding-left: 14px; }
.widget select { max-width: 100%; }

.nb-wposts .nb-card--list:first-child { border-top: 0; padding-top: 0; }
.nb-wposts .nb-card--list:last-child { padding-bottom: 0; }
.nb-wposts--list .nb-card--list { grid-template-columns: 105px minmax(0, 1fr); }
.nb-wposts--list .nb-card__thumb { order: -1; }
.nb-card--lead-small .nb-card__title { font-size: 18px; line-height: 1.4; }
.nb-card--lead-small { padding-bottom: 20px; }
.nb-wposts--lead .nb-card--lead-small + .nb-card--list { border-top: 1px solid var(--nb-border); padding-top: 18px; }

.nb-follow { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.nb-follow__item {
	display: flex; align-items: center; gap: 8px; height: 40px; padding: 0 12px; color: #fff; background: var(--nb-brand, #333);
	font-size: 12px; font-weight: 600; border-radius: var(--nb-radius); transition: filter .15s;
}
.nb-follow__item:hover { color: #fff; filter: brightness(1.08); }
.nb-follow__item .nb-icon { font-size: 15px; }
.nb-follow__label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nb-follow__count { font-weight: 700; }

/* Core block widgets (Search, Latest Posts, Categories…) styled to match. */
.nb-sidebar .widget_block h2, .nb-sidebar .wp-block-search__label, .nb-sidebar .widget_block .wp-block-heading {
	position: relative; display: block; padding-left: 16px; margin: 0 0 22px; font-size: 15px; line-height: 22px; font-weight: 600; text-transform: uppercase; letter-spacing: .02em;
}
.nb-sidebar .widget_block h2::before, .nb-sidebar .wp-block-search__label::before { content: ""; position: absolute; left: 0; top: -1px; bottom: -1px; width: 4px; background: var(--nb-accent); }
.nb-sidebar .wp-block-group__inner-container > * + * { margin-top: 0; }
.wp-block-search__inside-wrapper { display: flex; gap: 0; }
.wp-block-search__button { border: 0; background: var(--nb-accent); color: #fff; padding: 0 16px; font-size: 12px; font-weight: 700; text-transform: uppercase; margin-left: 0 !important; }
.nb-sidebar .wp-block-latest-posts, .nb-sidebar .wp-block-latest-comments, .nb-sidebar .wp-block-archives, .nb-sidebar .wp-block-categories, .nb-sidebar .wp-block-page-list { list-style: none; margin: 0; padding: 0; }
.nb-sidebar .wp-block-latest-posts li, .nb-sidebar .wp-block-archives li, .nb-sidebar .wp-block-categories li, .nb-sidebar .wp-block-latest-comments li, .nb-sidebar .wp-block-page-list li { padding: 9px 0; margin: 0; border-bottom: 1px solid var(--nb-border); font-size: 14px; line-height: 1.5; }
.nb-sidebar .wp-block-latest-comments__comment-excerpt p { margin: 4px 0 0; font-size: 13px; color: var(--nb-text-2); }
.nb-sidebar .wp-block-latest-comments__comment-meta, .nb-sidebar .wp-block-latest-comments article { margin: 0; }
.has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-excerpt,
.has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-meta { margin-left: 0; }

/* 9. Ads & newsletter ------------------------------------------------------- */
.nb-ad-ph {
	position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
	width: 100%; padding: 16px 20px; border: 1px solid var(--nb-border-2); overflow: hidden; text-align: center;
	background:
		repeating-linear-gradient(135deg, rgba(0, 0, 0, .025) 0 10px, transparent 10px 20px),
		linear-gradient(120deg, var(--nb-bg-alt), var(--nb-bg));
	color: var(--nb-text-2);
}
.nb-ad-ph--wide { min-height: 90px; }
.nb-ad-ph--rect { aspect-ratio: 300 / 250; }
.nb-ad-ph__kicker { font-size: 10px; text-transform: uppercase; letter-spacing: .14em; color: var(--nb-muted); }
.nb-ad-ph__title { font-family: var(--nb-font-logo); font-size: 24px; font-weight: 800; letter-spacing: -.02em; color: var(--nb-text); text-transform: uppercase; }
.nb-ad-ph__size { font-size: 11px; color: var(--nb-accent); font-weight: 700; }
.nb-ad--widget { margin: 0; max-width: none; }

.nb-newsletter { background: var(--nb-bg-alt); border: 1px solid var(--nb-border); padding: 30px 26px; text-align: center; scroll-margin-top: 90px; }
.nb-newsletter__title { font-family: var(--nb-font-heading); font-size: 20px; font-weight: 600; margin: 0 0 10px; color: var(--nb-text); }
.nb-newsletter__text { font-size: 13px; line-height: 1.6; color: var(--nb-text-2); margin: 0 0 18px; }
.nb-newsletter__form { display: grid; gap: 10px; }
.nb-newsletter__form input[type="email"] { text-align: center; }
.nb-newsletter__consent { display: flex; gap: 8px; align-items: flex-start; text-align: left; font-size: 11px; line-height: 1.5; color: var(--nb-muted); margin-top: 4px; }
.nb-newsletter__consent input { margin-top: 2px; flex: none; }
.nb-newsletter__notice { font-size: 13px; padding: 8px 10px; margin: 0 0 12px; }
.nb-newsletter__notice.is-success { background: rgba(32, 193, 189, .12); color: var(--nb-accent-dark); }
.nb-newsletter__notice.is-error { background: rgba(220, 50, 50, .1); color: #b22; }
.nb-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* 10. Archives -------------------------------------------------------------- */
.nb-breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 0; padding: 18px 0 0; font-size: 12px; color: var(--nb-muted); }
.nb-breadcrumbs a { color: var(--nb-text-2); }
.nb-breadcrumbs a:hover { color: var(--nb-accent); }
.nb-breadcrumbs__sep { margin: 0 9px; }
.nb-breadcrumbs [aria-current] { color: var(--nb-muted); }

.nb-archive-header { padding: 0 0 26px; margin: 0 0 36px; border-bottom: 1px solid var(--nb-border); }
.nb-archive-header .nb-cat--badge { margin-top: 26px; }
.nb-archive-header__title { font-size: 32px; font-weight: 700; margin: 14px 0 0; }
.nb-archive-header__desc { color: var(--nb-text-2); margin-top: 10px; max-width: 760px; font-size: 15px; }
.nb-archive-header__desc p:last-child { margin-bottom: 0; }
.nb-archive-search { max-width: 560px; margin: -14px 0 36px; }

.nb-archive__lead { margin-bottom: 40px; padding-bottom: 36px; border-bottom: 1px solid var(--nb-border); }
.nb-archive__lead .nb-card__title { font-size: 26px; font-weight: 600; }
.nb-archive__items--grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px var(--nb-gap); }
.nb-archive__items--grid .nb-card__title { font-size: 18px; line-height: 1.4; }
.nb-archive__items--grid .nb-card__body { padding-top: 16px; }
.nb-archive__items--list { display: grid; gap: 32px; }
.nb-card--archive-list { display: grid; grid-template-columns: minmax(0, 300px) minmax(0, 1fr); gap: 28px; align-items: start; padding-bottom: 32px; border-bottom: 1px solid var(--nb-border); }
.nb-card--archive-list .nb-card__title { font-size: 20px; }
.nb-card--archive-list:last-child { border-bottom: 0; padding-bottom: 0; }

.nb-pagination { margin-top: 50px; }
.nb-pagination ul { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin: 0; padding: 0; }
.nb-pagination a, .nb-pagination span { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 12px; border: 1px solid var(--nb-border-2); font-size: 14px; font-weight: 600; }
.nb-pagination .current { background: var(--nb-accent); border-color: var(--nb-accent); color: #fff; }
.nb-pagination a:hover { border-color: var(--nb-accent); }

.nb-none { padding: 30px; border: 1px solid var(--nb-border); background: var(--nb-bg-alt); }
.nb-404__box { max-width: 620px; margin: 40px auto 60px; text-align: center; }
.nb-404__code { font-family: var(--nb-font-logo); font-size: 120px; line-height: 1; font-weight: 800; color: var(--nb-accent); margin: 0; letter-spacing: -.04em; }
.nb-404__title { font-size: 30px; margin: 10px 0 12px; }
.nb-404__box p { color: var(--nb-text-2); }

/* 11. Single post ----------------------------------------------------------- */
.nb-single .nb-layout, .nb-page .nb-layout { margin-top: 28px; }
.nb-article__cats { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 16px; }
.nb-article__title { font-size: 36px; line-height: 1.22; font-weight: 700; letter-spacing: -.02em; margin: 0 0 14px; }
.nb-article__subtitle { font-size: 17px; line-height: 1.6; color: var(--nb-text-2); margin: 0 0 18px; }
.nb-article__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; font-size: 11px; text-transform: uppercase; color: var(--nb-meta); letter-spacing: .02em; }
.nb-article__meta > * + *::before { content: "–"; margin-right: 14px; color: var(--nb-muted); }
.nb-article__meta .nb-article__comments::before,
.nb-article__meta .nb-article__reading::before { content: none; }
.nb-article__author { display: inline-flex; align-items: center; gap: 10px; }
.nb-article__author a { font-weight: 600; color: var(--nb-text); }
.nb-avatar, .nb-article__author img { border-radius: 50%; width: 32px; height: 32px; }
.nb-article__comments, .nb-article__reading { display: inline-flex; align-items: center; gap: 5px; }
.nb-article__comments .nb-icon, .nb-article__reading .nb-icon { font-size: 13px; }

.nb-share { display: flex; flex-wrap: wrap; gap: 8px; }
.nb-share--top { margin: 24px 0 0; }
.nb-share__btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 9px; height: 38px; min-width: 38px; padding: 0 14px;
	border: 1px solid var(--nb-border-2); background: var(--nb-bg); color: var(--nb-text); font-size: 12px; font-weight: 600; border-radius: var(--nb-radius);
	transition: border-color .15s, color .15s, background-color .15s;
}
.nb-share__btn .nb-icon { font-size: 15px; }
.nb-share--top .nb-share__btn { min-width: 98px; padding: 0 18px; }
.nb-share--top .nb-share__toggle, .nb-share--top .nb-share__more .nb-share__btn { min-width: 38px; padding: 0 11px; color: var(--nb-muted); }
.nb-share__more { display: contents; }
.nb-share__more[hidden] { display: none; }
.nb-share__btn--facebook .nb-icon { color: #1877f2; }
.nb-share__btn--x .nb-icon { color: #55acef; }
.nb-share__btn--pinterest .nb-icon { color: #e4223e; }
.nb-share__btn--linkedin .nb-icon { color: #0b66c2; }
.nb-share__btn--whatsapp .nb-icon { color: #25d366; }
.nb-share__btn:hover { border-color: var(--nb-text); color: var(--nb-text); }
.nb-share__copy.is-copied { border-color: var(--nb-accent); color: var(--nb-accent); }

.nb-article__featured { margin: 28px 0 0; }
.nb-article__featured img { width: 100%; height: auto; }
.nb-article__featured figcaption, .entry-content figcaption, .wp-element-caption { font-size: 12px; color: var(--nb-muted); text-align: center; margin-top: 10px; font-style: italic; }

.nb-article__wrap { position: relative; margin-top: 32px; }
/* Floated with a negative margin so it sits in the left gutter and stays sticky while reading. */
.nb-share--float { position: sticky; top: 100px; float: left; width: 40px; margin-left: -112px; display: flex; flex-direction: column; align-items: center; gap: 8px; }
.nb-share--float .nb-share__title { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; margin-bottom: 6px; text-align: center; }
.nb-share--float .nb-share__btn { width: 34px; height: 34px; min-width: 0; padding: 0; }
.nb-share--float .nb-share__btn--mail .nb-icon { color: var(--nb-text-2); }

.entry-content { font-size: 16px; line-height: 1.75; color: #282828; padding: 0 28px; }
.entry-content::after { content: ""; display: table; clear: both; }
.entry-content > * { margin-top: 0; margin-bottom: 1.4em; }
.entry-content h2 { font-size: 22px; margin: 1.7em 0 .7em; }
.entry-content h3 { font-size: 19px; margin: 1.6em 0 .7em; }
.entry-content h4 { font-size: 17px; margin: 1.5em 0 .6em; }
.entry-content a { color: var(--nb-accent); }
.entry-content a:hover { color: var(--nb-accent-dark); text-decoration: underline; }
.entry-content ul, .entry-content ol { padding-left: 1.4em; }
.entry-content li { margin-bottom: .55em; }
.entry-content li::marker { color: var(--nb-text); }
.entry-content img { height: auto; }
.entry-content .alignleft { float: left; margin: .3em 1.8em 1em 0; max-width: 50%; }
.entry-content .alignright { float: right; margin: .3em 0 1em 1.8em; max-width: 50%; }
.entry-content .aligncenter { margin-left: auto; margin-right: auto; text-align: center; }
.entry-content .alignwide, .entry-content .alignfull { margin-left: -28px; margin-right: -28px; max-width: none; width: auto; }
.entry-content table, .wp-block-table table { width: 100%; border-collapse: collapse; font-size: 14px; }
.entry-content th, .entry-content td { border: 1px solid var(--nb-border-2); padding: 10px 12px; text-align: left; }
.entry-content thead th { background: var(--nb-bg-alt); font-weight: 700; }
.wp-block-table { overflow-x: auto; }
.entry-content pre { background: var(--nb-bg-alt); padding: 16px; overflow: auto; font-size: 14px; }
.entry-content code { background: var(--nb-bg-alt); padding: 2px 5px; font-size: .9em; }
.entry-content iframe, .entry-content embed, .entry-content object { max-width: 100%; }
.wp-block-embed__wrapper iframe { width: 100%; }
.entry-content .wp-block-button__link { background: var(--nb-accent); color: #fff; border-radius: var(--nb-radius); text-decoration: none; }
.entry-content .wp-block-gallery { margin-bottom: 1.4em; }

.entry-content blockquote { margin: 1.8em 0; padding: 2px 0 2px 22px; border-left: 3px solid var(--nb-accent); font-size: 17px; }
.entry-content blockquote p:last-of-type { margin-bottom: .4em; }
.entry-content cite, .wp-block-quote cite, .wp-block-pullquote cite { display: block; font-size: 11px; font-style: normal; text-transform: uppercase; letter-spacing: .06em; color: var(--nb-muted); }

/* Styled quotes (toggle in Customizer) */
.nb-fancy-quotes .entry-content .wp-block-quote:not(.is-style-plain) {
	position: relative; border: 0; padding: 4px 0 0 66px; font-family: var(--nb-font-heading); font-size: 19px; font-weight: 600; line-height: 1.55;
}
.nb-fancy-quotes .entry-content .wp-block-quote:not(.is-style-plain)::before {
	content: "\201C"; position: absolute; left: 0; top: -6px; font-size: 76px; line-height: 1; color: var(--nb-accent); font-family: Georgia, serif;
}
.nb-fancy-quotes .entry-content .wp-block-quote cite::before { content: "— "; }
.entry-content .wp-block-pullquote { padding: 28px 0; margin: 2em 0; border-top: 3px solid var(--nb-text); border-bottom: 1px solid var(--nb-border-2); text-align: center; }
.entry-content .wp-block-pullquote blockquote { border: 0; padding: 0; margin: 0; }
.entry-content .wp-block-pullquote p { font-family: var(--nb-font-heading); font-size: 22px; line-height: 1.45; font-weight: 600; }
.nb-fancy-quotes .entry-content .wp-block-pullquote { border-top-color: var(--nb-accent); }
@media (min-width: 900px) {
	.nb-fancy-quotes .entry-content .wp-block-pullquote.alignleft,
	.nb-fancy-quotes .entry-content .wp-block-pullquote.alignright { max-width: 42%; text-align: left; }
}

/* Separators */
.entry-content hr, .entry-content .wp-block-separator { border: 0; border-top: 1px solid var(--nb-border-2); margin: 2.2em auto; width: 100%; }
.nb-fancy-separator .entry-content .wp-block-separator.is-style-dots,
.nb-fancy-separator .entry-content .wp-block-separator:not(.is-style-wide):not(.has-background) {
	border: 0; height: auto; text-align: center; line-height: 1; background: none;
}
.nb-fancy-separator .entry-content .wp-block-separator.is-style-dots::before,
.nb-fancy-separator .entry-content .wp-block-separator:not(.is-style-wide):not(.has-background)::before {
	content: "\00b7\00b7\00b7"; font-size: 30px; letter-spacing: 1em; padding-left: 1em; color: var(--nb-text); font-family: Georgia, serif;
}

/* Drop cap (toggle in Customizer) */
.nb-drop-cap .entry-content > p:first-of-type::first-letter,
.entry-content .has-drop-cap:not(:focus)::first-letter {
	float: left; font-family: var(--nb-font-heading); font-size: 4.1em; line-height: .85; font-weight: 700; margin: .08em .1em 0 0; color: var(--nb-text);
}

.nb-page-links { display: flex; gap: 6px; align-items: center; margin: 24px 0; font-size: 14px; }
.nb-page-links a, .nb-page-links > span:not(.nb-page-links__label) { display: inline-flex; min-width: 32px; height: 32px; align-items: center; justify-content: center; border: 1px solid var(--nb-border-2); }

.nb-article__footer { padding: 0 28px; }
.nb-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 34px 0 0; }
.nb-tags a { display: inline-block; font-size: 11px; padding: 5px 11px; background: var(--nb-bg-alt); border: 1px solid var(--nb-border); color: var(--nb-text-2); }
.nb-tags a:hover { border-color: var(--nb-accent); color: var(--nb-accent); }

.nb-share--bottom { align-items: center; justify-content: space-between; margin: 28px 0 0; padding: 16px 0; border-top: 1px solid var(--nb-border); border-bottom: 1px solid var(--nb-border); }
.nb-share--bottom .nb-share__title { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.nb-share--bottom .nb-share__list { display: flex; flex-wrap: wrap; gap: 5px; }
.nb-share--bottom .nb-share__btn { min-width: 50px; height: 28px; border: 0; color: #fff; padding: 0 10px; }
.nb-share--bottom .nb-share__btn .nb-icon { color: #fff; font-size: 14px; }
.nb-share--bottom .nb-share__btn--facebook { background: #1877f2; }
.nb-share--bottom .nb-share__btn--x { background: #55acef; }
.nb-share--bottom .nb-share__btn--pinterest { background: #e4223e; }
.nb-share--bottom .nb-share__btn--linkedin { background: #0b66c2; }
.nb-share--bottom .nb-share__btn--whatsapp { background: #25d366; }
.nb-share--bottom .nb-share__btn--mail { background: #2d2d2d; }
.nb-share--bottom .nb-share__copy { background: #888; }
.nb-share--bottom .nb-share__btn:hover { filter: brightness(1.1); color: #fff; }

.nb-author-box { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 24px; margin: 36px 0 0; padding: 0 0 4px; }
.nb-author-box__avatar img { border-radius: 50%; width: 96px; height: 96px; }
.nb-author-box__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.nb-author-box__name { font-size: 16px; margin: 6px 0 8px; }
.nb-author-box__bio { font-size: 13px; line-height: 1.7; color: var(--nb-text-2); margin: 0; }
.nb-author-box__web { color: var(--nb-muted); }

.nb-post-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; margin: 36px 0 0; padding: 24px 0; border-top: 1px solid var(--nb-border); border-bottom: 1px solid var(--nb-border); }
.nb-post-nav__item--next { text-align: right; }
.nb-post-nav__label { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 700; text-transform: uppercase; color: var(--nb-muted); letter-spacing: .04em; }
.nb-post-nav__title { display: block; margin-top: 6px; font-family: var(--nb-font-heading); font-size: 15px; font-weight: 500; line-height: 1.45; }

.nb-related { margin: 44px 28px 0; }
.nb-related .nb-card__title { font-size: 14px; }

/* 12. Comments -------------------------------------------------------------- */
.nb-comments { margin: 48px 28px 0; }
.nb-comment-list, .nb-comment-list .children { list-style: none; margin: 0; padding: 0; }
.nb-comment-list .children { padding-left: 46px; }
.nb-comment__body { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 18px; padding: 22px 0; border-bottom: 1px solid var(--nb-border); }
.nb-comment__avatar img { border-radius: 50%; width: 48px; height: 48px; }
.nb-comment__meta { display: flex; flex-wrap: wrap; gap: 6px; align-items: baseline; font-size: 12px; }
.nb-comment__author { font-weight: 700; font-size: 13px; }
.nb-comment__date { color: var(--nb-muted); }
.nb-comment__content { font-size: 14px; line-height: 1.7; color: var(--nb-text-2); margin-top: 6px; }
.nb-comment__content p { margin-bottom: .7em; }
.nb-comment__reply { text-align: right; }
.nb-comment__reply a { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--nb-muted); border-bottom: 1px solid var(--nb-border-2); }
.nb-comment__pending { font-size: 12px; color: var(--nb-accent-dark); }
.comment-respond { margin-top: 40px; }
.nb-comments__reply-title { font-size: 14px; text-transform: uppercase; font-weight: 700; letter-spacing: .02em; }
.nb-comments__reply-title small { margin-left: 10px; font-size: 11px; }
.comment-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 16px; }
.comment-form > p { margin: 0 0 16px; }
.comment-form .comment-form-comment,
.comment-form .comment-form-cookies-consent,
.comment-form .form-submit,
.comment-form .logged-in-as,
.comment-form .comment-notes { grid-column: 1 / -1; }
.comment-form-cookies-consent { display: flex; align-items: flex-start; gap: 8px; font-size: 12px; color: var(--nb-text-2); }
.comment-form-cookies-consent input { margin-top: 3px; }
.logged-in-as { font-size: 13px; color: var(--nb-text-2); }

/* 13. Footer ---------------------------------------------------------------- */
.nb-footer { background: var(--nb-footer); color: rgba(255, 255, 255, .8); font-size: 13px; }
.nb-footer a { color: #fff; }
.nb-footer a:hover { color: var(--nb-accent); }
.nb-footer__upper { padding: 60px 0 50px; }
.nb-footer__grid { display: grid; gap: 40px 60px; }
.nb-footer__grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nb-footer__grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.nb-footer__grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.nb-footer-widget { margin-bottom: 32px; }
.nb-footer-widget:last-child { margin-bottom: 0; }
.nb-footer-title { color: #fff; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; margin: 0 0 22px; }
.nb-brand--footer .nb-brand__text { font-size: 38px; margin-bottom: 18px; }
.nb-brand--footer .nb-brand__text a { color: #fff; }
.nb-about__text { line-height: 1.75; margin-bottom: 14px; }
.nb-about__contact { line-height: 1.9; }
.nb-about__contact strong { color: #fff; }
.nb-footer .nb-card--list { border-top-color: rgba(255, 255, 255, .1); }
.nb-footer .nb-card__title a, .nb-footer .nb-card__title a:hover { color: #fff; }
.nb-footer .nb-meta, .nb-footer .nb-meta__date { color: rgba(255, 255, 255, .6); }
.nb-footer .nb-media { background: #222; }
.nb-comments-list li { position: relative; padding: 0 0 14px 18px; margin-bottom: 14px; border-bottom: 1px solid rgba(255, 255, 255, .08); line-height: 1.5; }
.nb-comments-list li::before { content: ""; position: absolute; left: 0; top: 7px; width: 7px; height: 7px; border: 1px solid var(--nb-accent); border-radius: 50%; }
.nb-comments-list a { font-weight: 500; font-size: 13px; }
.nb-comments-list__meta { display: block; font-size: 10px; text-transform: uppercase; color: rgba(255, 255, 255, .55); letter-spacing: .04em; }
.nb-comments-list__author { color: var(--nb-accent); font-weight: 700; font-style: italic; }
.nb-footer .widget_categories li, .nb-footer .widget_nav_menu li, .nb-footer .widget_pages li, .nb-footer .widget_archive li { padding: 6px 0; }

.nb-footer__lower { background: var(--nb-footer-lower); padding: 42px 0 34px; text-align: center; }
.nb-footer__lower-inner { display: flex; flex-direction: column; align-items: center; gap: 18px; }
.nb-footer__lower .nb-social { justify-content: center; }
.nb-footer-menu { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 22px; font-size: 12px; }
.nb-footer-menu a { color: rgba(255, 255, 255, .8); }
.nb-footer__copy { margin: 0; font-size: 12px; color: rgba(255, 255, 255, .6); }

.nb-back-to-top {
	position: fixed; right: 22px; bottom: 22px; z-index: 40; width: 42px; height: 42px; display: flex; align-items: center; justify-content: center;
	background: var(--nb-text); color: #fff; font-size: 20px; border-radius: 50%; opacity: 0; visibility: hidden; transform: translateY(10px); transition: opacity .2s, transform .2s, visibility .2s, background .15s;
}
.nb-back-to-top.is-visible { opacity: .9; visibility: visible; transform: none; }
.nb-back-to-top:hover { background: var(--nb-accent); color: #fff; }

/* WordPress core classes */
.gallery-caption { display: block; }
/* .sticky and .bypostauthor intentionally carry no layout rules (cards rely on display:grid). */
.wp-caption { max-width: 100%; }
.alignnone { margin: 0 0 1.4em; }

/* 14. Dark mode ------------------------------------------------------------- */
html.nb-dark {
	--nb-text: #ededed;
	--nb-text-2: #b7b7b7;
	--nb-meta: #c3c3c3;
	--nb-muted: #8f8f8f;
	--nb-border: #2a2b2f;
	--nb-border-2: #3a3b40;
	--nb-bg: #151619;
	--nb-bg-alt: #1d1e22;
	--nb-dark: #0c0c0e;
	--nb-header-shadow: 0 1px 0 #2a2b2f;
	color-scheme: dark;
}
html.nb-dark .entry-content { color: #d6d6d6; }
html.nb-dark .nb-media__fallback { background: linear-gradient(135deg, #22252a, #1b1d21); color: rgba(255, 255, 255, .12); }
html.nb-dark .nb-btn--dark { background: #333; }
html.nb-dark .nb-back-to-top { background: #333; }

/* 15. Responsive ------------------------------------------------------------ */
@media (max-width: 1320px) {
	.nb-share--float { display: none; }
}
/* With a left sidebar the gutter is occupied, so the floating bar is not used. */
body.nb-sidebar-left .nb-share--float { display: none; }

@media (max-width: 1100px) {
	:root { --nb-sidebar: 300px; --nb-gap: 28px; }
	.nb-layout { gap: 0 48px; }
	.nb-layout--sidebar > .nb-layout__sidebar::before { left: -24px; }
	.nb-menu > li > a { padding: 0 13px; font-size: 13px; }
	.nb-grid--5 { gap: 26px 22px; }
	.nb-card--hero .nb-card__title { font-size: 22px; }
}

@media (max-width: 1023px) {
	.nb-layout--sidebar,
	body.nb-sidebar-left .nb-layout--sidebar,
	body.nb-sidebar-left .nb-home-group.nb-layout--sidebar { grid-template-columns: minmax(0, 1fr); }
	body.nb-sidebar-left .nb-layout--sidebar > .nb-layout__sidebar { order: 0; }
	.nb-layout--sidebar > .nb-layout__sidebar { margin-top: 50px; padding-top: 40px; border-top: 1px solid var(--nb-border); }
	.nb-layout--sidebar > .nb-layout__sidebar::before { content: none; }
	.nb-sticky-sidebar .nb-sidebar__inner { position: static; }
	.nb-sidebar__inner { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 36px; }
	.nb-sidebar .widget { margin-bottom: 0; }

	.nb-hero__grid { grid-template-columns: minmax(0, 1fr); }
	.nb-hero__side { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 28px; }
	.nb-hero__side > .nb-card--lead { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; align-items: start; }
	.nb-hero__side > .nb-card--lead .nb-card__body { padding-top: 0; }
	.nb-hero__side > .nb-card--list:last-child { padding-bottom: 18px; }

	.nb-grid--5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.nb-strip__grid { grid-template-columns: minmax(0, 1fr); }
	.nb-strip__main .nb-card--overlay { margin: 0 calc(var(--nb-gutter) * -1); }
	.nb-strip__side { padding-top: 0; }
	.nb-footer__grid--3, .nb-footer__grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 860px) {
	.nb-topbar__inner { min-height: 0; padding: 14px 0; }
	.nb-topbar { display: none; }
	.nb-navbar__inner { grid-template-columns: auto 1fr auto; min-height: 58px; }
	.nb-primary-nav { display: none; }
	.nb-menu-toggle.nb-hide-desktop { display: inline-flex; }
	.nb-navbar__left { gap: 10px; }
	.nb-navbar__mobile-brand { display: block; }
	.nb-navbar__mobile-brand .nb-brand__text { font-size: 30px; }
	.nb-navbar__mobile-brand .custom-logo { max-height: 40px; }
	.nb-navbar__left { grid-column: 1 / 3; }
	.admin-bar .nb-navbar.is-stuck { top: 46px; }
}
@media (min-width: 861px) {
	.nb-hide-desktop { display: none; }
}

@media (max-width: 767px) {
	:root { --nb-gutter: 16px; --nb-gap: 22px; }
	body { font-size: 14px; }
	.nb-hero { margin-top: 20px; }
	.nb-card--hero__box { margin: 0; padding: 16px 0 0; }
	.nb-card--hero .nb-card__title { font-size: 21px; }
	.nb-hero__side { grid-template-columns: minmax(0, 1fr); margin-top: 8px; }
	.nb-hero__side > .nb-card--lead { grid-template-columns: minmax(0, 1fr); gap: 0; }
	.nb-hero__side > .nb-card--lead .nb-card__body { padding-top: 14px; }

	.nb-grid--5, .nb-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; }
	.nb-block__top { grid-template-columns: minmax(0, 1fr); gap: 24px; }
	.nb-block__bottom { margin-top: 28px; }
	.nb-block--block-b .nb-block__side, .nb-block--block-c .nb-block__side { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
	.nb-card--lead .nb-card__title { font-size: 19px; }
	.nb-card__title { font-size: 14px; }

	.nb-strip__side { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 16px; }
	.nb-card--overlay .nb-card__title { font-size: 20px; }
	.nb-strip__main .nb-card--overlay .nb-media { min-height: 300px; }

	.nb-sidebar__inner { grid-template-columns: minmax(0, 1fr); }

	.nb-archive-header__title { font-size: 26px; }
	.nb-archive__items--grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
	.nb-card--archive-list { grid-template-columns: minmax(0, 1fr); gap: 14px; }

	.nb-article__title { font-size: 27px; }
	.nb-article__subtitle { font-size: 15px; }
	.entry-content, .nb-article__footer { padding: 0; }
	.entry-content .alignwide, .entry-content .alignfull { margin-left: 0; margin-right: 0; }
	.entry-content { font-size: 15.5px; }
	.entry-content .alignleft, .entry-content .alignright { float: none; margin: 0 0 1.4em; max-width: 100%; }
	.nb-share--top .nb-share__btn { min-width: 0; padding: 0 12px; }
	.nb-share--top .nb-share__label { display: none; }
	.nb-related, .nb-comments { margin-left: 0; margin-right: 0; }
	.nb-related .nb-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.nb-post-nav { grid-template-columns: minmax(0, 1fr); gap: 18px; }
	.nb-post-nav__item--next { text-align: left; }
	.nb-author-box { grid-template-columns: 64px minmax(0, 1fr); gap: 16px; }
	.nb-author-box__avatar img { width: 64px; height: 64px; }
	.comment-form { grid-template-columns: minmax(0, 1fr); }
	.nb-comment-list .children { padding-left: 18px; }

	.nb-footer__grid--2, .nb-footer__grid--3, .nb-footer__grid--4 { grid-template-columns: minmax(0, 1fr); }
	.nb-footer__upper { padding: 44px 0 36px; }
	.nb-share--bottom { flex-direction: column; align-items: flex-start; gap: 10px; }
}

@media (max-width: 480px) {
	.nb-grid--5 { grid-template-columns: minmax(0, 1fr); }
	.nb-grid--5 .nb-card--grid,
	.nb-grid--3 .nb-card--grid { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 14px; align-items: start; }
	.nb-grid--3 { grid-template-columns: minmax(0, 1fr); gap: 18px; }
	.nb-grid--5 .nb-card--grid .nb-card__body,
	.nb-grid--3 .nb-card--grid .nb-card__body { padding-top: 0; }
	.nb-block--block-b .nb-block__side, .nb-block--block-c .nb-block__side { grid-template-columns: minmax(0, 1fr); }
	.nb-strip__side { grid-template-columns: minmax(0, 1fr); }
	.nb-strip__side .nb-card--grid { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 14px; align-items: start; }
	.nb-strip__side .nb-card--grid .nb-card__body { padding-top: 0; }
	.nb-related .nb-grid--3 { grid-template-columns: minmax(0, 1fr); }
	.nb-follow { grid-template-columns: minmax(0, 1fr); }
	.nb-article__title { font-size: 24px; }
	.nb-article__meta > * + *::before { margin-right: 8px; }
	.nb-article__meta { gap: 6px 8px; }
	.nb-404__code { font-size: 84px; }
}

@media print {
	.nb-header, .nb-footer, .nb-sidebar, .nb-share, .nb-related, .nb-comments, .nb-ad, .nb-back-to-top, .nb-offcanvas { display: none !important; }
	.nb-layout--sidebar { grid-template-columns: 1fr; }
}
