/* =========================
   JIRAI REVIEW
========================= */

.jirai-review-box{
	max-width:900px;
	margin:0 auto 40px;
	padding:28px;
	background:#fff;
	border:1px solid #f1d9e4;
	border-radius:20px;
	box-shadow:0 8px 24px rgba(217,75,135,.08);
}

.jirai-review-head{
	display:block;
}

.jirai-review-img{
	max-width:320px;
	margin:0 auto 24px;
	text-align:center;
}

.jirai-review-img img{
	width:100%;
	height:auto;
	display:block;
	border-radius:14px;
	background:#fafafa;
	box-shadow:0 4px 14px rgba(0,0,0,.08);
}

.jirai-review-title{
	margin:0 0 18px;
	padding:14px 18px;
	background:#d94b87;
	color:#fff;
	font-size:1.35em;
	font-weight:700;
	line-height:1.5;
	border-radius:12px;
}

.jirai-badges{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
	margin-bottom:18px;
}

.jirai-badges span{
	display:inline-block;
	padding:5px 12px;
	border-radius:999px;
	background:#fff0f6;
	color:#c43c77;
	font-size:.82em;
	font-weight:700;
}

.jirai-badges--top{
	margin-bottom:20px;
}

/* =========================
   TABLE
========================= */

.jirai-fanza-meta{
	background:#fff;
	border:1px solid #f1d9e4;
	border-radius:14px;
	overflow:hidden;
	margin-bottom:20px;
}

.jirai-meta-row{
	display:grid;
	grid-template-columns:140px 1fr;
	border-bottom:1px solid #f1d9e4;
}

.jirai-meta-row:last-child{
	border-bottom:none;
}

.jirai-meta-label{
	padding:11px 14px;
	background:#fff7fa;
	font-weight:700;
	color:#7c4560;
	white-space:nowrap;
}

.jirai-meta-value{
	padding:11px 14px;
	background:#fff;
	color:#333;
}

.jirai-meta-row--star .jirai-meta-label::before{
	content:"★ ";
	color:#d94b87;
}

.jirai-meta-row--star .jirai-meta-value{
	font-weight:700;
	color:#d94b87;
	font-size:1.05em;
}

.jirai-genre-tags{
	display:flex;
	flex-wrap:wrap;
	gap:6px;
}

.jirai-genre-tags span{
	display:inline-block;
	padding:4px 10px;
	border-radius:999px;
	background:#fff0f6;
	color:#c43c77;
	font-size:.85em;
	font-weight:700;
}

/* =========================
   BUTTON
========================= */

.jirai-button-wrap{
	text-align:center;
	margin:24px 0;
}

.jirai-button{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:220px;
	padding:14px 28px;
	border-radius:999px;
	background:#d94b87;
	color:#fff !important;
	text-decoration:none !important;
	font-weight:700;
	font-size:1rem;
	box-shadow:0 6px 18px rgba(217,75,135,.25);
	transition:.2s;
}

.jirai-button:hover{
	transform:translateY(-2px);
	opacity:.95;
}

/* =========================
   SECTION
========================= */

.jirai-section{
	margin-top:32px;
}

.jirai-section-title{
	margin:0 0 14px;
	padding:12px 16px;
	background:#fff7fa;
	border-left:5px solid #d94b87;
	color:#7c4560;
	font-size:1.05em;
	font-weight:700;
	border-radius:8px;
}

/* =========================
   MOVIE
========================= */

.jirai-movie-wrap{
	background:#fff;
	padding:16px;
	border-radius:14px;
	border:1px solid #f1d9e4;
}

.jirai-movie{
	display:block;
	width:100%;
	max-width:720px;
	margin:auto;
	background:#000;
	border-radius:12px;
}

/* =========================
   GALLERY
========================= */

.jirai-gallery{
	display:grid;
	grid-template-columns:repeat(5,minmax(0,1fr));
	gap:10px;
}

