:root {
	/* カラーパレット */
	--WHITE: #FFFFFF;
	--WHITE_OP50: rgba(255, 255, 255, 0.5);
	--WHITE_OP30: rgba(255, 255, 255, 0.3);
	--BLACK: #000000;

	--GRAY01: #F0F0F0;
	--GRAY01_OP60: rgba(240, 240, 240, 0.6);
	--GRAY02: #CBCBCB;
	--GRAY02_OP80: rgba(203, 203, 203, 0.8);
	--GRAY03: #868686;
	--GRAY04: #B1B5BF;
	--GRAY05: #AAAAAA;
	--GRAY06: #707070;
	--GRAY07: #FCFCFC;
	--GRAY08: #717171;
	--GRAY09: #A7A7A7;

	--DARK01: #1F1E1E;
	--DARK02: #3E3E3E;
	--DARK03: #222222;

	--BLUE01: #12445B;
	--BLUE01_OP90: rgba(18, 68, 91, 0.9);
	--BLUE01_OP80: rgba(18, 68, 91, 0.8);
	--BLUE01_OP70: rgba(18, 68, 91, 0.7);
	--BLUE01_OP10: rgba(18, 68, 91, 0.1);

	--BLUE02: #E7ECEF;
	
	--GOLD01: #A8A17C;
	--GOLD01_OP20: rgba(168, 161, 124, 0.2);

	--YELLOW01: #FFEB00;

	--PINK01: #F8CFDF;

	--GREEN01: #DBEF9E;
	--GREEN02: #295731;

	--ORANGE01: #F7CBAB;

	--RED01: #A20000;
	--RED02: #A87C7C;
	--RED03: #A00000;

	--BROWN01: #A3762C;

	--PURPLE01: #664271;

	/* テーマカラー */
	--THEME_COLOR_1: var(--BLUE01);

	/* テキストカラー */
	--TXT_COLOR_BASE: var(--DARK01);
	--TXT_COLOR_WHITE: var(--WHITE);
	--TXT_COLOR_GRAY: var(--GRAY03);
	--TXT_COLOR_GOLD: var(--GOLD01);
	--TXT_COLOR_RED: var(--RED01);
	--TXT_BGCOLOR_BROWN_1: var(--BROWN01);
	--TXT_BGCOLOR_YELLOW_1: var(--YELLOW01);
	--TXT_BGCOLOR_GREEN_1: var(--GREEN01);

	/* ボーダーカラー */
	--BDCOLOR_BLUE_1: var(--BLUE01);
	--BDCOLOR_GRAY_1: var(--GRAY02);
	--BDCOLOR_GRAY_2: var(--GRAY05);
	--BDCOLOR_GRAY_3: var(--GRAY06);
	--BDCOLOR_WHITE_1: var(--WHITE_OP30);

	/* 背景カラー */
	--BGCOLOR_GRAY_1: var(--GRAY01);
	--BGCOLOR_GRAY_2: var(--GRAY01_OP60);
	--BGCOLOR_GOLD_1: var(--GOLD01_OP20);
	--BGCOLOR_BLUE_1: var(--BLUE01_OP10);

	/* マスクカラー */
	--MASK_GRAY_1: var(--GRAY02_OP80);

	/* ランキングカラー */
	--RANKING_1ST: var(--GOLD01);
	--RANKING_2ND: var(--GRAY04);
	--RANKING_3RD: var(--RED02);
	--RANKING_OTHER: var(--THEME_COLOR_1);

	/* 共通角丸 */
	--COMMON_BDRS_S: 5px;
	--COMMON_BDRS_M: 10px;
	--COMMON_BDRS_L: 20px;

	/* 共通ボックス影 */
	--COMMON_BXSD: 0px 0px 15px -5px var(--GRAY02);
	--COMMON_BXSD_BTM: 0px 5px 15px -5px var(--GRAY02);

	/* ベースフォント */
	--FF_BASE: 'Open Sans', "游ゴシック", YuGothic, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
	/* 英数字フォント */
	--FF_EN: "Crimson Text", serif;
	--FF_NUM: var(--FF_BASE);
	--FF_SERIF: "Noto Serif JP", serif;
	--FF_LATO: "Lato", sans-serif;

	/* フォントウェイト */
	--FF_WEIGHT_BASE: var(--FF_W_R);
	--FF_W_R: 400;
	--FF_W_M: 500;
	--FF_W_B: 700;
	
	/* アニメーション */
	--ANIME_FADEIN: fadeIn .5s ease-in-out 0s forwards;
	--ANIME_FADEOUT: fadeOut .5s ease-in-out 0s forwards;

	/* フォトサイズ */
	--FZ_10: clamp(9px, 1vw, 10px);
	--FZ_11: clamp(10px, 1.1vw, 11px);
	--FZ_12: clamp(10px, 1.1vw, 12px);
	--FZ_13: clamp(11px, 1vw, 13px);
	--FZ_14: clamp(12px, 1.2vw, 14px);
	--FZ_15: clamp(13px, 1.4vw, 15px);
	--FZ_16: clamp(14px, 1.5vw, 16px);
	--FZ_18: clamp(15px, 1.6vw, 18px);
	--FZ_20: clamp(16px, 1.8vw, 20px);
	--FZ_22: clamp(18px, 2vw, 22px);
	--FZ_24: clamp(20px, 2vw, 24px);
	--FZ_25: clamp(20px, 2vw, 25px);
	--FZ_27: clamp(22px, 2.5vw, 27px);
	--FZ_28: clamp(22px, 2.5vw, 28px);
	--FZ_30: clamp(25px, 3vw, 30px);
	--FZ_35: clamp(25px, 3vw, 35px);
	--FZ_36: clamp(25px, 3vw, 36px);
	--FZ_38: clamp(30px, 3.5vw, 38px);
	--FZ_40: clamp(30px, 3.5vw, 40px);
	--FZ_43: clamp(30px, 4vw, 43px);
	--FZ_50: clamp(30px, 4vw, 50px);
	--FZ_60: clamp(40px, 5vw, 60px);
	--FZ_70: clamp(50px, 6vw, 70px);
	--FZ_10_CONST: 10px;
	--FZ_11_CONST: 11px;
	--FZ_12_CONST: 12px;
	--FZ_13_CONST: 13px;
	--FZ_14_CONST: 14px;
	--FZ_15_CONST: 15px;
	--FZ_16_CONST: 16px;
	--FZ_18_CONST: 18px;
	--FZ_20_CONST: 20px;
	--FZ_22_CONST: 22px;
	--FZ_26_CONST: 26px;
	--FZ_28_CONST: 28px;
	--FZ_30_CONST: 30px;

	/* 行間 */
	--LINE_HEIGHT_S: 1.5;
	--LINE_HEIGHT_M: 1.7;
	--LINE_HEIGHT_L: 2;

	/* ブロック間 */
	--GAP_10: clamp( 5px, 1.1vw, 10px);
	--GAP_15: clamp( 10px, 1.2vw, 15px);
	--GAP_20: clamp( 15px, 1.7vw, 20px);
	--GAP_25: clamp( 15px, 1.7vw, 25px);
	--GAP_35: clamp( 20px, 2.5vw, 35px);
	--GAP_30: clamp( 20px, 2.5vw, 30px);
	--GAP_40: clamp( 30px, 3.5vw, 40px);
	--GAP_50: clamp( 30px, 3.5vw, 50px);
	--GAP_60: clamp( 40px, 4.5vw, 60px);
	--GAP_65: clamp( 50px, 5.5vw, 65px);
	--GAP_75: clamp( 60px, 6.5vw, 75px);
	--GAP_80: clamp( 50px, 5.5vw, 80px);
	--GAP_5_CONST: 5px;
	--GAP_10_CONST: 10px;
	--GAP_15_CONST: 15px;
	--GAP_20_CONST: 20px;
	--GAP_30_CONST: 30px;
	--GAP_40_CONST: 40px;

	/* マージン */
	--MG_5: 5px;
	--MG_10: 10px;
	--MG_15: 15px;
	--MG_20: 20px;
	--MG_30: 30px;
	--MG_40: 40px;
	--MG_50: 50px;
	--MG_60: 60px;
	--MG_80: 80px;

	/* PCマックス幅 */
	--PC_MAX_WIDTH: var(--PC_MAX_WIDTH_M);
	--PC_MAX_WIDTH_SSS: 610px;
	--PC_MAX_WIDTH_SS: 800px;
	--PC_MAX_WIDTH_S: 1000px;
	--PC_MAX_WIDTH_M: 1200px;
	--PC_MAX_WIDTH_L: 1440px;

	/* セクション間隔半分 */
	--GENERALSEC_HALF: calc(var(--GENERALSEC) / 2);

	--WISH_COLOR: #d42929;
	--FS_BTN_COLOR_1: var(--THEME_COLOR_1);
	--FS_BTN_COLOR_2: var(--BGCOLOR_BLUE_1);
	--REVIEW_COLOR: #edc622;
}

