/* =========================================================
   ZENRA MANIA - single review
========================================================= */

.zmc-review-wrap{
	max-width:760px;
	margin:0 auto;
	padding:40px 16px 72px;
}

.zmc-section{
	margin:36px 0;
}

.zmc-section > h2,
.zmc-section h2{
	margin:0 0 18px;
	padding-bottom:10px;
	border-bottom:1px solid #eceff3;
	font-size:1.1rem;
	font-weight:700;
	color:#111;
}

.zmc-hero{
	margin-bottom:36px;
}

.zmc-hero__image{
	border-radius:18px;
	overflow:hidden;
	box-shadow:0 12px 34px rgba(0,0,0,.12);
	background:#fff;
}

.zmc-hero__image img{
	width:100%;
	display:block;
}

.zmc-hero__body{
	padding-top:22px;
}

.zmc-review-title{
	font-size:1.7rem;
	line-height:1.55;
	margin:0 0 12px;
	font-weight:700;
}

.zmc-pr{
	display:inline-block;
	font-size:.78rem;
	color:#777;
	background:#f4f5f7;
	border-radius:999px;
	padding:6px 12px;
	margin:0;
}

.zmc-movie-card{
	position:relative;
	display:block;
	width:100%;
	max-width:640px;
	margin:0 auto;
	border-radius:18px;
	overflow:hidden;
	box-shadow:0 10px 28px rgba(0,0,0,.12);
	text-decoration:none !important;
	background:#000;
}

.zmc-movie-card img{
	width:100%;
	height:auto;
	display:block;
}

.zmc-movie-card__play{
	position:absolute;
	top:50%;
	left:50%;
	width:78px;
	height:78px;
	border-radius:50%;
	transform:translate(-50%,-50%);
	background:rgba(255,255,255,.9);
	backdrop-filter:blur(4px);
	box-shadow:0 10px 28px rgba(0,0,0,.24);
}

.zmc-movie-card__play::before{
	content:"";
	position:absolute;
	top:50%;
	left:54%;
	transform:translate(-50%,-50%);
	border-top:14px solid transparent;
	border-bottom:14px solid transparent;
	border-left:22px solid #ff4f8a;
}

.zmc-movie-card__label{
	position:absolute;
	left:16px;
	right:16px;
	bottom:14px;
	display:flex;
	align-items:center;
	justify-content:center;
	height:36px;
	border-radius:999px;
	background:rgba(255,255,255,.92);
	font-size:.75rem;
	font-weight:700;
	color:#ff4f8a;
	backdrop-filter:blur(6px);
}

.zmc-card{
	background:#fff;
	border:1px solid #edf0f3;
	border-radius:18px;
	padding:24px;
	box-shadow:0 8px 24px rgba(0,0,0,.04);
}

.zmc-info-table{
	width:100%;
	border-collapse:collapse;
	font-size:.92rem;
}

.zmc-info-table th,
.zmc-info-table td{
	padding:13px 8px;
	border-bottom:1px solid #eef1f4;
	text-align:left;
}

.zmc-info-table tr:last-child th,
.zmc-info-table tr:last-child td{
	border-bottom:0;
}

.zmc-info-table th{
	width:120px;
	color:#666;
}

.zmc-one-section{
	margin-top:18px;
}

.zmc-one-comment{
	padding:34px 38px;
	border-radius:22px;
	background:#fff;
	border:1px solid #ffd4e3;
	box-shadow:0 12px 34px rgba(255,79,138,.10);
	font-size:1.35rem;
	font-weight:700;
	line-height:2;
	color:#222;
	letter-spacing:.02em;
}

.zmc-section-title-with-badge{
	display:flex;
	align-items:center;
	gap:10px;
}

.zmc-total-rating{
	display:flex;
	align-items:center;
	justify-content:space-between;
	margin-bottom:28px;
	padding-bottom:18px;
	border-bottom:1px solid #f1f1f1;
}

.zmc-total-rating > span{
	font-size:1rem;
	font-weight:700;
	color:#222;
}

.zmc-stars-wrap{
	display:flex;
	align-items:center;
	gap:10px;
}

