@charset "utf-8";
/*--------------------------------------------
  order.common.css
  注文系 ショップ共通CSS
--------------------------------------------*/

/* ヘッダー ----------------------------------------*/
header {
	background: #fff;
	border-bottom: 2px solid var(--color-corporate);

	& .header_inner {
		width: 100%;
		max-width: 1260px;
		margin: 0 auto;
		padding: 10px var(--screen-pd-lr);

		& .header_contents {
			display: flex;
			padding: 0;
			justify-content: space-between;
			align-items: center;

			& .header_logo .header_logo_astyle {
				max-width: 240px;
				height: auto;
				margin-top: 0;
			}

			& .header_userData {
				display: flex;
				justify-content: flex-end;
				flex-wrap: wrap;
				margin: 0;
				padding: 0;
				font-size: clamp(0.75rem, 0.635rem + 0.38vw, 0.875rem);

				&.isLogin {
					display: flex;
					gap: 0 10px;
				}

				& .userData_mile {
					& dl {
						display: flex;
						justify-content: space-between;

						& dt {
							padding-right: 5px;
						}

						& .mile {
							font-weight: bold;
						}
					}
				}

				& .mile_link a {
					color: var(--text-color-link);
				}
			}
		}
	}
}
#systemError {
	header {
		border-bottom: none;
	}
}

@media screen and (max-width: 960px) {
	header {
		position: static;
		border-bottom: none;

		& .header_inner {
			padding: 0;

			& .header_contents {
				flex-direction: column;
				align-items: flex-start;
				background-color: #fff;

				& .header_logo {
					width: 100%;
					padding: 10px var(--screen-pd-lr);
					box-shadow: 0px 2px 4px -2px rgba(0, 0, 0, 0.15);

					& .header_logo_astyle {
						max-width: 240px;
					}
				}

				& .header_userData {
					width: 100%;
					justify-content: flex-start;
					padding: .8em var(--screen-pd-lr);
					background-color: rgba(11, 49, 143, 0.06);
					line-height: 1.3;

					&.isLogin {
						flex-direction: column;
						gap: 0 10px;
					}

					& .userData_mile dl {
						justify-content: flex-start;
						align-items: center;

						& dt {
							padding-left: calc(1em + 3px);
							background: url(../../img/common/icon/ic_004.png) no-repeat left center;
							background-size: 1em;
						}
					}
				}

				& a.icon_new_window {
					color: #fff;
					text-decoration: underline;

					&::after {
						background-image: url(../../img/common/icon/icon_window_black.png);
					}
				}
			}
		}
	}
}


/* フッター ----------------------------------------*/
footer {
	font-size: var(--font-size-ss);
	padding: 1em 0 2em;
	background-color: var(--bg-color-sub);
	border-top: none;

	& a,
	& a:link {
		color: var(--text-color);
	}

	& .footer .footer_inner {
		& .footLink {
			display: flex;
			flex-wrap: wrap;
			align-items: center;
			justify-content: center;
			padding: 1em var(--screen-pd-lr);
			gap: .5em 0;

			& li {

				&+li {
					border-left: 1px solid var(--color-corporate);
					border-right: none;
				}

				& a {
					padding: 0 1em;
				}
			}
		}

		& .jadma {
			text-align: center;
		}
	}

	.copyright {
		padding: 1em var(--screen-pd-lr);
		color: var(--text-color);
		border-top: none;
		background-color: transparent;
		font-size: 9px;
		text-align: center;
	}
}

@media screen and (max-width: 960px) {
	footer {
		background-color: var(--color-corporate);

		& a,
		& a:link {
			color: #fff;
		}

		& .footer .footer_inner {
			& .footLink {
				& li {
					&+li {
						border-color: #fff;
					}
				}
			}
		}

		.copyright {
			color: #fff;
		}
	}
}


/* コンテンツ レイアウト ---------------------------------*/
.contents {
	&.order_contents {
		grid-template-columns: 1fr min(100%, 1140px) 1fr;
		grid-template-rows: auto auto;
	}
}

.stickyContents {
	position: sticky;
	top: 20px;
}

@media screen and (max-width: 960px) {}

/* h1タイトル --------------------------------------------*/
:root {
	--progressbar-cart-icon-size: 1em;
}

@keyframes bar-step1 {

	0%,
	30% {
		width: 0%;
	}

	100% {
		width: 0%;
	}
}

@keyframes bar-step2 {

	0%,
	30% {
		width: 0%;
	}

	100% {
		width: calc((100% / 3)*1);
	}
}