.jirai-gallery a{
	display:block;
	border-radius:10px;
	overflow:hidden;
	border:1px solid #f1d9e4;
	background:#fff;
}

.jirai-gallery img{
	width:100%;
	aspect-ratio:4/3;
	object-fit:cover;
	display:block;
	transition:.2s;
}

.jirai-gallery a:hover img{
	transform:scale(1.04);
}

/* =========================
   DESCRIPTION
========================= */

.jirai-desc{
	background:#fff;
	border:1px solid #f1d9e4;
	border-radius:14px;
	padding:20px;
	line-height:2;
	font-size:.95rem;
}

/* =========================
   RELATED
========================= */

.jirai-card-grid{
	display:grid;
	grid-template-columns:repeat(4,minmax(0,1fr));
	gap:16px;
	margin:20px 0;
}

.jirai-card{
	display:block;
	background:#fff;
	border:1px solid #f1d9e4;
	border-radius:14px;
	overflow:hidden;
	text-decoration:none !important;
	color:inherit !important;
	transition:.2s;
}

.jirai-card:hover{
	transform:translateY(-3px);
	box-shadow:0 6px 18px rgba(217,75,135,.12);
}

.jirai-card img{
	width:100%;
	aspect-ratio:3/2;
	object-fit:cover;
	display:block;
}

.jirai-card-body{
	padding:10px;
}

.jirai-card-title{
	font-size:.9em;
	font-weight:700;
	line-height:1.5;
	margin:0 0 6px;
	color:#4e2337;
}

.jirai-card-meta{
	font-size:.8em;
	color:#8a6072;
}

/* =========================
   MOBILE
========================= */

@media(max-width:900px){

	.jirai-gallery{
		grid-template-columns:repeat(4,1fr);
	}

	.jirai-card-grid{
		grid-template-columns:repeat(3,1fr);
	}
}

@media(max-width:640px){

	.jirai-review-box{
		padding:16px;
		border-radius:14px;
	}

	.jirai-review-img{
		max-width:260px;
	}

	.jirai-meta-row{
		grid-template-columns:110px 1fr;
	}

	.jirai-gallery{
		grid-template-columns:repeat(3,1fr);
		gap:8px;
	}

	.jirai-card-grid{
		grid-template-columns:repeat(2,1fr);
		gap:12px;
	}

	.jirai-review-title{
		font-size:1.15em;
	}
}


/* =========================
   v0.3.7 Layout Fix
========================= */

.jirai-review-box{
	padding:35px;
}

.jirai-review-title{
	background:none;
	color:#4e2337;
	padding:0;
	margin:0 0 18px;
	font-size:1.7rem;
	line-height:1.6;
	border-radius:0;
	border:none;
	box-shadow:none;
}

.jirai-review-img{
	max-width:380px;
	margin:0 auto 30px;
}

.jirai-review-img--videoa{
	max-width:520px;
}

.jirai-review-img--videoc{
	max-width:380px;
}

.jirai-review-img img{
	box-shadow:0 10px 30px rgba(0,0,0,.12);
}

.jirai-fanza-meta{
	margin-top:25px;
}

.jirai-meta-row{
	grid-template-columns:150px 1fr;
}

.jirai-meta-label{
	width:auto;
	background:#fff7fa;
	font-size:.9rem;
}

.jirai-meta-value{
	font-size:.95rem;
}

.jirai-meta-row--star{
	background:#fff7fa;
}

.jirai-meta-row--star .jirai-meta-value{
	font-size:1.2rem;
	color:#d94b87;
}

.jirai-button-wrap{
	text-align:center;
	margin:30px auto 10px;
}

.jirai-button{
	min-width:280px;
	font-size:1.05rem;
	padding:16px 28px;
}

.jirai-section-title{
	background:none;
	border-left:5px solid #d94b87;
	border-bottom:1px solid #f1d9e4;
	border-radius:0;
	padding:0 0 10px 12px;
	font-size:1.15rem;
}

