:root {
	--oc-link-color: #0d6efd;
	--oc-primary-color: #233b68;
	
	--oc-btn-primary-color: #233b68;
	--oc-btn-alt-color: #233b68;

	--oc-blog-heading-mt: 1.9rem;
	--oc-blog-heading-mb: 1.625rem;
	--oc-blog-heading-pt: 1.625rem;
	--oc-blog-font-size: calc(1rem + .069vw);
	--oc-blog-heading1-fs: calc(1.6rem + .069vw);
	--oc-blog-heading2-fs: calc(1.5rem + .069vw);
	--oc-blog-heading3-fs: calc(1.35rem + .069vw);
	--oc-blog-line-height: 1.625rem;
}

/*
 * FONTS
 */

.font-zenkakugothicnew {
	font-family: 'Zen_Kaku_Gothic_New';
}
@font-face {
	font-family: 'Zen_Kaku_Gothic_New';
	font-weight: 300;
	font-style: normal;
	font-display: swap;
	src: url("../fonts/Zen_Kaku_Gothic_New/ZenKakuGothicNew-Light.woff2") format("woff2"),
	     url("../fonts/Zen_Kaku_Gothic_New/ZenKakuGothicNew-Light.woff") format("woff");
}
 
@font-face {
	font-family: 'Zen_Kaku_Gothic_New';
	font-weight: 400;
	font-style: normal;
	font-display: swap;
	src: url("../fonts/Zen_Kaku_Gothic_New/ZenKakuGothicNew-Regular.woff2") format("woff2"),
	     url("../fonts/Zen_Kaku_Gothic_New/ZenKakuGothicNew-Regular.woff") format("woff");
}
@font-face {
	font-family: 'Zen_Kaku_Gothic_New';
	font-weight: 500;
	font-style: normal;
	font-display: swap;
	src: url("../fonts/Zen_Kaku_Gothic_New/ZenKakuGothicNew-Medium.woff2") format("woff2"),
	     url("../fonts/Zen_Kaku_Gothic_New/ZenKakuGothicNew-Medium.woff") format("woff");
}
@font-face {
	font-family: 'Zen_Kaku_Gothic_New';
	font-weight: 700;
	font-style: normal;
	font-display: swap;
	src: url("../fonts/Zen_Kaku_Gothic_New/ZenKakuGothicNew-Bold.woff2") format("woff2"),
	     url("../fonts/Zen_Kaku_Gothic_New/ZenKakuGothicNew-Bold.woff") format("woff");
}


.font-notosansjp{
    font-family: 'NotoSansJP', sans-serif;
}
 
@font-face {
	font-family: 'NotoSansJP';
	font-weight: 200;
	font-style: normal;
	font-display: swap;
	font-optical-sizing: auto;
	src: url("../fonts/notosansjp/NotoSansJP-Light.woff2") format("woff2"),
	     url("../fonts/notosansjp/NotoSansJP-Light.woff") format("woff");
}
 
@font-face {
	font-family: 'NotoSansJP';
	font-weight: 300;
	font-style: normal;
	font-display: swap;
	font-optical-sizing: auto;
	src: url("../fonts/notosansjp/NotoSansJP-Light.woff2") format("woff2"),
	     url("../fonts/notosansjp/NotoSansJP-Light.woff") format("woff");
}
 
@font-face {
	font-family: 'NotoSansJP';
	font-weight: 400;
	font-style: normal;
	font-display: swap;
	font-optical-sizing: auto;
	src: url("../fonts/notosansjp/NotoSansJP-Regular.woff2") format("woff2"),
	     url("../fonts/notosansjp/NotoSansJP-Regular.woff") format("woff");
}
 
@font-face {
	font-family: 'NotoSansJP';
	font-weight: 500;
	font-style: normal;
	font-display: swap;
	font-optical-sizing: auto;
	src: url("../fonts/notosansjp/NotoSansJP-Medium.woff2") format("woff2"),
	     url("../fonts/notosansjp/NotoSansJP-Medium.woff") format("woff");
}
 
@font-face {
	font-family: 'NotoSansJP';
	font-weight: 600;
	font-style: normal;
	font-display: swap;
	font-optical-sizing: auto;
	src: url("../fonts/notosansjp/NotoSansJP-SemiBold.woff2") format("woff2"),
	     url("../fonts/notosansjp/NotoSansJP-SemiBold.woff") format("woff");
}
 
@font-face {
	font-family: 'NotoSansJP';
	font-weight: 700;
	font-style: normal;
	font-display: swap;
	font-optical-sizing: auto;
	src: url("../fonts/notosansjp/NotoSansJP-Bold.woff2") format("woff2"),
	     url("../fonts/notosansjp/NotoSansJP-Bold.woff") format("woff");
}
 
@font-face {
	font-family: 'NotoSansJP';
	font-weight: 800;
	font-style: normal;
	font-display: swap;
	font-optical-sizing: auto;
	src: url("../fonts/notosansjp/NotoSansJP-ExtraBold.woff2") format("woff2"),
	     url("../fonts/notosansjp/NotoSansJP-ExtraBold.woff") format("woff");
}
 
@font-face {
	font-family: 'NotoSansJP';
	font-weight: 900;
	font-style: normal;
	font-display: swap;
	font-optical-sizing: auto;
	src: url("../fonts/notosansjp/NotoSansJP-Black.woff2") format("woff2"),
	     url("../fonts/notosansjp/NotoSansJP-Black.woff") format("woff");
}

/*
 * HTML
 */

body {
	font-size: 16px;
	line-height: 1.8;
}
body.locked {
	overflow: hidden;
}


/*
 * COMMON
 */

.text-primary-color{
	color: var(--oc-primary-color);
}
.clear-fix { clear: both; }

a {
	text-decoration: none;
	color: var(--oc-link-color);;
}
a:hover {
	text-decoration: none;
}
img {
	max-width: 100%;
}

.bg-image {
	z-index: 0;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}
.text-bg-top {
	z-index: 0;
	height: 200px;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
}
.text-bg-top .caption {
}
.text-bg-top .caption h1,
.text-bg-top .caption h2 {
	color: #fff;
	font-size: 2rem;
	font-weight: bold;
	text-align: center;
}

.content-none {
    text-align: center;
    font-size: 20px;
    padding: 80px 10px;
}
.content-none .error-number {
    font-size: 70px;
}
.content-none .content-none-btn {
    margin: 20px auto;
    text-align: center;
}

/* OC Button Style */
.site-btn {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 375px;
    height: 73px;
    max-width: 90%;
    border: 1px solid #fff;
    color: #fff;
    background-color: transparent;
    transition: all 0.5s;
}
.site-btn {
    color: var(--oc-primary-color);
    border-color: var(--oc-primary-color);
}

/* END - OC Button Style */

/* OC Modal Style */
.modal-design {
	height: 80vh;
	overflow: scroll;
	margin: 15% 0 10% 0;
	border-radius: unset;
} 
.modal-dialog{
	max-width: 800px;
	padding: 1rem;
}

@media (min-width: 576px){
	.modal-dialog {
		max-width: 500px;
		margin: 1.75rem auto;
	}
}

.close-btn {
	position: fixed;
	right: 0x;
	top: 25px;
}
.modal-side-margin {
	margin: 0;
}

.modal-body-design {
	padding: 0;
}

.round_btn {
	display: block;
	width: 45px;
	height: 45px;
	border: 2px solid #AA8400; /* 枠の調整 */
	border-radius: 50%;  /* 丸みの度合い */
	background: #fff; /* ボタンの背景色 */
}

.round_btn::before, .round_btn::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 3px; /* 棒の幅（太さ） */
	height: 22px; /* 棒の高さ */
	background: #AA8400; /* バツ印の色 */
}

.round_btn::before {
	transform: translate(-50%,-50%) rotate(45deg);
}

.round_btn::after {
	transform: translate(-50%,-50%) rotate(-45deg);
}

/* END - OC Modal Style */


/*
 * SITE STYLES
 */

.dt-only {
}
.mb-only {
	display: none;
}

.site-section {
}
.site-container {
	width: 100%;
	margin: 0 auto;
	max-width: 1440px;
}
.site-container.grey-background {
	background-color: #f6f6f8;
}

.red-checkbox-wrap {
	overflow: hidden;
	position: relative;
}
.red-checkbox-wrap.mgn-btm-15 {
	margin-bottom: 15px;
}
.red-checkbox {
	left: -40px;
	position: absolute;
}
.red-checkbox ~ .red-checkbox-label {
	margin: 0;
	display: flex;
	column-gap: 5px;
	align-items: center;
	color: #1c1a1b;
	font-size: 15px;
	font-weight: 500;
	line-height: 22px;
	letter-spacing: 0.08em;
	user-select: none;
	cursor: pointer;
	font-family: 'Zen_Kaku_Gothic_New';
}
.red-checkbox ~ .red-checkbox-label:before {
	content: "";
	width: 20px;
	height: 20px;
	display: block;
	margin-top: 3px;
	background-size: contain;
	background-repeat: no-repeat;
	background-image: url('../img/checkbox-unchecked.svg');
}
.red-checkbox:checked ~ .red-checkbox-label:before {
	background-image: url('../img/checkbox-checked.svg');
}

.site-mobile-slideout {
	display: none;
}


/*
 * HEADER
 */

.site-header {
	height: 78px;
	width: 100%;
	margin: 0 auto;
	max-width: 1440px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	background-color: #000;
	padding: 9px 30px 9px 9px;
}
.header-spacer {
	height: 0;
}
.site-header .header-logo {
	height: 60px;
}
.site-header .header-menu-container {
	flex: 1 0 1px;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	padding-right: 30px;
}
.site-header .header-menu {
	height: 100%;
	display: inline-flex;
	align-items: center;
	margin: 0 0 0 20px;
	list-style: none;
	padding: 0;
}
.header-menu .menu-item {
	height: 50px;
	position: relative;
}
.header-menu .menu-item.current-menu-item:after {
	content: "";
	left: 0;
	right: 0;
	height: 5px;
	bottom: -14px;
	position: absolute;
	background-color: #e43321;
}
.header-menu .menu-item:not(.current-menu-item):hover:after {
	content: "";
	left: 0;
	right: 0;
	height: 5px;
	bottom: -14px;
	position: absolute;
	background-color: #787878;
}
.header-menu .menu-item a {
	height: 100%;
	display: block;
	color: #fff;
	font-size: 18px;
	font-size: 14px;
	font-weight: 500;
	line-height: 17px;
	letter-spacing: 0.1em;
	padding: 17px 10px;
	font-family: 'Noto Sans JP';
}
.header-controls {
	display: flex;
	column-gap: 20px;
	align-items: center;
}
.site-mobile-slideout .header-controls-button {
	margin: 1.5rem 0;
}
.header-controls-button {
	height: 36px;
	display: flex;
	column-gap: 5px;
	align-items: center;
	justify-content: center;
	background-color: #fff;
	border-radius: 20px;
	padding: 0 20px;
	outline: none;
}
.header-controls-button.logout {
}
.header-controls-button-icon {
	width: 15px;
	display: block
}
.header-controls-button-label {
	color: #1c1a1b;
	font-style: normal;
	font-weight: 700;
	font-size: 13px;
	line-height: 16px;
	letter-spacing: 0.05em;
	font-family: 'Noto Sans JP';
}
.header-controls-button.reservations {
	background-color: #e43321;
}
.header-controls-button.print-page .header-controls-button-icon {
	width: 17px;
}
.header-controls-button.reservations .header-controls-button-icon {
	width: 13px;
}
.header-controls-button.reservations .header-controls-button-label {
	color: #fff;
}

.header-burger-container {
	display: none;
}


/*
 * FOOTER
 */

.site-footer {
	height: 100px;
	width: 100%;
	margin: 0 auto;
	max-width: 1440px;
	background-color: #f6f6f8;
	padding-top: 60px;
}
.site-footer .footer-copyright {
	color: #9a9ba5;
	font-style: normal;
	font-weight: 500;
	font-size: 12px;
	line-height: 17px;
	text-align: center;
	letter-spacing: 0.08em;
	font-family: 'Zen_Kaku_Gothic_New';
}


/*
 * RESERVATION PAGE
 */

.menu-item-templates {
	display: none;
}

.site-section.reservation-section {
}

.reservation-heading-title {
	color: #1c1a1b;
	font-style: normal;
	font-size: 28px;
	font-weight: 700;
	line-height: 41px;
	text-align: center;
	margin: 50px 0;
	font-family: 'Zen_Kaku_Gothic_New';
}

.reservation-heading-tabs-wrap {
	width: 100%;
	margin: 0 auto;
	max-width: 960px;
}
.reservation-heading-tabs {
	position: relative;
	display: flex;
	column-gap: 20px;
	align-items: flex-end;
	justify-content: space-between;
	list-style: none;
	padding: 0;
	margin: 0;
}

