/* ==================================================================
 * blog.css — archives, cards, single entries, prose, pagination, 404, search.
 * Loaded on blog / archive / search / 404 / singular views.
 * ================================================================== */

/* ------------------------------------------------ Cards */
.qaf-cards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 26px;
}
.qaf-card { display: flex; }
.qaf-card__link {
	display: flex;
	flex-direction: column;
	inline-size: 100%;
	background: var(--qaf-paper);
	border: 1px solid var(--qaf-line);
	border-radius: var(--qaf-radius);
	transition: transform .9s var(--qaf-ease-out), box-shadow .9s var(--qaf-ease-out), border-color .7s var(--qaf-ease-out);
}
.qaf-card__link:hover { transform: translate3d(0, -6px, 0); box-shadow: var(--qaf-shadow-m); border-color: var(--qaf-primary); }
.qaf-card__media { border: 0; }
.qaf-card__media .qaf-frame__media { aspect-ratio: 16 / 11; block-size: auto; }
.qaf-card__link:hover .qaf-frame__media img { transform: scale(1.06); }
.qaf-card__ph { display: block; inline-size: 100%; block-size: 100%; background: repeating-linear-gradient(135deg, rgba(var(--qaf-ink-rgb), .05) 0 2px, transparent 2px 13px); }
.qaf-card__body { display: flex; flex-direction: column; flex: 1; gap: 12px; padding: 22px 26px 28px; }
.qaf-card__meta { font-family: var(--qaf-font-num); font-size: 12px; color: var(--qaf-muted); }
.qaf-card__title { font-size: var(--qaf-h4); line-height: 1.5; }
.qaf-card__text { font-size: 14.5px; line-height: 2; color: var(--qaf-muted-2); }
.qaf-card__body .qaf-link { margin-block-start: auto; font-size: 13.5px; }

/* ------------------------------------------------ Single */
.qaf-single__in { max-inline-size: 900px; }
.qaf-single__meta { margin-block-end: 26px; font-size: 13px; color: var(--qaf-muted); }
.qaf-single__meta a { color: var(--qaf-primary-dark); }

.qaf-prose { font-size: 17px; line-height: 2.2; color: var(--qaf-body); }
.qaf-prose > * + * { margin-block-start: 1.2em; }
.qaf-prose h2 { font-size: var(--qaf-h3); margin-block-start: 1.6em; }
.qaf-prose h3 { font-size: var(--qaf-h4); margin-block-start: 1.4em; }
.qaf-prose a { color: var(--qaf-primary-dark); background: linear-gradient(currentColor, currentColor) no-repeat 0 100% / 100% 1px; }
.qaf-prose ul, .qaf-prose ol { padding-inline-start: 1.3em; }
.qaf-prose ul { list-style: none; }
.qaf-prose ul li { position: relative; }
.qaf-prose ul li::before { content: ""; position: absolute; inset-inline-start: -1.1em; inset-block-start: .95em; inline-size: 6px; block-size: 6px; background: var(--qaf-primary); transform: rotate(45deg); }
.qaf-prose ol { list-style: decimal; }
.qaf-prose blockquote { margin-inline: 0; padding-inline-start: 24px; border-inline-start: 3px solid var(--qaf-primary); font-family: var(--qaf-font-h); font-size: 1.3em; color: var(--qaf-ink); }
.qaf-prose img { margin-block: 1.6em; }

.qaf-postnav { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-block-start: 60px; padding-block-start: 30px; border-block-start: 1px solid var(--qaf-line); }
.qaf-postnav__item { display: flex; align-items: center; gap: 12px; font-family: var(--qaf-font-h); font-weight: 700; color: var(--qaf-ink); transition: color .5s var(--qaf-ease-out); }
.qaf-postnav__item:hover { color: var(--qaf-primary-dark); }
.qaf-postnav__item--prev .qaf-icon { scale: -1 1; color: var(--qaf-primary); }
.qaf-postnav__item--next { justify-content: flex-end; text-align: end; grid-column: 2; }
.qaf-postnav__item--next .qaf-icon { color: var(--qaf-primary); }

