/*
Theme Name: テンプレート化
Description: 現行天神公式を原型とする貸会議室共通テーマ。Local検証用・実受付停止。
Theme URI: none
Author: Naomasa
Author URI: none
Version: 0.2.8
Requires PHP: 8.3
*/

/* One theme foundation. Keep the Tenjin cascade and values unchanged.
 * Mobile declarations precede min-width desktop enhancements. Narrow-only
 * exception blocks remain guarded until component-by-component comparison.
 * Do not add facility-specific CSS or blanket box-sizing/font resets. */
:root { --rental-color-accent: #2ca5ac; --rental-color-text: #333; --rental-color-surface: #f5f5f5; --rental-content-max: 1200px; }

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
html{
	position:relative;
}

/* Native image dialog: retain the existing viewer skin and browser modal focus handling. */
dialog.rental-native-lightbox{inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;overflow:visible;background:transparent;color:inherit;}

dialog.rental-native-lightbox:not([open]){display:none;}

dialog.rental-native-lightbox[open]{display:block;}

dialog.rental-native-lightbox::backdrop{background:transparent;}

.rental-native-lightbox .fancybox-stage{touch-action:none;}

.rental-native-lightbox .fancybox-slide--image .fancybox-content{transition:none;}

body{
	font-size: 1em;
	font-family: "Noto Sans JP", "Yu Gothic", "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo";
	padding:0 0px 0 0;
	background-color: #f5f5f5;
	letter-spacing: calc(40 / 1000 * 1em);
	line-height:1.6em;
}

body#tinymce{
	max-width:1000px;
	border:none;
	text-align:left;
	color:#333;
	font-family: "Noto Sans JP", "Yu Gothic", "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo";
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	font-size: 1em;
	padding: 2.5em 1.5em;
}

p {
	margin: 0 0 1em 0;
}

p.caution{
	margin:0 0 .2em 0;
	padding:0;
	color:#cc363f;
	font-weight:500;
	font-size:.9em;
}

img{
	max-width:100%;
}

a img{
	border:none;
	transition-property: all;	/* 適用対象 = なんでも */
	transition-duration: 1.0s;	/* 秒数 = 1.0秒 */
	max-width: 100%;
}

a {
	color: var(--rental-color-accent);
	text-decoration:none;
	/* margin: 5em; */
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
li {
	list-style:none;
}

ul {
	padding: 0;
	margin: 0;
}

a.pdf{
	display:block;
	margin: 0px 0px 10px 0px;
	padding:0 0 0 60px;
	width:100%;
	line-height: 4em;
	text-decoration:none;
	color:#333;
	border:3px solid #f34235;
	color:#f34235;
	transition: 0.3s;
	box-sizing:border-box;
	position:relative;
}

a.pdf:hover{ 
	border:3px solid #f34235;
	color:#ffffff;
	background-color: #f34235;
	padding:0 0 0 80px;
}

a.pdf:before {
  font-family: 'Material Symbols Outlined';
  content: '\f090';
	position:absolute;
	display:inline-block;
	font-size:20px;
	color:#f34235;
	transition: 0.3s;
	left:1em;
}

a.pdf:hover:before {
	color:#fff;
}
}

@media screen and (min-width: 769px), print {
.caution li {
	list-style:none;
	color:#cc363f;
	font-size:.85em;
}

.caution li:before {
  content: '※';
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
/* ▼▼▼▼▼レイアウト▼▼▼▼▼ */
.layout{
	margin: 0 auto;
	padding: 0;
	max-width: var(--rental-content-max);
	position: relative;
}

#page_title .layout{
	text-align:left;
	margin-bottom:2em;
}

/* ▼▼▼▼▼▼見出し▼▼▼▼▼▼ */
h1 {
	font-size: 24px;
	font-weight: 400;
	line-height: 1.5em;
	/* letter-spacing: -0.02em; */
	margin-top: 10px;
	margin-bottom: 10px;
}

h2 {
	position:relative;
	font-size: 25px;
	font-weight: bold;
	line-height: 1.35em;
	letter-spacing: 0em;
	margin-top: 15px;
	margin-bottom: 15px;
	padding: 10px 0px 12px 0px;
	color: #333;
	border-bottom: none;
	display: block;
	text-align:center;
}

h3 {
	padding: 0px 10px 3px 0px;
	color: #333;
	font-weight: bold;
	font-size: 1.2em;
	margin: .5em 0 1em 0;
	border-radius: 0;
	position: relative;
	text-align: left;
}
}

@media screen and (min-width: 769px), print {
h3 {
	padding: 0px 10px 3px 0px;
	color: #333;
	font-weight: bold;
	font-size: 1.4em;
	margin: .5em 0 1em 0;
	border-radius: 0;
	position: relative;
	text-align: left;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
h3 span{
	font-family: 'Roboto', sans-serif;
	display:block;
	font-size:.8em;
	letter-spacing:.2em;
	color: var(--rental-color-accent);
	margin-top:.5em;
	margin-left:.2em;
}

h4 {
	padding: 3px 0px 0px 0px;
	color: #333;
	font-size: 1em;
	margin: 5px 0 10px 0;
}

h5{
	padding:0px 10px 0px 10px;
	color:#333;
	font-weight:normal;
	font-size:18px;
	margin: 12px 0 20px 0;
	border-left:3px solid #ED7B01;
}

/* ▼▼▼▼▼ヘッダー▼▼▼▼▼▼ */
header{
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	z-index: 10000;
	width: 100%;
	background-color: rgb(255 255 255 / 85%);
	border-bottom:1px solid #fff;
	height: 60px;
	border-bottom: 1px solid #ccc;
}
}

@media screen and (min-width: 769px), print {
/* ▼▼▼▼▼ヘッダー▼▼▼▼▼▼ */
header{
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	z-index: 10000;
	width: 100%;
	background-color: rgb(255 255 255 / 85%);
	border-bottom:1px solid #fff;
	height: 70px;
	border-bottom: 1px solid #ccc;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
#home header{
	border-bottom:none;
}

header.home{
	position: absolute;
}

#header_navi{
	width:100%;
	box-sizing:border-box;
	padding: 5px 0em 0 1em;
	display:flex;
	justify-content: space-between;
	align-items: center;
	/* background-color:#303030; */
}

#header_menu{
	width:100%;
	padding:0 1em;
	box-sizing:border-box;
	display:flex;
	justify-content: space-between;
	align-items: center;
}

.logo{
	width: 50vw;
	max-width: 50%;
}
}

@media screen and (min-width: 769px), print {
.logo{
	width: 300px;
	max-width:20%;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.logo h1 {
	font-size: 24px;
	font-weight: 400;
	line-height: 1.5;
	margin-top: 10px;
	margin-bottom: 10px;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
/* ▼▼▼▼▼メインメニュー▼▼▼▼▼ */
mainmenu ul{
	list-style-type:none;
	display: block;
	margin:0;
	padding: 4em 0 2em 0;
	flex-wrap: wrap;
	flex-direction: column;
}
}

@media screen and (min-width: 769px), print {
mainmenu ul{
flex-direction:row;

	list-style-type:none;
	display:flex;
	margin:0;
	padding:0;
	flex-wrap: wrap;
}
}

@media screen and (max-width: 768px) {
mainmenu li{
	margin:0;
	padding: 0 1.5em;
	font-size: 1em;
	color: #fff;
	display: block;
	position: relative;
}
}

@media screen and (min-width: 769px), print {
mainmenu li{
	margin:0;
	padding:0;
	font-size: calc(10px + 5 * (100vw - 800px)/1120);
}
}

@media screen and (max-width: 768px) {
mainmenu li a{
	font-weight: 500;
	color: #fff;
	padding: 1em 0em 1em .5em;
	position: relative;
	display: block;
	text-align: left;
	border-bottom: 1px solid #fff;
}
}

@media screen and (min-width: 769px), print {
mainmenu li a{
	font-weight: 500;
	color:#333;
	padding:1em 1em;
	position: relative;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
mainmenu li a:hover{
	color:#698896;
}

mainmenu li a.menu10{
	padding-left: 3.6em;
	padding-right: 2.5em;
	padding-top: .5em;
	padding-bottom: .5em;
	background-color: #c06262;
	color: #fff;
	border-radius: 0em;
	font-weight: normal;
}
}

@media screen and (min-width: 769px), print {
mainmenu li a.menu10{
	padding-left: 3.5em;
	padding-right: 2.5em;
	padding-top: .5em;
	padding-bottom: .5em;
	background-color: #c06262;
	color: #fff;
	border-radius: 2em;
	font-weight: normal;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
mainmenu li a.menu10::before {
	font-family: 'Material Symbols Outlined';
	content: '\e614';
	font-size: 1.6em;
	font-weight: normal;
	padding: 0;
	margin-top: .1em;
	position: absolute;
	left: 1em;
	top:0;
	display: block;
}
}

@media screen and (min-width: 769px), print {
mainmenu li a.menu10::before {
	font-family: 'Material Symbols Outlined';
	content: '\e614';
	font-size: 1.4em;
	font-weight: normal;
	padding: 0;
	margin-top: .3em;
	position: absolute;
	left: 1.2em;
	top:0;
	display: block;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
tel{
	text-align:left;
	white-space: nowrap;
}
}

@media screen and (max-width: 768px) {
@media (max-width: 1399px) {
tel{
	text-align:left;
	/* display:none; */
}
}
}

@media screen and (min-width: 769px), print {
@media (max-width: 1399px) {
tel{
	text-align:left;
	display:none;
}
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.main_img_tel{
	color:#000;
	font-family: 'Roboto', sans-serif;
	font-weight: 500;
	font-size: 2em;
	padding-left:1.3em;
	background-image:url('img/icon_freedial.png');
	background-repeat:no-repeat;
	background-size:1em;
	background-position:left center;
}

.main_img_tel_time{
	font-size: .78em;
	font-weight:bold;
}

a.main_img_link{
	width:5em;
	padding: 1em 4em;
	display: block;
	background-color: #303030;
	color:#fff;
	/* border-radius: 5px; */
}

.main_img_tel_cont dl{
	display:flex;
	align-items: center;
}

.main_img_tel_cont dt{
	font-size: calc(11px + 5 * (100vw - 800px)/800);
}

.main_img_tel_cont dd{
	text-align:left;
}
}

@media screen and (max-width: 768px) {
/* ▼▼▼▼ハンバーガーメニュー▼▼▼▼ */
#menuButton {
    display: block;
    width: 50px;
    height: 50px;
    position: absolute;
    top: 0.4em;
    right: 1em;
    z-index: 1000;
}

#menuButton span {
    display: block;
    background: #333;
    width: 35px;
    height: 2px;
    position: absolute;
    left: 9px;
    transition: all 0.4s;
    -webkit-transition: all 0.4s;
    -moz-transition: all 0.4s;
}

#menuButton span:first-child {
    top: 12px;
}

#menuButton span:nth-child(2) {
    margin-top: -1px;
    top: 50%;
}

#menuButton span:last-child {
    bottom: 12px;
}

#menuButton.active span:first-child {
    -webkit-transform: translateY(8px) rotate(45deg);
    -moz-transform: translateY(8px) rotate(45deg);
    -ms-transform: translateY(8px) rotate(45deg);
    transform: translateY(16px) rotate(45deg);
    background: #fff;
}

#menuButton.active span:nth-child(2) {
    opacity: 0;
}

#menuButton.active span:last-child {
    -webkit-transform: translateY(-8px) rotate(-45deg);
    -moz-transform: translateY(-8px) rotate(-45deg);
    -ms-transform: translateY(-8px) rotate(-45deg);
    transform: translateY(-8px) rotate(-45deg);
    background: #fff;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
/* ▲▲▲▲ハンバーガーメニュー▲▲▲▲ */
/* ▼▼▼▼▼main_slider▼▼▼▼▼▼ */
.slider5-wrap {
  width: 100%;
  height: calc(80vh - 30px);
  margin: 0 auto;
  position: relative;
}
}

@media screen and (min-width: 769px), print {
/* ▼▼▼▼▼main_slider▼▼▼▼▼▼ */
.slider5-wrap {
  width: 100%;
  height: calc(100vh - 30px);
  margin: 0 auto;
  position: relative;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.slider-5 .slick-slide {
  height: calc(80vh - 30px);
  overflow: hidden;
}
}

@media screen and (min-width: 769px), print {
.slider-5 .slick-slide {
  height: calc(100vh - 30px);
  overflow: hidden;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.slider-5 .slick-slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.dots-5{
	position: relative;
}

.dots-5 .slick-dots {
  text-align: center;
}

.dots-5 .slick-dots li {
  display: inline-block;
  width: 100px;
  height: 6px;
  margin: 4px;
  background: #eaeaea;
  cursor: pointer;
}

.dots-5 .slick-dots button {
  display: block;
  width: 0%;
  height: 6px;
  margin: 0;
  font-size: 0;
  padding: 0;
  border: 0;
  opacity: 0;
  outline: none;
  background: #0a467d;
  cursor: pointer;
}

.dots-5 .slick-dots li button:before{
	display:none;
}

.dots-5 .slick-dots .slick-active button {
  background: rgb(141 103 49 / 90%);
  opacity: 1;
}

.slide-animation{
    animation: fadezoom 8s 0s forwards;
}

@keyframes fadezoom {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.2);
  }
}

#index_main_img {
	position:relative;
	margin-bottom: 4em;
}

#index_main_img .overlay {
    background-color: rgb(0 0 0 / 20%);
    position: absolute;
    bottom: 0px;
    width: 100%;
    padding: 0 0px 4em 0px;
    text-align: center;
    box-sizing: border-box;
    height: 100vh;
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    justify-content: flex-end;
}

.overlay h1{
    display:block;
    color:#fff;
    font-size: 7.0vw;
    font-weight: 800;
    text-align: left;
    line-height: 1em;
    padding: 0px 0px 0px 5vw;
    font-family: "Noto Sans JP", "Yu Gothic", "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo";
}

.overlay h2{
    display:block;
    color:#fff;
    font-size: 2.4vw;
    font-weight: 500;
    text-align: left;
    padding: 0px 0px 0px 5vw;
    font-family: "Noto Sans JP", "Yu Gothic", "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo";
}

.smooth{
  clip-path: inset(0 100% 0 0);
  /* display: inline-block; */
  /* font-size: 36px; */
  /* font-weight: bold; */
  transition: 2.4s cubic-bezier(0.37, 0, 0.63, 1);
  transition-property: clip-path;
  /* line-height: 1; */
  /* height: 40px; */
  /* margin-top: 15px; */
}

.smooth.is-animated{
clip-path: inset(0);
}

/* ▼▼▼▼▼エリアナビ▼▼▼▼▼ */

/* ▼▼▼▼▼建屋ナビ▼▼▼▼▼ */


/* ▼▼▼▼▼フッター▼▼▼▼▼▼ */
#footer{
	margin: 0;
	padding: 0 0 0 0;
	width: 100%;
	background: #3a3a3a;
	min-height:200px;
	color:#ccc;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.footer_layout{
	max-width: 100%;
	margin: 0 auto 1em auto;
	padding: 2em 0;
	text-align: left;
	border-bottom: 1px solid #5b5b5b;
	display: flex;
	flex-direction: column;
}
}

