/*
Theme Name: Booknation
Theme URI: https://booknation.ro/
Description: Custom Booknation theme (standalone, no Divi).
Author: Booknation
Version: 1.0.1
Text Domain: booknation
Requires at least: 6.0
Requires PHP: 7.4
*/

/* Minimal base — layout styles live in /assets/css/bn-*.css */

:root {
	--bn-font-display: "Sansita", sans-serif;
	--bn-font-text: "Open Sans", sans-serif;
	--bn-ink: #3e4a64;
	--bn-coral: #bf5d54;
	--bn-text: #333333;
}

body {
	margin: 0;
	background: #fff;
	color: var(--bn-text);
	font-family: var(--bn-font-text);
}

img {
	max-width: 100%;
	height: auto;
}

a {
	color: var(--bn-coral);
}

.bn-site-main {
	min-height: 40vh;
}

/* Reading / listing containers — must stay in critical CSS (see assets.php). */
.bn-content-wrap {
	width: 100%;
	max-width: 1120px;
	margin-left: auto;
	margin-right: auto;
	padding: 1.5rem 1rem 3rem;
	box-sizing: border-box;
}

.bn-content-wrap--article {
	max-width: 1120px; /* same operable width as category archives */
	padding-left: 1rem;
	padding-right: 1rem;
}

.bn-content-wrap--narrow {
	max-width: 36rem;
}

.bn-archive__title,
.bn-single__title,
.bn-page__title {
	color: var(--bn-ink);
	font-family: var(--bn-font-display);
	font-style: italic;
	font-weight: 800;
	line-height: 1.25;
	margin: 0 0 1rem;
}

.bn-archive__desc {
	margin: 0 0 1.25rem;
	color: #555;
	line-height: 1.55;
}

.bn-archive__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.25rem 1rem;
	/* Top gap comes from .bn-breadcrumbs-bar padding-bottom */
	margin: 0 0 2rem;
}

@media (min-width: 768px) {
	.bn-archive__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 1.75rem 1.25rem;
	}
}

@media (min-width: 1024px) {
	.bn-archive__grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

.bn-single__meta {
	font-size: 0.9rem;
	color: #666;
	margin: 0 0 1.25rem;
}

.bn-single__meta a {
	color: var(--bn-coral);
	text-decoration: none;
}

.bn-single__meta a:hover {
	color: var(--bn-ink);
	text-decoration: underline;
}

.bn-single__content,
.bn-page__content {
	line-height: 1.65;
	color: var(--bn-text);
	font-family: var(--bn-font-text);
	font-size: 1.125rem;
}

.bn-single__content a,
.bn-page__content a,
.entry-content a {
	color: var(--bn-coral);
	text-decoration: underline;
}

.bn-single__content a:hover,
.bn-page__content a:hover,
.entry-content a:hover {
	color: #a84f47;
}

.bn-single__content h2,
.bn-single__content h3,
.bn-page__content h2,
.bn-page__content h3 {
	color: var(--bn-ink);
	font-family: var(--bn-font-display);
	font-style: italic;
	font-weight: 800;
	clear: both;
}

.bn-single__content blockquote,
.bn-page__content blockquote {
	text-align: left;
	display: block;
	width: 100%;
	clear: both;
	font-size: 1em;
	background: #f9f9f9;
	border-left: 10px solid #d95e54;
	padding: 20px;
	border-radius: 4px;
	box-sizing: border-box;
}

/* Misused blockquotes that still contain images: drop quote chrome. */
.bn-single__content blockquote:has(img),
.bn-page__content blockquote:has(img) {
	background: transparent;
	border: 0;
	padding: 0;
	width: auto;
	clear: none;
	border-radius: 0;
}

/* Classic editor / media alignments — float so body text wraps elegantly. */
.bn-single__content .alignleft,
.bn-page__content .alignleft,
.entry-content .alignleft {
	float: left;
	margin: 0.15em 1.35em 1em 0;
	max-width: min(280px, 42%);
	height: auto;
}

.bn-single__content .alignright,
.bn-page__content .alignright,
.entry-content .alignright {
	float: right;
	margin: 0.15em 0 1em 1.35em;
	max-width: min(280px, 42%);
	height: auto;
}

.bn-single__content .aligncenter,
.bn-page__content .aligncenter,
.entry-content .aligncenter {
	display: block;
	float: none;
	margin: 1em auto;
	max-width: 100%;
	height: auto;
}

.bn-single__content a:has(> img.alignleft),
.bn-page__content a:has(> img.alignleft),
.entry-content a:has(> img.alignleft) {
	float: left;
	margin: 0.15em 1.35em 1em 0;
	max-width: min(280px, 42%);
}

.bn-single__content a:has(> img.alignleft) img,
.bn-page__content a:has(> img.alignleft) img,
.entry-content a:has(> img.alignleft) img {
	float: none;
	display: block;
	margin: 0;
	max-width: 100%;
	height: auto;
}

.bn-single__content a:has(> img.alignright),
.bn-page__content a:has(> img.alignright),
.entry-content a:has(> img.alignright) {
	float: right;
	margin: 0.15em 0 1em 1.35em;
	max-width: min(280px, 42%);
}

.bn-single__content a:has(> img.alignright) img,
.bn-page__content a:has(> img.alignright) img,
.entry-content a:has(> img.alignright) img {
	float: none;
	display: block;
	margin: 0;
	max-width: 100%;
	height: auto;
}

.bn-single__content::after,
.bn-page__content::after,
.entry-content::after {
	content: "";
	display: table;
	clear: both;
}

@media (max-width: 560px) {
	.bn-single__content .alignleft,
	.bn-page__content .alignleft,
	.entry-content .alignleft,
	.bn-single__content .alignright,
	.bn-page__content .alignright,
	.entry-content .alignright,
	.bn-single__content a:has(> img.alignleft),
	.bn-page__content a:has(> img.alignleft),
	.entry-content a:has(> img.alignleft),
	.bn-single__content a:has(> img.alignright),
	.bn-page__content a:has(> img.alignright),
	.entry-content a:has(> img.alignright) {
		float: none;
		display: block;
		margin: 0 auto 1em;
		max-width: min(220px, 70%);
	}
}

/* Author archive: hero already shows the name */
body.author .bn-author-archive__name {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.bn-404 {
	text-align: center;
	padding: 3rem 1rem;
}

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}
