/* Sub-page mobile adjustments for the shared desktop HTML. */
#main {
	overflow: hidden;
}

body:not(.home) #main {
	margin-top: 0;
}

#main .content,
.sub-text,
#main [class$="-con"],
#main [class*="-con "] {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.sub-title {
	padding: 20px;
	box-sizing: border-box;
	writing-mode: horizontal-tb !important;
	font-size: 24px !important;
	line-height: 1.45;
}

.sub-img {
	height: 260px;
}

.sub-img p {
	margin-top: 0;
	transform: translateY(-50%);
	font-size: 28px !important;
	line-height: 1.4;
}

.sub-text {
	padding: 0 20px 24px;
	font-size: 14px;
	line-height: 1.8;
}
#main img {
	max-width: 100%;
	height: auto;
}

#main iframe {
	width: 100%;
	max-width: 100%;
}

#main table {
	width: 100% !important;
	max-width: 100%;
	table-layout: fixed;
}

#main table th,
#main table td {
	overflow-wrap: anywhere;
}

.about .about-con {
	height: auto !important;
}

.about .about-con .ab-textbox {
	float: none !important;
	width: 100% !important;
	height: auto !important;
	padding: 0 !important;
	box-sizing: border-box;
	writing-mode: horizontal-tb !important;
}

.about .about-con .ab-textbox p.ab-st,
.about .about-con .ab-textbox p.ab-text {
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	box-sizing: border-box;
	writing-mode: horizontal-tb !important;
}

.about .about-con .ab-textbox p.ab-st {
	margin-bottom: 14px !important;
	font-size: 21px;
	line-height: 1.6;
}

.about .about-con .ab-textbox p.ab-text {
	font-size: 15px;
	line-height: 1.9;
	overflow-wrap: anywhere;
}

.about .about-con .ab-imgbox {
	float: none !important;
	width: 100% !important;
	height: auto !important;
	margin-top: 22px;
}

.shop-box,
.shop-detail-box1,
.shop-detail-box2,
.about-box,
.system-box,
.faq-box,
.policy-box,
.contact-box,
.joboffer-box,
.sitemap-box,
.media-box,
.mimich-box {
	width: 100% !important;
	max-width: 100%;
	margin-left: 0 !important;
	margin-right: 0 !important;
	box-sizing: border-box;
}

.shop-detail-box1,
.shop-box ul,
.about-box,
.system-box {
	display: block;
	flex-direction: column;
}

.shop-detail-box1>*,
.shop-box ul>li,
.about-box>*,
.system-box>* {
	float: none !important;
	display: block;
	width: 100% !important;
	max-width: 100%;
}

.shop-detail-access dl,
.faq-box,
.joboffer-box dl {
	padding-left: 0;
	padding-right: 0;
}

.komachi .komachi-searchbox {
	margin-top: 24px;
	overflow: visible;
}

.komachi .komachi-searchbox .content {
	padding: 0 16px;
}

.komachi .komachi-searchbox p {
	float: none;
	width: auto;
	margin-bottom: 10px;
	line-height: 1.5;
}

.komachi .komachi-searchbox form,
.komachi .komachi-searchbox ul {
	width: 100%;
}

.komachi .komachi-searchbox ul {
	float: none;
	display: grid;
	grid-template-columns: 1fr;
	gap: 10px;
	overflow: visible;
}

.komachi .komachi-searchbox ul li {
	display: block;
	width: auto;
	padding: 0;
}

.komachi .komachi-searchbox ul li label {
	display: block;
}

.komachi .komachi-searchbox ul li select {
	display: block;
	width: 100%;
	box-sizing: border-box;
}

.komachi .komachi-listbox {
	margin: 18px 0 36px;
}

.komachi .komachi-listbox ul {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: 12px;
	overflow: visible;
}

.komachi .komachi-listbox ul li {
	float: none !important;
	width: auto !important;
	height: auto !important;
	margin: 0 !important;
	min-width: 0;
}

.komachi .komachi-listbox ul li a,
.komachi .komachi-listbox ul li dl {
	display: block;
	height: 100%;
}

.komachi .komachi-listbox ul li dl dt {
	height: auto;
	aspect-ratio: 4 / 5;
}

.komachi .komachi-listbox ul li dl dt img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.komachi .komachi-listbox ul li dl dd {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 6px;
	padding: 0 8px;
}

