@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: #009843;
	--main-pink: #DC6AA5;
	--main-yellow: #FDED17;
	--main-red: #CC0033;
}

/*-------------------------------------------
 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 .cp-main__inner {
		max-width: 768px;
		border-top: 2px solid #E7E6E6;
		border-right: 2px solid #E7E6E6;
		border-left: 2px solid #E7E6E6;
	}
}
/*-------------------------------------------
エントリーエリア設定
-------------------------------------------*/
.cp-main .cp-btn--large {
	border: 2px solid #000;
}
.cp-main .btn-shadow {
    box-shadow: 0px 3px 0 #000;
}
.cp-main .list--normal li {
	line-height: 1.7;
}

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

/*-------------------------------------------
 MV下ポイント進呈時期・ポイント有効期限
-------------------------------------------*/
.cp-main .cp-detail-period-block__inner {
	background-color: #FFFDD0;
	width: 100%;
	padding: 10px 0;
	color: #000;
	text-align: center;
	font-size: 14px;
}

.cp-main .cp-detail-period-block__inner > p {
	line-height: 1.5;
}

/*-------------------------------------------
 キャンペーン詳細ボタン
-------------------------------------------*/
.cp-main .cp-detail-btn {
	margin: 0 auto;
	padding: 20px var(--gap-base);
	background-image: repeating-linear-gradient(315deg, #FFFDD0, #FFFDD0 6px, transparent 6px, transparent 8px);
}
.cp-main .cp-detail-btn_main {
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 16px;
	color: #000;
    font-weight: bold;
    background: var(--main-yellow);
	border: 2px solid #000;
    height: 48px;
    padding: 12px;
    border-radius: 100px;
    margin: auto;
    position: relative;
    line-height: 1.2;
	text-decoration: none!important;
}
.cp-main .cp-detail-btn-shadow {
    box-shadow: 0px 3px 0 #000;
    transition: var(--hover-transition);
    transform: translateY(0);
}
.cp-main .cp-detail-arrow:before {
    position: absolute;
    content: " ";
    right: 15px;
    width: 10px;
    height: 10px;
    border-top: 2px solid #000;
    border-right: 2px solid #000;
    top: 50%;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%) rotate(135deg);
    -ms-transform: translateY(-50%) rotate(135deg);
}

@media (min-width: 769px) {
	.cp-main .cp-detail-btn {
		padding: 30px var(--gap-base);

	}
	.cp-main .cp-detail-btn_main {
		height: 80px;
		font-size: 22px;
	}
	.cp-main .cp-detail-btn-shadow:hover {
		box-shadow: none !important;
		transform: translateY(3px);
	}
}

/*-------------------------------------------
 キャンペーン特典
-------------------------------------------*/
.cp-main .cp-benefits-block__inner {
	padding: 20px var(--gap-base);
	background-image: url(../img/cp-detail_bg.png);
	background-size: cover;
}
.cp-main .cp-benefits__container {
	background-color: #FFF;
	border-radius: 16px;
	text-align: center;
	padding: 20px;
}
.cp-main .benefits_title {
	max-width: 170px;	
}
.cp-main .benefits_1 {
	margin: 10px 0;
}

@media (min-width: 769px) {
	.cp-main .cp-benefits-block__inner {
		padding: 30px 80px;
	}
	.cp-main .cp-benefits__container {
		padding: 30px 50px;
	}
	.cp-main .benefits_title {
		max-width: 250px;	
	}
	.cp-main .benefits_1 {
		margin: 20px 0;
	}
}

/*-------------------------------------------
 キャンペーン参加手順
-------------------------------------------*/
.cp-main .cp-step-block__inner {
	text-align: center;
}
.cp-main .cp-step-block__title {
	background: var(--main-pink);
	width: 100%;
	padding: 16px var(--gap-base);
}
.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;
	margin-bottom: 20px;
	padding: 30px 20px;
}
.cp-main .cp-step-number {
	max-width: 175px;
	margin-bottom: 10px;
}
.cp-main .cp-step-block__container__txt {
	font-size: 16px;
	font-weight: bold;
	margin-bottom: 10px;
}

@media (min-width: 769px) {
	.cp-main .cp-step-block__title {
		padding: 20px var(--gap-base);
	}
	.cp-main .cp-step-title {
		max-width: 350px;
	}
	.cp-main .cp-step-block__wrapper {
		padding: 30px 80px;
	}
	.cp-main .cp-step-block__container {
		padding: 40px 30px;
	}
	.cp-main .cp-step-block__container__txt {
		font-size: 24px;
	}
}

/*下矢印*/
.cp-main .big-arrow {
	max-width: 80px;
	margin: 0 auto 1em;
}

/*-------------------------------------------
 テキストリンク
-------------------------------------------*/
.cp-main .cp-step-block__tolink {
    background: #FFF;
    border: 1px solid #ff2e9a;
    border-radius: 10px;
    padding: 4px 0;
    font-size: 20px;
	color: #000;
	margin-bottom: 20px;
}
.cp-step-block__tolink a:link {
    color: #000;
}

/* 訪問後のリンクの色を変えない */
.cp-main .cp-step-block__tolink a:visited {
	color: #000;
}

.cp-main .cp-step-block__tolink:last-child {
	margin-bottom: 0;
}

@media (min-width: 769px) {
	/* hoverで下線消す */
	.cp-main .cp-step-block__tolink a:hover {
		text-decoration: none;
	}
}
/*-------------------------------------------
 dブックおすすめポイント
-------------------------------------------*/
.cp-main .about-dbook-block__inner {
	padding: 30px var(--gap-base);
	background: #FFF;
}

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

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

.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.5em;
    margin-bottom: 8px;
    min-height: 36px;
}

.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);
	color: var(--col-book-green);
	border-radius: 6px;
	text-decoration: none;
    font-size: 12px;
    font-weight: bold;
    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: 1;
        min-height: 18px;
    }
}

@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: 16px 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 .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;
	}
}

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