@charset "UTF-8";

/*-------------------------------------------
 基本設定
-------------------------------------------*/
.cp-body{
	/* ボタン影 色 */
	--btn-shadow: #750000;

	/* transition */
	--hover-transition: all .3s ease-out;

	/* テキストリンク */
	--col-text-link: #0064D9;
	
	/* docomo red */
	--col-d-red: #cc0033;

	/* docomo green */
	--col-d-green: #00915D;

	/* light gray(border.etc.) */
	--col-d-gray: #D9D9D9;
}

/*-------------------------------------------
 ページ調整
-------------------------------------------*/
/* スムーズスクロール */
html { scroll-behavior: smooth;}

.cp-main {
	/* 基本テキスト設定 */
	font-size: 16px;
	overflow-wrap: break-word;
	word-wrap: break-word;
	line-height: 1.7;
}

/* PCで上にマージン */
@media all and (min-width: 769px) {
	.cp-main{
	  margin-top: 15px;
	}
}

/* commonのlineheightを上書き他に合わせる */
.cp-main p{
	line-height: 1.7;
}

.cp-main__inner {
	/* 基本的に横中央になるように */
	margin: 0 auto;
  }

/* h系設定リセット */
.cp-main h1, .cp-main h2, .cp-main h3, .cp-main h4, .cp-main h5, .cp-main h6 {
	font-weight: bold;
	margin-bottom: 0;
	max-width: initial;
}

/* 横幅MAX960 */
.cont960{
	max-width: 960px;
	margin-left: auto;
	margin-right: auto;
}

/* 横幅MAX960プラス中のコンテンツに左右余白 */
.cont960__margin{
	max-width: 960px;
	padding-left: 3%;
	padding-right: 3%;
	margin-left: auto;
	margin-right: auto;
}

/* 横幅MAX960プラス中のコンテンツに上下左右余白 */
.cont960__margin-all{
	max-width: 960px;
	padding: 3%;
	margin-left: auto;
	margin-right: auto;
}

/* 横幅MAX960プラス中のコンテンツにSPのみ上左右余白 */
.cont960__margin-sp-plus-top{
	max-width: 960px;
	padding: 3%;
	margin-left: auto;
	margin-right: auto;
}

@media all and (min-width: 1000px) {
	.cont960__margin,
	.cont960__margin-all{
		width: 960px;
		margin-left: auto;
		margin-right: auto;
		padding-left: 0;
		padding-right: 0;
	}

	.cont960__margin-sp-plus-top{
		width: 960px;
		margin-left: auto;
		margin-right: auto;
		padding-top: 0;
		padding-left: 0;
		padding-right: 0;
	}
}

/* 画像はmaxまで横100％に */
.cp-main img{
	max-width: 100%;
	height: auto;
}

/* setting a テキスト　リセット */
/*.cp-main a{
	color: var(--col-text-link);
}

.cp-main a:link{
	text-decoration: underline;
}*/

.cp-main a:hover{
	text-decoration: none;
}

/* pcでのhoverにopacityとtransitionを設定 */
@media (min-width: 769px){
	.cp-main a,
	.cp-main a img,
	.cp-main .arrow:before,
	.cp-main .arrow:after,
	.cp-main .cp-btn__large,
	.cp-main .cp-btn__middle,
	.cp-main .cp-btn__small{
		transition: var(--hover-transition);
		opacity: 1;
	}
}


/*-------------------------------------------
 display
-------------------------------------------*
/* inline-blockに */
.cp-main .disp__inline-block {
	display: inline-block;
}

/*-------------------------------------------
 余白調整
-------------------------------------------*/
/* マージン */
.cp-main .mt1e{ margin-top: 1em !important;}
.cp-main .mt1-5e{ margin-top: 1.5em !important;}
.cp-main .mt2e{ margin-top: 2em !important;}
.cp-main .mt30{ margin-top: 30px !important;}
.cp-main .mt40{ margin-top: 40px !important;}
.cp-main .mt50{ margin-top: 50px !important;}

