html, body {
	margin: 0;
	padding: 0;
	min-width: auto;
	overscroll-behavior: none;
}

body {
  touch-action: none;
}

.kuraloveCatalogOrderCont {
	position: relative;
	background-color: #f6f7f8;
}

#kuraloveCatalogOrderContcontainer {
	height: 100vh;
	min-width: 0;
	min-height: 0;
}

.flexCont {
	display: flex;
	width: 100vw;
	overflow: hidden;
}

#imageWrapper {
	position: relative;
	width: 100vw;
	height: 100vh;
	overflow: auto;
	touch-action: none;
	-ms-touch-action: none;
	background: #f6f7f8;
}

#image {
	display: block;
	width: auto;
	height: 90%;
	margin: 0 auto;
	object-fit: contain;
	background: #fff;
}

#image.zoom-100 {
	height: 100%;
}

#image.zoom-150 {
	height: 180%;
}

#image.zoom-200 {
	height: 300%;
}

#bottomMenu {
	position: relative;
	padding: 16px 0;
	background-color: #f6f7f8;
	margin: 0 auto;
	box-sizing: border-box;
}

.bottomMenu-inner {
	position: relative;
	padding: 0 16px;
	margin: 0 auto;
	box-sizing: border-box;
}

.control-button {
	display: flex;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
}

/* ナビ・ズーム・商品一覧ボタン（PC=中央一列, SP=商品一覧は下フッター） */
.nav-btn, .zoom-btn {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 10px 6px;
	cursor: pointer;
	border: 1px solid #808080;
	border-radius: 4px;
	background: #fff;


	> span {
		position: relative;
		font-size: 16px;
		font-weight: bold;
		color: #333;
	}
}

.zoom-btn > span {
	padding-left: 14px;
	&::after {
		position: absolute;
		left: 0;
		top: 50%;
		content: '';
		background-size: contain;
		background-repeat: no-repeat;
		transform: translateY(-50%);
	}
}


.bottomMenu-inner > .control-button  button:nth-of-type(1) {
	> span {
		&::after {
			position: absolute;
			width: 14px;
			height: 14px;
			left: 0;
			top: 50%;
			content: '';
			background-image: url('/item/kuralove/catalog/order/images/allow.png');
			background-size: contain;
			background-repeat: no-repeat;
		}
	}
}

.bottomMenu-inner > .control-button  button:nth-of-type(2) {
	> span {
		&::after {
			width: 10px;
			height: 2px;
			background-image: url('/item/kuralove/catalog/order/images/minus.png');
		}
	}
}

.bottomMenu-inner > .control-button  button:nth-of-type(3) {
	> span {
		&::after {
			width: 10px;
			height: 10px;
			background-image: url('/item/kuralove/catalog/order/images/plus.png');
		}
	}
}

.bottomMenu-inner > .control-button  button:nth-of-type(4) {
	> span {
		padding-right: 14px;

		&::after {
			position: absolute;
			width: 14px;
			height: 14px;
			right: 0;
			top: 50%;
			content: '';
			background-image: url('/item/kuralove/catalog/order/images/allow.png');
			background-size: contain;
			background-repeat: no-repeat;
			transform: translateY(-50%) rotate(180deg);
		}
	}
}

#watchCartButton {
	display: flex;
	justify-content: center;
	align-items: center;
    padding: 5px 20px;
	max-width: 131px;
    height: 30px;
    font-size: 13px;
    font-weight: bold;
    color: #fff;
    cursor: pointer;
    border: none;
    border-radius: 3px;
    background-color: #fd7122;
	text-decoration: none;
	box-sizing: border-box;
}

#guideButton {
	display: flex;
	justify-content: center;
	align-items: center;
    padding: 10px 10px;
	border-radius: 4px;
	font-size: 16px;
	width: 8em;
    font-weight: bold;
    color: #fff;
    cursor: pointer;
    border: none;
    background-color: #5c8ae6;
	text-decoration: none;
	box-sizing: border-box;
}

