@charset "utf-8";
/* ■■■■■■■■■■共通■■■■■■■■■■ */

/* s-descWithImg */
.s-descWithImg{
	display: grid;
	gap: var(--sec-spc);
}
.s-descWithImg__desc{
	display: grid;
}
@media screen and (min-width: 768px){
	.s-descWithImg li{
		display: flex;
		gap: var(--spc-40);
		align-items: flex-start;
	}
	.s-descWithImg--crossList li:nth-child(even){
		flex-direction: row-reverse;
	}
	.s-descWithImg li > *{
		flex: 1;
	}
	.s-descWithImg__desc{
		gap: var(--spc-30);
	}
}
@media screen and (max-width: 767px){
	.s-descWithImg li{
		display: grid;
		gap: var(--spc-20);
	}
	.s-descWithImg__desc{
		gap: var(--spc-30);
	}
}
/* ■■■■■■■■■■よくある質問■■■■■■■■■■ */
.s-faq dd:not(:last-child){
	border-bottom: 1px solid var(--bd-c-gray);
}
.s-faq dt,
.s-faq dd{
	position: relative;
}
.s-faq:last-child dd{
	padding-bottom: 0;
}
.s-faq dt::before,
.s-faq dd::before {
	font-family: var(--ff-en);
	position: absolute;
}
.s-faq dt::before{
	content: 'Q';
  color: var(--fs-btn-bg-c-primary);
}
.s-faq dd::before {
	content: 'A';
  color: var(--fs-btn-bg-c-primary);
}
@media screen and (min-width: 768px){
	.s-faq{
		margin-top: 20px;
	}
	.s-faq dd:not(:last-child){
		padding-bottom: 30px;
		margin-bottom: 30px;
	}
	.s-faq dt{
		font-size: var(--fz-13);
		padding: 2px 50px 20px 35px;
	}
	.s-faq dd{
		padding: 10px 40px 40px 40px;
	}
	.s-faq dt::before,
	.s-faq dd::before{
		font-size: 17px;
	}
	.s-faq dt::before{
		left: 10px;
		top: -4px;
	}
	.s-faq dd::before{
		left: 12px;
		top: 8px;
	}
}
@media screen and (max-width: 767px){
	.s-faq{
		margin-top: 20px;
	}
	.s-faq dd:not(:last-child){
		padding-bottom: 20px;
		margin-bottom: 20px;
	}
	.s-faq dt{
		font-size: var(--fz-14);
		padding: 0 10px 10px 35px;
	}
	.s-faq dd{
		padding: 8px 30px 30px 35px;
	}
	.s-faq dt::before,
	.s-faq dd::before{
		font-size: 16px;
	}
	.s-faq dt::before{
		left: 15px;
		top: -5px;
	}
	.s-faq dd::before{
		left: 16px;
		top: 5px;
	}
	.s-faq dd .s-txt{
		line-height: 1.7;
	}
}
/* アコーディオン プラスマイナス */
/* .s-faq--acc dt{
	position: relative;
}
.s-faq--acc dt span{
	display: inline-block;
	position: relative;
	aspect-ratio: 1/1;
	position: absolute;
	border: 1px solid var(--bd-c-gray);
	border-radius: 50%;

}
.s-faq--acc dt span::before,
.s-faq--acc dt span::after{
	content: "";
	display: inline-block;
	background: var(--bg-c-gray);
	width: 60%;
	height: 1px;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}
.s-faq--acc dt span::after{
	transition: .3s;
	transform: translate(-50%, -50%) rotate(90deg);
}
.s-faq--acc dt.active span::after{
	transform: translate(-50%, -50%) rotate(180deg);
}
.s-faq--acc dd{
	display: none;
}
@media (hover: hover){
	.s-faq--acc dt:hover{
		cursor: pointer;
	}
}
@media screen and (min-width: 768px){
	.s-faq--acc dt:not(:first-child){
		margin-top: 20px;
	}
	.s-faq--acc dt span{
		width: 15px;
		right: 30px;
		top: 7px;
	}
}
@media screen and (max-width: 767px){
	.s-faq dt{
		padding-right: 30px;
	}
	.s-faq--acc dt:not(:first-child){
		margin-top: 10px;
	}
	.s-faq--acc dt span{
		width: 13px;
		right: 7px;
		top: 4px;
	}
} */