/* パディング */
.cp-main .pt1e{ padding-top: 1em !important;}
.cp-main .pt1-5e{ padding-top: 1.5em !important;}
.cp-main .pt2e{ padding-top: 2em !important;}
.cp-main .pt30{ padding-top: 30px !important;}
.cp-main .pt40{ padding-top: 40px !important;}
.cp-main .pt50{ padding-top: 50px !important;}

/*-------------------------------------------
 テキスト
-------------------------------------------*/
/* 汎用*/
.cp-main .text01{ font-size: clamp(12px , 0.688rem + 0.313vw , 14px); line-height: 1.4;}
.cp-main .text02{ font-size: clamp(14px , 0.813rem + 0.313vw , 16px); line-height: 1.4;}
.cp-main .text03{ font-size: clamp(14px , 0.75rem + 0.625vw , 18px); line-height: 1.4;}

/* 固定 */
.cp-main .text-f-12{ font-size: 12px; line-height: 1.4; }

/* パーセント */
.cp-main .text-p-80 { font-size: 80%;}
.cp-main .text-p-90 { font-size: 90%;}
.cp-main .text-p-110 { font-size: 110%;}
.cp-main .text-p-120 { font-size: 120%;}
.cp-main .text-p-130 { font-size: 130%;}
.cp-main .text-p-140 { font-size: 140%;}
.cp-main .text-p-150 { font-size: 150%;}

/* ウェイト */
.cp-main .text-bold { font-weight: bold !important;}
.cp-main .text-normal { font-weight: normal !important;}

/* 色 */
.cp-main .text-dred{
	color: var(--col-d-red);
}

.cp-main .text-dgreen{
	color: var(--col-d-green);
}

.cp-main strong{
	font-weight: 700;
}


/*-------------------------------------------
 ボタン
-------------------------------------------*/
/* ボタン large */
.cp-main .cp-btn{
	display: flex;
	justify-content: center;
	align-items: center;
	margin: auto;
	position: relative;
	line-height: 1.2;
}

/* ボタン large */
.cp-main .cp-btn__large{
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: clamp(18px , 2.8vw ,22px);
	font-weight: bold;
	background: var(--col-d-red);
	height: 60px;
	padding: 12px;
	border-radius: 100px;
    max-width: 600px;
	margin: auto;
	position: relative;
	line-height: 1.2;
}

/* ボタン middle -ボタンリンク- */
.cp-main .cp-btn__middle {
	display: flex;
	justify-content: center;
	align-items: center;
	background: var(--col-d-red);
	color: #fff;
	padding: 12px;
	border-radius: 30px;
	font-weight: bold;
	text-align: center;
	margin: auto;
	font-size: clamp(16px , 2.8vw ,22px);
	line-height: 1.2;
	position: relative;
}
  
/* ボタン small -ボタンリンク- */
.cp-main .cp-btn__small {
	display: flex;
	justify-content: center;
	align-items: center;
	background: var(--col-d-red);
	color: #fff;
	padding: 12px;
	border-radius: 30px;
	font-weight: bold;
	text-align: center;
	font-size: 14px;
	position: relative;
	padding: 0.5em;
	margin: auto;
	line-height: 1.2;
	min-height: 44px;
}
  
/* ボタン　テキスト */
.cp-main a.cp-btn__large,
.cp-main a.cp-btn__middle,
.cp-main a.cp-btn__small,
.cp-main a.entry-block__btn{
	color: #fff;
	text-decoration: none;
}

/* ボタン　テキスト */
.cp-main a.cp-btn__large:hover,
.cp-main a.cp-btn__middle:hover,
.cp-main a.cp-btn__small:hover,
.cp-main a.entry-block__btn:hover{
	color: #fff;
	text-decoration: none;
}
  
/* ボタン　＞ */
.cp-main .arrow:before{
	position: absolute;
	content: " ";
	right: 15px;
	width: 13px;
	height: 13px;
	border-top: 3px solid #fff;
	border-right: 3px solid #fff;
	top: 50%;
	transform: translateY(-50%);
	-webkit-transform: translateY(-50%) rotate(45deg);
	-ms-transform: translateY(-50%) rotate(45deg);
}
  
/* ボタン影 */
.cp-main .btn-shadow{
	box-shadow: 0px 3px 0 var(--btn-shadow);
	transition: var(--hover-transition);
	transform: translateY(0);
}

