@charset "utf-8";
/*
カラム制御：デフォルトで1～5カラムまで対応
PC用floatによるカラム制御

html：col_1～5まで対応
例）3列で折り返し
<ul class="col_3">
  <li></li>
  <li></li>
  <li></li>
</ul>

scss：mixinでカラム設定を自動処理化

.col_3 {
  @include colmg(30);
}

数値設定はアイテム間余白（デフォルトは20）;
※縦、横ともに外側への約は発生しない

*/

.vertmiddle:before {
	content: '';
	display: inline-block;
	height: 100%;
	vertical-align: middle;
}
.vertmiddle>* {
	display: inline-block;
	vertical-align: middle;
}
html {
	font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "游ゴシック", "游ゴシック体", "Yu Gothic", YuGothic, verdana, "メイリオ", "Meiryo", "Osaka", sans-serif;
	/*font-family: "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "游明朝", YuMincho, "HG明朝E", "ＭＳ Ｐ明朝", "MS PMincho", "MS 明朝", serif;*/
	font-size: 100px;
	color: #4D4D4D;
	/* @media print, screen and (min-width:1440px) and (max-width:1599px) {
    font-size: 90px;
  } */
	/*
  @media print, screen and (min-width:1120px) and (max-width:1199px) {
    font-size: 70px;
  }
  @media print, screen and (min-width:461px) and (max-width:1119px) {
    font-size: 64px;
  }
*/
}
@media print, screen and (min-width: 461px) {
	html {
		-webkit-font-feature-settings: "palt";
		font-feature-settings: "palt";
		line-height: 1.5;
	}
}
@media screen and (max-width: 460px) {
	html {
		-webkit-text-size-adjust: 100%;
	}
}
@media print, screen and (min-width: 1366px) and (max-width: 1439px) {
	html {
		font-size: 85px;
	}
}
@media print, screen and (min-width: 1280px) and (max-width: 1365px) {
	html {
		font-size: 80px;
	}
}
@media print, screen and (min-width: 461px) and (max-width: 1279px) {
	html {
		font-size: 75px;
	}
}
@media screen and (min-width: 400px) and (max-width: 460px) {
	html {
		font-size: 110px;
	}
}
html.edge {
	-ms-text-size-adjust: 100%;
}
html.safari {
	-webkit-font-smoothing: antialiased;
}
@media print, screen and (min-width: 461px) {
	html.safari {
		-webkit-font-feature-settings: "pkna";
		font-feature-settings: "pkna";
	}
}
body {
	margin: 0;
	padding: 0;
	font-size: .11rem;
}
@media screen and (max-width: 460px) {
	body {
		padding-bottom: 50px;
	}
}
.touchevents * {
	-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
.chrome body {
	image-rendering: -webkit-optimize-contrast;
}
h1, h2, h3, h4, h5, h6, p, dl, dt, dd, ol, ul, li, td, th, figure {
	margin: 0;
	padding: 0;
}
article, aside, footer, header, main, nav, section, figcaption, figure {
	display: block;
}
img {
	-ms-interpolation-mode: bicubic;
	border-style: none;
	vertical-align: bottom;
}
@media screen and (max-width: 1000px) {
	img {
		max-width: 100%;
	}
}
svg:not(:root) {
	overflow: hidden;
}
hr {
	height: 0;
	overflow: visible;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}
b, strong {
	font-weight: inherit;
	font-weight: bolder;
}
a {
	outline: 0;
	text-decoration: none;
	color: inherit;
	background-color: transparent;
	-webkit-text-decoration-skip: objects;
}
li {
	list-style: none;
}
sub, sup {
	position: relative;
	vertical-align: baseline;
	line-height: 0;
}
sub {
	bottom: -.25em;
}
sup {
	top: -.5em;
}
audio, video {
	display: inline-block;
}
audio:not([controls]) {
	display: none;
	height: 0;
}
canvas {
	display: inline-block;
}
input, select, button, optgroup, textarea {
	font-family: inherit;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background: none;
	border: none;
	outline: 0;
	margin: 0;
	padding: 0;
}
button, input {
	overflow: visible;
}
button::-moz-focus-inner, input::-moz-focus-inner {
	border: 0;
	padding: 0;
}
button:-moz-focusring, input:-moz-focusring {
	outline: 1px dotted ButtonText;
}
button, select {
	cursor: pointer;
	text-transform: none;
}
[type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner, button::-moz-focus-inner {
	border: none;
}
select::-ms-expand {
	display: none;
}
/* プリント対応 */

[data-hidePrintMessageArea] {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 10px;
	pointer-events: none;
	opacity: 0;
}
@media print {
	body {
		position: relative;
		top: 100px;
	}
	body:before {
		content: "ページを印刷する際は一番下までスクロールして下さい。";
		display: none;
		white-space: pre;
		font-size: 20px;
		padding: 10px 10px;
		border: 3px solid #000;
		background-color: #FFF;
		color: #000;
		position: absolute;
		top: -100px;
		left: 0px;
		right: 0px;
		text-align: center;
		-webkit-box-sizing: border-box;
		box-sizing: border-box;
	}
	.chrome body:before {
		content: "ページを印刷する際は一番下までスクロールして下さい。\A画像を表示させる場合は、「基本設定」→「背景のグラフィック」を有効にして下さい。";
	}
	.ie body:before {
		content: "ページを印刷する際は一番下までスクロールして下さい。\A画像を表示させる場合は、「印刷プレビュー」→「ページ設定」→「背景の色とイメージを印刷する」を有効にして下さい。";
	}
	.safari body:before {
		content: "ページを印刷する際は一番下までスクロールして下さい。\A画像を表示させる場合は、「詳細を表示」→「背景をプリント」を有効にして下さい。";
	}
	.edge body:before {
		content: "※Microsoft Edgeは背景や画像を印刷できません。";
	}
	.addPrintMessage body:before {
		display: block;
	}
	* {
		background-attachment: scroll !important;
	}
}
/* 721px以上は消す */

@media print, screen and (min-width: 461px) {
	[data-sc-sp] {
		display: none !important;
	}
}
/* 720px以下は消す */

@media screen and (max-width: 460px) {
	[data-sc-pc] {
		display: none !important;
	}
}
.mod_main {
	position: relative;
}
.device-tablet .mod_main {
	width: calc(100% + 1px);
}
/* 自動高さ調整 */

[data-autoheight], [data-pc-autoheight], [data-sp-autoheight] {
	-webkit-transition: none !important;
	-o-transition: none !important;
	transition: none !important;
}
/* 遅延読み込み */

[data-lf] {
	opacity: 0;
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
	-webkit-transition: opacity 1s;
	-o-transition: opacity 1s;
	transition: opacity 1s;
}
[data-lf][src], [data-lf][style*="background-image"], [data-lf].load_view {
	opacity: 1;
}

/* ページトップボタン */
.pagetopbtn {
	position: fixed;
	bottom: 60px;
	right: 10px;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	-webkit-filter: opacity(0%);
	filter: opacity(0%);
	pointer-events: none;
	-webkit-transition: opacity 0.2s, -webkit-filter 1.0s;
	transition: opacity 0.2s, -webkit-filter 1.0s;
	-o-transition: filter 1.0s, opacity 0.2s;
	transition: filter 1.0s, opacity 0.2s;
	transition: filter 1.0s, opacity 0.2s, -webkit-filter 1.0s;
	background-color: #fff;
	z-index: 999;
}
.pagetopbtn.active {
	-webkit-filter: opacity(100%);
	filter: opacity(100%);
	pointer-events: auto;
}
.no-touchevents .pagetopbtn:hover {
	opacity: 0.6;
}
.pagetopbtnInview {
	position: absolute;
	top: 200vh;
	bottom: 0;
	pointer-events: none;
	width: 0;
}
.copyRight {
	color: #B0B1B4;
	background: #1E2028;
	font-size: .14rem;
	font-family: ltc-bodoni-175, serif;
	font-weight: 400;
	letter-spacing: .05em;
	text-align: center;
	height: 60px;
	line-height: 60px;
}
@media screen and (max-width: 720px) {
	.copyRight {
		height: .3rem;
		line-height: .3rem;
		font-size: .1rem;
	}
}

.cmnTit01 {
	font-size: .16rem;
	font-family: a-otf-ryumin-pr6n, serif;
	font-weight: 300;
	line-height: 1;
	letter-spacing: .08em;
	text-align: center;
	position: relative
}
@media screen and (max-width:720px) {
	.cmnTit01 {
		font-size: .13rem;
		letter-spacing: 0;
	}
}
.cmnTit01:before {
	display: block;
	color: #958275;
	font-size: .38rem;
	font-family: ltc-bodoni-175, serif;
	font-weight: 400;
	letter-spacing: .15em;
	margin-bottom: 16px;
}
@media screen and (max-width:720px) {
	.cmnTit01:before {
		font-size: .25rem;
		margin-bottom: 6px;
	}
}

.cmnTit02 {
	font-size: .13rem;
	font-family: a-otf-ryumin-pr6n, serif;
	font-weight: 300;
	line-height: 1;
	letter-spacing: .08em;
	text-align: center;
	position: relative
}
@media screen and (max-width:720px) {
	.cmnTit02 {
		font-size: .13rem;
	}
}
.cmnTit02:before {
	display: block;
	color: #4b4d52;
	font-size: .30rem;
	font-family: ltc-bodoni-175, serif;
	font-weight: 400;
	letter-spacing: .15em;
	margin-bottom: 10px;
}
@media screen and (max-width:720px) {
	.cmnTit02:before {
		font-size: .20rem;
		margin-bottom: 6px;
	}
}

@media screen and (max-width:720px) {
	.flowinqwrap {
		position: fixed;
		bottom: 0;
		left: 0;
		width: 100%;
		background-color: #519DAF;
		transition: .4s;
		z-index: 99000;
		text-align: center;
		pointer-events: none;
		opacity: 0;
	}
	.menufix .flowinqwrap {
		opacity: 1;
		pointer-events: auto;
	}
	.flowinq {
		position: relative;
		display: table;
		width: 100%;
	}

	.flowinq:after {
		content: '';
		display: block;
		left: 50%;
		top: 0;
		position: absolute;
		height: 100%;
		border-right: 1px solid #115D6F;
	}
	body.pink .flowinq:after {
		border-right: 1px solid #BA868F;
	}

	.flowinq a {
		display: table-cell;
		height: 50px;
		position: relative;
		width: 50%;
	}

	.flowinq a:after {
		content: '';
		display: block;
		position: absolute;
		width: 5px;
		height: 5px;
		border-right: 1px solid #FFF;
		border-top: 1px solid #FFF;
		position: absolute;
		bottom: 0;
		top: 0;
		right: 10px;
		margin: auto;
		-webkit-transform: rotate(45deg);
		-moz-transform: rotate(45deg);
		-ms-transform: rotate(45deg);
		-o-transform: rotate(45deg);
		transform: rotate(45deg);
	}

	.flowinq a:before {
		content: '';
		display: inline-block;
		vertical-align: middle;
		height: 100%;
	}

	.flowinq span {
		font-size: 0.15rem;
		color: #FFF;
	}

	.flowinq .tel {
		letter-spacing: 1px;
	}

	.flowinq a > span {
		display: inline-block;
		vertical-align: middle;
		margin-left: -5%;
	}
}



/*
グローバルナビ
*/
@media print, screen and (min-width: 641px) {
	.globalnav {
		display: flex;
		justify-content: center;
		align-items: center;
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		backdrop-filter: blur(10px);
		background-color: rgba(0, 0, 0, 0.1);
		z-index: 1000;

		transition: height 0.3s;
		height: 1.0rem;
	}
	.scrolled .globalnav {
		height: 0.6rem;
	}
	.mvwrap .globalnav {
		background-color: rgba(255, 255, 255, 0.2);
	}
	.globalnav .center {
		display: flex;
		align-items: center;
		height: 100%;
	}
	.globalnav .center img {
		filter: brightness(0.5);
	}
	.mvwrap .globalnav .center img {
		filter: none;
	}
	.globalnav .center a {
		display: block;
		transition: 0.2s;
	}
	.no-touchevents .globalnav .center a:hover {
		opacity: 0.5;
	}
	.globalnav .center a img {
		height: auto;
		
		width: 117px;
		transition: width 0.3s;
	}
	.globalnav .center a.nagoya img {
		height: auto;
		
		width: 1.82rem;
		transition: width 0.3s;
	}
	.globalnav .center a.yokohama img {
		height: auto;
		
		width: 1.56rem;
		transition: width 0.3s;
	}
	.globalnav .center a.kyoto img {
		height: auto;
		
		width: 1.96rem;
		transition: width 0.3s;
	}
	.scrolled .globalnav .center a img {
		width: 90px;
	}
	.scrolled .globalnav .center a.kyoto img {
		width: 140px;
	}
	.globalnav .rightTop {
		position: absolute;
		right: 0;
		width: calc(50% - 0.5rem);
		display: flex;
		justify-content: center;
		align-items: center;

		transition: top 0.3s;
		/* top: 0.2rem; */
	}
	.scrolled .globalnav .rightTop {
		top: 0.17rem;
	}
	.globalnav .rightTopLi {
		margin-left: 0.12rem;
	}
	.globalnav .rightTopLi a {
		position: relative;
		display: flex;
		justify-content: center;
		align-items: center;
		height: 0.3rem;
		padding: 0 0.07rem;
		width: 1.5rem;

		/* border: 1px solid rgba(0, 0, 0, 0.3); */
		transition: 0.2s;
	}
	.mvwrap .globalnav .rightTopLi a {
		/* border: 1px solid rgba(255, 255, 255, 0.3); */
		background-color: rgba(255, 255, 255, 0.2);
	}
	.no-touchevents .globalnav .rightTopLi a:hover {
		/* border: 1px solid rgba(255, 255, 255, 1.0); */
	}
	.no-touchevents .mvwrap .globalnav .rightTopLi a:hover {
		/* border: 1px solid rgba(0, 0, 0, 1.0); */
	}
	.globalnav .rightTopLi a:before {
		content: "";
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background-color: #000;

		animation: righttoplineanimationEnd 0.2s ease-in-out forwards;
	}
	@keyframes righttoplineanimationEnd {
		0% {
			clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
		}
		100% {
			clip-path: polygon(100% 0%, 100% 0%, 100% 100%, 100% 100%);
		}
	}
	.mvwrap .globalnav .rightTopLi a:before {
		background-color: #fff;
	}
	.no-touchevents .globalnav .rightTopLi a:hover:before {
		animation: righttoplineanimationStart 0.2s ease-in-out forwards;
	}
	@keyframes righttoplineanimationStart {
		0% {
			clip-path: polygon(0% 0%, 0% 0%, 0% 100%, 0% 100%);
		}
		100% {
			clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
		}
	}
	.globalnav .rightTopLi a span {
		display: block;
		position: relative;
		color: #000;
		font-weight: normal;
		font-family: 'Playfair Display', serif;
		font-size: 0.15rem;
		letter-spacing: 0.01rem;
		
		transition: 0.2s;
	}
	.mvwrap .globalnav .rightTopLi a span {
		color: #FFF;
	}
	.no-touchevents .globalnav .rightTopLi a:hover span {
		color: #FFF;
	}
	.no-touchevents .mvwrap .globalnav .rightTopLi a:hover span {
		color: #000;
	}
	.globalnav .leftTop {
		position: absolute;
		left: 0;
		width: calc(50% - 0.5rem);
		display: flex;
		justify-content: center;
		align-items: center;
		transition: top 0.3s;
	}
	.globalnav .leftTop .leftTopLi{
		display: flex;
		justify-content: center;
		align-items: center;
		width: 1.6rem;
		height: 0.3rem;
		color: #000;
		font-family: 'Playfair Display', serif;
		font-size: .15rem;
		letter-spacing: 0.02rem;;
	}
	.globalnav .leftTop .leftTopLi a{
		transition: 0.5s;
		line-height: 1.2;
	}
	.globalnav .leftTop .leftTopLi a:hover{
		opacity: 0.5;
	}
	.globalnav .leftTop .leftTopLi img{
		margin-right: .1rem;
	}
	.mvwrap .globalnav .leftTopLi a span {
        color: #FFF;
    }
	.globalnav .leftTopLi .leftBottomSns img {
        filter: brightness(0.2);
    }
	.mvwrap .globalnav .leftTopLi .leftBottomSns img {
        filter: none;
    }
}