/* Reservation status stamp overlay */
.reservation-card .card-status-stamp {
	position: absolute;
	right: 12px;
	top: 50%;
	transform: translateY(-50%);
	font-weight: 700;
	line-height: 1;
	pointer-events: none;
	user-select: none;
	font-family: 'Zen_Kaku_Gothic_New', sans-serif;
	opacity: 0.14;
	color: #d32f2f; /* default reddish */
	z-index: 1;
}
.reservation-card .card-status-stamp.status-default { font-size: 120px; color: #d32f2f; }
.reservation-card .card-status-stamp.status-confirmed { font-size: 120px; color: #2e7d32; }
.reservation-card .card-status-stamp.status-canceled { font-size: 60px; color: #616161; }
.reservation-card .card-status-stamp.status-rejected { font-size: 60px; color: #d84315; }

/* Ensure card content sits above background but below the stamp is fine due to opacity */
.reservation-card .reservation-card-content { position: relative; z-index: 2; }
.reservation-heading-tabs:after {
	content: "";
	left: 0;
	right: 0;
	bottom: 0;
	height: 5px;
	position: absolute;
	background-color: #e0e0e0;
}
.reservation-heading-tab {
	z-index: 1;
	position: relative;
	display: flex;
	row-gap: 0;
	flex-direction: column;
	align-items: flex-start;
	padding-top: 5px;
	padding-right: 30px;
	padding-bottom: 15px;
	cursor: pointer;
	border-top: 1px solid transparent;
	border-bottom: 5px solid transparent;
}
.reservation-heading-tab.failed-validation:before {
	content: "";
	width: 13px;
	height: 13px;
	top: 7px;
	left: 21px;
	position: absolute;
	border-radius: 50%;
	background-color: #fff;
	background-size: contain;
	background-repeat: no-repeat;
	background-image: url('../img/ico-required-msg.svg');
}
.reservation-tab-number,
.reservation-tab-label {
	color: #9a9ba5;
	font-size: 12px;
	font-weight: 500;
	line-height: 17px;
	letter-spacing: 0.08em;
	font-family: 'Zen_Kaku_Gothic_New';
}
.reservation-tab-number-image {
	display: none;
}
.reservation-tab-titles {
	line-height: 17px;
}
.reservation-tab-title {
	display: none;
}

.reservation-heading-tab.active-tab {
	border-bottom: 5px solid #1c1a1b;
}
.reservation-heading-tab.active-tab .reservation-tab-number,
.reservation-heading-tab.active-tab .reservation-tab-label {
	color: #1c1a1b;
}
.reservation-heading-tab:hover .reservation-tab-number,
.reservation-heading-tab:hover .reservation-tab-label {
	color: #1c1a1b;
}
.reservation-heading-tab.failed-validation .reservation-tab-number {
	color: #e43321 ! important;
}

.reservation-content {
	margin: 0 auto;
	max-width: 960px;
	width: calc(100% - 40px);
}
.reservation-slider {
	overflow: hidden;
	transition: height 0.25s ease;
}

/* Hide receipt request checkbox group when bank transfer is selected */
.reservation-input-group.hide-need-receipt {
	display: none;
}
.reservation-slider-rail {
	width: 600%;
	display: flex;
	column-gap: 0;
	align-items: flex-start;
	transition: transform 0.3s;
}
.reservation-slider-rail.slide-1 {
	transform: translateX(0);
}
.reservation-slider-rail.slide-2 {
	transform: translateX(calc(-1.0 * (100% / 6)));
}
.reservation-slider-rail.slide-3 {
	transform: translateX(calc(-2.0 * (100% / 6)));
}
.reservation-slider-rail.slide-4 {
	transform: translateX(calc(-3.0 * (100% / 6)));
}
.reservation-slider-rail.slide-5 {
	transform: translateX(calc(-4.0 * (100% / 6)));
}
.reservation-slider-rail.slide-6 {
	transform: translateX(calc(-5.0 * (100% / 6)));
}
.reservation-slide {
	width: calc(100% / 6);
	padding: 80px;
	background-color: #fff;
}
.reservation-slide.slide-one {
}
.reservation-slide-title {
	color: #1c1a1b;
	font-size: 24px;
	font-weight: 700;
	line-height: 35px;
	text-align: center;
	letter-spacing: 0.08em;
	margin-bottom: 25px;
}
.reservation-slide-subtitle {
	color: #1c1a1b;
	font-size: 15px;
	font-weight: 400;
	line-height: 27px;
	text-align: center;
	letter-spacing: 0.08em;
	margin-bottom: 25px;
}
.reservation-slide-text {
	color: #1c1a1b;
	font-size: 15px;
	font-weight: 400;
	line-height: 27px;
	text-align: center;
	letter-spacing: 0.08em;
	font-family: 'Zen_Kaku_Gothic_New';
	margin-bottom: 0;
}
.reservation-slide-smalltext {
	color: #1c1a1b;
	font-size: 12px;
	font-weight: 400;
	line-height: 22px;
	text-align: center;
	letter-spacing: 0.08em;
	margin-bottom: 60px;
}
.reservation-slide-smalltext .red-text {
	color: #e43321;
}
.reservation-datetime-inputs {
	display: flex;
	align-items: flex-start;
	column-gap: 15px;
	margin-bottom: 60px;
}
.reservation-time-picker-wrap,
.reservation-date-picker-wrap {
	flex: 0 0 calc((100% - 66px) / 3);
	position: relative;
}
.reservation-date-picker-wrap.requires-value .reservation-date-picker,
.reservation-time-picker-wrap.requires-value .reservation-time-picker {
	border-color: #e43321;
	background-color: #fff2f0;
}
.reservation-date-picker-icon {
	position: absolute;
	display: block;
	top: 18px;
	left: 25px;
	width: 17px;
	pointer-events: none;
}
.reservation-date-picker {
	width: 100%;
	height: 54px;
	display: block;
	color: #1c1a1b;
	font-size: 22px;
	font-weight: 500;
	line-height: 37px;
	padding-left: 52px;
	border-radius: 3px;
	background-color: #f8f8f8;
	border: 1px solid #e0e0e0;
	font-family: 'Zen_Kaku_Gothic_New';
}
.reservation-date-picker:placeholder {
	color: #9a9ba5;
}
.reservation-datetime-divide {
	flex: 0 0 21px;
	margin: 13px 0 0 0;
	color: #c9cacf;
	font-size: 18px;
	font-weight: 500;
	line-height: 26px;
	letter-spacing: 0.08em;
	font-family: 'Zen_Kaku_Gothic_New';
}
.reservation-time-picker-arrow {
	top: 24px;
	right: 20px;
	width: 13px;
	display: block;
	position: absolute;
	pointer-events: none;
}
.reservation-time-picker {
	appearance: none;
	width: 100%;
	height: 54px;
	display: block;
	color: #1c1a1b;
	font-size: 22px;
	font-weight: 500;
	line-height: 37px;
	padding-left: 30px;
	border-radius: 3px;
	background-color: #fff;
	border: 1px solid #e0e0e0;
	font-family: 'Zen_Kaku_Gothic_New';
}
.reservation-btn {
	width: 230px;
	height: 60px;
	margin: 0 auto;
	display: block;
	position: relative;
	color: #fff;
	font-size: 15px;
	font-weight: 700;
	line-height: 60px;
	text-align: center;
	letter-spacing: 0.05em;
	text-decoration: none;
	border: none;
	outline: none;
	border-radius: 30px;
	background-color: #000;
}
.reservation-btn:disabled {
	color: #888;
	background-color: #e0e0e0;
}
.reservation-btn:not(:disabled):hover {
	color: #fff;
	text-decoration: none;
	background-color: rgba(0 0 0 / 67%);
}
.reservation-slide.slide-three .reservation-btn {
	width: 300px;
}
.reservation-btn:after {
	content: "";
	top: 50%;
	right: 21px;
	width: 11px;
	height: 16px;
	display: block;
	position: absolute;
	background-size: contain;
	background-repeat: no-repeat;
	background-image: url('../img/reservation-btn-arrow.svg');
	transform: translateY(-50%);
}
.reservation-btn:disabled:after {
	background-image: url('../img/reservation-btn-arrow-dark.svg');
}
.reservation-back {
	display: flex;
	column-gap: 7px;
	width: fit-content;
	align-items: center;
	color: #4a91e2;
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
	letter-spacing: 0.08em;
	font-family: 'Zen_Kaku_Gothic_New';
	margin: 30px auto 0 auto;
}
.reservation-back:before {
	content: "";
	width: 7px;
	height: 13px;
	display: block;
	margin-top: 4px;
	background-size: contain;
	background-repeat: no-repeat;
	background-image: url('../img/reservation-back-arrow.svg');
}
.reservation-panel-inputs {
	display: flex;
	row-gap: 40px;
	flex-direction: column;
	margin-bottom: 60px;
}
.reservation-panel-summary {
	display: flex;
	row-gap: 60px;
	flex-direction: column;
	margin-bottom: 60px;
}
.reservation-inner-inputs {
	margin-top: 20px;
}
.reservation-inner-inputs-border {
	display: flex;
	row-gap: 40px;
	flex-direction: column;
	padding: 60px;
	border: 1px solid #e0e0e0;
}
.order-minimum-not-reached {
	display: none;
	color: #e43321;
	font-size: 15px;
	font-weight: 500;
	text-align: left;
	letter-spacing: 0.04em;
	padding: 10px 10px;
	margin-bottom: 40px;
	background-color: #fff8f8;
	border: 1px solid #e43321;
}
.order-minimum-not-reached.show-message {
	display: block;
}
.order-minimum-not-reached span {
	font-weight: 600;
}

.collapsable-group {
	height: auto;
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.3s;
}
.register-password-group.collapsable-group.uncollapsed {
	max-height: 150px;
}
.reservation-inner-inputs.collapsable-group.uncollapsed {
	max-height: 900px;
}
.billing-timing-inputs.collapsable-group.uncollapsed {
	max-height: 600px;
}
.need-receipt-info.collapsable-group.uncollapsed {
	max-height: 290px;
}
.collapsable-allergies.collapsable-group.uncollapsed {
	max-height: 200px;
}
.need-receipt-info,
.billing-timing-inputs {
	display: flex;
	flex-direction: column;
	row-gap: 30px;
}
.reservation-input-group.register-password-group {
	margin-top: 30px;
}
.reservation-input-group.register-checkbox-group.account-exists {
}
.reservation-input-group-note {
	color: #9a9ba5;
	font-size: 13px;
	font-weight: 500;
	line-height: 19px;
	letter-spacing: 0.08em;
	margin-top: 15px;
	margin-bottom: 0;
}
.reservation-input-group-warning {
	display: none;
	column-gap: 5px;
	align-items: center;
	color: #e43321;
	font-size: 13px;
	font-weight: 500;
	line-height: 19px;
	letter-spacing: 0.08em;
	margin-top: 15px;
	margin-bottom: 0;
}
.reservation-input-group-warning:before {
	content: "";
	width: 16px;
	height: 16px;
	margin-right: 5px;
	margin-bottom: -3px;
	display: inline-block;
	background-size: contain;
	background-repeat: no-repeat;
	background-image: url('../img/warning-icon.svg');
}
.reservation-input-group-warning.show-warning {
	display: flex;
}
.reservation-input-wrap.show-warning .reservation-input-group-warning {
	display: flex;
}
.reservation-input-wrap.show-warning .reservation-radio-group {
	display: flex;
}
.reservation-input-group-warning.account-exists-warning {
	margin-top: 10px;
	margin-bottom: 0;
}
.reservation-input-group-warning.order-items-warning {
}
.reservation-input-group.register-checkbox-group.account-exists:not(.account-logged-in) .account-exists-warning {
	display: block;
	font-size: 13px;
	font-weight: 500;
	line-height: 20px;
}
.reservation-input-group.register-checkbox-group.account-exists .register-note {
	display: none;
}
.reservation-input-label {
	color: #1c1a1b;
	font-size: 16px;
	font-weight: 500;
	line-height: 23px;
	letter-spacing: 0.08em;
	font-family: 'Zen_Kaku_Gothic_New';
	margin-bottom: 20px;
}
.reservation-input-label .red-text {
	color: #e43321;
}
.reservation-input-wrap {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	position: relative;
}
.reservation-input-wrap.flex-wrap,
.reservation-input-wrap.requires-value {
	flex-wrap: wrap;
}
.reservation-input-wrap.half {
	width: 50%;
}
.reservation-input.text-input {
	flex: 1 0 1px;
	display: block;
	color: #1c1a1b;
	font-size: 16px;
	font-weight: 500;
	line-height: 19px;
	letter-spacing: 0.08em;
	outline: none;
	padding: 20px 25px;
	border-radius: 5px;
	border: 1px solid #d0d0d0;
	font-family: 'Zen_Kaku_Gothic_New';
}
.reservation-input.text-area-input {
	height: 15em;
	flex: 1 0 1px;
	display: block;
	color: #1c1a1b;
	font-size: 15px;
	font-weight: 500;
	line-height: 19px;
	letter-spacing: 0.08em;
	outline: none;
	padding: 20px 25px;
	border-radius: 5px;
	border: 1px solid #d0d0d0;
	font-family: 'Zen_Kaku_Gothic_New';
}
.reservation-input-wrap.requires-value .reservation-input.text-input,
.reservation-input-wrap.requires-value .reservation-input.text-area-input {
	border-color: #e43321;
	background-color: #fff2f0;
}

/* Fix for Safari disabled input text being too light */
.reservation-input.text-input:disabled {
	color: #1c1a1b !important;
	background-color: #f5f5f5;
	border-color: #d0d0d0;
	opacity: 1;
	-webkit-text-fill-color: #1c1a1b;
}
.reservation-input-wrap .required-msg,
.reservation-input-group-checkbox-wrap .required-msg {
	display: none;
}
.reservation-input-wrap.requires-value .required-msg,
.reservation-input-group-checkbox-wrap.requires-check .required-msg {
	flex: 0 0 100%;
	display: flex;
	column-gap: 7px;
	align-items: center;
	color: #e43321;
	font-size: 13px;
	font-weight: 400;
	line-height: 19px;
	letter-spacing: 0.08em;
	margin: 10px 0 0 0;
}
.reservation-input-wrap.requires-value .required-msg:before,
.reservation-input-group-checkbox-wrap.requires-check .required-msg:before {
	content: "";
	display: inline-block;
	width: 14px;
	height: 14px;
	background-size: contain;
	background-repeat: no-repeat;
	background-image: url('../img/ico-required-msg.svg');
}
.reservation-input-wrap.show-warning .reservation-radio-group {
	padding: 4px 10px;
	background-color: #fff2f2;
	box-shadow: 0 0 13px 0 rgb(255 178 178 / 80%);
}
.reservation-input-wrap.show-warning .reservation-input-group-warning {
	flex: 0 0 100%;
}

.reservation-input-cover {
	z-index: 2;
	display: none;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	position: absolute;
	align-items: center;
	justify-content: center;
}
.reservation-input-cover.show-cover {
	display: flex;
}
.reservation-input-spinner {
	width: 32px;
	height: 32px;
	display: block;
}
.reservation-input.text-area-input.address-input {
	height: 61px; /* line-height + pad-top + pad-btm + border-top-width + border-btm-width => (2 * 19) + 20 + 20 + 1 + 1 */
}
.reservation-input.text-input.hilite-input {
	color: #e43321;
	border-color: #e43321;
	background-color: #fff2f0;
}
.reservation-input.text-input.hilite-input::placeholder {
	color: #c7a5a2;
}
.reservation-input.w250 {
	flex: 0 0 250px;
}
.reservation-input.half {
	flex: 0 0 50%;
}
.reservation-input-suffix {
	flex: 0 0 auto;
	margin-left: 10px;
}
.reservation-input-suffix.mgn20 {
	margin-left: 20px;
}
.reservation-external-link {
	display: inline-flex;
	align-items: center;
	column-gap: 5px;
	color: #4a91e2;
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
	letter-spacing: 0.08em;
	font-family: 'Zen_Kaku_Gothic_New';
}
.reservation-external-link-icon {
	top: 1px;
	width: 13px;
	height: 13px;
	position: relative;
	display: inline-block;
}
.reservation-input-note {
	color: #9a9ba5;
	font-size: 13px;
	font-weight: 500;
	line-height: 19px;
	letter-spacing: 0.08em;
	margin: 20px 0 0 0;
}
.reservation-nogo-note {
	display: none;
	color: #e43321;
	font-size: 14px;
	font-weight: 500;
	text-align: left;
	letter-spacing: 0;
	margin: 7px 0 0 0;
}
.reservation-nogo-icon {
	width: 16px;
	display: inline-block;
	margin-left: -20px;
	margin-right: 3px;
}
.reservation-nogo-note.show-no-go {
	display: block;
}
.reservation-input-group-checkbox-wrap {
	overflow: hidden;
	position: relative;
}
.reservation-input-group-checkbox-wrap.mgn-btm-15 {
	margin-bottom: 15px;
}
.reservation-input-group-checkbox-wrap.requires-check {
	padding-top: 5px;
	padding-right: 5px;
	padding-bottom: 5px;
	display: inline-block;
	background-color: #fff4f4;
}
.register-inputs-wrap {
	width: 50%;
}
.register-inputs-wrap.hide-register {
	display: none;
}
.reservation-input-checkbox {
	left: -40px;
	position: absolute;
}
.reservation-input-checkbox ~ .reservation-input-checkbox-label {
	margin: 0;
	display: flex;
	column-gap: 5px;
	align-items: center;
	color: #1c1a1b;
	font-size: 15px;
	font-weight: 500;
	line-height: 22px;
	letter-spacing: 0.08em;
	user-select: none;
	cursor: pointer;
	font-family: 'Zen_Kaku_Gothic_New';
}
.reservation-input-checkbox ~ .reservation-input-checkbox-label:before {
	content: "";
	width: 20px;
	height: 20px;
	display: block;
	margin-top: 3px;
	background-size: contain;
	background-repeat: no-repeat;
	background-image: url('../img/checkbox-unchecked.svg');
}
.reservation-input-checkbox:checked ~ .reservation-input-checkbox-label:before {
	background-image: url('../img/checkbox-checked.svg');
}
.reservation-input-checkbox:disabled ~ .reservation-input-checkbox-label {
	color: #9a9ba5;
	cursor: not-allowed;
}

/* Policy checkboxes specific styles */
.policy-checkboxes .reservation-input-checkbox-label {
	display: flex;
	align-items: center;
	margin-bottom: 5px;
}
.policy-checkboxes .policy-link {
	margin-left: 25px;
	display: inline-flex;
}
.reservation-radio-group {
	display: flex;
	column-gap: 40px;
	align-items: center;
}

.reservation-radio-wrap {
	position: relative;
	overflow: hidden;
}
.reservation-input-radio {
	left: -40px;
	position: absolute;
}
.reservation-input-radio ~  .reservation-input-radio-label {
	margin: 0;
	display: flex;
	column-gap: 5px;
	align-items: center;
	color: #1c1a1b;
	font-size: 15px;
	font-weight: 500;
	line-height: 22px;
	letter-spacing: 0.08em;
	user-select: none;
	cursor: pointer;
	font-family: 'Zen_Kaku_Gothic_New';
}
.reservation-input-radio ~ .reservation-input-radio-label:before {
	content: "";
	width: 20px;
	height: 20px;
	display: block;
	margin-top: 3px;
	background-size: contain;
	background-repeat: no-repeat;
	background-image: url('../img/radio-unchecked.svg');
}
.reservation-input-radio:checked ~ .reservation-input-radio-label:before {
	background-image: url('../img/radio-checked.svg');
}
.reservation-input.user-email-input {
	have-existing-user: true;
}
.reservation-input.user-email-input.have-existing-user {
	border-color: #0aa858;
/*	background-color: #f6fcf6;*/
}
.verified-user-message {
	display: none;
	flex: 0 0 100%;
	color: #0da858;
	font-size: 15px;
	font-weight: 500;
	line-height: 21px;
	margin-top: 7px;
	margin-bottom: 0;
}
.verified-user-message-icon {
	width: 20px;
	height: auto;
	display: inline-block;
}
.verified-user-message.show-message {
	display: flex;
	flex: 0 0 100%;
}
.reservation-fee-note {
	color: #1c1a1b;
	font-size: 15px;
	font-weight: 400;
	line-height: 22px;
	letter-spacing: 0.08em;
	margin-bottom: 50px;
}
.reservation-order {
	margin-top: 60px;
}
.reservation-order-items {
}
.reservation-order-item {
	display: flex;
	column-gap: 20px;
	align-items: center;
	padding: 20px 0;
	border-bottom: 1px solid #e0e0e0;
}
.menu-dropdown-arrow-wrap {
	top: 50%;
	right: 7px;
	width: 30px;
	height: 30px;
	padding: 9px;
	display: flex;
	position: absolute;
	align-items: center;
	justify-content: center;
	transform: translateY(-50%);
	cursor: pointer;
}
.menu-dropdown-arrow {
	width: 12px;
	display: block;
	transition: transform 0.2s;
}
.reservation-order-item.show-dropdown .menu-dropdown-arrow {
	transform: rotate(180deg);
}
.reservation-order-item.heading {
	padding-bottom: 10px;
}
.reservation-order-item-info-wrap {
	flex: 1 0 45%;
	display: flex;
	column-gap: 10px;
	align-items: center;
	position: relative;
	padding: 15px;
}
.reservation-order-item.heading .reservation-order-item-info-wrap {
	padding-left: 0;
}
.reservation-order-item:not(.heading) .reservation-order-item-info-wrap {
	border: 1px solid #e0e0e0;
}
.reservation-panel-summary .menu-dropdown-arrow-wrap {
	display: none;
}
.reservation-panel-summary .reservation-order-item-info-wrap {
	padding: 0 15px 0 0;
}
.reservation-panel-summary .reservation-order-item:not(.heading) .reservation-order-item-info-wrap {
	border: none;
}
.reservation-panel-summary .reservation-order-item-size-wrap {
	width: 100px;
	padding-left: 5px;
}
.reservation-panel-summary .reservation-order-item-quantity-wrap {
	width: 100px;
	padding-left: 5px;
}
.reservation-order-item-inputs-wrap {
	flex: 0 0 270px;
	display: flex;
	column-gap: 10px;
	align-items: center;
}
.reservation-order-item-total-wrap {
	flex: 1 0 calc(55% - 310px);
	text-align: right;
}
.reservation-order-item-head {
	margin: 0;
	color: #1c1a1b;
	font-size: 15px;
	font-weight: 700;
	line-height: 22px;
	letter-spacing: 0.08em;
}
.reservation-order-item-head.head-size {
	width: 100px;
	padding-left: 7px;
}
.reservation-order-item-head.head-qty {
	width: 100px;
	padding-left: 7px;
}
.reservation-order-item-info {
	user-select: none;
}
.slide-five .reservation-order-input-quantity {
	width: 100px;
	height: 40px;
}
.slide-five .reservation-order-item-inputs-wrap {
	flex: 0 0 210px;
}
.slide-five .order-quantity-wrap {
	height: 40px;
	align-items: center;
	justify-content: center;
}
.slide-five .reservation-order-item-head.head-qty,
.slide-five .reservation-order-option-head.head-qty {
	text-align: center;
}
.slide-five .order-quantity-wrap {
	border: none;
}
.previous-reservations {
	overflow-x: auto;
	margin-top: 30px;
	margin-bottom: 60px;
	padding-bottom: 10px;
}
.previous-reservations-inner {
	padding: 10px;
	display: flex;
	column-gap: 20px;
	align-items: stretch;
	width: calc(137% + 40px);
}
.previous-reservations-inner.four-cards {
	width: calc(182% + 60px);
}
.previous-reservations-inner.five-cards {
	width: calc(227% + 80px);
}
.previous-reservation {
	flex: 0 0 calc((100% - 40px) / 3);
	box-shadow: 0 3px 7px -2px rgba(0 0 0 / 60%);
	display: flex;
	flex-direction: column;
	position: relative;
	cursor: pointer;
	padding: 20px;
	border: 1px solid transparent;
	transition: box-shadow 0.15s;
}
.previous-reservation:hover {
	border-color: #e0e0e0;
	background-color: #fafafa;
	box-shadow: 0 10px 17px -6px rgba(0 0 0 / 30%);
}
.previous-reservations-copy-feedback {
	z-index: 2;
	top: -110%;
	left: 10px;
	right: 10px;
	height: calc(100% - 20px);
	position: absolute;
	display: flex;
	align-items: center;
	flex-direction: column;
	justify-content: center;
	transition: top 0.3s;
	background-color: rgba(255 255 255 / 85%);
}
.previous-reservations-copy-feedback.show-it {
	top: 10px;
}
.previous-reservations-copy-icon {
	width: 40px;
	display: block;
}
.previous-reservations-copy-text {
	color: #009000;
	font-size: 21px;
	font-weight: 600;
	line-height: 30px;
	letter-spacing: 2px;
	margin: 10px 0 0 0;
	font-family: 'Noto Sans JP';
}
.previous-reservations-inner.four-cards .previous-reservation {
	flex: 0 0 calc((100% - 60px) / 4);
}
.previous-reservations-inner.five-cards .previous-reservation {
	flex: 0 0 calc((100% - 80px) / 5);
}
.previous-reservation .previous-delivery-to {
	height: 55px;
	margin: 0 0 5px 0;
	color: #1c1a1b;
	font-size: 20px;
	font-weight: 400;
	line-height: 26px;
	letter-spacing: 0.05em;
	font-family: 'Noto Sans JP';
	overflow: hidden;
}
.previous-reservation .previous-date-used {
	color: #1c1a1b;
	font-size: 13px;
	font-weight: 400;
	line-height: 17px;
	letter-spacing: 0.05em;
	font-family: 'Noto Sans JP';
	padding-top: 10px;
	margin: 10px 0 0 0;
	border-top: 1px solid #e0e0e0;
}
.previous-reservation .previous-date {
	font-family: 'Roboto';
}
.previous-reservation .previous-email {
	margin: 0;
	display: flex;
	align-items: center;
	column-gap: 5px;
}
.previous-email-icon {
	width: 15px;
	display: inline-block;
}
.previous-reservation .previous-person {
	margin: 0;
	display: flex;
	align-items: center;
	column-gap: 5px;
}
.previous-person-icon {
	width: 13px;
	display: inline-block;
}

/*
.reservation-select-wrap {
	position: relative;
}
.reservation-select-wrap:after {
	content: "";
	z-index: 2;
	top: 50%;
	right: 11px;
	width: 11px;
	height: 7px;
	display: block;
	position: absolute;
	pointer-events: none;
	background-size: contain;
	background-repeat: no-repeat;
	background-image: url('../img/dropdown-arrow.svg');
	transform: translateY(-50%);
}
*/
.reservation-select-wrap select:focus-visible {
	outline: none;
	box-shadow: 0 0 5px 0 rgba(0 0 0 / 20%);
}
.reservation-order-input-size {
	width: 125px;
	height: 50px;
	display: block;
	color: #1c1a1b;
	font-size: 16px;
	font-weight: 500;
	line-height: 24px;
	text-align: center;
	letter-spacing: 0.08em;
	appearance: none;
	padding: 9px 15px;
	border-radius: 5px;
	border: 1px solid #d0d0d0;
	font-family: 'Zen_Kaku_Gothic_New';
}
.reservation-order-input-quantity-select {
	width: 100%;
	height: 100%;
	display: block;
	color: #1c1a1b;
	font-size: 16px;
	font-weight: 500;
	line-height: 19px;
	text-align: center;
	letter-spacing: 0.08em;
	appearance: none;
	padding: 10px 25px;
	border-radius: 5px;
	border: 1px solid #d0d0d0;
	font-family: 'Zen_Kaku_Gothic_New';
}
.reservation-order-input-quantity {
	/* Shrink to content to avoid trailing empty space in Safari */
	width: 134px;
	flex: 0 0 auto;
	color: #1c1a1b;
}
.order-quantity-wrap {
	/* Avoid forcing extra width; inline-flex shrink-wraps content */
	width: 134px;
	display: inline-flex;
	align-items: stretch;
	overflow: hidden;
	border-radius: 5px;
	border: 1px solid #d0d0d0;
}
.order-quantity-btn {
	flex: 0 0 37px;
	font-size: 25px;
	font-weight: 400;
	line-height: 50px;
	text-align: center;
	cursor: pointer;
	user-select: none;
	background-color: #f6f6f8;
}
.order-quantity-btn.plus {
	border-left: 1px solid #d0d0d0;
}
.order-quantity-btn.minus {
	border-right: 1px solid #d0d0d0;
}
.order-quantity-wrap.disable-input .order-quantity-btn {
	cursor: not-allowed;
}
.order-quantity-input {
	width: 58px;
	display: block;
	border: none;
	font-size: 19px;
	font-weight: 500;
	line-height: 36px;
	text-align: center;
	outline: none;
}
.order-quantity-input {
  	-moz-appearance: textfield;
	-webkit-appearance: textfield; /* Normalize Safari number input */
}
.order-quantity-input::-webkit-outer-spin-button,
.order-quantity-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.reservation-order-input-mb-label {
	display: none;
}
.reservation-order-item-image-wrap {
	width: 80px;
	aspect-ratio: 80 / 54;
}
.reservation-order-item-image {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
}
.reservation-order-item-name {
	color: #1c1a1b;
	font-size: 16px;
	font-weight: 700;
	line-height: 23px;
	letter-spacing: 0.08em;
	margin-bottom: 5px;
}
.reservation-order-item-price {
	color: #1c1a1b;
	font-size: 16px;
	font-weight: 500;
	line-height: 23px;
	letter-spacing: 0.08em;
	margin-bottom: 0;
}
.reservation-order-item-price .tax-incl {
	font-size: 8px;
}
.reservation-order-item-total {
	color: #e43321;
	font-size: 20px;
	font-weight: 500;
	line-height: 29px;
	letter-spacing: 0.08em;
	margin-bottom: 0;
}
.reservation-order-item-add-btn {
	width: 165px;
	height: 40px;
	display: block;
	color: #1c1a1b;
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
	text-align: center;
	letter-spacing: 0.08em;
	margin: 10px auto 0 auto;
	border-radius: 30px;
	background-color: #f6f6f8;
	border: 1px solid #e0e0e0;
}


.reservation-order-options {
	margin-top: 0;
}
.reservation-panel-summary .reservation-order-options {
	margin-top: 0;
}
.reservation-order-option {
	display: flex;
	column-gap: 20px;
	align-items: center;
	padding: 20px 0;
	border-bottom: 1px solid #e0e0e0;
}
.reservation-order-option-info-wrap {
	flex: 1 0 50%;
	display: flex;
	column-gap: 10px;
	align-items: center;
}
.reservation-order-option-quantity-wrap {
	flex: 0 0 160px;
}
.reservation-order-option-total-wrap {
	flex: 1 0 calc(50% - 200px);
	text-align: right;
}
.reservation-order-option-head {
	margin: 0;
	color: #1c1a1b;
	font-size: 15px;
	font-weight: 700;
	line-height: 22px;
	letter-spacing: 0.08em;
}
.reservation-order-option-head.head-qty {
	width: 100px;
}
.reservation-order-option-image-wrap {
	width: 80px;
	aspect-ratio: 80 / 54;
}
.reservation-order-option-image {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
}
.reservation-order-option-name {
	color: #1c1a1b;
	font-size: 16px;
	font-weight: 700;
	line-height: 23px;
	letter-spacing: 0.08em;
	margin-bottom: 5px;
}
.reservation-order-option-price {
	color: #1c1a1b;
	font-size: 16px;
	font-weight: 500;
	line-height: 23px;
	letter-spacing: 0.08em;
	margin-bottom: 0;
}
.reservation-order-option-price .tax-incl {
	font-size: 8px;
}
.reservation-order-option-total {
	color: #e43321;
	font-size: 20px;
	font-weight: 500;
	line-height: 29px;
	letter-spacing: 0.08em;
	margin-bottom: 0;
}

.reservation-order-delivery-head {
	color: #1c1a1b;
	font-size: 15px;
	font-weight: 700;
	line-height: 22px;
	text-align: right;
	letter-spacing: 0.08em;
	margin-bottom: 0;
	padding-bottom: 10px;
	border-bottom: 1px solid #e0e0e0;
}
.reservation-order-delivery {
	display: flex;
	align-items: center;
	justify-content: space-between;
	border-bottom: 1px solid #e0e0e0;
	padding: 20px 0;
}
.reservation-order-delivery-text {
	flex: 1 0 1px;
	display: flex;
	flex-direction: column;
}
.reservation-order-delivery-fee {
	flex: 0 0 auto;
	display: flex;
	align-items: flex-end;
	flex-direction: column;
	justify-content: center;
}
.reservation-order-delivery-prompt {
	color: #e43321;
	font-size: 15px;
	font-weight: 400;
	line-height: 22px;
	letter-spacing: 0.08em;
	margin-bottom: 0;
}
.reservation-order-delivery-prompt.hide-prompt {
	display: none;
}
span.reservation-order-delivery-label {
	color: #1c1a1b;
	font-size: 16px;
	font-weight: 700;
	line-height: 24px;
	letter-spacing: 0.08em;
}
.reservation-order-delivery-amount {
	color: red;
	font-size: 20px;
	font-weight: 500;
	line-height: 20px;
	letter-spacing: 0.08em;
}
.reservation-order-subtotals {
	display: flex;
	align-items: center;
	justify-content: flex-end;
}
.reservation-order-subtotal-amount {
	margin: 0;
	color: #e43321;
	font-size: 20px;
	font-weight: 500;
	line-height: 20px;
	letter-spacing: 0.08em;
}

.reservation-order-totals {
}
.reservation-order-total {
	display: flex;
	column-gap: 5px;
	align-items: flex-end;
	justify-content: flex-end;
	margin-bottom: 12px;
}
.reservation-order-total-label {
	margin: 0;
	color: #1c1a1b;
	font-size: 16px;
	font-weight: 700;
	line-height: 33px;
	letter-spacing: 0.08em;
}
.reservation-order-total-amount {
	margin: 0;
	color: #e43321;
	font-size: 24px;
	font-weight: 700;
	line-height: 35px;
	letter-spacing: 0.08em;
}
.reservation-order-total-taxes {
	display: flex;
	column-gap: 20px;
	align-items: flex-end;
	justify-content: flex-end;
}
.reservation-order-total-tax {
	margin: 0;
	color: #1c1a1b;
	font-size: 14px;
	font-weight: 500;
	line-height: 23px;
	letter-spacing: 0.08em;
}
.order-allergies-inputs {
	margin-bottom: 20px;
}
.reservation-input-group-checkbox-wrap.input-allergies {
	margin-bottom: 20px;
}
.reservation-input-label.allergies {
	font-weight: 700;
}
.reservation-input.text-area-input.allergies {
	height: 7em;
}
.reservation-order-allergies {
	padding: 10px;
	margin-bottom: 20px;
	background-color: #f4f6f8;
	border: 1px solid #e0e0e0;
}
.reservation-order-allergies.hide-allergies {
	display: none;
}
.reservation-order-allergies .allergy-friendly-text {
	margin-bottom: 0;
}


.reservation-order-disclaimer-box {
	display: flex;
	align-items: center;
	flex-direction: column;
	justify-content: center;
	background-color: #f6f6f8;
	padding: 50px 0;
	margin-bottom: 60px;
}
.reservation-order-disclaimer-text {
	color: #1c1a1b;
	font-size: 15px;
	font-weight: 500;
	line-height: 24px;
	letter-spacing: 0.08em;
	margin-bottom: 10px;
}

.menu-items-dropdown {
	z-index: 3;
	display: none;
	width: 300px;
	height: 390px;
	max-height: 390px;
	top: 60px;
	right: 0;
	position: absolute;
	overflow-y: auto;
	padding: 0 0 5px 0;
	background-color: #fff;
	box-shadow: 0 0 10px 0 rgba(0 0 0 / 10%);
}
.reservation-order-item.show-dropdown .menu-items-dropdown {
	display: block;
}
.menu-items-dropdown-inner {
	display: flex;
	flex-direction: column;
}
.menu-items-dropdown-category {
	color: #1c1a1b;
	font-size: 14px;
	font-weight: 700;
	line-height: 20px;
	letter-spacing: 0.08em;
	padding: 20px 15px 10px 15px;
	margin: 0;
}
.menu-items-dropdown-item {
	display: flex;
	column-gap: 10px;
	padding: 10px 15px;
	cursor: pointer;
}
/* .menu-items-dropdown-item.selected-item { */
.menu-items-dropdown-item:hover {
	background-color: #f6f6f8;
}
.dropdown-item-info-wrap {
	flex: 1 0 49%;
	display: flex;
	column-gap: 10px;
	align-items: center;
	position: relative;
}
.dropdown-item-image-wrap {
	width: 60px;
	aspect-ratio: 60 / 40;
}
.dropdown-item-image {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
}
.dropdown-item-info {
}
.dropdown-item-name {
	color: #1c1a1b;
	font-size: 14px;
	font-weight: 700;
	line-height: 20px;
	letter-spacing: 0.08em;
	margin-bottom: 3px;
	user-select: none;
}
.dropdown-item-price {
	color: #1c1a1b;
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
	letter-spacing: 0.08em;
	margin-bottom: 0;
	user-select: none;
}

.bread-crumbs.content-page .bc-item {
	color: #1c1a1b;
}
.bread-crumbs.content-page .bc-link {
	color: #4a91e2;
	text-decoration: none;
}
.bread-crumbs.content-page .bc-item:not(.bc-home):before {
	content: "";
	width: 9px;
	height: 9px;
	display: inline-block;
	margin: 0 0.75em 0 0;
	background-size: contain;
	background-repeat: no-repeat;
	background-image: url('../img/bread-crumb-arrow.svg');
}



/*
 * MANAGE RESERVATIONS PAGE
 */

.menu-item-templates {
	display: none;
}

.site-section.manage-reservations {
}
.manage-reservations-toolbar {
	height: 70px;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	border-bottom: 1px solid #e0e0e0;
	position: relative;
}
.manage-reservations-toolbar .toolbar-left {
	flex: 0 0 230px;
	display: flex;
	justify-content: flex-start;
	padding-left: 30px;
}
.manage-reservations-toolbar .toolbar-center {
	flex: 1 0 1px;
	display: flex;
	justify-content: center;
}
.manage-reservations-toolbar .toolbar-right {
	flex: 0 0 230px;
	display: flex;
	justify-content: flex-end;
	padding-right: 30px;
}
.manage-reservations-toolbar-loading {
	z-index: 4;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	display: none;
	column-gap: 12px;
	position: absolute;
	align-items: center;
	justify-content: center;
	background-color: rgba(0 0 0 / 75%);
}
.manage-reservations-toolbar.is-loading {
	border-color: #3e3e3e;
}
.manage-reservations-toolbar.is-loading .manage-reservations-toolbar-loading {
	display: flex;
}
.manage-reservations-toolbar-loading .toolbar-loading-msg {
	margin: 0;
	color: #fff;
	font-size: 24px;
	font-weight: bold;
	letter-spacing: 4px;
	user-select: none;
}
.manage-reservations-toolbar-loading .toolbar-loading-spinner {
	width: 24px;
	margin-right: 10px;
}
.mobile-table-scroll-prompt {
	display: none;
}


.shift-selection-widget {
	width: 180px;
	height: 40px;
	overflow: hidden;
/*	border-radius: 30px;*/
	position: relative;
	cursor: pointer;
	font-family: 'Noto Sans JP';
}
.shift-selection-widget-back {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	background-color: #e0e0e0;
	border-radius: 30px;
	padding: 0 30px;
}
.shift-selection-widget-back-label {
	z-index: 1;
	position: relative;
	color: #827e80;
	font-size: 13px;
	font-weight: 600;
	line-height: 38px;
	letter-spacing: 0.1em;
	user-select: none;
}
.shift-selection-widget-btn {
	z-index: 2;
	top: 0;
	width: 105px;
	height: 100%;
	display: block;
	position: absolute;
	user-select: none;
	color: #fff;
	font-size: 13px;
	font-weight: 600;
	line-height: 38px;
	text-align: center;
	border-radius: 30px;
	background-color: #1c1a1b;
}
.shift-selection-widget-btn.morning {
	left: 0;
	transition: left 0.3s;
}
.shift-selection-widget-btn.afternoon {
	right: 0;
	transition: right 0.3s;
}
.shift-selection-widget.morning .shift-selection-widget-btn.afternoon {
	right: -120px;
}
.shift-selection-widget.afternoon .shift-selection-widget-btn.morning {
	left: -120px;
}
.shift-selection-badge-wrap {
	position: relative;
}
.shift-selection-badge-wrap .shift-selection-badge {
	z-index: 3;
	bottom: -9px;
	height: 21px;
	min-width: 30px;
	width: fit-content;
	position: absolute;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 6px;
	border-radius: 0;
	border-radius: 15px;
	border: 1px solid #fff;
}
.shift-selection-badge-wrap:hover .shift-selection-badge {
	display: flex;
}
.shift-selection-badge-wrap .shift-selection-badge.am-shift {
	left: 0;
	background-color: #585858;
	transform: translateX(-40%);
}
.shift-selection-badge-wrap .shift-selection-badge.pm-shift {
	right: 0;
	background-color: #585858;
	transform: translateX(40%);
}
.shift-selection-badge-wrap .shift-selection-badge-label {
	display: inline-block;
	margin: 0;
	color: #fff;
	font-size: 11px;
	font-weight: 600;
	line-height: 19px;
	text-align: center;
	font-family: 'Roboto';
}


.date-controls {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}
.date-controls .selected-date {
	width: 270px;
	display: block;
	opacity: 0.7;
	color: #1c1a1b;
	font-size: 20px;
	font-weight: 700;
	line-height: 23px;
	text-align: right;
	letter-spacing: 0.08em;
	padding: 8px 0 8px 10px;
	border: none;
	outline: none;
	cursor: pointer;
	font-family: 'Roboto';
	background-color: transparent;
}
.date-controls .selected-date:focus {
	box-shadow: none;
}
.date-controls .selected-date:hover {
	opacity: 1.0;
	background-color: #e8e8e8;
}
.flatpickr-day.oc-has-reservations.oc-has-am,
.flatpickr-day.oc-has-reservations.oc-has-pm {
/*	border-radius: 0;*/
	border: 1px solid #80c8ff;
}
.flatpickr-day.oc-has-reservations.oc-has-am:before,
.flatpickr-day.oc-has-reservations.oc-has-pm:after {
	content: "";
	top: 26px;
	width: 9px;
	height: 9px;
	position: absolute;
	border-radius: 10px;
}
.flatpickr-day.oc-has-reservations.oc-has-am:before {
	left: 8px;
	background-color: #f80000;
}
.flatpickr-day.oc-has-reservations.oc-has-pm:after {
	right: 8px;
	background-color: #2f2fff;
}
.flatpickr-day.selected,
.flatpickr-day.selected.nextMonthDay,
.flatpickr-day.selected.prevMonthDay {
	color: #58a0ff;
	background-color: #cfefff;
}
.flatpickr-day.today {
    border-color: #1c1a1b;
}

.date-controls-paging {
	display: flex;
	column-gap: 5px;
	align-items: center;
}
.date-controls-paging .page-date-btn {
	padding: 0;
	border: none;
	outline: none;
	width: 30px;
	height: 30px;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: transparent;
    border-radius: 50%;
}
.date-controls-paging .page-date-btn:hover {
	background-color: #e8e8e8;
}
.page-date-btn.prev {
}
.page-date-btn.next {
}
.page-date-arrow {
	width: 9px;
	display: block;
	opacity: 0.7;
}
.date-controls-paging .page-date-btn:hover .page-date-arrow {
	opacity: 1.0;
}
.page-date-arrow.prev {
	margin-right: 2px;
}
.page-date-arrow.next {
	margin-left: 2px;
}
.date-controls-today {
	padding-left: 20px;
}
.page-today-btn {
	width: 65px;
	height: 33px;
	outline: none;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid #e0e0e0;
	background-color: #fff;
	border-radius: 30px;
	color: #1c1a1b;
	font-size: 12px;
	font-weight: 600;
	line-height: 31px;
	text-align: center;
	letter-spacing: 0.05em;
	font-family: 'Noto Sans JP';
}
.page-today-btn:hover {
	border-color: #1c1a1b;
}


.button-controls {
	display: flex;
	gap: 10px;
}
.controls-print-btn {
	width: 142px;
	height: 40px;
	display: flex;
	column-gap: 7px;
	align-items: center;
	justify-content: center;
	padding: 0 10px;
	border-radius: 30px;
	background-color: #fff;
	border: 1px solid #e0e0e0;
	cursor: pointer;
	transition: all 0.2s ease;
}
.controls-print-btn:hover {
	background-color: #f8f9fa;
	border-color: #007cba;
}
.controls-print-btn.envelope-print {
	background-color: #f0f8ff;
	border-color: #007cba;
}
.controls-print-btn.envelope-print:hover {
	background-color: #e6f3ff;
}
.controls-print-btn-icon {
	width: 17px;
	display: block;
}
.controls-print-btn-label {
	color: #1c1a1b;
	font-size: 13px;
	font-weight: 700;
	line-height: 38px;
	font-family: 'Noto Sans JP';
	letter-spacing: 0.05em;
}

.manage-reservations-container {
	min-height: 300px;
	position: relative;
	background-color: #fff;
}
.manage-reservations-loading {
	z-index: 2;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	display: none;
	position: absolute;
/*	background-color: rgba(0 0 0 / 3%);*/
}
.content-loading-wrap {
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	display: flex;
	position: absolute;
	align-items: flex-start;
	justify-content: center;
	padding-top: 110px;
}
.content-loading-wrap .content-loading-spinner {
	width: 60px;
	height: auto;
	display: block;
}
.manage-reservations-container.is-loading .manage-reservations-loading {
	display: block;
}

.manage-reservations-content {
	display: flex;
	row-gap: 40px;
	padding: 40px;
	position: relative;
	flex-direction: column;
}
.manage-reservations-container.is-loading .manage-reservations-content {
	opacity: 0.15;
}
.dispatch-no-reservations {
	height: 200px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.dispatch-no-reservations-title {
	display: inline-block;
	color: #787878;
	font-size: 32px;
	font-weight: 400;
	padding: 20px 50px;
	border: 1px solid #e0e0e0;
	box-shadow: 0 0 40px -5px rgba(0 0 0 / 10%);
}

.reservation-via-group {
	display: flex;
	column-gap: 20px;
	align-items: stretch;
	min-height: 234px;
}
.via-group-label {
	width: 36px;
	height: auto;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	border-radius: 5px;
	background-color: #1c1a1b;
}
.via-group-label-comment {
	top: 10px;
	left: 50%;
	width: 25px;
	height: 25px;
	cursor: pointer;
	position: absolute;
	transform: translateX(-50%);
}
.via-group-label-comment-icon {
	width: 100%;
	display: block;
}

.via-group-name {
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	line-height: 21px;
	margin: 0;
	text-align: center;
	writing-mode: vertical-rl;
	text-orientation: upright;
}
.via-group-reservations {
	flex: 1 0 1px;
	display: flex;
	row-gap: 30px;
	column-gap: 20px;
	flex-wrap: wrap;
}
.reservation-card {
}
.reservation-card.via-group {
	min-width: 401px;
	display: flex;
	position: relative;
	overflow: hidden;
	cursor: pointer;
	border-radius: 8px;
	flex-direction: column;
	flex: 0 0 calc((100% - 40px) / 3);
	box-shadow: 0 0 15px 0 rgba(0 0 0 / 10%);
}
.card-menu-back {
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 3;
	position: absolute;
	display: none;
	align-items: center;
	justify-content: center;
	background-color: rgba( 28 26 27 / 50% );
}
.card-menu-back.show-menu {
	display: flex;
}
.card-menu {
	margin: 0;
	padding: 0;
	width: 145px;
	list-style: none;
	position: relative;
	border-radius: 8px;
	background-color: #fff;
}
.card-menu .card-menu-closer {
	z-index: 1;
	top: -10px;
	right: -25px;
	width: 20px;
	height: 20px;
	display: block;
	cursor: pointer;
	position: absolute;
}
.card-menu-item {
	border-bottom: 1px solid #e0e0e0;
}
.card-menu-item:hover {
	background-color: #cedcf3;
}
.card-menu-item:first-child {
	border-top-left-radius: 8px;
	border-top-right-radius: 8px;
}
.card-menu-item:last-child {
	border-bottom: none;
	border-bottom-left-radius: 8px;
	border-bottom-right-radius: 8px;
}
.card-menu-link {
	display: block;
	padding: 5px 0;
	text-align: center;
}
.card-comment-overlay {
/*	top: 50px;*/
	left: 7px;
	right: 7px;
	height: calc(100% - 57px);
	bottom: -110%;
	position: absolute;
	width: calc(100% - 14px);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: bottom 0.15s;
	overflow-y: auto;
	border-radius: 7px;
	background-color: #f6f6f8;
	border: 1px solid #e0e0e0;
	box-shadow: 0 5px 9px -1px rgba(0 0 0 / 15%);
}
.reservation-card.show-comment .card-comment-overlay {
	display: flex;
	bottom: 7px;
}
.card-comment-inner {
	overflow: auto;
	width: calc(100% - 20px);
	height: calc(100% - 20px);
	padding: 5px 10px 0 10px;
}
.card-comment-overlay .card-comment-text {
	margin: 0;
	opacity: 0;
	color: #1c1a1b;
	font-size: 15px;
	font-weight: 500;
	line-height: 24px;
	letter-spacing: 0.04em;
	transition: opacity 0.2s 0.2s;
	font-family: 'Noto Sans JP';
}
.reservation-card.show-comment .card-comment-text {
	opacity: 1;
}

.x-manage-reservations-content.is-loading .reservation-card.via-group:after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 2;
	background-color: rgba( 0 0 0 / 50% );
}
.reservation-card-content {
	flex: 1 0 1px;
	display: flex;
}
.reservation-card-left {
	flex: 0 0 60%;
	display: flex;
	flex-direction: column;
}
.reservation-card-right {
	flex: 0 0 40%;
}
.card-head {
	width: 100%;
	height: 43px;
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	background-color: #1c1a1b;
	padding: 0 10px 0 20px;
	user-select: none;
}
.reservation-card.have-comment .card-head {
	justify-content: space-between;
}
.card-title {
	margin: 0;
	color: #fff;
	font-size: 18px;
	font-weight: 700;
	line-height: 22px;
	letter-spacing: 0.03em;
	font-family: 'Roboto';
	user-select: none;
}
.card-head-comment {
	height: 100%;
	width: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
}
.card-head-comment-icon {
	width: 20px;
	display: block;
}
.card-delivery {
	flex: 1 0 1px;
	display: flex;
	row-gap: 12px;
	padding: 18px 10px;
	flex-direction: column;
	border-right: 1px solid #e0e0e0;
	user-select: none;
}
.card-delivery-row {
	width: 100%;
	display: flex;
	column-gap: 5px;
	align-items: flex-start;
}
.card-delivery-icon {
	display: block;
}
.card-delivery-icon.location {
	width: 12px;
	margin-top: 1px;
}
.card-delivery-icon.person {
	width: 13px;
	margin-top: 2px;
}
.card-delivery-icon.receipt {
	width: 12px;
	margin-top: 1px;
}
.card-delivery-text {
	margin: 0;
	color: #1c1a1b;
	font-size: 13px;
	font-weight: 500;
	line-height: 17px;
	letter-spacing: 0.05em;
	font-family: 'Roboto';
}
.card-item-list {
	display: flex;
	row-gap: 10px;
	padding: 14px 10px;
	flex-direction: column;
	user-select: none;
}
.card-allergy,
.card-allergy-comment {
	padding: 0 10px;
	font-size: 14px;
    font-weight: bold;
}
.card-allergy-text,
.card-allergy-comment-text{
	margin: 0;
	line-height: 1.2;
}
p.card-allergy-text {
    display: inline-block;
    border: 1px solid black;
    border-radius: 8px;
    padding: 2px 5px;
}
.card-item-row {
	display: flex;
	align-items: center;
}
.card-item-row .card-item-name,
.card-item-row .card-item-quantity {
	margin: 0;
	color: #1c1a1b;
}
.card-item-row .card-item-name {
	flex: 1 0 1px;
	font-size: 15px;
	font-weight: 600;
	line-height: 18px;
	letter-spacing: 0.03em;
	font-family: 'Noto Sans JP';
}
.card-item-row .card-item-quantity {
	flex: 0 0 50px;
	font-size: 18px;
	font-weight: 700;
	line-height: 21px;
	text-align: right;
	font-family: 'Roboto';
}

.reservation-card-foot {
	width: 100%;
	height: 44px;
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	padding: 0 10px;
	border-top: 1px solid #e0e0e0;
	user-select: none;
}
.card-foot-left {
	flex: 0 0 60%;
}
.card-foot-right {
	flex: 0 0 40%;
}
.card-bill-wrap {
	width: 100%;
	display: flex;
	column-gap: 10px;
	align-items: center;
}
.card-bill-wrap .card-bill-timing {
	margin: 0;
	height: 24px;
	flex: 0 0 auto;
	display: inline-block;
	padding: 0 10px;
	border-radius: 20px;
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	line-height: 22px;
	letter-spacing: 0.03em;
	font-family: 'Zen_Kaku_Gothic_New';
}
.card-bill-wrap .card-bill-timing.email {
	background-color: #e43321;
}
.card-bill-wrap .card-bill-timing.post {
	background-color: #1b8234;
}
.card-bill-wrap .card-bill-timing.sameday {
	background-color: #f57023;
}
.card-bill-wrap .card-bill-to {
	color: #1c1a1b;
	font-size: 13px;
	font-weight: 500;
	line-height: 17px;
	letter-spacing: 0.05em;
	font-family: 'Roboto';
}
.card-delivery-total {
	margin: 0;
	color: #f57023;
	font-size: 18px;
	font-weight: 700;
	line-height: 21px;
	text-align: right;
	font-family: 'Roboto';
}
.card-delivery-total.email {
	color: #e43321;
}
.card-delivery-total.post {
	color: #1b8234;
}
.card-delivery-total.sameday {
	color: #f57023;
}
.card-delivery-total .tax-incl {
	font-size: 10px;
}


/*
 * COMMON CONTENT PAGE
 */

.content-container {
}
.content-content {
	width: 100%;
	margin: 0 auto;
	max-width: 960px;
	padding: 80px;
	margin-top: 75px;
	background-color: #fff;
}
.content-content h1 {
	color: #1c1a1b;
	font-size: 24px;
	font-weight: 700;
	line-height: 35px;
	text-align: center;
	letter-spacing: 0.08em;
	margin-bottom: 60px;
}
.content-content h2 {
	color: #1c1a1b;
	font-size: 18px;
	font-weight: 700;
	line-height: 27px;
	letter-spacing: 0.08em;
	padding: 20px 0;
	margin-top: 60px;
	margin-bottom: 30px;
	border-bottom: 1px solid #000;
}
.content-content p {
	color: #1c1a1b;
	font-size: 15px;
	font-weight: 400;
	line-height: 22px;
	letter-spacing: 0.04em;
	margin-bottom: 30px;
}
.content-content a {
	display: flex;
	column-gap: 5px;
	align-items: center;
	color: #4a91e2;
	margin-bottom: 10px;
	text-decoration: none;
}
.content-content a:after {
	content: "";
	width: 14px;
	height: 14px;
	display: block;
	margin-left: 5px;
	background-size: contain;
	background-repeat: no-repeat;
	background-image: url('../img/external-link-icon.svg');
}


/*
 * COMMON LOGIN (AUTH) STYLES
 */

.auth-heading {
	margin-bottom: 60px;
}
.auth-heading-title,
.signup-heading-title {
	color: #1c1a1b;
	font-size: 24px;
	font-weight: 700;
	line-height: 35px;
	text-align: center;
	letter-spacing: 0.08em;
	margin-bottom: 21px;
}
.auth-heading-subtitle,
.signup-heading-subtitle {
	color: #1c1a1b;
	font-size: 12px;
	font-weight: 500;
	line-height: 22px;
	text-align: center;
	letter-spacing: 0.08em;
	margin-bottom: 0;
}
.auth-heading-required-note {
	color: #1c1a1b;
	font-size: 12px;
	font-weight: 400;
	line-height: 22px;
	text-align: center;
	letter-spacing: 0.08em;
	margin-bottom: 0;
}
.auth-heading-required-note .red-text {
	color: #e43321;
}
.signup-heading-subtitle {
	margin-bottom: 30px;
}


/*
 * LOGIN / SIGNUP PAGE
 */


.site-section.login-signup .site-container {
	padding-top: 60px;
}
.login-signup-content {
	display: flex;
	column-gap: 40px;
	align-items: flex-start;
	max-width: 960px;
	margin: 0 auto;
	font-family: 'Zen_Kaku_Gothic_New';
}
.login-column {
	flex: 0 0 calc((100% - 40px) / 2);
	padding: 60px;
	background-color: #fff;
}
.signup-column {
	flex: 0 0 calc((100% - 40px) / 2);
	padding: 60px;
	background-color: #fff;
}

.site-section.login-interim .site-container {
	padding-top: 0;
}
.login-interim-content {
	display: flex;
	margin: 0 auto;
	max-width: 480px;
	column-gap: 30px;
	align-items: stretch;
	flex-direction: column;
	padding: 30px 20px 20px 20px;
	background-color: #fff;
	font-family: 'Zen_Kaku_Gothic_New';
}
.login-interim-content .auth-heading {
	margin-bottom: 10px;
}
.login-interim-content .auth-heading-title {
	margin: 0;
}
.login-interim-content .login-form-group.login {
	margin-bottom: 15px;
}
.login-interim-content .login-form-controls {
	margin-top: 20px;
}
.login-interim-content .login-form-label {
	margin-bottom: 7px;
}


.login-form-group {
}
.login-form-group.login {
	margin-bottom: 60px;
}
.login-form-label {
	color: #1c1a1b;
	font-size: 16px;
	font-weight: 500;
	line-height: 23px;
	letter-spacing: 0.08em;
	margin-bottom: 15px;
}
.login-form-label .req-star {
	color: #e43321;
}
.login-password-wrap {
	width: 100%;
	position: relative;
}
.login-password-wrap.half {
	width: 50%;
}
.login-input-text,
.login-input-password {
	width: 100%;
	height: 61px;
	display: block;
	color: #1c1a1b;
	font-size: 18px;
	font-weight: 500;
	border-radius: 3px;
	border: 1px solid #e0e0e0;
	padding: 5px 15px 5px 15px;
}
.login-input-password {
	padding: 5px 45px 5px 15px;
}
/* does not seem to help...
.login-input-password:-webkit-autofill,
.login-input-password:-webkit-autofill:hover,
.login-input-password:-webkit-autofill:focus {
  -webkit-box-shadow: unset;
}
*/
.login-input-password.reservation {
	background-color: transparent;
	position: relative;
	z-index: 1;
}
.login-form-password-btn {
	z-index: 2;
	top: 0;
	right: 0;
	bottom: 0;
	width: 45px;
	height: auto;
	position: absolute;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
}
.login-form-password-icon {
	width: 21px;
	display: block;
}
.password-level-acceptable-icon {
	z-index: 2;
	top: 22px;
	left: 3px;
	width: 18px;
	height: 18px;
	position: absolute;
	display: none;
}
.login-password-wrap input[type="password"] ~ .login-form-password-btn .login-form-password-icon.hide {
	display: none;
}
.login-password-wrap input[type="password"] ~ .login-form-password-btn .login-form-password-icon.show {
	display: block;
}
.login-password-wrap input[type="text"] ~ .login-form-password-btn .login-form-password-icon.show {
	display: none;
}
.login-password-wrap input[type="text"] ~ .login-form-password-btn .login-form-password-icon.hide {
	display: block;
}
.password-input-wrap .password-level-back {
	z-index: 2;
	left: 3px;
	bottom: 3px;
	width: 5%;
	height: 6px;
	position: absolute;
	background-color: #ff8888;
	border-radius: 10px;
	transition: width 0.1s;
}
.password-input-wrap.level-0 .password-level-back {
	width: 5%;
	background-color: #ff8888;
}
.password-input-wrap.level-1 .password-level-back {
	width: 10%;
	background-color: #ff8888;
}
.password-input-wrap.level-2 .password-level-back {
	width: 20%;
	background-color: #ff8888;
}
.password-input-wrap.level-3 .password-level-back {
	width: 30%;
	background-color: #ff8888;
}
.password-input-wrap.level-4 .password-level-back {
	width: 40%;
	background-color: #ff8888;
}
.password-input-wrap.level-5 .password-level-back {
	width: 50%;
	background-color: #ff8888;
}
.password-input-wrap.level-6 .password-level-back {
	width: 60%;
	background-color: #04d804;
}
.password-input-wrap.level-7 .password-level-back {
	width: 70%;
	background-color: #04d804;
}
.password-input-wrap.level-8 .password-level-back {
	width: 80%;
	background-color: #04d804;
}
.password-input-wrap.level-9 .password-level-back {
	width: 90%;
	background-color: #04d804;
}
.password-input-wrap.level-10 .password-level-back {
	width: calc(100% - 6px);
	background-color: #04d804;
}
.password-input-wrap.level-6 .password-level-acceptable-icon,
.password-input-wrap.level-7 .password-level-acceptable-icon,
.password-input-wrap.level-8 .password-level-acceptable-icon,
.password-input-wrap.level-9 .password-level-acceptable-icon,
.password-input-wrap.level-10 .password-level-acceptable-icon {
	display: block;
}
.login-form-input-note {
	display: block;
	color: #9A9BA5;
	font-size: 13px;
	font-weight: 500;
	line-height: 19px;
	letter-spacing: 0.08em;
	margin-top: 12px;
}
.login-form-input-text {
	display: block;
	color: #1c1a1b;
	font-size: 16px;
	font-weight: 400;
	line-height: 23px;
	letter-spacing: 0.08em;
	margin: 15px 0;
}
.login-form-link {
	display: block;
	color: #4a91e2;
	font-size: 16px;
	font-weight: 400;
	line-height: 23px;
	letter-spacing: 0.08em;
	text-decoration-line: underline;
	margin-bottom: 25px;
}
.login-form-controls {
	display: flex;
	align-items: center;
	flex-direction: column;
	margin-top: 60px;
}
.login-form-controls .red-checkbox-wrap {
	margin-bottom: 20px;
}
.login-form-submit-btn {
	width: 280px;
	height: 60px;
	display: flex;
	column-gap: 14px;
	align-items: center;
	justify-content: center;
	position: relative;
	margin: 0 auto;
	border-radius: 100px;
	background-color: #1c1a1b;
}
.login-form-submit-label {
	color: #fff;
	font-size: 15px;
	font-weight: 600;
	font-family: "NotoSansJP";
}
.login-form-submit-arrow {
	width: 7px;
	height: auto;
	display: block;
}
.login-signup-content .login-auth-error {
	padding: 10px;
	margin-bottom: 20px;
	background-color: #fff8f8;
	border: 1px solid #aa0000;
}
.login-signup-content .login-auth-error-msg {
	margin: 0;
	color: #aa0000;
	font-size: 16px;
	font-weight: 500;
	line-height: 24px;
	letter-spacing: 0.02em;
}


/*
 * RECAPTCHA
 */

.reservation-recaptcha {
	display: flex;
	margin-bottom: 30px;
	justify-content: center;
}


/*
 * MY PAGE
 */

.site-section.mypage {
}
.site-section.mypage .site-container {
	padding: 80px 40px;
}
.myaccount-wrapper,
.mypage-wrapper {
	display: flex;
	column-gap: 30px;
	align-items: flex-start;
}
.mypage-sidebar {
	flex: 0 0 200px;
}
.mypage-sidebar-title {
	color: #1c1a1b;
	font-size: 28px;
	font-weight: 700;
	line-height: 36px;
	letter-spacing: 0.08em;
	margin-bottom: 40px;
}
.mypage-sidebar-menu {
	margin: 0;
	padding: 0;
	padding-left: 11px;
	list-style: none;
}
.mypage-sidebar-menu-item {
	padding: 20px 0;
	border-bottom: 1px solid #e0e0e0;
}
.mypage-sidebar-menu-item:first-child {
	border-top: 1px solid #e0e0e0;
}
.mypage-sidebar-menu-item.active {
}
.mypage-sidebar-menu-item.active .mypage-sidebar-menu-link {
	color: #282828;
}
.mypage-sidebar-menu-item .mypage-sidebar-menu-link.menu-link-disabled {
	pointer-events: none;
}
.myaccount-content {
	flex: 1 0 1px;
	padding-top: 40px;
}
.myaccount-inner {
	width: 90%;
	margin: 0 auto;
	max-width: 960px;
	background-color: #fff;
	padding: 80px;
}
.myaccount-heading {
	margin-bottom: 60px;
}
.myaccount-title {
	color: #1c1a1b;
	font-size: 24px;
	font-weight: 700;
	line-height: 35px;
	text-align: center;
	letter-spacing: 0.08em;
	margin-bottom: 25px;
}
.myaccount-subtitle {
	color: #1c1a1b;
	font-size: 15px;
	font-weight: 400;
	line-height: 27px;
	text-align: center;
	letter-spacing: 0.08em;
	font-family: 'Zen_Kaku_Gothic_New';
	margin-bottom: 0;
}
.myaccount-subtitle span {
	color: red;
}

.myaccount-content .myaccount-forms {
	display: flex;
	row-gap: 60px;
	flex-direction: column;
}
.myaccount-forms .myaccount-form {
	
}
.myaccount-form .myaccount-field-group {
}
.myaccount-form .myaccount-field-group.email,
.myaccount-form .myaccount-field-group.password {
	width: 400px;
}
.myaccount-form .myaccount-field-label {
	display: block;
	margin-bottom: 0;
}
.myaccount-form .myaccount-field-input.text-input {
	width: 100%;
	height: 60px;
	display: block;
	color: #1c1a1b;
	font-size: 16px;
	font-weight: 500;
	line-height: 16px;
	letter-spacing: 0.08em;
	margin-bottom: 0;
	padding: 0 25px;
	outline: none;
	border-radius: 3px;
	border: 1px solid #e0e0e0;
}
.myaccount-form .myaccount-controls-group {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-top: 60px;
}
.myaccount-form .myaccount-submit-btn {
	width: 170px;
	height: 60px;
	display: block;
	color: #fff;
	font-size: 15px;
	font-weight: 700;
	line-height: 58px;
	text-align: center;
	border-radius: 100px;
	background-color: #1c1a1b;
}


.mypage-content {
	flex: 1 0 1px;
	padding-top: 100px;
}
.mypage-content-title {
	color: #9a9ba5;
	font-size: 24px;
	font-weight: 500;
	line-height: 31px;
	letter-spacing: 0.05em;
}
.mypage-message-box {
	margin: 10px 0;
	padding: 10px 13px;
}
.mypage-message-box.failure {
	color: #aa0000;
	background: #fff8f8;
	border: 1px solid #aa0000;
}
.myaccount-content .mypage-message-box {
	margin: 0 auto;
	max-width: 960px;
}
.mypage-message-box.success {
	color: #1b843b;
	background: #effcef;
	border: 1px solid #1b843b;
}
.mypage-message-box .mypage-message-text {
	margin: 0;
	font-size: 15px;
	font-weight: 500;
	line-height: 21px;
}

.mypage-order-list {
	display: flex;
	row-gap: 20px;
	flex-direction: column;
	margin-top: 30px;
}
.mypage-order-list-order {
	height: 55px;
	display: flex;
	column-gap: 20px;
	align-items: center;
	border-radius: 5px;
	background-color: #fff;
	border: 1px solid #e0e0e0;
	padding: 0 15px;
}
.mypage-order-list-delivery,
.mypage-order-list-pickup-date {
	flex: 1 0 1px;
	color: #1c1a1b;
	font-size: 16px;
	font-weight: 500;
	line-height: 21px;
	font-family: 'Roboto';
	letter-spacing: 0.05em;
	margin: 0;
}
.mypage-order-list-total {
	flex: 0 0 150px;
	margin: 0;
	color: #f57023;
	font-size: 18px;
	font-weight: 700;
	line-height: 21px;
	text-align: right;
	font-family: 'Roboto';
}
.mypage-order-list-total .tax-incl {
	font-size: 10px;
}
.mypage-order-list-btn {
	width: 81px;
	height: 30px;
	flex: 0 0 auto;
	color: #2c76e6;
	font-size: 13px;
	font-weight: 500;
	line-height: 28px;
	text-align: center;
	letter-spacing: 0.05em;
	font-family: 'Noto Sans JP';
	border: 1px solid #e0e0e0;
	border-radius: 20px;
}
.mypage-order-list-btn:hover {
	border-color: #1c1a1b;
}
.mypage-order-list-btn.details {
	width: 111px;
}



/*
 * FORGOT PASSWORD PAGE
 */

.site-section.forgot-password {
}
.site-section.forgot-password .site-container,
.site-section.reset-password .site-container {
	padding-top: 66px;
}
.forgot-password-content,
.reset-password-content {
	width: 100%;
	margin: 0 auto;
	max-width: 640px;
	padding: 60px;
	background-color: #fff;
}


/*
 * REGISTRATION PAGE
 */

.site-section.registration {
}
.site-section.registration .site-container {
	padding-top: 66px;
}
.registration-content {
	width: 100%;
	margin: 0 auto;
	max-width: 960px;
	padding: 60px;
	background-color: #fff;
}
.register-feedback {
	padding: 10px 15px;
	margin-bottom: 30px;
}
.register-feedback.failure {
	background-color: #fff8f8;
	border: 1px solid #aa0000;
}
.register-feedback .register-feedback-msg {
	margin: 0;
	color: #aa0000;
	font-size: 16px;
	font-weight: 500;
	line-height: 24px;
	letter-spacing: 0.7px;
}


/*
 * REGISTRATION COMPLETE PAGE
 */

.site-section.registration-complete {
}
.site-section.registration-complete .site-container {
	padding-top: 66px;
}
.registration-complete-content {
	width: 100%;
	margin: 0 auto;
	max-width: 960px;
	padding: 60px;
	background-color: #fff;
}
.registration-complete-title {
	color: #1c1a1b;
	font-size: 24px;
	font-weight: 700;
	line-height: 35px;
	text-align: center;
	letter-spacing: 0.08em;
	margin-bottom: 25px;
}
.registration-complete-text {
	color: #1c1a1b;
	font-size: 15px;
	font-weight: 400;
	line-height: 180%;
	text-align: center;
	letter-spacing: 0.08em;
	margin-bottom: 90px;
}
.return-home-link {
	display: flex;
	column-gap: 14px;
	align-items: center;
	justify-content: center;
	margin-top: 30px;
}
.return-home-link-arrow {
	width: 7px;
	display: block;
}
.return-home-link-label {
	margin: 0;
	color: #4a91e2;
	font-size: 15px;
	font-weight: 500;
	line-height: 18px;
	letter-spacing: 0.05em;
	text-decoration-line: underline;
}
.return-home-link.forgot-password-link {
}


/*
 * CUSTOMER SEARCH PAGE
 */

.customer-heading {
	height: 70px;
	position: relative;
	border-bottom: 1px solid #e0e0e0;
}
.customer-heading-title {
	color: #1c1a1b;
	font-size: 20px;
	font-weight: 700;
	line-height: 68px;
	text-align: center;
	letter-spacing: 0.08em;
	margin-bottom: 0;
	font-family: 'Zen_Kaku_Gothic_New';
}
.customer-heading-btn {
	top: 50%;
	right: 15px;
	width: 150px;
	height: 40px;
	position: absolute;
	display: flex;
	column-gap: 5px;
	align-items: center;
	justify-content: center;
	border-radius: 30px;
	background-color: #fff;
	transform: translateY(-50%);
	box-shadow: 3px 3px 10px 0 rgba(0 0 0 / 10%);
}
.customer-heading-btn .customer-filter-btn-icon {
	width: 17px;
	display: block;
}
.customer-heading-btn .customer-filter-btn-label {
	margin: 0;
	color: #1c1a1b;
	font-size: 13px;
	font-weight: 700;
	line-height: 16px;
	letter-spacing: 0.05em;
	font-family: 'NotoSansJP';
}

.customer-filter {
	display: flex;
	column-gap: 24px;
	padding: 30px 30px 10px 30px;
	font-family: 'Zen_Kaku_Gothic_New';
}
.customer-filter-filters {
	flex: 1 0 1px;
	display: flex;
	gap: 15px 25px;
	flex-wrap: wrap;
}
.customer-filter-group {
	flex: 0 0 calc((100% - 50px) / 3);
}
.customer-filter-label {
	display: block;
	color: #1c1a1b;
	font-size: 16px;
	font-weight: 500;
	line-height: 23px;
	letter-spacing: 0.08em;
	margin-bottom: 10px;
}
.customer-filter-input {
	width: 100%;
	height: 60px;
	display: block;
	color: #1c1a1b;
	font-size: 16px;
	font-weight: 500;
	line-height: 16px;
	padding: 0 25px;
	border-radius: 3px;
	border: 1px solid #e0e0e0;
}

.customer-filter-controls {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
}
.customer-filter-btn {
	width: 90px;
	height: 34px;
	display: flex;
	column-gap: 5px;
	align-items: center;
	justify-content: center;
	border: none;
	outline: none;
	border-radius: 30px;
	background-color: #e43321;
}
.customer-filter-btn-icon {
	width: 13px;
	display: block;
}
.customer-filter-btn-label {
	color: #fff;
	font-size: 13px;
	font-weight: 700;
	line-height: 16px;
	letter-spacing: 0.05em;
	font-family: 'NotoSansJP';
}

.result-summary {
	margin-left: 30px;
}
.result-summary-text {
	color: #1c1a1b;
	font-size: 14px;
	font-weight: 400;
	line-height: 24px;
	font-family: 'NotoSansJP';
	margin-bottom: 0;
}
.customer-results-container {
	min-height: 120px;
	position: relative;
	margin-bottom: 100px;
}
.customer-results-overlay {
	top: 40px;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 2;
	display: none;
	position: absolute;
	align-items: center;
	justify-content: center;
	background-color: rgba(255 255 255  / 60%);
}
.customer-results-overlay .customer-results-spinner {
	width: 60px;
	display: block;
}
.customer-results-container.loading .customer-results-overlay {
	display: flex;
}

.customer-results {
	padding-top: 40px;
	padding-bottom: 40px;
	font-family: 'NotoSansJP';
}

.customer-table {
	width: 100%;
}
.customer-table thead th {
	height: 50px;
	color: #1c1a1b;
	font-size: 14px;
	font-weight: 600;
	line-height: 48px;
	padding: 0 12px;
	background-color: #f0f0f0;
}
.customer-table tbody td {
	height: 80px;
	color: #1c1a1b;
	font-size: 14px;
	font-weight: 400;
	line-height: 21px;
	padding: 0 12px;
	vertical-align: middle;
	border-bottom: 1px solid #e0e0e0;
}
.customer-table tbody .customer-email {
	max-width: 200px;
	word-break: break-all;
}
.customer-table tbody .customer-delivery-to {
	display: flex;
	row-gap: 5px;
	flex-direction: column;
}
.customer-delivery-to .delivery-to-value {
	margin: 0;
	display: block;
	color: #414141;
	font-size: 16px;
	font-weight: 600;
	line-height: 24px;
}
.customer-delivery-to .delivery-to-registered {
	display: block;
	width: fit-content;
	color: #1c1a1b;
	font-size: 10px;
	font-weight: 600;
	line-height: 20px;
	padding: 2px 4px;
	background-color: #c5f2c7;
}
.customer-table tbody td.actions-cell {
	display: flex;
	column-gap: 24px;
	align-items: center;
}
.customer-table tbody .actions-cell-action {
}
.customer-table tbody .actions-cell-action.details {
	width: 60px;
	height: 34px;
	color: #0f56b3;
	font-size: 14px;
	font-weight: 600;
	line-height: 33px;
	text-align: center;
	border-radius: 4px;
	border: 1px solid #e0e0e0;
	outline: none;
}
.customer-table tbody .actions-cell-action.book {
	width: 143px;
	height: 36px;
	display: flex;
	column-gap: 7px;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	line-height: 33px;
	text-align: center;
	border-radius: 30px;
	background-color: #e43321;
	outline: none;
}
.customer-table tbody .actions-cell-action.book .actions-cell-action-icon {
	width: auto;
	height: 14px;
	display: block;
}
.customer-results .no-customers {
	min-height: 200px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.customer-results .no-customers.initial {
}
.customer-results .no-customers.empty {
}
.customer-results .no-customers-message {
	margin: 0;
	color: #1c1a1b;
	font-size: 16px;
	font-weight: 500;
	line-height: 24px;
}



.table-pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	column-gap: 16px;
	margin-top: 40px;
}
.page-numbers {
	color: #fff;
	width: 30px;
	height: 30px;
	display: flex;
	position: relative;
	align-items: center;
	justify-content: center;
	font-size: 16px;
	font-weight: 600;
	font-family: 'Roboto';
	border-radius: 3px;
	background-color: #888;
	border: 1px solid #888;
	user-select: none;
}
.page-numbers.current {
	color: #888;
	border-color: #888;
	background-color: #fff;
}
.page-numbers:not(.current):hover {
	opacity: 0.8;
	color: #e0e0e0;
}


/*
 * RESPONSIVE @MEDIA  ---  767px
 */

@media screen and (max-width: 767px) {
	.dt-only {
		display: none;
	}
	.mb-only {
		display: initial;
	}

	.mb-order-0 {
		order: 0;
	}
	.mb-order-1 {
		order: 1;
	}
	.mb-order-2 {
		order: 2;
	}
	.mb-order-3 {
		order: 3;
	}

	.site-header {
		z-index: 5;
		top: 0;
		left: 0;
		right: 0;
		height: 60px;
		position: fixed;
		padding-right: 0;
	}
	.header-spacer {
		height: 60px;
		min-height: 60px;
	}
	.site-header .header-logo {
		height: 45px;
	}
	.site-header .header-controls,
	.site-header .header-menu-container {
		display: none;
	}
	.site-header .header-burger-container {
		display: block;
	}
	.header-burger {
		width: 60px;
		height: 60px;
		display: flex;
		align-items: stretch;
		flex-direction: column;
		justify-content: space-between;
		background-color: #e43321;
		padding: 19px 17px;
	}
	.header-burger-bar {
		width: 100%;
		height: 1px;
		display: block;
		background-color: #fff;
	}
	.header-burger.open {
		justify-content: center;
	}
	.header-burger.open .header-burger-bar.mid {
		display: none;
	}
	.header-burger.open .header-burger-bar.top {
		transform: translateY(0.5px) rotate(-45deg);
	}
	.header-burger.open .header-burger-bar.btm {
		transform: translateY(-0.5px) rotate(45deg);
	}
	.site-mobile-slideout {
		z-index: 5;
		display: block;
		position: fixed;
		top: 60px;
		bottom: 0;
		width: 100%;
		right: -110%;
		padding: 20px 40px;
		transition: right 0.3s;
		backdrop-filter: blur(5px);
		background-color: rgba(0 0 0 / 85%);
		border-top: 2px solid #e43321;
	}
	.site-mobile-slideout.open {
		right: 0;
	}
	.mobile-menu {
	    padding: 0;
	    margin: 0;
	    list-style: none;
	}
	.mobile-menu .menu-item {
		border-bottom: 1px solid #e43321;
	}
	.mobile-menu .menu-item a {
		display: block;
		color: #fff;
		font-size: 16px;
		font-weight: 500;
		line-height: 19px;
		text-align: center;
		letter-spacing: 0.8em;
		padding: 25px 0;
	}

	.login-signup-content {
		flex-direction: column;
	}
	.site-section.login-signup .site-container {
		padding: 30px 15px;
	}
	.login-signup-content {
		row-gap: 30px;
		column-gap: 0;
	}
	.login-column {
		width: 100%;
		flex: 0 0 auto;
		padding: 30px 20px;
	}
	.signup-column {
		width: 100%;
		flex: 0 0 auto;
		padding: 30px 20px;
	}

	.site-section.registration .site-container {
		padding: 30px 15px;
	}
	.registration-content {
		padding: 20px;
	}

	.site-section.registration-complete .site-container {
		padding: 30px 15px;
	}
	.registration-complete-content {
		padding: 20px;
	}

	.reservation-heading-title {
		display: none;
	}
	.reservation-heading-tabs-wrap {
		overflow-x: hidden;
	}
	.reservation-heading-tabs {
		width: 600%;
		column-gap: 0;
	}
	.reservation-heading-tabs.slide-1 {
		transform: translateX(0);
	}
	.reservation-heading-tabs.slide-2 {
		transform: translateX(calc(-1 * (100% / 6)));
	}
	.reservation-heading-tabs.slide-3 {
		transform: translateX(calc(-2 * (100% / 6)));
	}
	.reservation-heading-tabs.slide-4 {
		transform: translateX(calc(-3 * (100% / 6)));
	}
	.reservation-heading-tabs.slide-5 {
		transform: translateX(calc(-4 * (100% / 6)));
	}
	.reservation-heading-tabs.slide-6 {
		transform: translateX(calc(-5 * (100% / 6)));
	}
	.reservation-heading-tab {
		width: calc(100% / 6);
		flex-direction: row;
		column-gap: 20px;
		align-items: center;
		padding: 20px 10px 20px 20px;
	}
	.reservation-tab-number {
		display: none;
	}
	.reservation-tab-label {
		color: #9a9ba5;
		font-size: 12px;
		font-weight: 500;
		line-height: 17px;
		letter-spacing: 0.08em;
		font-family: 'Zen_Kaku_Gothic_New';
	}
	.reservation-tab-number-image {
		width: 70px;
		flex: 0 0 auto;
		display: block;
	}
	.reservation-tab-titles {
		flex: 1 0 1px;
	}
	.reservation-tab-title {
		display: block;
		font-size: 22px;
		font-weight: 700;
		line-height: 26px;
		letter-spacing: 0.08em;
		margin-bottom: 7px;
		font-family: 'Zen_Kaku_Gothic_New';
	}
	.reservation-tab-label {
		font-size: 16px;
		line-height: 23px;
	}
	.reservation-heading-tab.active-tab {
	}
	.reservation-heading-tab.failed-validation:before {
		width: 30px;
		height: 30px;
		top: 75px;
		left: 40px;
	}
	.site-section.reservation-section {
		padding-top: 0;
	}
	.reservation-container {
		width: 100%;
	}
	.reservation-slide {
		padding: 20px 0 0 0;
		background-color: transparent;
	}
	.reservation-slide-inner {
		padding: 40px 20px;
		background-color: #fff;
	}
	.reservation-slide-title {
		display: none;
	}
	.reservation-order {
		margin-top: 0px;
	}
	.reservation-inner-inputs-border {
		padding: 15px;
	}
	.reservation-order-option-total-wrap {
		flex: 1 0 calc(50% - 175px);
		text-align: right;
		margin-bottom: 10px;
	}
	.login-password-wrap.half {
		width: 100%;
	}
	.reservation-input.text-input {
		max-width: 100%;
		padding: 15px 7px;
	}
	.reservation-datetime-inputs {
		row-gap: 20px;
		flex-wrap: wrap;
		column-gap: 10px;
	}
	.reservation-date-picker-wrap {
		flex: 0 0 100%;
	}
	.reservation-time-picker-wrap {
		flex: 0 0 calc((100% - 41px)/2);
	}
	.reservation-time-picker {
		width: 100%;
		font-size: 20px;
		padding-left: 13px;
	}
	.reservation-time-picker-arrow {
		right: 13px;
	}
	.reservation-input {
		order: 0;
	}
	.reservation-input.w250 {
		flex: 0 0 100%;
	}
	.reservation-input.half {
	    flex: 0 0 100%;
	}
	.reservation-input-suffix.mgn20 {
		margin-left: 0;
		margin-top: 20px;
	}
	.reservation-input.text-area-input.address-input {
		height: 80px; /* (2 x line-height) + pad-top + pad-btm + 2 => (2 x 19) + 20 + 20 + 2 */
	}
	
	/* Fix for Safari disabled input text being too light - Mobile */
	.reservation-input.text-input:disabled {
		color: #1c1a1b !important;
		background-color: #f5f5f5;
		border-color: #d0d0d0;
		opacity: 1;
		-webkit-text-fill-color: #1c1a1b;
	}
	
	.reservation-radio-group {
		row-gap: 15px;
		column-gap: 0;
		flex-direction: column;
		align-items: flex-start;
	}
	.reservation-inner-inputs {
		margin-top: 10px;
	}
	.reservation-inner-inputs .reservation-fee-note {
		margin-bottom: 0;
	}
	.reservation-order-item.heading {
		display: none;
	}
	.reservation-order-item {
		column-gap: 0;
		row-gap: 15px;
		padding: 12px 0;
		flex-direction: column;
		align-items: flex-start;
	}
	.reservation-order-item-info-wrap {
		width: 100%;
		flex: 0 0 100%;
	}
	.reservation-order-item-inputs-wrap {
		width: 100%;
		flex: 0 0 auto;
		row-gap: 15px;
		flex-direction: column;
		align-items: flex-start;
	}
	.reservation-select-wrap {
		width: 100%;
		display: flex;
		align-items: center;
	}
	.reservation-order-input-mb-label {
		margin: 0;
		flex: 1 0 1px;
		display: block;
		color: #1c1a1b;
		font-size: 15px;
		font-weight: 700;
		line-height: 22px;
		letter-spacing: 0.08em;
	}
	.reservation-order-input-size,
	.reservation-order-input-quantity {
		width: 160px;
		flex: 0 0 160px;
	}
	.reservation-order-item-total-wrap {
		width: 100%;
		flex: 0 0 auto;
	}
	.reservation-order-item-total-wrap {
		width: 100%;
		flex: 0 0 auto;
	}
	.reservation-order-option {
		row-gap: 15px;
		flex-wrap: wrap;
		padding: 40px 0;
		align-items: flex-end;
	}
	.reservation-order-option-info-wrap {
		flex: 0 0 100%;
	}
	.reservation-order-option-name,
	.reservation-order-option-price {
		font-size: 14px;
		line-height: 20px;
	}
	.reservation-order-option.heading .reservation-order-option-total-wrap,
	.reservation-order-option.heading .reservation-order-option-quantity-wrap {
		display: none;
	}
	.reservation-order-option .reservation-order-option-quantity-wrap.reservation-select-wrap {
		min-width: 100%;
	}
	.reservation-order-total-taxes {
		align-items: flex-end;
		flex-direction: column;
	}
	.policy-checkboxes .reservation-input-checkbox ~ .reservation-input-checkbox-label {
		display: flex;
		align-items: center;
		margin-bottom: 5px;
	}
	.reservation-input-checkbox ~ .reservation-input-checkbox-label {
		font-size: 13px;
	}
	.policy-checkboxes .reservation-input-checkbox-label span {
		margin-left: 25px;
	}
	.policy-checkboxes .policy-link {
		margin-left: 25px;
		margin-top: 5px;
		display: block;
	}
	.reservation-panel-summary .reservation-order-item-size-wrap,
	.reservation-panel-summary .reservation-order-item-quantity-wrap {
		width: 100%;
	}
	.slide-5 .reservation-order-item-quantity-wrap.reservation-select-wrap:after,
	.slide-5 .reservation-order-option .reservation-order-option-quantity-wrap.reservation-select-wrap:after {
		content: unset;
	}
	.register-password-group.collapsable-group.uncollapsed {
		max-height: 180px;
	}
	.reservation-inner-inputs.collapsable-group.uncollapsed {
		max-height: 1120px;
	}
	.billing-timing-inputs.collapsable-group.uncollapsed {
		max-height: 600px;
	}
	.need-receipt-info.collapsable-group.uncollapsed {
		max-height: 310px;
	}


	/*
	 * MANAGE RESERVATIONS PAGE
	 */

	.manage-reservations-content {
		padding: 20px;
		overflow-x: auto;
	}
	.manage-reservations-toolbar {
		height: auto;
		row-gap: 20px;
		flex-direction: column;
	}
	.manage-reservations-toolbar .toolbar-left {
		flex: 0 0 auto;
		padding: 15px 0 0 0;
	}
	.manage-reservations-toolbar .toolbar-center {
		flex: 0 0 auto;
	}
	.manage-reservations-toolbar .date-controls {
		row-gap: 15px;
		flex-direction: column;
	}
	.manage-reservations-toolbar .date-controls-today {
		padding-left: 0;
	}
	.manage-reservations-toolbar .toolbar-right {
		flex: 0 0 auto;
		padding-right: 0;
		padding-bottom: 15px;
	}
	.reservation-via-group {
		width: auto;
		min-width: 1360px;
	}
	.mobile-table-scroll-prompt {
		width: 100%;
		display: block;
		padding: 9px 20px 3px 20px;
		background-color: #1c1a1b;
	}
	.table-scroll-prompt-image {
		width: 70px;
		display: block;
	}
	.myaccount-wrapper,
	.mypage-wrapper {
		flex-direction: column;
	}
	.site-section.mypage .site-container {
		padding: 25px 15px;
	}
	.mypage-sidebar-title {
		font-size: 21px;
		margin-bottom: 20px;
	}
	.mypage-sidebar-menu-item {
		padding: 13px 0;
	}
	.mypage-order-list-order {
		row-gap: 3px;
		flex-wrap: wrap;
		padding: 10px 15px;
		height: fit-content;
		justify-content: space-between;
	}
	.mypage-order-list-delivery,
	.mypage-order-list-pickup-date {
		flex: 0 0 100%;
	}
	.mypage-order-list-total {
		text-align: left;
	}
	.mypage-content,
	.myaccount-content {
		width: 100%;
		flex: 0 0 auto;
		padding-top: 30px;
	}
	.myaccount-inner {
		width: 100%;
		margin: 0;
		padding: 20px 15px;
	}
	.myaccount-form .myaccount-field-group.email,
	.myaccount-form .myaccount-field-group.password {
		width: 100%;
	}
}