.komachi .komachi-listbox ul li dl dd span.kl-name,
.komachi .komachi-listbox ul li dl dd span.kl-store {
	float: none;
	min-width: 0;
	line-height: 32px;
	white-space: nowrap;
}

.komachi .komachi-listbox ul li dl dd span.kl-name {
	font-size: 14px;
}

.komachi .komachi-listbox ul li dl dd span.kl-store {
	overflow: hidden;
	font-size: 10px;
	text-overflow: ellipsis;
}

.komachi-detail .komachi-detail-con .komachi-detail-box1,
.komachi-detail .komachi-detail-con .komachi-detail-box2 {
	width: 100% !important;
	margin: 24px 0 !important;
}

.komachi-detail-box1 .kd-b-left,
.komachi-detail-box1 .kd-b-right {
	float: none !important;
	width: 100% !important;
	height: auto !important;
	margin: 0 !important;
}

.komachi-detail-box1 .kd-b-left {
	max-width: 360px;
	margin: 0 auto 20px !important;
}

.komachi-detail-box1 .kd-b-right {
	padding: 16px;
}

.komachi-detail-box1 .kd-b-left ul {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 8px;
	padding: 8px;
}

.komachi-detail-box1 .kd-b-left ul li {
	float: none;
	width: auto;
	margin: 0;
}

.komachi-detail-box2 .kd-b-inner {
	padding: 16px;
}

.komachi-detail-box2 .kd-b-inner dl dd {
	padding: 12px 0;
}

.komachi-detail .komachi-detail-con .btn-box a.bl-btn,
.komachi-detail .komachi-detail-con .komachi-d-link {
	width: 100% !important;
}

.komachi-detail .komachi-detail-con .komachi-d-link {
	display: grid;
	grid-template-columns: 1fr 1fr;
}

.komachi-detail .komachi-detail-con .komachi-d-link li {
	display: block;
	width: auto;
}

.komachi-detail .komachi-detail-con .komachi-d-link li img {
	width: 48px;
}

@media (max-width: 420px) {
	.komachi .komachi-listbox ul {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}
}

/* Convert legacy table/float layouts into stable mobile blocks. */
.shop .shop-con,
.about .about-con,
.system .system-con,
.contact .contact-con,
.joboffer .jobjffer-con,
.faq .faq-con,
.policy .policy-con,
.media .media-con,
.mimich .mimich-con,
.shop-detail .shop-detail-con {
	padding: 16px;
	margin:unset;
	height: auto;
}

.shop .shop-con .shop-box a {
	padding: 12px;
}

.shop .shop-con .shop-box ul,
.shop .shop-con .shop-box ul li,
.system .system-con .system-box,
.system .system-con .system-box li,
.contact .contact-con .contact-box,
.contact .contact-con .contact-box .cb-imgbox,
.contact .contact-con .contact-box .cb-infobox,
.shop-detail-box2 ul,
.shop-detail-box2 ul li {
	display: block;
	width: 100%;
	box-sizing: border-box;
}

.shop .shop-con .shop-box ul li.sb-textbox,
.contact .contact-con .contact-box .cb-infobox {
	padding: 14px 0 0;
}

.shop .shop-con .shop-box ul li.sb-imgbox,
.shop .shop-con .shop-box ul li.sb-textbox {
	display: block !important;
	width: 100% !important;
	box-sizing: border-box;
}

.shop .shop-con .shop-box ul li.sb-imgbox img {
	display: block;
	width: 100%;
	max-height: 280px;
	object-fit: cover;
}

.shop .shop-con .shop-box ul li.sb-textbox span.sb-tb-st {
	margin-bottom: 14px;
	padding-bottom: 8px;
	font-size: 20px;
	line-height: 1.5;
}

.shop .shop-con .shop-box ul li.sb-textbox dl,
.shop .shop-con .shop-box ul li.sb-textbox dl dt,
.shop .shop-con .shop-box ul li.sb-textbox dl dd {
	display: block;
	width: 100%;
	box-sizing: border-box;
}

.shop .shop-con .shop-box ul li.sb-textbox dl {
	margin: 0 0 16px;
	overflow: visible;
}

.shop .shop-con .shop-box ul li.sb-textbox dl:last-child {
	margin-bottom: 0;
}

.shop .shop-con .shop-box ul li.sb-textbox dl dt {
	margin-bottom: 5px;
	font-size: 14px;
	font-weight: bold;
}

