@charset "UTF-8";

/*
 * Ported from wp-content/themes/swell_child/assets/entity-pages.css,
 * scoped to only the circle/creator subset of that shared
 * series/circle/creator stylesheet -- the series master page already has
 * its own complete, independently-implemented series-master-v42.css and
 * is not touched here. Rules that only ever apply to series markup
 * (.entity-page--series, the template-local .breadcrumb, .reading-box,
 * .quicknav*, .series-data*, .entity-relations, .entity-grid--series,
 * .anchor-card) are excluded rather than carried over as dead weight;
 * taxonomy-circle.php/taxonomy-creator.php never emit those classes. The
 * source's own SWELL-fighting rule (.hd-entity-page #breadcrumb,
 * #sidebar { display:none; }) is also excluded -- this theme has no
 * SWELL wrapper elements to fight, and its own breadcrumb
 * (hdtheme_render_breadcrumb(), site.css's .hd-breadcrumb*) is an
 * entirely different, already-independent element the template-local
 * .breadcrumb this file used to hide was a duplicate of.
 *
 * CSS custom properties are retargeted to this theme's own tokens
 * (--c-main/--c-dark/--c-light2/--c-border/--c-border-strong become
 * --hd-c-main/--hd-c-dark/--hd-c-light2/--hd-c-border/--hd-c-border-strong;
 * defined in style.css), the same retargeting sale-index.css/home.css/
 * work-pages.css already use. The 900px SP breakpoint and 340px
 * extra-narrow breakpoint are unchanged from the source (already this
 * theme's own common boundary, no retargeting needed).
 *
 * .work-card and its full subtree (card-link/work-cov/work-body/
 * work-meta/meta-row/work-badge/work-title/ep-inline/ep-sep/
 * work-entity-link/work-price/off-rate/work-actions/work-fanza) are
 * page-scoped values for markup shared with hdtheme_work_card()
 * (inc/sale-index.php). As of the circle/creator design pass documented in
 * release-records/theme-independent-1.0.13-circle-creator-pages.md, the
 * three properties that affect actual rendering (`.work-fanza` background,
 * `.work-price .reg` visibility, `.work-title` font-weight) were brought in
 * line with the canonical values already shared by work-pages.css (episode/
 * single/omnibus pages) and sale-index.css, per that record's card-parity
 * review; a handful of other minor property-level differences from that
 * same review (documented there) were intentionally left unchanged pending
 * a separate decision. Layout-only differences from those two files
 * (min-width:0/height:100% on .work-card, display:flex/flex-direction on
 * .work-body, margin-top:auto on .work-price) are this page's own grid/
 * variable-content plumbing -- e.g. a card with require_valid_price=false
 * and no price block still needs its FANZA button pinned to the same
 * bottom edge as every other card in the row -- not a visual-design
 * divergence.
 */

.hd-entity-page {
	background: #eaf4f1;
}

.hd-entity {
	padding: 24px 14px 70px;
	color: #333;
	font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
	line-height: 1.7;
}

.hd-entity .entity-page {
	width: min(100%, 1080px);
	min-height: 70vh;
	margin: 0 auto;
	background: #fff;
}

.hd-entity .num {
	font-family: "Inter", "Noto Sans JP", sans-serif;
}

.hd-entity .entity-meta-row a,
.hd-entity .head-meta a {
	color: var(--hd-c-dark);
	text-decoration: underline;
	text-decoration-thickness: 1.2px;
	text-underline-offset: 2px;
}

.hd-entity .page-head {
	padding: 16px 28px 24px;
	border-bottom: 1px solid var(--hd-c-border);
}

/* v10 mock parity: a small pill directly above the h1 so a circle page and
   a creator page are distinguishable at a glance (icon shape + text only --
   no new semantic color, since violet/orange are already the omnibus
   meaning-colors elsewhere on this theme). */
.hd-entity .entity-type-tag {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	margin-bottom: 9px;
	padding: 3px 10px;
	border-radius: 4px;
	background: var(--hd-c-light2);
	color: #555;
	font-size: 11.5px;
	font-weight: 700;
}

.hd-entity .entity-type-tag svg {
	width: 12px;
	height: 12px;
	flex-shrink: 0;
}

.hd-entity .page-head h1 {
	margin: 0;
	color: #333;
	font-size: 21px;
	font-weight: 900;
	line-height: 1.5;
}

.hd-entity .name-reading,
.hd-entity .head-meta {
	margin: 5px 0 0;
	color: #555;
	font-size: 13px;
}

.hd-entity .lead {
	max-width: 720px;
	margin-top: 10px;
	color: #333;
	font-size: 15px;
	font-weight: 400;
}