@keyframes bar-step3 {

	0%,
	30% {
		width: calc((100% / 3)*1);
	}

	100% {
		width: calc((100% / 3)*2);
	}
}

@keyframes bar-step4 {

	0%,
	30% {
		width: calc((100% / 3)*2);
	}

	100% {
		width: calc((100% / 3)*3);
	}
}

@keyframes cart-icon-step1 {

	0%,
	30% {
		left: calc(var(--progressbar-cart-icon-size) * -1);
	}

	100% {
		left: calc(var(--progressbar-cart-icon-size) * -1);
	}
}

@keyframes cart-icon-step2 {

	0%,
	30% {
		left: calc(var(--progressbar-cart-icon-size) * -1);
	}

	100% {
		left: calc((100% / 3)*1 - var(--progressbar-cart-icon-size));
	}
}

@keyframes cart-icon-step3 {

	0%,
	30% {
		left: calc((100% / 3)*1 - var(--progressbar-cart-icon-size));
	}

	100% {
		left: calc((100% / 3)*2 - var(--progressbar-cart-icon-size));
	}
}

@keyframes cart-icon-step4 {

	0%,
	30% {
		left: calc((100% / 3)*2 - var(--progressbar-cart-icon-size));
	}

	100% {
		left: calc((100% / 3)*3 - var(--progressbar-cart-icon-size));
	}
}

.order_title_wrap {
	display: flex;
	margin: 30px 0 20px;

	& .orderProgressBarIncludeItemWrap {
		flex: 1;
	}

	& .level_h1 {
		background-color: transparent;
		color: var(--text-color);
		font-size: clamp(1.125rem, 0.9rem + 0.6vw, 1.313rem);
		padding: 0 1em 0 0;
		margin-bottom: 0;
	}

	& .order_progress_wrap {
		font-size: var(--font-size-ss);
		padding-top: 1.3em;
		margin-bottom: -2em;

		& .progressbar {
			position: relative;
			width: 75%;
			height: 2px;
			background-color: var(--border-color-section);
			margin: 0 auto;

			&::before {
				content: "";
				display: block;
				height: 100%;
				background-color: var(--color-corporate);
				position: absolute;
				top: 0;
				left: 0;
				animation-duration: 1.4s;
				animation-fill-mode: forwards;
				animation-timing-function: ease-out;
			}

			&.step1::before {
				animation-name: bar-step1;
			}

			&.step2::before {
				animation-name: bar-step2;
			}

			&.step3::before {
				animation-name: bar-step3;
			}

			&.step4::before {
				animation-name: bar-step4;
			}

			&::after {
				content: "";
				display: block;
				width: calc(var(--progressbar-cart-icon-size) * 2);
				height: calc(var(--progressbar-cart-icon-size) * 2);
				background: url(../../img/common/icon/icon_cart_blue.svg) center center no-repeat;
				background-size: contain;
				position: absolute;
				bottom: .3em;
				left: calc(var(--progressbar-cart-icon-size) * -1);
				animation-duration: 1.4s;
				animation-fill-mode: forwards;
				animation-timing-function: ease-out;
			}

			&.step1::after {
				animation-name: cart-icon-step1;
			}

			&.step2::after {
				animation-name: cart-icon-step2;
			}

			&.step3::after {
				animation-name: cart-icon-step3;
			}

			&.step4::after {
				animation-name: cart-icon-step4;
			}
		}

		& .order_flow {
			display: flex;

			& li {
				position: relative;
				flex: 1;
				padding: 1em .5em 0;
				text-align: center;
				line-height: 1.2;

				&::before {
					content: "";
					display: block;
					width: .5em;
					height: .5em;
					background-color: var(--color-corporate);
					border-radius: 1em;
					position: absolute;
					right: 0;
					left: 0;
					top: calc(-0.25em - 1px);
					margin: 0 auto;
				}

				&>span {
					display: flex;
					flex-wrap: wrap;
					align-items: center;
					justify-content: center;
				}

				&.current~li {
					&::before {
						background-color: var(--border-color-section);
					}
				}
			}
		}
	}
}

@media screen and (max-width: 960px) {
	.order_title_wrap {
		display: block;
		margin: 0;

		& .level_h1 {
			display: flex;
			align-items: center;
			gap: 0 .3em;
			background-color: var(--color-corporate);
			margin-top: 0;
			padding: .85em var(--screen-pd-lr);
			font-size: var(--font-size-s);
			color: #fff;

			&::before {
				content: "";
				display: inline-block;
				width: 1.4em;
				height: 1.4em;
				background: url(../../img/common/icon/icon_cart_white.svg) center center no-repeat;
			}
		}

		& .order_progress_wrap {
			padding: 3em 0 0;
			margin: 0 0 var(--screen-pd-lr);
		}
	}
}


