@charset "UTF-8";


/*-------------------------------------------
 基本設定
-------------------------------------------*/
.cp-main{
	/* max960で 960以下で左右に入れたい余白の数値 */
	/* 基本的にヘッダーなどに合わせ 8px */
	--size-rl-padding: 8px;

	/* （自動計算用） */
	--size-rl-padding-plus: calc( var(--size-rl-padding) + 2);


	/* 最大幅 */
	--maxwidth: 768px;

	/* 基本色 */
	--main-green: #3CB65E;
	--main-pink: #FF357E;
	--button-pink: #FF5C9F;
	--main-yellow: #FFFDD0;
	--main-orange: #FF651A;
	--main-red: #CC0033;
	--col-txt-link-blue: #059FFF;
}

.cp-main a {
    color: var(--col-txt-link-blue);
}


/*スマホの時だけ改行させるクラス*/
.br-sp {
    display: block;
}

@media (min-width: 769px) {
    .br-sp {
        display: none;
    }
}

/*-------------------------------------------
 hover
-------------------------------------------*/

/* hoverで透明にしたいものにだけ */
@media (min-width: 769px) {
	.cp-main .cp-step-block__wrapper a,
	.cp-main .list--normal a {
		transition: var(--hover-transition);
	}

	.cp-main .cp-step-block__wrapper a:hover,
	.cp-main .list--normal a:hover {
		opacity: 0.7;
	}
}

/*-------------------------------------------
パンクズ
-------------------------------------------*/
.cp-body .cont768{
	max-width: calc(768px + 6%);
	padding-left: 3%;
	padding-right: 3%;
	margin: auto;
}

/*-------------------------------------------
PC表示のみ全体枠線
-------------------------------------------*/
@media (min-width: 769px) {
	.cp-main {
		max-width: 768px;
		border-top: 2px solid #E7E6E6;
		border-right: 2px solid #E7E6E6;
		border-left: 2px solid #E7E6E6;
		margin: 0 auto;
	}
}
/*-------------------------------------------
ボタンの線と影の設定
-------------------------------------------*/
.cp-main .cp-btn--large {
	border: 2px solid #000;
}
.cp-main .btn-shadow {
    box-shadow: 0px 2px 0 #000;
}
.cp-main .list--normal li {
	line-height: 1.7;
}

@media (min-width: 769px) {
	.cp-main .btn-shadow {
		box-shadow: 0px 3px 0 #000;	
	}
}

/*-------------------------------------------
 MV 最大幅768px
-------------------------------------------*/
.cp-main .mv-block__main img {
	max-width: 768px;
}

/*-------------------------------------------
 MV下ポイント進呈時期・ポイント有効期限
-------------------------------------------*/
.cp-main .cp-detail-period-block__inner {
	background-color: #000;
	width: 100%;
	padding: 16px;
	color: #FFF;
	text-align: center;
	font-size: 17px;
	font-weight: bold;
}
.cp-main .cp-detail-period-block__inner > p {
	line-height: 1.5;
}

@media (min-width: 769px) {
	.cp-main .cp-detail-period-block__inner {
		font-size: 24px;
	}
}

@media (max-width: 423px) {
	.cp-main .cp-detail-period-block__inner {
		font-size: 14px;
	}	

}

/*-------------------------------------------
 キャンペーン概要
-------------------------------------------*/
.cp-main .cp--detail-block__inner {
	background: #FFFDD0;
	text-align: center;
	font-size: 16px;
	font-weight: bold;
	padding: 20px 16px;
}

.cp-main .cp--detail-list {
	display:flex;
	justify-content: space-between;
	flex-direction: column;
}
.cp-main .cp--detail-list > li {
	line-height: 1.5;
}
.cp-main .cp--detail-text {
	margin-top: 1em;
	font-size: 14px;
	line-height: 1.5;
	font-weight: 500;
}

@media (min-width: 769px) {
	.cp-main .cp--detail-list {
		flex-direction: row;
		align-items: center;
	}
	.cp-main .cp--detail-list > li {
		padding-right: .6em;
		padding-left: .5em;
		border-right: 1px solid #000;
		line-height: 1;
        display: inline-block;
		font-size: 16px;

	}
	.cp-main .cp--detail-list > li:last-child {
		border-right: none;
		padding-right: 0;
	}
	.cp-main .cp--detail-text {
		font-size: 16px;
}
}