@media screen and (min-width: 769px), print {
.footer_layout{
flex-direction:row;

	max-width:var(--rental-content-max);
	margin: 0 auto 1em auto;
	padding: 2em 0;
	text-align: left;
	border-bottom: 1px solid #5b5b5b;
	display: flex;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
#footer .layout{
	padding-top:10px;
	text-align: left;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.footer_contact{
	padding: 1em;
	margin-bottom: 1em;
	width: 100%;
	margin-right:40px;
	box-sizing: border-box;
}
}

@media screen and (min-width: 769px), print {
.footer_contact{
padding:0;
box-sizing:content-box;

	padding-bottom: 1em;
	margin-bottom: 1em;
	width: 580px;
	margin-right:40px;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.footer_reference{
	width: 100%;
	padding: 1em;
	box-sizing: border-box;
}
}

@media screen and (min-width: 769px), print {
.footer_reference{
padding:0;
box-sizing:content-box;

	width: 580px;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.footer_reference ul{
	list-style-type:none;
	margin:0;
	padding:0;	
}
}

@media screen and (max-width: 768px) {
.footer_reference li{
	margin:0;
	padding:0;
	/* border-bottom:1px solid #ccc; */
	font-size: 3vw;
}
}

@media screen and (min-width: 769px), print {
.footer_reference li{
	margin:0;
	padding:0;
	/* border-bottom:1px solid #ccc; */
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.footer_reference li a{
	display:block;
	color:#ccc;
	font-weight:bold;
	margin-bottom:10px;
	position:relative;
}

.footer_reference li a.link{
	display:block;
	padding:1em .8em;
	background-color: #4e4e4e;
}

.footer_reference li a.link:hover{
	background-color: #5b5b5b;
}

.footer_reference li a.link span{
	color:#ccc;
	font-weight:normal;
	display:block;
	font-size:.9em;
	padding-left:2em;
}

.footer_reference li a.link:before {
	margin:.2em;
	position:absolute;
	display:block;
	font-size: 4vw;
	color:#ccc;
	transition: 0.3s;
	font-weight: normal;
	right:.5em;
	top:.5em;
}
}

@media screen and (min-width: 769px), print {
.footer_reference li a.link:before {
	margin:.2em;
	position:absolute;
	display:block;
	font-size:24px;
	color:#ccc;
	transition: 0.3s;
	font-weight: normal;
	right:.5em;
	top:.5em;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.footer_reference li a.link:hover:before{
	margin:.0em .0em .4em .4em;
	color:#dd3e3e;
}

.footer_reference li a.link:before {
	font-family: 'Material Symbols Outlined';
	content: '\e89e';
}

#footer h3{
	font-family: 'Sawarabi Mincho', serif;
	font-weight:normal;
	font-size:2.5em;
	color: #ccc;
	line-height: normal;
	margin-bottom:0;
}

#footer h3 span{
	font-family: "Yu Gothic", "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo";
	font-weight:bold;
	display:inline-block;
	font-size:.5em;
	margin-left: 0em;
}
}

@media screen and (min-width: 769px), print {
#footer h3 span{
	font-family: "Yu Gothic", "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo";
	font-weight:bold;
	display:inline-block;
	font-size:.5em;	
	margin-left:1em;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.footer_mail{
	background-color: #4e4e4e;
	padding: 0;
	margin: 0 0 .5em 0;
	display: flex;
	align-items: center;
}

.footer_mailform{
	padding: .8em 0em .6em 1em;
	font-size: 1.4em;
	color:#ccc;
	font-weight:bold;
	transition: 0.3s;
}

.footer_mailform:hover{
	background-color: #ac3626;
	padding: .8em 0 .6em 1.5em;
	color:#fff;
}

.footer_mailform:before{
	margin: 0 5px 0 0;
	position:relative;
	display: inline-block;
	font-size: 35px;
	transition: 0.3s;
	font-family: 'Material Symbols Outlined';
	content: '\e158';
	vertical-align: middle;
}

a.footer_mailform {
	display: block;
	height: 100%;
	width: 100%;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.footer_dial{
	background-color: #4e4e4e;
	padding: 0 0 .8em 0;
	margin: 0 0 .5em 0;
	display: flex;
	align-items: center;
	flex-direction: row;
	flex-wrap: wrap;
}
}

@media screen and (min-width: 769px), print {
.footer_dial{
flex-direction:row;
flex-wrap:nowrap;

	background-color: #4e4e4e;
	padding: 0;
	margin: 0 0 .5em 0;
	display: flex;
	align-items: center;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.footer_freetel{
	padding: .1em 0em .0em .8em;
	font-size: 1.8em;
	color: #ccc;
	font-weight: 500;
	font-family: 'Roboto', sans-serif;
	margin-bottom:.0em;
}
}

@media screen and (min-width: 769px), print {
.footer_freetel{
	padding: .6em 0em .4em .8em;
	font-size: 1.8em;
	color: #ccc;
	font-weight: 500;
	font-family: 'Roboto', sans-serif;
	margin-bottom:.0em;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.footer_freetel:before{
	margin: 0 7px 0 0;
	position:relative;
	display: inline-block;
	font-size: 35px;
	transition: 0.3s;
	font-family: 'Material Symbols Outlined';
	content: '\e61d';
	vertical-align: middle;
}

a.footer_freetel {
	display: block;
	height: 100%;
	width: auto;
}

.footer_dial_info{
	padding-left: 2em;
	font-size: .8em;
	line-height: 2em;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.no_1:before{
	margin: 0 0 0 0;
	position:relative;
	display: inline-block;
	position: relative;
	font-size: 28px;
	transition: 0.3s;
	font-family: 'Material Symbols Outlined';
	content: '\e400';
	vertical-align: middle;
}

.no_2:before{
	margin: 0 0 0 0;
	position:relative;
	display: inline-block;
	position: relative;
	font-size: 28px;
	transition: 0.3s;
	font-family: 'Material Symbols Outlined';
	content: '\e401';
	vertical-align: middle;
}

.no_3:before{
	margin: 0 0 0 0;
	position:relative;
	display: inline-block;
	position: relative;
	font-size: 28px;
	transition: 0.3s;
	font-family: 'Material Symbols Outlined';
	content: '\e3fb';
	vertical-align: middle;
}

.no_3:after{
	margin: 0 0 0 0;
	position:relative;
	display: inline-block;
	position: relative;
	font-size: 28px;
	transition: 0.3s;
	font-weight: normal;
	font-family: 'Material Symbols Outlined';
	content: '\e5df';
	vertical-align: middle;
}

.footer_navi{
	margin-bottom:2em;
}

.footer_navi h1{
	font-weight:bold;
	font-size: 1.2em;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.footer_info{
	display: flex;
	flex-direction: column;
}
}

@media screen and (min-width: 769px), print {
.footer_info{
flex-direction:row;

	display: flex;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.footer_tel,.footer_fax{
	font-family: 'Roboto', sans-serif;
	font-size: 1.5em;
	color:#ccc;
	padding: 0;
	display: flex;
	position:relative;
	align-items: center;
	margin-right:1em;
}

.footer_tel:before,.footer_fax:before {
	margin: 0 0.3em .0 0;
	position:relative;
	display: inline-block;
	position: relative;
	left:0;
	font-size:30px;
	color:#aaa;
	transition: 0.3s;
	font-weight: normal;
	font-family: 'Material Symbols Outlined';
}

.footer_tel:before {
  content: '\e325';
}

.footer_fax:before {
  content: '\ead8';
}

.footer_pdf{
	display: flex;
	flex-wrap: nowrap;
	justify-content: space-evenly;
}

.footer_pdf a{
	display: block;
	width: 100%;
	text-align: center;
	background-color: #4e4e4e;
	color: #aaa;
	margin-left:1px;
	padding:2em 0;
}

.footer_pdf a:hover{
	transition: 0.3s;
	color:#ffffff;
	background-color: #ac3626;
	font-weight: bold;
}

.footer_pdf a:before {
	margin:.2em;
	position:relative;
	display:block;
	font-size:30px;
	color:#b55d56;
	transition: 0.3s;
	font-weight: normal;
}

.footer_pdf a:hover:before{
	color:#ffffff;
	margin:.4em .2em .0em .2em;
}

.footer_pdf a:before {
  font-family: 'Material Symbols Outlined';
  content: '\f090';
}

.footer_time dl {
	/* width:40%; */
	margin: 0em 0 1em 0;
	display:inline-block;
	position: relative;
	box-sizing: border-box;
	display:flex;
	flex-wrap: wrap;
	font-size: .9em;
}

.footer_time dt{
	margin:0;
	padding: 0em 0;
	width: 25%;
	text-align:left;
	box-sizing: border-box;
	font-weight: bold;
}

.footer_time dd {
	margin:0;
	padding: 0;
	width: 75%;
	text-align:left;
	box-sizing: border-box;
}

.footer_address{
	font-size:.9em;
	margin-bottom:1em;
}

.pageup {
	display:block;
	text-align:right;
  background-color: #4e4e4e;
	text-align:center;
}

.pageup a{
	text-decoration:none;
	color:#fff;
	display:block;
	width:100%;
	padding:15px 0;
	font-size:14px;
}

#footer_copy{
	display:block;
	padding:2em 0;
	color: #aaa;
	font-weight:bold;
	font-size:.9em;
}

/* ▼▼▼▼▼トップページ新着情報▼▼▼▼▼▼ */
#index_news{
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding:1em 0 3em 0;
}
}

@media screen and (min-width: 769px), print {
/* ▼▼▼▼▼トップページ新着情報▼▼▼▼▼▼ */
#index_news{
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	padding:1em 0 3em 0;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
#index_news h2{
	font-weight:normal;
	font-size: 1.8em;
	line-height: normal;
	font-weight:600;
	text-align: left;
}

#index_news h2 span{
	font-family: 'Roboto', sans-serif;
	display:block;
	font-size:.7em;
	letter-spacing:.4em;
	color: var(--rental-color-accent);
}

.index_news_left{
	width: 100%;
	text-align: left;
}
}

@media screen and (min-width: 769px), print {
.index_news_left{
	width:33.3333%;
	text-align: left;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.index_news_right{
	width: 100%;
}
}

@media screen and (min-width: 769px), print {
.index_news_right{
	width:66.6666%
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.news_item{
	width:100%;
	display:grid;
	grid-template-columns:minmax(0, 1fr) minmax(0, 4fr);
	border-bottom:1px solid #ddd;
	padding: 1em 0 1.5em 0;
	align-items: stretch;
	position: relative;
}

.news_img{
	min-width:0;
}

.news_img .news_thumbnail{
	display:block;
	width:100%;
	height:auto;
	aspect-ratio:24 / 11;
	object-fit:cover;
}

.news_content{
	min-width:0;
	overflow-wrap:anywhere;
	box-sizing:border-box;
	padding:0 1em;
	text-align:left;
	font-size:.9em;
}

.news_content h3{
	color: var(--rental-color-accent);
	margin-top: 0;
}

.news_link_pdf{
	display:inline-block;
	color:#D06A6A;
	border:1px solid #D06A6A;
	border-radius: 1.6em;
	padding: .3em 2em .3em 3.2em;
	position:relative;
	overflow: hidden;
	font-weight:500;
}

.news_link_pdf:before {
  font-family: 'Material Symbols Outlined';
  content: '\e415';
  font-size: 1.4em;
  font-weight: normal;
  padding: 0;
  margin-top: .0em;
  position: absolute;
  left: 1em;
  top: .3em;
  display: block;
  z-index: 1;
}

.news_link_pdf:after {
  background: #D06A6A;
  position: absolute;
  top: 0;
  left: 0;
  content: '';
  width: 100%;
  height: 100%;
  transform: scale(0, 1);
  transform-origin: left top;
  transition: .2s cubic-bezier(0.45, 0, 0.55, 1);
  z-index: -1;
}

.news_link_pdf:hover::after {
  transform: scale(1, 1);
}

.news_link_pdf:hover {
  color:#fff;
}

.news_link_url{
	display:inline-block;
	color:var(--rental-color-accent);
	border:1px solid #2CA5AC;
	border-radius: 1.6em;
	padding: .3em 2em .3em 3.2em;
	position:relative;
	overflow: hidden;
	font-weight:500;
}

.news_link_url:before {
  font-family: 'Material Symbols Outlined';
  content: '\e89e';
  font-size: 1.4em;
  font-weight: normal;
  padding: 0;
  margin-top: .0em;
  position: absolute;
  left: 1em;
  top: .3em;
  display: block;
  z-index: 1;
}

.news_link_url:after {
  background: #2CA5AC;
  position: absolute;
  top: 0;
  left: 0;
  content: '';
  width: 100%;
  height: 100%;
  transform: scale(0, 1);
  transform-origin: left top;
  transition: .2s cubic-bezier(0.45, 0, 0.55, 1);
  z-index: -1;
}

.news_link_url:hover::after {
  transform: scale(1, 1);
}

.news_link_url:hover {
  color:#fff;
}

/**▼▼▼▼▼▼▼▼特徴▼▼▼▼▼▼▼▼**/
#feature{
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding:1em 0 3em 0;
}
}

@media screen and (min-width: 769px), print {
/**▼▼▼▼▼▼▼▼特徴▼▼▼▼▼▼▼▼**/
#feature{
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	padding:1em 0 3em 0;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
#feature h2{
	font-weight:normal;
	font-size: 1.8em;
	line-height: normal;
	font-weight:600;
	text-align: left;
}

#feature h2 span{
	font-family: 'Roboto', sans-serif;
	display:block;
	font-size:.7em;
	letter-spacing:.4em;
	color: var(--rental-color-accent);
}

.index_feature_left{
	width: 100%;
	text-align: left;
	padding-right: 1.5em;
	box-sizing: border-box;
}
}

@media screen and (min-width: 769px), print {
.index_feature_left{
	width:33.3333%;
	text-align: left;
	padding-right: 1.5em;
	box-sizing: border-box;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.index_feature_left p{
	font-size:.9em;
}

.index_feature_right{
	width: 100%;
}
}

@media screen and (min-width: 769px), print {
.index_feature_right{
	width:66.6666%
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
#index_feature{
	display: block;
	padding:0;
	border-top:1px solid #333;
	border-bottom:1px solid #333;
	margin-bottom:4em;
	background-color:#666;
	overflow:hidden;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.index_feature_ul{
	display:flex;
	max-width:var(--rental-content-max);
	margin:auto;
	background-color:#fff;
	flex-direction: column;
}
}

@media screen and (min-width: 769px), print {
.index_feature_ul{
flex-direction:row;

	display:flex;
	max-width:var(--rental-content-max);
	margin:auto;
	background-color:#fff;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.index_feature_list{
	height: auto;
	padding-top: 0;
	box-sizing: border-box;
	background-image:url("./img/feature_list01.jpg");
	background-size:cover;
	background-repeat:no-repeat;
	background-position: center center;
	width: 100%;
	transition:1s all;
}
}

@media screen and (min-width: 769px), print {
.index_feature_list{
background-position:0% 0%;

	height:500px;
	padding-top:270px;
	box-sizing: border-box;
	background-image:url("./img/feature_list01.jpg");
	background-size:cover;
	background-repeat:no-repeat;
	width:25%;
	transition:1s all;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.index_feature_list:hover{
	transform: scale(1.1, 1.1);
	transition:.6s all;
	z-index:100;
	padding-top:250px;
}

.index_feature_list:hover .index_feature_list_cont{
	background-color:#000000cc;
	transition:1s all;	
}

.index_feature_list.feature_list01{
	background-image:url("./img/feature_list01.jpg");	
}

.index_feature_list.feature_list02{
	background-image:url("./img/feature_list02.jpg");	
}

.index_feature_list.feature_list03{
	background-image:url("./img/feature_list03.jpg");	
}

.index_feature_list.feature_list04{
	background-image:url("./img/feature_list04.jpg");	
}

.index_feature_list_cont{
	background-color:#00000077;
	color:#fff;
	height:100%;
	box-sizing:border-box;
	text-align:left;
	padding: 3em 1.5em;
	font-size:.8em;
	width:100%;
	transition:1s all;
}
}

@media screen and (min-width: 769px), print {
.index_feature_list_cont{
	background-color:#00000077;
	color:#fff;
	height:100%;
	box-sizing:border-box;
	text-align:left;
	padding: 1em 1.5em;
	font-size:.8em;
	width:100%;
	transition:1s all;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.index_feature_list_cont h2{
	margin:0;
	font-size:1em;
	color:#fff;
	background-color:#2DA5AC;
	display:inline-block;
	padding:.2em 1em;
}

.index_feature_list_cont h3{
	margin:0;
	font-size:1.2em;
	color:#fff;
	display:block;
	padding:1em 0em;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
#index_floor-map{
	max-width:var(--rental-content-max);
	margin:auto;
	margin-bottom: 3em;
	padding: 1em;
}
}

@media screen and (min-width: 769px), print {
#index_floor-map{
padding:0;

	max-width:var(--rental-content-max);
	margin:auto;
	margin-bottom: 3em;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
#index_floor-map h2{
	font-weight:normal;
	font-size: 1.8em;
	line-height: normal;
	font-weight:600;
	text-align: left;
}

#index_floor-map h2 span{
	font-family: 'Roboto', sans-serif;
	display:block;
	font-size:.7em;
	letter-spacing:.4em;
	color: var(--rental-color-accent);
}

.index_floor-map_left{
	width:100%;
	text-align: left;
	padding-right: 1.5em;
	box-sizing: border-box;
}

.index_floor-map_left p{
	font-size:.9em;
}

.index_floor-map_right{
	width:100%;
	background-color:#fff;
	border-radius:10px;
	box-sizing:border-box;
	padding: 1em 0px;
}
}

@media screen and (min-width: 769px), print {
.index_floor-map_right{
	width:100%;
	background-color:#fff;
	border-radius:10px;
	box-sizing:border-box;
	padding:20px;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.index_floor-map_right img{
	display:block;
	width:100%;
	max-width:100%;
	height:auto;
}
.index_feature_right .rental-feature-gallery{display:grid;grid-template-columns:1fr 2fr;grid-template-rows:repeat(2,minmax(0,1fr));gap:clamp(.25rem,1vw,.6rem);aspect-ratio:3/2;}
.index_feature_right .rental-feature-gallery img{display:block;width:100%;height:100%;min-height:0;object-fit:cover;}
.index_feature_right .rental-feature-gallery img:nth-child(3){grid-column:2;grid-row:1/span 2;}
.index_feature_right .rental-feature-gallery img:only-child{grid-column:1/-1;grid-row:1/span 2;}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
#index_room-list{
	max-width:var(--rental-content-max);
	margin:auto;
	margin-bottom: 3em;
	padding: 1em;
}
}

@media screen and (min-width: 769px), print {
#index_room-list{
padding:0;

	max-width:var(--rental-content-max);
	margin:auto;
	margin-bottom: 3em;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
#index_room-list h2{
	font-weight:normal;
	font-size: 1.8em;
	line-height: normal;
	font-weight:600;
	text-align: left;
}

#index_room-list h2 span{
	font-family: 'Roboto', sans-serif;
	display:block;
	font-size:.7em;
	letter-spacing:.4em;
	color: var(--rental-color-accent);
}

.index_room-list_left{
	width:100%;
	text-align: left;
	padding-right: 0;
	box-sizing: border-box;
}
}

@media screen and (min-width: 769px), print {
.index_room-list_left{
	width:100%;
	text-align: left;
	padding-right: 1.5em;
	box-sizing: border-box;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.index_room-list_left p{
	font-size:.9em;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.index_room-list_right{
	width:100%;
	background-color:#fff;
	border-radius: 10px;
	box-sizing:border-box;
	padding: 1em;
	margin-right: 0em;
	overflow: scroll;
}
}

@media screen and (min-width: 769px), print {
.index_room-list_right{
margin-right:0;
overflow:visible;

	width:100%;
	background-color:#fff;
	border-radius:10px;
	box-sizing:border-box;
	padding:20px;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
#index_access{
	max-width:var(--rental-content-max);
	margin:auto;
	margin-bottom: 3em;
	padding: 1em;
}
}

@media screen and (min-width: 769px), print {
#index_access{
padding:0;

	max-width:var(--rental-content-max);
	margin:auto;
	margin-bottom: 3em;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
#index_access h2{
	font-weight:normal;
	font-size: 1.8em;
	line-height: normal;
	font-weight:600;
	text-align: left;
}

#index_access h2 span{
	font-family: 'Roboto', sans-serif;
	display:block;
	font-size:.7em;
	letter-spacing:.4em;
	color: var(--rental-color-accent);
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.index_access{
	display: flex;
	width:100%;
	background-color:#fff;
	border-radius:10px;
	box-sizing:border-box;
	padding:20px;
	flex-direction: column;
}
}

@media screen and (min-width: 769px), print {
.index_access{
flex-direction:row;

	display: flex;
	width:100%;
	background-color:#fff;
	border-radius:10px;
	box-sizing:border-box;
	padding:20px;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.index_access_left{
	width: 100%;
	text-align: left;
	padding-right: 0em;
	box-sizing: border-box;
}
}

@media screen and (min-width: 769px), print {
.index_access_left{
	width: 50%;
	text-align: left;
	padding-right: 1.5em;
	box-sizing: border-box;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.index_access_left p{
	font-size:.9em;
}

.index_access_right{
	width: 100%;
	box-sizing:border-box;
	padding: 0;
}
}

@media screen and (min-width: 769px), print {
.index_access_right{
	width: 50%;
	box-sizing:border-box;
	padding:20px;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.index_access_left dl{
    display: -webkit-flex;
    display: -moz-flex;
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    width: 100%;
    border-top: 1px solid #ccc;
    border-bottom: none;
    font-size: .9em;
}

.index_access_left dl dt{
	background: #f5f5f5;
	padding: 1em;
	width: 9em;
	/* border-right: 1px solid #ccc; */
	border-bottom: 1px solid #ccc;
	box-sizing: border-box;
	font-weight: 600;
}
}

@media screen and (min-width: 769px), print {
.index_access_left dl dt{
	background: #f5f5f5;
	padding: 1em;
	width: 150px;
	/* border-right: 1px solid #ccc; */
	border-bottom: 1px solid #ccc;
	box-sizing: border-box;
	font-weight: 600;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.index_access_left dl dd{
	background: #fff;
	padding: 1em;
	width: calc(100% - 9em);
	border-bottom: 1px solid #ccc;
	margin: 0;
	box-sizing: border-box;
}
}

@media screen and (min-width: 769px), print {
.index_access_left dl dd{
	background: #fff;
	padding: 1em;
	width: calc(100% - 150px);
	border-bottom: 1px solid #ccc;
	margin: 0;
	box-sizing: border-box;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
/*********** パンくずリスト ***********/
#breadcrumb {
	font-size: .8em;
	margin-bottom: 1.5em;
	padding: 0;
}

#breadcrumb ul{
	margin:0;
	padding:0;
	display: flex;
}

#breadcrumb li{
	margin:0;
	padding:0;
	list-style-type:none;
	padding:5px 10px 5px 20px;
	margin-right:10px;
	background:url(img/bg_pagenavi_right.gif) left center no-repeat;
}

#breadcrumb li.crumb-home{
	padding:5px 0px 5px 25px;
	background:url(img/bg_pagenavi.gif) left center no-repeat;
}

/* ▼▼▼▼▼TOPバナー▼▼▼▼▼ */
.top_bn {
	color: #fff;
	background-position: center;
	font-weight: 600;
	/* padding-top: 0px; */
	font-size: .8em;
	box-sizing: border-box;
	z-index: 100;
	position:relative;
}

.top_bn ul{
	display:block;
	list-style-type: none;
}
}

@media screen and (max-width: 768px) {
.top_bn li{
	padding: 0px 0;
	font-size: 2.5vw;
}
}

@media screen and (min-width: 769px), print {
.top_bn li{
	padding: 0px 0;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.slider-1_01 {
	background-color: #698896;
	height: 28px;
}

.slider-1_02 {
	background-color: #c06262;
	height: 28px;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
/* ▼▼▼▼▼トップページ▼▼▼▼▼▼ */
#index_address{
	display:flex;
	text-align:left;
	align-items: flex-end;
	margin-bottom:4em;
	flex-direction: column;
}
}

@media screen and (min-width: 769px), print {
/* ▼▼▼▼▼トップページ▼▼▼▼▼▼ */
#index_address{
flex-direction:row;

	display:flex;
	text-align:left;
	align-items: flex-end;
	margin-bottom:4em;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.index_address_left{
	width: 100%;
}
}

@media screen and (min-width: 769px), print {
.index_address_left{
	width:60%;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.index_address_right{
	width: 100%;
}
}

@media screen and (min-width: 769px), print {
.index_address_right{
	width:40%;
	
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.index_address_left h1 {
	font-size: 1.4em;
	font-weight: 600;
	line-height: 1.5em;
	letter-spacing: 0.02em;
	margin-top: 10px;
	margin-bottom: 10px;
}

.index_address_left h2 {
	position:relative;
	font-weight: 600;
	font-size: 1.2em;
	line-height: 1.35em;
	letter-spacing: 0em;
	margin-top: 0;
	margin-bottom: .5em;
	padding: 0px 0px 0 0px;
	color: var(--rental-color-accent);
	border-bottom: none;
	display: block;
	text-align:left;
}

.address_map{
	font-size: .9em;
	position:relative;
	padding-left:2em;
	margin-bottom:.5em;
}

.address_map::before {
	font-family: 'Material Symbols Outlined';
	content: '\e0c8';
	font-size: 1.6em;
	font-weight: bold;
	padding: 0;
	margin-top: 0em;
	position: absolute;
	left: 0;
	top:0;
	display: block;
}

.address_access{
	font-size: .9em;
	position:relative;
	padding-left:2em;
	margin-bottom:.5em;
}

.address_access::before {
	font-family: 'Material Symbols Outlined';
	content: '\e570';
	font-size: 1.6em;
	font-weight: bold;
	padding: 0;
	margin-top: 0em;
	position: absolute;
	left: 0;
	top:0;
	display: block;
}

.main_img_tel_title{
	font-size: 1em;
	font-weight: 600;
	line-height: 1em;
	letter-spacing: 0.02em;
	margin-top: 10px;
	margin-bottom: 10px;	
}
}

@media screen and (max-width: 768px) {
.index_address_right_cont{
	margin-top:1.5em;
	display: flex;
}
}

@media screen and (min-width: 769px), print {
.index_address_right_cont{
	margin-top:1.5em;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.index_address_right_room{
	padding-left: 2.5em;
	padding-right: 2.5em;
	padding-top: .5em;
	padding-bottom: .5em;
	background-color: #2DA5AC;
	color: #fff;
	border-radius: 1.5em;
	font-weight: normal;
	font-size: 3vw;
	margin-right:1em;
}
}

@media screen and (min-width: 769px), print {
.index_address_right_room{
	padding-left: 2.5em;
	padding-right: 2.5em;
	padding-top: .5em;
	padding-bottom: .5em;
	background-color: #2DA5AC;
	color: #fff;
	border-radius: 1.5em;
	font-weight: normal;
	font-size:.9em;
	margin-right:1em;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.index_address_right_order{
	padding-left: 2.5em;
	padding-right: 2.5em;
	padding-top: .5em;
	padding-bottom: .5em;
	background-color: #c06262;
	color: #fff;
	border-radius: 2em;
	font-weight: normal;
	font-size: 3vw;
}
}

@media screen and (min-width: 769px), print {
.index_address_right_order{
	padding-left: 2.5em;
	padding-right: 2.5em;
	padding-top: .5em;
	padding-bottom: .5em;
	background-color: #c06262;
	color: #fff;
	border-radius: 2em;
	font-weight: normal;	
	font-size:.9em;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
#map{
	max-width:var(--rental-content-max);
}

/* ▼▼▼▼▼スライダー２▼▼▼▼▼▼ */
.slider-2 .slick-slide {
  width: 520px;
  height: 250px;
  margin: 0 30px;
  position: relative;
overflow: visible;
}
}

@media screen and (min-width: 769px), print {
/* ▼▼▼▼▼スライダー２▼▼▼▼▼▼ */
.slider-2 .slick-slide {
  width: 1200px;
  height: 800px;
  margin: 0 30px;
  position: relative;
  overflow: hidden;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.slider-2 .slick-slide img {
  display: block;
  width: 100%;
  /* height: 100%; */
  object-fit: cover;
}
}

@media screen and (min-width: 769px), print {
.slider-2 .slick-slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.slider-2 .slick-arrow {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  /* background-color: #fff; */
  cursor: pointer;
  border: none;
  outline: none;
  font-size: 0;
  position: absolute;
  top: calc(50% - 0px);
  z-index: 1;
  filter: drop-shadow(0px 3px 6px rgba(0, 0, 0, 0.16));
}
}

@media screen and (min-width: 769px), print {
.slider-2 .slick-arrow {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  /* background-color: #fff; */
  cursor: pointer;
  border: none;
  outline: none;
  font-size: 0;
  position: absolute;
  top: calc(50% - 30px);
  z-index: 1;
  filter: drop-shadow(0px 3px 6px rgba(0, 0, 0, 0.16));
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.slider-2 .slick-arrow::before {
  content: '';
  display: block;
  width: 12px;
  height: 12px;
  border: 1px solid #09000d;
  border-width: 3px 3px 0 0;
  position: absolute;
  top: 24px;
  transform: rotate(45deg);
}

.slider-2 .slick-next {
  right: calc(50% - 52vw);
}
}

@media screen and (min-width: 769px), print {
.slider-2 .slick-next {
  right: calc(50% - 655px);
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.slider-2 .slick-prev {
  left: calc(50% - 52vw);
}
}

@media screen and (min-width: 769px), print {
.slider-2 .slick-prev {
  left: calc(50% - 655px);
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.slider-2 .slick-next::before {
  left: 20px;
}

.slider-2 .slick-prev::before {
  border-width: 0 0 3px 3px;
  right: 22px;
}

.dots-2 .slick-dots {
  text-align: center;
}

.dots-2 .slick-dots li {
  display: inline-block;
}

.dots-2 .slick-dots button {
  display: block;
  width: 10px;
  height: 10px;
  margin: 6px;
  font-size: 0;
  padding: 0;
  border: 0;
  outline: none;
  cursor: pointer;
  background: #bcbcbc;
  border-radius: 50%;
}

.dots-2 .slick-dots .slick-active button {
  background: #000;
}

.slick-dots li button:before
{
display:none;
}

.slick-dots li.slick-active button:before
{
display:none;
}

/* ここから */
        @keyframes bounce {
            0%, 100% { transform: translateY(0); }
            50% { transform: translateY(10px); }
        }

.animate {
            opacity: 0;
            transition: opacity 1s ease-out, transform 1s ease-out;
        }

.fade-in { transform: translateY(120px); }

.zoom-in { transform: scale(0.1); }

.slide-in { transform: translateX(150px); }

.rotate { transform: rotateY(90deg); }

.show {
            opacity: 1;
            transform: translateY(0) scale(1) translateX(0) rotateY(0);
        }
}

@media screen and (max-width: 768px) {
/* ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼料金表▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ */
#index_room-list #pricetable{
	min-width: 600px;	
}

#price_list #pricetable{
	min-width: 1200px;	
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
#pricetable{
	text-align:center;
	border-collapse:collapse;
	margin-bottom: 0em;
	font-size:.85em;
}
}

@media screen and (min-width: 769px), print {
/* ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼料金表▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ */
#pricetable{
	width:100%;
	text-align:center;
	border-collapse:collapse;
	margin-bottom: 2em;
	font-size:.85em;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
#pricetable th{
	border-top: 1px solid #ccc;
	border-bottom: 1px solid #ccc;
	margin: 0;
	padding: .5em 1em;
	background-color:#D5EDEE;
}

#pricetable td{
	border-bottom: 1px solid #ccc;
}

#pricetable th.sort{
	background-image: url(img/bg.gif);
	background-repeat: no-repeat;
	background-position: center center;
	cursor: pointer;
	height:2em;
	background-color:#fff;
}
}

@media screen and (min-width: 769px), print {
#pricetable th.headerSortUp,
#pricetable th.sort.tablesorter-headerDesc
{
	background-image: url(img/asc.gif);
}

#pricetable th.headerSortDown,
#pricetable th.sort.tablesorter-headerAsc{
	background-image: url(img/desc.gif);
}
}

@media screen and (max-width: 768px) {
#pricetable th.headerSortUp {
	background-image: url(img/asc.gif);
}

#pricetable th.headerSortDown {
	background-image: url(img/desc.gif);
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
#pricetable tr .headerSortDown,
#pricetable tr .headerSortUp {
	color: #fff;
}

.tdhover{
	background-color:#FCF3F3;
}

td.hover, #tableone tbody tr:hover
{
	background-color: #FCF3F3;
}

td.betterhover, #pricetable tbody tr:hover{
	background: #FCF3F3;
}

#pricetable tr:nth-child(odd) {
	background: #F5F5F5;
}

.aaa {
	text-align:left;
	padding-left:1em;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.bbb {
	text-align:right;
	padding-right:1em
}

.ccc{
	text-align:center;
}

.persist-header li {
	display: block;
}

.bbbb {
	padding: 3px; 
	color:#c00;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.price_caution{
text-align:left;
font-size:2.5vw;
margin-left:1em;
	margin-top:1.5em;
}
}

@media screen and (min-width: 769px), print {
.price_caution{
margin-top:0;

text-align:left;
font-size:.9em;
margin-left:1em;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.price_caution ul{
display:block;
padding:0;
margin:0;
}

.price_caution li{
display:block;
padding:0;
margin:0 0 .5em 0;;
}
}

@media screen and (min-width: 769px), print {
.price_caution li{
display:block;
padding:0;
margin:0;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.price_caution li::before {
  content: "※";
  margin-left: -1em;
}

.article-single-cont{
	width:50%;
	box-sizing:border-box;
	padding: 0 0 0 2em;
	text-align: left;
	font-weight: bold;
	font-size: 1em;
}

.article-single-price{
	/* background-color: #efefef; */
	/* padding:1em 2em; */
	text-align:left;
	/* border: 1px solid #ccc; */
	margin-bottom: 2em;
}

.article-single-price-table{
	width:100%;
	margin-bottom:1em;
	box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);
	background-color: #fff;
	padding: 2em;
	border-radius: 10px;
	box-sizing: border-box;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.article-single-price-table table{
	width: 100%;
	background-color:#fff;
	border-collapse:collapse;
	border-spacing:0px;
	font-size:.9em;
	margin-bottom: 1em;
}
}

@media screen and (min-width: 769px), print {
.article-single-price-table table{
margin-bottom:0;

	width: 100%;
	background-color:#fff;
	border-collapse:collapse;
	border-spacing:0px;
	font-size:.9em;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.article-single-price-table table th {
	padding: 10px 20px;
	vertical-align: top;
	background-color: #ece8e0;
	border-top:1px solid #ccc;
	border-bottom:1px solid #ccc;
	/* width: 8%; */
	white-space: nowrap;
}

.article-single-price-table table td {
	padding: 10px 1em;
	vertical-align: top;
	/* background-color: #fff; */
	border-top:1px solid #ccc;
	border-bottom:1px solid #ccc;
	/* width: 5%; */
	text-align:center;
}

.article-cont table,.article-single table {
	margin: auto auto 20px auto;
	padding:0;
	border-collapse:collapse;
	border-spacing:0px;
	text-align:left;
	width:100%;
	font-weight: bold;
	font-size: .9em;
}

.article-single-price p{
	font-size: .8em;
}
}

@media screen and (min-width: 769px), print {
.article-single-price p{
	font-size:.9em;	
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.layout_img table {
	font-size: 1.2em;
}

.article-cont table th,.article-single table th {
	padding: 10px 20px;
	vertical-align: top;
	background-color: #ece8e0;
	border-top:1px solid #ccc;
	border-bottom:1px solid #ccc;
	width:20%;
	white-space: nowrap;
}

.article-cont table td,.article-single table td {
	padding: 10px 20px;
	vertical-align: top;
	border-top:1px solid #ccc;
	border-bottom:1px solid #ccc;
	margin:0;
}

.article-single-img{
	width:50%;
	margin: 0 auto;
	overflow: hidden;
	display: block;
}

.layout_list{
	/* background-color:#ccc; */
	padding: 0;
	/* border-width: 1px 0 0 1px; */
	/* border-color: #ccc; */
	/* border-style:solid; */
	/* position: sticky; */
	/* top: 100px; */
}

.layout_list ul{
	list-style-type:none;
	display:flex;
	margin: 0 0 1em 0;
	padding:0;
	justify-content: space-between;
}
}

@media screen and (min-width: 769px), print {
.layout_list ul{
	list-style-type:none;
	display:flex;
	margin: 0 0 1.5em 0;
	padding:0;
	justify-content: space-between;
}
}

@media screen and (max-width: 768px) {
.layout_list li{
	width: 24%;
	margin: 0;
	padding: 1em .5em;
	box-sizing:border-box;
	text-align:center;
	border-width: 2px;
	border-color: #fff;
	border-style:solid;
	border-radius: 5px;
	cursor:pointer;
	color: var(--rental-color-accent);
	background-color: #fff;
	box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);
	font-weight:600;
	font-size: 2.5vw;
}
}

@media screen and (min-width: 769px), print {
.layout_list li{
	width: 23%;
	margin: 0;
	padding: 1em 2em;
	box-sizing:border-box;
	text-align:center;
	border-width: 2px;
	border-color: #fff;
	border-style:solid;
	border-radius: 10px;
	cursor:pointer;
	color: var(--rental-color-accent);
	background-color: #fff;
	box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);
	font-weight:600;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.layout_list li.active{
	/* border-width: 0px 1px 0px 0px; */
	background: #fff;
	border-color: var(--rental-color-accent);
	transition-property: all;	/* 適用対象 = なんでも */
	transition-duration: 1.0s;	/* 秒数 = 1.0秒 */
}

.layout_list li:hover{
	background-color:#fff;
	border-color: var(--rental-color-accent);
	transition-property: all;	/* 適用対象 = なんでも */
	transition-duration: 1.0s;	/* 秒数 = 1.0秒 */
}

.layout_img{
	box-sizing:border-box;
	padding: 1em;
	text-align: left;
	font-weight: bold;
	font-size: .9em;
	box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);
	/* border-width: 0px 1px 1px 1px; */
	/* border-color: #ccc; */
	/* border-style:solid; */
	border-radius: 10px;
	margin-bottom: 5em;
	background: #fff;
}
}

@media screen and (min-width: 769px), print {
.layout_img{
	box-sizing:border-box;
	padding: 2em;
	text-align: left;
	font-weight: bold;
	font-size: .9em;
	box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);
	/* border-width: 0px 1px 1px 1px; */
	/* border-color: #ccc; */
	/* border-style:solid; */
	border-radius: 10px;
	margin-bottom: 5em;
	background: #fff;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.layout_img_cont{
	display:none;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.layout_img_cont.active{
	display: flex;
	flex-direction: column;
}
}

@media screen and (min-width: 769px), print {
.layout_img_cont.active{
flex-direction:row;

	display: flex;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.layout_img_cont_left{
	width: 100%;
}
}

@media screen and (min-width: 769px), print {
.layout_img_cont_left{
	width:50%;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.layout_img_cont_right{
	width: 100%;
	box-sizing:border-box;
	padding-left: 0em;
}
}

@media screen and (min-width: 769px), print {
.layout_img_cont_right{
	width:50%;
	box-sizing:border-box;
	padding-left:2em;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.article-single-conts{
	font-size:.9em;
	text-align:left;
}

.article-conts table,.article-single-conts table {
	margin: auto auto 20px auto;
	padding:0;
	border-collapse:collapse;
	border-spacing:0px;
	text-align:center;
	width:100%;
	font-size:.95em;
}

.article-conts table th,.article-single-conts table th {
	padding: 10px 20px;
	font-family: "ゴシック";
	vertical-align: top;
	background-color: #ece8e0;
	border-top:1px solid #ccc;
	border-bottom:1px solid #ccc;
	/* width:10%; */
}

.article-conts table td,.article-single-conts table td {
	padding: 10px 20px;
	font-family: "ゴシック";
	vertical-align: top;
	border-top:1px solid #ccc;
	border-bottom:1px solid #ccc;
	margin:0;
}

.article-conts table td,.article-single-conts table td.align_left,
.article-conts table th,.article-single-conts table th.align_left {
	text-align: left;
}

.article-conts table th.width,.article-single-conts table th.width {
	width:30%;
}

.article-single-setsubi{
	background-color: #f6f6f6;
	padding:1em 2em;
	width: 100%;
}

.table_setsubi table th{
	padding: 10px 20px;
	vertical-align: top;
	background-color: inherit;
	border-top: 1px solid #ccc;
	border-bottom: 1px solid #ccc;
	width: 20%;
}

a.pdf{
	display:block;
	margin: 0px 0px 10px 0px;
	padding:0 0 0 60px;
	width:100%;
	line-height: 4em;
	text-decoration:none;
	color:#333;
	border:3px solid #f34235;
	color:#f34235;
	transition: 0.3s;
	box-sizing:border-box;
	position:relative;
}

a.pdf:hover{ 
	border:3px solid #f34235;
	color:#ffffff;
	background-color: #f34235;
	padding:0 0 0 80px;
}

a.pdf:before {
  font-family: 'Material Symbols Outlined';
  content: '\f090';
	position:absolute;
	display:inline-block;
	font-size:20px;
	color:#f34235;
	transition: 0.3s;
	left:1em;
}

a.pdf:hover:before {
	color:#fff;
}
}

/* ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼会議室カード▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ */

@media screen and (min-width: 769px), print {
/* ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼会議室カード▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ */
.room_card{
    display: flex;	
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.room_card_left{
    display: flex;	
}

.room_card_right{
    display: flex;
    flex-wrap: wrap;
    height: fit-content;
    width: 100%;
    font-weight: 500;
    text-align: left;
}
}

@media screen and (min-width: 769px), print {
.room_card_right{
    display: flex;
    flex-wrap: wrap;
    height: fit-content;
    width: 50%;
    font-weight: 500;
    text-align: left;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.room_card_right >div {
    position: relative;
    padding: 10px 0 20px;
    border-top: 2px solid #00031A;
    width: calc(100% - 10px);
    margin: 5px;
    display:block;
}
}

@media screen and (min-width: 769px), print {
.room_card_right >div {
    position: relative;
    padding: 10px 0 20px;
    border-top: 2px solid #00031A;
    width: calc(100% - 20px);
	margin:10px;
	display:block;
}
}

@media screen and (max-width: 768px) {
.room_card_left {
    display: flex;
    flex-wrap: wrap;
    height: fit-content;
    width: 100%;
    font-weight: 500;
    text-align: left;
    font-size: .7em;
}
}

@media screen and (min-width: 769px), print {
.room_card_left {
    display: flex;
    flex-wrap: wrap;
    height: fit-content;
    width: 50%;
    font-weight: 500;
    text-align: left;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.room_card_left>div div {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin-top: 10px
}

.room_card_right>div div {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin-top: 10px
}

.room_card_left>div div>span:nth-of-type(1) {
    font-size: 1.6em;
}
}

@media screen and (min-width: 769px), print {
.room_card_left>div div>span:nth-of-type(1) {
    font-size: 2em;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.room_card_left>div div>span:nth-of-type(1) span {
    font-size: .5em;
    margin: 0 .4em;
}
}

@media screen and (max-width: 768px) {
.room_card_left>div div>span:nth-of-type(1) span.out {
    font-size: 1em;
    margin: 0em;
	color:#ccc;
}

.room_card_left>div {
    position: relative;
    padding: 10px 0 10px;
    border-top: 2px solid #00031A;
    width: calc(33.3333333% - 10px);
    margin: 5px;
    px;
}
}

@media screen and (min-width: 769px), print {
.room_card_left>div {
    position: relative;
    padding: 10px 0 20px;
    border-top: 2px solid #00031A;
    width: calc(33.3333333333% - 20px);
	margin:10px;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.room_card_left .card05 {
    width: calc(60% - 10px);
}
}

@media screen and (min-width: 769px), print {
.room_card_left .card05 {
    width: calc(100% - 20px);
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
/* ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼備品▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ */
.goods_list{
	padding: 0;
}

.goods_list ul{
	list-style-type:none;
	display:flex;
	margin: 0 0 1.5em 0;
	padding:0;
	justify-content: space-between;
}
}

@media screen and (max-width: 768px) {
.goods_list li{
	width: 24%;
	margin: 0;
	padding: 1em .5em;
	box-sizing:border-box;
	text-align:center;
	border-width: 2px;
	border-color: #fff;
	border-style:solid;
	border-radius: 5px;
	cursor:pointer;
	color: var(--rental-color-accent);
	background-color: #fff;
	box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);
	font-weight:600;
	font-size: 2.4vw;
}
}

@media screen and (min-width: 769px), print {
.goods_list li{
	width: 23%;
	margin: 0;
	padding: 1em 2em;
	box-sizing:border-box;
	text-align:center;
	border-width: 2px;
	border-color: #fff;
	border-style:solid;
	border-radius: 10px;
	cursor:pointer;
	color: var(--rental-color-accent);
	background-color: #fff;
	box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);
	font-weight:600;
	transition-property: all;	/* 適用対象 = なんでも */
	transition-duration: 1.0s;	/* 秒数 = 1.0秒 */
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.goods_list li.goods_active{
	/* border-width: 0px 1px 0px 0px; */
	background: #fff;
	border-color: var(--rental-color-accent);
}

.goods_list li:hover{
	background-color:#fff;
	border-color: var(--rental-color-accent);
	transition-property: all;	/* 適用対象 = なんでも */
	transition-duration: 1.0s;	/* 秒数 = 1.0秒 */
}

.rental_goods h4 {
	text-align: left;
	border-left: solid 5px #2ca5b1;
	padding-left:1em;
	margin-bottom:1.5em;
}

.goods_content{
	display:none;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.goods_content.show{
	display:block;
	overflow: scroll;
}
}

@media screen and (min-width: 769px), print {
.goods_content.show{
overflow:visible;

	display:block;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.rental_goods {
	width: 100%;
	margin: 0 0 5em 0;
	background-color:#fff;
	border-radius:10px;
	box-sizing:border-box;
	padding: 1em;
}
}

@media screen and (min-width: 769px), print {
.rental_goods {
	width: 100%;
	margin: 0 0 5em 0;
	background-color:#fff;
	border-radius:10px;
	box-sizing:border-box;
	padding:20px;
}
}

@media screen and (max-width: 768px) {
.rental_goods table {
	width: 800px;
	border-collapse: collapse;
	margin-bottom: 2em;
	font-size: .9em;
	/* overflow: scroll; */
}
}

@media screen and (min-width: 769px), print {
.rental_goods table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 2em;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.rental_goods table th {
	border-top: #ccc solid 1px;
	border-bottom: #ccc solid 1px;
	padding: .5em 1em;
	background: #D5EDEE;
	text-align:left;
	font-size:.9em;
}

.rental_goods table th span {
	font-weight:normal;
	font-size:.9em;
	margin-left:.5em;
}

.rental_goods table tr:hover{
	background:#f5f5f5;
}

.rental_goods table td {
	border-top: #ccc solid 1px;
	border-bottom: #ccc solid 1px;
	padding: .5em 1em;
	font-size:.9em;
}

.rental_goods table td:nth-of-type(1){
	text-align: left;
	width: 10%;
}

.rental_goods table td:nth-of-type(2){
	width: 20%;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.rental_goods table td:nth-of-type(5){
	width: 150px;
}

.rental_goods table td img {
	width: 100px;
	object-fit: contain;
	vertical-align:middle;
	border:1px solid #ccc;
	margin-right:.5em
}

/* ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼空室確認▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ */
.makoto_csv {
    text-align: center;
    width: 100%;
    margin: 0 0 3em 0;
    background-color:#fff;
    border-radius:10px;
    box-sizing:border-box;
    padding:20px;
}

table.reserveTable {
    margin: auto auto 20px auto;
    padding: 0;
    border-collapse: collapse;
    border-spacing: 0px;
    text-align: left;
    width: 1000px;
    font-size: 0.9em;
    /* overflow: scroll; */
}
}

@media screen and (min-width: 769px), print {
table.reserveTable {
    margin: auto auto 20px auto;
    padding: 0;
    border-collapse: collapse;
    border-spacing: 0px;
    text-align: left;
    width: 100%;
    font-size: 0.9em;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
table.reserveTable th {
border: 1px solid #ccc;
text-align: center;
padding: 5px 10px;
background: #eee;
font-weight: normal;
}

table.reserveTable td {
border:1px solid #ccc;
text-align: left;
padding: 5px 10px;
}

td.room_ok {
background-color: #fff;
}

td.room_in {
background-color: #5d99db;
}

td.room_ng {
background-color: #eee;
}

td.room_name {
width:4em;
}

input#demo001 {
    display:none;
    -webkit-border-radius: 3px;
    -moz-border-radius: 3px;
    border-radius: 3px;
    padding: 10px;
    font-size: 1.5em;
    background-image: url(https://ssl.re-rental.com/inc/bg_input.jpg);
    background-repeat: no-repeat;
    background-size: 30px;
    background-position: 240px 10px;
    width: 260px;
    height: 30px;
margin-bottom:30px;
}

ul.csv_calender {display: flex;-js-display: flex;margin-bottom: 10px;padding-left: 0;list-style: none;height: 21px;font-size: .8em;line-height: 1.8em;}
}

@media screen and (min-width: 769px), print {
ul.csv_calender {display: flex;-js-display: flex;margin-bottom: 10px;padding-left: 0;list-style: none;height: 21px;font-size: .9em;line-height: 21px;}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
ul.csv_calender li {
margin-right: 30px;
padding-left: 30px;
position: relative;
}

ul.csv_calender li::before {
content: '';
width: 20px;
height: 20px;
display: block;
position: absolute;
left: 0;
border:1px solid #ccc;
}

ul.csv_calender li.yoyaku_in::before {
background-color:#5d99db;
}

ul.csv_calender li.yoyaku_ok::before {
border:1px solid #CACACA;
}

ul.csv_calender li.yoyaku_ng::before {
background-color: #eee;
}

.form_button{
	text-align:center;
	padding:2em;
}

.form_button a{
	display:block;
	width:10em;
	margin:auto;
	padding: .8em 2em;
	font-size:1.2em;
	color: #fff;
	background-color: #cc363f;
	background-color: linear-gradient(#cc363f 0%, #a92c33 100%);
	border-radius: 2em;
	box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.2);
}

.form_button a:hover{
    background-color: #95262d;
    background-color: linear-gradient(#cc363f 0%, #a92c33 100%);
}

label.label_calendar {
  position: relative;
  display: inline-block;
  height: 30px;
  border: 1px solid #999;
  border-radius: 15px;
  padding:0 1em;
}
}

@media screen and (min-width: 769px), print {
label.label_calendar {
  position: relative;
  display: inline-block;
  height: 36px;
  border: 1px solid #999;
  border-radius: 18px;
	padding:0 1em;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
input[type="date"] {
  position: relative;
  padding: 0 10px;
  width: 150px;
  height: 36px;
  border: 0;
  background: transparent;
  box-sizing: border-box;
  font-size: 1em;
  color: #333;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
#prevWeekBtn,#prevMonthBtn,#nextWeekBtn,#nextMonthBtn{
	font-size: 1em;
	padding: .2em 1em;
	border-radius: 18px;
	border: 1px solid #999;
	margin: 1em .1em;
}
}

@media screen and (min-width: 769px), print {
#prevWeekBtn,#prevMonthBtn,#nextWeekBtn,#nextMonthBtn{
margin:0;

	font-size:1em;
	padding:.2em 1.5em;
	border-radius: 18px;
	border: 1px solid #999;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
/* ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼簡単見積り▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ */
.simple_cal{
    text-align: center;
    width: 100%;
    margin: 0 0 3em 0;
    background-color:#fff;
    border-radius:10px;
    box-sizing:border-box;
    padding:20px;	
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.simple_cal label.label_checkbox {
    display: flex;
    align-items: center;
    gap: 0 .5em;
    position: relative;
    margin-bottom: .4em;
    padding: .5em .7em;
    border: 2px solid #c4c5c7;
    border-radius: 3px;
    /* background-color: #2589d026; */
    cursor: pointer;
    font-weight:600;
    flex-direction: row;
    flex-wrap: wrap;
}
}

@media screen and (min-width: 769px), print {
.simple_cal label.label_checkbox {
flex-direction:row;
flex-wrap:nowrap;

    display: flex;
    align-items: center;
    gap: 0 .5em;
    position: relative;
    margin-bottom: .4em;
    padding: .5em .7em;
    border: 2px solid #c4c5c7;
    border-radius: 3px;
    /* background-color: #2589d026; */
    cursor: pointer;
	font-weight:600;
}
}

@media screen and (max-width: 768px) {
.simple_cal label span{
	font-size:.9em;
	font-weight:normal;
	display: block;
}
}

@media screen and (min-width: 769px), print {
.simple_cal label span{
	font-size:.9em;
	font-weight:normal;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.simple_cal label.label_checkbox:hover {
    background-color:#f9fcff;
	
}

.simple_cal label.label_checkbox:has(:checked) {
    /* background-color: #2589d0; */
    /* color: #fff; */
    border: 2px solid #d36666;
}

.simple_cal label.label_checkbox::before {
    width: 14px;
    height: 14px;
    border-radius: 14px;
    background-color: #fff;
    border: 1px solid #999;
    content: '';
    }

.simple_cal label.label_checkbox:has(:checked)::before {
    border:1px solid #e25959;
    }

.simple_cal label.label_checkbox:has(:checked)::after {
    position: absolute;
    top: 12px;
    left: 14px;
    transform: rotate(45deg);
    width: 4px;
    height: 8px;
    border:1px solid #e25959;
    border-width: 0 2px 2px 0;
    content: '';
    }
}

@media screen and (min-width: 769px), print {
.simple_cal label.label_checkbox:has(:checked)::after {
    position: absolute;
    top: 14px;
    left: 15px;
    transform: rotate(45deg);
    width: 4px;
    height: 8px;
    border:1px solid #e25959;
    border-width: 0 2px 2px 0;
    content: '';
    }
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.simple_cal input {
    display: none;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
dl.calArea{
	display:flex;
	flex-wrap: wrap;
	border-top: 1px solid #ccc;
	flex-direction: row;
}
}

@media screen and (min-width: 769px), print {
dl.calArea{
flex-direction:row;

	display:flex;
	flex-wrap: wrap;
	border-top: 1px solid #ccc;
}
}

@media screen and (max-width: 768px) {
.calArea dt{
	border-bottom: 1px solid #ccc;
	font-size: .9em;
	font-weight:bold;
	color:#3f305a;
	background-color: #f0f7fb;
	padding: .5em 1em;
	width: 100%;
	box-sizing:border-box;
	display: flex;
	align-items: center;
	text-align: left;
}
}

@media screen and (min-width: 769px), print {
.calArea dt{
	border-bottom: 1px solid #ccc;
	font-size:1em;
	font-weight:bold;
	color:#3f305a;
	background-color: #f0f7fb;
	padding: 0 2em;
	width: 25%;
	box-sizing:border-box;
	display: flex;
	align-items: center;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.calArea dt:hover{
	background-color: #ecf4f9;
}

.calArea dt::after{
	content: "";
	position: absolute;
	width: 1em;
	height: 1em;
	right: 140px;
	display: inline-block;
	background-position: right;
	background-repeat: no-repeat;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.calArea dd {
	padding: .5em 1em;
	margin: 0;
	font-size: .9em;
	line-height: 1.8em;
	background-color: #fff;
	border-bottom: 1px solid #ccc;
	width: 100%;
	box-sizing:border-box;
	text-align: left;
}
}

@media screen and (min-width: 769px), print {
.calArea dd {
	padding: 1em 1em 1em 1em;
	margin: 0;
	font-size: .9em;
	line-height: 1.8em;
	background-color: #fff;
	border-bottom: 1px solid #ccc;
	width: 75%;
	box-sizing:border-box;
	text-align: left;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.calArea dd ol.accordion-content {
	display: none;
	margin:0;
	padding:0;
	margin-bottom:1em;
}

h4.accordion-header {
	padding: .5em 0;
	color: var(--rental-color-accent);
	font-size: 1em;
	margin: 5px 0 10px 0;
	background-color:#f0f7fb;
	border-radius:5px;
	cursor:pointer;
}

h4.accordion-header::before{
	margin: 0 5px 0 5px;
	position:relative;
	display: inline-block;
	font-size: 35px;
	transition: 0.3s;
	font-family: 'Material Symbols Outlined';
	content: '\e313';
	vertical-align: middle;
}

h4.accordion-header.active::before{
	content: '\e316';
}

#starttime,#endtime{
	margin: 0 3px 5px 0;
	padding: .5em 1em;
	border: 2px solid #ccc;
	background: #FFF;
    border-radius: 5px;
	font-size:1.2em;
}

.simple_cal select{
	margin: 0 3px 5px 0;
	padding: .5em 1em;
	border: 2px solid #ccc;
	background: #FFF;
	border-radius: 5px;
	font-size: 1em;
}

#mk_price a{
	display:block;
	margin: auto;
	padding: .2em;
	text-align: center;
	width:180px;
	background-color: #cc363f;
	color: #fff;
	font-size: 4vw;
	border-radius: 40px;
}
}

@media screen and (min-width: 769px), print {
#mk_price a{
	display:block;
	margin: auto;
	padding: 20px;
	text-align: center;
	width:180px;
	background-color: #cc363f;
	color: #fff;
	font-size: 20px;
	border-radius: 40px;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
#mk_price a:hover{
	background-color: #713a3a;
}

#mk_price a:before {
	margin: 0 5px 0 0;
	position:relative;
	display: inline-block;
	font-size: 20px;
	transition: 0.3s;
	font-family: 'Material Symbols Outlined';
	content: '\e313';
	vertical-align: middle;
}
}

@media screen and (min-width: 769px), print {
#mk_price a:before {
	margin: 0 5px 0 0;
	position:relative;
	display: inline-block;
	font-size: 35px;
	transition: 0.3s;
	font-family: 'Material Symbols Outlined';
	content: '\e313';
	vertical-align: middle;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
#price_table a{
	display:block;
	margin: auto;
	padding: 0px;
	text-align: center;
	width:180px;
	background-color: #cc363f;
	color: #fff;
	font-size: 14px;
	border-radius: 40px;
}
}

@media screen and (min-width: 769px), print {
#price_table a{
	display:block;
	margin: auto;
	padding: 20px;
	text-align: center;
	width:180px;
	background-color: #cc363f;
	color: #fff;
	font-size: 20px;
	border-radius: 40px;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
#price_table a:hover{
	background-color: #713a3a;
}

#price_table a:before {
	margin: 0 5px 0 0;
	position:relative;
	display: inline-block;
	font-size: 35px;
	transition: 0.3s;
	font-family: 'Material Symbols Outlined';
	content: '\e863';
	vertical-align: middle;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.cal_goods_list{
	display:flex;
	align-items: flex-end;
	flex-direction: row;
	flex-wrap: wrap;
}
}

@media screen and (min-width: 769px), print {
.cal_goods_list{
flex-direction:row;
flex-wrap:nowrap;

	display:flex;
	align-items: flex-end;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.goods_show{
	width: 100%;
}
}

@media screen and (min-width: 769px), print {
.goods_show{
	width: 70%;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.goods_price{
	width: 100%;
	text-align:right;
}
}

@media screen and (min-width: 769px), print {
.goods_price{
	width: 30%;
	text-align:right;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.calArea dd.dd_price{
	text-align:right;	
}

#price_table{
	max-width:800px;
	margin: 2em auto;
	border:1px solid #ccc;
	padding: 1em .5em;
	border-radius:10px;
}
}

@media screen and (min-width: 769px), print {
#price_table{
	max-width:800px;
	margin: 2em auto;
	border:1px solid #ccc;
	padding:1em 2em;
	border-radius:10px;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
#price_table h4{
	text-align:left;
}

#price_table .calArea dt{
	width: 40%;
	min-height: 3em;
}
}

@media screen and (min-width: 769px), print {
#price_table .calArea dt{
	width:40%;
	min-height: 3em;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
#price_table .calArea dd{
	width: 60%;
}
}

@media screen and (min-width: 769px), print {
#price_table .calArea dd{
	width:60%;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
#page_title{
	position:relative;
	z-index:1000;
	transition-property: all;	/* 適用対象 = なんでも */
	transition-duration: 0.5s;	/* 秒数 = 1.0秒 */
}

#page_title.fixed{
	position:fixed;
	transition-property: all;	/* 適用対象 = なんでも */
	transition-duration: 0.5s;	/* 秒数 = 1.0秒 */
	background-color: #f5f5f5;
	width:100%;
	border-bottom: 1px solid #ccc;
	border-top:5px solid #2CA5AC;
}

#page_title p{
	display:block;
	transition-property: all;	/* 適用対象 = なんでも */
	transition-duration: 1.0s;	/* 秒数 = 1.0秒 */
}

#page_title.fixed p{
	display:none;
	transition-property: all;	/* 適用対象 = なんでも */
	transition-duration: 1.0s;	/* 秒数 = 1.0秒 */
}

#page_title .layout{
	margin: 0 auto;
	padding: 0;
	max-width: var(--rental-content-max);
	position: relative;
	transition-property: all;	/* 適用対象 = なんでも */
	transition-duration: 1.0s;	/* 秒数 = 1.0秒 */
}

#page_title.fixed .layout{
	margin: 0 auto;
	padding: 0 2em;
	max-width: 100%;
	transition-property: all;	/* 適用対象 = なんでも */
	transition-duration: 1.0s;	/* 秒数 = 1.0秒 */
}

#page_title h2{
	font-weight:normal;
	font-size: 2em;
	line-height: normal;
	font-weight:600;
	text-align: left;
	display: inline-block;
	margin-right:1em;
	margin-bottom: .5em;
	padding-bottom: 0;
	transition-property: all;	/* 適用対象 = なんでも */
	transition-duration: 1.0s;	/* 秒数 = 1.0秒 */
	color:#000;
}

#page_title.fixed h2{
	font-weight:normal;
	font-size: 1.5em;
	line-height: normal;
	font-weight:600;
	text-align: left;
	display: inline-block;
	margin-right:1em;
	margin-bottom: .5em;
	padding-bottom: 0;
	transition-property: all;	/* 適用対象 = なんでも */
	transition-duration: 1.0s;	/* 秒数 = 1.0秒 */
	margin-top: 0;
	color:#333;
}

#page_title h2 span{
	font-family: 'Roboto', sans-serif;
	display:block;
	font-size:.6em;
	letter-spacing:.2em;
	color: var(--rental-color-accent);
	transition-property: all;	/* 適用対象 = なんでも */
	transition-duration: 0.2s;	/* 秒数 = 1.0秒 */
}

#page_title.fixed h2 span{
	font-size:.5em;
	transition-property: all;	/* 適用対象 = なんでも */
	transition-duration: 0.2s;	/* 秒数 = 1.0秒 */
}

#page_title .h2_sub{
	display:inline-block;
	border-radius:1em;
	border:1px solid #aaa;
	padding:.3em 1.2em;
	font-size: 1em;
	margin: 0 .5em 0 0;
	background: #fff;
}

#page_title.fixed .h2_sub{
	display:none;
	transition-property: all;	/* 適用対象 = なんでも */
	transition-duration: 1.0s;	/* 秒数 = 1.0秒 */
}
}

@media screen and (max-width: 768px) {
#page_title .room_menu{
	position:absolute;
	right:0;
	overflow: scroll;
	display: none;
}
}

@media screen and (min-width: 769px), print {
#page_title .room_menu{
	position:absolute;
	right:0;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
#page_title.fixed .room_menu{
	right:2em;
	top:1em;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
#page_title .room_menu ul{
	display:flex;
	justify-content: flex-end;
	width: 800px;
	/* overflow: scroll; */
}
}

@media screen and (min-width: 769px), print {
#page_title .room_menu ul{
width:auto;

	display:flex;
	justify-content: flex-end;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.room_menu li{
	margin-left:0em;
}

#page_title .room_menu li a{
	padding-left: 1.5em;
	color:#000;
	font-weight:500;
	font-size: .9em;
}

#page_title.fixed .room_menu li a{
	color:#333;
}

#page_title .room_menu li a:hover{
	color:var(--rental-color-accent);
}

#page_title .room_menu li a:before {
	margin: 0 5px 0 0;
	position:relative;
	display: inline-block;
	font-size: 25px;
	transition: 0.3s;
	font-family: 'Material Symbols Outlined';
	content: '\e313';
	vertical-align: middle;
	color:var(--rental-color-accent);
	font-weight:800;
}

#page_title.fixed .room_menu li a:before {
	color:var(--rental-color-accent);
}

/* ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ご利用の流れ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ */
#flow_step{
	max-width:var(--rental-content-max);
	margin: 4em auto 1em auto;
}
}

@media screen and (min-width: 769px), print {
/* ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ご利用の流れ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ */
#flow_step{
	max-width:var(--rental-content-max);
	margin:4em auto 3em auto;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
#flow_step ul{
	margin:0;
	padding:0;
	list-style-type:none;
	display:flex;
	justify-content: space-evenly;
	flex-wrap: wrap;
}
}