.modalNewBodyClass{
	position: fixed;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 85%;
	max-width: 500px;
	display: block;
	background-color: #fff;
	border:1px solid #ccc;

	/* コンタクト用のz-indexは9998 */
	z-index: 10002;
	margin: 5px;
	padding: 30px;
	font-size: 1.1rem;
	display: none;
	overflow-x: hidden;
}
@media screen and (max-width: 767px){
	.modalNewBodyClass{
		padding: 20px;
	}
}
.modal_close_linkContainer{
	position: absolute;
	top: 0;
	right: 0;
}
.modal_close_linkContainer a{
	cursor: pointer;
	display: block;
	width: 48px;
	aspect-ratio: 1 / 1;
	background: url(../images/close.png) no-repeat center center / 30%;
}
.c-cart-in-modal__title{
	font-weight: bold;
	font-size: 1.5rem;
}
.c-cart-in-modal__main{
	max-height: 500px;
	overflow-y: scroll;
}
#js-cart-in-list{
	max-height: 200px;
	overflow-y: scroll;
}
li.c-cart-in-modal__item{
	border-bottom: 1px solid #ccc;
	padding: 10px 0;
}
.c-cart-in-modal__subtotal{
	font-size: var(--FZ_18);
	text-align: right;
	font-weight: bold;
	padding: 20px 0 10px;
}
.c-cart-in-modal__btn-wrapper{
	display: grid;
	gap: var(--GAP_20);
}
.c-cart-in-modal__btn-wrapper:has(.c-cart-in-modal__btn--continue[style="display: none;"]){
	display: flex;
	justify-content: center;
}
.c-cart-in-modal__btn{
	border: 1px solid var(--fs-btn-bg-c-primary);
	width: 100%;
	max-width: 209px;
	color: var(--WHITE);
	display: block;
	text-align: center;
	cursor: pointer;
	font-size: 15px;
	letter-spacing: 3px;
	position: relative;
	-webkit-transition: all 0.5s ease;
	-moz-transition: all 0.5s ease;
	-o-transition: all 0.5s ease;
	transition: all 0.5s;
}
.c-cart-in-modal__btn--continue{
	background-color: var(--WHITE);
	color: var(--fs-btn-bg-c-primary);
}
.c-cart-in-modal__btn--goCart{
	background: var(--fs-btn-bg-c-primary);
	color: var(--WHITE) !important;
}
.c-cart-in-modal__header{
	margin-bottom: var(--GAP_10);
}
.c-cart-in-modal__title{
	text-align: center;
	font-size: var(--FZ_18);
	color: var(--txt-c-base);
	padding-bottom: 8px;
	border-bottom: 1px solid var(--FS_BTN_COLOR_1);
}
.c-cart-in-modal__item .fs-c-cartTable__product{
	display: grid;
	gap: 15px;
}
.c-cart-in-modal__item .fs-c-productImage{
	aspect-ratio: 1 / 1;
	object-fit: cover;
	padding-right: 0;
}
.c_cart_modal__title{
	font-size: var(--FZ_16);
	margin: var(--GAP_30) 0 var(--GAP_10);
	font-weight: 600;
}
.c-cart-in-modal .fs-c-productPrice__main span.fs-c-price__currencyMark{
	font-size: 13px;
}
.c-cart-in-modal .fs-c-price__value{
	font-size: 16px;
}
.c-cart-in-modal .fs-c-productPrice__addon{
	font-size: 11px;
	margin-left: 5px;
}
.c-cart-in-modal-bg{
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;

	/* コンタクト用のz-indexは9998 */
	z-index: 10001;
	background: rgba(0,0,0,50%);
}
body.is-cart-modal-open{
	overflow-y: hidden;
}