/*-------------------------------------------
 キャンペーン参加手順
-------------------------------------------*/
.cp-main .cp-step-block__inner {
	text-align: center;
}

.cp-main .cp-step-title {
	max-width: 253px;
}
.cp-main .cp-step-block__wrapper {
	background: url(../img/bg.png);
}
.cp-main .cp-step-block__container {
	background: #FFF;
	border: 3px solid #000;
	border-radius: 16px;
	box-shadow: 0px 3px 0 #000;
	padding: 30px 20px;
}
.cp-main .cp-step-block__title {
	background: var(--main-pink);
	width: 100%;
	padding: 14px;
	font-weight: bold;
	color: #FFF;
	line-height: 1.2;
}
.cp-main .cp-step-block__att__txt {
	margin-top: 0;
	font-weight: normal;
	font-size: 14px;
}
.cp-main .cp-step-detail__txt {
	font-size: 14px;
	padding-bottom: 10px;
}
.cp-main .cp-step-detail__img {
	margin-bottom: 22px;
}
.cp-main .cp-step-number {
	max-width: 175px;
	margin-bottom: 16px;
}
.cp-main .cp-step1-block__container__txt {
	font-size: 18px;
	font-weight: bold;
	margin-bottom: 16px;
}
.cp-main .cp-step2-block__container__txt {
	margin-bottom: 22px;
}
.cp-step2-block__container__title {
	font-size: 18px;
	font-weight: bold;
	line-height: 1.2!important;
}

@media (min-width: 769px) {
	.cp-main .cp-step-block__title {
		padding: 16px var(--gap-base);
	}
	.cp-main .cp-step-title {
		max-width: 350px;
	}
	.cp-main .cp-step-block__wrapper {
		padding: 40px 80px;
	}
	.cp-main .cp-step-block__container {
		padding: 40px 30px;
	}
	.cp-main .cp-step-block__att__txt {
		font-size: 16px;
	}
	.cp-main .cp-step1-block__container__txt {
		font-size: 24px;
		margin-bottom: 16px;
	}
	.cp-main .cp-step2-block__container__title {
		font-size: 24px;
	}
	.cp-main .cp-step-detail__txt {
		font-size: 16px;
		padding-bottom: 10px;
	}
	.cp-main .cp-step-detail__img {
		margin-bottom: 26px;
	}
}

/*下矢印*/
.cp-main .big-arrow {
	max-width: 80px;
	margin: 1.5em auto 1em;
}
@media (min-width: 769px) {
	.cp-main .big-arrow {
		margin: 1.5em auto 1.2em;
	}
}

/*-------------------------------------------
エントリー導線ボタン
-------------------------------------------*/
.cp-main .cp-btn--large--pink {
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: clamp(18px , 3.2vw ,22px);
    font-weight: bold;
    background: var(--button-pink);
    height: 50px;
    padding: 12px;
    border-radius: 100px;
    margin: auto;
    position: relative;
    line-height: 1.2;
	border: 2px solid #000;
}
.cp-main a.cp-btn--large--pink {
    color: var(--col-white);
    text-decoration: none;
}
.cp-main .down-arrow:before {
    position: absolute;
    content: " ";
    top: 50%;
    right: 15px;
    border-left: 7px solid transparent;
    border-right: 7px solid transparent;
    border-top: 10px solid var(--col-white);
    transform: translateY(-40%);
}

@media (min-width: 769px) {
	.cp-main .cp-btn--large--pink {
		height: 70px;
	}
	.cp-main .down-arrow:before {
		right: 24px;
		border-left: 10px solid transparent;
		border-right: 10px solid transparent;
		border-top: 14px solid var(--col-white);
	}
}

/*-------------------------------------------
 もっと作品を探すボタン
-------------------------------------------*/
.cp-main .cp-btn--large--green {
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: clamp(18px , 3.2vw ,22px);
    font-weight: bold;
    background: var(--main-green);
    height: 50px;
    padding: 12px;
    border-radius: 100px;
    margin: auto;
    position: relative;
    line-height: 1.2;
    border: 2px solid #000;
}
.cp-main a.cp-btn--large--green {
    color: var(--col-white);
    text-decoration: none;
}


@media (min-width: 769px) {
	.cp-main .cp-btn--large--green {
		height: 70px;
	}
}


