
/* HIKARI BUDŌ Library Search 2.2.0
   Editorial light theme aligned with hikaridojo.org */

.hbl-search-shell{
	--hbl-bg:#f6f1e8;
	--hbl-paper:#fbf8f2;
	--hbl-ink:#111;
	--hbl-muted:#746e66;
	--hbl-line:#d8cec0;
	--hbl-red:#9d1f24;
	--hbl-red-dark:#74171b;
	color:var(--hbl-ink);
	font-family:inherit;
	margin:28px 0 34px;
	width:100%;
}

.hbl-search-shell *{box-sizing:border-box}

.hbl-editorial-search{
	border-top:1px solid var(--hbl-ink);
	border-bottom:1px solid var(--hbl-line);
	padding:18px 0 15px;
	background:transparent;
}

.hbl-section-label{
	color:var(--hbl-red);
	font-size:10px;
	font-weight:700;
	letter-spacing:.16em;
	line-height:1.2;
	margin:0 0 10px;
}

.hbl-search-row{
	display:grid !important;
	grid-template-columns:minmax(0,1fr) 104px;
	gap:8px;
	align-items:stretch;
	margin:0 0 14px;
}

.hbl-search-shell input.hbl-q,
.hbl-search-shell select{
	display:block;
	width:100%;
	min-width:0;
	height:39px;
	min-height:39px;
	margin:0;
	padding:7px 10px;
	border:1px solid var(--hbl-line);
	border-radius:0;
	background:var(--hbl-paper);
	color:var(--hbl-ink);
	box-shadow:none;
	font:inherit;
	font-size:12px;
	line-height:1.2;
	outline:none;
	appearance:auto;
}

.hbl-search-shell input.hbl-q:focus,
.hbl-search-shell select:focus{
	border-color:#81786d;
	box-shadow:0 0 0 1px #81786d;
}

.hbl-search-btn{
	display:flex;
	align-items:center;
	justify-content:center;
	height:39px;
	margin:0;
	padding:0 16px;
	border:1px solid var(--hbl-red);
	border-radius:0;
	background:var(--hbl-red);
	color:#fff;
	font:inherit;
	font-size:10px;
	font-weight:700;
	letter-spacing:.08em;
	text-transform:uppercase;
	cursor:pointer;
}

.hbl-search-btn:hover{
	background:var(--hbl-red-dark);
	border-color:var(--hbl-red-dark);
}

.hbl-primary-filters,
.hbl-secondary-filters{
	display:grid !important;
	grid-template-columns:repeat(4,minmax(0,1fr));
	gap:10px;
	align-items:end;
}

.hbl-search-shell label{
	display:block;
	margin:0;
	padding:0;
	font:inherit;
}

.hbl-search-shell label>span{
	display:block;
	margin:0 0 4px;
	color:var(--hbl-muted);
	font-size:9px;
	font-weight:700;
	line-height:1.2;
	letter-spacing:.08em;
	text-transform:uppercase;
}

.hbl-more{
	display:block;
	margin:10px 0 0;
	padding:8px 0 0;
	border-top:1px solid #e1d9cd;
}

.hbl-more summary{
	width:max-content;
	color:#5f5952;
	font-size:10px;
	font-weight:600;
	line-height:1.2;
	cursor:pointer;
	user-select:none;
}

.hbl-secondary-filters{margin-top:10px}

.hbl-actions{
	display:flex !important;
	align-items:center;
	gap:12px;
	min-height:22px;
	margin-top:10px;
}

.hbl-reset{
	margin:0;
	padding:0;
	border:0;
	background:transparent;
	color:var(--hbl-red);
	font:inherit;
	font-size:9px;
	font-weight:700;
	letter-spacing:.08em;
	text-transform:uppercase;
	cursor:pointer;
}

.hbl-status{
	color:var(--hbl-muted);
	font-size:10px;
	line-height:1.2;
}

.hbl-search-shell.is-loading .hbl-results{opacity:.45;pointer-events:none}

.hbl-results{margin-top:20px}

.hbl-results-head{
	display:flex;
	justify-content:space-between;
	gap:12px;
	margin-bottom:12px;
	padding-bottom:7px;
	border-bottom:1px solid var(--hbl-line);
	color:var(--hbl-muted);
	font-size:10px;
}


.hbl-grid{
	display:grid !important;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:12px;
	align-items:stretch;
}

/* Filtered results deliberately use the same editorial language
   as the visible HIKARI BUDŌ Library catalogue. */
.hbl-card{
	display:flex !important;
	flex-direction:column;
	min-width:0;
	min-height:100%;
	overflow:hidden;
	border:1px solid #d8cfc2;
	background:#f8f3eb;
	box-shadow:none;
}