/* ------------------------------------------------ Pagination */
.qaf-pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-block-start: 56px; }
.qaf-pagination .page-numbers {
	display: grid;
	place-items: center;
	min-inline-size: 46px;
	block-size: 46px;
	padding-inline: 12px;
	border: 1px solid var(--qaf-line);
	font-family: var(--qaf-font-num);
	font-size: 14px;
	color: var(--qaf-ink);
	transition: background-color .5s var(--qaf-ease-out), border-color .5s var(--qaf-ease-out), color .5s;
}
.qaf-pagination .page-numbers:hover { border-color: var(--qaf-primary); }
.qaf-pagination .current { background: var(--qaf-ink); border-color: var(--qaf-ink); color: var(--qaf-primary); }
.qaf-flip { scale: -1 1; }

/* ------------------------------------------------ Empty / search */
.qaf-empty { display: flex; flex-direction: column; align-items: center; gap: 24px; padding-block: 40px; text-align: center; font-size: 17px; }
.qaf-search { display: flex; inline-size: min(520px, 100%); border: 1px solid var(--qaf-line); background: var(--qaf-paper); }
.qaf-search input { flex: 1; min-inline-size: 0; padding: 14px 18px; border: 0; background: none; outline: 0; }
.qaf-search button { display: grid; place-items: center; inline-size: 54px; background: var(--qaf-ink); color: var(--qaf-primary); }

/* ------------------------------------------------ 404 */
.qaf-404 { position: relative; display: grid; min-block-size: 72vh; place-items: center; background: var(--qaf-ink); color: var(--qaf-on-dark); overflow: hidden; isolation: isolate; text-align: center; }
.qaf-404__in { display: flex; flex-direction: column; align-items: center; gap: 22px; padding-block: 80px; }
.qaf-404__code { font-family: var(--qaf-font-num); font-size: clamp(90px, 16vw, 220px); line-height: 1; color: transparent; -webkit-text-stroke: 1px var(--qaf-primary); }
.qaf-404__title { font-size: var(--qaf-h2); color: var(--qaf-paper); }
.qaf-404 .qaf-dbl-rule { align-items: center; }
.qaf-404__text { color: var(--qaf-on-dark); }

@media (max-width: 1024px) { .qaf-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 680px) {
	.qaf-cards { grid-template-columns: 1fr; gap: 18px; }
	.qaf-postnav { grid-template-columns: 1fr; }
	.qaf-postnav__item--next { grid-column: auto; }
	.qaf-prose { font-size: 16px; }
}

/* ==================================================================
 * v2.2 — Articles
 * ================================================================== */

/* Chips shared look (large) */
.qaf-chip--lg { padding: 9px 20px; font-size: 13px; color: var(--qaf-body); border-color: var(--qaf-line); }
.qaf-chip { --qaf-tag: var(--qaf-ink); }
a.qaf-chip:hover { border-color: var(--qaf-ink); color: var(--qaf-ink); }
a.qaf-chip.is-active { background: var(--qaf-ink); border-color: var(--qaf-ink); color: var(--qaf-bg); }