.zmc-stars-wrap::after{
	content:none;
}

.zmc-stars{
	font-size:2rem;
	line-height:1;
	letter-spacing:.08em;
	color:#ffb400;
	font-weight:700;
}

.zmc-rating-number{
	font-size:1rem;
	font-weight:700;
	color:#777;
}

.zmc-score-bars{
	display:flex;
	flex-direction:column;
	gap:22px;
}

.zmc-score-row{
	display:flex;
	gap:18px;
	align-items:flex-start;
}

.zmc-score-row__label{
	width:72px;
	font-size:.92rem;
	font-weight:700;
	color:#222;
	padding-top:4px;
	flex-shrink:0;
}

.zmc-score-row__body{
	width:100%;
}

.zmc-score-row__bar{
	height:12px;
	background:#edf1f4;
	border-radius:999px;
	overflow:hidden;
}

.zmc-score-row__bar span{
	display:block;
	height:100%;
	border-radius:999px;
	background:linear-gradient(90deg,#ff6ba3 0%,#ff4f8a 100%);
}

.zmc-score-row__text{
	margin-top:10px;
	font-size:.88rem;
	font-weight:600;
	line-height:1.6;
	color:#666;
}

.zmc-badge{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding:8px 14px;
	border-radius:999px;
	background:#fff3f8;
	color:#ff4f8a;
	font-size:.78rem;
	font-weight:700;
	border:1px solid #ffd4e3;
}

.zmc-badge--heading{
	position:relative;
	top:1px;
}

.zmc-comment-card{
	padding:28px 30px;
	font-size:1rem;
	line-height:2;
	color:#444;
}

.zmc-comment-card p{
	margin:0;
}

.zmc-gallery{
	column-count:2;
	column-gap:14px;
}

.zmc-gallery__item{
	break-inside:avoid;
	margin:0 0 14px;
	border-radius:14px;
	overflow:hidden;
	box-shadow:0 8px 22px rgba(0,0,0,.08);
	background:#fff;
}

.zmc-gallery__item img{
	width:100%;
	display:block;
}

.zmc-cta{
	text-align:center;
	margin:28px 0;
}

.zmc-cta--bottom{
	margin-top:36px;
}

.zmc-btn{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:260px;
	min-height:50px;
	padding:13px 28px;
	border-radius:999px;
	background:#ff4f8a;
	color:#fff !important;
	font-weight:700;
	text-decoration:none !important;
	box-shadow:0 12px 28px rgba(255,79,138,.26);
}

.zmc-credit{
	margin:50px 0 20px;
	text-align:center;
	font-size:.72rem;
	color:#999;
	line-height:1.8;
}

.zmc-credit a{
	color:#999;
	text-decoration:none;
	border-bottom:1px solid rgba(0,0,0,.15);
}

.zmc-credit a:hover{
	color:#666;
}

/* =========================================================
   archive-review
========================================================= */

.zma-wrap{
	max-width:1080px;
	margin:0 auto;
	padding:52px 16px 80px;
}

.zma-header{
	margin-bottom:36px;
	border-bottom:1px solid #e8edf2;
	padding-bottom:18px;
}

.zma-header h1{
	margin:0 0 8px;
	font-size:1.8rem;
	font-weight:700;
}

.zma-header p{
	margin:0;
	color:#777;
	font-size:.92rem;
}

.zma-grid{
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:28px 22px;
}

.zma-card{
	display:flex;
	flex-direction:column;
	background:#fff;
	border:1px solid #edf0f3;
	border-radius:18px;
	overflow:hidden;
	box-shadow:0 8px 24px rgba(0,0,0,.05);
	transition:transform .18s ease, box-shadow .18s ease;
}

.zma-card:hover{
	transform:translateY(-2px);
	box-shadow:0 12px 30px rgba(0,0,0,.08);
}

.zma-card__thumb{
	display:block;
	aspect-ratio:16 / 10;
	background:#f0f0f0;
	overflow:hidden;
}

.zma-card__thumb img{
	width:100%;
	height:100%;
	object-fit:cover;
	display:block;
	transition:transform .25s ease;
}

.zma-card:hover .zma-card__thumb img{
	transform:scale(1.04);
}

.zma-card__noimage{
	width:100%;
	height:100%;
	display:flex;
	align-items:center;
	justify-content:center;
	color:#aaa;
	font-size:.8rem;
	background:#eee;
}

.zma-card__body{
	display:flex;
	flex-direction:column;
	flex:1;
	padding:14px 16px 18px;
}

.zma-card__code{
	display:inline-flex;
	width:fit-content;
	margin-bottom:6px;
	padding:4px 9px;
	border-radius:999px;
	background:#fff2f7;
	color:#d93370;
	font-size:.72rem;
	font-weight:700;
	line-height:1.3;
}

.zma-card__title{
	height:4.8em;
	margin:0 0 10px;
	font-size:1rem;
	line-height:1.6;
	font-weight:700;
	display:-webkit-box;
	-webkit-line-clamp:3;
	-webkit-box-orient:vertical;
	overflow:hidden;
}

.zma-card__title a{
	color:#222;
	text-decoration:none;
}

.zma-card__title a:hover{
	color:#ff4f8a;
}

.zma-card__meta{
	min-height:3.3em;
	margin:0 0 10px;
	display:flex;
	flex-direction:column;
	gap:5px;
}

.zma-card__actress{
	font-size:.82rem;
	color:#666;
	font-weight:600;
	line-height:1.4;
}

.zma-card__series{
	font-size:.78rem;
	line-height:1.4;
}

.zma-card__series a,
.zma-card__series span{
	display:inline-flex;
	max-width:100%;
	color:#2c8ed6;
	text-decoration:none;
	font-weight:700;
}

.zma-card__series a:hover{
	color:#d93370;
}

.zma-card__rating{
	display:flex;
	align-items:center;
	gap:8px;
	margin:0 0 12px;
}

.zma-stars{
	color:#ffb400;
	font-size:1rem;
	letter-spacing:.04em;
	line-height:1;
}

.zma-card__rating span:last-child{
	color:#777;
	font-size:.82rem;
	font-weight:700;
}

.zma-mini-bars{
	display:grid;
	gap:8px;
	margin-bottom:12px;
}

.zma-mini-bar{
	display:grid;
	grid-template-columns:54px 1fr;
	gap:8px;
	align-items:center;
}

.zma-mini-bar span{
	font-size:.74rem;
	font-weight:700;
	color:#555;
}

.zma-mini-bar div{
	height:7px;
	background:#edf2f6;
	border-radius:999px;
	overflow:hidden;
}

.zma-mini-bar i{
	display:block;
	height:100%;
	background:linear-gradient(90deg,#ff7aa8,#ff4f8a);
	border-radius:999px;
}

.zma-card__comment{
	height:3.4em;
	margin:auto 0 0;
	padding-top:12px;
	border-top:1px solid #f0f2f5;
	color:#444;
	font-size:.84rem;
	line-height:1.7;
	display:-webkit-box;
	-webkit-line-clamp:2;
	-webkit-box-orient:vertical;
	overflow:hidden;
}

.zma-pagination{
	margin-top:42px;
	text-align:center;
}

/* =========================================================
   series shortcode
========================================================= */

.zms-series{
	margin:32px 0;
}

.zms-hero{
	position:relative;
	margin:0 0 26px;
	border-radius:20px;
	overflow:hidden;
	background:#111;
	box-shadow:0 12px 34px rgba(0,0,0,.12);
}

.zms-hero img{
	display:block;
	width:100%;
	height:auto;
}

.zms-hero__body{
	position:absolute;
	left:0;
	right:0;
	bottom:0;
	padding:28px 30px;
	background:linear-gradient(to top, rgba(0,0,0,.72), rgba(0,0,0,0));
	color:#fff;
}

.zms-hero__title{
	font-size:1.35rem;
	font-weight:700;
	line-height:1.5;
}

.zms-hero__text{
	margin-top:6px;
	font-size:.8rem;
	opacity:.82;
}

.zms-description{
	margin:22px 0 26px;
	padding:26px 30px;
	border-radius:18px;
	background:#fff;
	border:1px solid #edf0f3;
	box-shadow:0 8px 24px rgba(0,0,0,.04);
	line-height:2;
	color:#333;
}

.zms-description p{
	margin:0 0 1.4em;
}

.zms-description p:last-child{
	margin-bottom:0;
}

.zms-description::before{
	content:"シリーズ概要";
	display:inline-flex;
	margin:0 0 14px;
	padding:5px 12px;
	border-radius:999px;
	background:#fff2f7;
	color:#d93370;
	font-size:.78rem;
	font-weight:700;
}

.zms-summary{
	display:grid;
	grid-template-columns:repeat(5,minmax(0,1fr));
	gap:10px;
	margin:0 0 28px;
}

.zms-summary__item{
	background:#fff;
	border:1px solid #edf0f3;
	border-radius:14px;
	padding:14px 12px;
	text-align:center;
	box-shadow:0 6px 18px rgba(0,0,0,.04);
}

.zms-summary__item span{
	display:block;
	margin-bottom:5px;
	font-size:.76rem;
	color:#777;
	font-weight:700;
}

.zms-summary__item strong{
	display:block;
	font-size:1.15rem;
	color:#222;
}

.zms-grid{
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:24px 18px;
}

.zms-card{
	display:flex;
	flex-direction:column;
	background:#fff;
	border:1px solid #edf0f3;
	border-radius:18px;
	overflow:hidden;
	box-shadow:0 8px 24px rgba(0,0,0,.05);
}

.zms-card__thumb{
	display:block;
	aspect-ratio:16/10;
	background:#f0f0f0;
	overflow:hidden;
}

.zms-card__thumb img{
	width:100%;
	height:100%;
	object-fit:cover;
	display:block;
}

.zms-card__body{
	display:flex;
	flex-direction:column;
	flex:1;
	padding:16px;
}

.zms-card__code{
	display:inline-flex;
	width:fit-content;
	margin-bottom:8px;
	padding:4px 9px;
	border-radius:999px;
	background:#fff2f7;
	color:#d93370;
	font-size:.72rem;
	font-weight:700;
}

.zms-card__title{
	min-height:3.1em;
	margin:0 0 10px;
	font-size:1rem;
	line-height:1.55;
	font-weight:700;
	display:-webkit-box;
	-webkit-line-clamp:2;
	-webkit-box-orient:vertical;
	overflow:hidden;
}

.zms-card__title a{
	color:#222;
	text-decoration:none;
}

.zms-card__actress{
	margin:-2px 0 12px;
	font-size:.82rem;
	color:#777;
	font-weight:600;
	letter-spacing:.02em;
}

.zms-card__rating{
	display:flex;
	align-items:center;
	gap:8px;
	margin-bottom:12px;
}

.zms-stars{
	color:#ffb400;
	font-size:1rem;
	letter-spacing:.04em;
	line-height:1;
}

.zms-card__rating span:last-child{
	color:#777;
	font-size:.82rem;
	font-weight:700;
}

.zms-bars{
	display:grid;
	gap:8px;
	margin-bottom:12px;
}

.zms-bar{
	display:grid;
	grid-template-columns:54px 1fr;
	gap:8px;
	align-items:center;
}

.zms-bar span{
	font-size:.74rem;
	font-weight:700;
	color:#555;
}

.zms-bar div{
	height:7px;
	background:#edf2f6;
	border-radius:999px;
	overflow:hidden;
}

.zms-bar i{
	display:block;
	height:100%;
	background:linear-gradient(90deg,#ff7aa8,#ff4f8a);
	border-radius:999px;
}

.zms-card__comment{
	margin:auto 0 0;
	padding-top:12px;
	border-top:1px solid #f0f2f5;
	color:#444;
	font-size:.84rem;
	line-height:1.7;
}

/* =========================================================
   site logo
========================================================= */

.c-headLogo{
	width:100%;
	text-align:center;
}

.c-headLogo__link,
.site-name-text{
	font-family:"Helvetica Neue","Yu Gothic",sans-serif;
	font-size:2rem;
	font-weight:900;
	letter-spacing:.04em;
	color:#111;
	position:relative;
	display:inline-block;
	line-height:1.1;
	text-decoration:none;
	padding-bottom:10px;
}

.c-headLogo__link::after,
.site-name-text::after{
	content:"";
	position:absolute;
	left:50%;
	transform:translateX(-50%);
	bottom:0;
	width:100%;
	height:6px;
	background:linear-gradient(90deg,#ff7aa8,#ff4f8a);
	border-radius:999px;
}

/* =========================================================
   responsive
========================================================= */

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

	.zms-summary{
		grid-template-columns:repeat(3,minmax(0,1fr));
	}
}

@media(max-width:768px){
	.zmc-one-comment{
		padding:24px 22px;
		font-size:1.08rem;
		line-height:1.9;
	}

	.zmc-stars{
		font-size:1.6rem;
	}

	.zmc-score-row{
		flex-direction:column;
		gap:10px;
	}

	.zmc-score-row__label{
		width:auto;
		padding-top:0;
	}
}

@media(max-width:600px){
	.zmc-review-wrap{
		padding:28px 14px 56px;
	}

	.zmc-review-title{
		font-size:1.38rem;
	}

	.zmc-gallery{
		column-count:1;
	}

	.zmc-btn{
		width:100%;
		min-width:0;
	}

	.zma-wrap{
		padding:34px 14px 64px;
	}

	.zma-grid,
	.zms-grid,
	.zms-summary{
		grid-template-columns:1fr;
	}

	.zma-grid{
		gap:22px;
	}

	.zma-header h1{
		font-size:1.5rem;
	}

	.c-headLogo__link,
	.site-name-text{
		font-size:1.75rem;
	}
}


/* =========================================
   Series card title fix
========================================= */

.zms-card__title{
	height:4.8em;
	min-height:0;
	margin:0 0 12px;
	font-size:1rem;
	line-height:1.6;
	display:-webkit-box;
	-webkit-line-clamp:3;
	-webkit-box-orient:vertical;
	overflow:hidden;
}

.zms-card__title::after{
	display:none;
}

.zms-card__actress{
	margin:0 0 10px;
}

.zms-card__rating{
	margin-top:0;
}


/* 品番とタイトルの隙間調整 */

.zms-card__code{
	margin-bottom:10px !important;
}

.zms-card__title{
	margin-top:0 !important;
	margin-bottom:14px !important;
}


/* シリーズカードのタイトル下線を消す */

.zms-card__title,
.zms-card__title a{
	border-bottom:none !important;
}

.zms-card__title::before,
.zms-card__title::after,
.zms-card__title a::before,
.zms-card__title a::after{
	display:none !important;
	content:none !important;
}



.zma-pagination{
	margin-top:40px;
	text-align:center;
}

.zma-pagination .page-numbers{
	display:inline-block;
	min-width:auto;
	padding:8px 14px;
	margin:0 4px;
	background:#fff;
	border:1px solid #e5e5e5;
	border-radius:8px;
	color:#333;
	text-decoration:none;
}

.zma-pagination .current{
	background:#ff4f8a;
	color:#fff;
	border-color:#ff4f8a;
}



.zma-card__code{
	display:flex;
	gap:8px;
	align-items:center;
	font-size:11px;
	color:#777;
	margin-bottom:8px;
}

.zma-card__date{
	color:#999;
}

.zma-card__series{
	margin-top:6px;
}

.zma-card__series a,
.zma-card__series span{
	display:inline-block;
	padding:4px 10px;
	border-radius:999px;
	background:#fff0f5;
	color:#ff4f8a;
	font-size:11px;
	font-weight:700;
	text-decoration:none;
	line-height:1.3;
}



.zms-card__title,
.zms-card__title a {
	display: block;
	overflow: visible !important;
	max-height: none !important;
	-webkit-line-clamp: unset !important;
	line-clamp: unset !important;
	-webkit-box-orient: unset !important;
	white-space: normal !important;
}