﻿@charset "UTF-8";

/* 変数 */
:root {
	--glow-color: #faff88;
}

@media (min-width: 768px) {
	body.boxed .page-wrapper .main-content-wrapper .container {
		width: 750px;
	}
}
@media (min-width: 992px) {
	body.boxed .page-wrapper .main-content-wrapper .container {
		width: 970px;
	}
}
@media (min-width: 1200px) {
	body.boxed .page-wrapper .main-content-wrapper .container {
		width: 1170px;
	}
}
.main-content-wrapper {
	/* background-image: linear-gradient(150deg, rgba(50, 40, 50, 1), rgba(15, 0, 15, 1)); */
	background-color: #222;
	color: #eee;

}
.w-100 {
	width: 100%;
}
.h-auto {
	height: auto;
}

.m-plus-2-font {
	font-family: "M PLUS 2", sans-serif;
	font-optical-sizing: auto;
	font-style: normal;
}

/* スマホの時だけ改行させるクラス */
.br-sp {
    display: none;
}
@media (max-width:767px) {
    .br-sp {
        display: block;
    }
}

.modimage {
	width: 500px;
	height: auto;
	border: 1px solid #ffffff;
}
@media screen and (max-width:767px) {
	.modimage {
		width: 100%;
	}
}

/* 共通見出しタグ */
h1.text-center.size-lg {
	font-weight: bold;
	font-size: 30px;
	color: #ffe;
	text-shadow: 0px 0px 15px var(--glow-color);
}
.main-content-wrapper h2 {
	background: linear-gradient(45deg, #EFCE24 0%, #EBE8B4 45%, #BD9A28 70%, #EDE08F 85%, #FFFCD2 90% 100%);
	padding-top: 0;
	padding-left: 0;
	color: #333;
	text-shadow: 0px 0px 15px var(--glow-color);
	font-size: 30px;
	font-weight: 400;
	border-bottom: none;
	line-height: 1.5;
}
.main-content-wrapper h2 span {
	font-size: 36px;
	font-weight: 800;
	line-height: 1.5;
}

.main-content-wrapper h3 {
	font-size: 17px;
	line-height: 25px;
	color: #FFF;
}

.main-content-wrapper h4 {
	position: relative;
	padding: 1.5rem 2rem;
	color: #ffe;
    text-shadow: 0px 0px 15px var(--glow-color);
	text-align: center;
	font-size: 24px;
	margin: 0 0 15px 0;
}

.main-content-wrapper h4:after {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 10px;
	content: '';
	background-image: -webkit-repeating-linear-gradient(135deg, #999, #999 1px, transparent 2px, transparent 5px);
	background-image: repeating-linear-gradient(-45deg, #999, #999 1px, transparent 2px, transparent 5px);
	background-size: 7px 7px;
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
}

@media screen and (max-width:767px) {
	h1.text-center.size-lg {
		font-size: 24px;
		padding-left: 5px;
		padding-right: 5px;
	}
	.main-content-wrapper h2 {
		font-size: 21px;
	}
	.main-content-wrapper h3 {
		font-size: 17px;
		line-height: 25px;
		color: #FFF;
	}
}
.main-content-wrapper .main-copy {
	font-size: 15px;
	line-height: 28px;
	margin-bottom: 15px;
	padding-left: 2px;
	word-break: break-all;
}

/* ホワイトスペースなど共通パーツ */
.large-section {
	padding-bottom: 60px;
}
.small-section {
	margin-bottom: 50px;
}
.btn_red{
	height: 41px;
    line-height: 41px;
    font-weight: 500;
    border-radius: 5px;
    box-shadow: 1px 1px 5px rgba(0,0,0,.1);
    -webkit-transition: all .3s cubic-bezier(.3,1,.3,1);
    transition: all .3s cubic-bezier(.3,1,.3,1);
	background-color: #E9450A;
	color: #FFF;
	border: none;
	padding: 15px 10px;
}
.btn_red:hover {
	background: white;
	border: none;
	box-shadow: 0px 0px 15px var(--glow-color);
	color: #E9450A;
	text-decoration: none;
}
.external-link {
	color: inherit;
	text-decoration: underline dotted;
	transition: .3s;
}
.external-link:hover {
	color: #f82e56;
	text-decoration: underline solid;
}

/* 看板画像部分 */
.main-content-wrapper>.block.fullwidth {
	padding: 0;
}
.main-content-wrapper .fullwidth .cover-image {
	padding: 0;
}
.cover-image {
	margin-bottom: 40px;
}

/* 目次部分 */
.TableOfContents {
	border: 1px solid #bbb;
	color: #333745;
	padding: 15px 50px;
	display: inline-block;
	max-width: 100%;
}
@media screen and (max-width: 767px) {
	.TableOfContents {
		padding: 15px 20px;
	}
}
.TableOfContents div a {
	color: #ddd;
}
.TableOfContents>div:first-child {
	border-bottom: 3px solid #ddd;
	font-weight: bold;
	font-size: 24px;
}
.TableOfContents div:not(:first-child) {
	margin-top: 4px;
	text-align: left;
	font-size: 16px;
}
.TableOfContents div:nth-child(2) {
	margin-top: 15px;
}
@media screen and (max-width: 767px) {
	.TableOfContents>div:first-child {
		font-size: 22px;
		margin-bottom: 15px;
	}
}

/* 商品紹介部分 */
.container-flex.pc4-sp1 .flex-item {
	-ms-flex-basis: calc(25% - 20px);
	-webkit-flex-basis: calc(25% - 20px);
	flex-basis: calc(25% - 20px);
	margin-left: 10px;
	margin-right: 10px;
	margin-bottom: 35px;
}
@media screen and (max-width: 767px) {
	.container-flex.pc4-sp1 .flex-item {
		-ms-flex-basis: calc(100% - 10px);
		-webkit-flex-basis: calc(100% - 10px);
		flex-basis: calc(100% - 10px);
		margin-left: 5px;
		margin-right: 5px;
		margin-bottom: 40px;
	}
}
.container-flex.pc4-sp2 .flex-item {
	-ms-flex-basis: calc(25% - 20px);
	-webkit-flex-basis: calc(25% - 20px);
	flex-basis: calc(25% - 20px);
	margin-left: 10px;
	margin-right: 10px;
	margin-bottom: 35px;

}
@media screen and (max-width: 767px) {
	.container-flex.pc4-sp2 .flex-item {
		-ms-flex-basis: calc(50% - 10px);
		-webkit-flex-basis: calc(50% - 10px);
		flex-basis: calc(50% - 10px);
		margin-left: 5px;
		margin-right: 5px;
		margin-bottom: 40px;
	}
}
.flex-item .item-inner {
	background: #efefef;
	border-radius: 25px;
	padding: 10px 10px 15px;
	border: 1px solid #fff;
	box-shadow: 2px 2px 5px var(--glow-color), -2px -2px 8px var(--glow-color);
	overflow: hidden;
	margin-bottom: 10px;
}

.flex-item .image-wrapper {
	display: block;
	aspect-ratio: 1 / 1;
	border: 0.5px solid #eee;
	border-radius: 15px 15px 0 0;
	overflow: hidden;
}
.flex-item .image-wrapper img {
	width: 100%;
	height: auto;
	transition: .20s;
}
.flex-item .image-wrapper:hover img {
	opacity: .85;
	transform: scale(1.06, 1.06);
}
.flex-item .product-brand {
	font-size: 11px;
	margin: 9px 0 3px;
	color: #777;
}
.flex-item .product-name {
	font-weight: bold;
	font-size: 16px;
	margin-bottom: 4px;
	line-height: 21px;
}
.flex-item .product-name a {
	color: #333;
	word-break: break-all;
}
.flex-item .product-price {
	color: #ff3300;
	font-weight: bold;
	font-size: 21px;
	margin-bottom: 4px;
	/* height: 22.85px; */
}
.flex-item .product-price-default {
	color: #888;
	font-size: 13px;
	margin-bottom: 1px;
	/* text-decoration: line-through; */
}
.flex-item .product-copy {
	font-size: 13px;
	word-break: break-all;
	margin: 0;
	color: #333;
}
.flex-item .btn {
	white-space: break-spaces;
	padding: 10px;
	line-height: 1.4;
	height: auto;
	
}
/* 体験記部分 */
.fixed-width-700 {
	width: 700px;
	height: auto;
	margin: 0 auto;
}
@media screen and (max-width: 767px) {
	.fixed-width-700 {
		width: 100%;
	}
}

.container-flex.pc250-sp2 .flex-item {
	-ms-flex-basis: calc(250px - 20px);
	-webkit-flex-basis: calc(250px - 20px);
	flex-basis: calc(250px - 20px);
	margin-left: 10px;
	margin-right: 10px;
	margin-bottom: 20px;
	border-radius: 4px;
	overflow: hidden;
}
@media screen and (max-width: 480px) {
	.container-flex.pc250-sp2 .flex-item {
		-ms-flex-basis: calc(50% - 10px);
		-webkit-flex-basis: calc(50% - 10px);
		flex-basis: calc(50% - 10px);
		margin-left: 5px;
		margin-right: 5px;
		margin-bottom: 10px;
	}
	.image-container .item-caption {
		font-size: 80%;
	}
}
.pc250-sp2 img {
	width: 100%;
	height: auto;
}
.container-flex.pc250-sp2 a:hover img, a:hover img {
	opacity: 0.8;
}

/*商品リストをPCはそのまま、SPはスライダーで表示*/
	/* ================================================= */
	/* SPレイアウト (モバイルファースト: 横スライド) */
	/* ================================================= */
	@media (max-width: 767px) {
		.product_flex_box {
			display: flex;
			flex-wrap: nowrap;
			overflow-x: auto;
			width: 100%;
			height: auto;
			gap: 20px;
			/* スクロールバー全体の高さを設定（横スクロールバーの太さ） */
			&::-webkit-scrollbar {
				height: 10px; 
			}
			&::-webkit-scrollbar-thumb {
				background: #999999;
				border-radius: 5px;
			}
		}

		.product_flex, .product_flex_new {
			margin-bottom: 20px;
			width: 200px;
			position: relative;
			display: flex;
			align-items: stretch;
			background-color: #FFFFFF;
			border-radius: 8px 8px;
		}

		/* リンクのスタイル */
		.product_flex a, .product_flex_new a {
			display: block;
			text-decoration: none;
			color: #333;
			width: 200px;
			padding: 5px;
		}
		.product_flex a:hover, .product_flex_new a:hover {
			opacity: 0.8;
		}

		/* 画像のスタイル */
		.product_flex img, .product_flex_new img {
			width: 100%;
			height: auto;
			display: block;
			border-radius: 8px 8px 0 0;
			object-fit: cover;
		}

		/* テキストのスタイル */
		.product_flex div, .product_flex_new div {
			text-align: center;
			background-color: #FFFFFF;
			border-radius: 0 0 8px 8px;
			/* width: 200px; */
		}
		.product_flex div p:first-child, .product_flex_new div p:first-child {
			font-size: 12px;
			color: #333;
			padding: 5px 0 0 0;
			margin: 0;
		}
		.product_flex div p:last-child, .product_flex_new div p:last-child {
			font-size: 14px;
			font-weight: bold;
			color: #333;
			padding: 0 0 5px 0;
			margin: 0;
		}

		p.midashi_txt{
			font-size: 1.2em;
			text-align: left;
			margin: 20px 0 30px 0;
			line-height: 1.4;
		}
		p.midashi_txt1{
			font-size: 1.2em;
			text-align: left;
			margin: 0 0 30px 0;
			line-height: 1.4;
		}
	}

	/* ================================================= */
	/* PCレイアウト (min-width: 768px: 複数行の横並び5個) */
	/* ================================================= */
	@media (min-width: 768px) {
		.product_flex_box {
			/* FlexからGridに変更 */
			display: grid;
			/* 1行に5列を設定 (均等幅) */
			grid-template-columns: repeat(5, 1fr);
			/* 横スクロールを無効化 */
			overflow-x: hidden;
			/* 全体のパディングを調整 */
			padding: 20px;
			/* グリッド間のスペース */
			gap: 24px;
		}

		.product_flex, .product_flex_new {
			/* グリッドアイテムとして幅を自動調整させる */
			width: auto;
			max-width: none;
			position: relative;
		}
		/* リンクのスタイル */
		.product_flex a, .product_flex_new a {
			/* display: block; */
			 display: flex;
			flex-direction: column;
			justify-content: space-between; /* 無くても可 */
			align-items: stretch; /* 無くても可 */
			height: 100%; /* 親要素の高さに合わせる */
			text-decoration: none;
			color: #333;
			background-color: #FFFFFF;
			border-radius: 8px 8px;
			padding: 5px;
		}
		.product_flex a:hover, .product_flex_new a:hover {
			transform: scale(1.03);
		}

		/* 画像のスタイル */
		.product_flex img, .product_flex_new img {
			/* width: 100%; */
			height: auto;
			display: block;
			border-radius: 8px 8px 0 0;
			object-fit: cover;
		}

		/* テキストのスタイル */
		.product_flex div, .product_flex_new div {
			text-align: center;
			background-color: #FFFFFF;
			border-radius: 0 0 8px 8px;
			/* width: 100%; */
		}
		.product_flex div p:first-child, .product_flex_new div p:first-child {
			font-size: 12px;
			color: #333;
			padding: 5px 0 0 0;
			margin: 0;
		}
		.product_flex div p:last-child, .product_flex_new div p:last-child {
			font-size: 14px;
			font-weight: bold;
			color: #333;
			padding: 0 0 5px 0;
			margin: 0;
		}
		p.midashi_txt{
			font-size: 1.3em;
			text-align: center;
			margin-top: 20px;
		}
		p.midashi_txt1{
			font-size: 1.3em;
			text-align: center;
			margin-bottom: 20px;
		}
	}

.product_flex1, .product_flex1_new {
	/* グリッドアイテムとして幅を自動調整させる */
	width: auto;
	max-width: none;
	position: relative;
}
/* リンクのスタイル */
.product_flex1 a, .product_flex1_new a {
	/* display: block; */
		display: flex;
	flex-direction: column;
	justify-content: space-between; /* 無くても可 */
	align-items: stretch; /* 無くても可 */
	height: 100%; /* 親要素の高さに合わせる */
	text-decoration: none;
	color: #333;
	background-color: #FFFFFF;
	border-radius: 8px 8px;
	padding: 5px;
}

.product_flex1 a:hover, .product_flex1_new a:hover {
		transform: scale(1.03);
	}

/* 画像のスタイル */
.product_flex1 img, .product_flex1_new img {
	/* width: 100%; */
	height: auto;
	display: block;
	border-radius: 8px 8px 0 0;
	object-fit: cover;
}

/* テキストのスタイル */
.product_flex1 div, .product_flex1_new div {
	text-align: center;
	background-color: #FFFFFF;
	border-radius: 0 0 8px 8px;
	/* width: 100%; */
}
.product_flex1 div p:first-child, .product_flex1_new div p:first-child {
	font-size: 12px;
	color: #333;
	padding: 5px 0 0 0;
	margin: 0;
}
.product_flex1 div p:last-child, .product_flex1_new div p:last-child {
	font-size: 16px;
	font-weight: bold;
	color: #333;
	padding: 0 0 5px 0;
	margin: 0;
}

/* 金ぴかボタン */
.gold-container {
	display: flex;
	flex-wrap: nowrap;
	overflow-x: auto;
	width: 100%;
	height: auto;
	gap: 20px;
}
.gold-box{
	padding-bottom: 60px;
	width: 200px;
	position: relative;
}

.gold-box p {
	font-size: 14px;
	margin: 10px 0;
}
.gold-arrow{
	display: inline-block;
	vertical-align: middle;
	color: brown;
	line-height: 1;
	width: 0.7em;
	height: 0.7em;
	border: 0.15em solid currentColor;
	border-left: 0;
	border-bottom: 0;
	box-sizing: border-box;
	transform: translateY(-25%) rotate(135deg);
	margin-left: 30px;
}

.gold-btn {
	position: absolute;
	bottom: 15px;
	left: 1%;
	right: 1%;
}

.gold-btn a.btn {
	padding: 0;
	font-size: 12px;
	width: 100%;
	/* border-color: #ffe; */
	border: none !important;
	color: #333;
	background: linear-gradient(45deg, #EFCE24 0%, #EBE8B4 45%, #BD9A28 70%, #EDE08F 85%, #FFFCD2 90% 100%);
	background-size: 800% 400%;
   	animation: gradient 5s infinite cubic-bezier(.62, .28, .23, .99) both;
}

@keyframes gradient {
	0% {
	  background-position: 0% 50%;
	}
  
	50% {
	  background-position: 100% 50%;
	}
  
	100% {
	  background-position: 0% 50%;
	}
  }

.gold-btn a.btn:hover, .gold-btn a.btn:active{
	color: #666666;
	background: white;
	border: none !important;
	box-shadow: 0px 0px 15px var(--glow-color);
}

/*クーポン使い方移植*/
ul.notandum {
	padding-left: 28px;
}
.notandum li {
	margin-bottom: 10px;
}
.coupon-usage-wrapper h2 {
	border-bottom: none;
	margin-bottom: 10px;
	font-weight: bold;
	color: #fff;
}
.coupon-usage-wrapper ol {
	padding-top: 10px;
	padding-left: 28px;
}
.coupon-usage-wrapper ol li {
	margin-top: 10px;
}
.coupon-usage-wrapper div img {
	width: 95%;
	height: auto;
	border: 1px solid #4d4d4d;
}


/*カウントダウンタイマー周辺移植*/
.countdown-box-sale .sale-countdown > span {
	color: #fff;
	font-weight: normal;
}
.countdown-box-sale .sale-countdown > span span {
	font-weight: bold;
}
.countdown-box-sale .countdown-title {
	line-height: 1.8;
	color: #fff;
}	
@media screen and (max-width: 767px) {
	.countdown-box-sale,
	.countdown-box-sale .countdown-wrapper {
		height: auto;
}
	.countdown-box-sale .sale-countdown > span span {
		font-size: 3.0em;
	}
}
	
.annotation p{
	font-weight: bold;
	font-size: 26px;
	color: #ffe;
	padding-bottom: 0.8em;
	border-bottom: solid 1px #ffe;
}
@media screen and (max-width:767px) {
	.annotation p {
		font-size: 20px;
		padding-left: 5px;
		padding-right: 5px;
	}
}
	
/*カウントダウンタイマー・クーポンコード移植*/
.countdown-box-sale {
	position: relative;
	font-size: 10px;
	opacity: 1;
	-webkit-transition: opacity 0.3s ease 0s, visibility 0.3s linear 0s;
	transition: opacity 0.3s ease 0s, visibility 0.3s linear 0s;
	height: 138px;
}

.countdown-box .countdown-wrapper {
	position: absolute;
	bottom: 10px;
	left: 10px;
	right: 10px;
	background: rgba(255, 255, 255, 0.8);
	padding: 2px;
	font-weight: 700;
	text-align: center;
	-webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
	box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}

.countdown-box-sale .countdown-wrapper {
	margin: 0 auto;
	background: rgba(255, 255, 255, 1);
	border: 1px solid #fff;
	padding: 9px;
	font-weight: 700;
	text-align: center;
	-webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
	box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
	width: 70%;
	height: 150px;
	min-width: 320px;
}

.countdown-box-sale .countdown-title {
	font-size: 2em;
	line-height: 1.8em;
	text-transform: uppercase;
	color: #ffe;
}

@media screen and (max-width: 700px) {
	.countdown-box-sale .countdown-title {
		line-height: 2.8em;
	}
}

.countdown-box .countdown > span {
	position: relative;
	display: inline-block;
	vertical-align: middle;
	padding: 0;
	margin: 0 0.35em;
	color: #f82e56;
	font-size: 1.1em;
}

.countdown-box-sale .sale-countdown > span {
	position: relative;
	display: inline-block;
	vertical-align: middle;
	padding: 0;
	margin: 0 0.35em;
	color: #E9450A;
	font-size: 2.1em;
}

@media screen and (max-width: 700px) {
	.countdown-box-sale .sale-countdown > span {
		font-size: 1.4em;
	}
}

.countdown-box-sale .sale-countdown > span span {
	display: block;
	font-size: 3.2em;
	line-height: 1em;
	font-weight: 700;
	font-family: Roboto;
}
.sale-countdown span {
	color: #fff;
}

.couponcode {
	margin-bottom: 35px;
}

.js-copytext,
.js-copytext-c,
.js-copytext-b {
	display: block;
	font-size: 36px;
	color: #3e3e3e;
	background: #ffffff;
	margin-bottom: 5px;
	box-shadow: 1px 1px 4px 0px #dedede inset;
	font-family: Roboto;
	letter-spacing: 4px;
	border-radius: 30px;
}

@media screen and (min-width: 768px) {
	.js-copytext,
	.js-copytext-b,
	.js-copytext-c {
		width: 60%;
	}
}

.couponcode p {
	margin-top: 5px;
	font-size: 12px;
}

	.couponcode p.major {
		font-size: 16px;
	}

@media screen and (max-width:767px) {
	.couponcode p.major {
		font-size: 14px;
	}
}

/* ラベル部分 右上に表示 */
/* 商品に見立てた枠 */

.product_flex1_new::before {
    content: "";
    top: 0;
    right: 0;
    border-bottom: 4em solid transparent;
    border-right: 4em solid #e83820; /* ラベルの色はここで変更 */
    position: absolute;
    z-index: 100;
}
.product_flex1_new::after {
    content: "追加";
    display: block;
	font-weight: bold;
    top: 8px;
    transform: rotate(45deg);
    color: #fff; /* 文字色はここで変更 */
    right: 4px;
    position: absolute;
    z-index: 101;
}

.product_flex_new::before {
    content: "";
    top: 0;
    right: 0;
    border-bottom: 4em solid transparent;
    border-right: 4em solid #e83820; /* ラベルの色はここで変更 */
    position: absolute;
    z-index: 100;
}
.product_flex_new::after {
    content: "追加";
    display: block;
	font-weight: bold;
    top: 8px;
    transform: rotate(45deg);
    color: #fff; /* 文字色はここで変更 */
    right: 4px;
    position: absolute;
    z-index: 101;
}