.jirai-desc{
	line-height:2.1;
	font-size:1rem;
}

@media(max-width:640px){

	.jirai-review-title{
		font-size:1.35rem;
	}

	.jirai-review-img--videoa,
	.jirai-review-img--videoc,
	.jirai-review-img{
		max-width:100%;
	}

	.jirai-meta-row{
		grid-template-columns:120px 1fr;
	}

	.jirai-button{
		width:100%;
		min-width:0;
	}
}


/* =========================
   v0.3.8 Real Actress Note
========================= */

.jirai-real-actress-note{
	margin:18px 0 4px;
	padding:14px 18px;
	background:#fff7fa;
	border:1px solid #f1d9e4;
	border-radius:14px;
	color:#7c4560;
	font-size:.96rem;
	line-height:1.8;
	text-align:center;
}

.jirai-real-actress-note span{
	color:#d94b87;
	font-weight:700;
}


/* =========================
   v0.4.5 Layout Cleanup
========================= */

/* 記事タイトルはページ上部に表示されるため、本文内タイトルはPHP側で出力しない。 */

.jirai-gallery{
	grid-template-columns:repeat(4,minmax(0,1fr));
	gap:12px;
}

@media(max-width:900px){
	.jirai-gallery{
		grid-template-columns:repeat(3,1fr);
	}
}

@media(max-width:640px){
	.jirai-gallery{
		grid-template-columns:repeat(3,1fr);
		gap:8px;
	}
}


/* =========================
   v0.4.6 Home Shortcodes
========================= */

.jirai-home{
	max-width:1180px;
	margin:0 auto 50px;
}