.shop .shop-con .shop-box ul li.sb-textbox dl dd {
	font-size: 15px;
	line-height: 1.75;
	overflow-wrap: anywhere;
}

.system .system-con .content,
.shop-detail .shop-detail-con .content {
	width: 100% !important;
}

.system .system-con .content .system-detail-box1 {
	flex-direction: column;
}

.system .system-con .content .system-detail-box1 .sy-b-left,
.system .system-con .content .system-detail-box1 .sy-b-right,
.shop-detail-box1 .sd-b-left,
.shop-detail-box1 .sd-b-right {
	float: none;
	flex: 1 1 50%;
	width: 100%;
	margin: 0 0 16px;
	box-sizing: border-box;
}

.contact .contact-con .contact-box {
	padding: 16px;
}

.contact .contact-con .contact-box .cb-imgbox {
	max-width: 180px;
	margin: 0 auto;
}

.contact .contact-con .contact-box .cb-infobox .cb-ib-inner dl,
.contact .contact-con .contact-box .cb-infobox .cb-ib-inner dl dt,
.contact .contact-con .contact-box .cb-infobox .cb-ib-inner dl dd {
	display: block;
	width: 100%;
	box-sizing: border-box;
}

/* Sitemap: use one readable hierarchy instead of two cramped columns. */
.sitemap .sitemap-con {
	margin: 28px 0;
	font-size: 15px;
}

.sitemap .sitemap-con .sitemap-box {
	padding: 18px 16px;
}

.sitemap .sitemap-con .sitemap-box .sitemap-b-st {
	margin-bottom: 12px;
	padding-bottom: 10px;
	font-size: 20px;
}

.sitemap .sitemap-con .sitemap-box ul,
.sitemap .sitemap-con .sitemap-box ul.sm-b-right {
	float: none;
	display: grid;
	grid-template-columns: 1fr;
	width: 100%;
	margin: 0;
	padding: 0;
}

.sitemap .sitemap-con .sitemap-box ul li {
	margin: 0;
	border-bottom: 1px solid rgba(172, 150, 104, .25);
}

.sitemap .sitemap-con .sitemap-box ul:last-child li:last-child {
	border-bottom: 0;
}

.sitemap .sitemap-con .sitemap-box ul li a {
	display: flex;
	align-items: center;
	gap: 10px;
	min-height: 48px;
	padding: 8px 4px;
	line-height: 1.5;
}

.sitemap .sitemap-con .sitemap-box ul li img {
	flex: 0 0 24px;
	width: 24px;
	height: 24px;
	margin: 0;
	object-fit: contain;
}

.sitemap .sitemap-con .sitemap-box ul li.sitemap-sub1 {
	margin-left: 18px;
}

.sitemap .sitemap-con .sitemap-box ul li.sitemap-sub2 {
	margin-left: 36px;
}

/* Male staff recruitment */
.joboffer .jobjffer-con {
	display: grid;
	grid-template-columns: 1fr;
	gap: 18px;
	margin: 28px 0;
}

.joboffer .jobjffer-con .joboffer-box,
.joboffer .jobjffer-con .jo-staff,
.joboffer .jobjffer-con .jo-skype {
	float: none;
	width: 100% !important;
	margin: 0;
	padding: 16px;
	box-sizing: border-box;
}

.joboffer .jobjffer-con .joboffer-box .jb-box-st {
	font-size: 20px;
	line-height: 1.5;
}

.joboffer .jobjffer-con .jo-staff dl,
.joboffer .jobjffer-con .jo-skype dl {
	margin: 0 0 16px;
	padding: 10px 0;
}

.joboffer .jobjffer-con .jo-staff dl dd,
.joboffer .jobjffer-con .jo-skype dl dd,
.joboffer .jobjffer-con .jo-skype .jb-box-text {
	margin-left: 0;
	margin-right: 0;
	line-height: 1.75;
	overflow-wrap: anywhere;
}

.joboffer .jobjffer-con .jo-skype dl dd.linkbox a.skype-btn {
	display: block;
	width: 100%;
	min-height: 46px;
	padding: 12px 10px;
	box-sizing: border-box;
}

/* English reservation form: convert the desktop table into readable mobile cards. */
.reserve-con {
	margin: 24px 0 40px;
}

.reserve-con .content {
	width: calc(100% - 24px) !important;
	padding: 0 !important;
}

.form-reserve {
	width: 100%;
	margin: 0;
	padding: 12px;
	font-size: 15px;
	box-sizing: border-box;
	overflow: visible;
}