/* 金額テーブル、ボタンエリア */
.cartSummaryAndButtonGroup {
	& .cautionGroup {
		margin-top: 1em;

		& .note {
			font-size: inherit;
			margin-bottom: 0;
			line-height: 1.5;
		}
	}
}

/* 年齢確認エリア */
/* 商品アラート確認エリア */
.liquorGroup,
.goodsAlertGroup {
	padding: 15px 10px 10px;
	border: 1px solid var(--border-color-separate);
	background-color: var(--bg-color-l-gray);
	border-radius: 5px;
	font-size: var(--font-size-ss);
	margin-bottom: var(--screen-pd-lr);

	& .headline {
		font-size: 142%;
		padding-left: 30px;
		background: url(../../img/common/icon/icon_type01.png) no-repeat 0 0;
		margin-bottom: .2em;
	}

	& p {
		line-height: 1.5;
	}

	& .radioWrap {
		margin-top: .5em;

		& .items {
			display: flex;
			flex-wrap: wrap;
			justify-content: center;
		}
	}
}

/* インクルードエリア */
.notes {
	margin-bottom: var(--section-bottom);
	font-size: var(--font-size-ss);

	& .note {
		font-size: inherit;
	}
}

/* ボタンエリア */
.cartSummaryAndButtonGroup {
	& .buttonArea {
		flex-direction: column;
		align-items: stretch;
		gap: 10px 0;
		margin: 1.5em 0;

		& .itemWrap {
			display: block;
			width: 100%;

			&+.itemWrap.buttonWrap {
				margin-left: 0;
				width: 100%;
			}

			& input,
			& a {
				width: 100%;
				font-size: var(--font-size-base);
			}

			&:has(.returnButton) {
				order: 3;
				width: 80%;
				margin: 0 auto;
			}
		}
	}

	& .amazonPayLoginGroup {
		margin-bottom: var(--screen-pd-lr);
	}

	& .amazonPaymentDescriptionItemWrap {
		margin-bottom: .5em;
	}
}

.section {
	padding: 15px 20px;
	margin-bottom: var(--section-bottom);
	border: 1px solid var(--border-color-section);
	border-radius: 5px;
	font-size: var(--font-size-s);

	& .level_h2 {
		margin: 0 0 .5em;
		color: var(--text-color);
		font-size: var(--font-size-s);
		font-weight: bold;
		text-align: left;
		padding: 0;
		background-color: transparent;
		line-height: 1.3;
	}

	& .table {
		margin-bottom: 0;

		& .tr {

			& .th,
			& .td {
				padding: 0;
				background-color: transparent;
				border: none;
			}

			&:first-of-type {

				& .th,
				& .td {
					border-top: none;
				}
			}

			& .th {
				position: relative;
				width: fit-content;
				min-width: 0;
				padding-right: 1em;
				vertical-align: baseline;
				white-space: nowrap;

				&::after {
					content: "：";
					position: absolute;
					right: 0;
					top: 0;
				}
			}
		}
	}
}

.level_h2 {
	font-weight: normal;
	color: var(--text-color);
	margin-bottom: .5em;
}

/* お客様情報 */
.customerInfoGroup {
	margin-bottom: 1em;
}

.customerInfoDispLayout.table {
	font-size: var(--font-size-ss);
	width: auto;
}

span[class*="orderAddress" i] {
	display: block;
}

/* 未成年者 */
.liquorMessageItemWrap {
	font-size: var(--font-size-s);
}

.GiftOrderInfoInputLiquorMessage,
.GiftOrderInfoConfirmLiquorMessage {
	border: 1px solid var(--border-color-alert);
	color: var(--text-color-alert);
	font-weight: bold;
	font-size: 1.2em;
	padding: .5em 10px;
	margin-top: .5em;
}

/* お支払い情報 */
.paymentInfoGroup {
	display: flex;
	flex-wrap: wrap;
	height: fit-content;
	gap: 0 20px;
	margin-bottom: 0;

	&>.set-group {
		flex: 1;
	}

	& .h2Wrap,
	& .includeWrap {
		display: inline-block;
	}

	& .h2Wrap {
		padding-right: .5em;
	}

	& .radiobuttonLabel {
		display: block;

		&+.radiobuttonLabel {
			margin-left: 0;
		}
	}
}