/* アコーディオン 矢印 */
.s-faq--acc dt{
	position: relative;
}
.s-faq--acc dt span{
	display: inline-block;
	position: relative;
	aspect-ratio: 1/1;
	position: absolute;
}
.s-faq--acc dt span::before{
	font-family: 'Font Awesome 5 Pro';
	font-weight: 500;
	content: '\f107';
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	transition: .3s;
}
.s-faq--acc dt.active span::before{
	transform: translate(-50%, -50%) rotate(180deg);
}
.s-faq--acc dd{
	display: none;
}
@media (hover: hover){
	.s-faq--acc dt:hover{
		cursor: pointer;
	}
}
@media screen and (min-width: 768px){
	.s-faq--acc dt:not(:first-child){
		margin-top: 20px;
	}
	.s-faq--acc dt span{
		width: 30px;
		right: 10px;
		top: 10px;
	}
	.s-faq--acc dt span::before{
		font-size: 20px;
	}
}
@media screen and (max-width: 767px){
	.s-faq dt{
		padding-right: 30px;
	}
	.s-faq--acc dt:not(:first-child){
		margin-top: 10px;
	}
	.s-faq--acc dt span{
		width: 20px;
		right: 5px;
		top: 5px;
	}
	.s-faq--acc dt span::before{
		font-size: 15px;
	}
}
/* ■■■■■■■■■■お買い物ガイド■■■■■■■■■■ */
.s-guideContents{
	--h3-bgcolor: #F5F5F5;
	--h2-bdcolor: var(--bd-c-gray);
	--h2-bgcolor: var(--bg-c-beige);
	margin-top: 3px;
	display: grid;
	gap: clamp( 50px, 8vw, 100px);
}
.s-guideColumn__heading{
	font-weight: 700;
	background-color: var(--h2-bgcolor);
}
.s-guideColumn__ttl{
	font-weight: 700;
	position: relative;
}
.s-guideColumn__ttl::before{
	content: '・';
	display: inline-block;
	color: var(--txt-c-emphasis);
	position: absolute;
	top: 0;
}
.s-guideCredit{
	display: flex;
	align-items: center;
	gap: var(--spc-10);
	margin: var(--spc-20) 0;
}
.s-guideCredit li{
	flex: 1;
}
.s-guidePaymentLogo{
	margin: var(--spc-30) 0 var(--spc-20);
}
.s-guideTable{
	width: 100%;
	max-width: 800px;
	border-collapse: collapse;
}
.s-guideTable--bank{
	max-width: 300px;
}
.s-guideTable th,
.s-guideTable td{
	border: 1px solid var(--h2-bdcolor);
}
.s-guideTable th{
	font-weight: normal;
}
.s-guideTable thead th{
	background-color: var(--h2-bdcolor);
	padding: 5px 0;
	font-size: var(--fz-12);
}
.s-guideTable tbody th,
.s-guideTable tbody td{
	text-align: center;
}
.s-guideColumn__subttl{
	font-weight: 500;
	border-bottom: 1px solid var(--txt-c-emphasis);
	width: fit-content;
}
.s-guideNav__item li a{
	position: relative;
}
.s-guideNav__item li.is-current a {
	color: var(--txt-c-emphasis);
}
.s-guideNumList{
  margin-top: var(--spc-20);
  counter-reset: number;
}
.s-guideNumList li{
  padding: 0 8px 0 2em;
  text-indent: -1.5em;
}
.s-guideNumList li::before{
  counter-increment: number;
  content: "("counter(number) ")";
  display: inline-block;
  color: var(--txt-c-base);
  text-align: right;
  width: 1em;
  padding-right: 1em;
  box-sizing: content-box;
}
@media screen and (min-width: 768px){
	.s-guideContainer{
		display: grid;
		grid-template-columns: 260px 1fr;
		align-items: flex-start;
		gap: clamp( 50px, 6vw, 80px);
	}
	.s-guideNav{
		position: sticky;
		top: 130px;
		left: 0;
	}
	.s-guideNav__item li {
		margin-bottom: var(--spc-10);
	}
	.s-guideNav__item li a{
		font-size: var(--fz-16);
		font-weight: 700;
		display: block;
	}
	.s-guideNav__item li a::after{
		content: "";
		display: inline-block;
		background-color: var(--txt-c-emphasis);
		width: 100%;
		height: 1px;
		position: absolute;
		bottom: -3px;
		left: 0;
		transform: scaleX(0);
		transform-origin: right;
		transition: transform .3s;
	}
	.s-guideNav__item li.is-current a::after{
		transform: scaleX(1);
		transform-origin: left;
	}
	.s-guideColumn__heading{
		font-size: var(--fz-20);
		padding: var(--spc-10) var(--spc-20);
		margin-bottom: var(--spc-40);
	}
	.s-guideColumn__ttl{
		font-size: var(--fz-18);
		padding-left: 30px;
		margin-block: var(--spc-40) var(--spc-20);
	}
	.s-guideColumn__ttl::before{
		left: 8px;
	}
	.s-guideCredit{
		max-width: 350px;
	}
	.s-guidePaymentLogo--AmazonPay{
		width: 180px;
	}
	.s-guidePaymentLogo--PayPay{
		width: 130px;
	}
	.s-guidePaymentLogo--paidy{
		width: 130px;
	}
	.s-guidePaymentLogo--rakutenPay{
		width: 150px;
	}
	.s-guideTable{
		margin-top: var(--spc-20);
	}
	.s-guideTable tbody th,
	.s-guideTable tbody td{
		padding: 7px 20px;
		font-size: var(--fz-12);
	}
	.s-guideColumn__subttl{
		font-size: 17px;
		margin-block: var(--spc-30) var(--spc-10);
	}
	.s-guideContainer .g-btnContainer{
		margin-top: var(--spc-30);
	}
}
@media screen and (max-width: 767px){
	.s-guideNav{
		--guide-nav-sp-box: 250px;
		--guide-nav-sp-box-trigger: 40px;
		position: fixed;
		right: calc(0px - var(--guide-nav-sp-box) + var(--guide-nav-sp-box-trigger));
		top: 150px;
		display: flex;
		width: var(--guide-nav-sp-box);
		transition: .5s;
		z-index: 99;
		opacity: 1;
	}
	/* body.scroll .s-guideNav{
		opacity: 1;
		animation: var(--anime-fade-in);
	}
	body.scroll.returnTop .s-guideNav{
		opacity: 1;
		animation: var(--anime-fade-out);
	} */
	.s-guideNav.active{
		right: 0;
	}
	.s-guideNav__spTrigger{
		width: var(--guide-nav-sp-box-trigger);
		height: 150px;
		background-color: rgba(245, 243, 242, 0.5);
		display: flex;
		justify-content: center;
		align-items: center;
		border-radius: 5px 0 0 5px;
		box-shadow: 0 0 5px rgba(0,0,0,.2);
		border-right: none;
	}
	.s-guideNav__spTrigger::after{
		content: '目次';
		writing-mode: vertical-rl;
	}
	.s-guideNav.active .s-guideNav__spTrigger::after{
		content: '閉じる';
	}
	.s-guideNav__item{
		flex: 1;
		background-color: var(--c-white);
		border: 1px solid var(--bd-c-gray);
	}
	.s-guideNav__item li:not(:last-child){
		border-bottom: 1px solid var(--bd-c-gray);
	}
	.s-guideNav__item li a{
		display: block;
		padding: 8px 15px;
		font-size: 13px;
	}
	.s-guideColumn__heading{
		font-size: 16px;
		padding: 5px 10px;
		margin-bottom: 20px;
	}
	.s-guideColumn__ttl{
		font-size: 15px;
		padding-left: 25px;
		margin: 20px 0 10px;
	}
	.s-guideColumn__ttl::before{
		left: 6px;
	}
	.s-guideCredit{
		max-width: 280px;
	}
	.s-guidePaymentLogo--AmazonPay{
		width: 150px;
	}
	.s-guidePaymentLogo--PayPay{
		width: 120px;
	}
	.s-guidePaymentLogo--paidy{
		width: 120px;
	}
	.s-guidePaymentLogo--rakutenPay{
		width: 120px;
	}
	.s-guideTable{
		margin-top: var(--spc-20);
	}
	.s-guideTable tbody th,
	.s-guideTable tbody td{
		padding: 5px 15px;
		font-size: var(--fz-12);
	}
	.s-guideColumn__subttl{
		font-size: 14px;
		margin-block: 15px 5px;
	}
}