@media only screen and (min-width: 769px) {
	/* PC */
	.cp-main .arrow:before{
		right: 20px;
		width: 13px;
		height: 13px;
		border-top: 3px solid #fff;
		border-right: 3px solid #fff;
		right: 28px;
	}

	.cp-main .btn-shadow{
		box-shadow: 0px 3px 0 var(--btn-shadow);
	}

	.cp-main .btn-shadow:hover{
		box-shadow: none !important;
		transform: translateY(3px);
	}
}


/*-----------------------------------
 テキスト　＼ ／
------------------------------------*/
/* テキスト */
.cp-main .text__deco-slash{
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: min(2% , 8px);
}

.cp-main .text__deco-slash::before,
.cp-main .text__deco-slash::after{
	content: "";
	height: 2em;
	width: 2px;
	background: #000;
	vertical-align: bottom;
}

.cp-main  .text__deco-slash::before {
	-webkit-transform: rotate(-30deg);
	transform: rotate(-30deg);
	margin-right: 0.7em;
}

.cp-main .text__deco-slash::after {
	-webkit-transform: rotate(30deg);
	transform: rotate(30deg);
	margin-left: 0.7em;
}


/*-------------------------------------------
 リスト頭出し
-------------------------------------------*/
.cp-main .list__normal li{
	padding-left: 1em;
	text-indent: -1em;
	line-height: 1.5;
}

/*-------------------------------------------
 下コンテンツのスマホの調整　ボーター入れる
-------------------------------------------*/
.bw-footer__download{
	padding-top: 2rem;
	border-top: 1px solid #ccc;
}

/*-------------------------------------------
　チェックボックス
-------------------------------------------*/
/* チェックボタンエリア */
.cp-main .checkbox-area__checkbox-set {
    font-size: clamp(12px, 3vw, 14px);
    border-top: 1px dashed #dcdcdc;
    border-bottom: 1px dashed #dcdcdc;
    margin: 1em auto;
    padding: 0.5em 0;
}

.cp-main .cp-checkbox {
    font-size: clamp(12px, 3vw, 14px);
}

/* チェックボタン */
.cp-main input[type="checkbox"] {
    display: inline-block;
    visibility: visible;
    -webkit-appearance: checkbox;
    margin-right: 0.5em;
}
/* チェックボタン&テキスト */
.cp-main input,
.cp-main label {
    vertical-align: middle;
    line-height: 1;
	margin-bottom: 0;
}

/* チェックボタン下のテキスト */
.cp-main .checkbox-area .checkbox-area__check-list li{
	text-align: left;
    font-size: 12px;
    text-align: left;
    margin-top: 0.2em;
    line-height: 1.3;
}

/*-------------------------------------------
close対応　
-------------------------------------------*/
/* ページ上テキスト */
.cp_attention__text {
    border: 2px solid var(--col-d-red);
    color: var(--col-d-red);
    font-size: 16px;
    font-weight: 600;
    margin: 15px 0;
    padding: 3% 30px;
    text-align: center;
    background: #fff;
    line-height: 1.75;
}

.cp_attention__text p{
    line-height: 1.7;
}



/* ボタン用 
------------------------*/
/* ボタンの色 */
 .cp-main .cp-end{
	pointer-events: none !important;
	background-color: #c8c8c8 !important;
	border: none !important;
	color: #FFF !important;
	box-shadow: none !important;
  }

/* 影 */
.cp-main .cp-end.btn-shadow {
    box-shadow: none !important;
}

/* 矢印 */
.cp-main .cp-end.arrow:before{
	border-color: #FFF !important;
}

/* 画像 */
.cp-main .cp-btn__large.cp-end img,
.cp-main .cp-btn__middle.cp-end img,
.cp-main .cp-btn__small.cp-end img{
	-webkit-filter: brightness(0) invert(1) !important;
	filter: brightness(0) invert(1) !important;
}

/* 画像直接用 
------------------------*/
.cp-main .cp-end .cp-end__img{
	-webkit-filter: grayscale(100%) !important;
	filter: grayscale(100%) !important;
	opacity: .5 !important;
}