#bottomMenu #guideButton:hover {
	text-decoration: none;
	color: #fff;
}

#bottomButton {
	position: absolute;
	bottom: 50%;
	right: 0;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 10px;
	margin-top: 10px;
	transform: translateX(100%) translateY(50%);
}

#bottomMenu .bottomMenu-inner .nav-btn {
	padding: 10px;
	> span {
		font-size: 1px;
		width: 16px;
		height: 16px;
		padding: 0;
		color: #fff;

		&::after {
			left: 50%;
			right: 50%;
		}
	}
}

#bottomMenu .bottomMenu-inner > .control-button  button:nth-of-type(1) {
	> span {
	&::after {
			transform: translateX(-40%) translateY(-50%);
		}
	}
}

#bottomMenu .bottomMenu-inner > .control-button  button:nth-of-type(4) {
	> span {
	&::after {
			transform: translateX(-60%) translateY(-50%) rotate(180deg);
		}
	}
}

#prevPageButton {
	margin-right: auto;
}

#nextPageButton {
	margin-left: auto;
}

#zoomOutButton {
	margin-right: 2px;
}

#zoomInButton {
	margin-left: 2px;
}


.nav-btn:disabled, .zoom-btn:disabled {
	opacity: .36;
}

#sideMenuButton {
	width: 70%;
	padding: 10px 10px;
	border-radius: 4px;
	font-size: 16px;
	font-weight: bold;
	color: #fff;
	outline: none;
	cursor: pointer;
	border: none;
	background-color: #fd7122;

	> span {
		position: relative;
		padding-left: 25px;

		&::after {
			position: absolute;
			width: 18px;
			height: 16px;
			left: 0;
			top: 50%;
			content: '';
			background-image: url('/item/kuralove/catalog/order/images/cart.png');
			background-size: contain;
			background-repeat: no-repeat;
			transform: translateY(-50%);
		}
	}
}

.sold {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	padding: 10px;
	gap: 10px;
	font-size: 12px;

	> a {
		text-decoration: underline;
	}

	> a:not([href]) {
		color: #bfbfbf;
		pointer-events: none;
		text-decoration: none;
		cursor: default;
	}

	> a[href="#"] {
		color: #bfbfbf;
		pointer-events: none;
		text-decoration: none;
		cursor: default;
	}

	> a[href=""] {
		color: #bfbfbf;
		pointer-events: none;
		text-decoration: none;
		cursor: default;
	}
}

@media screen and (max-width: 10000px) {
	#bottomButton {
		display: flex;
		position: static;
		bottom: auto;
		right: auto;
		transform: none;
		margin: 10px 0 0;
	}
}

/* サイドメニュー */
/* サイドメニュー (右寄せ閉じる) */
#sideMenu {
	position: fixed;
	display: none;
	top: 0;
	right: 0;
	bottom: 0;
	width: 360px;
	min-width: 0;
	height: 100%;
	padding: 10px 10px 10px 10px;
	text-align: left;
	border-right: 1.2px solid #333;
	box-sizing: border-box;
	background: #fff;
	transform: translateX(100%);
	z-index: 1300;
}

#sideMenu.opened {
	transform: translateX(0);
}

#closeMenuButton {
	position: absolute;
	display: flex;
	justify-content: flex-end;
	align-items: center;
	top: 0;
	left: 0;
	width: fit-content;
	padding: 10px;
	gap: 5px;
	font-size: 17px;
	font-weight: bold;
	cursor: pointer;
	box-shadow: none;
	border: none;
	background: #fff;
	transform: translateX(-99%);
	z-index: 99;
}

.flexCont #sideMenu .buttons {
	display: flex;
	justify-content: space-between;
}

.flexCont #sideMenu .buttons a:hover {
	text-decoration: none;
	color: #fff;
}

.flexCont #sideMenu .buttons > div {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	gap: 10px;
}

