/*-----------------------------------------------*/
/*-------------------- color --------------------*/
/*-----------------------------------------------*/
@site_color: #c8aa8b;
@white: #ffffff;
@black: #191919;
@l_black: #333333;
@gray: #d9d9d9;
@l_gray: #eeeeee;
@d_gray: #777777;
@dd_gray: #555555;
@red: #d85656;
@d_red: #a53a3a;
@yellow: #e5a82e;
@green: #59b559;
@d_yellow: #bb8210;
@blue: #285ec9;
@d_blue: #163b84;
@l_green: #3cad19;
/* @green:#063d1d; */
@d_green: #287528;
@violet: #8243c4;
@d_violet: #58278c;
@sky: #5ec2d2;
@brown: #926834;
@orange: #DF691E;
@pink: #fdc0c0;
@brown: #865c4a;
@thin_brown: #aa8d5e;
@site_font: 'SawarabiMincho';
@site_logo: url(/images/hp_background.webp);
@thin_black: #575757;
@thin_gray: #919191;
@base-size: 1440;
@main_font: 'SawarabiMincho';


:root {
	--ink: #26201a;
	--ink-soft: #5a5044;
	--paper: #ece3d0;
	--paper-light: #f6efe1;
	--paper-card: #f2ead9;
	--indigo: #232b38;
	--indigo-deep: #181e28;
	--indigo-line: rgba(237, 230, 215, 0.16);
	--vermillion: #a83a26;
	--vermillion-deep: #8a2f1e;
	--moss: #5c6b47;
	--brass: #a9824f;
	--line: rgba(38, 32, 26, 0.16);
	--line-soft: rgba(38, 32, 26, 0.09);
	--radius: 2px;
}




/*----------------------------------------------*/
/*-------------------- font --------------------*/
/*----------------------------------------------*/
@font-face {
	font-family: 'gilsan_light';
	src: url('/fonts/GillSansStdLight.otf');
}

@font-face {
	font-family: 'gilsan_medium';
	src: url('/fonts/GillSansStd.otf');
}

@font-face {
	font-family: 'opensans_regular';
	src: url('/fonts/OpenSans-Regular.ttf');
}

@font-face {
	font-family: 'opensans_bold';
	src: url('/fonts/OpenSans-Bold.ttf');
}

@font-face {
	font-family: 'YuGothicBold';
	src: url('/fonts/Yu Gothic Bold.otf');
}

@font-face {
	font-family: 'Akz_R';
	src: url('/fonts/Akzidenz_Grotesk_Next_Regular.otf');
}

@font-face {
	font-family: 'Akz_L';
	src: url('/fonts/Akzidenz_Grotesk_Next_Light.otf');
}

@font-face {
	font-family: 'Crim';
	src: url('/fonts/CrimsonText-Regular.ttf');
}

@font-face {
	font-family: 'Libre';
	src: url('/fonts/LibreBaskerville-Regular.ttf');
}

@font-face {
	font-family: 'Roboto';
	src: url('/fonts/Roboto-Regular.ttf');
}

@font-face {
	font-family: @site_font;
	src: url('/fonts/SawarabiMincho-Regular.ttf');
}

/*------------------------------------------------*/
/*-------------------- common --------------------*/
/*------------------------------------------------*/
html,
body {
	width: 100%;
	height: 100%;
	margin: 0 auto;
	padding: 0;
	/* font-family: @site_font; */
	font-size: 14px;
	color: @black;
	letter-spacing: 0.5px;
	touch-action: manipulation;
}

html {
	scroll-behavior: smooth;
}

body {
	display: flex;
	flex-direction: column;
	/* background-image:@site_logo;
	background-size:contain; */
}