/*-------------------------------------------
 自動棚　調整用
-------------------------------------------*/
/* もっとみる relative基準 */
.cp-main .bw_linkContents{
	position: relative;
	padding: 0;
	width: auto !important;
}

/* もっとみる */
.cp-main .bw_linkContents a.whg_mostView{
	top: 0;
	right: 0;
	color: #888;
	text-decoration: none;
}

/*  */
.cp-main .bw_linkContents > h2{
	width: calc(100% - 75px);
}


/* もっとみる hover */
@media (min-width: 769px){
	.cp-main .bw_linkContents a:hover{
		opacity: .7;
	}
}


/*-------------------------------------------
 テキストアンダーライン
-------------------------------------------*/
.cp-main .text-uline{
	background: linear-gradient(transparent 70%, #FFFF7F 30%);
}


/*************************************************************
-------------------------------------------
個別ページ設定
-------------------------------------------
*************************************************************/


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

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

	/* コンテンツの余白　基本 */
	--gap-base: min(5%, 48px);

	/* コンテンツの余白 スマホで上下開けたい */
	--gap-base-tb: min(8%, 48px);

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

    --col-pink: #FA486A;
    --col-yellow: #FFF100;
    --col-light-gray: #F0F0F0;
    --col-light-green: #EAF6EF;

    --padding-min: min(4% ,16px);
}

.cp-main .maxwidth960{
	max-width: 960px;
	margin-left: auto;
	margin-right: auto;
}

.cp-main .col-pink{
    color: var(--col-pink);
}

.cp-main .col-yellow{
    color: var(--col-yellow);
}
/*-------------------------------------------
 block 共通setting
-------------------------------------------*/
/* コンテンツのpadding + max width */
.cp-main .cont__padding-maxwidth {
    padding: calc(var(--gap-base) * 2) var(--gap-base);
    max-width: calc(var(--maxwidth) + (var(--gap-base) * 2));
    margin-left: auto;
    margin-right: auto;
}

@media only screen and (min-width: 769px) {
    .cp-main .cont__padding-maxwidth {
       padding: var(--gap-base);
        }
}

/* コンテンツのpadding */
.cp-main .cont__padding{
	padding: var(--gap-base-tb) var(--gap-base);
}

/* コンテンツのpadding左右のみ */
.cp-main .cont__padding-only-rl{
	padding: 0 var(--gap-base);
}

/* コンテンツのpadding上下のみ */
.cp-main .cont__padding-only-tb{
	padding: var(--gap-base-tb) 0;
}

/* コンテンツのpadding上 */
.cp-main .cont__padding-only-t{
	padding-top: var(--gap-base-tb) ;
}
/* コンテンツのpadding下 */
.cp-main .cont__padding-only-b{
	padding-bottom: var(--gap-base-tb) ;
}
/* padding右 */
.cp-main .cont__padding-only-r{
	padding-right: var(--gap-base) ;
}
/* コンテンツの左 */
.cp-main .cont__padding-only-l{
	padding-left: var(--gap-base) ;
}

/* コンテンツのpadding全てなし */
.cp-main .cont__padding-none{
	padding: 0;
}

/* コンテンツの margin */
.cp-main .cont__margin{
	margin: var(--gap-base-tb) var(--gap-base);
}

/* コンテンツのmargin左右のみ */
.cp-main .cont__margin-only-rl{
	margin: 0 var(--gap-base);
}

/* コンテンツのmargin左右のみ */
.cp-main .cont__margin-only-rl-pc-auto{
	margin: 0 var(--gap-base);
}

/* コンテンツのmargin上下のみ */
.cp-main .cont__margin-only-tb{
	margin: var(--gap-base) 0;
}

/* コンテンツのmargin上 */
.cp-main .cont__margin-only-t{
	margin-top: var(--gap-base) ;
}
/* コンテンツのmargin下 */
.cp-main .cont__margin-only-b{
	margin-bottom: var(--gap-base) ;
}
/* margin右 */
.cp-main .cont__margin-only-r{
	margin-right: var(--gap-base) ;
}
/* コンテンツの左 */
.cp-main .cont__margin-only-l{
	margin-left: var(--gap-base) ;
}

/* コンテンツ */
.cp-main .block-inner{
	margin-left: auto;
	margin-right: auto;
}