.hbl-cover{
	position:relative;
	width:100%;
	aspect-ratio:1.62 / 1;
	min-height:0;
	overflow:hidden;
	background:#e7ded1;
	border-bottom:1px solid #ded4c6;
}

.hbl-cover a{
	display:block;
	width:100%;
	height:100%;
	text-decoration:none;
}

.hbl-cover img{
	display:block;
	width:100%;
	height:100%;
	min-height:0;
	object-fit:cover;
	object-position:center;
}

.hbl-cover-placeholder{
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	width:100%;
	height:100%;
	min-height:0;
	border:0;
	color:#171717;
	text-align:center;
	text-decoration:none;
	letter-spacing:.1em;
	background:
		linear-gradient(rgba(246,240,231,.88),rgba(246,240,231,.88)),
		linear-gradient(135deg,#dfd4c5 0%,#f1eadf 100%);
}

.hbl-cover-placeholder span{
	font-family:Georgia,"Times New Roman",serif;
	font-size:15px;
	font-weight:700;
	letter-spacing:.08em;
}

.hbl-cover-placeholder small{
	margin-top:5px;
	color:#8a8177;
	font-size:7px;
	letter-spacing:.12em;
}

.hbl-card-body{
	display:flex;
	flex:1 1 auto;
	flex-direction:column;
	min-width:0;
	padding:10px 11px 11px;
}

.hbl-kicker{
	margin:0 0 5px;
	color:var(--hbl-red);
	font-size:7px;
	font-weight:700;
	line-height:1.2;
	letter-spacing:.07em;
	text-transform:uppercase;
}

.hbl-card h3{
	margin:0 0 5px;
	font-family:Georgia,"Times New Roman",serif;
	font-size:13px;
	font-weight:700;
	line-height:1.18;
}

.hbl-card h3 a{
	color:#121212;
	text-decoration:none;
}

.hbl-card h3 a:hover{
	color:var(--hbl-red);
}

.hbl-author{
	margin:0 0 5px;
	color:#5f5952;
	font-size:8px;
	font-style:italic;
	line-height:1.3;
}

.hbl-excerpt{
	margin:0 0 7px;
	color:#756f67;
	font-size:7.5px;
	line-height:1.42;
}

.hbl-meta{
	display:flex;
	flex-wrap:wrap;
	gap:3px 6px;
	margin:0 0 7px;
	color:#8a837a;
	font-size:7px;
	line-height:1.25;
}

.hbl-meta span:not(:last-child)::after{
	content:"·";
	margin-left:6px;
	color:#b1a79b;
}

/* Topics/collections remain searchable but do not turn the card into a tag cloud. */
.hbl-tags{
	display:none !important;
}

.hbl-view{
	display:inline-block;
	align-self:flex-start;
	margin-top:auto;
	padding-top:2px;
	color:var(--hbl-red);
	font-size:7px;
	font-weight:700;
	letter-spacing:.08em;
	text-decoration:none;
	text-transform:uppercase;
}

.hbl-view::after{
	content:" →";
}

.hbl-view:hover{
	color:var(--hbl-red-dark);
}

.hbl-pagination{
	display:flex;
	flex-wrap:wrap;
	justify-content:center;
	gap:5px;
	margin-top:18px;
}

.hbl-page{
	min-width:28px;
	height:28px;
	margin:0;
	border:1px solid var(--hbl-line);
	border-radius:0;
	background:transparent;
	color:#111;
	font:inherit;
	font-size:9px;
	cursor:pointer;
}

.hbl-page.is-active{
	border-color:var(--hbl-red);
	background:var(--hbl-red);
	color:#fff;
}

.hbl-empty{
	padding:20px 0;
	border-top:1px solid var(--hbl-line);
	border-bottom:1px solid var(--hbl-line);
}

.hbl-empty strong,
.hbl-empty span{
	display:block;
}

.hbl-empty span{
	margin-top:4px;
	color:var(--hbl-muted);
	font-size:10px;
}

/* auto-mount wrapper itself must not alter site layout */
#hbl-auto-mount{
	display:block;
	width:100%;
	margin:0;
	padding:0;
}

@media(max-width:900px){
	.hbl-primary-filters,
	.hbl-secondary-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
	.hbl-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:620px){
	.hbl-search-row{grid-template-columns:1fr}
	.hbl-search-btn{width:100%}
	.hbl-primary-filters,
	.hbl-secondary-filters,
	.hbl-grid{grid-template-columns:1fr}
	.hbl-card{grid-template-columns:78px minmax(0,1fr)}
}

.hbl-search-form{margin:0;padding:0}.hbl-reset{display:inline-block;text-decoration:none}.hbl-results-server{display:block!important;margin-top:18px}.hbl-server-active{margin-bottom:36px}