.reserve-con__table,
.reserve-con__tbody,
.reserve-con__row,
.reserve-con__head,
.reserve-con__column,
.reserve-con__tbody tr {
	display: block;
	width: 100% !important;
	box-sizing: border-box;
}

.reserve-con__table {
	table-layout: auto !important;
}

.reserve-con__row {
	margin: 0;
}

.reserve-con__head {
	padding: 12px 14px;
	border: 0;
	border-radius: 4px 4px 0 0;
	font-size: 15px;
	line-height: 1.5;
	text-align: left;
}

.reserve-con__head_st {
	padding: 16px 12px;
	border-radius: 4px;
	font-size: 19px;
	line-height: 1.45;
	text-align: center;
}

.reserve-con__row_group+.reserve-con__row {
	margin-top: 18px;
}

.reserve-con__column {
	padding: 14px;
	border: 1px solid #ac966a;
	border-top: 0;
	font-size: 15px;
	line-height: 1.65;
}

.reserve-con__column+.reserve-con__column {
	border-top: 1px dashed rgba(172, 150, 106, .55);
}

span.form-require {
	display: inline-block;
	margin-left: 7px;
	color: #fff;
	font-size: 10px;
	line-height: 1;
}

.form-group_flex {
	flex-direction: column;
	gap: 12px;
}

.form-group__flex-child_col1,
.form-group__flex-child_col5,
.form-group__flex-child_col9 {
	width: 100%;
}

.form-group__flex-child_col1 {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px;
}

#address_box {
	display: contents;
}

.form-group__text,
.form-group__select {
	width: 100%;
	min-width: 0;
	height: 48px;
	padding: 8px 10px;
	border: 1px solid #aaa;
	border-radius: 4px;
	background: #fff;
	font-size: 16px;
	box-sizing: border-box;
}

.form-group__text {
	margin-bottom: 10px;
}

.form-group__text:last-child {
	margin-bottom: 0;
}

.form-group__radio-button {
	min-width: 0;
	height: auto;
	min-height: 48px;
	margin-bottom: 10px;
	padding: 10px 8px;
	border-radius: 4px;
	font-size: 14px;
	line-height: 1.4;
	text-align: center;
	box-sizing: border-box;
}

.form-group__flex-child_col1 .form-group__radio-button {
	margin: 0;
	font-size: 12px;
}

.form-group__sst {
	margin: 4px 0 7px;
	font-size: 17px;
	line-height: 1.45;
}

.form-group__sub-text {
	min-height: 0;
	margin-bottom: 12px;
	font-size: 14px;
	line-height: 1.65;
}

.form-group__flex-children+.form-group__flex-children {
	margin-top: 10px;
	padding-top: 18px;
	border-top: 1px solid rgba(172, 150, 106, .4);
}

.reserve-con__comments {
	display: block;
	margin-bottom: 12px;
	font-size: 13px;
	line-height: 1.6;
}

.reserve-con__check-group {
	align-items: flex-start;
	line-height: 1.55;
}

.reserve-con__checkbox,
.check-item__content {
	flex: 0 0 24px;
	width: 24px;
	height: 24px;
	margin: 0;
}

.check-item {
	align-items: flex-start;
	flex-wrap: wrap;
	gap: 7px;
	width: 100%;
	margin: 20px 0;
	font-size: 14px;
	line-height: 1.55;
}

.check-item__link {
	overflow-wrap: anywhere;
}

.form-button {
	width: 100%;
	min-height: 54px;
	height: auto;
	margin: 18px 0 4px;
	padding: 14px 12px;
	border-radius: 5px;
	font-size: 17px;
	font-weight: bold;
}

.ui-datepicker {
	width: min(19em, calc(100vw - 24px)) !important;
	max-width: calc(100vw - 24px);
	padding: 8px !important;
	box-sizing: border-box;
}

.ui-datepicker table {
	table-layout: fixed;
	font-size: 13px;
}

.ui-datepicker th,
.ui-datepicker td {
	padding: 2px;
	overflow-wrap: normal !important;
}

@media (max-width: 359px) {
	.form-reserve {
		padding: 8px;
	}

	.reserve-con__head,
	.reserve-con__column {
		padding: 11px;
	}

	.form-group__flex-child_col1 {
		grid-template-columns: 1fr;
	}

	.form-group__flex-child_col1 .form-group__radio-button {
		min-height: 44px;
	}
}