.hd-entity .lead p {
	margin: 0 0 0.7em;
}

.hd-entity .entity-meta-row {
	display: flex;
	align-items: baseline;
	gap: 12px;
	margin-top: 14px;
	font-size: 15px;
}

.hd-entity .entity-meta-row > span {
	color: #555;
	font-size: 13px;
	font-weight: 700;
}

.hd-entity .entity-meta-row--multiple > div {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 14px;
}

/* v10 mock parity: a divider between the basic-info block (h1/reading/lead/
   entity-meta-row above) and the external-link buttons below, without
   restructuring the surrounding <header class="page-head"> markup. */
.hd-entity .external-links {
	margin-top: 22px;
	padding-top: 18px;
	border-top: 1px solid var(--hd-c-border);
}

.hd-entity .external-links h2 {
	margin: 0 0 10px;
	font-size: 18px;
	font-weight: 900;
}

.hd-entity .external-links > div {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

/* v10 mock parity: X/official-site/FANZA buttons, replacing the previous
   uniform label-only style. Icon color inherits from this rule's own
   color (currentColor) -- no separate icon-color declaration needed. */
.hd-entity .external-link {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 8px 14px;
	border: 1px solid var(--hd-c-border-strong);
	border-radius: 8px;
	background: #fff;
	color: var(--hd-c-dark);
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
	transition: background-color 0.15s;
}

.hd-entity .external-link:hover {
	background: #d4e8dd;
}

.hd-entity .external-link-icon {
	width: 15px;
	height: 15px;
	flex-shrink: 0;
}

/* X: logo-only square button (no visible label -- aria-label carries the
   accessible name), matching v10. */
.hd-entity .external-link--x {
	width: 34px;
	justify-content: center;
	padding: 8px;
}

.hd-entity .external-link--x .external-link-icon {
	width: 16px;
	height: 16px;
}

.hd-entity .work-fanza svg {
	width: 13px;
	height: 13px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 2.2;
}

.hd-entity .entity-works {
	margin: 0 28px;
	padding: 28px 0;
	border-bottom: 1px solid var(--hd-c-border);
}

.hd-entity .entity-works:last-child {
	border-bottom: 0;
}

.hd-entity .section-heading h2 {
	margin: 0;
	font-size: 18px;
	font-weight: 900;
}

.hd-entity .section-heading {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 14px;
	margin-bottom: 16px;
}

.hd-entity .section-heading p {
	margin: 0;
	color: #555;
	font-size: 12px;
}

.hd-entity .section-heading p b {
	color: #333;
	font-size: 13px;
}

.hd-entity .entity-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px 14px;
}

.hd-entity .work-card {
	position: relative;
	min-width: 0;
	height: 100%;
	overflow: hidden;
	border: 1px solid var(--hd-c-border-strong);
	border-radius: 10px;
	background: #fff;
	box-shadow: 0 3px 14px rgba(44, 94, 71, 0.08);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

/* Hover/focus: border + shadow only, no movement (position-stationary hover
   policy for vertical work cards, shared with work-pages.css/sale-index.css).
   :focus-within matches mouse hover when tabbing to the card link or the
   FANZA button inside it. */
.hd-entity .work-card:hover,
.hd-entity .work-card:focus-within {
	border-color: var(--hd-c-main);
	box-shadow: 0 6px 20px rgba(44, 94, 71, 0.14);
}

@media (prefers-reduced-motion: reduce) {
	.hd-entity .work-card {
		transition: none;
	}
}

.hd-entity .card-link {
	position: absolute;
	z-index: 1;
	inset: 0;
}

.hd-entity .work-cov {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: linear-gradient(135deg, var(--hd-c-main), var(--hd-c-dark));
}

.hd-entity .work-cov-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.hd-entity .work-body {
	display: flex;
	min-height: 168px;
	padding: 10px 11px 11px;
	flex-direction: column;
}

.hd-entity .work-meta {
	min-height: 21px;
	margin-bottom: 6px;
}

.hd-entity .meta-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 5px;
}

.hd-entity .work-badge,
.hd-entity .work-compil-range {
	display: inline-block;
	padding: 3px 8px;
	border-radius: 4px;
	font-size: 10.5px;
	font-weight: 800;
	line-height: 1.4;
}

.hd-entity .work-badge.compil {
	background: #6b3fa0;
	color: #fff;
}

.hd-entity .work-badge.fullcolor {
	background: #8a6512;
	color: #fff;
}

.hd-entity .work-compil-range {
	border: 1px solid #cbb0dd;
	background: #f4eef7;
	color: #6b3fa0;
}