/* コンテンツ内の最大幅 */
.cp-main .maxwidth{
	max-width: var(--maxwidth);
}

.cp-main .mv-block__main{
	text-align: center;
}

/*---------------------------
 MV
-----------------------------*/
.cp-main .mv-block{
    background: #F8CDC8;
}
.cp-main .mv-block__lower{
	background: #FFF6F5;
	text-align: center;
}
.mv-block__lower-text{
	padding: 8px;
	color: var(--col-pink);
	font-weight: bold;
	font-size: min(3vw, 18px);
}

/*---------------------------
 SECTION TITLE
-----------------------------*/
.cp-main .section-title{
    background: var(--col-d-green);
    padding: 8px;
    font-size: 20px;
    text-align: center;
    color: #FFF;
    position: relative;
    overflow: visible;
    white-space: unset;
    text-overflow:unset;
	line-height: 1.2;
}

.cp-main .section-title::before{
    content:"";
    position: absolute;
    bottom: -11px;
    left: 50%;
    transform: translateX(-50%);
    width: 24px;
    height: 12px;
    background: var(--col-d-green);
    clip-path: polygon(100% 0, 0 0, 50% 100%);
}

.cp-main .section-title .text-f-12{
    font-weight: normal;
    display: block;
}

@media only screen and (min-width: 789px) {
    .cp-main .section-title{
        font-size: 24px;
        line-height: 1;
        padding: 12px;
    }

    .cp-main .section-title .text-f-12{
        display: inline;
    }
}

/*---------------------------
 CP
-----------------------------*/
.cp-main .cp-block__main-text{
    font-weight: 700;
    line-height: 1.5;
}

.cp-main .cp-block__sub-text{
    margin-top: .5em;
}

.cp-main .a-inner{
    text-align: center;
	line-height: 1.2;
}

.cp-main .btn-continue{
    background: var(--col-pink);
    font-size: 18px;
    font-weight: 500;
    margin: 16px auto;
    height: 65px;

}

@media only screen and (min-width: 789px) {
    .cp-main .cp-block__main-text{
        font-size: 18px;
    }
    .cp-main .cp-block__main-text,
    .cp-main .cp-block__sub-text{
        text-align: center;
    }

    .cp-main .btn-continue{
        font-size: 20px;
    }

	.cp-main a.btn-continue:hover{
        background: #ff893c;
    }
}

/* ご注意 */
.cp-main .cp-note{
    margin: 16px auto;
}

.cp-main .cp-note,
.cp-main .cp-note__title,
.cp-main .cp-note__list{
    font-size: 12px;
    line-height: 1.5;
}

/* アコーディオン */
.cp-main .accordion-block{
    margin: 16px auto 32px auto;
    border: 1px solid #C0C0C0;
    border-radius: 8px;
}

.cp-main .accordion-block__title{
    opacity: 1;
	transition: var(--hover-transition);
    padding: .8em;
    font-size: clamp(16px , 3.2vw , 18px);
    font-weight: 700;
    text-align: center;
    position: relative;
}


.cp-main .accordion-block__title:hover{
	cursor: pointer;
}

.cp-main .accordion-block__icon {
	position: absolute;
	right: 5px;
	top: 50%;
	transform: translatey(-50%);
	width: 25px;
	height: 25px;
  }

.cp-main .accordion-block__icon__parts {
	position: relative;
	display: inline-block;
	width: 100%;
	height: 100%;
  }


/* ボタン　＞ */
.cp-main .accordion-block__icon__parts:before{
	position: absolute;
    content: " ";
    transition: var(--hover-transition);
    display: block;
	width: 13px;
	height: 13px;
	border-top: 3px solid #000;
	border-right: 3px solid #000;
	top: 45%;
    right: 10px;
	transform: translateY(-50%) rotate(135deg);
	-webkit-transform: translateY(-50%) rotate(135deg);
	-ms-transform: translateY(-50%) rotate(135deg);
}

.cp-main .is-open .accordion-block__icon__parts:before{
    transform: translateY(-50%) rotate(-45deg);
	-webkit-transform: translateY(-50%) rotate(-45deg);
	-ms-transform: translateY(-50%) rotate(-45deg);
    top: 50%;
}