.jirai-home-hero{
	margin:0 0 34px;
	padding:34px 30px;
	background:linear-gradient(135deg,#fff7fa 0%,#fff 100%);
	border:1px solid #f1d9e4;
	border-radius:22px;
	box-shadow:0 8px 24px rgba(217,75,135,.08);
	text-align:center;
}

.jirai-home-kicker{
	margin:0 0 8px;
	color:#d94b87;
	font-size:.85rem;
	font-weight:700;
	letter-spacing:.08em;
}

.jirai-home-hero h2{
	margin:0 0 14px;
	color:#4e2337;
	font-size:2rem;
	line-height:1.4;
}

.jirai-home-hero p{
	max-width:720px;
	margin:0 auto 18px;
	color:#7c4560;
	line-height:1.9;
}

.jirai-home-count{
	display:inline-flex;
	align-items:baseline;
	gap:6px;
	padding:8px 18px;
	border-radius:999px;
	background:#fff;
	border:1px solid #f1d9e4;
	color:#7c4560;
	font-weight:700;
}

.jirai-home-count strong{
	color:#d94b87;
	font-size:1.35rem;
}

.jirai-home-section{
	margin:38px 0 0;
}

.jirai-home-section-title{
	margin:0 0 18px;
	padding:0 0 12px 14px;
	border-left:5px solid #d94b87;
	border-bottom:1px solid #f1d9e4;
	color:#4e2337;
	font-size:1.35rem;
	line-height:1.4;
}

.jirai-home-category-grid{
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:14px;
}

.jirai-home-category-card{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
	padding:18px 20px;
	background:#fff;
	border:1px solid #f1d9e4;
	border-radius:16px;
	box-shadow:0 4px 14px rgba(217,75,135,.06);
	text-decoration:none !important;
	transition:.2s;
}

.jirai-home-category-card:hover{
	transform:translateY(-2px);
	box-shadow:0 8px 22px rgba(217,75,135,.12);
}

.jirai-home-category-name{
	color:#4e2337;
	font-weight:700;
	font-size:1.05rem;
}

.jirai-home-category-count{
	padding:4px 10px;
	border-radius:999px;
	background:#fff0f6;
	color:#c43c77;
	font-size:.85rem;
	font-weight:700;
	white-space:nowrap;
}

.jirai-home-card-grid{
	margin-top:0;
}

@media(max-width:900px){
	.jirai-home-category-grid{
		grid-template-columns:repeat(2,minmax(0,1fr));
	}
}

@media(max-width:640px){
	.jirai-home-hero{
		padding:26px 18px;
		border-radius:16px;
	}

	.jirai-home-hero h2{
		font-size:1.55rem;
	}

	.jirai-home-category-grid{
		grid-template-columns:1fr;
		gap:10px;
	}

	.jirai-home-section-title{
		font-size:1.18rem;
	}
}

/* =========================
   v0.5.1 Work Type Navigation
========================= */

.jirai-home-work-type-grid{
	grid-template-columns:repeat(3,minmax(0,1fr));
}

.jirai-home-work-type-card{
	min-height:72px;
}

@media(max-width:640px){
	.jirai-home-work-type-grid{
		grid-template-columns:1fr;
	}
}


/* =========================
   v0.5.5 Card Title Clamp
========================= */

.jirai-card-title{
	display:-webkit-box;
	-webkit-box-orient:vertical;
	-webkit-line-clamp:2;
	line-clamp:2;
	overflow:hidden;
	min-height:3em;
	word-break:break-word;
}

/* =========================
   v0.5.6 Hero Image
========================= */

.jirai-home-hero--image{
	position:relative;
	min-height:420px;
	padding:0;
	background-position:center;
	background-size:cover;
	background-repeat:no-repeat;
	overflow:hidden;
}

.jirai-home-hero--image::before{
	content:"";
	position:absolute;
	inset:0;
	background:linear-gradient(90deg, rgba(78,35,55,.80), rgba(78,35,55,.38) 48%, rgba(78,35,55,.10));
	z-index:0;
}

.jirai-home-hero__overlay{
	position:relative;
	z-index:1;
	max-width:520px;
	padding:56px 42px;
	color:#fff;
	text-align:left;
}

.jirai-home-hero--image .jirai-home-kicker,
.jirai-home-hero--image h2,
.jirai-home-hero--image p{
	color:#fff;
}

.jirai-home-hero--image h2{
	font-size:2.05rem;
	line-height:1.35;
	margin-bottom:14px;
}

.jirai-home-hero--image .jirai-home-count{
	display:inline-flex;
	margin-top:18px;
	background:rgba(255,255,255,.92);
	color:#d94b87;
	border:none;
}

@media(max-width:640px){
	.jirai-home-hero--image{
		min-height:360px;
		background-position:center top;
	}

	.jirai-home-hero--image::before{
		background:linear-gradient(180deg, rgba(78,35,55,.36), rgba(78,35,55,.78));
	}

	.jirai-home-hero__overlay{
		display:flex;
		min-height:360px;
		box-sizing:border-box;
		flex-direction:column;
		justify-content:flex-end;
		padding:28px 20px;
		text-align:left;
	}

	.jirai-home-hero--image h2{
		font-size:1.55rem;
	}
}


/* =========================
   v0.5.7 Hero / Actress Navigation
========================= */

.jirai-home-hero--image{
	min-height:500px;
	border-radius:24px;
}

.jirai-home-hero--image::before{
	background:linear-gradient(90deg, rgba(78,35,55,.48), rgba(78,35,55,.22) 48%, rgba(78,35,55,.04));
}

.jirai-home-hero__overlay{
	max-width:600px;
	padding:72px 54px;
	text-shadow:0 2px 12px rgba(0,0,0,.28);
}

.jirai-home-hero--image h2{
	font-size:2.35rem;
}

.jirai-home-hero--image .jirai-home-count{
	text-shadow:none;
}

.jirai-home-actress-grid{
	grid-template-columns:repeat(4,minmax(0,1fr));
}

@media(max-width:900px){
	.jirai-home-actress-grid{
		grid-template-columns:repeat(2,minmax(0,1fr));
	}
}

@media(max-width:640px){
	.jirai-home-hero--image{
		min-height:380px;
	}

	.jirai-home-hero--image::before{
		background:linear-gradient(180deg, rgba(78,35,55,.22), rgba(78,35,55,.70));
	}

	.jirai-home-hero__overlay{
		min-height:380px;
		padding:28px 20px;
	}

	.jirai-home-hero--image h2{
		font-size:1.65rem;
	}

	.jirai-home-actress-grid{
		grid-template-columns:1fr;
	}
}

/* =========================
   v0.5.8 Card Meta Redesign
========================= */

.jirai-card-body{
	display:flex;
	flex-direction:column;
	gap:6px;
}

.jirai-card-title{
	margin:0;
}

.jirai-card-performer{
	font-size:.82em;
	font-weight:700;
	color:#7c4560;
	line-height:1.35;
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
}

.jirai-card-foot{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:8px;
	margin-top:2px;
}

.jirai-card-wishlist{
	font-size:.82em;
	font-weight:700;
	color:#d94b87;
	white-space:nowrap;
}

.jirai-card-work-type{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding:3px 8px;
	border-radius:999px;
	background:#fff0f6;
	color:#c43c77;
	font-size:.72em;
	font-weight:700;
	white-space:nowrap;
}

.jirai-card-meta{
	display:none;
}

@media(max-width:640px){
	.jirai-card-body{
		padding:9px;
		gap:5px;
	}

	.jirai-card-title{
		font-size:.86em;
	}

	.jirai-card-performer,
	.jirai-card-wishlist{
		font-size:.78em;
	}

	.jirai-card-work-type{
		font-size:.68em;
		padding:2px 7px;
	}
}

/* =========================
   v0.5.9 Taxonomy Archive Cards
========================= */

.jirai-tax-archive{
	max-width:980px;
	margin:56px auto 70px;
}

.jirai-tax-header{
	margin-bottom:30px;
}

.jirai-tax-title{
	margin:0 0 24px;
	padding:0 0 10px;
	border-bottom:1px solid #f1d9e4;
	font-size:1.7rem;
	line-height:1.4;
	color:#2c1b25;
}

.jirai-tax-title::after{
	content:"";
	display:block;
	width:120px;
	height:2px;
	background:#d94b87;
	margin-top:10px;
}

.jirai-tax-title span{
	margin-left:8px;
	font-size:.82rem;
	font-style:italic;
	font-weight:400;
	color:#8a6072;
}

.jirai-tax-desc{
	padding:22px 24px;
	border:1px solid #f1d9e4;
	background:#fff;
	color:#4e2337;
	line-height:2;
	font-size:.95rem;
}

.jirai-tax-desc p{
	margin:0 0 1em;
}

.jirai-tax-desc p:last-child{
	margin-bottom:0;
}

.jirai-tax-card-grid{
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:26px 20px;
}

.jirai-tax-pagination{
	margin:50px 0 0;
	text-align:center;
}

.jirai-tax-pagination ul{
	display:flex;
	justify-content:center;
	align-items:center;
	gap:8px;
	list-style:none;
	padding:0;
	margin:0;
}

.jirai-tax-pagination a,
.jirai-tax-pagination span{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:34px;
	height:34px;
	padding:0 10px;
	border-radius:4px;
	background:#f3f3f3;
	color:#7c4560;
	text-decoration:none !important;
	font-weight:700;
}

.jirai-tax-pagination .current{
	background:#d94b87;
	color:#fff;
}

.jirai-tax-empty{
	padding:24px;
	border:1px solid #f1d9e4;
	background:#fff;
	border-radius:12px;
}

@media(max-width:900px){
	.jirai-tax-archive{
		max-width:100%;
		margin:36px auto 56px;
	}

	.jirai-tax-card-grid{
		grid-template-columns:repeat(2,minmax(0,1fr));
		gap:18px 14px;
	}
}

@media(max-width:640px){
	.jirai-tax-title{
		font-size:1.35rem;
	}

	.jirai-tax-desc{
		padding:16px;
		font-size:.9rem;
		line-height:1.8;
	}

	.jirai-tax-card-grid{
		grid-template-columns:repeat(2,minmax(0,1fr));
		gap:14px 10px;
	}
}

/* =========================
   v0.6.1 Actress Photo Cards
========================= */

.jirai-home-actress-photo-grid{
	grid-template-columns:repeat(4,minmax(0,1fr));
}

.jirai-home-actress-photo-card{
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	gap:8px;
	padding:16px 12px;
	text-align:center;
}

.jirai-home-actress-photo{
	display:flex;
	align-items:center;
	justify-content:center;
	width:74px;
	height:74px;
	margin:0 auto 4px;
	border-radius:999px;
	overflow:hidden;
	background:#fff7fa;
	border:1px solid #f1d9e4;
	box-shadow:0 4px 12px rgba(217,75,135,.12);
	color:#d94b87;
	font-weight:800;
	font-size:1.6rem;
}

.jirai-home-actress-photo img{
	width:100%;
	height:100%;
	object-fit:cover;
	display:block;
}

.jirai-home-actress-photo--empty{
	background:linear-gradient(135deg,#fff7fa,#fff0f6);
}

.jirai-home-actress-photo-card .jirai-home-category-name{
	font-size:.95rem;
	line-height:1.35;
}

.jirai-home-actress-photo-card .jirai-home-category-count{
	font-size:.82rem;
}

@media(max-width:900px){
	.jirai-home-actress-photo-grid{
		grid-template-columns:repeat(2,minmax(0,1fr));
	}
}

@media(max-width:640px){
	.jirai-home-actress-photo-grid{
		grid-template-columns:repeat(2,minmax(0,1fr));
	}

	.jirai-home-actress-photo{
		width:64px;
		height:64px;
	}
}

/* =========================
   v0.6.3 Type Diagram
========================= */
.jirai-type-diagram{
	margin:30px 0 0;
}

.jirai-type-diagram img{
	display:block;
	width:100%;
	height:auto;
	border-radius:18px;
	border:1px solid #f1d9e4;
	box-shadow:0 10px 28px rgba(217,75,135,.08);
	background:#fff;
}

@media(max-width:640px){
	.jirai-type-diagram{
		margin-top:24px;
		overflow-x:auto;
		padding-bottom:4px;
	}

	.jirai-type-diagram img{
		min-width:760px;
		border-radius:14px;
	}
}

/* =========================
   v0.6.5 Ranking
========================= */
.jirai-more-link-wrap{
	margin:22px 0 0;
	text-align:center;
}

.jirai-more-link{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:220px;
	padding:12px 22px;
	border-radius:999px;
	background:#d94b87;
	color:#fff;
	font-weight:800;
	text-decoration:none;
	box-shadow:0 8px 18px rgba(217,75,135,.18);
}

.jirai-more-link:hover{
	color:#fff;
	text-decoration:none;
	filter:brightness(1.04);
}

.jirai-ranking-grid{
	display:grid;
	grid-template-columns:repeat(4,minmax(0,1fr));
	gap:20px;
}

.jirai-ranking-item{
	position:relative;
}

.jirai-ranking-rank{
	position:absolute;
	z-index:2;
	top:10px;
	left:10px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding:5px 9px;
	border-radius:999px;
	background:#d94b87;
	color:#fff;
	font-size:.78rem;
	font-weight:800;
	box-shadow:0 4px 12px rgba(0,0,0,.16);
}

@media(max-width:900px){
	.jirai-ranking-grid{
		grid-template-columns:repeat(3,minmax(0,1fr));
	}
}

@media(max-width:640px){
	.jirai-ranking-grid{
		grid-template-columns:repeat(2,minmax(0,1fr));
		gap:14px;
	}

	.jirai-more-link{
		width:100%;
		min-width:0;
	}
}