* {
	box-sizing: border-box;
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
dl,
dt,
dd {
	margin: 0;
}

a {
	font-size: 14px;
	color: @black;
	text-decoration: none;
}

a:hover {
	text-decoration: none;
}

img {
	vertical-align: bottom;
}

ul,
{
margin: 0;
padding: 0;

li {
	list-style: none
}
}

.t_l {
	text-align: left;
}

.pc {
	display: block;
}

.table_pc {
	display: table-cell;
}

.sp {
	display: none !important;
}

.v_t {
	align-items: flex-start !important;
}

.sp1000 {
	display: block;
}

.error {
	background-color: @pink !important;
	color: #000 !important;
}

.text-center {
	input {
		height: 35px !important;
		width: 170px !important;
	}

	input[type="button"].error {
		background-image: unset !important;
		border: 1px solid @pink !important;
	}
}

.right {
	text-align: right;
}

table {
	td {
		word-break: break-all;
	}
}

a,
button,
select {
	cursor: pointer;
}

address,
input {
	/* font-family: @site_font; */
}

input,
textarea,
select {
	/* background:@white !important; */
}

input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

input:focus,
textarea:focus,
select:focus {
	outline: none;
}

input[type="number"] {
	-moz-appearance: textfield;
}


.thin_brown {
	background-color: @thin_brown;
}

.thin_black {
	background-color: @thin_black;
}

.red {
	background-color: @red;
}

.t_red {
	color: @red;
}


button.green {
	background-color: @green;
	color: @white;
}

button.thin_gray {
	background-color: @thin_gray;
	color: @white;
}

button.red {
	background-color: @red;
	color: @white;
}

button.color_none {
	background-color: unset;
}

button.black {
	background-color: @l_black;
}


.req_label {
	background: #a94a3a;
	color: #fff;
	font-size: 9px;
	padding: 2px 6px;
	letter-spacing: .05em;
	vertical-align: middle;
	line-height: 16px;
}

.any_label {
	border: 1px solid #2a2927;
	color: #FFF;
	font-size: 9px;
	padding: 1px 6px;
	letter-spacing: .05em;
	background: #2a2927;
	vertical-align: middle;
	line-height: 16px;
}

/*------------------------------------------------*/
/*-------------------- HEADER --------------------*/
/*------------------------------------------------*/
header {
	width: 100%;
	transition: 0.3s;
	/* background: #f7f2e6; */
	background: @white;
	height: 70px;
	position: fixed;
	z-index: 999;
	top: 0;
	left: 0;
	right: 0;
	border-bottom: 1px solid #d8cbaa;
}

.header_container {
	position: relative;
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 15px;
	box-sizing: border-box;
	/* background: #f7f2e6; */
	background: @white;
	z-index: 3;
	height: 100%;

	h1 {
		max-width: 135px;
		;
		font-size: 30px;
		z-index: 2;

		a {
			display: flex;
			align-items: center;
		}

		img {
			width: 100%;
		}
	}

	.hamburger_btn {
		position: relative;
		width: 35px;
		height: 35px;
		cursor: pointer;

		svg {
			width: 45px;
			height: 45px;
		}


		span {
			position: absolute;
			left: 0;
			width: 34px;
			height: 2px;
			background-color: @black;
			box-sizing: border-box;
		}

		.top {
			top: 10px;
		}

		.middle {
			top: 21px;
		}

		.bottom {
			top: 31px;
		}
	}
}





/*------------------------------------------------*/
/*-------------------- FOOTER --------------------*/
/*------------------------------------------------*/
footer {
	/* background: #2e2119; */
	background: @white;
	border-top: 1px solid @gray;
	width: 100%;
	color: #191919;
	/* color: #9b917b; */
	padding: 20px;
	/* color: @black; */
	/* margin-top:100px; */

	.footer_contens {
		margin: 0 auto;
		max-width: 1200px;
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		justify-items: stretch;

		>ul {
			display: flex;
			gap: 20px;
			justify-content: flex-end;

			li {
				a {
					font-size: 13px;
					/* color: #9b917b; */
					color: #191919;
				}
			}
		}

		address {
			ul {
				display: flex;
				gap: 10px;
				flex-direction: column;

				li.footer_title {
					font-size: 18px;

					a {
						width: 30%;
						display: block;

						img {
							width: 100%;
						}
					}
				}

				li a {
					/* color: #9b917b; */
					color: #191919;
				}
			}
		}
	}

	small {
		display: block;
		text-align: right;
		grid-column: ~"2/3";
		grid-row: ~"2/3";
		color: #191919;
	}

	address {
		ul {
			display: flex;
			gap: 30px;
		}
	}
}



/*---------- loading ----------*/
.loading {
	display: none;
}

.loading.active {
	display: block;
	position: fixed;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	background: rgba(0, 0, 0, 0.5);
	z-index: 999;

	span {
		position: absolute;
		top: 50%;
		transform: translateY(-50%);
		width: 100%;
		text-align: center;

		i {
			font-size: 50px;
			color: @white;
		}
	}
}

.err_msg {
	margin-bottom: 30px;
	padding: 10px 5px;
	font-size: 14px;
	color: @white;
	background-color: @red;
	border: 1px solid @d_red;
}


/*-----alert-----*/
.alertify-cover {
	background-color: #281f1e !important;
	opacity: 0.5 !important;
}

.alertify {
	top: 10% !important;
	border: 5px solid #2e2119 !important;
	border-radius: 3px !important;
}

.alertify-logs {
	font-size: 12px;
	/* bottom: 10px !important; */
	top: 10px !important;
	right: 10px !important;
	left: unset !important;
	width: 30% !important;
	min-width: 200px !important;
}

.alertify-inner p {
	display: table;
	margin: 0 auto 15px;
	text-align: left;
	line-height: 24px;
	font-size: 18px;
}

.alertify-button-cancel,
.alertify-button-cancel:hover,
.alertify-button-cancel:focus {
	background-color: #ca1b1e !important;
}

.alertify-button {
	background-image: none !important;
	border: none !important;
	border-radius: 0 !important;
	text-shadow: none !important;
	box-shadow: none !important;
}


/*-------------------------------------------------*/
/*-------------------- TOPPAGE --------------------*/
/*-------------------------------------------------*/
main {
	flex: 1;
	width: 100%;
	/* max-width:1200px; */
	margin: 70px auto 0;
	text-align: center;
	/* background-image: url(/images/hp_background.webp); */
	background-size: contain;
	/* padding: 0 0 80px 0; */
	/* background-color:@white; */
	background: @white url(/images/hp_background.webp) repeat center / contain;
	/* background-color: #ece3d0; */


	&.is-top {
		background-color: @white;
	}
}

.top_mv {
	background: @white;
	padding: 70px 0;

	.slider img {
		height: 200px;
		object-fit: contain;
	}
}

.top_item_contents {
	padding: 0 20px;

	p {
		font-size: 20px;
		/* font-family: "Shippori Mincho B1", serif; */
		font-family: @main_font;
		font-weight: 500;
		padding: 0 20px;
		line-height: 30px;
		letter-spacing: 0;
		margin-top: 50px;
	}
}

.top_item_contents__detail {
	margin-bottom: 50px;
	color: #595656;

	a {
		display: block;
		max-width: 300px;
		margin: 20px auto 0;
		padding: 8px 10px;
		border-radius: 14px;
		border: 2px solid #76726f;
		font-size: 21px;
		/* font-family: "Shippori Mincho B1", serif; */
		font-family: @main_font;
		color: #595656;
	}

	.sample_btn {
		background: #e8ddcf;
	}

	.order_btn {
		background: #eeefef;
	}

	&:last-child {
		margin-bottom: 100px;
	}
}

.heading {
	margin-bottom: 60px;

	h2 {
		font-size: 28px;
		font-weight: 500;
		/* font-family: "Shippori Mincho B1", serif; */
		font-family: @main_font;
		position: relative;
		padding-bottom: 18px;
		margin: 0 auto 22px;
		letter-spacing: 1.9px;

		&::before {
			content: '';
			position: absolute;
			width: 5%;
			background: #a9824f;
			height: 2px;
			bottom: 0;
			left: 50%;
			transform: translateX(-50%);
		}

		span {
			font-family: "JetBrains Mono", monospace;
			font-size: 12px;
			letter-spacing: .22em;
			color: #a83a26;
			text-transform: uppercase;
			margin-bottom: 14px;
			display: block;
		}
	}

	p {
		line-height: 25px;
		font-size: 14px;
	}

	&.heading__order_page {
		margin-bottom: 30px;

		h2 {
			letter-spacing: 0;
			font-size: 23px;
		}
	}
}


.quantity_contents {
	padding: 110px 20px;
	max-width: calc(1200 / @base-size * 100vw);
	margin: 0 auto;

	.quantity_contents__selectqty {
		max-width: 500px;
		margin: 0 auto;

		.box {
			width: 100%;
			display: inline-flex;
			align-items: center;
			gap: 14px;
			background: #f7f2e6;
			border: 1px solid #d8cbaa;
			padding: 20px;
			justify-content: center;

			.box__text {
				font-size: 12px;
				letter-spacing: .05em;
			}

			.box__selectbox {
				position: relative;

				select {
					appearance: none;
					-webkit-appearance: none;
					background: #fff;
					border: 1px solid #a83a26;
					color: #3a332a;
					font-size: 15px;
					padding: 11px 40px 11px 16px;
					min-width: 140px;
				}
			}

			.box__select_arrow {
				position: absolute;
				right: 14px;
				top: 50%;
				transform: translateY(-50%);
				color: #a83a26;
				font-size: 11px;
				pointer-events: none;
			}

			.box__note {
				font-size: 11px;
				color: #a83a26;
			}
		}
	}

	>p {
		margin-top: 20px;
		line-height: 25px;
		font-size: 17px;
	}
}

.selected_items_contents {
	padding: 0 20px;

	.badge {
		font-size: 18px;
	}

	.selected_items_contents__list {
		margin-top: 15px;
		display: flex;
		flex-direction: column;
		gap: 8px;

		.selected_items_contents__link {
			.name {
				text-decoration-line: underline;
			}
		}
	}
}

.top_products {
	padding: 0 20px 90px;
	max-width: calc(1200 / @base-size * 100vw);
	margin: 0 auto;

	&.contents_adjust {
		margin-top: 110px;
	}

	&.top_products__sample {
		>h2 {
			font-size: 25px;
			font-family: @main_font;
			margin-bottom: 25px;
		}
	}

	.top_products__list {
		>p {
			text-align: left;
			margin-bottom: 10px;

			strong {
				font-size: 16px;
				color: #d85656;
				font-weight: 600;

			}
		}


		ul {
			display: grid;
			grid-template-columns: repeat(2, 1fr);
			gap: 1px;
			background: #d8cbaa;
			border: 1px solid #d8cbaa;

			li {
				/* background: #f1ede6; */
				background: @white;

				.top_products__item {
					/* padding: 30px 24px 26px; */
					padding: calc(30 / @base-size * 100vw) calc(24 / @base-size * 100vw) calc(26 / @base-size * 100vw);
					display: flex;
					flex-direction: column;
					align-items: center;
					text-align: center;
					transition: background .18s;
					justify-content: space-between;
					height: 100%;



					.top_products__head {
						display: grid;
						grid-template-columns: 1fr 1fr;
						align-items: start;
						gap: 15px;

						.top_products__head__left {
							display: flex;
							flex-direction: column;
							align-items: center;
							height: 100%;
							justify-content: center;

							h3 {
								margin: 0 0 calc(10 / @base-size * 100vw);
								font-family: @main_font;
								font-size: calc(18 / @base-size * 100vw);
								font-weight: 500;
								width: 100%;
							}

							.top_products__image {
								width: calc(180 / @base-size * 100vw);
								height: calc(180 / @base-size * 100vw);
								margin-bottom: calc(18 / @base-size * 100vw);

								img {
									width: 100%;
									height: 100%;


								}
							}
						}
					}



					.detail {
						text-align: left;
						font-size: calc(12 / @base-size * 100vw);
						color: #434343;

						p,
						span {
							font-size: calc(12 / @base-size * 100vw) !important;
						}
					}
				}

				&:hover {
					img {
						transition: transform .2s;
						transform: scale(1.05);
					}

				}
			}
		}
	}
}



/*カウンター*/
.stepper_contents {
	display: flex;
	align-items: center;
	margin-top: 30px;
	gap: 15px;

	.stepper {
		display: flex;
		align-items: center;
		gap: 0;
		border: 1px solid #d8cbaa;

		button {
			width: 30px;
			height: 30px;
			border: none;
			/* background: var(--paper-light); */
			background: @white;
			color: var(--ink);
			font-size: 15px;
			cursor: pointer;
			font-family: "JetBrains Mono", monospace;
			transition: background .12s;
			display: flex;
			align-items: center;
			justify-content: center;

			i {
				font-size: 11px;
				color: #434343;
			}
		}

		input {
			width: 44px;
			height: 30px;
			display: flex;
			align-items: center;
			justify-content: center;
			font-family: "JetBrains Mono", monospace;
			font-size: 13px;
			/* background: var(--paper-light); */
			background: @white;
			border-left: 1px solid #d8cbaa;
			border-right: 1px solid #d8cbaa;
			border-top: none;
			border-bottom: none;
			text-align: center;
		}
	}

	span {
		font-size: 14px;
	}
}



.order_bar {
	bottom: 0;
	z-index: 30;
	/* background:#181e28; */
	background: #2e2119;
	color: var(--paper-light, #f6efe1);
	border-top: 1px solid var(--indigo-line, rgba(237, 230, 215, 0.16));
	animation: order-bar-pop 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}

@keyframes order-bar-pop {
	0% {
		transform: translateY(120%);
	}

	45% {
		transform: translateY(-14%);
	}

	65% {
		transform: translateY(6%);
	}

	80% {
		transform: translateY(-3%);
	}

	92% {
		transform: translateY(1.5%);
	}

	100% {
		transform: translateY(0%);
	}
}


.order_bar.show {
	position: sticky;
	transform: translateY(0);
}

.order_bar.show {
	position: sticky;
	transform: translateY(0);
}

.order-bar-inner {
	max-width: 1240px;
	margin: 0 auto;
	background: #2e2119;
	padding: 20px 32px;
	font-family: 'Noto Sans JP', sans-serif;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;

	.order_hint {
		color: @white;
	}

	.order_bar__right {
		display: flex;
		/* align-items: center; */
		align-items: stretch;
		gap: 25px;
		justify-content: flex-end;
		flex: 1;

		.order_bar__right_detail {
			display: flex;
			align-items: center;
			gap: 14px;
			background: rgba(255, 255, 255, 0.05);
			border: 1px solid rgba(255, 255, 255, 0.12);
			padding: 9px 18px;

			.lbl {
				font-size: 10.5px;
				letter-spacing: .14em;
				color: @white;
				text-transform: uppercase;
			}

			.val {
				font-size: 18px;
				color: @white;

				span {
					font-size: 12px;
					color: @white;
				}
			}

			.order_bar__symbol {
				color: #5c5346;
				font-size: 14px;
			}

			.order_bar__selectbox {
				position: relative;
				display: inline-flex;
				align-items: center;

				select {
					appearance: none;
					-webkit-appearance: none;
					background: transparent;
					border: none;
					color: @white;
					border-bottom: 1px solid #a83a26;
					font-size: 18px;
					padding: 5px 15px;
					cursor: pointer;

					option {
						color: @black;
					}
				}

				.select_arrow {
					position: absolute;
					right: 2px;
					color: #a94a3a;
					font-size: 22px;
					pointer-events: none;
				}

				.item_qty_text {
					font-size: 18px;
					color: @white;
				}
			}
		}

		a {
			/* display: none; */
			/* display: inline-flex; */
			align-items: center;
			gap: 8px;
			background: #a94a3a;
			color: #f7f2e6;
			font-size: 11px;
			letter-spacing: .04em;
			padding: 11px 22px;
			text-decoration: none;
			/* white-space: nowrap; */
		}
	}
}

#order {
	/*スクロール停まる位置調整用css*/
	scroll-margin-top: 100px;
}

/*注文入力フォーム*/
.order_contents {
	margin: 50px 0 90px;
	/* margin-bottom: 90px; */
	padding: 0 20px;
}

.order_contents__form {
	max-width: 800px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: 15px;

	textarea,
	input {
		width: 100%;
		border: 1px solid #d8cbaa;
		padding: 13px 14px;
		font-size: 14px;
		background: #f6efe1;

		&:focus {
			background: @white;
		}
	}

	textarea {
		resize: vertical;
	}

	/* input {
		padding: 5px 10px;
		
	} */

	>dl {
		display: flex;
		flex-direction: column;
		gap: 5px;

		dt {
			text-align: left;
		}
	}
}

.form_row__2col {
	display: flex;
	gap: 20px;

	dl {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 5px;
		flex: 1;

		dd {
			width: 100%;


		}
	}
}

.form_row__2col--unequal.w-20per {
	width: 20%;
	flex: unset;
}

.order_contents__button {
	width: 100%;
	text-align: center;
	max-width: 300px;
	margin: 0 auto;

	button {
		width: 100%;
		background: #a83a26;
		padding: 14px 34px;
		color: #FFF;
		border: 1px solid #a83a26;
		font-weight: 500;
		font-size: 16px;
		letter-spacing: 1.12px;

		&:hover {
			opacity: 0.8;
		}
	}

	.post:disabled {
		background: #2e2119 !important;
		border-color: #2e2119 !important;
	}
}

.contents_hide {
	display: none;
}

/*メールバナー*/
.mail_banner {
	/* background: #ece3d0; */
	background: #ece3d0 url(/images/hp_background.webp) repeat center / contain;
	padding: 70px 40px;
}

.mail_banner__card {
	max-width: 800px;
	margin: 0 auto;
	background: #f7f2e6;
	border: 1px solid #d8cbaa;
	padding: 46px 50px;
	text-align: center;
}

.mail_banner__title {
	font-family: "JetBrains Mono", monospace;
	font-size: 12px;
	letter-spacing: .22em;
	color: #a83a26;
	margin-bottom: 14px;
}

.mail_banner__text {
	font-size: 15px;
	line-height: 25px;
	color: #3a332a;
	margin: 0 0 26px;
}

.mail_banner__cta {
	display: inline-block;
	background: #a83a26;
	color: #f7f2e6;
	font-size: 14px;
	letter-spacing: .03em;
	padding: 14px 34px;
	text-decoration: none;
	transition: background .15s;
}


/*----------- サブページ ---------------*/
.thanks_contents {
	a {
		background: #a83a26;
		color: #f7f2e6;
		font-size: 14px;
		letter-spacing: .03em;
		padding: 14px 34px;
		text-decoration: none;
		transition: background .15s;
		border: none;
	}
}

/*同意*/
.order_contents__agree {
	display: flex;
	justify-content: center;
	margin: 28px 0 20px;
}

.agree_check {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	cursor: pointer;
	user-select: none;
}

.agree_check input[type="checkbox"] {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
}

.agree_check__box {
	width: 20px;
	height: 20px;
	border: 1px solid #a83a26;
	background: #f7f2e6;
	flex-shrink: 0;
	position: relative;
	transition: background .15s;
}

.agree_check input:checked+.agree_check__box {
	background: #a83a26;
}

.agree_check input:checked+.agree_check__box::after {
	content: "";
	position: absolute;
	left: 6px;
	top: 2px;
	width: 5px;
	height: 10px;
	border: solid #f7f2e6;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}

.agree_check__text {
	font-size: 13px;
	color: #3a332a;
}

.agree_check__text a {
	color: #a83a26;
	text-decoration: underline;
}

.agree_check__text a:hover {
	text-decoration: none;
}

.order_contents__button .post:disabled {
	background: #cbbfa4;
	border-color: #cbbfa4;
	cursor: not-allowed;
	opacity: .8;
}