@media only screen and (min-width: 769px) {
	/* PC */
	.cp-main .accordion-block__icon__parts:before{
		right: 20px;
		width: 13px;
		height: 13px;
	}
}


.cp-main .accordion-block__main{
	padding: 0 var(--padding-min) var(--padding-min) var(--padding-min);
	text-align: left;
	font-size: 14px;
	display: none;
	line-height: 1.5;
}

@media (min-width: 769px) {
.cp-main .accordion-block__icon {
	position: absolute;
	right: 5px;
	top: 50%;
	transform: translatey(-50%);
	width: 50px;
	height: 50px;
  }

}

.cp-main .accordion-block__dt{
    background: var(--col-light-gray);
    padding: .3em;
    margin-bottom: 8px;
	font-weight: 700;
	line-height: 1.5;
}


.cp-main .accordion-block__dd{
    margin-bottom: 16px;
}

.cp-main .accordion-block__dd:last-child{
    margin-bottom: 0;
}

/* 解約について */
.cp-main .resign-note{
    border: 2px solid var(--col-light-green);
    margin-left: auto;
    margin-right: auto;
}

.cp-main .resign-note__title{
    background: var(--col-light-green);
    padding: .5em;
    font-size: 20px;
    text-align: center;
}

.cp-main .regign-note-inner{
    padding: var(--padding-min);
}

.cp-main .resign-note__note-box{
    border-bottom: 1px dashed #CCC2C2;
    text-align: center;
    padding: 0 0 0.5em 0;
    margin-bottom: 1em;
}
.cp-main .resign-note__note{
    font-size: 18px;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    line-height: 1.5;
}

.cp-main .resign-note__note::before{
    content:"";
    display: inline-block;
    margin-right: 8px;
    width: 20px;
    height: 20px;
    background: url(../img/icon_attention.png) no-repeat left top;
    background-size: contain;
}

.cp-main .resign-note__list__item{
    position: relative;
    padding-left: 25px;
    line-height: 1.5;
    margin-bottom: 8px;
}

.cp-main .resign-note__list__item:last-child{
    margin-bottom: 0;
}

.cp-main .resign-note__list__item01::before,
.cp-main .resign-note__list__item02::before{
    content: "";
    position: absolute;
    top: 2px;
    left: 0px;
    display: inline-block;
    width: 21px;
    height: 21px;
    background: url(../img/icon_atten01.png) no-repeat left top;
    background-size: contain;
}

.cp-main .resign-note__list__item02::before{
    background: url(../img/icon_atten02.png) no-repeat left top;
    background-size: contain;
}

/*---------------------------
 apri
-----------------------------*/
.cp-main .apri-block-inner{
    background: url(../img/st.png) var(--col-light-green);
    background-size: 10px;
    padding: min(6% ,24px) 8px min(8%, 48px) 8px;
}

.cp-main .apri-block__img{
    width: min(100% , 616px);
    display: block;
    margin: auto;
}

/*改行*/
.sp_only {
    display: none !important;
}

@media all and (max-width: 768px) {
    .sp_only {
        display: initial !important;
    }

    .pc_only {
        display: none !important;
    }
}

@media only screen and (min-width: 789px) {
    .cp-main .apri-block-inner{
        padding: min(8%, 48px) 0 ;
    }
}

/*---------------------------
 10th
-----------------------------*/

.cp-main .anniv-block-inner{
    background-size: 10px;
    padding: min(6% ,24px) 8px min(8%, 48px) 8px;
}

.cp-main .anniv-block__img{
    width: min(70% , 616px);
    display: block;
    margin: auto;
}

@media only screen and (min-width: 789px) {
    .cp-main .anniv-block-inner{
        padding: min(8%, 48px) 0 ;
    }
}


/*---------------------------
 雑誌
-----------------------------*/
.cp-main .shelf-v01{
    background: var(--col-light-green);
    padding: min(6% ,48px);
}

.cp-main .shelf-v02{
    padding: min(6% ,48px);
}

.cp-main .shelf-v01__title{
    text-align: center;
    margin-bottom: 1em;
}


.cp-main .cp-shelf{
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
}