/* Category bar */
.qaf-catbar { background: #fff; border-block-end: 1px solid var(--qaf-line); }
.qaf-catbar__in { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-block: 24px; }
.qaf-catbar__chips { display: flex; align-items: center; gap: 10px; overflow-x: auto; scrollbar-width: none; }
.qaf-catbar__chips::-webkit-scrollbar { display: none; }
.qaf-catbar__search { display: flex; align-items: center; gap: 10px; min-inline-size: 240px; padding: 10px 16px; border: 1px solid var(--qaf-line); color: var(--qaf-muted); transition: border-color .5s var(--qaf-ease-out); }
.qaf-catbar__search:focus-within { border-color: var(--qaf-primary); }
.qaf-catbar__search input { flex: 1; min-inline-size: 0; border: 0; background: none; outline: 0; font-size: 14px; color: var(--qaf-ink); }
.qaf-catbar__search .qaf-icon { color: var(--qaf-primary); }

/* Meta line */
.qaf-pmeta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; font-size: 11.5px; letter-spacing: .1em; color: var(--qaf-primary); line-height: 1.6; }
.qaf-pmeta__sep { color: #c6bca8; font-size: 9px; }
.qaf-ahead .qaf-pmeta__sep { color: #4a442f; }

/* Featured */
.qaf-featured { background: var(--qaf-bg); padding-block: clamp(52px, 5.3vw, 76px) 20px; }
.qaf-featured__grid { display: grid; grid-template-columns: 1.25fr 1fr; gap: clamp(28px, 3.5vw, 50px); align-items: center; }
.qaf-featured__media { position: relative; display: block; }
.qaf-featured__arch { display: block; block-size: clamp(320px, 33vw, 480px); border-radius: 240px 240px 3px 3px; }
.qaf-featured__img { display: block; block-size: 100%; }
.qaf-featured__img img { inline-size: 100%; block-size: 100%; object-fit: cover; transition: transform 1.8s var(--qaf-ease-out); }
.qaf-featured__media:hover img { transform: scale(1.05); }
.qaf-featured__badge { position: absolute; inset-block-start: 30px; inset-inline-start: 30px; padding: 8px 16px; background: var(--qaf-primary); color: var(--qaf-ink); font-size: 11.5px; letter-spacing: .12em; }
.qaf-featured__body { display: flex; flex-direction: column; gap: 22px; }
.qaf-featured__title { font-size: clamp(30px, 3.05vw, 44px); line-height: 1.6; }
.qaf-featured__title a { background: linear-gradient(var(--qaf-primary), var(--qaf-primary)) no-repeat var(--qaf-origin-end, right) 100% / 0 1px; transition: background-size 1s var(--qaf-ease-out); }
.qaf-featured__title a:hover { background-size: 100% 1px; background-position-x: var(--qaf-origin-start, left); }
.qaf-featured__rule { display: block; inline-size: 70px; block-size: 1px; }
.qaf-featured__rule span { display: block; block-size: 100%; background: var(--qaf-primary); transform-origin: var(--qaf-origin-start, left) center; }
.qaf-featured__text { font-size: 16.5px; line-height: 2.2; font-weight: 300; color: var(--qaf-muted-2); }

/* Grid */
.qaf-blog { padding-block: clamp(52px, 5vw, 76px) clamp(64px, 6.25vw, 90px); }
.qaf-blog--after-featured { padding-block-start: 20px; }
.qaf-agrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; }
.qaf-acard__link { display: flex; flex-direction: column; gap: 18px; color: inherit; }
.qaf-acard__media { display: block; block-size: 250px; border-radius: 125px 125px 3px 3px; background: var(--qaf-bg-soft); }
.qaf-acard__img { display: block; block-size: 100%; }
.qaf-acard__img img { inline-size: 100%; block-size: 100%; object-fit: cover; transition: transform 1.8s var(--qaf-ease-out); }
.qaf-acard__link:hover .qaf-acard__img img { transform: scale(1.07); }
.qaf-acard__title { font-size: clamp(21px, 1.75vw, 25px); line-height: 1.7; transition: color .5s var(--qaf-ease-out); }
.qaf-acard__link:hover .qaf-acard__title { color: var(--qaf-primary-dark); }
.qaf-acard__text { font-size: 14.5px; line-height: 2.05; font-weight: 300; color: var(--qaf-muted-2); }

/* Pagination (design) */
.qaf-pagination { margin-block-start: 66px; gap: 10px; }
.qaf-pagination .page-numbers { min-inline-size: 42px; block-size: 42px; font-family: var(--qaf-font-b); color: var(--qaf-body); }
.qaf-pagination .prev, .qaf-pagination .next { display: inline-flex; gap: 8px; padding-inline: 20px; }
.qaf-pagination .current { background: var(--qaf-ink); color: var(--qaf-bg); }
.qaf-pagination .dots { border: 0; }

/* Article header */
.qaf-ahead { position: relative; background: var(--qaf-ink); color: var(--qaf-on-dark); overflow: hidden; isolation: isolate; }
.qaf-ahead__in { display: flex; flex-direction: column; align-items: center; gap: 22px; padding-block: clamp(64px, 6vw, 86px) clamp(90px, 7vw, 100px); text-align: center; max-inline-size: 1000px; }
.qaf-ahead .qaf-crumbs, .qaf-ahead .qaf-pmeta { justify-content: center; }
.qaf-ahead__title { font-size: clamp(32px, 3.75vw, 54px); line-height: 1.65; }
.qaf-ahead__lead { max-inline-size: 720px; font-size: 17px; line-height: 2.1; font-weight: 300; color: var(--qaf-on-dark-2); }

/* Cover */
.qaf-acover { position: relative; margin-block-start: -40px; }
.qaf-acover__img { display: block; block-size: clamp(260px, 36vw, 520px); overflow: hidden; }
.qaf-acover__img img { inline-size: 100%; block-size: 100%; object-fit: cover; }

/* Body */
.qaf-abody { padding-block: clamp(48px, 5.5vw, 80px) clamp(40px, 4vw, 60px); }
.qaf-abody__grid { display: grid; grid-template-columns: 220px minmax(0, 1fr) 220px; gap: clamp(28px, 3.5vw, 50px); align-items: start; }
.qaf-abody__grid--notoc { grid-template-columns: 220px minmax(0, 760px); }
.qaf-abody__share, .qaf-abody__toc { position: sticky; inset-block-start: calc(var(--qaf-header-h) - var(--qaf-topbar-h) + 28px); }
.qaf-share { display: flex; flex-direction: column; gap: 10px; }
.qaf-share .qaf-side__label { margin-block-end: 6px; }
.qaf-share__btn { display: flex; align-items: center; gap: 11px; padding: 12px 14px; border: 1px solid var(--qaf-line); font-size: 13.5px; color: var(--qaf-body); text-align: start; transition: border-color .5s var(--qaf-ease-out), background-color .5s var(--qaf-ease-out), color .5s; }
.qaf-share__btn .qaf-icon { color: var(--qaf-primary); }
.qaf-share__btn:hover { border-color: var(--qaf-primary); background: #fff; color: var(--qaf-ink); }
.qaf-share__copy.is-done { border-color: var(--qaf-primary); color: var(--qaf-primary-dark); }

.qaf-prose--article { font-size: 17px; line-height: 2.35; color: var(--qaf-body); }
.qaf-prose--article > p:first-child { font-size: 19px; line-height: 2.3; color: #2a2721; }
.qaf-prose--article > * + * { margin-block-start: 30px; }
.qaf-prose--article h2 { font-size: clamp(26px, 2.36vw, 34px); line-height: 1.6; margin-block-start: 40px; scroll-margin-block-start: calc(var(--qaf-header-h) + 20px); }
.qaf-prose--article h3 { font-size: clamp(21px, 1.8vw, 26px); scroll-margin-block-start: calc(var(--qaf-header-h) + 20px); }
.qaf-prose--article blockquote, .qaf-prose--article .wp-block-quote, .qaf-prose--article .wp-block-pullquote { position: relative; margin: 0; padding: 34px 38px; background: var(--qaf-bg-soft); border: 0; border-inline-start: 2px solid var(--qaf-primary); font-family: var(--qaf-font-h); font-weight: 700; font-size: clamp(21px, 1.9vw, 27px); line-height: 1.85; color: var(--qaf-ink); }
.qaf-prose--article blockquote::before { content: "”"; display: block; margin-block-end: 6px; font-family: var(--qaf-font-num); font-size: 48px; line-height: .6; color: var(--qaf-primary); }
.qaf-prose--article blockquote p { margin: 0; }
.qaf-prose--article blockquote cite { display: block; margin-block-start: 12px; font-family: var(--qaf-font-b); font-size: 13px; font-weight: 400; font-style: normal; color: var(--qaf-muted); }
.qaf-prose--article figure img, .qaf-prose--article > img { inline-size: 100%; block-size: auto; }
.qaf-prose--article figcaption { margin-block-start: 12px; font-size: 13px; color: #8e8674; text-align: center; }
.qaf-prose--article table { inline-size: 100%; border-collapse: collapse; font-size: 15px; }
.qaf-prose--article th, .qaf-prose--article td { padding: 12px 14px; border-block-end: 1px solid var(--qaf-line); text-align: start; }
.qaf-prose--article th { color: var(--qaf-ink); font-weight: 500; }
.qaf-atags { display: flex; flex-wrap: wrap; gap: 8px; margin-block-start: 46px; padding-block-start: 30px; border-block-start: 1px solid var(--qaf-line); }
.qaf-atags .qaf-chip { padding: 7px 14px; font-size: 12px; color: var(--qaf-muted-2); border-color: var(--qaf-line); }

/* TOC */
.qaf-toc { display: flex; flex-direction: column; gap: 16px; }
.qaf-toc ol { display: flex; flex-direction: column; gap: 12px; }
.qaf-toc__item a { position: relative; display: block; padding-inline-start: 12px; font-size: 14px; line-height: 1.8; color: #8e8674; border-inline-start: 2px solid #ded6c7; transition: color .5s var(--qaf-ease-out), border-color .5s var(--qaf-ease-out); }
.qaf-toc__item--h3 a { padding-inline-start: 22px; font-size: 13px; }
.qaf-toc__item a:hover { color: var(--qaf-ink); }
.qaf-toc__item.is-active a { color: var(--qaf-ink); border-color: var(--qaf-primary); }

/* Related */
.qaf-related { padding-block: 60px 90px; }
.qaf-related .qaf-kicker { margin-block-end: 36px; }
.qaf-related__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.qaf-rcard { display: flex; flex-direction: column; gap: 16px; color: inherit; }
.qaf-rcard__img { display: block; block-size: 200px; overflow: hidden; background: #dad2c2; }
.qaf-rcard__img img { inline-size: 100%; block-size: 100%; object-fit: cover; transition: transform 1.8s var(--qaf-ease-out); }
.qaf-rcard:hover img { transform: scale(1.06); }
.qaf-rcard__title { font-family: var(--qaf-font-h); font-weight: 700; font-size: clamp(20px, 1.6vw, 23px); line-height: 1.7; color: var(--qaf-ink); transition: color .5s; }
.qaf-rcard:hover .qaf-rcard__title { color: var(--qaf-primary-dark); }

@media (max-width: 1100px) {
	.qaf-abody__grid { grid-template-columns: minmax(0, 1fr) 220px; }
	.qaf-abody__grid--notoc { grid-template-columns: minmax(0, 1fr); }
	.qaf-abody__share { position: static; grid-column: 1 / -1; order: 3; }
	.qaf-share { flex-direction: row; flex-wrap: wrap; align-items: center; }
	.qaf-share .qaf-side__label { margin: 0; }
	.qaf-agrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
	.qaf-catbar__in { flex-direction: column; align-items: stretch; gap: 14px; padding-block: 16px; }
	.qaf-catbar__search { min-inline-size: 0; }
	.qaf-featured__grid { grid-template-columns: 1fr; }
	.qaf-featured__arch { border-radius: 170px 170px 3px 3px; block-size: 340px; }
	.qaf-abody__grid { grid-template-columns: 1fr; }
	.qaf-abody__toc { position: static; order: -1; padding: 18px 20px; background: var(--qaf-bg-soft); }
	.qaf-prose--article { font-size: 16px; }
	.qaf-prose--article > p:first-child { font-size: 17px; }
	.qaf-prose--article blockquote { padding: 24px; }
	.qaf-related__grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
	.qaf-agrid { grid-template-columns: 1fr; }
	.qaf-acard__media { block-size: 230px; }
	.qaf-pagination .prev span, .qaf-pagination .next span { display: none; }
}