/* s-usage */
.s-usage{
	--grid-cols-pc: 2;
	--grid-gap-pc: var(--spc-40);
	--grid-cols-sp: 1;
	--grid-gap-sp: 20px;
}
.s-usage__item:first-child{
	position: relative;
}
.s-usage__item:first-child::after{
	content: "";
	display: inline-block;
	--this-mask: var(--data-icon-arrow-to) no-repeat center center / 100%;
	mask: var(--this-mask);
	-webkit-mask: var(--this-mask);
	background-color: var(--txt-c-emphasis);
	aspect-ratio: 1;
	position: absolute;
	z-index: 2;
}
.s-usage__ttl{
	background-color: var(--c-white);
	border-radius: 25px;
	width: fit-content;
	margin-inline: auto;
	font-weight: 700;
	text-align: center;
}
.s-usage__ttl strong{
	color: var(--txt-c-emphasis);
}
.s-usage__logo{
	aspect-ratio: 312/60;
	display: flex;
	justify-content: center;
	align-items: center;
}
.s-usage__logo img{
	width: var(--this-logo-width);
	margin-inline: auto;
}
@media screen and (min-width: 768px){
	.s-usage__item{
		border-radius: 30px;
		padding: var(--spc-40) var(--spc-50) var(--spc-50) var(--spc-50);
	}
	.s-usage__item:first-child::after{
		width: 34px;
		top: 50%;
		right: 0;
		transform: translate(80%, -50%);
	}
	.s-usage__ttl{
		width: 252px;
		margin-bottom: 22px;
		font-size: var(--fz-18);
		padding-block: 5px;
	}
	.s-usage__ttl strong{
		font-size: var(--fz-22);
	}
}
@media screen and (max-width: 767px){
	.s-usage__item{
		border-radius: 20px;
		padding: 30px;
	}
	.s-usage__item:first-child::after{
		width: 24px;
		bottom: -20px;
		left: 50%;
		transform: translate(-50%, 50%) rotate(90deg);
	}
	.s-usage__ttl{
		width: 180px;
		margin-bottom: 15px;
		font-size: var(--fz-16);
		padding-block: 3px;
	}
	.s-usage__ttl strong{
		font-size: var(--fz-18);
	}
}
/* s-usageContainer */
@media screen and (min-width: 768px){
	.s-usageContainer{
		background: linear-gradient(to bottom, var(--txt-c-emphasis) 200px, var(--c-white) 200px);
		padding-top: var(--spc-50);
	}
}
@media screen and (max-width: 767px){
	.s-usageContainer{
		background: linear-gradient(to bottom, var(--txt-c-emphasis) 150px, var(--c-white) 150px);
		padding-top: 30px;
	}
}