/*-------------------------------------------
 dブックおすすめポイント
-------------------------------------------*/
.cp-main .about-dbook-block__inner {
	padding: 30px var(--gap-base);
	background: #FFFDD0;
}

@media (min-width: 769px) {
	.cp-main .about-dbook-block__inner {
		padding: 40px 80px;
	}
}

/*-------------------------------------------
 ポイントミッションに参加
-------------------------------------------*/
.cp-main .cp-mission-block__inner {
	padding: 30px var(--gap-base);
	background: #FFF;
}
.cp-main .cp-mission__img {
	margin-bottom: 10px;
}
.cp-main .cp-btn--large--orange {
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: clamp(18px,3.2vw,22px);
    font-weight: bold;
    background: var(--main-orange);
    height: 50px;
    padding: 12px;
    border-radius: 100px;
    margin: auto;
    position: relative;
    line-height: 1.2;
	border: 2px solid #000;
}

.cp-main a.cp-btn--large--orange {
    color: var(--col-white);
    text-decoration: none;
}


@media (min-width: 769px) {
	.cp-main .cp-btn--large--orange {
		height: 70px;
		width: 545px;
	}
	.cp-main .cp-mission-block__inner {
		padding: 40px var(--gap-base);
	}
}


/*-------------------------------------------
 エントリーボタンエリア
-------------------------------------------*/

.cp-main .cp-entry-title {
	width: min(90%, 300px);
}
.cp-main .cp-step-block__container__txt-entry {
	margin-bottom: 10px;
}

/*-------------------------------------------
 手動棚　共通設定
-------------------------------------------*/
.cp-main .cp-shelf{
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.6em .6em;
	margin-bottom: 24px;
}

.cp-main .cp-shelf__item{
	display: flex;
    flex-direction: column;
}

.cp-main .cp-shelf__label-box{
    flex-grow:1;
    margin-bottom: 6px;
}

.cp-main .cp-shelf__label{
	width: 100%;
    border: 1px solid var(--col-book-gray);
    border-radius: 5px;
    font-size: 13px;
    line-height: 1.3;
    color: var(--col-book-gray__black);
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    padding: 3px;

}

.cp-main .cp-shelf__label--hidden{
    visibility: hidden;
}

.cp-main a.cp-shelf__link{
	text-decoration: none;
    color: var(--col-book-black);
}


.cp-main .cp-shelf__img-box{
	display: block;
	/* 挿入される書影によって調整 */
	padding-top: min(140%, 250px);
	position: relative;
	margin-bottom: 6px;
}