#closeMenuButton .closetext {
	position: relative;
	padding-left: 20px;
	color: #333;
	font-size: 16px;
	font-weight: bold;

	&::after {
		position: absolute;
		width: 13px;
		height: 13px;
		left: 0;
		top: 50%;
		content: '';
		background-image: url('/item/kuralove/catalog/order/images/close.png');
		background-size: contain;
		background-repeat: no-repeat;
		transform: translateY(-50%);
	}
}

#pageNumber {
    display: block;
    position: absolute;
    padding: 4px;
    font-size: 13px;
    color: #181818;
    background: rgb(255 255 255 / 0.9);
    width: 10em;
    z-index: 55;
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    margin: 5px auto;
    border-radius: 15px;
}

#searchInput {
	position: relative;
	display: block;
	width: 100%;
	padding: 10px;
	margin-top: 10px;
	margin-bottom: 10px;
	font-size: 16px;
	color: #333;
	border-radius: 4px;
	border: 1.2px solid #808080;
	box-sizing: border-box;
	background: #fafafa;
}

#searchInput::placeholder {
	color: #d9d8d9;
}

.search_box {
	position: relative;
	margin-top: 10px;
}

.search_box .icon {
	position: absolute;
	top: 50%;
	right: 12px;
	width: 18px;
	height: 18px;
	pointer-events: none;
	fill: #d9d8d9;
	transform: translateY(-50%);
}

#productList {
	height: 83%;
	padding-bottom: 30px;
	overflow-y: scroll;
}

#productList .product {
	padding: 20px 0;
	border-bottom: solid 2px #f2f2f2;
}

#productList .product:last-of-type {
	border-bottom: none;
}

#productList .product .product-main-title {
	font-size: 20px;
	font-weight: bold;
	color: #333;
}

#productList .product .product-details {
	margin-top: 5px;
	font-size: 12px;
	color: #808080;
}

#productList .product .product-details > div {
	margin-top: 5px;
}

#productList .product .product-details > div:not(:last-of-type) {
	color: #000;
}

#productList .product .product-details .product-label {
	position: relative;
	display: inline-block;
	width: 50px;
	padding-right: 20px;
}

#productList .product .product-details .product-label:not(:first-of-type) {
	margin-top: 10px;
}

#productList .product .product-details .product-label::after {
	position: absolute;
	top: 50%;
	right: 10px;
	width: 1px;
	height: 100%;
	content: "";
	background-color: #e5e5e5;
	transform: translateY(-50%);
	border-radius: 50%;
}

#productList .product .product-details .product-price-label,
#productList .product .product-details .product-price-value,
#productList .product .product-details .product-price-ext {
	display: inline-block;
	margin-top: 10px;
	font-size: 13px;
	color: #333;
}

#productList .product .product-details .product-price-value .price {
	font-size: 15px;
	font-weight: bold;
	margin-left: 8px;
}

#productList .product .product-details .product-price-ext {
	margin-left: 8px;
}

#productList .product .product-details .product-price-ext .price {
	font-size: 13px;
	font-weight: bold;
}

.quantity {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	margin-top: 10px;
	gap: 16px;
}

.quantity>p {
	font-size: 13px;
	font-weight: bold;
	color: #333;
}

.quantity .quantity-ctrl {
	display: flex;
	justify-content: center;
	align-items: center;
}

.quantity .quantity-ctrl .quantity-btn {
	position: relative;
	width: 26px;
	height: 30px;
	font-weight: bold;
	font-size: 15px;
	cursor: pointer;
	border: solid 1px #bfbfbf;
	background-color: #f2f2f2;
	
	&::after {
		position: absolute;
		left: 50%;
		top: 50%;
		content: '';
		background-size: contain;
		background-repeat: no-repeat;
		transform: translateY(-50%) translateX(-50%);
	}
}

