/*--------------------------------------------------------------
# Utilities
--------------------------------------------------------------*/

/* Accessibility
--------------------------------------------- */

/* Text meant only for screen readers. */
.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 !important;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	background-color: var(--color-gray-light);
	border-radius: 3px;
	box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
	clip: auto !important;
	clip-path: none;
	color: var(--color-navy);
	display: block;
	font-size: 0.875rem;
	font-family: "Maax Bold";
	font-weight: 400;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000;
}

/* Do not show the outline on the skip link target. */
#primary[tabindex="-1"]:focus {
	outline: 0;
}

.visually-hidden {
  position: absolute; 
  width: 1px; 
  height: 1px; 
  padding: 0; 
  margin: -1px; 
  overflow: hidden; 
  clip: rect(0, 0, 0, 0); 
  white-space: nowrap; /* Avoids line breaks */
  border: 0;
}

/* Alignments
--------------------------------------------- */
.alignleft {

	/*rtl:ignore*/
	float: left;

	/*rtl:ignore*/
	margin-right: 1.5em;
	margin-bottom: 1.5em;
}

.alignright {

	/*rtl:ignore*/
	float: right;

	/*rtl:ignore*/
	margin-left: 1.5em;
	margin-bottom: 1.5em;
}

.aligncenter {
	clear: both;
	display: block;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 1.5em;
}

/* Width Constraints
--------------------------------------------- */
.global--width {
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 1rem;
	padding-right: 1rem;
}

/* Hero Columns — 50/50 grid, stacks on mobile
--------------------------------------------- */
.hero-columns {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2rem;
}

@media (max-width: 768px) {
	.hero-columns {
		grid-template-columns: 1fr;
	}
}

/* Colorize Utility
--------------------------------------------- */
.u-colorize {
	position: relative;
	--u-colorize__color: var(--color-white) !important;
	--u-colorize__alpha: 0.4;
	background: var(--u-colorize__color) !important
}

.u-colorize>* {
	filter: grayscale(100%) !important;
	mix-blend-mode: multiply !important
}

.u-colorize img {
	display: block;
	filter: grayscale(100%) contrast(100%);
	width: 100%;
	height: auto;
}

.u-colorize::after{
	content:'';
	position: absolute;
	inset: 0; 
	mix-blend-mode: multiply;
	pointer-events: none;
}

.u-colorize--green::after {
	background: rgba(var(--color-green-rgb), var(--u-colorize__alpha)) !important
}

.u-colorize--blue::after {
	background: rgba(var(--color-blue-rgb), var(--u-colorize__alpha)) !important
}

.u-colorize--orange::after {
	background: rgba(var(--color-orange-rgb), var(--u-colorize__alpha)) !important
}

.u-colorize--navy::after {
	background: rgba(var(--color-navy-rgb), var(--u-colorize__alpha)) !important
}

.u-colorize--pink::after {
	background: rgba(var(--color-pink-rgb), var(--u-colorize__alpha)) !important
}

.u-colorize--red::after {
	background: rgba(var(--color-red-rgb), var(--u-colorize__alpha)) !important
}

.u-colorize--yellow::after {
	background: rgba(var(--color-yellow-rgb), var(--u-colorize__alpha)) !important
}

.u-colorize--purple::after {
	background: rgba(var(--color-purple-rgb), var(--u-colorize__alpha)) !important
}

/* Badge — Global card-overlay badge
--------------------------------------------- */
.kd-badge {
	display: inline-block;
	position: absolute;
	top: 0.5rem;
	left: 0.5rem;
	z-index: 2;
	padding: 0.15rem 0.5rem;
	font-family: "Maax Bold";
	font-weight: 400;
	font-size: 0.625rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	line-height: 1.6;
	color: var(--color-white);
	background: var(--color-black);
}

/* Card Title — Global card content title
--------------------------------------------- */
.kd-card-title {
	font-family: "Maax Bold";
	font-weight: 400;
	font-size: 0.875rem;
	line-height: 1.2;
	margin: 0;
	color: var(--color-black);
	overflow: hidden;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}

/* Truncate — inline ellipsis for long text (e.g. series names)
--------------------------------------------- */
.kd-truncate {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	display: inline-block;
	max-width: 100%;
	vertical-align: bottom;
}

/* Card Creator — Global card creator/subtitle line
--------------------------------------------- */
.kd-card-creator {
	font-size: 0.8125rem;
	color: var(--color-gray-dark);
	margin: 0;
	line-height: 1.4;
	overflow: hidden;
	display: -webkit-box;
	-webkit-line-clamp: 1;
	-webkit-box-orient: vertical;
}

.kd-badge--lg {
	top: 1rem;
	left: 1rem;
	padding: 0.5rem 0.875rem;
	font-size: 0.75rem;
	line-height: 1;
}

/* Auth-aware visibility
--------------------------------------------- */
.kd-has-user .kd-auth-guest-only {
	display: none !important;
}

/* Product Image — Gray background with hover darken
--------------------------------------------- */
.u-product-image {
	background-color: var(--color-gray-light);
	transition: background-color 0.2s ease;
}

a:hover > .u-product-image {
	background-color: var(--color-gray-mid);
}

/* Placeholder Image Styling
--------------------------------------------- */
.is-placeholder {
	border: 1px solid var(--color-line-3);
	aspect-ratio: 2 / 3; /* Ensures SVG placeholders maintain proper dimensions */
	height: auto;
}

/* Shared ACF block preview placeholder
--------------------------------------------- */
.kodansha-block-preview {
	padding: 2rem;
	background: var(--color-gray-light);
	text-align: center;
}

.kodansha-block-preview__title,
.kodansha-block-preview__description {
	margin: 0;
}

.kodansha-block-preview__description {
	margin-top: 0.5rem;
	color: var(--color-text-2);
	font-size: 0.875rem;
}

/* Error Page
--------------------------------------------- */
.error-page {
	padding: 100px 0;
	text-align: center;
}

.error-page__code {
	font-family: "Maax Bold";
	font-size: 5rem;
	font-weight: 400;
	line-height: 1;
	margin-bottom: 1rem;
}

.error-page__title {
	font-family: "Maax Bold";
	font-size: 1.5rem;
	font-weight: 400;
	margin-bottom: 1rem;
}

.error-page__message {
	margin-bottom: 2rem;
	color: var(--color-text-2);
}