/* s-flow */
.s-flow__head{
	position: relative;
	border-bottom: 1px solid var(--txt-c-base);
}
.s-flow__head::after{
	content: "";
	display: inline-block;
	--this-mask: var(--data-icon-toggle) no-repeat center center / 100%;
	mask: var(--this-mask);
	-webkit-mask: var(--this-mask);
	background-color: var(--txt-c-emphasis);
	aspect-ratio: 1;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	right: 0;
	transition: .3s;
}
.s-flow__head.is-active::after{
	transform: translateY(-50%) rotate(180deg);
}
.s-flow__ttl__en{
	font-weight: 900;
	display: none;
}
.s-flow__ttl__ja{
	font-weight: 700;
}
.s-flow__list{
	display: grid;
}
.s-flow__item{
	display: grid;
}
.s-flow__img img{
	border: 1px solid var(--txt-c-emphasis);
}
.s-flow__txt span{
	font-weight: 900;
}
.s-flow__txt a{
	color: var(--txt-c-emphasis);
	text-decoration: underline;
}
@media (hover: hover){
	.s-flow__head:hover{
		cursor: pointer;
	}
}
@media screen and (min-width: 768px){
	.s-flow__head{
		padding-bottom: var(--spc-10);
		margin-bottom: var(--spc-50);
	}
	.s-flow__head::after{
		width: 30px;
	}
	.s-flow__ttl{
		display: flex;
		align-items: baseline;
		gap: var(--spc-20);
	}
	.s-flow__ttl__en{
		font-size: var(--fz-40);
	}
	.s-flow__ttl__ja{
		font-size: var(--fz-30);
	}
	.s-flow__list{
		gap: var(--spc-50);
	}
	.s-flow__item{
		grid-template-columns: repeat(2,1fr);
		gap: var(--spc-30);
	}
	.s-flow__img{
		position: relative;
	}
	.s-flow__item:not(:last-child) .s-flow__img::after{
		content: "";
		display: inline-block;
		--this-mask: var(--data-icon-arrow-down) no-repeat center center / 100%;
		mask: var(--this-mask);
		-webkit-mask: var(--this-mask);
		background-color: var(--txt-c-emphasis);
		aspect-ratio: 1;
		width: 30px;
		position: absolute;
		left: 50%;
		transform: translateX(-50%);
		bottom: calc(0px - var(--spc-40));
	}
}
@media screen and (max-width: 767px){
	.s-flow__head{
		padding-bottom: 10px;
		margin-bottom: 30px;
	}
	.s-flow__head::after{
		width: 15px;
	}
	.s-flow__ttl{
		display: grid;
		gap: 5px;
	}
	.s-flow__ttl__en{
		font-size: 20px;
	}
	.s-flow__ttl__ja{
		font-size: 18px;
		display: block;
	}
	.s-flow__list{
		gap: 50px;
	}
	.s-flow__item{
		grid-template-columns: 1fr;
		gap: var(--spc-20);
		position: relative;
	}
	.s-flow__item:not(:last-child)::after{
		content: "";
		display: inline-block;
		--this-mask: var(--data-icon-arrow-down) no-repeat center center / 100%;
		mask: var(--this-mask);
		-webkit-mask: var(--this-mask);
		background-color: var(--txt-c-emphasis);
		aspect-ratio: 1;
		width: 20px;
		position: absolute;
		left: 50%;
		transform: translateX(-50%);
		bottom: calc(0px - 35px);
	}
}

/* s-productBox */
.s-productBox__heading{
	font-weight: 700;
	text-align: center;
}
@media screen and (min-width: 768px){
	.s-productBox__heading{
		font-size: var(--fz-25);
		margin-bottom: var(--spc-50);
	}
}
@media screen and (max-width: 767px){
	.s-productBox__heading{
		font-size: 20px;
		margin-bottom: 30px;
	}
}

/* s-mediaLogo */
.s-mediaLogo{
	max-width: 280px;
	margin-inline: auto;
}
.s-mediaLogo img{
	aspect-ratio: 2/1;
	object-fit: cover;
}
.s-productBox .g-btn__label{
	font-size: 14px;
}


/* s-mediaCols */
@media screen and (min-width: 768px){
	.s-mediaCols .l-cols__item{
		display: flex;
		flex-direction: column;
	}
	.s-mediaCols .l-paragraph{
		flex: 1;
	}
}