.quantity .quantity-ctrl .quantity-btn.minus {
	&::after {
		width: 8px;
		height: 2px;
		background-image: url('/item/kuralove/catalog/order/images/minus-black.png');
	}
}

.quantity .quantity-ctrl .quantity-btn.plus {
	&::after {
		width: 8px;
		height: 8px;
		background-image: url('/item/kuralove/catalog/order/images/plus.png');
	}

	&.disable {
		pointer-events: none;
		cursor: none;
		opacity: .36;
	}
}


.quantity .quantity-ctrl .quantity-btn.minus {
	border-top-left-radius: 3px;
	border-bottom-left-radius: 3px;
	color: #707070;
	border-right: none;

	&.disable {
		cursor: none;
		pointer-events: none;
		opacity: .36;
	}
}

.quantity .quantity-ctrl .quantity-btn.plus {
	border-top-right-radius: 3px;
	border-bottom-right-radius: 3px;
	color: #990000;
	border-left: none;
}

.quantity .quantity-ctrl .quantity-input {
	width: 44px;
	height: 30px;
	padding: 0;
	box-sizing: border-box;
	border-radius: 0;
	border: solid 1px #bfbfbf;
	text-align: center;

	&.disable {
		opacity: .36;
		cursor: none;
		pointer-events: none;
	}
}

.quantity .quantity-ctrl .quantity-input:focus {
	outline: none;
	box-shadow: none;
}

.quantity .quantity-ctrl .quantity-input[value] {
	font-size: 14px;
	font-weight: bold;
}

.quantity .cart-btn {
	padding: 5px 20px;
	height: 30px;
	font-size: 13px;
	font-weight: bold;
	color: #fff;
	cursor: pointer;
	border: none;
	border-radius: 3px;
	background-color: #fd7122;
}

.quantity .cart-btn.disable {
	background-color: #bfbfbf;
	cursor: none;
	pointer-events: none;
}

#imageWrapper.grabbing {
	cursor: grabbing;
}

#spOverlay {
	display: none;
}

@media screen and (max-width: 667px) {
	.flexCont {
		display: block;
	}

	#imageWrapper {
		/* display: contents; */
	}

	#image {
		height: auto;
		margin: 0;
	}

	#image.zoom-100 {
		width: 100%;
	}

	#image.zoom-150 {
		width: 180%;
	}

	#image.zoom-200 {
		width: 300%;
	}

	#bottomMenu {
		position: fixed;
		display: flex;
		flex-direction: column;
		bottom: 0;
		left: 0;
		width: 100vw;
		padding: 10px 10px;
		box-sizing: border-box;
		z-index: 2;
	}

	.bottomMenu-inner {
		max-width: none;
	}

	#sideMenuButton {
		position: static;
		transform: none;
	}

	#sideMenu {
		height: 98%;
		overflow: hidden;
	}

	#closeMenuButton {
		position: relative;
		transform: none;
	}

	#searchInput {
		margin-top: 10px;
	}

	#productList {
		height: 80%;
	}

	.buttons {
		display: flex;
		align-items: center;
		justify-content: flex-start;
		gap: 10px;
	}

	#watchCartButton {
		padding: 5px 10px;
		max-width: 100px;
		height: 25px;
		font-size: 12px;
		border-radius: 3px;
	}

	#bottomButton {
		flex-wrap: nowrap;
		justify-content: center;
	}


	#spOverlay {
		display: none;
		position: absolute;
		top: 0;
		left: 0;
		width: 100vw;
		height: 100vh;
		cursor: pointer;
		background: rgba(0, 0, 0, .6);
		z-index: 100;
	}
	
#pageNumber {
	display: block;
	position: absolute;
	top: 0;
	right: 0;
	padding: 10px;
	font-size: 13px;
	color: #000;
	background: #fff;
	border: solid 1px #333;
	z-index: 50;
}

}


@media screen and (max-width: 430px) {
	#guideButton {
		font-size: 13px;
	}

	#sideMenuButton {
		font-size: 13px;
	}
}