.hd-entity .work-title {
	display: -webkit-box;
	min-height: 2.9em;
	margin: 0 0 3px;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	color: #333;
	font-size: 12.5px;
	font-weight: 700;
	line-height: 1.45;
}

.hd-entity .ep-inline {
	color: var(--hd-c-main);
}

.hd-entity .ep-sep {
	padding: 0 2px;
	color: #aaa;
}

/* Matches front-page.php's .hd-home-more ("セール作品一覧へ ›") color/weight/
   underline/arrow treatment exactly, at a card-appropriate 11px (matching
   the sibling .work-circle text it replaces) rather than that link's own
   12.5px. */
.hd-entity .work-entity-link {
	position: relative;
	z-index: 2;
	display: block;
	margin-bottom: 5px;
	overflow: hidden;
	color: var(--hd-c-dark);
	font-size: 11px;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
	white-space: nowrap;
	text-overflow: ellipsis;
}

.hd-entity .work-price {
	display: flex;
	align-items: baseline;
	gap: 6px;
	min-height: 25px;
	margin-top: auto;
}

.hd-entity .work-price .reg {
	display: none;
}

.hd-entity .work-price .now {
	font-size: 14px;
	font-weight: 700;
}

.hd-entity .work-price .sale {
	color: #e24b4a;
	font-weight: 900;
}

.hd-entity .off-rate {
	margin-left: auto;
	padding: 2px 6px;
	border-radius: 4px;
	background: #e24b4a;
	color: #fff;
	font-size: 10px;
	font-weight: 800;
}

.hd-entity .work-actions {
	position: relative;
	z-index: 2;
	margin-top: 8px;
}

/* Unified to the episode-page/sale-index canonical work-card values below
   (was previously a page-scoped blue, independent of those two): #f97316 is
   the same color the --fanza custom property resolves to in
   work-pages.css/sale-index.css. That property is declared inside those two
   files' own :root blocks, which are not enqueued on circle/creator pages
   (see functions.php's hdtheme_enqueue_assets()), so var(--fanza) would
   resolve to nothing here; sale-index.css itself hardcodes the same literal
   value for the same reason, so this follows that established pattern
   rather than introducing an unscoped variable reference. */

.hd-entity .work-fanza {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	width: 100%;
	padding: 8px 10px;
	border-radius: 6px;
	background: #f97316;
	color: #fff;
	font-size: 11.5px;
	font-weight: 800;
	text-decoration: none;
}

.hd-entity .work-fanza:hover {
	background: #c95d11;
	color: #fff;
}

.hd-entity .empty-message {
	margin: 0;
	padding: 24px;
	border-radius: 8px;
	background: #f7faf8;
	color: #555;
	font-size: 14px;
	text-align: center;
}

.hd-entity .entity-pagination {
	margin-top: 28px;
}

.hd-entity .entity-pagination .page-numbers {
	display: flex;
	justify-content: center;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.hd-entity .entity-pagination a,
.hd-entity .entity-pagination span {
	display: grid;
	min-width: 34px;
	height: 34px;
	padding: 0 8px;
	place-items: center;
	border: 1px solid var(--hd-c-border-strong);
	border-radius: 5px;
	color: #333;
	font-size: 12px;
	text-decoration: none;
}

.hd-entity .entity-pagination .current {
	border-color: var(--hd-c-main);
	background: var(--hd-c-main);
	color: #fff;
}

@media (max-width: 900px) {
	.hd-entity {
		padding: 0 0 50px;
	}

	.hd-entity .page-head {
		padding: 14px 16px 20px;
	}

	.hd-entity .page-head h1 {
		font-size: 19px;
	}

	.hd-entity .entity-works {
		margin-right: 16px;
		margin-left: 16px;
		padding-top: 24px;
		padding-bottom: 24px;
	}

	.hd-entity .section-heading h2,
	.hd-entity .external-links h2 {
		font-size: 16px;
	}

	.hd-entity .entity-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px 9px;
	}

	.hd-entity .section-heading {
		align-items: flex-start;
		flex-direction: column;
		gap: 2px;
	}

	.hd-entity .work-body {
		min-height: 164px;
		padding: 8px 8px 9px;
	}

	.hd-entity .work-title {
		font-size: 11.5px;
	}

	.hd-entity .work-fanza {
		font-size: 11px;
	}
}

@media (max-width: 340px) {
	.hd-entity .entity-grid {
		gap: 10px 6px;
	}

	.hd-entity .work-fanza {
		padding-right: 5px;
		padding-left: 5px;
	}
}