.cp-main .cp-shelf__img-box-inner{
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

/* タイトルがない場合のマージン */
.cp-main .cp-shelf__link + .cp-shelf__btns{
	margin-top: 6px;
}

.cp-main .cp-shelf__img{
	display: block;
    margin: 0 auto;
    max-height: 100%;
    max-width: 100%;
    width: auto;
    height: auto;
    -o-object-fit: contain;
    object-fit: contain;
    border-radius: 0;
	/*
	border: 1px solid var(--col-book-gray);
	*/
	/*
    -webkit-box-shadow: 0 4px 6px rgba(0, 0, 0, 0.12);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.12);
	*/
}

.cp-main .cp-shelf__title {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    font-size: 12px;
    line-height: 1.4;
    margin-bottom: 0;
    min-height: 33px;
	text-decoration: underline;
	text-align: left;
	font-weight: 600;
	padding: 0 2px;
}

.cp-main .cp-shelf__btns{
	display: grid;
	gap: 6px;
}


.cp-main .cp-shelf__btn{
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 3px .2em;
	line-height: 1;
	font-size: clamp(11px , 2.8vw , 14px);
    opacity: 1;
}

.cp-main a.cp-shelf__btn--trial{
	line-height: 1;
	text-align: center;
	border: 1px solid var(--col-book-green);
	background: var(--col-book-green);
	color: #FFF;
	border-radius: 6px;
	text-decoration: none;
    font-size: 12px;
    font-weight: 500;
    padding: 8px;
}

.cp-main a.cp-shelf__btn--buy{
	line-height: 1;
	text-align: center;
	border: 1px solid var(--col-book-green);
	background: var(--col-book-green);
	color: #FFF;
	border-radius: 999px;
	text-decoration: none;
    font-size: 12px;
    font-weight: bold;
    padding: 12px 8px;
}

/* 画像が正方形の場合 */
.cp-main .shelf-square .cp-shelf__img-box{
    padding-top: min(100%, 250px);
}

/* ボタンがない時にはこのclassを追加 */
.cp-main a.cp-shelf__btn--hidden{
	visibility: hidden;
}

@media screen and (min-width:600px) {
    .cp-main .cp-shelf__title{
        -webkit-line-clamp: 2;
        min-height: 34px;
    }
}

@media screen and (min-width:769px) {
	.cp-main .cp-shelf{
		grid-template-columns: repeat(6, 1fr);
	}
}


/*-------------------------------------------
 規約
-------------------------------------------*/
.cp-main .outline-block__title {
	background: var(--main-green);
	width: 100%;
	padding: 14px var(--gap-base);
	text-align: center;
}
.cp-main .cp-outline-title {
	max-width: 210px;
}
.cp-main .outline-block__inner {
	padding: 20px var(--gap-base);
}

.cp-main .outline-block__lead{
	font-weight: bold;
	line-height: 1.5;
	margin-bottom: 1em;
	padding-bottom: 1em;
	border-bottom: 1px solid var(--col-book-gray);
}

.cp-main .outline-block__list{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

.cp-main .outline-block__item-title,
.cp-main .outline-block__item-disc{
	font-size: 14px;
	width: 100%;
}

.cp-main .outline-block__item-title{
	color: var(--col-book-green);
	font-weight: bold;
}

.cp-main .outline-block__item-disc{
	border-bottom: 1px solid var(--col-book-gray);
	margin-bottom: 1em;
	padding-bottom: 1em;
}

.cp-main .outline-block__item-disc:last-child{
	margin-bottom: 0;
	border-bottom: none;
	padding-bottom: 0;
}

.cp-main .list--number {
  padding-left: 20px;
}
.cp-main .list--number li {
  list-style: decimal !important;
}

/* 内側のリストの li だけ、数字を「なし」に強制上書きする */
.cp-main .list--number .list--nest li {
  	list-style: none !important;
	padding-left: 1em;
	text-indent: -1em;
}

@media (min-width: 769px) {
	.cp-main .outline-block__title {
		padding: 16px var(--gap-base);		
	}
	.cp-main .cp-outline-title {
    	max-width: 272px;
	}
	.cp-main .outline-block__inner {
    	padding: 20px 80px 40px;
	}
}

/*-------------------------------------------
 アプリ出しわけ導線CSS（detail_apri.css）上書き
-------------------------------------------*/

.cp-main .cp-apri-block__outer {
	margin: 0;
	padding: 0 var(--gap-base) 20px;
}
.cp-main .btn-apri.btn-shadow {
	box-shadow: 0px 3px 0 #000;
}

@media (min-width: 769px) {
	.cp-main .cp-apri-block__outer {
    	padding: 0 80px 40px;
	}
}

/*-------------------------------------------
　追従バナー
-------------------------------------------*/
.cp-main .float-area__inner {
    position: fixed;
    z-index: 100;
    bottom: 0;
    right: 0;
}
.cp-main .float-area__banner-block {
    width: 100vw;
    padding: 16px 0 14px;
    background: rgba(255, 255, 255, 0.7);
}

.cp-main .float-banner-txt__img {
	max-width: 180px;
}

.cp-main .float-area__banner {
	display: flex;
	justify-content: center;
	align-items: center;
	width: min(90%, 545px);
	height: 60px;
	padding: 12px;
    color: #fff;
    background: var(--button-pink);
    border: 2px solid #000;
    border-radius: 999px;
    margin: 0 auto;
    padding: 5px 0 8px;
    box-shadow: 0px 2px 0 #000;
}

.cp-main .float-area__inner a:link {
    text-decoration: none;
}

.cp-main .txt-14 {
	font-size: 14px;
}

/*追従バナーがフッターに被らないように*/
.bw-footer__block--down {
	padding: 0 0 100px;	
}
@media (min-width: 769px) {
	.bw-footer__block--down {
		padding: 0 0 110px;	
	}
}

/*-------------------------------------------
 footerアプリDL導線非表示
-------------------------------------------*/
.bw-footer__download {
	display: none;
}

