/* ==========================================================================
   ベース設定（日本語向けタイポ・配色・リセット）
   ========================================================================== */

/* モダンリセット */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html:focus-within { scroll-behavior: smooth; }
html, body { height: 100%; }
img, picture, video, canvas, svg { display: block; max-width: 100%; }
input, button, textarea, select { font: inherit; color: inherit; }
a { text-decoration: none; color: inherit; }
ul, ol { list-style: none; padding: 0; }

/* カラーテーマ（ライト/ダークに対応） */
:root {
  --bg: #ffffff;
  --fg: #14161a;
  --muted: #5e6875;
  --border: #e5e7eb;
  --surface: #f7f8fa;
  --accent: #2463eb;  /* アクセント色（ブランドに合わせて変更） */
  --accent-contrast: #ffffff;

  --radius: 12px;
  --shadow-sm: 0 1px 2px rgba(0,0,0,.06);
  --shadow-md: 0 6px 24px rgba(0,0,0,.08);
}

.small { font-size: 0.694rem; }

.sub-t { font-style: italic;}

@media (prefers-color-scheme: dark) {
  :root {
    --bg: #0b0d10;
    --fg: #e9edf1;
    --muted: #a9b2bf;
    --border: #1f2937;
    --surface: #12161c;
    --accent: #4f83ff;
    --accent-contrast: #0b0d10;
  }
}

/* 基本のタイポグラフィ（日本語フォント優先） */
html {
  color-scheme: light dark;
  -webkit-text-size-adjust: 100%;
}
body {
  min-height: 100svh;
  background: var(--bg);
  color: var(--fg);
  font-family:'游明朝','Yu Mincho',YuMincho,'Hiragino Mincho Pro',serif;
  line-height: 1.7;
  letter-spacing: 0.02em;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  word-break: break-word;
  line-break: strict;
  font-feature-settings: "palt" 1; /* 和文のプロポーショナル調整 */
}

.sp { display: none; }
@media screen and (max-width: 768px) {
.sp { display: inline; }
}

/* コンテンツ */

.site-header {
	padding: 20px;
	background: #0E1835;
	position: relative;
}

.site-header h1 {
	width: 80px;
	position: absolute;
	left: 50%;
	margin: 0 0 0 -40px;
}

.site-header h1 img {
	width: auto;
} 

.site-header .lang {
	text-align: right;
}

.site-header .lang a {
	width: 45px;
	display: inline-block;
	text-align: center;
	color: #fff;
	margin: 0 0 0 10px;
	border: 1px solid #fff;
	border-radius: 1rem;
	transition: 0.2s ease-in-out;
}

.site-header .lang a.active {
	color: #0E1835;
	background: #fff;
}

.site-header .lang a:hover {
	color: #0E1835;
	background: #fff;
}


.col-2 {
	display: flex;
}

.rev {
	flex-direction: row-reverse;
}

.col-2 .item {
	display: flex;
	flex: 1;
	justify-content: center; /* 横方向中央揃え */
	align-items: center;    /* 縦方向中央揃え */
	background: #eee;
}

.col-2 .inner {
	padding: 40px;
}

.rsrv a {
	display: block;
	width: 300px;
	padding: 15px;
	margin:  0 auto;
	color: #fff;
	text-align: center;
	border: 2px solid #B19B77;
	border-radius: 100px;
	background: #0E1835;
	transition: 0.2s ease-in-out;
}


.rsrv a:hover {
	color: #B19B77;
	border: 2px solid #B19B77;
	background: #fff;
}



.info {
	color: #fff;
	background: #0E1835;	
}

.info dl {
	display: flex;
	text-align: left;
	padding: 0 0 20px;
	border-bottom: 1px solid #fff;
}



.info dl dt {
	width: 120px;
}

.info dl dd {
	width: 480px;
}

.map {
    position: relative;
    width: 100%;
    padding-top: 56.25%;
    /* 16:9のアスペクト比 */
    height: 0;
}

.map iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}



.col-1 { 
	margin: 0 auto;
	width: 600px;
	padding: 60px 0;
	text-align: center;
}

.site-footer {
	padding: 20px;
	text-align: center;
	color: #fff;
	background: #0E1835;	
}







@media screen and (max-width: 768px) {
	

.site-header h1 {
	width: 80px;
	position: absolute;
	left: 20px;
	margin: 0;
}	

.col-2 {
	display: block;
}

.col-2 .item {
	display: block;
	flex: 1;
	justify-content: center; /* 横方向中央揃え */
	align-items: center;    /* 縦方向中央揃え */
}

.col-1 { 
	margin: 0 auto;
	width: auto;
	padding: 40px;
	text-align: left;
}

.rsrv a {
	display: block;
	width: auto;
	padding: 15px;
	margin:  0 auto;
	color: #fff;
	text-align: center;
	border: 2px solid #B19B77;
	border-radius: 100px;
	background: #0E1835;
}

.info dl {
	display: block;
	text-align: left;
	padding: 0 0 20px;
	border-bottom: 1px solid #fff;
}


.info dl dt {
	width: auto;
	margin: 0 0 10px;
}

.info dl dd {
	width: auto;
}


}

/* loading */

.loading {
  width: 100vw;
  height: 100vh;
  background-color: #0E1835;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 999;
  display: flex;
}

.loading .load {
	position: fixed;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	display: none;
	z-index: 9999;
	width: 200px;
}





/* 余白ユーティリティ（必要に応じて追加） */
.mt-0{ margin-top:0 !important; }
.mt-1{ margin-top:.5rem !important; }
.mt-2{ margin-top:1rem !important; }
.mb-1{ margin-bottom:.5rem !important; }
.mb-2{ margin-bottom:1rem !important; }

/* 動きを控える設定に追従 */
@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