@media screen and (min-width: 769px), print {
#flow_step ul{
flex-wrap:nowrap;

	margin:0;
	padding:0;
	list-style-type:none;
	display:flex;
	justify-content: space-between;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
#flow_step li{
	width: 90%;
	border:3px solid #2D9CA2;
	background-color:#F1F7F6;
	border-radius:10px;
	position:relative;
	padding: 4em 1em 0em 1em;
	box-sizing:border-box;
	text-align:left;
	font-size: .9em;
	margin-bottom: 4em;
}
}

@media screen and (min-width: 769px), print {
#flow_step li{
margin-bottom:0;

	width: 24%;
	border:3px solid #2D9CA2;
	background-color:#F1F7F6;
	border-radius:10px;
	position:relative;
	padding: 4em 1em 0em 1em;
	box-sizing:border-box;
	text-align:left;
	font-size: .9em;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
#flow_step li span.flow_step_number{
	position:absolute;
	width:70px;
	height:70px;
	border-radius:50%;
	background-color:#2D9CA2;
	text-align:center;
	line-height:70px;
	color:#fff;
	left:10px;
	top:-30px;
	z-index:100;
}

#flow_step li span.flow_step_img{
	position:absolute;
	width:120px;
	height:100px;
	text-align:center;
	right:10px;
	top:-60px;
	z-index:100;
}

#flow_step h3{
	color:#2D9CA2;
	font-size: 1.3em;
	margin: 0 0 .5em 0;
	padding:0;
}

.flow_step{
	max-width:var(--rental-content-max);
	margin: 0em auto 3em auto;
}
}

@media screen and (min-width: 769px), print {
.flow_step{
	max-width:var(--rental-content-max);
	margin:4em auto 3em auto;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.flow_step dt{
	position:relative;
	color:#2D9CA2;
	font-size: 1.8em;
	font-family: 'Roboto', sans-serif;
	padding-left:1em;
	padding-top:.2em;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.flow_step_section{
	display:flex;
	padding: 0 0em 2em 1em;
	flex-direction: row;
	flex-wrap: wrap;
}
}

@media screen and (min-width: 769px), print {
.flow_step_section{
flex-direction:row;
flex-wrap:nowrap;

	display:flex;
	padding: 2em 0;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.flow_step dt::after {
	content: '';
	position: absolute;
	top: calc(0.5em + 5px);
	left: 4px;
	width: 2px;
	height: calc(100% + 2em);
	background-color: #ddd;
}

.flow_step dt::before {
	position: absolute;
	top: .5em;
	left: 0px;
	content: '';
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background-color: #2D9CA2;
	z-index: 1;
}
}

@media screen and (max-width: 768px) {
.flow_step dd{
	padding: 0 1em 0 2em;
	text-align:left;
	position:relative;
	margin: 0;
}
}

@media screen and (min-width: 769px), print {
.flow_step dd{
	padding:0 1em;
	text-align:left;
}
}

@media screen and (max-width: 768px) {
.flow_step dd a{
	background-color: #2D9CA2;
	color:#fff;
	font-weight:500;
	padding:1em 2em;
	display:inline-block;
	margin:1em 0;
	border-radius:10px;
	font-size: 3.3vw;
}
}

@media screen and (min-width: 769px), print {
.flow_step dd a{
	background-color: #2D9CA2;
	color:#fff;
	font-weight:500;
	padding:1em 2em;
	display:inline-block;
	margin:1em 0;
	border-radius:10px;
}
}

@media screen and (max-width: 768px) {
.flow_step dd::after {
	content: '';
	position: absolute;
	top: calc(0.5em + 5px);
	left: 4px;
	width: 2px;
	height: calc(100% + 2em);
	background-color: #ddd;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.flow_step dd a.rr-flow-inline-link{display:inline;background:transparent;color:var(--rental-color-accent);padding:0;border-radius:0;font-size:inherit;text-decoration:underline;}
.information{
	/* border: 3px solid #8d7a78; */
	background-color: #ece8e8;
	border-radius:10px;
	padding:1em;
}

/* ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ご利用料金▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ */
#price_list{
	max-width:var(--rental-content-max);
	margin: 1em auto 3em auto;
	background-color: #fff;
	border-radius: 10px;
	padding: 1em;
	text-align:left;
}

/* ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼資料ダウンロード▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ */
#download_list{
	max-width:var(--rental-content-max);
	margin: 1em auto 3em auto;
	background-color: #fff;
	border-radius: 10px;
	padding: 3em 1em 1em 1em;
	text-align:left;
}

#download_list ul{
	margin:0;
	padding:0;
	display:flex;
	flex-wrap: wrap;
}

#download_list li{
	margin:0 1%;
	padding:0;
	width: 98%;
	box-sizing:border-box;
}
}

@media screen and (min-width: 769px), print {
#download_list li{
	margin:0 1%;
	padding:0;
	width:48%;
	box-sizing:border-box;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
a.data_file {
	width: 100%;
	display: -webkit-box;
	height: auto;
	padding: 1em 1em 1em 2em;
	margin-bottom: 1.5em;
	border: 1px solid #999591;
	border-radius: 10px;
	font-size: 1em;
	color: #000;
	position: relative;
	box-sizing:border-box;
}

a.data_file:hover {
	font-weight: bold;
	background: #eee8df;
	color: #c06262;
}

a.data_file:after {
	content: "\f090";
	font-family: 'Material Symbols Outlined';
	font-size:2em;
	font-weight:600;
	right: 0;
	position: absolute;
	border-left: 1px solid #a98963;
	top: 0px;
	height: 100%;
	display:inline-block;
	max-width:100%;
	padding:0 .5em;
	line-height: 2em;
	color:#c06262;
}
}

@media screen and (min-width: 769px), print {
a.data_file:after {
	content: "\f090";
	font-family: 'Material Symbols Outlined';
	font-size:2em;
	font-weight:600;
	right: 0;
	position: absolute;
	border-left: 1px solid #a98963;
	top: 0px;
	height: 100%;
	display:inline-block;
	max-width:100%;
	padding:0 .5em;
	line-height:1.5em;
	color:#c06262;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
a.data_file:hover::after {
	background:#ded5c6;
	border-radius:0 10px 10px 0;
}
}

@media screen and (min-width: 769px), print {
/* ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼弁当▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ */
/* ケータリング注意書き（注意アイコン付き） */
.bento-notice {
    margin: 25px 0 30px;
    padding: 14px 20px 14px 50px;
    background-color: #faf7eb;
    border: 1px solid #d4c793;
    border-radius: 6px;
    color: #b32525;
    font-size: 15px;
    font-weight: bold;
    position: relative;
    line-height: 1.5;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
    text-align:left;
}

/* 左側にビックリマーク（注意アイコン）を自動生成 */
.bento-notice::before {
    content: "!";
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    width: 22px;
    height: 22px;
    background-color: #b32525;
    color: #ffffff;
    font-size: 14px;
    font-weight: 900;
    font-family: Roboto, sans-serif;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}
}

@media screen and (max-width: 768px) {
/* ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼弁当▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ */
#bento-list ul{
	width:100%;
	display:flex;
	flex-wrap: wrap;
}
}

@media screen and (min-width: 769px), print {
#bento-list ul{
	width:100%;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	grid-template-rows: repeat(1, 1fr);
	gap: 1.5em;
	margin-bottom: 4em;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
#bento-list li{
	width: 48%;
	margin:1%;
}
}

@media screen and (min-width: 769px), print {
#bento-list li{
	width: 100%;
	margin: 0;
	border-radius:10px;
	overflow:hidden;
}

.buttons {
	display: flex;
	flex-wrap: wrap;
	margin-bottom: 3rem;
}

/* .button {
	border: 1px solid #999;
	border-right: none;
	color: #333;
	padding: 1em 1em;
	background-color: #fff;
	cursor: pointer;
	width: 20%;
	transition: .3s ease;
	position: relative;
	font-weight:600;
}*/
.button:first-child {
    border-top-left-radius: 6px;
    border-bottom-left-radius: 6px;
}

.button:last-child {
    border-top-right-radius: 6px;
    border-bottom-right-radius: 6px;
    border-right: 1px solid #999;
}

.button.mixitup-control-active{
	background-color:#444;
	color:#fff;
}

.range-wrapper {
  position: relative;
  width: 400px;
  height: 40px;
  margin: 20px 0;
}

.range-wrapper input[type="range"] {
  position: absolute;
  width: 100%;
  left: 0;
  top: 30%;
  pointer-events: none;
  appearance: none;
  background: none;
}

.range-wrapper input::-webkit-slider-thumb {
  pointer-events: auto;
  appearance: none;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #333;
  cursor: pointer;
}

.range-track {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  height: 6px;
  width: 100%;
  background: #ddd;
  border-radius: 3px;
}

.range-selected {
  position: absolute;
  top: 50%;
  height: 6px;
  background: #4CAF50;
  border-radius: 3px;
}

.input-area {
  display: flex;
  gap: 16px;
  align-items: center;
  flex-wrap: wrap;
}

.price-input-wrapper {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.price-input {
  width: 110px;
  padding: 4px 6px;
}

/* Bento mega menu */
mainmenu li.menu-item-bento {
	position: relative;
}

mainmenu li.menu-item-bento > a.menu05 {
	z-index: 31;
}

.bento-mega-menu {
	position: absolute;
	top: calc(100% + 16px);
	left: 50%;
	z-index: 30;
	display: grid;
	grid-template-columns: 260px 330px;
	gap: 22px;
	width: 660px;
	padding: 24px;
	box-sizing: border-box;
	background: #fff;
	border: 1px solid #e6e0d8;
	border-radius: 18px;
	box-shadow: 0 18px 45px rgba(38, 34, 30, .18);
	text-align: left;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translate(-50%, 8px);
	transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
}

.bento-mega-menu::before {
	content: "";
	position: absolute;
	left: 50%;
	top: -11px;
	width: 20px;
	height: 20px;
	background: #fff;
	border-left: 1px solid #e6e0d8;
	border-top: 1px solid #e6e0d8;
	transform: translateX(-50%) rotate(45deg);
}

.bento-mega-menu::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: -18px;
	height: 18px;
}

mainmenu li.menu-item-bento:hover .bento-mega-menu,
mainmenu li.menu-item-bento:focus-within .bento-mega-menu {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translate(-50%, 0);
}

.bento-mega-title {
	margin: 0 0 12px;
	font-size: 22px;
	font-weight: 700;
	line-height: 1.35;
	color: #333;
}

.bento-mega-text {
	margin: 0;
	font-size: 14px;
	line-height: 1.8;
	color: #666;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
#bento-list li .photo{
	width:100%;
	border:solid 1px #ccc;
	height:11em;
	display:flex;
	align-items: center;
	background-color:#eee;
	margin-bottom:.4em;
	justify-content: space-evenly;
}
}

@media screen and (min-width: 769px), print {
#bento-list li .photo{
	width:100%;
	border:solid 1px #ccc;
	box-sizing: border-box;
	height: 11em;
	display:flex;
	align-items: center;
	background-color:#eee;
	margin-bottom:.4em;
	justify-content: space-evenly;
	border-radius:10px;
	overflow:hidden;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
#bento-list li .photo a{
	width:100%;
	display:flex;
	align-items: center;
	justify-content: space-evenly;
	height:100%;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
#bento-list li .photo a img,#bento-list li .photo img{
	width:100%;
	height:auto;
	max-height:100%;
}
}

@media screen and (min-width: 769px), print {
#bento-list li .photo a img,#bento-list li .photo img{
width:auto;
height:auto;
max-height:none;

	object-fit: cover;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
#bento-list li .photo p{
	margin:0;
	color:#666;
}

#bento-list li .name{
	display:block;
	font-size:.9em;
	font-weight:bold;
	text-align:left;
}

#bento-list li .name .otea-tag{
	background-color:#60ac2c;
	border-radius:5px;
	color:#fff;
	font-weight:normal;
	font-size:.9em;
	padding:.1em .5em;
	margin-left:.5em;
}

#bento-list li .price{
	display:block;
	font-size:.9em;
	font-weight:bold;
	text-align:left;
	color:#ef4c38;
}

#bento-list li .price span{
	display:inline-block;
	font-size:.9em;
	font-weight:bold;
	text-align:left;
	color:#000;
}

#bento-list li .shop_name{
	display:block;
	font-size:.8em;
	text-align:left;
}
}