.cp-main .cp-shelf__item{
	width: calc((100% - (16px * 3) ) / 4);
	margin-right: 16px;
	margin-bottom: 16px;
}

.cp-main .cp-shelf__item:nth-child(4n){
	margin-right: 0px;
}

.cp-main .cp-shelf__img-box{
	display: block;
	padding-top: min(135%, 250px);
	position: relative;
	margin-bottom: 0.5em;
}

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

.cp-main .cp-shelf__img-box__img{
	height: 0;
	display: block;
	margin: 0 auto;
	max-height: 100%;
	max-width: 100%;
	width: auto;
	height: auto;
	-o-object-fit: contain;
	object-fit: contain;
	object-position: 0 50%;
	border-radius: 0;
	-webkit-box-shadow: 0 4px 6px rgba(0, 0, 0, 0.12);
	box-shadow: 0 4px 6px rgba(0, 0, 0, 0.12);
}

/* btns */
.cp-main .cp-shelf .cp-shelf__btns__item{
	width: 100%;
}

@media (min-width: 960px) {
	.cp-main .cp-shelf__item{
		width: calc((100% - (24px * 7) ) / 8);
		margin-right: 24px;
		margin-bottom: 48px;
	}

	/* SPのmarginを上書き */
	.cp-main .cp-shelf__item:nth-child(4n){
		margin-right: 24px;
	}

	/* 5個目と最後のmargon-right０に */
	.cp-main .cp-shelf__item:nth-of-type(8n),
	.cp-main .cp-shelf__item:last-child{
		margin-right: 0px;
	}

	.cp-main .cp-shelf__img-box-link:hover{
		opacity: 0.7;
	}

}

/*-------------------------------------------
 ボタン
-------------------------------------------*/
.cp-main .btton-block{
    text-align: center;
    border-top: 4px solid var(--col-light-gray);
}

.cp-main .btton-block-inner {
    margin: auto;
}

.cp-main a.text-link{
    text-decoration: none;
    color: #000;
    font-weight: 700;
    position: relative;
    display: inline-block;
    margin: auto;
    line-height: 1.3;
    margin-bottom: 1.3em;
    transform: translateX(-8px);
	opacity:1;
	
}

.cp-main a.text-link::before{
    content: "";
    position: absolute;
    bottom: 0px;
    right: -22px;
    display: block;
    width: 20px;
    height: 20px;
    -webkit-border-radius: 50%;
    border-radius: 50%;
    background: var(--col-pink);
	transition: var(--hover-transition);
}
.cp-main a.text-link::after{
    content: "";
    display: block;
    /* left: 3px; */
    width: 8px;
    height: 8px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    position: absolute;
    bottom: 5px;
    right: -16px;
}

.cp-main a.btn-resign{
    background: var(--col-light-green);
    border: 1px solid var(--col-d-green);
    color: var(--col-d-green);
}

.cp-main a.btn-resign.arrow::before{
    border-color: var(--col-d-green);
}

.cp-main a.btn-resign:hover{
	color:  var(--col-d-green);
}


@media (min-width: 769px) {
	.cp-main a.btn-resign:hover{
		background: #18b87d;
		color: #FFF;
		border: 1px solid #18b87d;
	}

	.cp-main .text-link:hover{
		background: #f6f087;
	}

	.cp-main a.text-link:hover::before{
		background: #ffd500;
	}
}

/*-------------------------------------------
　棚調整
-------------------------------------------*/
.o-shelf__header {position: static;}

a.a-more--text{
	text-decoration: none;
	transition: 0.3s
}
a.a-more--text:hover{
	text-decoration:none ;
}
a.carousel__item-title:hover{
	opacity: 1;
	color:#333333;
}

.carousel__item-img img{
        transition: opacity 0.3s;
        opacity: 1;
	}

.carousel__item-img img:hover{
        opacity: 0.7;
	}
.o-shelf .o-shelf__header{
	position: static;
}

a.carousel__item-title{
	text-decoration:none;
}

/*-------------------------------------------
 app-margin
-------------------------------------------*/

.app-margin {
	margin-top: -56px;
	}
  @media (min-width: 769px) {
	.app-margin {
	margin-top: -81px;
	}
  }