@media screen and (min-width: 768px){
	.c-cart-in-modal__btn-wrapper{
		grid-template-columns: repeat(2, 1fr);
	}
	.c-cart-in-modal__btn{
		padding: 16px 0px 15px;
	}
	.c-cart-in-modal .fr3-productListStatic__responsive_1{
		grid-template-columns: repeat(3,1fr);
	}
	.c-cart-in-modal .fr3-productListStatic__responsive_1 .fr3-item:nth-of-type(n+4){
		display: none;
	}
	.c-cart-in-modal__item .fs-c-cartTable__product{
		grid-template-columns: 130px 1fr;
	}
}
@media screen and (max-width: 767px){
	.c-cart-in-modal .fr3-productListStatic__responsive_1{
		grid-template-columns: repeat(2,1fr);
	}
	.c-cart-in-modal__btn{
		padding: 13px 0px 12px;
	}
	.c-cart-in-modal__item .fs-c-cartTable__product{
		grid-template-columns: 80px 1fr;
	}
	.c-cart-in-modal .fs-c-cartTable__productName__name,
	.c-cart-in-modal .fs-c-listedProductName__name,
	.c-cart-in-modal .fr3-item__productName{
		line-height: 1.6;
	}
}


.recommend_item_area .g-productList{
	width: 100%;
	--grid-cols-pc: 3;
	--grid-cols-sp: 4;
}
@media screen and (min-width: 768px){
	.recommend_item_area .g-productList__item:nth-of-type(n+4){
		display: none;
	}
}