@media screen and (min-width: 769px), print {
.buttons {
	display: flex;
	flex-wrap: wrap;
	margin-bottom: 3rem;
}

.buttons .button {
	border: 1px solid #999;
	border-right: none;
	color: #333;
	padding: 1em 1em;
	background-color: #fff;
	cursor: pointer;
	width: 20%;
	transition: .3s ease;
	position: relative;
	font-weight:600;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.button:first-child {
    border-top-left-radius: 6px;
    border-bottom-left-radius: 6px;
}

.button:last-child {
    border-top-right-radius: 6px;
    border-bottom-right-radius: 6px;
    border-right: 1px solid #999;
}

.button.mixitup-control-active{
	background-color:#444;
	color:#fff;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.bento-single-cont {
	width: 100%;
	/* float: left; */
	display: inline-block;
	vertical-align: top;
	/* max-width: var(--rental-content-max); */
	padding: 1em;
	box-sizing: border-box;
}
}

@media screen and (min-width: 769px), print {
.bento-single-cont {
padding:0;
box-sizing:content-box;

	width: 100%;
	/* float: left; */
	display: inline-block;
	vertical-align: top;
	max-width: var(--rental-content-max);
}
}

@media screen and (max-width: 768px) {
.bento-cont table,.bento-single-cont table {
	margin: 20px auto 20px auto;
	padding:0;
	border-collapse:collapse;
	border-spacing:0px;
	text-align:left;
	width:100%;
	box-sizing: border-box;
	display: block;
}
}

@media screen and (min-width: 769px), print {
.bento-cont table,.bento-single-cont table {
	margin: 20px auto 20px auto;
	padding:0;
	border-collapse:collapse;
	border-spacing:0px;
	text-align:left;
	width:100%;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.bento-cont table,.bento-single-cont table p{
	margin-bottom:0;
}
}

@media screen and (max-width: 768px) {
.bento-cont table th,.bento-single-cont table th {
	padding: .5em 1em;
	vertical-align: center;
	background-color: #ece8e0;
	border-top:1px solid #ccc;
	border-bottom:1px solid #ccc;
	width: 20%;
	font-size: .85em;
	width: 100%;
	display: block;
	box-sizing: border-box;
}
}

@media screen and (min-width: 769px), print {
.bento-cont table th,.bento-single-cont table th {
	padding: 1em 2em;
	vertical-align: center;
	background-color: #ece8e0;
	border-top:1px solid #ccc;
	border-bottom:1px solid #ccc;
	width: 20%;
	font-size:.95em;
}
}

@media screen and (max-width: 768px) {
.bento-cont table td,.bento-single-cont table td {
	padding: 1em 1em;
	vertical-align: top;
	border-top:1px solid #ccc;
	border-bottom:1px solid #ccc;
	margin:0;
	font-size: .7em;
	display: block;
	width: 100%;
	box-sizing: border-box;
}
}

@media screen and (min-width: 769px), print {
.bento-cont table td,.bento-single-cont table td {
	padding: 1em 2em;
	vertical-align: top;
	border-top:1px solid #ccc;
	border-bottom:1px solid #ccc;
	margin:0;
	font-size:.95em;
}

/* ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼弁当注文▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ */
/* =================================================   
   お弁当店舗別フォーム（5カラム ＆ 飲料小計対応）
   ================================================= */
.bento-form-container {
    max-width: var(--rental-content-max);
	border-radius:10px;
    margin: 40px auto;
    padding: 20px;
    background: #fff;
    color: #333;
    text-align: left;
    font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
}

.bento-form-top-note {
    color: #b32525; font-weight: bold; margin-bottom: 30px; font-size: 0.95rem;
}

.bento-form-section { margin-bottom: 40px; }

.bento-section-title {
    font-size: 1.35rem; color: #111; border-left: 6px solid #b32525; padding-left: 15px; margin: 0 0 15px 0; font-weight: bold;
}

/* 4カラム テーブルスタイル */
.bento-table-header {
    display: flex; background-color: #f7f7f7; border-top: 1px solid #ccc; border-bottom: 1px solid #ccc; font-weight: bold; font-size: 0.85rem; color: #444;
}

.bento-table-row {
    display: flex; align-items: center; padding: 12px 0; border-bottom: 1px solid #eee;
}

/* 各カラム幅（4カラム用に再分配） */
.col-item { width: 45%; padding-left: 10px; box-sizing: border-box; }

.col-price { width: 18%; text-align: right; padding-right: 10px; box-sizing: border-box; }

.col-qty { width: 17%; display: flex; justify-content: flex-end; padding-right: 10px; box-sizing: border-box; }

.col-subtotal { width: 20%; text-align: right; padding-right: 15px; box-sizing: border-box; }

.table-th { padding: 10px 0; }

.table-th.col-price, .table-th.col-qty, .table-th.col-subtotal { text-align: right; padding-right: 10px; }

/* 画像 ＋ 品名 ＋ お茶付きタグ */
.item-name-box {
    display: flex; align-items: center; gap: 12px;
}

.menu-thumb {
    width: 80px; height: 55px; object-fit: cover; border-radius: 4px; flex-shrink: 0;
}

.item-title { font-size: 0.95rem; color: #222; display: block; }

.otea-tag {
    display: inline-block; background: #4caf50; color: #fff; font-size: 0.65rem; padding: 1px 6px; border-radius: 3px; margin-top: 3px; font-weight: normal;
}

.item-price { font-size: 0.9rem; font-weight: bold; color: #111; margin: 0 !important; }

.item-price span { font-size: 0.75rem; color: #777; font-weight: normal; }

/* 小計表示 */
.subtotal-val { font-weight: bold; color: #b32525; font-size: 0.95rem; }

/* 数量入力 */
.bento-qty-wrap { display: flex; align-items: center; gap: 4px; justify-content: flex-end; }

.bento-qty-wrap input[type="number"] {
    width: 60px !important; text-align: right; padding: 6px; border: 1px solid #ccc; border-radius: 4px; background-color: #fafafa; font-size: 14px;
}

.unit-text { font-size: 0.8rem; font-weight: bold; }

/* お客様情報 ＆ ラジオボタン */
.bento-info-row { display: flex; align-items: center; padding: 12px 0; border-bottom: 1px solid #eee; }

.bento-info-label-col { width: 30%; padding-right: 15px; box-sizing: border-box; }

.bento-info-input-col { width: 70%; box-sizing: border-box; }

.bento-info-label { font-weight: bold; font-size: 0.95rem; }

.bento-form-container input[type="text"],
.bento-form-container input[type="tel"],
.bento-form-container input[type="email"],
.bento-form-container input[type="date"],
.bento-form-container textarea {
    width: 100%; padding: 10px 12px; border: 1px solid #ccc; border-radius: 4px; background-color: #fafafa; font-size: 15px; box-sizing: border-box;
}

.bento-required { background: #b32525; color: #fff; font-size: 0.65rem; padding: 2px 8px; border-radius: 20px; margin-left: 8px; }

/* ラジオボタン（精算方法） */
.bento-info-input-col label {
    display: inline-flex; align-items: center; margin: 5px 15px 5px 0 !important;
	border:1px solid #ccc;
	border-radius:5px;
	padding:5px 10px;
}

.bento-info-input-col input[type="radio"] { margin-right: 5px; cursor: pointer; }

.bento-info-input-col label { font-weight: bold; font-size: 0.9rem; cursor: pointer; }

/* 合計ボックス */
.bento-total-box { background: #fdfdfd; border: 1px solid #ddd; border-radius: 6px; padding: 20px 25px; }

.total-row { display: flex; justify-content: space-between; align-items: center; padding: 8px 0; }

.total-row.tax-row { padding-top: 12px; border-top: 1px dashed #eee; }

.total-val.highlight { color: #b32525; font-size: 1.6rem; font-weight: bold; }

.bento-form-submit{
text-align:center;
}

.bento-submit-button {
    background: #b32525; color: #fff; padding: 18px 60px; font-size: 1.15rem; font-weight: bold; border: none; border-radius: 4px; cursor: pointer; min-width: 280px;
}
}

@media screen and (max-width: 768px) {
.buttons {
	display: flex;
	flex-wrap: wrap;
	margin-bottom: 1rem;
}

.button {
	border: 1px solid #999;
	border-right: none;
	color: #333;
	padding: 1em 1em;
	background-color: #fff;
	cursor: pointer;
	width: 50%;
	transition: .3s ease;
	position: relative;
	font-weight:600;
}

.button:first-child {
    border-top-left-radius: 6px;
    border-bottom-left-radius: 6px;
}

.button:last-child {
    border-top-right-radius: 6px;
    border-bottom-right-radius: 6px;
    border-right: 1px solid #999;
}

.button.mixitup-control-active{
	background-color:#444;
	color:#fff;
}

.range-wrapper {
  position: relative;
  width: 400px;
  height: 40px;
  margin: 20px 0;
}

.range-wrapper input[type="range"] {
  position: absolute;
  width: 100%;
  left: 0;
  top: 30%;
  pointer-events: none;
  appearance: none;
  background: none;
}

.range-wrapper input::-webkit-slider-thumb {
  pointer-events: auto;
  appearance: none;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #333;
  cursor: pointer;
}

.range-track {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  height: 6px;
  width: 100%;
  background: #ddd;
  border-radius: 3px;
}

.range-selected {
  position: absolute;
  top: 50%;
  height: 6px;
  background: #4CAF50;
  border-radius: 3px;
}

.input-area {
  display: flex;
  gap: 16px;
  align-items: center;
  flex-wrap: wrap;
}

.price-input-wrapper {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.price-input {
  width: 110px;
  padding: 4px 6px;
}

/* ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼弁当注文▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ */
/* =================================================   
   1. フォーム全体・共通設定
   ================================================= */
.order-form-section {
    width: 100%;
    display: inline-block;
    vertical-align: top;
    max-width: var(--rental-content-max);
    text-align: left;
}

.order-form-container {
    background: #f9f9f9;
    padding: 1em;
    border: 1px solid #ddd;
    border-radius: 8px;
    margin-top: 40px;
    color: #333;
    line-height: 1.6;
}

.order-form-container p {
    margin: 0;
}

.section-title {
    background: #555;
    color: #fff;
    padding: 8px 15px;
    margin: 30px 0 15px;
    font-size: .9rem;
    border-radius: 4px;
}

/* 注意書き・注釈 */
.form-main-note {
    color: #d32f2f;
    font-weight: bold;
    margin-bottom: 5px;
    font-size: 0.8rem;
}

.small-note {
    font-size: 0.85rem;
    color: #666;
    margin-top: 5px;
    margin-bottom: 10px;
}

.form-notes-list {
    font-size: 0.85rem;
    padding-left: 20px;
    color: #444;
    margin-bottom: 15px;
}

.caution-text {
    font-size: 0.85rem;
    color: #d32f2f;
    border-left: 3px solid #d32f2f;
    padding-left: 10px;
    margin-top: 5px;
}

/* =================================================   
   2. レイアウト（グリッド・カラム）
   ================================================= */
.form-row {
    display: flex;
    gap: 20px;
    margin-bottom: 15px;
}

.form-col {
    flex: 1;
}

.form-col label {
    display: block;
    font-weight: bold;
    margin-bottom: 8px;
    color: #444;
    border-left: 4px solid #d32f2f;
    padding-left: 10px;
    text-align: left;
}

/* =================================================   
   3. 注文テーブル（お弁当・飲料）
   ================================================= */
.order-table-wrapper {
    overflow-x: auto;
    margin-bottom: 15px;
}

.order-table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    table-layout: fixed;
}

.order-table th, 
.order-table td {
    border: 1px solid #ccc;
    padding: .2em 0em;
    vertical-align: middle;
    font-weight: bold;
}

.order-table th {
    background: #eee;
    font-size: 0.7rem;
    text-align: center;
}

/* テーブル内入力フィールド */
.order-table input {
    width: 100%;
    box-sizing: border-box;
}

/* 読み取り専用行（店舗メニュー） */
.order-table input.is-readonly,
.order-table input[readonly] {
    border: none !important;
    background: transparent !important;
    pointer-events: none;
    color: #333;
    font-weight: bold;
    box-shadow: none !important;
}

/* 自由入力行・数量・時間 */
.order-table input:not(.is-readonly) {
    border: 1px solid #ccc !important;
    background: #fff !important;
    padding: 5px !important;
}

/* 数値入力（右寄せ） */
.order-table input[type="number"] {
    text-align: right;
}

/* 合計・集計行 */
.order-table tr:last-child {
    background-color: #fff8f8 !important;
}

#all-total-tax {
    font-family: 'Noto Sans JP', sans-serif;
    letter-spacing: 0.05em;
}

/* =================================================   
   4. 共通入力パーツ（text, tel, date, textarea）
   ================================================= */
.form-section input[type="text"],
.form-section input[type="tel"],
.form-section input[type="date"],
.form-section textarea {
    width: 100%;
    padding: 12px 15px;
    border: 2px solid #ddd;
    border-radius: 6px;
    background-color: #fff;
    font-size: .7em;
    color: #333;
    transition: all 0.3s ease;
    box-sizing: border-box;
    outline: none;
}

.form-section input:focus,
.form-section textarea:focus {
    border-color: #d32f2f;
    background-color: #fff8f8;
    box-shadow: 0 0 8px rgba(211, 47, 47, 0.2);
}

/* カレンダー(date)固有設定 */
.form-section input[type="date"] {
    position: relative;
    cursor: pointer;
    font-family: inherit;
}

.form-section input[type="date"]::-webkit-calendar-picker-indicator {
    background: transparent;
    cursor: pointer;
    height: 100%;
    width: 40px;
    position: absolute;
    right: 0;
    top: 0;
    z-index: 1;
}

.form-col.date-col {
    position: relative;
}

.form-col.date-col:after {
    content: '??';
    position: absolute;
    right: 15px;
    bottom: 12px;
    font-size: 1.2em;
    pointer-events: none;
    color: #d32f2f;
}

/* =================================================   
   5. ラジオボタン装飾（ボタンタイル型）
   ================================================= */
.radio-flex .wpcf7-form-control-wrap {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 10px;
}

.radio-flex input[type="radio"] {
    display: none; /* 標準ボタン隠し */
}

.radio-flex .wpcf7-list-item {
    display: inline-block;
    margin: 5px !important;
}

.radio-flex .wpcf7-list-item-label {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 15px 25px 15px 35px;
    background: #fff;
    border: 2px solid #ddd;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.2s ease-in-out;
    font-weight: bold;
    color: #555;
    min-width: 180px;
    box-shadow: 0 2px 0 rgba(0,0,0,0.05);
}

.radio-flex .wpcf7-list-item-label:hover {
    border-color: #aaa;
    transform: translateY(-2px);
    box-shadow: 0 5px 10px rgba(0,0,0,0.1);
}

/* 選択時の状態 */
.radio-flex input[type="radio"]:checked + .wpcf7-list-item-label {
    /* background: linear-gradient(135deg, #e53935 0%, #d32f2f 100%); */
    border-color: #b71c1c;
    /* color: #fff; */
    transform: translateY(2px);
    box-shadow: inset 0 2px 5px rgba(0,0,0,0.2);
    /* padding-left: 45px; */
}

/* 選択時のチェックマーク */
.radio-flex input[type="radio"]:checked + .wpcf7-list-item-label:after {
    content: '';
    position: absolute;
    left: 15px;
    top: 50%;
    transform: translateY(-50%) rotate(45deg);
    width: .6em;
    height: 1em;
    border-bottom: 3px solid #b71c1c;
    border-right: 3px solid #b71c1c;
    border-radius: 1px;
    animation: checkmarkPop 0.3s ease-out forwards;
}

@keyframes checkmarkPop {
    0% { opacity: 0; transform: translateY(-50%) rotate(45deg) scale(0.5); }
    100% { opacity: 1; transform: translateY(-50%) rotate(45deg) scale(1); }
}

/* =================================================   
   6. 送信ボタン
   ================================================= */
.form-submit {
    text-align: center;
    margin-top: 30px;
}

.form-submit .button {
    background: #ff5722;
    color: #fff;
    padding: 15px 50px;
    font-size: 1.2rem;
    border: none;
    border-radius: 50px;
    cursor: pointer;
    transition: 0.3s;
    font-weight: bold;
}

.form-submit .button:hover {
    background: #e64a19;
    transform: scale(1.05);
}

/* ================================================================
   SP overrides (<=768px)
   - ブレイクポイント: 768px 以下
   - コンテンツ全体を縦1カラム化
   - 記事内テーブルは親を突き抜けず横スクロール
   - PC版ナビ（mainmenu）はスマホで非表示
================================================================ */
@media (max-width: 768px) {
html,
  body:where(:not(#tinymce)) {
    overflow-x: hidden;
    width: 100%;
  }

body:where(:not(#tinymce)) {
    font-size: 14px;
    line-height: 1.7;
    text-align: left;
  }

img {
    max-width: 100%;
    height: auto;
  }

/* --- コンテンツ全体：横幅を1カラムに寄せる --- */
  .wrap,
  .layout,
  #page_title .layout,
  #page_back .layout,
  #page_main,
  #article_main {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
  }

.layout,
  #page_title .layout,
  #page_back .layout {
    padding-left: 16px !important;
    padding-right: 16px !important;
    margin-bottom: 1em;
  }

/* --- 記事内テーブル：横スクロール対応（親幅を突き抜けない） --- */
  .table_scroll{
	  overflow:scroll;
	  margin-right: -3em;
	 }

#article_main table,
  #page_main table,
  .layout table {
    display: block;
    /* max-width: 100%; */
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

#article_main th,
  #article_main td,
  #page_main th,
  #page_main td {
    white-space: nowrap;
  }

/* --- PC版ナビ（メインメニュー）をスマホでは非表示 --- */
  mainmenu {
    display: none;
    position: absolute;
    background: #333;
    width: 100%;
    left: 0;
    top: 0;
  }
}

/* Bento submenu on mobile */
.bento-mega-menu {
	display: block !important;
	position: static !important;
	width: 100% !important;
	padding: 0 0 0 1em !important;
	margin: 0 !important;
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	opacity: 1 !important;
	visibility: visible !important;
	pointer-events: auto !important;
	transform: none !important;
}

.bento-mega-menu::before,
.bento-mega-menu::after,
.bento-mega-intro,
.bento-mega-list img {
	display: none !important;
}

mainmenu li.menu-item-bento {
	display: block !important;
	height: auto !important;
}

mainmenu li.menu-item-bento > a.menu05 {
	display: flex !important;
}

mainmenu ul.bento-mega-list {
	display: block !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
}
}

@media screen and (min-width: 769px), print {
/* ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼子メニュー▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ */
mainmenu ul.bento-mega-list {
	display: block;
	margin: 0;
	padding: 0;
}
}

@media screen and (max-width: 768px) {
mainmenu .bento-mega-list li {
	display: block !important;
	width: 100% !important;
	padding: 0 !important;
	border: none !important;
	font-size: inherit !important;
}
}

@media screen and (min-width: 769px), print {
mainmenu .bento-mega-list li {
	font-size: 15px;
}

mainmenu .bento-mega-list li + li {
	margin-top: 10px;
}
}

@media screen and (max-width: 768px) {
mainmenu .bento-mega-list a {
	display: block !important;
	width: 100% !important;
	padding: .45em 0 .45em 1em !important;
	box-sizing: border-box !important;
	background: transparent !important;
	border-radius: 0 !important;
	color: inherit !important;
	font-weight: 500 !important;
	line-height: 1.4 !important;
	text-align: left !important;
}
}

@media screen and (min-width: 769px), print {
mainmenu .bento-mega-list a {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 8px 10px;
	border-radius: 8px;
	color: #333;
	font-weight: 600;
	line-height: 1.4;
	transition: background-color .2s ease, color .2s ease;
}

mainmenu .bento-mega-list a:hover {
	background: #f5f0ea;
	color: #8a5a35;
}

.bento-mega-list img {
	width: 58px;
	height: 44px;
	object-fit: cover;
	border-radius: 6px;
	background: #f4f4f4;
	flex: 0 0 auto;
}

/* ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ケータリング▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ */
h3.catering-category-title {
	background-color:#fce55f;
	color:#644444;
	margin-bottom:1.5em;
}
}

@media screen and (max-width: 768px) {
/* ================================================================
   Current-site smartphone completion
   Keep this section last so that it also covers selectors added to pc.css
   after the original smartphone stylesheet was created.
================================================================ */
*:where(:not(#tinymce,#tinymce *)),
*:where(:not(#tinymce,#tinymce *))::before,
*:where(:not(#tinymce,#tinymce *))::after {
	box-sizing: border-box;
}

html,
body:where(:not(#tinymce)),
.wrap {
	width: 100%;
	max-width: 100%;
}

body:where(:not(#tinymce)) {
	font-size: 14px;
	line-height: 1.75;
	word-break: normal;
	overflow-wrap: anywhere;
}

.layout,
.footer_layout,
.refreshment_layout,
.catering-form-container,
.drink-form-container,
.order-form-container {
	width: calc(100% - 32px);
	max-width: none;
	margin-left: auto;
	margin-right: auto;
}

#page_title .layout,
#page_back .layout {
	width: 100%;
}

#page_title h2 {
	font-size: clamp(25px, 7.2vw, 32px);
	line-height: 1.35;
	text-align: left;
	overflow-wrap: anywhere;
}

#page_title h2 span {
	font-size: .55em;
	letter-spacing: .14em;
}

h3.catering-category-title {
	width: 100%;
	max-width: 30em;
	height: auto;
	min-height: 3em;
	padding: .65em 1.5em;
	line-height: 1.5;
}
}

@media screen and (min-width: 769px), print {
h3.catering-category-title {
	display: inline-block;
	position: relative;
	height: 3em;/*リボンの高さ*/
	line-height: 3em;/*リボンの高さ*/
	text-align: center;
	padding: 0 1.5em;/*横の大きさ*/
	font-size: 1.2em;/*文字の大きさ*/
	background-color:#fce55f;
	color:#644444;
	box-sizing: border-box;
	width:30em;
}

h3.catering-category-title:before, h3.catering-category-title:after {
  position: absolute;
  content: '';
  width: 0px;
  height: 0px;
  z-index: 1;
}

h3.catering-category-title:before {
  top: 0;
  left: 0;
  border-width: 1.5em 0px 1.5em 1em;
  border-color: transparent transparent transparent #f5f5f5;
  border-style: solid;
}

h3.catering-category-title:after {
  top: 0;
  right: 0;
  border-width: 1.5em 1em 1.5em 0px;
  border-color: transparent #f5f5f5; transparent transparent;
  border-style: solid;
}

/* ケータリング注意書き（注意アイコン付き） */
.catering-notice {
    margin: 25px 0 30px;
    padding: 14px 20px 14px 50px;
    background-color: #faf7eb;
    border: 1px solid #d4c793;
    border-radius: 6px;
    color: #b32525;
    font-size: 15px;
    font-weight: bold;
    position: relative;
    line-height: 1.5;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
    text-align:left;
}

/* 左側にビックリマーク（注意アイコン）を自動生成 */
.catering-notice::before {
    content: "!";
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    width: 22px;
    height: 22px;
    background-color: #b32525;
    color: #ffffff;
    font-size: 14px;
    font-weight: 900;
    font-family: Roboto, sans-serif;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}
}

@media screen and (max-width: 768px) {
iframe,
video,
embed,
object {
	max-width: 100%;
}

input,
select,
textarea,
button {
	max-width: 100%;
	font-family: inherit;
}

/* Header and drawer navigation */
header,
#header_menu {
	width: 100%;
	max-width: 100%;
}

#header_menu {
	padding-left: 12px;
	padding-right: 68px;
}

.logo {
	width: min(58vw, 240px);
	max-width: none;
}

.logo h1 {
	margin: 0;
}

#menuButton {
	right: 10px;
}

mainmenu {
	position: fixed;
	inset: 0;
	z-index: 999;
	height: 100dvh;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}

mainmenu > ul {
	min-height: 100%;
	padding: 68px 18px 32px;
}

mainmenu li,
mainmenu li a {
	width: 100%;
}

mainmenu li a {
	min-height: 48px;
	display: flex;
	align-items: center;
}

mainmenu .bento-mega-list a {
	min-height: 42px;
}

/* Common page content and horizontal data */
.table_scroll {
	width: 100%;
	margin-right: 0;
	overflow-x: auto;
	overflow-y: hidden;
	-webkit-overflow-scrolling: touch;
}

.table_scroll table,
.index_room-list_table,
#pricetable,
.price_table,
.goods_table,
.order-table {
	max-width: none;
}

.range-wrapper {
	width: 100%;
	max-width: 400px;
}

.input-area,
.radio-flex .wpcf7-form-control-wrap {
	align-items: stretch;
}

.radio-flex .wpcf7-list-item,
.radio-flex .wpcf7-list-item-label {
	width: 100%;
	min-width: 0;
}

.form-row {
	flex-direction: column;
	gap: 14px;
}

.form-col {
	width: 100%;
	min-width: 0;
}

.order-form-container {
	padding: 16px;
}

.order-table-wrapper {
	width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.order-table {
	width: 680px;
	display: table !important;
}

.order-table th,
.order-table td {
	white-space: normal !important;
	padding: 6px 5px;
}

.form-submit .button {
	width: 100%;
	padding: 14px 20px;
}

/* Bento and hors d'oeuvre archives */
.buttons {
	gap: 0;
}

.buttons .button,
.sort-buttons .button,
.filter-buttons .button {
	width: 50%;
	min-height: 46px;
	padding: .75em .5em;
}

#bento-list ul {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px 8px;
}

#bento-list li {
	width: auto;
	margin: 0;
	min-width: 0;
}

#bento-list li .photo {
	height: auto;
	aspect-ratio: 4 / 3;
	border-radius: 6px;
	overflow: hidden;
}

#bento-list li .photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
/* Catering archive and detail */
#catering-list ul {
	display: grid;
	grid-template-columns: 1fr;
	grid-template-rows: none;
	gap: 16px;
	margin-bottom: 32px;
}
}

@media screen and (min-width: 769px), print {
#catering-list ul{
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	grid-template-rows: 510px;
	gap:1.5em;
	margin-bottom: 2em;
}
}

@media screen and (max-width: 768px) {
#catering-list li {
	width: 100%;
	margin: 0;
	border: 2px solid #d4c793;
	border-radius: 12px;
	overflow: hidden;
	background: #fff;
}
}

@media screen and (min-width: 769px), print {
#catering-list li{
	border: 2px solid #d4c793;
	border-radius: 1em;
	margin-bottom:1em;
	overflow:hidden;
	background-color:#fff;
}

.catering-photo{
	width:100%;
	border:1px solid #ccc;
	display: block;
	height: auto;
}
}

@media screen and (max-width: 768px) {
.catering-photo,
.catering-photo a {
	display: block;
	width: 100%;
}
}

@media screen and (min-width: 769px), print {
.catering-photo img{
	aspect-ratio: 16/9;
	object-fit: cover;
}
}

@media screen and (min-width: 769px), print {
.catering-content{
	width:100%;
	/* border:1px solid #ccc; */
	padding: .5em 1em;
	box-sizing:border-box;
	position: relative;
}
}

@media screen and (min-width: 769px), print {
.catering-name{
	font-size:1.2em;
	margin:.5em 1em;
	padding:0;	
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.catering-text {
	height: auto;
	min-height: 0;
	font-size: .9em;
}
}

@media screen and (min-width: 769px), print {
.catering-text{
min-height:0;

	font-size:.7em;
	text-align:left;
	line-height:1.6em;
	height: 5em;
}

.catering-drink{
	margin:0 0 .5em 0;
	display: flex;
	justify-content: flex-end;
}

.catering-drink span{
	margin:0 0 .5em 0;
	background-color:#fff200;
	width:10em;
	font-weight:bold;
	font-size:.9em;
	display: block;
}

div.catering-price{
	text-align:right;
	margin:0 0 .2em 0;
}

.catering-item{
	font-family: 'Roboto', sans-serif;
}

.item1{
	font-size:1em;
	font-weight:bold;
}

.item2{
	font-size:1.7em;
	font-weight:bold;
}

span.catering-price{
	font-family: 'Roboto', sans-serif;
}

.price1{
	font-size:1.2em;
	font-weight:bold;
	color: #cc363f;
}

.price2{
	font-size:2em;
	font-weight:bold;
	color: #cc363f;
}

.price3{
	font-size:.8em;
	font-weight:normal;
}
}

@media screen and (max-width: 768px) {
.catering-drink,
div.catering-price {
	justify-content: center;
	text-align: center;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.catering-shop_name {
	justify-content: center;
}
}

@media screen and (min-width: 769px), print {
.catering-shop_name{
	font-family: 'Roboto', sans-serif;
	display: flex;
	justify-content: center;
}

.catering-shop_name a{
	display:block;
	color:#fff;
	background-color:#4f3a2f;
	width:10em;
	text-align:center;
	border-radius:5px;
	padding:.5em;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.catering_single {
	width: calc(100% - 32px);
	margin: 16px auto;
	padding: 16px;
}
}

@media screen and (min-width: 769px), print {
.catering_single{
	width:1000px;
	border: 2px solid #d4c793;
	border-radius: 1em;
	margin:1em auto;
	padding:2em;
	overflow:hidden;
	background-color:#fff;
	box-sizing:border-box;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.catering_single h2 {
	font-size: 1.45em;
}
}

@media screen and (min-width: 769px), print {
.catering_single h2{
	font-size:1.8em;
	color:#644444;
	margin-bottom: 1em;
}

.catering_single_shop_name{
	background-color:#fce55f;
	color:#644444;
}

.catering_single_shop_name {
	display: inline-block;
	position: relative;
	height: 30px;/*リボンの高さ*/
	line-height: 30px;/*リボンの高さ*/
	text-align: center;
	padding: 0 30px;/*横の大きさ*/
	font-size: .8em;/*文字の大きさ*/
	background-color:#fce55f;
	color:#644444;
	box-sizing: border-box;
}

.catering_single_shop_name:before, .catering_single_shop_name:after {
  position: absolute;
  content: '';
  width: 0px;
  height: 0px;
  z-index: 1;
}

.catering_single_shop_name:before {
  top: 0;
  left: 0;
  border-width: 15px 0px 15px 10px;
  border-color: transparent transparent transparent #fff;
  border-style: solid;
}

.catering_single_shop_name:after {
  top: 0;
  right: 0;
  border-width: 15px 10px 15px 0px;
  border-color: transparent #fff transparent transparent;
  border-style: solid;
}

.catering_single h2:after {
  content: "";
  position: absolute;
  left: calc(50% - 4em);
  bottom: 0;
  width: 8em;
  height: 5px;
  background: -webkit-repeating-linear-gradient(-45deg, #d4c793, #d4c793 2px, #fff 2px, #fff 4px);
  background: repeating-linear-gradient(-45deg, #d4c793, #d4c793 2px, #fff 2px, #fff 4px);
}
}

@media screen and (max-width: 768px) {
.catering_single_contents {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin-bottom: 24px;
}
}

@media screen and (min-width: 769px), print {
.catering_single_contents{
	display:grid;
	grid-template-columns: 1fr 1fr;
	gap:2em;
	margin-bottom:3em;
}
}

@media screen and (max-width: 768px) {
.catering_single_photo,
.catering_single_text,
.catering_single_data,
.catering_single_menu,
.catering_single_drink,
.catering_single_guide {
	width: 100%;
	grid-area: auto;
}

.catering_single_data,
.catering_single_menu,
.catering_single_drink,
.catering_single_guide {
	padding: 14px;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
/* Catering order form */
.catering-form-container {
	padding: 16px;
	margin-top: 24px;
	margin-bottom: 24px;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.catering-form-row {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	padding: 14px 0;
}
}

@media screen and (max-width: 768px) {
.catering-form-label-col,
.catering-form-input-col {
	width: 100%;
	padding-right: 0;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.catering-form-label-col {
	margin-bottom: 8px;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.catering-input-unit {
	flex-wrap: wrap;
}

.catering-input-unit input[type="number"] {
	width: min(140px, 65%) !important;
}
}

@media screen and (max-width: 768px) {
.wpcf7-radio,
.catering-radio-flex .wpcf7-form-control {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.catering-radio-flex .wpcf7-list-item {
	margin: 0 16px 0 0 !important;
}
}

@media screen and (max-width: 768px) {
.catering-submit-button {
	width: 100%;
	min-width: 0;
	padding: 16px 20px;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
/* Refreshments */
.refreshment_layout {
	padding: 0;
	overflow: hidden;
}

.refresh_assort {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.refresh_assort_img {
	width: 100%;
	padding-bottom: 18px;
}
}

@media screen and (max-width: 768px) {
.refresh_assort_img img {
	display: block;
	width: 100%;
	margin: 0 0 8px;
	border: 0;
	border-radius: 0;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
/* Drink form */
.drink-form-container {
	padding: 16px;
	margin-top: 24px;
	margin-bottom: 24px;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.drink-form-table-header {
	display: none;
}

.drink-form-table-row {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	padding: 16px 0;
}
}

@media screen and (max-width: 768px) {
.col-name,
.col-desc,
.col-price,
.col-qty {
	width: 100%;
	padding: 0;
	text-align: left;
}

.col-name,
.col-desc,
.col-price {
	margin-bottom: 8px;
}

.col-qty,
.drink-qty-wrap {
	justify-content: flex-start;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.drink-total-box {
	padding: 16px;
}
}

@media screen and (max-width: 768px) {
.total-row {
	gap: 16px;
}

.total-val.highlight {
	font-size: 1.35rem;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.drink-info-row {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	padding: 14px 0;
}
}

@media screen and (max-width: 768px) {
.drink-info-label-col,
.drink-info-input-col {
	width: 100%;
	padding-right: 0;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.drink-info-label-col {
	margin-bottom: 8px;
}
}

@media screen and (max-width: 768px) {
.drink-submit-button {
	width: 100%;
	min-width: 0;
	padding: 16px 20px;
}

/* Access, room details, flow and downloads */
.address_access,
.address_map,
.article-single-layout,
.article-single-price,
.room_card,
.room_menu {
	width: 100%;
	max-width: 100%;
}

.address_access,
.article-single-layout,
.room_card {
	flex-direction: column;
}

.address_access > *,
.article-single-layout > *,
.room_card_left,
.room_card_right {
	width: 100%;
}

.article-single-price-table {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.room_menu {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
}

.room_menu > * {
	width: auto;
	min-width: 0;
}

#flow_step ul,
.flow_step dl {
	width: 100%;
}

#flow_step li,
.flow_step_section {
	width: 100%;
	max-width: 100%;
}

#download_list a,
a.pdf {
	min-height: 52px;
	height: auto;
	padding: 12px 16px 12px 52px;
	line-height: 1.5;
}

@media (max-width: 420px) {
#header_menu {
		padding-left: 8px;
	}

#bento-list ul {
		gap: 14px 6px;
	}

#bento-list li .name,
	#bento-list li .price,
	#bento-list li .shop_name {
		font-size: .82em;
	}

.room_menu {
		grid-template-columns: 1fr;
	}
}

/* ================================================================
   Child/detail pages
   Catering plans, bento shops and delivery shops
================================================================ */
.catering_single {
	border: 2px solid #d4c793;
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 8px 24px rgba(79, 58, 47, .08);
	color: #333;
	text-align: left;
}

.catering_single_shop_name {
	display: table;
	width: auto;
	max-width: 100%;
	min-height: 32px;
	margin: 0 auto 12px;
	padding: 5px 30px;
	background: #fce55f;
	color: #644444;
	font-size: .85em;
	font-weight: 700;
	line-height: 22px;
	text-align: center;
	position: relative;
}

.catering_single_shop_name::before,
.catering_single_shop_name::after {
	content: "";
	position: absolute;
	top: 0;
	width: 0;
	height: 0;
	border-style: solid;
}

.catering_single_shop_name::before {
	left: 0;
	border-width: 16px 0 16px 10px;
	border-color: transparent transparent transparent #fff;
}

.catering_single_shop_name::after {
	right: 0;
	border-width: 16px 10px 16px 0;
	border-color: transparent #fff transparent transparent;
}

.catering_single > h2 {
	position: relative;
	margin: 0 0 22px;
	padding: 8px 8px 14px;
	color: #644444;
	font-size: clamp(22px, 6.5vw, 30px);
	line-height: 1.35;
	text-align: center;
}

.catering_single > h2::after {
	content: "";
	position: absolute;
	left: 25%;
	bottom: 0;
	width: 50%;
	height: 4px;
	background: repeating-linear-gradient(-45deg, #d4c793, #d4c793 2px, #fff 2px, #fff 4px);
}

.catering_single_photo {
	min-height: 190px;
	border: 1px solid #d4c793;
	border-radius: 10px;
	background: #f7f5ef;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}
}

@media screen and (min-width: 769px), print {
.catering_single_photo{
	grid-area: 1 / 1 / 3 / 2;
}
}

@media screen and (max-width: 768px) {
.catering_single_photo img {
	display: block;
	width: 100%;
	height: auto;
	min-height: 190px;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	color: #856e5d;
	font-size: .9em;
	text-align: center;
}
}

@media screen and (min-width: 769px), print {
.catering_single_photo img{
	border-radius:10px;
	border:1px solid #d4c793;
}
}

@media screen and (max-width: 768px) {
.catering_single_photo .no-image {
	padding: 64px 16px;
	color: #8b8178;
	text-align: center;
}

.catering_single_text {
	padding: 2px 4px;
	font-size: .95em;
	line-height: 1.85;
}
}

@media screen and (min-width: 769px), print {
.catering_single_text{
	text-align:left;
	font-size:.9em;
	grid-area: 1 / 2 / 2 / 3;
}
}

@media screen and (max-width: 768px) {
.catering_single_text p:last-child {
	margin-bottom: 0;
}

.catering_single_data {
	border: 1px solid #eadfcd;
	border-radius: 10px;
	background: #fffdf8;
	text-align: center;
}
}

@media screen and (min-width: 769px), print {
.catering_single_data{
	grid-area: 2 / 2 / 3 / 3;
	border-top: 1px solid #ccc;
	padding: 1em;
	font-size: 1.2em;
}

.catering_single_menu {
	grid-area: 3 / 1 / 4 / 2;
	border-radius:10px;
	border:1px solid #d4c793;
	background-color: #f9f7ef;
	padding:1em;
	text-align:left;
	font-size: .7em;
}

.catering_single_menu h3{
	color:#644444;
	border-bottom:1px dotted #d4c793;
}

.catering_single_menu h3 span{
	font-size:.8em;
	color:#644444;
	font-weight:normal;
	font-family: "Noto Sans JP", "Yu Gothic", "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo";
	margin-top: 0;
	letter-spacing:normal;
}

.catering_single_drink {
	grid-area: 3 / 2 / 4 / 3;
	border-radius:10px;
	border:1px solid #d4c793;
	background-color: #f9f7ef;
	padding:1em;
	text-align:left;
	font-size:.7em;
}

.catering_single_drink h3{
	color:#644444;
	border-bottom:1px dotted #d4c793;
}

.catering_single_drink h3 span{
	font-size:.8em;
	color:#644444;
	font-weight:normal;
	font-family: "Noto Sans JP", "Yu Gothic", "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo";
	margin-top: 0;
	letter-spacing:normal;
}

.catering_single_guide {
	grid-area: 4 / 1 / 5 / 3;
	border-radius:10px;
	border:1px solid #d4c793;
	background-color: #f9f7ef;
	padding:1em;
	text-align:left;
	font-size: .7em;
}

.catering_single_guide h3{
	color:#644444;
	border-bottom:1px dotted #d4c793;
}

.catering_single_guide h3 span{
	font-size:.8em;
	color:#644444;
	font-weight:normal;
	font-family: "Noto Sans JP", "Yu Gothic", "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo";
	margin-top: 0;
	letter-spacing:normal;
	display:inline-block;
	margin-left:1em;
}
}

@media screen and (max-width: 768px) {
.catering_single_data .catering-drink {
	margin-bottom: 8px;
}

.catering_single_data .catering-drink span {
	display: inline-block;
	width: auto;
	margin: 0;
	padding: 4px 12px;
	border-radius: 999px;
	background: #fff200;
	font-size: .85em;
	font-weight: 700;
}

.catering_single_data .catering-price {
	margin: 0;
	text-align: center;
}

.catering_single_data .item2 {
	font-size: 1.6em;
}

.catering_single_data .price2 {
	font-size: 2em;
}

.catering_single_menu,
.catering_single_drink,
.catering_single_guide {
	border: 1px solid #d4c793;
	border-radius: 10px;
	background: #f9f7ef;
	font-size: .9em;
	line-height: 1.8;
}

.catering_single_menu h3,
.catering_single_drink h3,
.catering_single_guide h3 {
	margin: 0 0 14px;
	padding: 0 0 9px;
	border-bottom: 1px dotted #b9aa71;
	color: #644444;
	font-size: 1.15em;
	line-height: 1.45;
}

.catering_single_menu h3 span,
.catering_single_drink h3 span,
.catering_single_guide h3 span {
	display: inline-block;
	margin: 0 0 0 8px;
	color: #8b745f;
	font-family: 'Roboto', sans-serif;
	font-size: .7em;
	font-weight: 500;
	letter-spacing: .12em;
}

.catering_single_menu p,
.catering_single_drink p,
.catering_single_guide p {
	margin-bottom: 0;
}

.catering-form-wrapper {
	width: 100%;
	margin-top: 20px;
}

.catering-form-container {
	width: 100%;
	margin: 0;
	padding: 18px 14px;
	border: 1px solid #e3ddd3;
	border-radius: 12px;
	background: #fbfaf7;
	box-shadow: none;
}
}

@media screen and (min-width: 769px), print {
/* =================================================   
   ケータリングフォーム専用デザイン（2カラム横並び版）
   ================================================= */
.catering-form-container {
margin-top:0;
margin-bottom:0;

    max-width: 850px; /* 横並び用に少し幅を広げました */
    margin: 40px auto;
    padding: 20px;
    background: #fff;
    color: #333;
    font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
}
}

@media screen and (max-width: 768px) {
.catering-form-top-note {
	margin: 0 0 22px;
	padding: 10px 12px;
	border-left: 4px solid #b32525;
	background: #fff4f4;
	color: #b32525;
	font-size: .9em;
	font-weight: 700;
}
}

@media screen and (min-width: 769px), print {
.catering-form-top-note {
    color: #b32525;
    font-weight: bold;
    margin-bottom: 30px;
    font-size: 0.95rem;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.catering-form-section {
	margin-bottom: 30px;
}
}

@media screen and (min-width: 769px), print {
/* セクションと見出し */
.catering-form-section {
    margin-bottom: 40px;
}
}

@media screen and (max-width: 768px) {
.catering-section-title {
	margin: 0 0 14px;
	padding: 11px 13px;
	border: 0;
	border-radius: 8px;
	background: #eee7d9;
	color: #644444;
	font-size: 1.1rem;
	font-weight: 700;
	text-align: left;
}
}

@media screen and (min-width: 769px), print {
.catering-section-title {
    font-size: 1.35rem;
	color:#644444;
	background-color:#eee7d9;
	border-radius:10px;
    padding: 15px;
    margin: 0 0 25px 0;
    font-weight: bold;
    letter-spacing: 0.05em;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.catering-form-row {
	border-bottom: 1px solid #e6e1d9;
}
}

@media screen and (min-width: 769px), print {
/* 2カラム横並びの行設定 */
.catering-form-row {
flex-direction:row;

    display: flex;
    align-items: center; /* 上下の中央揃え */
    padding: 20px 0;
    border-bottom: 1px solid #eee; /* 各項目の区切り線 */
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.catering-form-section .catering-form-row:first-of-type {
	border-top: 1px solid #e6e1d9;
}
}

@media screen and (min-width: 769px), print {
.catering-form-section .catering-form-row:first-of-type {
    border-top: 1px solid #eee; /* セクションの最初の行の上線 */
}

/* 左カラム：項目名（幅35%） */
.catering-form-label-col {
margin-bottom:0;

    width: 35%;
    padding-right: 20px;
    box-sizing: border-box;
    text-align: left;
}

/* 右カラム：入力欄（幅65%） */
.catering-form-input-col {
    width: 65%;
    box-sizing: border-box;
    text-align: left;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.catering-label {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
	color: #333;
	font-size: .95em;
	font-weight: 700;
}
}

@media screen and (min-width: 769px), print {
.catering-label {
flex-wrap:nowrap;
gap:normal;

    display: inline-flex;
    align-items: center;
    font-weight: bold;
    font-size: 0.95rem;
    color: #222;
}
}

@media screen and (max-width: 768px) {
.catering-required {
	display: inline-block;
	margin-left: 0;
	padding: 2px 8px;
	border-radius: 999px;
	background: #b32525;
	color: #fff;
	font-size: .68em;
	font-weight: 500;
	white-space: nowrap;
}
}

@media screen and (min-width: 769px), print {
/* 必須マーク（カプセル型バッジ） */
.catering-required {
    background: #b32525;
    color: #fff;
    font-size: 0.65rem;
    padding: 2px 8px;
    border-radius: 20px;
    margin-left: 10px;
    font-weight: normal;
    letter-spacing: 0.05em;
    white-space: nowrap;
}
}

@media screen and (max-width: 768px) {
.catering-form-container input[type="text"],
.catering-form-container input[type="tel"],
.catering-form-container input[type="email"],
.catering-form-container input[type="number"],
.catering-form-container input[type="date"],
.catering-form-container textarea {
	width: 100%;
	min-height: 46px;
	padding: 11px 12px;
	border: 1px solid #cfc8be;
	border-radius: 7px;
	background: #fff;
	color: #333;
	font-size: 16px;
	line-height: 1.5;
	outline: none;
}
}

@media screen and (min-width: 769px), print {
/* 入力フィールドの基本設定（線は細く、余白は広く） */
.catering-form-container input[type="text"],
.catering-form-container input[type="tel"],
.catering-form-container input[type="email"],
.catering-form-container input[type="number"],
.catering-form-container input[type="date"],
.catering-form-container textarea {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid #ccc;
    border-radius: 4px;
    background-color: #fafafa;
    font-size: 16px;
    color: #333;
    transition: all 0.2s ease;
    box-sizing: border-box;
    outline: none;
}
}

@media screen and (max-width: 768px) {
.catering-form-container textarea {
	min-height: 130px;
	resize: vertical;
}

.catering-form-container input:focus,
.catering-form-container textarea:focus {
	border-color: #8e6b51;
	box-shadow: 0 0 0 3px rgba(142, 107, 81, .12);
}
}

@media screen and (min-width: 769px), print {
/* フォーカス時に枠線を少し暗く、背景を白に */
.catering-form-container input:focus,
.catering-form-container textarea:focus {
    border-color: #333;
    background-color: #fff;
}
}

@media screen and (max-width: 768px) {
.catering-form-container input[readonly] {
	background: #eeeae3;
	color: #665f59;
}
}

@media screen and (min-width: 769px), print {
/* 自動入力（読み取り専用）のグレーアウト */
.catering-form-container input[readonly] {
    background-color: #f0f0f0 !important;
    border-color: #ddd !important;
    color: #777;
    cursor: not-allowed;
}

/* 数量（名）の単位横並び設定 */
.catering-input-unit {
flex-wrap:nowrap;

    display: flex;
    align-items: center;
    gap: 10px;
}

.catering-input-unit input[type="number"] {


    width: 120px !important;
}

.unit-text {
    font-weight: bold;
    font-size: 1rem;
}
}

@media screen and (max-width: 768px) {
.catering-radio-flex .wpcf7-list-item {
	display: inline-flex;
	align-items: center;
	min-height: 42px;
	margin: 0 !important;
	padding: 7px 10px;
	border: 1px solid #d8d0c5;
	border-radius: 7px;
	background: #fff;
}
}

@media screen and (min-width: 769px), print {
/* ラジオボタン（スタイル選択） */
.catering-radio-flex .wpcf7-list-item {


    margin: 0 25px 0 0 !important;
    display: inline-flex;
    align-items: center;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.catering-radio-flex input[type="radio"] {
	width: 18px;
	height: 18px;
	margin: 0 6px 0 0;
}
}

@media screen and (min-width: 769px), print {
.catering-radio-flex input[type="radio"] {
margin:0;

    margin-right: 6px;
    width: 18px;
    height: 18px;
    cursor: pointer;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.catering-radio-flex .wpcf7-list-item-label {
	font-size: .9em;
	font-weight: 600;
}
}

@media screen and (min-width: 769px), print {
.catering-radio-flex .wpcf7-list-item-label {
    font-weight: bold;
    font-size: 0.95rem;
    cursor: pointer;
}

.wpcf7-radio {
    display: flex;
}

/* 送信ボタン（丸みの少ないしっかりしたボタン） */
.catering-form-submit {
    text-align: center;
    margin-top: 40px;
}
}

@media screen and (max-width: 768px) {
.catering-submit-button {
	border: 0;
	border-radius: 8px;
	background: #b32525;
	color: #fff;
	font-size: 1em;
	font-weight: 700;
	letter-spacing: .04em;
	box-shadow: 0 4px 0 #7f1919;
}
}

@media screen and (min-width: 769px), print {
.catering-submit-button {
    background: #b32525;
    color: #fff;
    padding: 18px 60px;
    font-size: 1.15rem;
    font-weight: bold;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    transition: background 0.2s ease;
    min-width: 280px;
    letter-spacing: 0.1em;
}

.catering-submit-button:hover {
    background: #911e1e;
}
}

@media screen and (max-width: 768px) {
.catering-submit-button:active {
	transform: translateY(3px);
	box-shadow: 0 1px 0 #7f1919;
}

/* Bento and delivery shop detail pages */
.bento-single-cont {
	width: calc(100% - 32px);
	margin: 24px auto;
	padding: 0;
	border: 1px solid #ddd5c8;
	border-radius: 10px;
	background: #fff;
	overflow: hidden;
}

.bento-single-cont table {
	width: 100%;
	margin: 0;
	border: 0;
}

.bento-single-cont table th {
	padding: 10px 14px;
	border: 0;
	background: #ece8e0;
	color: #443f3a;
	font-size: .9em;
	font-weight: 700;
}

.bento-single-cont table td {
	padding: 12px 14px 16px;
	border: 0;
	background: #fff;
	font-size: .9em;
	white-space: normal !important;
}

.bento-single-cont table tr + tr th {
	border-top: 1px solid #ddd5c8;
}

.order-form-section,
.shop-order-form {
	width: 100%;
	max-width: 100%;
}

.shop-order-form .order-form-container {
	margin-top: 24px;
	margin-bottom: 32px;
	border-radius: 10px;
}

.shop-order-form .section-title {
	font-size: 1rem;
	line-height: 1.45;
}

.shop-order-form .order-table-wrapper {
	margin-left: -4px;
	margin-right: -4px;
	padding-bottom: 8px;
}

.shop-order-form .form-row {
	margin-bottom: 18px;
}

.shop-order-form .form-col label {
	line-height: 1.5;
}

.shop-order-form .form-section input[type="text"],
.shop-order-form .form-section input[type="tel"],
.shop-order-form .form-section input[type="date"],
.shop-order-form .form-section textarea {
	min-height: 46px;
	font-size: 16px;
}

@media (max-width: 420px) {
.catering_single {
		width: calc(100% - 20px);
		padding: 12px;
		border-radius: 12px;
	}

.catering_single_photo,
	.catering_single_photo img {
		min-height: 160px;
	}

.catering_single_menu,
	.catering_single_drink,
	.catering_single_guide {
		padding: 12px;
		font-size: .85em;
	}

.catering-form-container {
		padding: 14px 10px;
	}

.bento-single-cont {
		width: calc(100% - 20px);
	}
}

/* ================================================================
   Refreshment page
   Product cards and drink/snack order form
================================================================ */
.refreshment_layout {
	width: calc(100% - 32px);
	margin: 0 auto 28px;
	padding: 0;
	border-radius: 0;
	background: transparent;
	overflow: visible;
}
}

@media screen and (min-width: 769px), print {
/* ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼リフレッシュメント▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ */
.refreshment_layout{
overflow:visible;

	max-width:var(--rental-content-max);
	background-color:#fff;
	margin:auto;
	border-radius:10px;
	padding:1em;
	box-sizing:border-box;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.refresh_assort {
	display: flex;
	flex-direction: column;
	gap: 18px;
}
}

@media screen and (min-width: 769px), print {
.refresh_assort{


flex-direction:row;

	display:flex;
	gap:1em;
}
}

@media screen and (max-width: 768px) {
.refresh_assort_img {
	width: 100%;
	padding: 0 0 18px;
	border: 1px solid #dedede;
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 7px 20px rgba(45, 156, 162, .08);
	overflow: hidden;
}
}

@media screen and (min-width: 769px), print {
.refresh_assort_img{
padding-bottom:0;

	width:33.333%;
}
}

@media screen and (max-width: 768px) {
.refresh_assort_img img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 10;
	margin: 0 0 14px;
	border: 0;
	border-radius: 0;
	object-fit: cover;
}
}

@media screen and (min-width: 769px), print {
.refresh_assort_img img{
	border:1px solid #ccc;
	border-radius:10px;
	margin-bottom:.5em;
}
}

@media screen and (max-width: 768px) {
.refresh_title,
.refresh_price,
.refresh_text {
	padding-left: 16px;
	padding-right: 16px;
	text-align: left;
}

.refresh_title {
	position: relative;
	margin: 0 0 8px;
	padding-left: 29px;
	color: #333;
	font-size: 1.05em;
	font-weight: 700;
	line-height: 1.5;
}
}

@media screen and (min-width: 769px), print {
.refresh_title{
	font-weight:bold;
	text-align:left;
	margin:0;
}
}

@media screen and (max-width: 768px) {
.refresh_title::before {
	content: "";
	position: absolute;
	left: 16px;
	top: .35em;
	width: 5px;
	height: 1em;
	border-radius: 999px;
	background: #2ca5ac;
}

.refresh_price {
	margin: 0 0 10px;
	color: #cc363f;
	font-size: 1.08em;
	font-weight: 700;
}
}

@media screen and (min-width: 769px), print {
.refresh_price{
	text-align:left;
	margin:0 0 .5em 0;
}
}

@media screen and (max-width: 768px) {
.refresh_text {
	margin: 0;
	color: #666;
	font-size: .86em;
	line-height: 1.75;
}
}

@media screen and (min-width: 769px), print {
.refresh_text{
	font-size:.8em;
	text-align:left;
}
}

@media screen and (max-width: 768px) {
/* Refreshment order form shell */
.drink-form-container {
	width: 100%;
	max-width: 100%;
	margin: 28px 0 36px;
	padding: 18px 14px;
	border: 1px solid #d9e4e5;
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 8px 24px rgba(45, 156, 162, .08);
	color: #333;
	text-align: left;
}
}

@media screen and (min-width: 769px), print {
/* =================================================   
   飲料フォーム専用デザイン（4カラムテーブル版）
   ================================================= */
.drink-form-container {
margin-top:0;
margin-bottom:0;

    max-width: var(--rental-content-max);
	border-radius:10px;
    margin: 40px auto;
    padding: 20px;
    background: #fff;
    color: #333;
    text-align: left;
    font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
}
}

@media screen and (max-width: 768px) {
.drink-form-top-note {
	margin: 0 0 24px;
	padding: 11px 12px;
	border-left: 4px solid #cc363f;
	border-radius: 0 7px 7px 0;
	background: #fff4f4;
	color: #b32525;
	font-size: .88em;
	font-weight: 700;
	line-height: 1.65;
}
}

@media screen and (min-width: 769px), print {
.drink-form-top-note {
    color: #b32525;
    font-weight: bold;
    margin-bottom: 30px;
    font-size: 0.95rem;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.drink-form-section {
	margin-bottom: 32px;
}
}

@media screen and (min-width: 769px), print {
/* セクションと見出し */
.drink-form-section {
    margin-bottom: 40px;
}
}

@media screen and (max-width: 768px) {
.drink-form-section:last-of-type {
	margin-bottom: 20px;
}

.drink-section-title {
	position: relative;
	margin: 0 0 15px;
	padding: 11px 12px 11px 18px;
	border: 0;
	border-radius: 8px;
	background: #eaf5f5;
	color: #245f63;
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.45;
	letter-spacing: .03em;
	text-align: left;
}
}

@media screen and (min-width: 769px), print {
.drink-section-title {
    font-size: 1.35rem;
    color: #111;
    border-left: 6px solid #b32525;
    padding-left: 15px;
    margin: 0 0 15px 0;
    font-weight: bold;
    letter-spacing: 0.05em;
}

/* ラジオボタン（精算方法） */
.drink--info-input-col label {
    display: inline-flex; align-items: center; margin: 5px 15px 5px 0 !important;
	border:1px solid #ccc;
	border-radius:5px;
	padding:5px 10px;
}

.drink--info-input-col input[type="radio"] { margin-right: 5px; cursor: pointer; }

.drink--info-input-col label { font-weight: bold; font-size: 0.9rem; cursor: pointer; }
}

@media screen and (max-width: 768px) {
.drink-section-title::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 6px;
	border-radius: 8px 0 0 8px;
	background: #2ca5ac;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.drink-form-table-header {
	display: none;
}
}

@media screen and (min-width: 769px), print {
/* ==========================================
   4カラム・テーブルスタイル
   ========================================== */
.drink-form-table-header {


    display: flex;
    background-color: #f7f7f7;
    border-top: 1px solid #ccc;
    border-bottom: 1px solid #ccc;
    font-weight: bold;
    font-size: 0.9rem;
    color: #444;
}
}

@media screen and (max-width: 768px) {
/* One orderable product per card */
.drink-form-table-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-areas:
		"name name"
		"desc desc"
		"price qty";
	align-items: center;
	gap: 8px 12px;
	margin-bottom: 12px;
	padding: 14px;
	border: 1px solid #e1e5e5;
	border-radius: 10px;
	background: #fcfdfd;
}
}

@media screen and (min-width: 769px), print {
.drink-form-table-row {
flex-direction:row;

    display: flex;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid #eee;
}

/* 各カラムの横幅比率 */
.col-name {
    width: 28%;
    padding-left: 15px;
    box-sizing: border-box;
}

.col-desc {
    width: 45%;
    padding-right: 15px;
    box-sizing: border-box;
}

.col-price {
    width: 12%;
    text-align: right;
    padding-right: 20px;
    box-sizing: border-box;
}

.col-qty {
    width: 15%;
    display: flex;
    justify-content: flex-end;
    padding-right: 15px;
    box-sizing: border-box;
    text-align: left;
}

/* ヘッダーセルの余白・位置微調整 */
.table-th {
    padding: 10px 0 10px 10px;
}

.table-th.col-price {
    text-align: right;
    padding-right: 20px;
}

.table-th.col-qty {
    text-align: right;
    padding-right: 15px;
}
}

@media screen and (max-width: 768px) {
.drink-form-table-row:last-child {
	margin-bottom: 0;
}

.drink-form-table-row .col-name {
	grid-area: name;
}

.drink-form-table-row .col-desc {
	grid-area: desc;
}

.drink-form-table-row .col-price {
	grid-area: price;
}

.drink-form-table-row .col-qty {
	grid-area: qty;
}

.drink-form-table-row .col-name,
.drink-form-table-row .col-desc,
.drink-form-table-row .col-price,
.drink-form-table-row .col-qty {
	width: auto;
	min-width: 0;
	margin: 0;
	padding: 0;
	text-align: left;
}

.drink-label {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
	color: #292929;
	font-size: 1em;
	font-weight: 700;
	line-height: 1.5;
}
}

@media screen and (min-width: 769px), print {
/* 商品ラベル・説明 */
.drink-label {
    font-weight: bold;
    font-size: 0.95rem;
    color: #222;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.drink-desc {
	margin: 0 !important;
	color: #707070;
	font-size: .8em;
	line-height: 1.55;
}
}

@media screen and (min-width: 769px), print {
.drink-desc {
    font-size: 0.8rem;
    color: #666;
    margin: 0 !important;
    line-height: 1.4;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.drink-price {
	margin: 0 !important;
	color: #cc363f;
	font-size: 1em;
	font-weight: 700;
	line-height: 1.35;
}
}

@media screen and (min-width: 769px), print {
/* 金額 */
.drink-price {
    font-size: 0.95rem;
    font-weight: bold;
    color: #111;
    margin: 0 !important;
    line-height: 1.3;
}
}

@media screen and (max-width: 768px) {
.drink-price span {
	display: block;
	color: #777;
	font-size: .72em;
	font-weight: 500;
}
}

@media screen and (min-width: 769px), print {
.drink-price span {
    font-size: 0.75rem;
    color: #777;
    font-weight: normal;
}
}

@media screen and (max-width: 768px) {
.drink-badge {
	display: inline-block;
	padding: 2px 8px;
	border-radius: 999px;
	color: #fff;
	font-size: .65em;
	font-weight: 500;
	white-space: nowrap;
}
}

@media screen and (min-width: 769px), print {
/* バッジ（無料） */
.drink-badge {
    color: #fff;
    font-size: 0.65rem;
    padding: 2px 8px;
    border-radius: 20px;
    font-weight: normal;
    white-space: nowrap;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.drink-badge.badge-free {
	background: #43a047;
}
}

@media screen and (min-width: 769px), print {
.drink-badge.badge-free { background: #4caf50; }
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.drink-qty-wrap {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 6px;
	width: auto;
}
}

@media screen and (min-width: 769px), print {
/* 数量（名）の単位横並び設定 */
.drink-qty-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
    justify-content: flex-start;
    width: 100%;
}
}

@media screen and (max-width: 768px) {
.drink-qty-wrap input[type="number"] {
	width: 72px !important;
	min-height: 42px;
	padding: 7px 8px;
	border: 1px solid #bfc9ca;
	border-radius: 7px;
	background: #fff;
	color: #333;
	font-size: 16px;
	text-align: right;
	outline: none;
}
}

@media screen and (min-width: 769px), print {
.drink-qty-wrap input[type="number"] {
    width: 70px !important;
    text-align: right;
    padding: 8px 10px;
    border: 1px solid #ccc;
    border-radius: 4px;
    background-color: #fafafa;
    font-size: 15px;
}
}

@media screen and (max-width: 768px) {
.drink-qty-wrap input[type="number"]:focus {
	border-color: var(--rental-color-accent);
	box-shadow: 0 0 0 3px rgba(44, 165, 172, .14);
}
}

@media screen and (min-width: 769px), print {
.drink-qty-wrap input[type="number"]:focus {
    border-color: #333;
    background-color: #fff;
}
}

@media screen and (max-width: 768px) {
.unit-text {
	color: #555;
	font-size: .82rem;
	font-weight: 700;
	white-space: nowrap;
}
}

@media screen and (min-width: 769px), print {
.unit-text {
    font-size: 0.85rem;
    font-weight: bold;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
/* Price total */
.drink-total-box {
	margin-top: 10px;
	padding: 14px 16px;
	border: 1px solid #cfe1e2;
	border-radius: 10px;
	background: #f5fbfb;
}
}

@media screen and (min-width: 769px), print {
/* ==========================================
   ご注文合計（目安） & お客様情報（既存の2カラムを維持）
   ========================================== */
.drink-total-box {


    background: #fdfdfd;
    border: 1px solid #ddd;
    border-radius: 6px;
    padding: 20px 25px;
    margin-top: 10px;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.drink-total-box .total-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 9px 0;
	color: #444;
	font-size: .9em;
}
}

@media screen and (min-width: 769px), print {
.drink-total-box .total-row {
gap:normal;

    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 0;
    font-size: 1rem;
    color: #444;
}

.total-row:first-child {
    border-bottom: 1px dashed #eee;
}

.total-val {
    font-weight: bold;
    font-size: 1.2rem;
}

.total-row.tax-row {
    padding-top: 15px;
}

.total-row.tax-row .total-label {
    font-weight: bold;
    color: #111;
}

.total-val.highlight {
    color: #b32525;
    font-size: 1.6rem;
}
}

@media screen and (max-width: 768px) {
.drink-total-box .total-row:first-child {
	border-bottom: 1px dashed #cddcdc;
}

.drink-total-box .total-label {
	line-height: 1.5;
}

.drink-total-box .total-val {
	flex: 0 0 auto;
	font-size: 1.15rem;
	font-weight: 700;
	white-space: nowrap;
}

.drink-total-box .tax-row .total-label {
	color: #222;
	font-weight: 700;
}

.drink-total-box .total-val.highlight {
	color: #b32525;
	font-size: 1.35rem;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
/* Customer information */
.drink-info-row {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 8px;
	padding: 13px 0;
	border-bottom: 1px solid #e5e8e8;
}
}

@media screen and (min-width: 769px), print {
/* お客様情報 2カラム */
.drink-info-row {
gap:normal;

flex-direction:row;

    display: flex;
    align-items: center;
    padding: 15px 0;
    border-bottom: 1px solid #eee;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.drink-form-section .drink-info-row:first-of-type {
	border-top: 1px solid #e5e8e8;
}
}

@media screen and (min-width: 769px), print {
.drink-form-section .drink-info-row:first-of-type {
    border-top: 1px solid #eee;
}
}

@media screen and (max-width: 768px) {
.drink-info-label-col,
.drink-info-input-col {
	width: 100%;
	padding: 0;
}

.drink-info-label-col {
	margin: 0;
}
}

@media screen and (min-width: 769px), print {
.drink-info-label-col {
margin-bottom:0;

    width: 30%;
    padding-right: 20px;
    box-sizing: border-box;
}

.drink-info-input-col {
    width: 70%;
    box-sizing: border-box;
}
}

@media screen and (max-width: 768px) {
.drink-info-label {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
	color: #333;
	font-size: .92em;
	font-weight: 700;
}
}

@media screen and (min-width: 769px), print {
.drink-info-label {
    font-weight: bold;
    font-size: 0.95rem;
    color: #222;
}
}

@media screen and (max-width: 768px) {
.drink-required {
	display: inline-block;
	margin: 0;
	padding: 2px 8px;
	border-radius: 999px;
	background: #b32525;
	color: #fff;
	font-size: .68em;
	font-weight: 500;
	white-space: nowrap;
}
}

@media screen and (min-width: 769px), print {
.drink-required {
    background: #b32525;
    color: #fff;
    font-size: 0.65rem;
    padding: 2px 8px;
    border-radius: 20px;
    margin-left: 10px;
    font-weight: normal;
    white-space: nowrap;
}
}

@media screen and (max-width: 768px) {
.drink-form-container input[type="text"],
.drink-form-container input[type="tel"],
.drink-form-container input[type="date"],
.drink-form-container input[type="email"] {
	width: 100%;
	min-height: 46px;
	padding: 11px 12px;
	border: 1px solid #c8d0d1;
	border-radius: 7px;
	background: #fff;
	color: #333;
	font-size: 16px;
	line-height: 1.5;
	outline: none;
}
}

@media screen and (min-width: 769px), print {
.drink-form-container input[type="text"],
.drink-form-container input[type="tel"],
.drink-form-container input[type="date"],
.drink-form-container input[type="email"] {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid #ccc;
    border-radius: 4px;
    background-color: #fafafa;
    font-size: 16px;
    box-sizing: border-box;
    outline: none;
}
}

@media screen and (max-width: 768px) {
.drink-form-container input[type="text"]:focus,
.drink-form-container input[type="tel"]:focus,
.drink-form-container input[type="email"]:focus {
	border-color: var(--rental-color-accent);
	box-shadow: 0 0 0 3px rgba(44, 165, 172, .14);
}
}

@media screen and (min-width: 769px), print {
.drink-form-container input[type="text"]:focus,
.drink-form-container input[type="tel"]:focus,
.drink-form-container input[type="email"]:focus {
    border-color: #333;
    background-color: #fff;
}
}

@media screen and (max-width: 768px), screen and (min-width: 769px), print {
.drink-form-submit {
	margin-top: 28px;
	text-align: center;
}
}

@media screen and (min-width: 769px), print {
/* 送信ボタン */
.drink-form-submit {
    text-align: center;
    margin-top: 40px;
}
}

@media screen and (max-width: 768px) {
.drink-submit-button {
	width: 100%;
	min-width: 0;
	min-height: 54px;
	padding: 14px 16px;
	border: 0;
	border-radius: 9px;
	background: #b32525;
	color: #fff;
	font-size: 1em;
	font-weight: 700;
	line-height: 1.45;
	letter-spacing: .03em;
	box-shadow: 0 4px 0 #7f1919;
}
}

@media screen and (min-width: 769px), print {
.drink-submit-button {
    background: #b32525;
    color: #fff;
    padding: 18px 60px;
    font-size: 1.15rem;
    font-weight: bold;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    transition: background 0.2s ease;
    min-width: 280px;
    letter-spacing: 0.1em;
}

.drink-submit-button:hover {
    background: #911e1e;
}

/* =================================================   
   レスポンシブ対応（タブレット・スマホサイズ）
   ================================================= */
/* テーブルヘッダーを非表示 */
/* お客様情報部分のレスポンシブ */

.access_contents{
	display: flex;
	width:100%;
	background-color:#fff;
	border-radius:10px;
	box-sizing:border-box;
	padding:20px;
}

.access_contents dl{
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    width: 100%;
    border-top: 1px solid #ccc;
    border-bottom: none;
    font-size: .9em;
	text-align:left;
}

.access_contents dl dt{
	background: #f5f5f5;
	padding: 1em;
	width: 20%;
	/* border-right: 1px solid #ccc; */
	border-bottom: 1px solid #ccc;
	box-sizing: border-box;
	font-weight: 600;
}

.access_contents dl dd{
	background: #fff;
	padding: 1em;
	width: 80%;
	border-bottom: 1px solid #ccc;
	margin: 0;
	box-sizing: border-box;
}

/* ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼オードブル▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ */
/* オードブル注意書き（注意アイコン付き） */
.delivery-notice {
    margin: 25px 0 30px;
    padding: 14px 20px 14px 50px;
    background-color: #faf7eb;
    border: 1px solid #d4c793;
    border-radius: 6px;
    color: #b32525;
    font-size: 15px;
    font-weight: bold;
    position: relative;
    line-height: 1.5;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
    text-align:left;
}

/* 左側にビックリマーク（注意アイコン）を自動生成 */
.delivery-notice::before {
    content: "!";
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    width: 22px;
    height: 22px;
    background-color: #b32525;
    color: #ffffff;
    font-size: 14px;
    font-weight: 900;
    font-family: Roboto, sans-serif;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* =================================================   
   オードブル店舗別フォーム（リフレッシュメント風4カラム）
   ================================================= */
.delivery-form-container {
    max-width: var(--rental-content-max);
	border-radius:10px;
    margin: 40px auto;
    padding: 20px;
    background: #fff;
    color: #333;
    text-align: left;
    font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
}

.delivery-form-top-note {
    color: #b32525; font-weight: bold; margin-bottom: 30px; font-size: 0.95rem;
}

.delivery-form-section { margin-bottom: 40px; }

.delivery-section-title {
    font-size: 1.35rem; color: #111; border-left: 6px solid #b32525; padding-left: 15px; margin: 0 0 15px 0; font-weight: bold;
}

/* 4カラム テーブルスタイル */
.delivery-table-header {
    display: flex; background-color: #f7f7f7; border-top: 1px solid #ccc; border-bottom: 1px solid #ccc; font-weight: bold; font-size: 0.85rem; color: #444;
}

.delivery-table-row {
    display: flex; align-items: center; padding: 12px 0; border-bottom: 1px solid #eee;
}

/* テーブルのレイアウト調整例 */
.delivery-table-header, .delivery-table-row {
    display: flex;
    align-items: center;
}

.col-item     { width: 30%; }

/* 品名 */
.col-desc     { width: 25%; font-size: 13px; color: #666; padding: 0 10px; }

/* 説明欄 */
.col-price    { width: 15%; }

/* 金額 */
.col-qty      { width: 15%; }

/* 発注数 */
.col-subtotal { width: 15%; }

/* 小計 */


.table-th { padding: 10px 0; }

.table-th.col-price, .table-th.col-qty, .table-th.col-subtotal {text-align: right;padding-left: 1em;}

/* 画像 ＋ 品名 */
.item-name-box {
    display: flex; align-items: center; gap: 12px;
}

.menu-thumb {
    width: 80px; height: 55px; object-fit: cover; border-radius: 4px; flex-shrink: 0;
}

.item-title { font-size: 0.95rem; color: #222; display: block; }

.item-price { font-size: 0.9rem; font-weight: bold; color: #111; margin: 0 !important; }

.item-price span { font-size: 0.75rem; color: #777; font-weight: normal; }

/* 小計表示 */
.subtotal-val { font-weight: bold; color: #b32525; font-size: 0.95rem; }

/* 数量入力 */
.delivery-qty-wrap { display: flex; align-items: center; gap: 4px; justify-content: flex-end; }

.delivery-qty-wrap input[type="number"] {
    width: 60px !important; text-align: right; padding: 6px; border: 1px solid #ccc; border-radius: 4px; background-color: #fafafa; font-size: 14px;
}

.unit-text { font-size: 0.8rem; font-weight: bold; }

/* お客様情報 ＆ ラジオボタン */
.delivery-info-row { display: flex; align-items: center; padding: 12px 0; border-bottom: 1px solid #eee; }

.delivery-info-label-col { width: 30%; padding-right: 15px; box-sizing: border-box; }

.delivery-info-input-col { width: 70%; box-sizing: border-box; }

.delivery-info-label { font-weight: bold; font-size: 0.95rem; }

.delivery-form-container input[type="text"],
.delivery-form-container input[type="tel"],
.delivery-form-container input[type="email"],
.delivery-form-container input[type="date"],
.delivery-form-container textarea {
    width: 100%; padding: 10px 12px; border: 1px solid #ccc; border-radius: 4px; background-color: #fafafa; font-size: 15px; box-sizing: border-box;
}

.delivery-required { background: #b32525; color: #fff; font-size: 0.65rem; padding: 2px 8px; border-radius: 20px; margin-left: 8px; }

/* ラジオボタン（精算方法） */
.delivery-info-input-col label {
    display: inline-flex; align-items: center; margin: 5px 15px 5px 0 !important;
	border:1px solid #ccc;
	border-radius:5px;
	padding:5px 10px;
}

.delivery-info-input-col input[type="radio"] { margin-right: 5px; cursor: pointer; }

.delivery-info-input-col label { font-weight: bold; font-size: 0.9rem; cursor: pointer; }

/* 合計ボックス */
.delivery-total-box { background: #fdfdfd; border: 1px solid #ddd; border-radius: 6px; padding: 20px 25px; }

.total-row { display: flex; justify-content: space-between; align-items: center; padding: 8px 0; }

.total-row.tax-row { padding-top: 12px; border-top: 1px dashed #eee; }

.total-val.highlight { color: #b32525; font-size: 1.6rem; font-weight: bold; }

.delivery-form-submit{
text-align:center;
}

.delivery-submit-button {
    background: #b32525; color: #fff; padding: 18px 60px; font-size: 1.15rem; font-weight: bold; border: none; border-radius: 4px; cursor: pointer; min-width: 280px;
}

/* スマホ対応 */

/* ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼プライバシーポリシー▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ */
.privacy{
	text-align:left;
}

.trade{
	max-width:var(--rental-content-max);
	background-color:#fff;
	box-sizing:border-box;
	border-radius:10px;
	padding:1em;
	text-align:left;
}
}

@media screen and (max-width: 768px) {
.drink-submit-button:active {
	transform: translateY(3px);
	box-shadow: 0 1px 0 #7f1919;
}

@media (max-width: 420px) {
.refreshment_layout {
		width: calc(100% - 20px);
	}

.refresh_assort {
		gap: 14px;
	}

.drink-form-container {
		padding: 14px 10px;
	}

.drink-form-table-row {
		padding: 12px 10px;
		gap: 8px;
	}

.drink-qty-wrap input[type="number"] {
		width: 64px !important;
	}

.drink-total-box {
		padding: 12px;
	}
}

/* ================================================================
   Catering archive: smartphone version of the desktop card design
================================================================ */
#catering-list {
	width: 100%;
}

h3.catering-category-title {
	display: block;
	position: relative;
	width: min(100%, 570px);
	max-width: none;
	height: 58px;
	min-height: 0;
	margin: 36px auto 24px;
	padding: 0 32px;
	background: #fce55f;
	color: #644444;
	font-size: 1.15em;
	font-weight: 700;
	line-height: 58px;
	text-align: center;
	overflow: visible;
}

h3.catering-category-title::before,
h3.catering-category-title::after {
	content: "";
	position: absolute;
	top: 0;
	z-index: 1;
	width: 0;
	height: 0;
	border-style: solid;
}

h3.catering-category-title::before {
	left: 0;
	border-width: 29px 0 29px 16px;
	border-color: transparent transparent transparent #f5f5f5;
}

h3.catering-category-title::after {
	right: 0;
	border-width: 29px 16px 29px 0;
	border-color: transparent #f5f5f5 transparent transparent;
}

#catering-list ul {
	display: grid;
	grid-template-columns: 1fr;
	grid-template-rows: none;
	gap: 18px;
	margin: 0 0 32px;
}

#catering-list li {
	width: 100%;
	height: auto;
	min-height: 0;
	margin: 0;
	border: 2px solid #d4c793;
	border-radius: 16px;
	background: #fff;
	box-shadow: none;
	overflow: hidden;
}

.catering-photo {
	display: block;
	width: 100%;
	height: clamp(160px, 51vw, 210px);
	border: 0;
	border-bottom: 1px solid #ddd5bc;
	background: #f7f5ef;
	overflow: hidden;
}

.catering-photo a {
	display: block;
	width: 100%;
	height: 100%;
}

.catering-photo img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 0;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	color: var(--rental-color-accent);
	font-size: .85em;
	text-align: center;
}

.catering-photo .no-image {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	color: #8a8177;
	font-size: .85em;
}

.catering-content {
	display: flex;
	flex-direction: column;
	width: 100%;
	min-height: 220px;
	padding: 12px 16px 18px;
	background: #fff;
	text-align: left;
}

.catering-name {
	margin: 0 0 8px;
	padding: 0;
	color: #333;
	font-size: 1.18em;
	font-weight: 700;
	line-height: 1.5;
	text-align: center;
}

.catering-text {
	height: auto;
	min-height: 3.2em;
	margin-bottom: 8px;
	color: #555;
	font-size: .8em;
	line-height: 1.6;
	text-align: left;
}

.catering-text p {
	margin-bottom: 0;
}

.catering-drink {
	display: flex;
	justify-content: flex-end;
	margin: 0 0 6px;
	text-align: right;
}

.catering-drink span {
	display: inline-block;
	width: auto;
	margin: 0;
	padding: 3px 12px;
	background: #fff200;
	color: #333;
	font-size: .86em;
	font-weight: 700;
	line-height: 1.5;
	text-align: center;
}

div.catering-price {
	margin: 0 0 3px;
	color: #333;
	text-align: right;
}

.catering-item,
span.catering-price {
	font-family: 'Roboto', sans-serif;
}

.catering-item .item1 {
	font-size: 1em;
	font-weight: 700;
}

.catering-item .item2 {
	font-size: 1.55em;
	font-weight: 700;
}

.catering-price .price1 {
	color: #cc363f;
	font-size: 1.05em;
	font-weight: 700;
}

.catering-price .price2 {
	color: #cc363f;
	font-size: 1.85em;
	font-weight: 700;
}

.catering-price .price3 {
	color: #555;
	font-size: .78em;
	font-weight: 500;
}

.catering-shop_name {
	display: flex;
	justify-content: center;
	margin-top: 9px;
	font-family: 'Roboto', sans-serif;
}

.catering-shop_name a {
	display: block;
	width: min(180px, 70%);
	padding: 8px 14px;
	border-radius: 5px;
	background: #4f3a2f;
	color: #fff;
	font-size: .9em;
	font-weight: 600;
	line-height: 1.4;
	text-align: center;
}

.catering-shop_name a:active {
	background: #382820;
}

@media (max-width: 420px) {
h3.catering-category-title {
		height: 52px;
		margin-top: 30px;
		padding-left: 27px;
		padding-right: 27px;
		font-size: 1.08em;
		line-height: 52px;
	}

h3.catering-category-title::before {
		border-width: 26px 0 26px 14px;
	}

h3.catering-category-title::after {
		border-width: 26px 14px 26px 0;
	}

.catering-content {
		padding: 11px 13px 16px;
	}
}

/* ================================================================
   Checked pages: legal, shop order and access pages
================================================================ */

/* Trade and privacy pages */
.trade,
.privacy {
	width: calc(100% - 32px);
	margin: 0 auto 32px;
	padding: 18px 16px;
	border: 1px solid #e1e4e4;
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 6px 20px rgba(40, 76, 78, .06);
	color: #333;
	font-size: .94em;
	line-height: 1.9;
	text-align: left;
}

.trade dl {
	display: block;
	width: 100%;
	margin: 0;
	border: 0;
	font-size: 1em;
}
}

@media screen and (min-width: 769px), print {
.trade dl{
    display: -webkit-flex;
    display: -moz-flex;
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    width: 100%;
    border-top: 1px solid #ccc;
    border-bottom: none;
    font-size: .9em;
}
}

@media screen and (max-width: 768px) {
.trade dl dt {
	width: 100%;
	margin: 0;
	padding: 9px 12px;
	border: 0;
	border-left: 4px solid #2ca5ac;
	background: #edf6f6;
	color: #275f62;
	font-weight: 700;
	line-height: 1.5;
}
}

@media screen and (min-width: 769px), print {
.trade dl dt{
	background: #f5f5f5;
	padding: 1em;
	width: 30%;
	/* border-right: 1px solid #ccc; */
	border-bottom: 1px solid #ccc;
	box-sizing: border-box;
	font-weight: 600;
}
}

@media screen and (max-width: 768px) {
.trade dl dd {
	width: 100%;
	margin: 0 0 13px;
	padding: 11px 12px 13px;
	border: 0;
	border-bottom: 1px solid #e2e5e5;
	background: #fff;
	line-height: 1.75;
	overflow-wrap: anywhere;
}
}

@media screen and (min-width: 769px), print {
.trade dl dd{
	background: #fff;
	padding: 1em;
	width: 70%;
	border-bottom: 1px solid #ccc;
	margin: 0;
	box-sizing: border-box;
}
}

@media screen and (max-width: 768px) {
.trade dl dd:last-child {
	margin-bottom: 0;
	border-bottom: 0;
}

.trade a,
.privacy a {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.privacy h4 {
	position: relative;
	margin: 28px 0 13px;
	padding: 10px 12px 10px 16px;
	border: 0;
	border-radius: 7px;
	background: #edf6f6;
	color: #275f62;
	font-size: 1.05em;
	font-weight: 700;
	line-height: 1.55;
	text-align: left;
}

.privacy h4:first-child {
	margin-top: 0;
}

.privacy h4::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 5px;
	border-radius: 7px 0 0 7px;
	background: #2ca5ac;
}

.privacy p {
	margin: 0 0 14px;
	text-align: left;
}

/* Bento and delivery shop notices */
.bento-notice,
.delivery-notice {
	position: relative;
	width: calc(100% - 32px);
	margin: 22px auto 20px;
	padding: 12px 13px 12px 44px;
	border: 1px solid #d8ca8e;
	border-radius: 8px;
	background: #faf7eb;
	color: #a52d2d;
	font-size: .9em;
	font-weight: 700;
	line-height: 1.65;
	text-align: left;
}

.bento-notice::before,
.delivery-notice::before {
	content: "!";
	position: absolute;
	left: 14px;
	top: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 21px;
	height: 21px;
	border-radius: 50%;
	background: #b32525;
	color: #fff;
	font-family: Roboto, sans-serif;
	font-size: 13px;
	font-weight: 900;
	transform: translateY(-50%);
}

.bento-page-container,
.delivery-page-container {
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 0 10px;
}

.bento-form-container,
.delivery-form-container {
	width: 100%;
	max-width: 100%;
	margin: 28px auto 36px;
	padding: 16px 12px;
	border: 1px solid #e1e4e4;
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 7px 22px rgba(45, 70, 72, .07);
	color: #333;
	text-align: left;
}

.bento-form-section,
.delivery-form-section {
	margin-bottom: 30px;
}

.bento-section-title,
.delivery-section-title {
	position: relative;
	margin: 0 0 14px;
	padding: 10px 11px 10px 17px;
	border: 0;
	border-radius: 7px;
	background: #f4eeee;
	color: #4b2929;
	font-size: 1.08rem;
	font-weight: 700;
	line-height: 1.45;
	text-align: left;
}

.bento-section-title::before,
.delivery-section-title::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 5px;
	border-radius: 7px 0 0 7px;
	background: #b32525;
}

.bento-table-header,
.delivery-table-header {
	display: none;
}

.bento-table-row,
.delivery-table-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-areas:
		"item item"
		"price qty"
		"subtotal subtotal";
	align-items: center;
	gap: 8px 10px;
	margin-bottom: 11px;
	padding: 12px;
	border: 1px solid #e0e2e2;
	border-radius: 9px;
	background: #fcfcfc;
}

.bento-table-row .col-item,
.delivery-table-row .col-item {
	grid-area: item;
}

.bento-table-row .col-price,
.delivery-table-row .col-price {
	grid-area: price;
}

.bento-table-row .col-qty,
.delivery-table-row .col-qty {
	grid-area: qty;
}

.bento-table-row .col-subtotal,
.delivery-table-row .col-subtotal {
	grid-area: subtotal;
	padding-top: 7px !important;
	border-top: 1px dashed #ddd;
}

.bento-table-row .col-item,
.bento-table-row .col-price,
.bento-table-row .col-qty,
.bento-table-row .col-subtotal,
.delivery-table-row .col-item,
.delivery-table-row .col-price,
.delivery-table-row .col-qty,
.delivery-table-row .col-subtotal {
	width: auto;
	min-width: 0;
	margin: 0;
	padding: 0;
	text-align: left;
}

.bento-table-row .col-qty,
.delivery-table-row .col-qty {
	justify-content: flex-end;
}

.bento-table-row .col-subtotal,
.delivery-table-row .col-subtotal {
	text-align: right;
}

.item-name-box {
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
}

.item-name-box .menu-thumb {
	flex: 0 0 76px;
	width: 76px;
	height: 56px;
	border: 1px solid #ddd;
	border-radius: 5px;
	background: #eee;
	object-fit: cover;
}

.item-name-box .item-title {
	min-width: 0;
	color: #222;
	font-size: .92em;
	font-weight: 700;
	line-height: 1.5;
}

.bento-table-row .item-price,
.delivery-table-row .item-price {
	margin: 0 !important;
	color: #b32525;
	font-size: .9em;
	font-weight: 700;
}

.bento-table-row .item-price span,
.delivery-table-row .item-price span {
	display: block;
	color: #777;
	font-size: .75em;
	font-weight: 500;
}

.bento-qty-wrap,
.delivery-qty-wrap {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 5px;
}

.bento-qty-wrap input[type="number"],
.delivery-qty-wrap input[type="number"] {
	width: 66px !important;
	min-height: 41px;
	padding: 6px;
	border: 1px solid #c7cccc;
	border-radius: 6px;
	background: #fff;
	font-size: 16px;
	text-align: right;
}

.subtotal-val {
	color: #b32525;
	font-size: 1em;
	font-weight: 700;
}

.bento-info-row,
.delivery-info-row {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 7px;
	padding: 12px 0;
	border-bottom: 1px solid #e5e7e7;
}

.bento-info-label-col,
.bento-info-input-col,
.delivery-info-label-col,
.delivery-info-input-col {
	width: 100%;
	margin: 0;
	padding: 0;
}

.bento-info-label,
.delivery-info-label {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
	font-size: .92em;
	font-weight: 700;
}

.bento-required,
.delivery-required {
	display: inline-block;
	margin: 0;
	padding: 2px 8px;
	border-radius: 999px;
	background: #b32525;
	color: #fff;
	font-size: .68em;
	font-weight: 500;
	white-space: nowrap;
}

.bento-form-container input[type="text"],
.bento-form-container input[type="tel"],
.bento-form-container input[type="email"],
.bento-form-container input[type="date"],
.bento-form-container textarea,
.delivery-form-container input[type="text"],
.delivery-form-container input[type="tel"],
.delivery-form-container input[type="email"],
.delivery-form-container input[type="date"],
.delivery-form-container textarea {
	width: 100%;
	min-height: 45px;
	padding: 10px 11px;
	border: 1px solid #c8cdcd;
	border-radius: 6px;
	background: #fff;
	font-size: 16px;
}

.bento-info-input-col label,
.delivery-info-input-col label {
	display: inline-flex;
	align-items: center;
	margin: 4px 7px 4px 0 !important;
	padding: 7px 9px;
	border: 1px solid #d0d3d3;
	border-radius: 6px;
	background: #fff;
	font-size: .88em;
	font-weight: 600;
}

.bento-total-box,
.delivery-total-box {
	padding: 13px 14px;
	border: 1px solid #e0d1d1;
	border-radius: 8px;
	background: #fff8f8;
}

.bento-total-box .total-row,
.delivery-total-box .total-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 8px 0;
}

.bento-total-box .total-val,
.delivery-total-box .total-val {
	flex: 0 0 auto;
	white-space: nowrap;
}

.bento-total-box .total-val.highlight,
.delivery-total-box .total-val.highlight {
	color: #b32525;
	font-size: 1.35rem;
	font-weight: 700;
}

.bento-form-submit,
.delivery-form-submit {
	margin-top: 24px;
	text-align: center;
}

.bento-submit-button,
.delivery-submit-button {
	width: 100%;
	min-width: 0;
	min-height: 53px;
	padding: 13px 15px;
	border: 0;
	border-radius: 8px;
	background: #b32525;
	color: #fff;
	font-size: 1em;
	font-weight: 700;
	line-height: 1.45;
	box-shadow: 0 4px 0 #7f1919;
}

/* Access page: mobile layout */
.access-page {
	width: 100%;
	max-width: 100%;
	color: #333;
	text-align: left;
}

.access-page .c-container {
	width: calc(100% - 24px);
	max-width: 100%;
	margin: 0 auto;
	padding: 0;
}

.access-page .p-access-section {
	margin: 0 0 26px;
	padding: 16px 14px;
	border: 1px solid #e0e4e4;
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 6px 20px rgba(42, 89, 92, .06);
}

.access-page .c-section-title {
	position: relative;
	margin: 0 0 16px;
	padding: 9px 10px 9px 15px;
	border: 0;
	border-radius: 7px;
	background: #edf6f6;
	color: #275f62;
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1.5;
	text-align: left;
}

.access-page .c-section-title::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 5px;
	border-radius: 7px 0 0 7px;
	background: #2ca5ac;
}

.access-page .c-section-lead {
	margin: 0 0 16px;
	color: #555;
	font-size: .9em;
	line-height: 1.8;
	text-align: left;
}

.p-access-nav__address-box,
.p-access-shorts-layout {
	display: flex;
	flex-direction: column;
	gap: 14px;
	width: 100%;
}

.p-access-nav__address-box_left,
.p-access-nav__address-box_right,
.p-access-shorts-layout__video,
.p-access-shorts-layout__text {
	width: 100%;
}

.access-page dl {
	display: block;
	width: 100%;
	margin: 0;
	text-align: left;
}

.access-page dl dt {
	margin: 0;
	padding: 7px 10px;
	border-left: 4px solid #2ca5ac;
	background: #f0f7f7;
	color: #275f62;
	font-size: .86em;
	font-weight: 700;
}

.access-page dl dd {
	margin: 0 0 10px;
	padding: 9px 10px 12px;
	border-bottom: 1px solid #e2e6e6;
	font-size: .9em;
	line-height: 1.75;
	overflow-wrap: anywhere;
}

.p-access-nav__address-box_right iframe {
	display: block;
	width: 100%;
	height: 270px;
	border-radius: 8px;
}

.p-access-nav__actions {
	display: grid;
	grid-template-columns: 1fr;
	gap: 9px;
	margin-top: 14px;
}

.access-page .c-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 48px;
	padding: 11px 13px;
	border: 1px solid #2ca5ac;
	border-radius: 7px;
	font-size: .9em;
	font-weight: 700;
	line-height: 1.45;
	text-align: center;
}

.access-page .c-btn--primary {
	background: #2ca5ac;
	color: #fff;
}

.access-page .c-btn--secondary {
	background: #fff;
	color: #287e83;
}

.p-access-shorts-layout__video iframe {
	display: block;
	width: 100%;
	height: 440px;
	border-radius: 10px;
	background: #111;
}

.p-access-shorts-info {
	padding: 10px;
	border-radius: 8px;
	background: #f7f9f9;
}

.p-access-tabs {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 6px;
	margin-bottom: 14px;
}

.p-access-tabs__btn {
	min-height: 48px;
	padding: 8px 6px;
	border: 1px solid #bfcaca;
	border-radius: 7px;
	background: #fff;
	color: #555;
	font-size: .82em;
	font-weight: 700;
	line-height: 1.35;
}

.p-access-tabs__btn.is-active {
	border-color: var(--rental-color-accent);
	background: #2ca5ac;
	color: #fff;
}

.p-access-tab-panel[hidden] {
	display: none !important;
}

.p-access-steps {
	display: grid;
	grid-template-columns: 1fr;
	gap: 14px;
}

.p-access-step {
	border: 1px solid #dce1e1;
	border-radius: 10px;
	background: #fff;
	overflow: hidden;
}

.p-access-step__img,
.p-access-step__img img {
	display: block;
	width: 100%;
}

.p-access-step__img img {
	height: auto;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

.p-access-step__txt {
	padding: 12px 13px 14px;
}

.p-access-step__num {
	display: inline-block;
	margin-bottom: 7px;
	padding: 3px 10px;
	border-radius: 999px;
	background: #2ca5ac;
	color: #fff;
	font-family: Roboto, sans-serif;
	font-size: .78em;
	font-weight: 700;
}

.p-access-step__txt p {
	margin: 0;
	font-size: .9em;
	line-height: 1.75;
	text-align: left;
}

.access-page .p-access-section > img {
	display: block;
	width: 100%;
	height: auto;
	margin: 8px 0 16px;
	border: 1px solid #ddd;
	border-radius: 8px;
}

.p-access-building,
.p-access-parking {
	margin-top: 16px;
}

.p-access-building__3d iframe {
	display: block;
	width: 100%;
	height: 390px;
	border-radius: 8px;
}

.p-access-features__list {
	margin: 0;
	padding: 0;
}

.p-access-features__list > li {
	margin-bottom: 16px;
	padding: 13px;
	border: 1px solid #e0e4e4;
	border-radius: 9px;
	background: #fafcfc;
	font-size: .9em;
	line-height: 1.75;
	text-align: left;
}

.p-access-features__img {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 7px;
	margin-top: 10px;
}

.p-access-features__img_left,
.p-access-features__img_right,
.p-access-features__img img {
	width: 100%;
}

.p-access-features__img img {
	display: block;
	height: 115px;
	border-radius: 6px;
	object-fit: cover;
}

@media (max-width: 420px) {
.trade,
	.privacy {
		width: calc(100% - 20px);
		padding: 15px 12px;
	}

.bento-notice,
	.delivery-notice {
		width: calc(100% - 20px);
	}

.bento-page-container,
	.delivery-page-container {
		padding: 0 6px;
	}

.item-name-box .menu-thumb {
		flex-basis: 66px;
		width: 66px;
		height: 50px;
	}

.access-page .c-container {
		width: calc(100% - 16px);
	}

.access-page .p-access-section {
		padding: 13px 10px;
	}

.p-access-shorts-layout__video iframe {
		height: 410px;
	}

.p-access-features__img {
		grid-template-columns: 1fr;
	}

.p-access-features__img img {
		height: auto;
		aspect-ratio: 16 / 10;
	}
}
}

/* Local font definitions; URLs retain their original file targets. */
/* cyrillic-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(vendor/fixed-ui/fonts/a99e7e70a82255915e42d35ddf434d94c4e61d3e5ea02654083c113d1b97692a.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(vendor/fixed-ui/fonts/0991339551f58fb49d106c4b2a2beaf403823c0cdd0ed99d1a38f1a8b20d1595.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* greek-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(vendor/fixed-ui/fonts/e44efd49524d8b9ba8cb4b627aeac4aa34524e11d9bf67a57becf0740bb58d88.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}

/* greek */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(vendor/fixed-ui/fonts/4a1a773d1cd80d3dbdd2a16c31192899a64e1fa09911a86c23364d108d74ef0a.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}

/* math */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(vendor/fixed-ui/fonts/41e63fe77c08977713ad31884c564f5e7c4767b7a1625d0753b6a39e0a0a93f4.woff2) format('woff2');
  unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-209F, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
}

/* symbols */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(vendor/fixed-ui/fonts/5cb4c667beadbfc8c324b04fcea15837e253231e35ccc3d19b5e36e5280f92b4.woff2) format('woff2');
  unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AE, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F8D0-1F8D8, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FAC6, U+1FAC8, U+1FACC-1FADD, U+1FADF-1FAEB, U+1FAEF-1FAFA, U+1FB00-1FBFF;
}

/* vietnamese */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(vendor/fixed-ui/fonts/15c77aed355b2ca99b34986268c33c67107613a2987c71dd9e12e79bbd6f9e63.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(vendor/fixed-ui/fonts/1e597a6e3b163200475089698be3427ab1bb01553493d5b7d53694429948d8ec.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(vendor/fixed-ui/fonts/5bcc3aa180e7f26f643cd5b2621cd7c2de193d0661d913a94afd3d4881a7a34b.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Shared body and FAQ rules keep their original final cascade position. */
body:where(:not(#tinymce)){
	-webkit-text-size-adjust: 100%;
	margin: 0px 0 0px 0;
	text-align:center;
	color:#333;
	font-family: "Noto Sans JP", "Yu Gothic", "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo";
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/* よくある質問 カテゴリナビゲーション */
.faq-category-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  list-style: none;
  margin: 5em 0;
  padding: 0;
  justify-content: center;
}

.faq-category-nav li {
  margin: 0;
}

.faq-category-nav a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  /* background-color: #f5f5f5; */
  color: #333;
  padding: 8px 16px;
  border-radius: 6px;
  font-size: 14px;
  /* text-decoration: none; */
  transition: all 0.2s ease;
  border-bottom: 1px solid #ccc;
}

.faq-category-nav a:hover {
  background-color: #e0e0e0;
  border-color: #999;
  color: #000;
}

.faq-category-nav a::after {
  content: url('/common/img/icon_mk_down.svg');
  display: inline-block;
  width: 12px;
  height: 12px;
}

.faq-category-nav a:after {
        content:"∨";
        padding:0 1.5em .8em 1.5em;
        color:#97875e;
        
}

.faq-category-balance {
    margin: 3em 0 1em 0;
}

/* ===== Theme components: maintained here, no secondary CSS requests. ===== */

/* ===== options-pages.css ===== */
/* Styles are scoped to the three Tenjin options pages. */
.tenjin-options-page-title h1 {
    width: 100%;
    margin: 0 0 .5em;
    color: #000;
    font-size: 2em;
    font-weight: 600;
    line-height: 1.35;
}

.tenjin-options-page-title h1 span {
    display: block;
    color: var(--rental-color-accent);
    font-family: "Roboto", sans-serif;
    font-size: .6em;
    font-weight: 600;
    letter-spacing: .2em;
}

.tenjin-options {
    padding: 0 20px 80px;
}

.tenjin-options__main {
    box-sizing: border-box;
}

.tenjin-options__intro {
    max-width: 920px;
    margin: 0 auto 50px;
    text-align: center;
}

.tenjin-options__intro h2 {
    width: auto;
    margin: 0 0 20px;
    color: #243746;
    font-size: 2rem;
    line-height: 1.5;
}

.tenjin-options__intro p {
    margin: 0;
    font-size: 1.05rem;
    line-height: 2;
}

.tenjin-options-tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    width: 100%;
    margin: 0 auto 48px;
    padding: 0;
    border: 1px solid #2ca5ac;
    background: #2ca5ac;
}

.tenjin-options-tabs__item {
    position: relative;
    display: flex;
    min-height: 86px;
    box-sizing: border-box;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 16px 52px 16px 24px;
    background: #fff;
    color: #243746;
    text-decoration: none;
    transition: background-color .2s ease, color .2s ease;
}

.tenjin-options-tabs__item::after {
    position: absolute;
    right: 24px;
    content: '›';
    color: var(--rental-color-accent);
    font-size: 2rem;
    line-height: 1;
}

.tenjin-options-tabs__item:hover,
.tenjin-options-tabs__item:focus-visible,
.tenjin-options-tabs__item.is-active {
    background: #2ca5ac;
    color: #fff;
}

.tenjin-options-tabs__item:hover::after,
.tenjin-options-tabs__item:focus-visible::after,
.tenjin-options-tabs__item.is-active::after {
    color: #fff;
}

.tenjin-options-tabs__item span {
    margin-bottom: 3px;
    color: var(--rental-color-accent);
    font-family: "Roboto", sans-serif;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .16em;
}

.tenjin-options-tabs__item:hover span,
.tenjin-options-tabs__item:focus-visible span,
.tenjin-options-tabs__item.is-active span {
    color: #fff;
}

.tenjin-options-tabs__item strong {
    font-size: 1.3rem;
    line-height: 1.35;
}

.tenjin-options-section {
    margin-top: 64px;
}

.tenjin-options-section > h2 {
    width: auto;
    margin: 0 0 28px;
    padding: 0 0 14px;
    border-bottom: 3px solid #2ca5ac;
    color: #243746;
    font-size: 2rem;
    line-height: 1.4;
}

.tenjin-options-section > h2 span {
    display: block;
    margin-bottom: 3px;
    color: var(--rental-color-accent);
    font-family: "Roboto", sans-serif;
    font-size: .45em;
    letter-spacing: .16em;
}

.tenjin-options-section > h3 {
    margin: 38px 0 16px;
    padding: 12px 18px;
    border-left: 5px solid #2ca5ac;
    background: #f2f7f7;
    color: #243746;
    font-size: 1.35rem;
}

.tenjin-room-filter {
    margin: 0 0 34px;
    padding: 26px;
    border-radius: 10px;
    background: #f5f7f7;
}

.tenjin-room-filter h3 {
    margin: 0 0 18px;
    color: #243746;
    font-size: 1.2rem;
    text-align: left;
}

.tenjin-room-filter__buttons {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
}

.tenjin-room-filter__buttons button {
    min-height: 52px;
    padding: 10px 8px;
    border: 2px solid #fff;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 0 10px rgba(0, 0, 0, .08);
    color: var(--rental-color-accent);
    cursor: pointer;
    font: inherit;
    font-weight: 600;
    transition: border-color .2s ease, background-color .2s ease, color .2s ease;
}

.tenjin-room-filter__buttons button:hover,
.tenjin-room-filter__buttons button:focus-visible {
    border-color: var(--rental-color-accent);
}

.tenjin-room-filter__buttons button.is-active {
    border-color: var(--rental-color-accent);
    background: #2ca5ac;
    color: #fff;
}

.tenjin-room-filter__status {
    margin: 18px 0 0;
    color: #52636f;
    text-align: right;
}

.tenjin-room-filter__status strong {
    color: #243746;
    font-size: 1.15em;
}

.tenjin-category-tabs {
    margin-bottom: 22px;
}

.tenjin-category-tabs ul {
    gap: 2.5%;
}

.tenjin-category-tabs li {
    padding: 0;
}

.tenjin-category-tabs li button {
    width: 100%;
    min-height: 62px;
    padding: 12px 8px;
    border: 0;
    border-radius: inherit;
    background: transparent;
    color: inherit;
    cursor: pointer;
    font: inherit;
    font-weight: inherit;
}

.tenjin-category-tabs li.goods_active {
    background: #2ca5ac;
    color: #fff;
}

.tenjin-category-tabs li:focus-within {
    border-color: var(--rental-color-accent);
    outline: 2px solid #2ca5ac;
    outline-offset: 2px;
}

.tenjin-rental-goods {
    margin-bottom: 0;
}

.tenjin-equipment-category + .tenjin-equipment-category {
    margin-top: 42px;
}

.tenjin-equipment-category > h3 {
    margin: 40px 0 20px;
    padding: 4px 0 4px 16px;
    border-left: 5px solid #2ca5b1;
    color: #243746;
    font-size: 1.35rem;
    text-align: left;
}

.tenjin-equipment-table-wrap {
    width: 100%;
    overflow-x: auto;
}

.tenjin-rental-goods table {
    width: 100%;
    min-width: 800px;
}

.tenjin-rental-goods table td {
    vertical-align: middle;
}

.tenjin-rental-goods table .tenjin-rental-goods__image {
    width: 10%;
}

.tenjin-rental-goods table .tenjin-rental-goods__maker {
    width: 9.25%;
}

.tenjin-rental-goods table .tenjin-rental-goods__price {
    width: 150px;
}

.tenjin-rental-goods table td img {
    width: 100px;
    margin: 0 .5em 0 0;
    object-fit: contain;
}

.tenjin-equipment-room-tags {
    display: none;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 8px;
}

.tenjin-rental-goods.is-all-rooms .tenjin-equipment-room-tags {
    display: flex;
}

.tenjin-equipment-room-tags em {
    display: inline-block;
    padding: 3px 7px;
    border: 1px solid #2ca5ac;
    border-radius: 999px;
    background: #f2fbfb;
    color: #167f86;
    font-size: .72rem;
    font-style: normal;
    font-weight: 600;
    line-height: 1.3;
    white-space: nowrap;
}

.tenjin-rental-goods table p {
    margin: 0;
}

.tenjin-rental-goods__price {
    white-space: nowrap;
}

[data-equipment-row][hidden],
[data-equipment-category][hidden] {
    display: none !important;
}

.tenjin-options-table-wrap {
    width: 100%;
    overflow-x: auto;
    border: 1px solid #d9e0e3;
}

.tenjin-options-table {
    width: 100%;
    min-width: 850px;
    border: 0;
    border-collapse: collapse;
    background: #fff;
}

.tenjin-options-table th,
.tenjin-options-table td {
    box-sizing: border-box;
    padding: 16px 14px;
    border: 0;
    border-bottom: 1px solid #d9e0e3;
    vertical-align: middle;
    line-height: 1.7;
}

.tenjin-options-table thead th {
    background: #d8eef0;
    color: #243746;
    font-weight: 700;
    text-align: center;
}

.tenjin-options-table tbody tr:nth-child(even) {
    background: #f7f8f8;
}

.tenjin-options-table tbody th {
    width: 19%;
    color: #188e98;
    font-weight: 600;
    text-align: left;
}

.tenjin-options-table__image {
    width: 105px;
    text-align: center;
}

.tenjin-options-table__image img {
    width: 80px;
    height: 64px;
    object-fit: contain;
}

.tenjin-options-table__noimage {
    display: inline-flex;
    width: 80px;
    height: 64px;
    align-items: center;
    justify-content: center;
    background: #edf2f3;
    color: #9aa7ad;
    font-size: .62rem;
    letter-spacing: .08em;
}

.tenjin-options-table__price {
    width: 150px;
    text-align: right;
    white-space: nowrap;
}

.tenjin-options-table__price strong,
.tenjin-options-table__price small {
    display: block;
}

.tenjin-options-table__price small {
    margin-top: 3px;
    color: #52636f;
}

.tenjin-options-table p {
    margin: 0;
}

.tenjin-options-notes {
    margin: 24px 0 0;
    padding: 20px 24px 20px 44px;
    background: #f5f6f7;
    color: #52636f;
    line-height: 1.8;
}

.tenjin-support-list {
    border-top: 1px solid #d9e0e3;
}

.tenjin-support-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 230px;
    gap: 32px;
    align-items: start;
    padding: 30px 18px;
    border-bottom: 1px solid #d9e0e3;
    text-align: left;
}

.tenjin-support-card h3 {
    margin: 0 0 10px;
    color: #243746;
    font-size: 1.35rem;
}

.tenjin-support-card p {
    margin: 0;
    line-height: 1.8;
}

.tenjin-support-card__lead {
    margin-bottom: 8px !important;
    color: #188e98;
    font-weight: 600;
}

.tenjin-support-card__fee {
    width: 100%;
    box-sizing: border-box;
    padding: 13px 10px;
    border: 1px solid #b9d8da;
    background: #f3fbfb;
    color: #243746;
    font-weight: 600;
    text-align: left;
}

.tenjin-support-card__fee span {
    display: block;
    margin-bottom: 3px;
    color: #52636f;
    font-size: .78rem;
    font-weight: 400;
}

.tenjin-support-card__fee strong {
    display: block;
    font-size: .78rem;
    font-weight: 500;
    line-height: 1.55;
}

.tenjin-support-card__fee strong.is-primary {
    color: #243746;
    font-size: .92rem;
    font-weight: 700;
}

.tenjin-support-card__fee strong + strong {
    margin-top: 4px;
    color: #52636f;
}

.tenjin-options-crosslink {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    margin-top: 70px;
    padding: 30px 36px;
    background: #243746;
    color: #fff;
}

.tenjin-options-crosslink div > span,
.tenjin-options-crosslink div > strong {
    display: block;
}

.tenjin-options-crosslink div > span {
    margin-bottom: 7px;
    color: #7ad5d9;
    font-family: "Roboto", sans-serif;
    font-size: .8rem;
    letter-spacing: .16em;
}

.tenjin-options-crosslink div > strong {
    font-size: 1.25rem;
}

.tenjin-options-crosslink a {
    flex: 0 0 auto;
    padding: 14px 28px;
    background: #2ca5ac;
    color: #fff;
    font-weight: 600;
    text-decoration: none;
}

.tenjin-options-crosslink a:hover,
.tenjin-options-crosslink a:focus-visible {
    background: #238e94;
}

@media (max-width: 767px) {
.tenjin-options-page-title h1 {
        font-size: 1.6em;
    }

.tenjin-options {
        padding: 0 15px 50px;
    }

.tenjin-options__intro {
        margin-bottom: 36px;
        text-align: left;
    }

.tenjin-options__intro h2,
    .tenjin-options-section > h2 {
        font-size: 1.45rem;
    }

.tenjin-options__intro p {
        font-size: 1rem;
        line-height: 1.8;
    }

.tenjin-options-tabs {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        margin-bottom: 32px;
    }

.tenjin-options-tabs__item {
        min-height: 72px;
        padding: 12px 30px 12px 10px;
    }

.tenjin-options-tabs__item::after {
        right: 10px;
        font-size: 1.6rem;
    }

.tenjin-options-tabs__item strong {
        font-size: 1rem;
    }

.tenjin-options-section {
        margin-top: 46px;
    }

.tenjin-options-section > h3 {
        margin-top: 28px;
        font-size: 1.15rem;
    }

.tenjin-room-filter {
        padding: 18px 14px;
    }

.tenjin-room-filter__buttons {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 8px;
    }

.tenjin-room-filter__buttons button {
        min-height: 46px;
        padding: 8px 4px;
        font-size: .85rem;
    }

.tenjin-room-filter__status {
        text-align: left;
    }

.tenjin-category-tabs ul {
        flex-wrap: wrap;
        gap: 8px;
    }

.tenjin-category-tabs li {
        width: calc(50% - 4px);
        font-size: .85rem;
    }

.tenjin-category-tabs li button {
        min-height: 52px;
        padding: 8px 4px;
    }

.tenjin-rental-goods {
        padding: 14px;
    }

.tenjin-options-table th,
    .tenjin-options-table td {
        padding: 12px 10px;
    }

.tenjin-support-card {
        grid-template-columns: minmax(0, 1fr);
        gap: 14px;
        padding: 24px 5px;
    }

.tenjin-support-card__fee {
        grid-column: 1;
        justify-self: stretch;
        min-width: 0;
    }

.tenjin-options-crosslink {
        align-items: stretch;
        flex-direction: column;
        padding: 26px 22px;
    }

.tenjin-options-crosslink a {
        text-align: center;
    }
}

/* ===== assets/css/template-catering-gallery.css ===== */
/* Scoped additions; the existing Tenjin catering cards and detail layout stay in use. */
#catering-list ul{grid-template-rows:none;grid-auto-rows:auto;align-items:stretch}

#catering-list .catering-company{display:block;box-sizing:border-box;width:100%;min-height:1.5em;margin:.2em 0 .45em;padding:0 .5em;text-align:center;font-size:.78em;line-height:1.5;overflow-wrap:anywhere}

#catering-list .catering-company a{display:inline;width:auto;padding:0;background:none;color:#2aa6b1}

#catering-list .catering-name{margin:0 0 .55em;line-height:1.5;text-align:center;overflow-wrap:anywhere}

.catering_single_photo:has(.rental-catering-gallery){display:block;min-width:0}

.rental-catering-gallery,.rental-catering-slides{width:100%;min-width:0}

.rental-catering-slides:not(.slick-initialized)>div:not(:first-child){display:none}

.catering_single_photo .rental-catering-slides img{display:block;width:100%;height:auto;min-height:0;aspect-ratio:auto;object-fit:contain}

.rental-catering-controls{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;padding:10px 4px}

.rental-catering-controls[hidden]{display:none}

.rental-catering-controls>button{position:static;transform:none;background:#fff;color:#644444;border:1px solid #d4c793;border-radius:5px;cursor:pointer;min-width:40px;min-height:40px;font:inherit;padding:4px 10px}

.rental-catering-controls .rental-catering-prev,.rental-catering-controls .rental-catering-next{font-size:24px;line-height:1}

.rental-catering-controls>button::before{content:none}

.rental-catering-controls button:focus-visible{outline:2px solid #2aa6b1;outline-offset:2px}

.rental-catering-dots .slick-dots{position:static;display:flex!important;justify-content:center;flex-wrap:wrap;width:auto;margin:0;padding:0}

.rental-catering-dots .slick-dots li{margin:0 2px}

.rental-catering-controls .rental-catering-toggle{font-size:12px;flex-basis:100%;max-width:180px}

/* ===== assets/css/template-header.css ===== */
/* Mobile first: preserve the approved logo/menu and enhance the wide layout. */
@media screen{
#menuButton{display:block}

#header_menu>tel{display:none}
}

@media screen and (min-width:769px){
#menuButton{display:none}
}

/* One fixed chrome for every facility; existing Tenjin colors and menus retained. */
@media screen and (min-width:1400px){
.rental-site-chrome #header_menu>tel{display:flex;flex-direction:column;justify-content:center;align-self:stretch;gap:2px;box-sizing:border-box;margin:0;padding:8px 0}

.rental-site-chrome #header_menu>tel>.main_img_tel{display:block;margin:0;padding-top:0;padding-bottom:0;line-height:1.1}

.rental-site-chrome #header_menu>tel>.main_img_tel_time{margin:0;padding:0;line-height:1.4}
}

:root{--rental-admin-offset:0px;--rental-chrome-height:0px;--rental-banner-height:0px;--rental-anchor-offset:0px}

:root{scroll-padding-top:calc(var(--rental-anchor-offset) + 12px)}

.wrap{padding-top:var(--rental-chrome-height);overflow-x:clip}

#home .wrap{padding-top:var(--rental-banner-height)}

#home.rental-no-hero .wrap{padding-top:var(--rental-chrome-height)}

.rental-site-chrome{position:fixed;top:var(--rental-admin-offset);left:0;right:0;width:100%;z-index:10000}

.rental-site-chrome>header,.rental-site-chrome>header.home{position:relative;height:auto;min-height:60px}

@media (min-width:769px),print{
.rental-site-chrome>header,.rental-site-chrome>header.home{min-height:70px}
}

.rental-site-chrome .top_bn{margin:0;width:100%;overflow:hidden}

.rental-site-chrome #js-slider-1{padding:0;margin:0;list-style:none}

.rental-site-chrome #js-slider-1 li{height:var(--rental-notice-height,28px);min-height:28px;padding:0;border:0;box-sizing:border-box;float:none}

.rental-site-chrome #js-slider-1.rental-notices-measuring li{display:block!important;height:auto!important}

.rental-site-chrome #js-slider-1.rental-notices-measuring .rental-notice-content{height:auto!important}

.rental-notice-content{display:flex;width:100%;height:100%;min-height:28px;box-sizing:border-box;align-items:center;justify-content:center;padding:4px 12px;line-height:20px;white-space:normal;overflow-wrap:anywhere}

.rental-site-chrome a.rental-notice-content,.rental-site-chrome a.rental-notice-content:visited,.rental-site-chrome a.rental-notice-content:hover{color:#fff;text-decoration:none}

.rental-site-chrome a.rental-notice-content:focus-visible{outline:2px solid #fff;outline-offset:-3px}

#js-slider-1:not(.slick-initialized):not(.rental-notices-ready)>li+li{display:none}

/* Native vertical notice track: same 6-second cadence and 0.2-second movement. */
.rental-notice-viewport{height:var(--rental-notice-height,28px);width:100%;overflow:hidden;touch-action:pan-y;user-select:none}

#js-slider-1.rental-notices-ready{display:flex;flex-direction:column;width:100%;height:auto;transition:transform .2s ease;will-change:transform}

#js-slider-1.rental-notices-ready>li{flex:0 0 var(--rental-notice-height,28px);width:100%}

#js-slider-1.rental-notices-resetting{transition:none}

#page_title.fixed{top:calc(var(--rental-admin-offset) + var(--rental-chrome-height))!important;z-index:9998}

#page_title,#page_title .layout,#page_title h2,#page_title p,#page_title .h2_sub,#page_title .room_menu{transition:none}

.rental-room-nav-space{height:0}

@media screen{
.rental-site-chrome mainmenu{top:calc(var(--rental-admin-offset) + var(--rental-chrome-height));bottom:0;height:calc(100dvh - var(--rental-admin-offset) - var(--rental-chrome-height))}

.rental-site-chrome mainmenu>ul{min-height:0;padding-top:12px}
}

@media screen and (min-width:769px){
.rental-site-chrome mainmenu{top:auto;bottom:auto;height:auto}

.rental-site-chrome mainmenu>ul{min-height:auto;padding-top:0}
}

@media print{
:root{scroll-padding-top:0!important}

.wrap,#home .wrap{padding-top:0!important}

.rental-site-chrome{position:static!important;width:100%}

#page_title.fixed{position:static!important;top:auto!important}

.rental-room-nav-space{display:none!important}

#wpadminbar,#menuButton,.rental-site-chrome mainmenu{display:none!important}
}

.layout_list .tab:focus-visible{outline:2px solid #2ca5ac;outline-offset:-3px}

@media(prefers-reduced-motion:reduce){
html{scroll-behavior:auto!important}

.animate,.anim{animation:none!important;transition:none!important;transform:none!important;opacity:1!important}
}

/* ===== assets/css/template-html5.css ===== */
/* Standards-mode alignment with the existing Tenjin markup; no facility-specific rules. */
.rental-site-chrome .logo img,.index_feature_right img{display:block}

#pricetable{line-height:normal}

#pricetable th.sort{box-sizing:border-box}

/* ===== assets/css/template-contact-actions.css ===== */
/* Independent side tabs; no continuous rail behind the buttons. */
.rental-contact-actions{position:fixed;right:0;top:calc(var(--rental-admin-offset,0px) + var(--rental-chrome-height,100px) + 8px);bottom:auto;z-index:9999;display:flex;flex-direction:column;align-items:flex-end;gap:8px;background:transparent}

.rental-contact-action{display:flex;box-sizing:border-box;width:64px;min-height:126px;padding:14px 8px;flex-direction:column;align-items:center;justify-content:center;gap:8px;border-radius:6px 0 0 6px;text-decoration:none;color:#fff!important;font-weight:700;line-height:1.5;box-shadow:0 2px 8px #0002;transition:width .2s ease}

.rental-contact-action--application{background:#c06262}

.rental-contact-action--inquiry{background:#2ca5ac}

.rental-contact-action--phone{display:none;background:#4f4f4f}

.rental-contact-action[aria-disabled=true]{opacity:.65;cursor:default}

.rental-contact-action .material-symbols-outlined{font-size:24px;line-height:1}

.rental-action-desktop{writing-mode:vertical-rl;text-orientation:upright;letter-spacing:.1em;font-size:14px}

.rental-action-mobile{display:none}

.rental-contact-action:hover,.rental-contact-action:focus-visible{width:80px;color:#fff;text-decoration:none}

.rental-contact-action:focus-visible{outline:2px solid #243746;outline-offset:2px}

.rental-site-chrome .rental-menu-options>a.menu03{z-index:31}

.rental-back-to-top{position:fixed;right:24px;bottom:24px;z-index:9996;display:flex;box-sizing:border-box;width:64px;height:64px;padding:12px 8px;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:0;border-radius:50%;background:#2ca5ac;color:#fff;box-shadow:0 2px 5px #0001;cursor:pointer;font:700 13px/1.1 sans-serif;letter-spacing:2px;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(8px);transition:opacity .25s ease,transform .25s ease,visibility .25s ease}

.rental-back-to-top[hidden]{display:none}

.rental-back-to-top.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}

.rental-back-to-top:focus-visible{outline:2px solid #243746;outline-offset:3px}

.rental-back-to-top__arrow{width:16px;height:16px;box-sizing:border-box;border-top:6px solid #fff;border-left:6px solid #fff;transform:translateY(3px) rotate(45deg)}

@media screen and (max-width:768px){
body:where(:not(#tinymce)){padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}

.rental-contact-actions{left:0;right:0;top:auto;bottom:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;align-items:stretch;padding-bottom:env(safe-area-inset-bottom,0px);background:#fff}

.rental-contact-action,.rental-contact-action:hover,.rental-contact-action:focus-visible{display:flex;width:auto;min-width:0;min-height:64px;flex-direction:column;gap:3px;padding:8px 4px;border-radius:0;font-size:14px;box-shadow:none}

.rental-action-desktop{display:none}

.rental-action-mobile{display:inline}

.rental-contact-action .material-symbols-outlined{font-size:22px}

.rental-site-chrome mainmenu#rental-primary-menu{bottom:calc(64px + env(safe-area-inset-bottom,0px));height:calc(100dvh - var(--rental-admin-offset) - var(--rental-chrome-height) - 64px - env(safe-area-inset-bottom,0px))}

.rental-back-to-top{right:16px;bottom:calc(80px + env(safe-area-inset-bottom,0px));width:56px;height:56px;font-size:12px}
}

@media screen and (min-width:769px) and (max-height:520px){
.rental-contact-action{width:176px;min-height:54px;padding:12px;flex-direction:row}

.rental-action-desktop{writing-mode:horizontal-tb;letter-spacing:normal}

.rental-contact-action:hover,.rental-contact-action:focus-visible{width:192px}
}

@media(prefers-reduced-motion:reduce){
.rental-contact-action,.rental-back-to-top{transition:none}
}

@media print{
.rental-contact-actions,.rental-back-to-top{display:none!important}

body:where(:not(#tinymce)){padding-bottom:0!important}
}

/* ===== access.css ===== */
:where(#header:has(.access-page)) .access-page {
    color: #333;
    line-height: 1.6;
    font-family: "Noto Sans JP", sans-serif;
    background-color: #f5f5f5;
    padding: 0px 0 80px;
}

:where(#header:has(.access-page)) .c-container {
    max-width: var(--rental-content-max);
    margin: 0 auto;
    padding: 0 20px;
}

:where(#header:has(.access-page)) .c-page-title {
    font-size: 28px;
    font-weight: bold;
    text-align: center;
    margin-bottom: 40px;
    color: var(--rental-color-accent);
    /* デモサイトのブランドカラー想定 */
}

:where(#header:has(.access-page)) .c-section-title {
    font-size: 22px;
    font-weight: bold;
    border-left: 5px solid #2CA5AC;
    padding-left: 15px;
    margin-bottom: 20px;
    background-color: #fff;
    padding-top: 10px;
    padding-bottom: 10px;
}

:where(#header:has(.access-page)) .c-section-lead {
    font-size: 15px;
    margin-bottom: 20px;
}

:where(#header:has(.access-page)) .p-access-section {
    background-color: #fff;
    padding: 30px;
    margin-bottom: 40px;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
}

:where(#header:has(.access-page)) .c-btn {
    display: inline-block;
    padding: 12px 24px;
    border-radius: 4px;
    text-decoration: none;
    font-weight: bold;
    text-align: center;
    cursor: pointer;
    transition: opacity 0.3s;
    border: none;
    font-size: 14px;
}

:where(#header:has(.access-page)) .c-btn:hover {
    opacity: 0.8;
}

:where(#header:has(.access-page)) .c-btn--primary {
    background-color: var(--rental-color-accent);
    color: #fff;
    width: 100%;
    margin-bottom: 10px;
}

:where(#header:has(.access-page)) .c-btn--secondary {
    background-color: #fff;
    color: var(--rental-color-accent);
    border: 1px solid #2CA5AC;
    width: 100%;
}

:where(#header:has(.access-page)) .c-btn--copy {
    background-color: #e0e0e0;
    color: #333;
    padding: 6px 12px;
    font-size: 12px;
    margin-left: 10px;
}

:where(#header:has(.access-page)) .p-access-nav__name {
    font-size: 20px;
    font-weight: bold;
    margin-bottom: 15px;
}

:where(#header:has(.access-page)) .p-access-nav__address-box {
    display: flex;
    max-width: var(--rental-content-max);
    box-sizing: border-box;
    padding: 0;
    margin: auto 0 2em 0;
}

:where(#header:has(.access-page)) .p-access-nav__address-box_left {
    width: 50%;
    text-align: left;
    padding-right: 1.5em;
    box-sizing: border-box;
}

:where(#header:has(.access-page)) .p-access-nav__address-box_right {
    width: 50%;
    box-sizing: border-box;
    padding: 10px 20px;
}

:where(#header:has(.access-page)) .p-access-nav__address-box dl {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    width: 100%;
    border-top: 1px solid #ccc;
    border-bottom: none;
    font-size: .9em;
}

:where(#header:has(.access-page)) .p-access-nav__address-box dl dt {
    background: #f5f5f5;
    padding: 1em;
    width: 150px;
    border-bottom: 1px solid #ccc;
    box-sizing: border-box;
    font-weight: 600;
}

:where(#header:has(.access-page)) .p-access-nav__address-box dl dd {
    background: #fff;
    padding: 1em;
    width: calc(100% - 150px);
    border-bottom: 1px solid #ccc;
    margin: 0;
    box-sizing: border-box;
}

:where(#header:has(.access-page)) .p-access-nav__actions {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

:where(#header:has(.access-page)) .p-access-video {
    position: relative;
    width: 100%;
    padding-top: 56.25%;
    /* 16:9 Aspect Ratio */
}

:where(#header:has(.access-page)) .p-access-video iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 8px;
}

:where(#header:has(.access-page)) .p-access-steps {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

:where(#header:has(.access-page)) .p-access-step {
    display: flex;
    gap: 20px;
    align-items: flex-start;
}

:where(#header:has(.access-page)) .p-access-step__img {
    width: 40%;
    flex-shrink: 0;
}

:where(#header:has(.access-page)) .p-access-step__img img {
    width: 100%;
    height: auto;
    border-radius: 4px;
    border: 1px solid #eee;
}

:where(#header:has(.access-page)) .p-access-step__txt {
    width: 60%;
}

:where(#header:has(.access-page)) .p-access-step__num {
    display: inline-block;
    background-color: var(--rental-color-accent);
    color: #fff;
    padding: 4px 12px;
    font-size: 12px;
    font-weight: bold;
    border-radius: 20px;
    margin-bottom: 10px;
}

:where(#header:has(.access-page)) .p-access-building__3d,
:where(#header:has(.access-page)) .p-access-indoor {
    margin-bottom: 20px;
    border-radius: 8px;
    overflow: hidden;
}

:where(#header:has(.access-page)) .p-access-features__list {
    list-style: none;
    padding: 0;
}

:where(#header:has(.access-page)) .p-access-features__list li {
    position: relative;
    padding-left: 1.5em;
    margin-bottom: 10px;
}

:where(#header:has(.access-page)) .p-access-features__list li::before {
    content: "■";
    position: absolute;
    left: 0;
    color: var(--rental-color-accent);
}

:where(#header:has(.access-page)) .p-access-features__img {
    display: flex;
    gap: 1em;
    padding: 20px 0;
    text-align: left;
    justify-content: space-between;
}

:where(#header:has(.access-page)) .p-access-features__img_left {
    width: 49%;
    flex-shrink: 0;
}

:where(#header:has(.access-page)) .p-access-features__img_right {
    width: 49%;
    flex-shrink: 0;
}

@media screen and (min-width: 768px) {
:where(#header:has(.access-page)) .p-access-nav__actions {
        flex-direction: row;
    }

:where(#header:has(.access-page)) .c-btn--primary,
:where(#header:has(.access-page)) .c-btn--secondary {
        width: auto;
        margin-bottom: 0;
    }
}

@media screen and (max-width: 767px) {
:where(#header:has(.access-page)) .p-access-section {
        padding: 20px;
    }

:where(#header:has(.access-page)) .p-access-step {
        flex-direction: column;
        gap: 15px;
    }

:where(#header:has(.access-page)) .p-access-step__img,
:where(#header:has(.access-page)) .p-access-step__txt {
        width: 100%;
    }

:where(#header:has(.access-page)) .p-access-nav__address-box {
        display: flex;
        width: 100%;
        background-color: #fff;
        border-radius: 10px;
        box-sizing: border-box;
        padding: 0;
        flex-direction: column-reverse;
    }

:where(#header:has(.access-page)) .p-access-nav__address-box dl {
        display: flex;
        align-items: stretch;
        width: 100%;
        border-top: 1px solid #ccc;
        border-bottom: none;
        font-size: .9em;
        flex-direction: column;
    }

:where(#header:has(.access-page)) .p-access-nav__address-box dl dt {
        background: #f5f5f5;
        padding: 1em;
        width: 100%;
        border-bottom: 1px solid #ccc;
        box-sizing: border-box;
        font-weight: 600;
    }

:where(#header:has(.access-page)) .p-access-nav__address-box dl dd {
        background: #fff;
        padding: 1em;
        width: 100%;
        border-bottom: 1px solid #ccc;
        margin: 0;
        box-sizing: border-box;
    }

:where(#header:has(.access-page)) .c-btn--copy {
        margin-left: 0;
    }

:where(#header:has(.access-page)) .p-access-nav__address-box_left {
        width: 100%;
        text-align: left;
        padding-right: 0em;
        box-sizing: border-box;
    }

:where(#header:has(.access-page)) .p-access-nav__address-box_left p {
        font-size: .9em;
    }

:where(#header:has(.access-page)) .p-access-nav__address-box_right {
        width: 100%;
        box-sizing: border-box;
        padding: 0;
    }

:where(#header:has(.access-page)) .p-access-nav__actions {
        max-width: 83%
    }

:where(#header:has(.access-page)) .c-section-title {
        font-size: 1.1em;
        font-weight: bold;
        border-left: 5px solid #2CA5AC;
        padding-left: 15px;
        margin-bottom: 20px;
        background-color: #fff;
        padding-top: 10px;
        padding-bottom: 10px;
    }

:where(#header:has(.access-page)) .p-access-features__img {
        display: flex;
        gap: 1em;
        padding: 20px 0;
        text-align: left;
        justify-content: space-between;
        flex-direction: column;
    }

:where(#header:has(.access-page)) .p-access-features__img_left {
        width: 100%;
        flex-shrink: 0;
    }

:where(#header:has(.access-page)) .p-access-features__img_right {
        width: 100%;
        flex-shrink: 0;
    }
}

:where(#header:has(.access-page)) section.p-access-section h2 {
    text-align: left;
}

:where(#header:has(.access-page)) section.p-access-section {
    text-align: left;
}

:where(#header:has(.access-page)) #page_title {
    position: relative;
    z-index: 1000;
    transition-property: all;
    /* 適用対象 = なんでも */
    transition-duration: 0.5s;
    /* 秒数 = 1.0秒 */
}

:where(#header:has(.access-page)) #page_title.fixed {
    position: fixed;
    transition-property: all;
    /* 適用対象 = なんでも */
    transition-duration: 0.5s;
    /* 秒数 = 1.0秒 */
    background-color: #f5f5f5;
    width: 100%;
    border-bottom: 1px solid #ccc;
    border-top: 5px solid #2CA5AC;
}

:where(#header:has(.access-page)) #page_title p {
    display: block;
    transition-property: all;
    /* 適用対象 = なんでも */
    transition-duration: 1.0s;
    /* 秒数 = 1.0秒 */
}

:where(#header:has(.access-page)) #page_title.fixed p {
    display: none;
    transition-property: all;
    /* 適用対象 = なんでも */
    transition-duration: 1.0s;
    /* 秒数 = 1.0秒 */
}

:where(#header:has(.access-page)) #page_title .layout {
    margin: 0 auto;
    padding: 0;
    max-width: var(--rental-content-max);
    position: relative;
    transition-property: all;
    /* 適用対象 = なんでも */
    transition-duration: 1.0s;
    /* 秒数 = 1.0秒 */
}

:where(#header:has(.access-page)) #page_title.fixed .layout {
    margin: 0 auto;
    padding: 0 2em;
    max-width: 100%;
    transition-property: all;
    /* 適用対象 = なんでも */
    transition-duration: 1.0s;
    /* 秒数 = 1.0秒 */
}

:where(#header:has(.access-page)) #page_title h2 {
    font-weight: normal;
    font-size: 2em;
    line-height: normal;
    font-weight: 600;
    text-align: left;
    display: inline-block;
    margin-right: 1em;
    margin-bottom: .5em;
    padding-bottom: 0;
    transition-property: all;
    /* 適用対象 = なんでも */
    transition-duration: 1.0s;
    /* 秒数 = 1.0秒 */
    color: #000;
}

:where(#header:has(.access-page)) #page_title.fixed h2 {
    font-weight: normal;
    font-size: 1.5em;
    line-height: normal;
    font-weight: 600;
    text-align: left;
    display: inline-block;
    margin-right: 1em;
    margin-bottom: .5em;
    padding-bottom: 0;
    transition-property: all;
    /* 適用対象 = なんでも */
    transition-duration: 1.0s;
    /* 秒数 = 1.0秒 */
    margin-top: 0;
    color: #333;
}

:where(#header:has(.access-page)) #page_title h2 span {
    font-family: 'Roboto', sans-serif;
    display: block;
    font-size: .6em;
    letter-spacing: .2em;
    color: var(--rental-color-accent);
    transition-property: all;
    /* 適用対象 = なんでも */
    transition-duration: 0.2s;
    /* 秒数 = 1.0秒 */
}

:where(#header:has(.access-page)) #page_title.fixed h2 span {
    font-size: .5em;
    transition-property: all;
    /* 適用対象 = なんでも */
    transition-duration: 0.2s;
    /* 秒数 = 1.0秒 */
}

:where(#header:has(.access-page)) #page_title .h2_sub {
    display: inline-block;
    border-radius: 1em;
    border: 1px solid #aaa;
    padding: .3em 1.2em;
    font-size: 1em;
    margin: 0 .5em 0 0;
    background: #fff;
}

:where(#header:has(.access-page)) #page_title.fixed .h2_sub {
    display: none;
    transition-property: all;
    /* 適用対象 = なんでも */
    transition-duration: 1.0s;
    /* 秒数 = 1.0秒 */
}

:where(#header:has(.access-page)) #page_title .room_menu {
    position: absolute;
    right: 0;
}

:where(#header:has(.access-page)) #page_title.fixed .room_menu {
    right: 2em;
    top: 1em;
}

:where(#header:has(.access-page)) #page_title .room_menu ul {
    display: flex;
    justify-content: flex-end;
}

:where(#header:has(.access-page)) .room_menu li {
    margin-left: 0em;
}

:where(#header:has(.access-page)) #page_title .room_menu li a {
    padding-left: 1.5em;
    color: #000;
    font-weight: 500;
    font-size: .9em;
}

:where(#header:has(.access-page)) #page_title.fixed .room_menu li a {
    color: #333;
}

:where(#header:has(.access-page)) #page_title .room_menu li a:hover {
    color: var(--rental-color-accent);
}

:where(#header:has(.access-page)) #page_title .room_menu li a:before {
    margin: 0 5px 0 0;
    position: relative;
    display: inline-block;
    font-size: 25px;
    transition: 0.3s;
    font-family: 'Material Symbols Outlined';
    content: '\e313';
    vertical-align: middle;
    color: var(--rental-color-accent);
    font-weight: 800;
}

:where(#header:has(.access-page)) #page_title.fixed .room_menu li a:before {
    color: var(--rental-color-accent);
}

:where(#header:has(.access-page)) .p-access-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    margin-bottom: 24px;
    border-bottom: 2px solid #2CA5AC;
}

:where(#header:has(.access-page)) .p-access-tabs__btn {
    flex: 1 1 auto;
    padding: 12px 20px;
    background-color: #f0f0f0;
    color: #555;
    border: 1px solid #ddd;
    border-bottom: none;
    cursor: pointer;
    font-size: 14px;
    font-weight: bold;
    font-family: 'Noto Sans JP', sans-serif;
    transition: background-color 0.2s, color 0.2s;
    border-radius: 6px 6px 0 0;
    text-align: center;
    white-space: nowrap;
}

:where(#header:has(.access-page)) .p-access-tabs__btn:hover {
    background-color: #e0f5f6;
    color: var(--rental-color-accent);
}

:where(#header:has(.access-page)) .p-access-tabs__btn.is-active {
    background-color: #fff;
    color: var(--rental-color-accent);
    border-color: var(--rental-color-accent);
    border-bottom: 2px solid #fff;
    margin-bottom: -2px;
    position: relative;
    z-index: 1;
}

:where(#header:has(.access-page)) .p-access-tab-panel {
    display: none;
}

:where(#header:has(.access-page)) .p-access-tab-panel.is-active {
    display: block;
    animation: tabFadeIn 0.3s ease;
}

@keyframes tabFadeIn {
    from {
        opacity: 0;
        transform: translateY(6px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media screen and (max-width: 767px) {
:where(#header:has(.access-page)) .p-access-tabs {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        flex-wrap: nowrap;
        border-bottom: 2px solid #2CA5AC;
    }

:where(#header:has(.access-page)) .p-access-tabs__btn {
        flex: 0 0 auto;
        min-width: 120px;
        font-size: 13px;
        padding: 10px 16px;
    }
}

:where(#header:has(.access-page)) .p-access-shorts-layout {
    display: flex;
    gap: 40px;
    align-items: flex-start;
}

:where(#header:has(.access-page)) .p-access-shorts-layout__video {
    width: 300px;
    /* PC閲覧時の動画の最大幅 */
    max-width: 100%;
    flex-shrink: 0;
    aspect-ratio: 9 / 16;
    /* 縦長（ショート動画）の比率 */
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}

:where(#header:has(.access-page)) .p-access-shorts-layout__video iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

:where(#header:has(.access-page)) .p-access-shorts-layout__text {
    flex-grow: 1;
}

:where(#header:has(.access-page)) .p-access-shorts-info {
    background: #f9f9f9;
    padding: 20px;
    border-radius: 8px;
    border: 1px solid #eee;
    margin-top: 20px;
}

:where(#header:has(.access-page)) .p-access-shorts-info dl {
    margin: 0;
}

:where(#header:has(.access-page)) .p-access-shorts-info dt {
    font-weight: bold;
    color: var(--rental-color-accent);
    margin-bottom: 5px;
    font-size: 1.05em;
}

:where(#header:has(.access-page)) .p-access-shorts-info dd {
    margin: 0 0 20px 0;
    line-height: 1.6;
}

:where(#header:has(.access-page)) .p-access-shorts-info dd:last-child {
    margin-bottom: 0;
}

@media screen and (max-width: 767px) {
:where(#header:has(.access-page)) .p-access-shorts-layout {
        flex-direction: column;
        /* スマホ時は縦並び（動画→テキスト） */
        gap: 25px;
    }

:where(#header:has(.access-page)) .p-access-shorts-layout__video {
        width: 100%;
        max-width: 320px;
        /* スマホ画面で大きくなりすぎないように制限 */
        margin: 0 auto;
        /* 中央寄せ */
    }

:where(#header:has(.access-page)) .p-access-shorts-info {
        padding: 15px;
    }
}

:where(#header:has(.access-page)) .p-access-shorts-route-list {
    margin: 0;
    padding-left: 20px;
}

:where(#header:has(.access-page)) .p-access-shorts-route-list li {
    margin-bottom: 12px;
    line-height: 1.6;
}

:where(#header:has(.access-page)) .p-access-shorts-route-list li:last-child {
    margin-bottom: 0;
}

:where(#header:has(.access-page)) .p-access-shorts-route-list strong {
    color: #111;
    font-weight: bold;
}

/* ===== assets/css/template-access.css ===== */
:where(#header:has(.access-page)) .access-page .p-access-intro {
	margin: 0 0 30px;
	padding: 22px 26px;
	border-left: 5px solid #2CA5AC;
	background: #fff;
	text-align: left;
	line-height: 1.9;
}

:where(#header:has(.access-page)) .p-access-map-frame {border:0}

:where(#header:has(.access-page)) .p-access-map-disabled {height:450px;display:grid;place-content:center;background:#f1f3f4;border:1px solid #ddd;padding:20px;box-sizing:border-box;text-align:center}

:where(#header:has(.access-page)) .p-access-step-svg {display:block;width:100%;height:auto}

:where(#header:has(.access-page)) .p-access-area-image {text-align:center;margin-bottom:20px}

:where(#header:has(.access-page)) .p-access-area-image__img {max-width:100%;height:auto;border-radius:4px}

/* ===== assets/css/template-faq.css ===== */
/* ================================================================
   FAQ専用スタイル (既存のCSSに影響を与えないよう mk-faq- プレフィックスを使用)
   ================================================================ */
    .mk-faq-wrapper {
        background-color: #f5f5f5;
        padding: 3em 0 5em;
        font-family: "Noto Sans JP", "Yu Gothic", "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo";
    }

/* Preserve horizontal clipping without creating an extra scroll container.
   The FAQ search sidebar must follow the viewport on narrow screens too. */
html:has(.mk-faq-wrapper),
body:has(.mk-faq-wrapper) {
        overflow-x: clip;
    }

.mk-faq-container {
        max-width: 1100px;
        margin: 0 auto;
        padding: 0 20px;
    }

/* --- レイアウト構造 --- */
    .mk-faq-content-layout {
        display: flex;
        align-items: flex-start;
        gap: 40px;
        position: relative;
    }

/* --- サイドナビ（検索＋カテゴリの追従コンテナ） --- */
    .mk-faq-sidebar {
        width: 300px;
        flex-shrink: 0;
        position: sticky;
        top: max(90px, calc(var(--rental-anchor-offset) + 12px));
        /* PC版ヘッダーの高さに合わせて追従 */
        z-index: 100;
        align-self: flex-start;
        /* 追従させるために必須 */
    }

/* --- 検索ボックス（サイドバー内に移動） --- */
    .mk-faq-search-box {
        position: relative;
        width: 100%;
        margin-bottom: 20px;
    }

.mk-faq-search-box input {
        width: 100%;
        padding: 12px 15px 12px 45px;
        font-size: 15px;
        border: 2px solid #ddd;
        border-radius: 25px;
        box-sizing: border-box;
        transition: all 0.3s ease;
        background-color: #fff;
        box-shadow: 0 2px 10px rgba(0, 0, 0, 0.03);
    }

.mk-faq-search-box input:focus {
        outline: none;
        border-color: #2DA5AC;
        box-shadow: 0 0 8px rgba(45, 165, 172, 0.2);
    }

.mk-faq-wrapper .mk-faq-search-icon {
        position: absolute;
        left: 15px;
        top: 50%;
        transform: translateY(-50%);
        color: #2DA5AC;
        font-size: 22px;
        font-weight: bold;
    }

/* --- カテゴリナビ --- */
    .mk-faq-category-nav {
        list-style: none;
        padding: 0;
        margin: 0;
        background: #fff;
        border-radius: 12px;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
        overflow: hidden;
    }

.mk-faq-category-nav li {
        border-bottom: 1px solid #f0f0f0;
    }

.mk-faq-category-nav li:last-child {
        border-bottom: none;
    }

.mk-faq-category-nav a {
        display: block;
        padding: 15px 20px;
        color: #444;
        text-decoration: none;
        font-weight: bold;
        font-size: 14px;
        transition: all 0.3s ease;
        border-left: 5px solid transparent;
    }

.mk-faq-category-nav a:hover,
    .mk-faq-category-nav a.active {
        background-color: #f4f9f9;
        color: #2DA5AC;
        border-left: 5px solid #2DA5AC;
    }

/* --- メインコンテンツ --- */
    .mk-faq-main {
        flex-grow: 1;
        min-width: 0;
    }

.mk-faq-category-section {
        margin-bottom: 60px;
    }

.mk-faq-category-title {
        font-size: 22px;
        font-weight: bold;
        color: #333;
        background: #fff;
        padding: 15px 20px;
        border-left: 6px solid #2DA5AC;
        border-radius: 0 8px 8px 0;
        margin-bottom: 25px;
        text-align: left;
        box-shadow: 0 2px 5px rgba(0, 0, 0, 0.03);
    }

/* --- FAQアイテム（アコーディオン） --- */
    .mk-faq-list {
        display: flex;
        flex-direction: column;
        gap: 12px;
    }

.mk-faq-item {
        background: #fff;
        border-radius: 10px;
        border: 1px solid #eee;
        overflow: hidden;
        transition: transform 0.2s ease;
    }

.mk-faq-item:hover {
        box-shadow: 0 3px 10px rgba(0, 0, 0, 0.05);
    }

.mk-faq-question {
        width: 100%;
        text-align: left;
        background: none;
        border: none;
        padding: 20px 25px;
        font-size: 16px;
        font-weight: bold;
        color: #333;
        cursor: pointer;
        display: flex;
        align-items: center;
        gap: 15px;
    }

.mk-faq-q-icon {
        font-family: 'Roboto', sans-serif;
        font-size: 22px;
        color: #2DA5AC;
        font-weight: 900;
    }

.mk-faq-q-text {
        flex-grow: 1;
        line-height: 1.5;
    }

.mk-faq-toggle-icon {
        color: #ccc;
        transition: transform 0.3s ease;
    }

.mk-faq-question.is-open .mk-faq-toggle-icon {
        transform: rotate(180deg);
        color: #2DA5AC;
    }

.mk-faq-answer {
        display: none;
        border-top: 1px solid #f5f5f5;
        background-color: #fafafa;
    }

.mk-faq-answer-inner {
        padding: 25px;
        display: flex;
        gap: 15px;
    }

.mk-faq-a-icon {
        font-family: 'Roboto', sans-serif;
        font-size: 22px;
        color: #c06262;
        font-weight: 900;
    }

.mk-faq-a-text {
        font-size: 15px;
        color: #555;
        line-height: 1.8;
        text-align: left;
        white-space: pre-wrap;
    }

#mk-faq-no-results {
        text-align: center;
        padding: 50px;
        background: #fff;
        border-radius: 12px;
        color: #999;
    }

/* ================================================================
   スマホ対応 (768px以下)
   ================================================================ */
    @media (max-width: 768px) {
.mk-faq-wrapper {
            padding: 1em 0 3em;
        }

.mk-faq-content-layout {
            flex-direction: column;
            gap: 0;
        }

/* スマホ版：検索とカテゴリのコンテナを上部に固定 */
        .mk-faq-sidebar {
            width: 100%;
            position: sticky;
            top: max(55px, calc(var(--rental-anchor-offset) + 12px));
            /* スマホ版のヘッダー高さに合わせて調整 */
            background-color: #f5f5f5;
            /* 下のコンテンツが透けないように背景色指定 */
            padding: 15px 0 10px;
            margin-bottom: 20px;
            z-index: 999;
            border-bottom: 1px solid #e0e0e0;
        }

.mk-faq-search-box {
            margin-bottom: 15px;
        }

/* スマホ版ではカテゴリメニューを非表示にする */
        .mk-faq-category-nav {
            display: none !important;
        }

.mk-faq-category-title {
            font-size: 18px;
            padding: 12px 15px;
            margin-bottom: 15px;
        }

.mk-faq-question {
            padding: 15px;
            font-size: 14px;
        }

.mk-faq-q-icon,
        .mk-faq-a-icon {
            font-size: 18px;
        }

.mk-faq-answer-inner {
            padding: 15px;
        }
}

#mk-faq-no-results{display:none}

.mk-faq-wrapper .mk-faq-search-empty-icon{font-size:48px;margin-bottom:10px;display:block}

/* ===== assets/css/template-food-confirm.css ===== */
.confirm-modal-overlay {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0, 0, 0, 0.6); z-index: 99999;
    display: flex; justify-content: center; align-items: center;
}

:where(.confirm-modal-overlay) .confirm-modal-content {
    background: #fff; width: 90%; max-width: 650px; max-height: 85vh;
    border-radius: 8px; padding: 25px; box-shadow: 0 10px 30px rgba(0,0,0,0.3);
    display: flex; flex-direction: column;
}

:where(.confirm-modal-overlay) .modal-title { font-size: 20px; margin: 0 0 10px; color: #8b0000; border-bottom: 2px solid #8b0000; padding-bottom: 8px; }

:where(.confirm-modal-overlay) .modal-lead { font-size: 13px; color: #666; margin-bottom: 15px; }

:where(.confirm-modal-overlay) .modal-body-scroll { overflow-y: auto; flex-grow: 1; padding-right: 10px; font-size: 14px; line-height: 1.6; }

:where(.confirm-modal-overlay) .modal-item-row { margin-bottom: 12px; border-bottom: 1px dashed #eee; padding-bottom: 8px; }

:where(.confirm-modal-overlay) .modal-item-label { font-weight: bold; color: #333; }

:where(.confirm-modal-overlay) .modal-btn-group { display: flex; gap: 15px; margin-top: 20px; justify-content: center; }

:where(.confirm-modal-overlay) .btn-modal-back { background: #777; color: #fff; border: none; padding: 12px 30px; border-radius: 4px; cursor: pointer; }

:where(.confirm-modal-overlay) .btn-modal-submit { background: #8b0000; color: #fff; border: none; padding: 12px 30px; border-radius: 4px; cursor: pointer; font-weight: bold; }

/* ===== assets/css/template-footer.css ===== */
.footer_dial_info .no_1::after {
	display: inline-block;
	margin: 0 .15em;
	font-size: 28px;
	font-weight: normal;
	font-family: 'Material Symbols Outlined';
	content: '\e5df';
	vertical-align: middle;
}

.footer_dial_info .no_5::before {
	display: inline-block;
	font-size: 28px;
	font-family: 'Material Symbols Outlined';
	content: '\e3fe';
	vertical-align: middle;
}

.footer_dial_info .no_5::after {
	content: none;
}

.footer_dial_info [data-dial-symbol]::before {
	content: attr(data-dial-symbol);
	display: inline-block;
	font-family: 'Material Symbols Outlined';
	font-size: 28px;
	vertical-align: middle;
}

.footer_dial_info [data-dial-number]:not([data-dial-symbol])::before {
	content: attr(data-dial-number);
	display: inline-block;
	box-sizing: border-box;
	min-width: 1.15em;
	padding: 0 .08em;
	border: 1px solid currentColor;
	font: inherit;
	line-height: 1.15;
	text-align: center;
	vertical-align: middle;
	margin-right: .2em;
}

.footer_dial_info [data-dial-number=""]::before {
	content: none;
}

/* ===== assets/css/template-food-time.css ===== */
.rf-food-time{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;max-width:100%}

.rf-food-time select.form-control{box-sizing:border-box;width:90px;min-width:0;max-width:40%;flex:0 1 90px;min-height:44px;padding:8px 10px;border:1px solid #c7cccc;border-radius:6px;background-color:#fff;color:#333;font:inherit;font-size:16px;line-height:1.4;appearance:auto}

.rf-food-time select.form-control:focus{border-color:var(--rental-color-accent);background-color:#fff;outline:2px solid rgba(44,165,172,.2);outline-offset:1px}

@media(min-width:769px),print{
.rf-food-time select.form-control{min-height:42px;padding:10px 12px;border-color:#ccc;border-radius:4px;background-color:#fafafa;font-size:inherit}
}

.rf-food-time-example{display:block;color:#777;font-size:12px;line-height:1.6;margin-top:6px}

/* ===== assets/reservation/style.css ===== */
.reservation-app{--ink:#17342d;--green:#176b58;--mint:#daf0e8;--cream:#f5f1e8;--coral:#ef765f;--line:#d9e2de;--muted:#687873;background:#fafbf9;color:var(--ink);font-family:"Yu Gothic",Meiryo,sans-serif}

@scope (#reservationApp){
*:where(:not(#tinymce,#tinymce *)){box-sizing:border-box}

:scope{margin:0;background:#fafbf9;color:var(--ink);font-family:"Yu Gothic",Meiryo,sans-serif}

button,input,select,textarea{font:inherit}

button{cursor:pointer}

button:disabled{cursor:not-allowed}

a{color:inherit;text-decoration:none}

header{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;background:#fff;border-bottom:1px solid var(--line)}

.brand{display:flex;align-items:center;gap:12px}

.brand>i{display:grid;place-items:center;width:38px;height:38px;border:2px solid var(--green);color:var(--green);font:800 23px Georgia;border-radius:50%}

.brand b{font:800 112px Arial;letter-spacing:.16em}

.brand small{display:block;color:var(--muted);font-size:12px;letter-spacing:.11em}

.tel{font-size:12px;color:var(--muted)}

.tel b{margin-left:10px;color:var(--green);font-size:17px}

.hero{padding:52px 7vw 0;background:linear-gradient(116deg,#eff7f3 0 60%,#e1eee8 60%)}

.hero>small,.heading small{color:var(--coral);font:bold 12px Arial;letter-spacing:.18em}

.hero h1{font-size:clamp(38px,5vw,62px);line-height:1.17;margin:12px 0}

.hero h1 em{font-style:normal;color:var(--green)}

.hero>p{color:var(--muted);font-size:14px;line-height:1.8}

.hero nav{display:flex;max-width:820px;margin-top:38px}

.hero nav button{flex:1;border:0;border-bottom:3px solid transparent;background:#ffffff88;padding:17px;text-align:left;color:#81908b;font-weight:bold}

.hero nav button i{display:block;font-style:normal;font:700 12px Arial}

.hero nav button.on{background:#fff;color:var(--green);border-color:var(--coral)}

main{max-width:1500px;margin:auto;padding:55px 5vw 90px}

.heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:28px}

.heading h2{font-size:clamp(25px,3vw,36px);margin:6px 0 0}

.heading p{color:var(--muted);font-size:12px}

.dateNav{display:grid;grid-template-columns:repeat(3,auto) minmax(220px,1fr) repeat(3,auto);gap:8px;background:#fff;padding:9px;border:1px solid var(--line);border-radius:14px}

.dateNav button{border:0;background:#f4f7f5;color:var(--green);padding:10px;border-radius:8px}

.dateNav label{text-align:center;position:relative}

.dateNav label small{display:block;color:var(--muted)}

.dateNav input{position:absolute;inset:0;opacity:0}

.dateNav strong{font-size:18px}

.legend{display:flex;gap:24px;align-items:center;padding:17px 4px;font-size:12px;color:var(--muted)}

.legend i{font-style:normal;background:#eee;padding:5px 8px;border-radius:5px}

.legend .ok{background:var(--mint);color:var(--green)}

.legend>b{margin-left:auto;background:#fff0e8;color:#9b4c32;padding:8px 12px;border-radius:20px}

.tableWrap{position:relative;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 15px 50px #17342d16}

table{border-collapse:separate;border-spacing:0;min-width:1250px;width:100%;font-size:12px}

th,td{border-right:1px solid #edf0ee;border-bottom:1px solid #edf0ee;padding:0;text-align:center}

thead th{height:45px;background:#f4f7f5;color:var(--muted);font-weight:normal}

thead th:first-child,tbody th{position:sticky;left:0;z-index:3;width:154px;min-width:154px}

thead th:first-child{background:var(--ink);color:#fff;z-index:4}

tbody th{background:#fff;text-align:left;padding:11px 15px}

tbody th b{font-size:14px}

tbody th small{display:block;color:var(--muted)}

td button{border:0;width:100%;height:48px;background:transparent;color:var(--green)}

td button.busy,td button.hold{background:#f5f6f5;color:#97a39f}

td button.selected{background:var(--green);color:#fff}

#loading{position:absolute;inset:0;display:grid;place-items:center;background:#ffffffcc;color:var(--green);font-weight:bold}

#selection{position:sticky;bottom:15px;max-width:720px;margin:24px auto 0;background:var(--ink);color:#fff;border-radius:14px;padding:17px 20px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 14px 40px #0d2c2350}

#selection div{display:flex;gap:15px;align-items:baseline}

#selection small{color:#aac0ba}

#selection strong{font-size:19px}

#selection button,.action button,.submit{border:0;background:var(--coral);color:#fff;padding:15px 20px;border-radius:8px;font-weight:bold}

.equipmentLayout{display:grid;grid-template-columns:240px 1fr;gap:24px}

#bookingTabs{display:flex;flex-direction:column;gap:9px}

#bookingTabs button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:15px;text-align:left}

#bookingTabs button.on{background:var(--mint);border-color:var(--green)}

#bookingTabs b,#bookingTabs span,#bookingTabs small{display:block}

#bookingTabs span,#bookingTabs small{color:var(--muted);font-size:12px}

#bookingTabs .add{text-align:center;color:var(--green);border-style:dashed}

.equipmentPanel{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}

#categories{display:flex;overflow:auto;border-bottom:1px solid var(--line)}

#categories button{white-space:nowrap;border:0;border-bottom:3px solid transparent;background:#fff;padding:18px 15px;color:var(--muted)}

#categories button.on{color:var(--green);border-color:var(--coral);font-weight:bold}

#equipmentGrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:22px}

#equipmentGrid article{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:12px;border:1px solid var(--line);border-radius:10px;padding:15px}

#equipmentGrid article>i{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#eef7f3;color:var(--green)}

#equipmentGrid small{display:block;color:var(--muted)}

.counter{display:flex;border:1px solid var(--line);border-radius:7px;overflow:hidden}

.counter button{border:0;background:#f4f7f5;width:30px;height:30px;color:var(--green)}

.counter strong{width:30px;text-align:center;padding-top:6px}

.action{margin-top:28px;background:var(--ink);color:#fff;border-radius:14px;padding:20px;display:flex;justify-content:flex-end;align-items:center;gap:35px}

.action small{display:block;color:#aac0ba}

.action strong{font-size:27px}

.confirm{display:grid;grid-template-columns:1.2fr .8fr;gap:28px}

.summary{position:relative;display:grid;grid-template-columns:42px 1fr auto;gap:14px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:19px 40px 19px 18px;margin-bottom:10px}

.summary>i{font:700 25px Georgia;color:#b8c6c1}

.summary h3{margin:4px 0}

.summary h3 em{font-style:normal;color:var(--muted);font-size:12px}

.summary>strong{text-align:right}

.summary>strong small{display:block;color:var(--muted)}

.summary>button{position:absolute;right:8px;top:8px;border:0;background:none}

.total{background:var(--ink);color:#fff;border-radius:12px;padding:22px;display:flex;justify-content:space-between}

.total span small{display:block;color:#aac0ba}

.total strong{font-size:28px}

.confirm ul{color:var(--muted);font-size:12px;line-height:1.9}

.confirm form{background:#fff;border:1px solid var(--line);border-radius:14px;padding:27px;box-shadow:0 18px 60px #17342d18}

.confirm form h3{margin-top:0}

.confirm label{display:block;font-size:12px;font-weight:bold;margin-bottom:15px}

.confirm label em{color:var(--coral);font-style:normal}

.confirm input,.confirm select,.confirm textarea{display:block;width:100%;margin-top:7px;border:1px solid var(--line);border-radius:7px;padding:12px;background:#fbfcfb}

.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}

.confirm .agree{display:flex;gap:8px;align-items:center}

.confirm .agree input{width:auto;margin:0}

.submit{width:100%}

#formMessage{text-align:center;color:var(--green)}

footer{display:flex;align-items:center;gap:50px;padding:35px 5vw;background:#e8f1ed;color:var(--muted);font-size:12px}

footer>a{margin-left:auto;color:var(--green);font-size:20px;font-weight:bold}

#toast{position:fixed;top:90px;left:50%;transform:translateX(-50%);z-index:10;background:var(--ink);color:#fff;border-radius:30px;padding:13px 22px;box-shadow:0 10px 30px #0003}

@media(max-width:850px){
.dateNav{grid-template-columns:repeat(3,1fr)}

.dateNav label{grid-column:1/-1;grid-row:1}

.equipmentLayout,.confirm{grid-template-columns:1fr}

#bookingTabs{flex-direction:row;overflow:auto}

#bookingTabs button{min-width:180px}

#equipmentGrid{grid-template-columns:1fr}

.heading{display:block}

.two{grid-template-columns:1fr}
}

@media(max-width:560px){
header{height:64px}

.tel{font-size:0}

.tel b{font-size:12px}

.hero{padding:35px 20px 0}

.hero h1{font-size:36px}

.hero nav button{padding:12px 7px;font-size:12px}

main{padding:40px 14px 65px}

.legend{gap:8px;flex-wrap:wrap}

.legend>b{margin-left:0}

#selection{bottom:7px;z-index:8;align-items:stretch;flex-direction:column;gap:12px}

#selection div{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:baseline;column-gap:10px;row-gap:3px}

#selection div small{grid-column:1/-1}

#selection strong{min-width:0;overflow-wrap:anywhere}

#selection button{width:100%;font-size:12px}

.action{justify-content:space-between;gap:8px}

.summary{grid-template-columns:32px 1fr}

.summary>strong{grid-column:2;text-align:left}

footer{flex-wrap:wrap;gap:18px}

footer>a{margin-left:0}
}
}

/* ===== assets/reservation/enhancements.css ===== */
@scope (#reservationApp){
#loading[hidden], [hidden] { display: none !important; }

.dateArea { position: relative; }

.dateCurrent { text-align:center; min-width:220px; padding:5px 12px; }

.dateCurrent small { display:block; color:var(--muted); font-size:12px; }

.dateCurrent strong { font-size:18px; }

.calendarButton { display:flex; align-items:center; justify-content:center; gap:9px; width:100%; margin-top:9px; padding:13px; border:1px solid var(--green); border-radius:10px; background:#fff; color:var(--green); font-weight:bold; }

.calendarButton span { font-size:20px; }

.calendarPopover { position:absolute; z-index:10000; left:50%; bottom:55px; transform:translateX(-50%); width:min(390px,calc(100vw - 32px)); padding:18px; border:1px solid var(--line); border-radius:16px; background:#fff; box-shadow:0 24px 70px #17342d33; }

.calendarPopover:after { content:""; position:absolute; left:50%; bottom:-9px; width:16px; height:16px; transform:translateX(-50%) rotate(45deg); background:#fff; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }

.calendarHead { display:flex; align-items:center; justify-content:space-between; margin-bottom:13px; }

.calendarHead button { width:34px; height:34px; border:0; border-radius:50%; background:#f1f7f4; color:var(--green); }

.calendarWeek,.calendarGrid { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; text-align:center; }

.calendarWeek { color:var(--muted); font-size:12px; margin-bottom:5px; }

.calendarWeek span:first-child { color:#cf4e43; }

.calendarWeek span:last-child { color:#3978b7; }

.calendarGrid button,.calendarGrid i { display:grid; place-items:center; aspect-ratio:1; border:0; border-radius:50%; background:transparent; font-style:normal; }

.calendarGrid button:hover { background:var(--mint); }

.calendarGrid button.sun,.calendarGrid button.holidayDay { color:#cf4e43; }

.calendarGrid button.sat { color:#3978b7; }

.calendarGrid button.selectedDay { background:var(--green); color:#fff; font-weight:bold; }

.calendarGrid button.today { box-shadow:inset 0 0 0 1px var(--coral); }

.calendarGrid button:disabled { color:#c7cecb; }

.calendarLegend { margin-top:12px; text-align:right; color:var(--muted); font-size:12px; }

.calendarLegend i{display:inline-block;width:8px;height:8px;border-radius:50%;margin:0 4px 0 10px}

.calendarLegend .sun{background:#cf4e43}

.calendarLegend .sat{background:#3978b7}

#schedule thead th.hourHead { background:#eef4f1; color:var(--ink); font-size:12px; font-weight:bold; border-right:1px solid #cbd8d3; }

#schedule .openingBlocked { display:grid; place-items:center; width:100%; height:48px; background:#f5f6f5; color:#97a39f; font-weight:bold; user-select:none; }

.equipmentLayout { gap:22px; align-items:start; }

#bookingTabs { position:relative; z-index:2; }

#bookingTabs .bookingTab { overflow:hidden; border:1px solid var(--line); border-radius:12px; margin:0; background:#fff; }

#bookingTabs .bookingTab.on { position:relative; border-color:var(--green); background:#fff; box-shadow:0 8px 24px #17342d16; }

#bookingTabs .bookingTab.on:before { content:""; position:absolute; z-index:2; left:0; top:12px; bottom:12px; width:4px; border-radius:4px; background:var(--coral); }

#bookingTabs .bookingTabMain { display:block; width:100%; margin:0!important; padding:15px!important; border:0!important; border-radius:0!important; background:#fff!important; color:var(--ink); text-align:left; box-shadow:none!important; }

#bookingTabs .bookingDelete { width:100%; margin:0!important; padding:9px 12px!important; border:0!important; border-top:1px solid var(--line)!important; border-radius:0!important; background:#fff6f1!important; color:#9b4c32; font-size:12px; font-weight:bold; text-align:center; }

#bookingTabs .bookingDelete:hover { background:#ffe9df!important; }

#bookingTabs>.add { border-radius:12px; margin:0; }

.rateBreakdown { display:grid!important; grid-template-columns:1fr; gap:3px; margin-top:7px; color:var(--muted); font-size:12px; font-weight:normal; line-height:1.35; }

.rateBreakdown>span { display:block; }

.rateBreakdown small { display:inline!important; margin-left:5px; color:#8a9893; font-size:12px; }

.equipmentRateTotal { min-width:190px; text-align:right; }

.equipmentRateTotal>strong { display:block; color:var(--green); font-size:23px; }

.equipmentRateTotal>strong small { display:block; }

.equipmentRateTotal .rateBreakdown { justify-items:end; }

.equipmentPanel { border-radius:14px; min-height:420px; box-shadow:0 12px 35px #17342d0c; }

#equipmentRoomSummary { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:20px 24px; background:#f1f8f5; border-bottom:1px solid var(--line); }

#equipmentRoomSummary div small,#equipmentRoomSummary strong small { display:block; color:var(--muted); font-size:12px; }

#equipmentRoomSummary h3 { margin:3px 0 0; font-size:22px; }

#equipmentRoomSummary .editingBadge { display:inline-block; padding:4px 9px; border-radius:20px; background:var(--green); color:#fff; font-size:12px; font-weight:bold; }

.roomBreakdown { display:flex; gap:14px; margin-top:5px; color:var(--muted); font-size:12px; }

.quoteButton { display:flex; align-items:center; justify-content:center; gap:10px; width:100%; margin-top:10px; padding:15px; border:1px solid var(--green); border-radius:8px; background:#fff; color:var(--green); font-weight:bold; }

.quoteButton:hover { background:#edf8f3; }

.quoteButton:disabled { opacity:.55; }

.headingActions { display:flex; align-items:center; gap:16px; }

.headingActions p { margin:0; color:var(--muted); font-size:12px; }

.headingQuoteButton { display:flex; align-items:center; gap:7px; padding:11px 15px; border:1px solid var(--green); border-radius:8px; background:#fff; color:var(--green); font-size:12px; font-weight:bold; white-space:nowrap; }

.headingQuoteButton:hover { background:#edf8f3; }

.quoteDialog { width:min(520px,calc(100vw - 28px)); padding:0; border:0; border-radius:16px; color:var(--ink); box-shadow:0 30px 90px #102b2455; }

.quoteDialog::backdrop { background:#102b2477; backdrop-filter:blur(3px); }

.quoteDialog form { position:relative; padding:28px; }

.quoteDialog form>small { color:var(--coral); font:700 12px Arial; letter-spacing:.16em; }

.quoteDialog h3 { margin:5px 0 8px; font-size:23px; }

.quoteDialog form>p { margin:0 0 20px; color:var(--muted); font-size:12px; line-height:1.7; }

.quoteDialog label { display:block; margin-top:14px; font-size:12px; font-weight:bold; }

.quoteDialog label em { color:var(--muted); font-size:12px; font-style:normal; }

.quoteDialog input { display:block; width:100%; margin-top:7px; padding:12px; border:1px solid var(--line); border-radius:8px; }

.dialogClose { position:absolute; top:14px; right:14px; width:34px; height:34px; border:0; border-radius:50%; background:#f2f5f3; color:var(--muted); font-size:18px; }

.dialogActions { display:flex; justify-content:flex-end; gap:9px; margin-top:22px; }

.dialogActions button { padding:12px 16px; border-radius:8px; font-weight:bold; }

.dialogCancel { border:1px solid var(--line); background:#fff; color:var(--muted); }

.dialogDownload { border:0; background:var(--coral); color:#fff; }

.dialogDownload:disabled { opacity:.55; }

.quoteDialog .dialogMessage { margin:10px 0 0; color:#9b4c32; text-align:right; }

@media(max-width:850px){
.dateCurrent{grid-column:1/-1;grid-row:1}

.headingActions{align-items:flex-start;flex-direction:column;gap:9px;margin-top:12px}

.equipmentLayout{gap:16px}

#bookingTabs .bookingTab{min-width:210px;border-radius:10px;margin-right:0}

#bookingTabs>.add{border-radius:10px;margin-right:0}

.equipmentPanel{border-radius:14px}

#equipmentRoomSummary{padding:16px}

#equipmentRoomSummary h3{font-size:18px}
}

/* 空室時間の開始点と終了候補を見分けやすくする */
#schedule td button { transition:background-color .16s ease,color .16s ease,box-shadow .16s ease; }

#schedule td button.free:hover { background:#edf8f3; }

#schedule td button.rangePreview { background:var(--mint); color:var(--green); font-weight:bold; }

#schedule td button.selectedStart { background:#fff6f1; color:var(--green); font-weight:bold; box-shadow:inset 0 0 0 3px var(--coral); }

#schedule td button.rangeHover { box-shadow:inset 0 0 0 2px var(--green); }

#schedule td button.inCart { background:#fff0e8; color:#9b4c32; font-size:12px; font-weight:bold; line-height:1.1; }

.legend i.cart { min-width:43px; background:#fff0e8; color:#9b4c32; font-size:12px; font-weight:bold; }

/* 設定ファイルで差し替え可能な会議室・備品サムネイル */
#schedule thead th:first-child,#schedule tbody th { width:218px; min-width:218px; }

.roomIdentity { display:flex; align-items:center; gap:10px; }

.roomIdentity>img { width:58px; height:40px; flex:none; border-radius:7px; object-fit:cover; background:#edf3f0; }

.roomIdentity>span { min-width:0; }

.roomIdentity b,.roomIdentity small { display:block; }

.tabRoom { display:flex!important; align-items:center; gap:9px; margin-bottom:7px; }

.tabRoom>img { width:50px; height:36px; flex:none; border-radius:7px; object-fit:cover; background:#edf3f0; }

.tabRoom>span { min-width:0; }

.equipmentRoom { display:flex; align-items:center; gap:13px; }

.equipmentRoom>img { width:82px; height:56px; flex:none; border-radius:9px; object-fit:cover; background:#e4efea; }

.equipmentRoom small { display:block; color:var(--muted); font-size:12px; }

#equipmentGrid article { grid-template-columns:82px 1fr auto; }

#equipmentGrid .equipmentThumb { width:82px; height:58px; border-radius:9px; object-fit:cover; background:#edf3f0; }

#equipmentGrid .roomOnly { display:inline-block; margin:4px 0 2px; padding:2px 6px; border-radius:10px; background:#fff0e8; color:#9b4c32; font-size:12px; font-weight:bold; }

.equipmentCheck { display:flex; align-items:center; justify-content:center; gap:8px; min-width:112px; padding:11px 13px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--ink); font-size:12px; font-weight:bold; cursor:pointer; }

.equipmentCheck:has(input:checked) { border-color:var(--green); background:#edf8f3; color:var(--green); }

.equipmentCheck input { width:17px; height:17px; accent-color:var(--green); }

.equipmentSelect { width:160px; max-width:100%; padding:11px 30px 11px 11px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--ink); font-size:12px; }

.equipmentSelectWrap { width:min(100%,360px); }

.equipmentSelectWrap .equipmentSelect { width:100%; }

.equipmentSelectWrap p { margin:7px 0 0; padding:8px 10px; border-radius:6px; background:#f1f7f4; color:#52615b; font-size:12px; line-height:1.55; }

#equipmentGrid article.wideEquipment { grid-column:1/-1; grid-template-columns:82px minmax(180px,.7fr) minmax(420px,1.3fr); align-items:start; }

#equipmentGrid article.wideEquipment>div:nth-child(2) { min-width:0; padding-top:7px; }

#equipmentGrid article.wideEquipment .equipmentSelectWrap { width:100%; }

#equipmentGrid article.wideEquipment .equipmentSelect { font-size:13px; }

.singleCheckGroup { display:grid; grid-template-columns:1fr 1fr; gap:9px; width:100%; }

.singleCheckOption { display:grid; grid-template-columns:20px 1fr; gap:8px; min-width:0; padding:11px 12px; border:1px solid var(--line); border-radius:9px; background:#fff; cursor:pointer; }

.singleCheckOption:has(input:checked) { border-color:var(--green); background:#edf8f3; box-shadow:inset 3px 0 0 var(--green); }

.singleCheckOption input { width:17px; height:17px; margin-top:2px; accent-color:var(--green); }

.singleCheckOption span,.singleCheckOption b,.singleCheckOption small { display:block; min-width:0; }

.singleCheckOption b { font-size:12px; line-height:1.5; }

#equipmentGrid .singleCheckOption small { margin-top:4px; color:#60716a; font-size:12px; line-height:1.5; }

#equipmentGrid .counter button:disabled { opacity:.35; cursor:not-allowed; }

@media(max-width:1050px){
#equipmentGrid article.wideEquipment{grid-template-columns:82px 1fr}

#equipmentGrid article.wideEquipment .equipmentSelectWrap,#equipmentGrid article.wideEquipment .singleCheckGroup{grid-column:2}
}

@media(max-width:560px){
#schedule thead th:first-child,#schedule tbody th{width:118px;min-width:118px}

#schedule tbody th{padding:9px 8px}

.roomIdentity{gap:0}

.roomIdentity>img{display:none}

.roomIdentity b{font-size:12px}

.roomIdentity small{font-size:12px}

#equipmentGrid article{grid-template-columns:64px 1fr auto;padding:11px;gap:9px}

#equipmentGrid .equipmentThumb{width:64px;height:48px}

.equipmentRoom>img{width:64px;height:48px}
}

@media(max-width:560px){
#equipmentGrid article.wideEquipment{grid-template-columns:64px minmax(0,1fr)}

#equipmentGrid article.wideEquipment .equipmentSelectWrap{grid-column:1/-1}

.equipmentSelectWrap p{font-size:12px}
}

@media(max-width:700px){
#equipmentGrid article.wideEquipment .singleCheckGroup{grid-column:1/-1;grid-template-columns:1fr}
}

/* 仮予約済み入力 */
.provisionalEntry { margin-top:28px; }

.provisionalToggle { display:flex; align-items:center; justify-content:space-between; width:100%; padding:17px 20px; border:1px solid var(--line); border-radius:12px; background:#fff; color:var(--ink); text-align:left; box-shadow:0 10px 32px #17342d0d; }

.provisionalToggle>span { display:grid; grid-template-columns:34px auto; align-items:center; column-gap:11px; }

.provisionalToggle i { grid-row:1/3; display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:#edf7f3; color:var(--green); font-style:normal; font-weight:bold; }

.provisionalToggle b,.provisionalToggle small { display:block; }

.provisionalToggle small { margin-top:2px; color:var(--muted); font-size:12px; font-weight:normal; }

.provisionalToggle em { color:var(--green); font-size:24px; font-style:normal; transition:transform .2s ease; }

.provisionalToggle[aria-expanded="true"] { border-color:var(--green); border-radius:12px 12px 0 0; }

.provisionalToggle[aria-expanded="true"] em { transform:rotate(45deg); }

.provisionalPanel { padding:24px; border:1px solid var(--green); border-top:0; border-radius:0 0 14px 14px; background:#f7fbf9; }

.provisionalHead { display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:20px; }

.provisionalHead small { color:var(--coral); font:700 12px Arial; letter-spacing:.14em; }

.provisionalHead h3 { margin:4px 0 0; font-size:20px; }

.provisionalHead p { margin:0; color:var(--muted); font-size:12px; }

.provisionalFields { display:grid; grid-template-columns:1.2fr 1.3fr 1fr 1fr; gap:12px; }

.provisionalFields label { color:var(--muted); font-size:12px; font-weight:bold; }

.provisionalFields input,.provisionalFields select { display:block; width:100%; margin-top:7px; padding:12px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--ink); }

.provisionalAction { display:flex; align-items:center; justify-content:flex-end; gap:28px; margin-top:20px; padding-top:18px; border-top:1px solid var(--line); }

.provisionalAction>div { min-width:230px; text-align:right; }

.provisionalAction small,.provisionalAction span { display:block; color:var(--muted); font-size:12px; }

.provisionalAction strong { display:block; color:var(--green); font-size:24px; }

.provisionalAction strong .rateBreakdown { margin-top:5px; font-size:12px; }

.provisionalAction span { min-height:14px; color:#9b4c32; }

.provisionalAction button { border:0; border-radius:8px; background:var(--coral); color:#fff; padding:14px 22px; font-weight:bold; }

.provisionalAction button:disabled { opacity:.45; }

@media(max-width:850px){
.provisionalFields{grid-template-columns:1fr 1fr}

.provisionalHead{display:block}

.provisionalHead p{margin-top:6px}
}

@media(max-width:560px){
.provisionalPanel{padding:17px}

.provisionalFields{grid-template-columns:1fr}

.provisionalAction{align-items:stretch;flex-direction:column;gap:12px}

.provisionalAction>div{text-align:left}

.provisionalAction button{width:100%}
}

/* 会議室ごとの利用情報 */
.roomDetailsLayout { display:grid; grid-template-columns:260px minmax(0,1fr); gap:22px; align-items:start; }

#detailBookingTabs { position:relative; z-index:2; display:flex; flex-direction:column; }

#detailBookingTabs .detailBookingTab { overflow:hidden; border:1px solid var(--line); border-radius:12px; margin:0 0 10px; background:#f7faf9; }

#detailBookingTabs .detailBookingTab.on { position:relative; border-color:var(--green); background:#fff; box-shadow:0 8px 24px #17342d16; }

#detailBookingTabs .detailBookingTab.on:before { content:""; position:absolute; z-index:2; left:0; top:12px; bottom:12px; width:4px; border-radius:4px; background:var(--coral); }

#detailBookingTabs .detailBookingTabMain { display:block; width:100%; padding:16px; border:0; background:transparent; color:var(--ink); text-align:left; }

#detailBookingTabs .detailBookingTabMain>span,#detailBookingTabs .detailBookingTabMain>strong { display:block; }

#detailBookingTabs .detailBookingTabMain>span:not(.tabRoom) { color:var(--muted); font-size:12px; }

#detailBookingTabs .detailBookingTabMain>strong { margin-top:7px; color:#a45a40; font-size:12px; }

#detailBookingTabs .detailBookingTab.complete .detailBookingTabMain>strong { color:var(--green); }

#detailBookingTabs .detailBookingDelete { width:100%; padding:9px 12px; border:0; border-top:1px solid var(--line); background:#fff6f1; color:#9b4c32; font-size:12px; font-weight:bold; text-align:center; }

#detailBookingTabs .detailBookingDelete:hover { background:#ffe9df; }

.detailAddRoom { width:100%; padding:14px; border:1px dashed var(--green); border-radius:10px; background:#fff; color:var(--green); font-size:12px; font-weight:bold; }

.detailAddRoom:hover { background:#edf8f3; }

.roomDetailsPanel { overflow:hidden; min-height:560px; border:1px solid var(--green); border-radius:14px; background:#fff; box-shadow:0 12px 35px #17342d0c; }

.detailHeader { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:20px 24px; border-bottom:1px solid var(--line); background:#f1f8f5; }

.detailHeader h3 { margin:3px 0 0; font-size:22px; }

.detailHeader>strong { color:var(--green); font-size:23px; text-align:right; }

.detailHeader>strong small { display:block; color:var(--muted); font-size:12px; }

.detailSection { padding:24px; border-bottom:1px solid var(--line); }

.detailSection h4 { margin:0 0 16px; font-size:18px; }

.detailSection h4 em,.detailField em { display:inline-block; margin-left:6px; padding:2px 6px; border-radius:4px; background:#fff0e8; color:#a04b31; font-size:12px; font-style:normal; vertical-align:middle; }

.detailField { display:block; color:var(--muted); font-size:12px; font-weight:bold; }

.detailField input,.detailField select,.detailField textarea { display:block; width:100%; margin-top:7px; padding:13px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--ink); font:inherit; font-size:14px; font-weight:normal; }

.purposeOther { margin-top:13px; }

.peopleRange { display:flex; align-items:center; gap:12px; }

.peopleRange label { display:flex; align-items:center; gap:7px; font-weight:bold; }

.peopleRange input { width:120px; padding:13px; border:1px solid var(--line); border-radius:8px; font-size:16px; }

.detailHint,.detailNotice { margin:9px 0 0; color:var(--muted); font-size:12px; line-height:1.8; }

.foodGroups { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }

.foodGroups fieldset { min-width:0; margin:0; padding:15px; border:1px solid var(--line); border-radius:10px; }

.foodGroups legend { padding:0 5px; color:var(--green); font-size:12px; font-weight:bold; }

.foodGroups label { display:grid; grid-template-columns:20px 1fr; margin:7px 0 12px; font-size:12px; font-weight:bold; line-height:1.45; }

.foodGroups label input { margin-top:3px; }

.foodGroups label small { grid-column:2; color:var(--muted); font-size:12px; font-weight:normal; }

.choiceGrid { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }

.choiceCard { display:flex; align-items:center; gap:10px; padding:13px 14px; border:1px solid var(--line); border-radius:8px; font-size:12px; font-weight:bold; }

.choiceCard:has(input:checked) { border-color:var(--green); background:#edf8f3; color:var(--green); }

.paymentDate { max-width:360px; margin-top:18px; }

.weekdayOnlyNote { display:block; margin-top:7px; color:#9b4c32; font-size:12px; font-weight:normal; }

.baggageSection>p { font-size:12px; }

.baggageCheck { display:flex; align-items:center; gap:10px; margin:14px 0; padding:14px; border:1px solid #efc6b4; border-radius:9px; background:#fff6f1; color:#8d432b; font-size:13px; font-weight:bold; }

.baggageNotice { margin-bottom:18px; padding:16px; border-radius:9px; background:#f7f8f7; color:#55605c; font-size:12px; line-height:1.75; }

.baggageNotice p { margin:8px 0 0; }

.detailAlert { margin:0; padding:14px 24px; background:#fff6f1; color:#9b4c32; font-size:12px; font-weight:bold; }

.detailAlert.ok { background:#edf8f3; color:var(--green); }

.summaryDetail { display:block; margin-top:7px; color:var(--muted); font-size:12px; line-height:1.55; }

.summary .rateBreakdown { grid-template-columns:auto auto; gap:4px 12px; margin-top:8px; }

.summaryEquipment { margin-top:13px; padding:12px; border-radius:9px; background:#f5f8f6; }

.summaryEquipment>b { display:block; margin-bottom:7px; color:var(--green); font-size:12px; }

.summaryEquipment ul { margin:0; padding:0; list-style:none; }

.summaryEquipment li { display:flex; justify-content:space-between; gap:14px; padding:5px 0; border-bottom:1px solid #e1e8e4; color:var(--muted); font-size:12px; }

.summaryEquipment li strong { flex:none; color:var(--ink); }

.summaryEquipment li strong small { margin-left:3px; color:var(--muted); font-size:12px; }

.summaryEquipment dl { margin:9px 0 0; }

.summaryEquipment dl>div { display:flex; justify-content:space-between; gap:14px; padding:3px 0; font-size:12px; }

.summaryEquipment dt,.summaryEquipment dd { margin:0; }

.summaryEquipment dd { font-weight:bold; }

.summaryEquipment .summaryEquipmentTotal { margin-top:5px; padding-top:8px; border-top:1px solid var(--line); color:var(--green); font-size:12px; font-weight:bold; }

.confirm,.confirm > div,.confirm form,#summary,.summary,.summary > div,.summaryDetail,.summaryEquipment,.summaryEquipment li,.summaryEquipment dl,.confirm form h3,.confirm form label,.confirm form input,.confirm form select,.confirm form textarea { text-align:left !important; }

.confirm form em.optional { color:var(--muted); }

.reservationComplete { max-width:900px; margin:0 auto; padding:80px 5vw 110px; text-align:center; }

.reservationCompleteCard { padding:52px 44px; border:1px solid var(--line); border-radius:18px; background:#fff; box-shadow:0 18px 55px #17342d14; text-align:center; }

.reservationCompleteCard>small { color:var(--coral); font:700 12px Arial,sans-serif; letter-spacing:.18em; }

.reservationCompleteCard h2 { margin:10px 0 14px; color:var(--ink); font-size:30px; }

.reservationCompleteCard>p { margin:0 auto; max-width:620px; color:var(--muted); line-height:1.8; }

.reservationReceipt { max-width:520px; margin:30px auto 12px; padding:20px; border-radius:12px; background:#edf8f3; color:var(--green); }

.reservationReceipt small,.reservationReceipt strong { display:block; }

.reservationReceipt small { margin-bottom:6px; font-size:12px; font-weight:bold; }

.reservationReceipt strong { font-size:28px; letter-spacing:.06em; }

.reservationCompleteCard .reservationCompleteNote { font-size:12px; }

#restartReservation { margin-top:30px; padding:14px 22px; border:0; border-radius:8px; background:var(--green); color:#fff; font-weight:bold; }

@media(max-width:560px){
.reservationComplete{padding:45px 18px 70px}

.reservationCompleteCard{padding:35px 20px}

.reservationCompleteCard h2{font-size:24px}

.reservationReceipt strong{font-size:20px;letter-spacing:.02em}
}

.confirm form .inputHelp { display:block; margin-top:6px; color:var(--muted); font-size:12px; font-weight:normal; }

.confirm form .inputHelp.ok { color:var(--green); }

.confirm form .inputHelp.error { color:#9b4c32; }

.customerSurvey { margin:4px 0 18px; padding:16px; border:1px solid var(--line); border-radius:10px; }

.customerSurvey legend { padding:0 6px; color:var(--ink); font-size:12px; font-weight:bold; }

.customerSurvey legend em { color:var(--coral); font-style:normal; }

.surveyChoices { display:grid; gap:8px; }

.confirm form .surveyChoices label { display:flex; align-items:flex-start; gap:8px; margin:0; padding:10px 12px; border:1px solid var(--line); border-radius:8px; background:#fbfcfb; font-weight:normal; }

.confirm form .surveyChoices input { flex:0 0 auto; width:auto; margin:2px 0 0; }

.firstUseDetails { margin-top:14px; padding-top:14px; border-top:1px solid var(--line); }

.noticeAgree { align-items:flex-start!important; margin-top:-4px; padding:11px; border-radius:8px; background:#f5f8f6; }

.noticeAgree a { color:var(--green); font-weight:bold; text-decoration:underline; }

.noticeAgree small { display:block; margin-top:4px; color:var(--muted); font-size:12px; font-weight:normal; line-height:1.6; }

.summary { grid-template-columns:42px minmax(0,1fr); padding:19px 18px 0; overflow:hidden; }

.summary .summaryDelete { position:static; grid-column:1/-1; justify-self:stretch; width:calc(100% + 36px); margin:10px -18px 0; padding:9px 12px; border:0; border-top:1px solid var(--line); background:#fff6f1; color:#9b4c32; font-size:12px; font-weight:bold; text-align:center !important; text-decoration:none; }

@media(max-width:850px){
.roomDetailsLayout{grid-template-columns:1fr;gap:16px}

#detailBookingTabs{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}

#detailBookingTabs .detailBookingTab,#detailBookingTabs .detailBookingTab.on{margin:0;border-radius:10px}

.roomDetailsPanel{border-radius:14px}

.foodGroups{grid-template-columns:1fr}

.detailHeader{padding:16px}
}

@media(max-width:560px){
#detailBookingTabs{grid-template-columns:1fr}

.detailSection{padding:18px}

.detailHeader{align-items:flex-start;flex-direction:column}

.choiceGrid{grid-template-columns:1fr}

.peopleRange{gap:7px}

.peopleRange input{width:90px}

.detailHeader>strong{text-align:left}

.equipmentRateTotal{text-align:left}

.equipmentRateTotal .rateBreakdown{justify-items:start}

.summary .rateBreakdown{grid-template-columns:1fr}
}

/* WordPressテーマ側の中央寄せを予約フォーム内で打ち消す */
.heading,
.heading>div,
.heading small,
.heading h2,
.heading p,
#equipmentGrid article,
#equipmentGrid article>div,
#equipmentGrid article b,
#equipmentGrid article small,
#equipmentGrid .singleCheckOption span,
.roomDetailsPanel,
.detailHeader,
.detailSection,
.detailField,
.detailNotice,
.foodGroups fieldset,
.foodGroups legend,
.choiceGrid,
.baggageSection {
  text-align:left !important;
}

.roomDetailLink { display:inline-block; color:var(--green); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }

.roomDetailLink:hover { color:var(--coral); }

#schedule thead th { position:sticky; top:0; z-index:5; }

#schedule thead th:first-child { z-index:7; }

@media(max-width:700px){
.tableWrap { max-height:68svh; overflow:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; }

#schedule thead th { top:0; box-shadow:0 1px 0 #cbd8d3; }

#schedule tbody th { z-index:4; }

#schedule thead th:first-child { z-index:8; }
}
}

/* ===== assets/reservation/check.css ===== */
@scope (#reservationApp.availability-check-app) {
:scope.availability-check-app { text-align: left; }

.availabilityHero { padding-bottom: 44px; }

.availabilityHero h1,
  .availabilityHero p,
  .checkMain,
  .checkMain .heading,
  .checkMain .heading h2,
  .checkMain .heading p { text-align: left !important; }

.checkMain { padding-top: 48px; }

.availabilityLegend { justify-content: flex-start; }

.availabilityLegend > span { display:inline-flex; align-items:center; gap:3px; white-space:nowrap; }

.availabilityMark {
    display: grid;
    place-items: center;
    width: 100%;
    height: 48px;
    color: var(--green);
    font-weight: bold;
    user-select: none;
  }

.availabilityMark.busy,
  .availabilityMark.hold { background: #f5f6f5; color: #97a39f; }

.availabilityMark.inquiry {
    border: 0;
    background: #fff5ef;
    color: #b65d3e;
    text-decoration: none;
    cursor: pointer;
    transition: background-color .15s ease, color .15s ease;
  }

.availabilityMark.inquiry img { width: 16px; height: 16px; opacity: .72; }

.availabilityMark.inquiry:hover,
  .availabilityMark.inquiry:focus-visible { background: #ffe7da; color: #8f3f28; }

.availabilityMark.inquiry:hover img,
  .availabilityMark.inquiry:focus-visible img { opacity: 1; }

.availabilityLegend i.inquiry { display:grid; place-items:center; background: #fff5ef; color: #b65d3e; }

.availabilityLegend i.inquiry img { width: 16px; height: 16px; opacity: .72;  margin: 4px 0;}

.dateNav button:disabled,
  .calendarHead button:disabled { opacity: .35; cursor: not-allowed; }

.availabilityInquiryDialog { width:min(680px,calc(100% - 28px)); max-width:none; padding:0; border:0; border-radius:18px; background:transparent; color:var(--ink); box-shadow:0 24px 80px #102d2655; }

.availabilityInquiryDialog::backdrop { background:#102d267a; backdrop-filter:blur(3px); }

.availabilityInquiryPanel { position:relative; padding:36px; border-radius:18px; background:#fff; text-align:center; }

.availabilityInquiryClose { position:absolute; top:13px; right:13px; display:grid; place-items:center; width:38px; height:38px; padding:0; border:1px solid var(--line); border-radius:50%; background:#fff; color:var(--muted); font-size:23px; line-height:1; cursor:pointer; }

.availabilityInquiryIcon { width:42px; height:42px; margin-bottom:10px; opacity:.78; }

.availabilityInquiryPanel h2 { margin:0; font-size:24px; line-height:1.55; text-align:center!important; }

.availabilityInquiryChoices { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:26px; }

.availabilityInquiryChoices section { min-width:0; padding:23px 20px; border:1px solid var(--line); border-radius:13px; background:#fafcfb; text-align:left; }

.availabilityInquiryChoices small { display:block; margin-bottom:10px; color:var(--muted); font-size:12px; font-weight:bold; }

.availabilityInquiryPhone { display:block; color:var(--green); font-size:25px; font-weight:bold; letter-spacing:.02em; text-decoration:none; }

.availabilityInquiryMail { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:45px; padding:12px 15px; border-radius:8px; background:var(--coral); color:#fff; font-size:15px; font-weight:bold; text-decoration:none; }

.availabilityInquiryChoices p { margin:14px 0 0; color:var(--muted); font-size:12px; line-height:1.65; }

.availabilityInquiryChoices p strong,
  .availabilityInquiryChoices p span { display:block; }

.csvUpdatedAt { margin: 6px 4px 0; color: #99a5a1; font-size: 10px; line-height: 1.4; text-align: right; }

.availabilityNote { margin: 14px 3px 0; color: var(--muted); font-size: 11px; text-align: left; }

#loading { min-height: 150px; }

@media (max-width: 850px) {
.availabilityHero { padding-bottom: 34px; }

.checkMain { padding-top: 38px; }
}

@media (max-width: 560px) {
.availabilityHero { padding-bottom: 30px; }

.availabilityHero h1 { font-size: 34px; }

.checkMain { padding-top: 32px; }

.availabilityMark { height: 46px; }

.availabilityInquiryPanel { padding:32px 18px 20px; }

.availabilityInquiryPanel h2 { padding:0 20px; font-size:20px; }

.availabilityInquiryChoices { grid-template-columns:1fr; gap:10px; margin-top:20px; }

.availabilityInquiryChoices section { padding:18px; }

.availabilityInquiryPhone { font-size:23px; }
}
}

/* page-plan-list.php presentation, scoped to its existing page wrapper. */
:where(body:has(.plan-list-wrap)) .plan-list-wrap {
font-family: "Noto Sans JP", "Yu Gothic", "游ゴシック", YuGothic, sans-serif;
    color: #333;
    background-color: #f9f9f9;
    padding-bottom: 80px;
}

:where(body:has(.plan-list-wrap)) .plan-list-hero {
position: relative;
    background-image: url('img/main01.jpg');
    background-size: cover;
    background-position: center;
    padding: 80px 20px;
    text-align: center;
    color: #fff;
}

:where(body:has(.plan-list-wrap)) .plan-list-hero::before {
content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(10, 30, 50, 0.82);
}

:where(body:has(.plan-list-wrap)) .plan-list-hero-inner {
position: relative;
    z-index: 1;
    max-width: 1000px;
    margin: 0 auto;
}

:where(body:has(.plan-list-wrap)) .plan-list-hero h1 {
font-size: clamp(1.8rem, 3.5vw, 2.5rem);
    font-weight: 700;
    margin-bottom: 15px;
    letter-spacing: 0.05em;
}

:where(body:has(.plan-list-wrap)) .plan-list-hero p {
font-size: clamp(0.95rem, 1.8vw, 1.15rem);
    color: #D5EDEE;
    line-height: 1.7;
}

:where(body:has(.plan-list-wrap)) .plan-sec {
padding: 60px 20px;
}

:where(body:has(.plan-list-wrap)) .plan-sec-inner {
max-width: 1080px;
    margin: 0 auto;
}

:where(body:has(.plan-list-wrap)) .plan-sec-title {
text-align: center;
    font-size: 1.8rem;
    font-weight: 700;
    color: #0a467d;
    margin-bottom: 40px;
    position: relative;
}

:where(body:has(.plan-list-wrap)) .plan-sec-title::after {
content: '';
    display: block;
    width: 50px;
    height: 3px;
    background-color: #2CA5AC;
    margin: 15px auto 0;
}

:where(body:has(.plan-list-wrap)) .plan-sec-title span {
display: block;
    font-size: 0.85rem;
    color: #2CA5AC;
    letter-spacing: 0.15em;
    margin-bottom: 8px;
    font-family: 'Roboto', sans-serif;
}

:where(body:has(.plan-list-wrap)) .summary-table-wrap {
overflow-x: auto;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.05);
    margin-bottom: 50px;
}

:where(body:has(.plan-list-wrap)) .summary-table {
width: 100%;
    min-width: 900px;
    border-collapse: collapse;
    font-size: 0.95rem;
}

:where(body:has(.plan-list-wrap)) .summary-table th {
background-color: #2CA5AC;
    color: #fff;
    padding: 14px 10px;
    text-align: center;
    font-weight: 700;
}

:where(body:has(.plan-list-wrap)) .summary-table td {
padding: 14px 10px;
    border-bottom: 1px solid #eee;
    text-align: center;
    vertical-align: middle;
}

:where(body:has(.plan-list-wrap)) .summary-table td.table-plan-name {
text-align: left;
    font-weight: 700;
}

:where(body:has(.plan-list-wrap)) .summary-table td.table-plan-name a {
color: #0a467d;
    text-decoration: underline;
}

:where(body:has(.plan-list-wrap)) .summary-table td.table-plan-name a:hover {
color: #2CA5AC;
}

:where(body:has(.plan-list-wrap)) .summary-table tr:hover {
background-color: #f0f7f7;
}

:where(body:has(.plan-list-wrap)) .price-discount {
color: #cc363f;
    font-weight: 700;
}

:where(body:has(.plan-list-wrap)) .price-original {
text-decoration: line-through;
    color: #888;
    font-size: 0.85em;
    display: block;
}

:where(body:has(.plan-list-wrap)) .plan-controls {
display: none; /* UI上は非表示にし、JavaScriptの自動ソート処理のみ保持 */
}

:where(body:has(.plan-list-wrap)) .card-grid {
display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 30px;
    margin-bottom: 50px;
}

:where(body:has(.plan-list-wrap)) .plan-card {
background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 5px 20px rgba(0,0,0,0.06);
    border: 1px solid #e5e5e5;
    display: flex;
    flex-direction: column;
    transition: transform 0.3s, box-shadow 0.3s;
}

:where(body:has(.plan-list-wrap)) .plan-card:hover {
transform: translateY(-5px);
    box-shadow: 0 10px 25px rgba(0,0,0,0.12);
}

:where(body:has(.plan-list-wrap)) .plan-card-img {
height: 180px;
    background-color: #eee;
}

:where(body:has(.plan-list-wrap)) .plan-card-img img {
width: 100%;
    height: 100%;
    object-fit: cover;
}

:where(body:has(.plan-list-wrap)) .plan-card-body {
padding: 20px;
    flex: 1;
    display: flex;
    flex-direction: column;
    text-align: left;
}

:where(body:has(.plan-list-wrap)) .plan-card-title {
font-size: 1.25rem;
    font-weight: 700;
    color: #0a467d;
    margin-bottom: 12px;
    line-height: 1.4;
    text-align: left;
}

:where(body:has(.plan-list-wrap)) .plan-card-specs {
list-style: none;
    padding: 12px;
    margin: 0 0 15px 0;
    font-size: 0.88rem;
    color: #444;
    background: #f8f9fa;
    border-radius: 6px;
    text-align: left;
}

:where(body:has(.plan-list-wrap)) .plan-card-specs li {
margin-bottom: 6px;
    border-bottom: 1px dashed #e0e0e0;
    padding-bottom: 4px;
    line-height: 1.5;
}

:where(body:has(.plan-list-wrap)) .plan-card-specs li:last-child {
margin-bottom: 0;
    border-bottom: none;
    padding-bottom: 0;
}

:where(body:has(.plan-list-wrap)) .plan-card-desc {
font-size: 0.88rem;
    color: #666;
    line-height: 1.6;
    margin-bottom: 20px;
    flex: 1;
    text-align: left;
}

:where(body:has(.plan-list-wrap)) .plan-card-prices {
text-align: left;
    margin-bottom: 15px;
    background: #fff5f5;
    padding: 10px;
    border-radius: 6px;
    border: 1px solid #f2d6d6;
}

:where(body:has(.plan-list-wrap)) .price-row {
font-size: 1.05rem;
    font-weight: 700;
    color: #cc363f;
    line-height: 1.5;
}

:where(body:has(.plan-list-wrap)) .plan-card-btn {
display: block;
    text-align: center;
    background-color: #2CA5AC;
    color: #fff !important;
    font-weight: 700;
    padding: 12px;
    border-radius: 6px;
    text-decoration: none;
    transition: background-color 0.2s;
}

:where(body:has(.plan-list-wrap)) .plan-card-btn:hover {
background-color: #1e878d;
}

:where(body:has(.plan-list-wrap)) .faq-box {
background: #fff;
    border-radius: 10px;
    padding: 30px;
    box-shadow: 0 3px 15px rgba(0,0,0,0.04);
}

:where(body:has(.plan-list-wrap)) .faq-item {
margin-bottom: 20px;
    border-bottom: 1px solid #eee;
    padding-bottom: 20px;
}

:where(body:has(.plan-list-wrap)) .faq-item:last-child {
border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

:where(body:has(.plan-list-wrap)) .faq-q {
font-weight: 700;
    font-size: 1.1rem;
    color: #0a467d;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
}

:where(body:has(.plan-list-wrap)) .faq-q::before {
content: 'Q';
    background: #0a467d;
    color: #fff;
    font-size: 0.85rem;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-right: 10px;
    flex-shrink: 0;
}

:where(body:has(.plan-list-wrap)) .faq-a {
font-size: 0.95rem;
    color: #555;
    line-height: 1.7;
    padding-left: 34px;
}

@media screen and (max-width: 768px) {
:where(body:has(.plan-list-wrap)) .plan-sec {
padding: 40px 15px;
}

:where(body:has(.plan-list-wrap)) .card-grid {
grid-template-columns: 1fr;
}
}

/* page-premium-plan.php presentation, scoped to its existing page wrapper. */
:where(body:has(.premium-lp-wrap)) .premium-lp-wrap {
font-family: "Noto Sans JP", "Yu Gothic", "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
    color: #333;
    background-color: #f9f9f9;
    padding-bottom: 50px;
}

:where(body:has(.premium-lp-wrap)) .premium-hero {
position: relative;
    background-image: url('img/premium-header.jpg');
    background-size: cover;
    background-position: center;
    padding: 120px 20px;
    text-align: center;
    color: #fff;
}

:where(body:has(.premium-lp-wrap)) .premium-hero::before {
content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(10, 30, 50, 0.75);
}

:where(body:has(.premium-lp-wrap)) .premium-hero-content {
position: relative;
    z-index: 1;
    max-width: 1000px;
    margin: 0 auto;
}

:where(body:has(.premium-lp-wrap)) .premium-hero h1 {
font-size: clamp(1.8rem, 4vw, 2.8rem);
    font-weight: 700;
    letter-spacing: 0.1em;
    margin-bottom: 20px;
    line-height: 1.4;
}

:where(body:has(.premium-lp-wrap)) .premium-hero-subtitle {
font-size: clamp(1rem, 2vw, 1.4rem);
    font-weight: 500;
    color: #D5EDEE;
    margin-bottom: 30px;
}

:where(body:has(.premium-lp-wrap)) .premium-section {
padding: 80px 20px;
}

:where(body:has(.premium-lp-wrap)) .premium-section-inner {
max-width: 1000px;
    margin: 0 auto;
}

:where(body:has(.premium-lp-wrap)) .premium-sec-title {
text-align: center;
    font-size: 2rem;
    font-weight: 700;
    color: #0a467d;
    margin-bottom: 50px;
    position: relative;
}

:where(body:has(.premium-lp-wrap)) .premium-sec-title::after {
content: '';
    display: block;
    width: 60px;
    height: 3px;
    background-color: #2CA5AC;
    margin: 20px auto 0;
}

:where(body:has(.premium-lp-wrap)) .premium-sec-title span {
display: block;
    font-size: 0.9rem;
    color: #2CA5AC;
    letter-spacing: 0.15em;
    margin-bottom: 10px;
    font-family: 'Roboto', sans-serif;
}

:where(body:has(.premium-lp-wrap)) .secondary-button {
display: inline-block;
    background-color: #fff;
    color: #2CA5AC !important;
    font-size: 1.1rem;
    font-weight: 700;
    padding: 12px 35px;
    border-radius: 50px;
    text-decoration: none;
    border: 2px solid #2CA5AC;
    transition: all 0.3s ease;
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

:where(body:has(.premium-lp-wrap)) .secondary-button:hover {
background-color: #2CA5AC;
    color: #fff !important;
    transform: translateY(-2px);
    box-shadow: 0 6px 15px rgba(44,165,172,0.3);
}

:where(body:has(.premium-lp-wrap)) .access-hook {
background-color: #fff;
}

:where(body:has(.premium-lp-wrap)) .access-hook-flex {
display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 40px;
}

:where(body:has(.premium-lp-wrap)) .access-hook-text {
flex: 1;
    min-width: 300px;
}

:where(body:has(.premium-lp-wrap)) .access-hook-text h3 {
font-size: 1.5rem;
    font-weight: 700;
    color: #333;
    line-height: 1.6;
    margin-bottom: 20px;
    border: none;
    padding: 0;
}

:where(body:has(.premium-lp-wrap)) .access-hook-text p {
font-size: 1rem;
    line-height: 1.8;
    color: #555;
    margin-bottom: 15px;
    text-align: left;
}

:where(body:has(.premium-lp-wrap)) .access-hook-image {
flex: 1;
    min-width: 300px;
    text-align: center;
}

:where(body:has(.premium-lp-wrap)) .access-hook-image img {
border-radius: 10px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
    margin-bottom: 25px;
    width: 100%;
}

:where(body:has(.premium-lp-wrap)) .plan-details {
background-color: #f0f4f5;
}

:where(body:has(.premium-lp-wrap)) .plan-box {
background: #fff;
    border-radius: 12px;
    padding: 40px;
    box-shadow: 0 5px 20px rgba(0,0,0,0.05);
    margin-bottom: 40px;
}

:where(body:has(.premium-lp-wrap)) .plan-box-header {
text-align: center;
    margin-bottom: 30px;
}

:where(body:has(.premium-lp-wrap)) .plan-box-header h3 {
font-size: 1.8rem;
    font-weight: 700;
    text-align: center;
    margin: 0;
}

:where(body:has(.premium-lp-wrap)) .plan-box-header p {
font-size: 1rem;
    line-height: 1.6;
}

:where(body:has(.premium-lp-wrap)) .refresh-room-showcase {
text-align: center;
    margin-top: 20px;
    background: #f9f9f9;
    padding: 0px;
    border-radius: 8px;
    border: 1px solid #e0e0e0;
}

:where(body:has(.premium-lp-wrap)) .refresh-room-showcase img {
width: 100%;
    border-radius: 8px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.1);
    margin-bottom: 0px;
}

:where(body:has(.premium-lp-wrap)) .room-layout-flex {
display: flex;
    flex-wrap: wrap;
    gap: 30px;
    align-items: center;
}

:where(body:has(.premium-lp-wrap)) .room-layout-list {
flex: 1;
    min-width: 300px;
}

:where(body:has(.premium-lp-wrap)) .room-layout-list ul {
list-style: none;
    padding: 0;
}

:where(body:has(.premium-lp-wrap)) .room-layout-list li {
font-size: 1.1rem;
    padding: 15px;
    background: #fffcfc;
    border: 1px solid #eccaca;
    margin-bottom: 10px;
    border-radius: 6px;
    display: flex;
    justify-content: space-between;
    font-weight: 600;
}

:where(body:has(.premium-lp-wrap)) .room-layout-list li span {
color: #cc363f;
    font-size: 0.9rem;
}

:where(body:has(.premium-lp-wrap)) .room-layout-img {
flex: 1.5;
    min-width: 300px;
    text-align: center;
}

:where(body:has(.premium-lp-wrap)) .room-layout-img > div,
:where(body:has(.premium-lp-wrap)) .room-layout-img canvas,
:where(body:has(.premium-lp-wrap)) .room-layout-img img {
max-width: 100% !important;
    height: auto !important;
    border-radius: 8px;
}

:where(body:has(.premium-lp-wrap)) .room-layout-img .map-container {
margin-bottom: 25px;
    border: 1px solid #ccc;
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
}

:where(body:has(.premium-lp-wrap)) .usecase-grid {
display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 30px;
}

:where(body:has(.premium-lp-wrap)) .usecase-card {
background: #fff;
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 30px;
    text-align: center;
    transition: transform 0.3s;
}

:where(body:has(.premium-lp-wrap)) .usecase-card:hover {
transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0,0,0,0.08);
}

:where(body:has(.premium-lp-wrap)) .usecase-card h4 {
font-size: 1.3rem;
    color: #0a467d;
    margin-bottom: 15px;
    font-weight: 700;
}

:where(body:has(.premium-lp-wrap)) .usecase-card p {
font-size: 0.95rem;
    color: #555;
    text-align: left;
}

:where(body:has(.premium-lp-wrap)) .cam-info-table {
width: 100%;
    border-collapse: collapse;
    margin: 40px 0;
    background-color: #fff;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
    border-radius: 8px;
    overflow: hidden;
}

:where(body:has(.premium-lp-wrap)) .cam-info-table th,
:where(body:has(.premium-lp-wrap)) .cam-info-table td {
padding: 20px;
    border: 1px solid #eee;
}

:where(body:has(.premium-lp-wrap)) .cam-info-table th {
background-color: #2CA5AC;
    color: #fff;
    width: 25%;
    font-weight: bold;
    text-align: left;
    font-size: 1.1em;
}

:where(body:has(.premium-lp-wrap)) .cam-info-table td {
font-size: 1.1em;
}

:where(body:has(.premium-lp-wrap)) .cam-info-table ul {
margin: 0;
    padding-left: 20px;
}

:where(body:has(.premium-lp-wrap)) .cam-highlight-text {
color: #cc363f;
    font-weight: bold;
}

:where(body:has(.premium-lp-wrap)) .cam-price-table-wrap {
overflow-x: auto;
    margin-bottom: 50px;
}

:where(body:has(.premium-lp-wrap)) .cam-price-table {
width: 100%;
    min-width: 800px;
    border-collapse: collapse;
    background-color: #fff;
    text-align: center;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
}

:where(body:has(.premium-lp-wrap)) .cam-price-table th,
:where(body:has(.premium-lp-wrap)) .cam-price-table td {
padding: 12px 10px;
    border: 1px solid #ddd;
}

:where(body:has(.premium-lp-wrap)) .cam-price-table th {
background-color: #f2f2f2;
    font-weight: bold;
}

:where(body:has(.premium-lp-wrap)) .cam-price-table .row-title {
background-color: #2CA5AC;
    color: #fff;
    font-weight: bold;
}

:where(body:has(.premium-lp-wrap)) .cam-price-table .row-discount {
background-color: #fffcfc;
    color: #cc363f;
    font-weight: bold;
    font-size: 1.1em;
}

:where(body:has(.premium-lp-wrap)) .cam-price-table .row-normal {
color: #666;
    text-decoration: line-through;
    font-size: 0.9em;
}

:where(body:has(.premium-lp-wrap)) .cam-attention-box {
background-color: #fffcfc;
    border: 3px solid #cc363f;
    border-radius: 8px;
    padding: 30px;
    text-align: center;
    margin: 0 auto 40px;
    max-width: 800px;
    box-shadow: 0 4px 10px rgba(204, 54, 63, 0.1);
}

:where(body:has(.premium-lp-wrap)) .cam-attention-box h3 {
color: #cc363f;
    font-size: 1.5em;
    margin-top: 0;
    margin-bottom: 15px;
    border: none;
    text-align: center;
}

:where(body:has(.premium-lp-wrap)) .cam-attention-box p {
font-size: 1.1em;
    font-weight: bold;
    margin: 0 0 10px 0;
}

:where(body:has(.premium-lp-wrap)) .cam-keyword-wrap {
display: flex;
    flex-direction: column;
    align-items: center;
    margin: 15px 0;
}

:where(body:has(.premium-lp-wrap)) .cam-keyword {
display: inline-block;
    font-size: 1.5em;
    font-weight: bold;
    color: #fff;
    background-color: #cc363f;
    padding: 15px 20px;
    border-radius: 4px;
    letter-spacing: 1px;
    margin-bottom: 10px;
}

:where(body:has(.premium-lp-wrap)) .cam-keyword.style-navy {
background-color: #0a467d;
}

:where(body:has(.premium-lp-wrap)) .cam-copy-btn {
display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 8px 15px;
    background-color: #fff;
    border: 2px solid #cc363f;
    color: #cc363f;
    font-weight: bold;
    border-radius: 50px;
    cursor: pointer;
    transition: all 0.2s ease;
    font-size: 0.95em;
}

:where(body:has(.premium-lp-wrap)) .style-navy + .cam-copy-btn {
border-color: #0a467d;
    color: #0a467d;
}

:where(body:has(.premium-lp-wrap)) .cam-copy-btn:hover {
background-color: #cc363f;
    color: #fff;
}

:where(body:has(.premium-lp-wrap)) .style-navy + .cam-copy-btn:hover {
background-color: #0a467d;
    color: #fff;
}

:where(body:has(.premium-lp-wrap)) .cam-copy-btn.copied {
background-color: #4CAF50 !important;
    border-color: #4CAF50 !important;
    color: #fff !important;
}

:where(body:has(.premium-lp-wrap)) .cam-cta-area {
display: flex;
    justify-content: center;
    gap: 20px;
    margin-bottom: 60px;
    flex-wrap: wrap;
}

:where(body:has(.premium-lp-wrap)) .cam-btn {
display: flex;
    align-items: center;
    justify-content: center;
    width: 380px;
    padding: 20px;
    font-size: 1.4em;
    font-weight: bold;
    color: #fff !important;
    text-decoration: none;
    border-radius: 8px;
    transition: all 0.3s ease;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
}

:where(body:has(.premium-lp-wrap)) .cam-btn-reserve {
background-color: #cc363f;
}

:where(body:has(.premium-lp-wrap)) .cam-btn-reserve:hover {
background-color: #a92c33;
    transform: translateY(-2px);
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2);
}

:where(body:has(.premium-lp-wrap)) .cam-btn-contact {
background-color: #2CA5AC;
}

:where(body:has(.premium-lp-wrap)) .cam-btn-contact:hover {
background-color: #1e878d;
    transform: translateY(-2px);
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2);
}

@media screen and (max-width: 768px) {
:where(body:has(.premium-lp-wrap)) .premium-section {
padding: 50px 20px;
}

:where(body:has(.premium-lp-wrap)) .plan-box {
padding: 25px 15px;
}

:where(body:has(.premium-lp-wrap)) .access-hook-text h3 {
font-size: 1.3rem;
}

:where(body:has(.premium-lp-wrap)) .room-layout-img .map-container {
display: none;
}

:where(body:has(.premium-lp-wrap)) .cam-info-table th,
:where(body:has(.premium-lp-wrap)) .cam-info-table td {
display: block; width: 100%;
}

:where(body:has(.premium-lp-wrap)) .cam-attention-box {
padding: 20px 15px;
}

:where(body:has(.premium-lp-wrap)) .cam-keyword {
font-size: 1.1em;
}

:where(body:has(.premium-lp-wrap)) .cam-btn {
width: 100%; font-size: 1.2em; padding: 15px;
}
}

/* One-room weekly availability, shared with all building room-detail pages. */
#roomAvailability .room-availability__scroll{overflow-x:auto;margin-block:1rem}#roomAvailability .reserveTable{min-width:54rem;table-layout:fixed;width:100%;font-size:.9rem}#roomAvailability .reserveTable th,#roomAvailability .reserveTable td{padding:.25rem 0;height:2rem}#roomAvailability .reserveTable th:first-child{width:13rem}#roomAvailability .room-availability__day{text-align:left;padding-inline:.6rem!important;font-weight:400;background:#fff;white-space:nowrap}#roomAvailability .room-availability__updated{text-align:right;min-height:1.5em}#roomAvailability .room-availability__controls{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem;text-align:left}#roomAvailability .room-availability__controls input,#roomAvailability .room-availability__controls button{border:1px solid #999;border-radius:2rem;padding:.3rem 1.5rem;background:#eee;color:inherit}#roomAvailability .room-availability__controls input{background:#fff}#roomAvailability .room-availability__controls button:disabled{opacity:.45;cursor:default}#roomAvailabilityError{color:#b32025;text-align:left}#roomAvailability .form_button a{box-sizing:content-box}#roomAvailability .csv_calender{flex-wrap:wrap;height:auto;gap:.35rem}#roomAvailability .csv_calender li{min-height:1.4rem}

/* Independent home slider links and stable equipment table columns. */
.rental-slide-link{display:block;width:100%;height:100%;color:inherit}
.rental-equipment-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.rental-equipment-scroll>.goods_table{width:100%;min-width:48rem;table-layout:fixed}
.rental-equipment-scroll .equipment-photo-col{width:10%}
.rental-equipment-scroll .equipment-name-col{width:20%}
.rental-equipment-scroll .equipment-maker-col{width:12%}
.rental-equipment-scroll .equipment-spec-col{width:43%}
.rental-equipment-scroll .equipment-price-col{width:15%}
.rental-equipment-scroll .goods_table th{white-space:nowrap;word-break:normal;overflow-wrap:normal;vertical-align:middle}
.rental-equipment-scroll .goods_table td{width:auto;overflow-wrap:anywhere;vertical-align:top}
.rental-equipment-scroll .goods_table td img{max-width:100%;height:auto}