.modal_main {
	display: none;
	position: fixed;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	margin: auto;
	z-index: 1000;
	width: clamp(200px, 90vw, 700px);
	height: fit-content;
	max-height: min(700px, 80vh);
}

.modal_contents {
	position: relative;
	background-color: #fff;
	padding: 30px 20px 20px;
	border: 2px solid var(--border-color-section);

	& .close {
		position: absolute;
		right: 10px;
		top: 10px;
		cursor: pointer;

		& .modalClose {
			position: relative;
			display: block;
			width: 1.5em;
			height: 1.5em;

			&::before,
			&::after {
				content: "";
				position: absolute;
				top: 0;
				right: 0;
				bottom: 0;
				left: 0;
				margin: auto;
				display: block;
				width: 3px;
				height: 1.2em;
				background-color: var(--text-color-sub);
				transform: rotate(45deg);
			}

			&::after {
				transform: rotate(135deg);
			}
		}
	}

	& .bold {
		font-weight: bold;
	}
}

#reglSecondSelectedPaymentMethodThSurround,
.reglSecondSelectedPaymentMethodTdSurround,
#reglSecondSelectedPaymentMethodTdSurround {
	display: inline-block;
	font-size: var(--font-size-ss);
}

.modalBg {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100vh;
	background-color: rgba(0, 0, 0, 0.7);
	z-index: 999;
}

/* ご購入特典 */
.orderPromotionGroup {
	margin-top: 1.5em;

	& ul {
		& li {
			padding-left: 1em;
			text-indent: -1em;

			&::before {
				content: "・";
			}
		}
	}
}

/* 関連商品 */
.relatedGoodsItemsWrapper {
	& .swiper-button-next {
		right: calc(var(--screen-pd-lr)*-1);
	}

	& .swiper-button-prev {
		left: calc(var(--screen-pd-lr)*-1);
	}
}

.relatedGoodsTitle {
	display: flex;
	align-items: center;
	margin: var(--section-bottom) 0 0;
	padding: 0;
	text-align: left;
	background-color: transparent;
	color: var(--color-corporate);

	& .icon {
		width: 2.5em;
		margin-right: .5em;

		& .relatedGoodsIcon {
			fill: var(--color-corporate);
		}
	}

	& span {
		font-weight: bold;
	}
}


@media screen and (max-width: 960px) {

	/* 年齢確認エリア */
	/* 商品アラート確認エリア */
	.liquorGroup,
	.goodsAlertGroup {
		background-color: var(--bg-required);
		border-radius: 0;

		& .radioWrap {
			& .items {
				& .radiobuttonLabel {
					width: auto;
				}
			}
		}
	}

	.section {
		& .level_h2 {
			margin-bottom: .5em;
		}
	}

	.formArea>.set-group:not(.section)>.h2Wrap .level_h2 {
		text-align: left;
		padding: 8px;
		background-color: #7d94ba;
		color: #fff;
		font-weight: bold;
	}

	/* ボタンエリア */
	.cartSummaryAndButtonGroup {
		margin-bottom: 20px;

		& .amazonPayLoginGroup {

			& .level_h2,
			& #AmazonPayButton {
				text-align: center;
			}
		}
	}

	/* 関連商品 */
	.relatedGoodsItemsWrapper {
		width: calc(100% + var(--screen-pd-lr)*2);
		margin-left: calc(var(--screen-pd-lr)*-1);

		& .swiper-button-next {
			right: var(--screen-pd-lr);
		}

		& .swiper-button-prev {
			left: var(--screen-pd-lr);
		}

		& .swiper {

			&~.swiper-button-next:not(.swiper-button-disabled),
			&~.swiper-button-prev:not(.swiper-button-disabled) {
				display: block;
			}
		}
	}

	.relatedGoodsTitle {
		font-size: var(--font-size-s);
	}

	/* お支払い情報エリア */
	.paymentInfoGroup {
		border: none;
		padding: 0;

		& .h2Wrap,
		& .includeWrap {
			width: 100%;
			padding-right: 0;
		}

		& .level_h2 {
			text-align: left;
			padding: 8px;
			background-color: #7d94ba;
			color: #fff;
			font-size: 1.125rem;
			font-weight: bold;
		}

		&>.set-group {
			width: 100%;
			flex: auto;
			margin-bottom: 1.5em;
			display: flex;
			flex-direction: column;
		}
	}

	/* 適用キャンペーン */
	.orderPromotionGroup {
		border: none;
		padding: 0;
		margin-top: 1.5em;
	}
}

.cartSummaryAndButtonGroup .amazonPayLoginGroup #AmazonPayButton {
height: 45px;
}
