/*
Theme Name: KAGUYA Gallery Hotel
Theme URI: https://www.kaguya-kyoto.com/
Author: gallery hotel KAGUYA
Author URI: https://www.kaguya-kyoto.com/
Description: gallery hotel KAGUYA 公式サイト WordPress テーマ。平安時代をテーマにした高級デザインホテルのWordPressテーマ。ニュース管理はWordPress標準の投稿機能を使用。
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: Private
Text Domain: kaguya
*/

/* =============================================
   BASE
============================================= */
*, *::before, *::after { box-sizing: border-box; }

body {
  margin: 0;
  padding: 0;
  background: #f3f3f3;
  font-family: "ヒラギノ明朝 Pro","Hiragino Mincho Pro","Hiragino Mincho ProN",游明朝,"Yu Mincho",YuMincho,HGS明朝E,メイリオ,Meiryo,serif;
  color: #333;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 100;
  word-wrap: break-word;
}

img { max-width: 100%; }
.displaypc { display: block; }
.displaysd { display: none; }

/* =============================================
   HEADER
============================================= */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
}

#header-content-linklist {
  position: relative;
  z-index: 1000;
  min-height: 120px;
  background: linear-gradient(to bottom, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.15) 60%, rgba(0,0,0,0) 100%);
  animation-duration: 1.8s;
  animation-fill-mode: forwards;
  animation-name: animationv2;
}

@keyframes animationv2 {
  0%   { opacity: 0; transform: translateY(-30px); }
  100% { opacity: 1; transform: translateY(0); }
}

body .logo { margin: 0; padding: 0; }

.logolink {
  align-items: center;
  display: flex;
  justify-content: center;
  position: absolute;
  top: 32px;
  left: 20px;
  z-index: 1000;
}

.header-content-logo { height: auto; width: 70px; position: relative; }
.header-content-logo.pc  { display: block; }
.header-content-logo.sd  { display: none; }
.logo_top { display: block; }
/* トップページではヘッダーの小さいロゴを非表示（大きいロゴがヒーローにある） */
.page-top .logo_top { display: none; }

.header-content-linklist .menu_wrapper {
  display: flex;
  align-items: center;
  top: 0;
  bottom: 0;
  right: 0;
  left: auto;
  position: absolute;
  margin: 0;
  padding: 0;
  height: 80px;
}

.header-content-linklist .menu {
  margin: 0 15px 0 0;
  padding: 0;
  display: flex;
  flex-direction: row;
  align-items: center;
  list-style: none;
}

.header-content-linklist .menu > li { display: inline-block; margin: 0 18px; }

.header-content-linklist .menu > li a {
  writing-mode: horizontal-tb;
  letter-spacing: 3px;
  color: #fff;
  font-size: 17px;
  font-weight: bold;
  text-decoration: none;
  transition: .2s;
  display: block;
  position: relative;
  padding: 8px 0;
  line-height: 1;
}

.header-content-linklist .menu > li a:hover { opacity: .6; }

.header-content-linklist .reservationBtn {
  background: #7f5c0f;
  color: #fff !important;
  font-size: 14px;
  padding: 18px 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  flex-shrink: 0;
  min-width: 120px;
  height: 80px;
  text-align: center;
  text-decoration: none;
  transition: .2s;
  box-sizing: border-box;
  position: relative;
}

.header-content-linklist .reservationBtn:hover { opacity: .6; }

.kaguya-yoyaku-text {
  color: #fff !important;
  font-size: 14px !important;
  font-weight: bold !important;
  display: block !important;
  pointer-events: none;
}

/* Language links */
#translation_links { text-align: center; display: block; color: #fff; padding: 4px 0 0 0; }
#translation_links a { color: #fff; font-size: 16px; }
#translation_link_s { display: inline-block; margin: 0 7px; }

/* =============================================
   HAMBURGER (SP)
============================================= */
.htmlBoxMenuSdBtnWrapper { display: none; }

/* =============================================
   SP SLIDE MENU
============================================= */
.sdMenu {
  display: none;
  background: #00000045;
  position: fixed;
  width: 100%;
  z-index: 101;
  height: 100%;
}
.sdMenu.open { display: block; z-index: 100001 !important; }

.sdMenu .sdMenuInner {
  background: #fff;
  position: fixed;
  top: 0;
  right: -300px;
  z-index: 100;
  padding: 10px 0;
  height: 100%;
  width: 230px;
  animation: slide .3s forwards;
  animation-delay: .1s;
}

@keyframes slide { 100% { right: 0; } }

#sdMenuBtnClose {
  display: block;
  height: 40px;
  width: 40px;
  position: absolute;
  right: 14px;
  top: 14px;
  cursor: pointer;
}
#sdMenuBtnClose::before,
#sdMenuBtnClose::after {
  background-color: #5f5f5f;
  content: " ";
  height: 1px;
  left: 19%;
  position: absolute;
  top: 50%;
  width: 25px;
}
#sdMenuBtnClose::before { transform: rotateZ(-45deg); }
#sdMenuBtnClose::after  { transform: rotateZ(45deg); }

.sdMenu .logo { font-size: 20px; padding: 0; display: inline-block; font-weight: 600; }
.sdMenu .logo img { width: 50px !important; margin: 13px 10px 28px 18px; }

.sdMenu-lang {
  padding: 20px 18px;
  color: #333;
  font-size: 14px;
  letter-spacing: 2px;
  border-top: 1px solid #eee;
}
.sdMenu-lang a {
  color: #333;
  text-decoration: none;
}
.sdMenu-lang a:hover { opacity: .6; }

.sdMenu ul {
  margin: 0;
  padding: 6px 0;
  list-style: none;
  float: right;
}
.sdMenu ul li { margin: 0; padding: 0; display: block; }
.sdMenu ul li a {
  color: #333;
  font-size: 14px;
  display: inline-block;
  text-align: left;
  width: 210px;
  padding: 10px;
  border-bottom: 1px solid #ddd;
  text-decoration: none;
  transition: color .3s;
}

/* =============================================
   FIXED BOTTOM BUTTON (SP)
============================================= */
.fix-bottom-btn { display: none; }

.part1229-container {
  display: none; /* PC: hidden */
}

/* =============================================
   HERO (トップ画像)
============================================= */
.part1149 {
  margin: 0 0 100px;
  width: 100%;
  height: 100vh;
  background: #000;
  position: relative;
  overflow: hidden;
}

.part1149_image {
  position: absolute;
  top: 0; bottom: 0; left: 0; right: 0;
  margin: auto;
  pointer-events: none;
  text-align: center;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  z-index: 4;
}

.part1149_image::before {
  content: "";
  position: absolute;
  top: 0; bottom: 0; left: 0; right: 0;
  width: 100%; height: 100%;
  display: block;
  opacity: .4;
  background: radial-gradient(transparent, rgba(0,0,0,.2));
}

.part1149_image img { object-fit: cover; width: 100%; height: 100%; }

.part1149_logo {
  position: absolute;
  top: 30%;
  left: 80px;
  text-align: left;
  z-index: 4;
  display: block;
  width: 100%;
}
.part1149_logo img { width: 90%; max-width: 220px; }

.part1149 .pc_only { display: block; }
.part1149 .sd_only { display: none; }

/* =============================================
   SCROLL INDICATOR
============================================= */
.part1186 {
  bottom: -40px !important;
  z-index: 5;
  height: 225px;
  transition: all 1s cubic-bezier(.42,0,.58,1) .2s;
  position: absolute;
  left: 45px;
}

.part1186::after {
  position: absolute;
  content: "";
  height: 5px; width: 5px;
  background: #fff;
  bottom: -5px;
  display: block;
  border-radius: 100px;
  left: -2px;
  z-index: 10;
}

.part1186_text {
  display: block;
  height: 100%;
  font-family: "Oswald", sans-serif;
  font-size: 13px;
  color: #fff;
  white-space: nowrap;
  letter-spacing: .15em;
  cursor: pointer;
  writing-mode: vertical-rl;
  transform: translateX(-50%);
  overflow: hidden;
}

.part1186_text::before {
  content: "";
  left: 10px;
  display: block;
  width: 1px;
  position: absolute;
  bottom: 0;
  background: rgba(255,255,255,.3);
  z-index: 5;
  height: 150px;
}

.part1186_text::after {
  content: "";
  left: 10px;
  display: block;
  width: 1px;
  position: absolute;
  bottom: 150px;
  background: rgba(0,0,0,.6);
  z-index: 5;
  height: 0;
  animation: scrollBar 2.5s cubic-bezier(.165,.84,.44,1) infinite;
}

@keyframes scrollBar {
  0%   { bottom: 150px; height: 0; }
  5%   { bottom: 70px; height: 80px; }
  100% { bottom: -80px; height: 80px; }
}

/* =============================================
   SPECIAL OFFER BANNER
============================================= */
.part1236 {
  max-width: 1200px;
  padding: 0 40px;
  margin: 0 auto 70px;
  overflow: hidden;
}
.part1236_wrapper {
  position: relative;
  overflow: hidden;
  border-radius: 30px;
}
.part1236_wrapper img { transition: transform .5s ease; }
.part1236_wrapper:hover img { transform: scale(1.1); }
.part1236_link { display: block; }
.part1236_link:hover { opacity: .6; }
.part1236_image { width: 100%; vertical-align: bottom; }

.part1236_text {
  position: absolute;
  left: 60px;
  top: 0; bottom: 0;
  margin: auto;
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  text-align: left;
}
.part1236_title {
  margin: 0 0 20px; padding: 0;
  display: block;
  width: 100%;
  color: #fff;
  font-size: 32px;
  line-height: 1.8;
  font-weight: bold;
  letter-spacing: 3px;
}
.part1236_list {
  list-style: none;
  margin: 0; padding: 0;
  display: block;
  width: 100%;
  color: #fff;
  font-size: 20px;
  line-height: 1.8;
}

/* =============================================
   IMAGE + TEXT (CONCEPT)
============================================= */
.part1181 {
  display: flex;
  max-width: 1200px;
  margin: 0 auto 80px;
  padding: 0 40px;
}
.part1181_text {
  padding: 10px 40px 0 0;
  box-sizing: border-box;
  width: 40%;
}
.part1181_title {
  font-size: 28px;
  line-height: 1.4;
  font-weight: normal;
  color: #a98840;
  margin-bottom: 20px;
}
.part1181_description {
  font-size: 14px;
  line-height: 2.1em;
  margin: 0;
  letter-spacing: 1px;
}
.part1181_description a { color: #000; text-decoration: underline; }
.part1181_button {
  display: inline-block;
  background-color: #805c0f;
  color: #fff !important;
  text-decoration: none;
  padding: 12px 30px;
  border-radius: 40px;
  font-weight: bold;
  max-width: 140px;
  text-align: center;
}
.part1181_button:hover { opacity: .6; }
.part1181_image { width: 60%; }
.part1181_image img { width: 100%; }

/* =============================================
   IMAGE + TEXT BLOCK (ROOMS / GALLERY)
============================================= */
.part1182 {
  max-width: 1200px;
  margin: 0 auto 80px;
  padding: 0 40px 70px;
  position: relative;
}
.part1182_image { margin-bottom: 20px; position: relative; }
.part1182_image img { width: 100%; }

.part1182_imageText {
  font-size: 55px;
  line-height: 1.6;
  margin: 0; padding: 0;
  position: absolute;
  top: 0; bottom: 0; left: 0; right: 0;
  margin: auto;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
  letter-spacing: 3px;
  font-family: "Cormorant Garamond", serif;
  font-weight: 800;
}

.part1182_text {
  display: flex;
  justify-content: space-between;
  margin: 0 auto;
  padding: 20px 40px 0 40px;
}
.part1182_title {
  color: #a98840;
  font-size: 28px;
  font-weight: 700;
  margin: 0;
  flex-basis: 25%;
  text-align: right;
  padding: 0 50px 0 0;
}
.part1182_description {
  flex-basis: 75%;
  text-align: left;
  color: #666;
  line-height: 2;
  margin: 0;
  font-size: 14px;
  padding: 0 100px 0 0;
  letter-spacing: 1px;
}
.part1182_button {
  display: inline-block;
  background-color: #805c0f;
  color: #fff;
  text-decoration: none;
  padding: 12px 30px;
  border-radius: 40px;
  font-weight: bold;
  position: absolute;
  right: 250px;
  bottom: 0;
  max-width: 140px;
  text-align: center;
}
.part1182_button:hover { opacity: .6; }

.part1182_iconkumo {
  position: absolute;
  bottom: 10px;
  width: 150px;
  left: 120px;
}

/* =============================================
   INSTAGRAM SLIDER
============================================= */
.part1215 {
  position: relative;
  text-align: center;
  padding-bottom: 100px;
  margin: 0 0 40px;
  overflow: hidden;
  height: 350px;
}
.part1215::before {
  content: "";
  position: absolute;
  bottom: 0; left: 0; right: 0;
  width: 100%;
  height: calc(80% - 100px);
  background-color: #a98840;
}
.part1215_title {
  font-size: 34px;
  margin: 0 0 20px; padding: 0;
  font-weight: bold;
  text-align: center;
}
.part1215_list_wp {
  max-width: 1200px;
  width: 1200px;
  margin: 0 auto;
  overflow: hidden;
}
.part1215_list {
  list-style: none;
  margin: 0 auto;
  position: relative;
  padding: 0 40px;
  display: block;
  width: 1400px;
  left: -200px;
}
.part1215_list > li {
  position: relative;
  margin-right: 20px;
  display: inline-block;
  width: 230px;
}
.part1215_list > li:last-child { margin-right: 0; }

.htmlBox_InstagramBox {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 40px;
}

/* =============================================
   BUTTON (FOLLOW / MORE)
============================================= */
.part1218 { text-align: center; margin-bottom: 80px; }
.part1218_link {
  background: #805c0f;
  color: #fff;
  text-decoration: none;
  padding: 12px 25px;
  display: inline-block;
  border-radius: 30px;
  font-size: 16px;
  line-height: 1.6;
  min-width: 300px;
}
.part1218_link:hover { opacity: .6; color: #fff; }

/* =============================================
   SECTION TITLE
============================================= */
.part1187 { margin: 0 auto; padding: 0 0 40px 0; }
.part1187_inner {
  display: block;
  color: #333;
  font-size: 38px;
  font-weight: bold;
  letter-spacing: 1px;
  margin: 100px auto 0;
  padding: 0 0 10px;
  text-align: center;
  width: 100%;
  line-height: 1.2;
  max-width: 1000px;
}

/* =============================================
   MAP
============================================= */
.part1231 {
  max-width: 1200px;
  margin: 0 auto 40px;
  padding: 0 40px;
}
.part1231_map {
  width: 100%;
  padding-bottom: 56%;
  position: relative;
  margin: 0 auto 30px;
}
.part1231_map iframe {
  position: absolute;
  width: 100%;
  height: 100%;
  border: 0;
}

.part1222 {
  max-width: 1200px;
  margin: 0 auto 40px;
  padding: 0 40px;
}
.part1222_text { text-align: center; }
.part1222_title { font-size: 20px; line-height: 1.6; margin: 0 0 10px; padding: 0; }
.part1222_description { font-size: 16px; line-height: 1.8; margin: 0; padding: 0; }

/* =============================================
   NEWS LIST (WordPressの投稿 = お知らせ)
============================================= */
#topinfolist {
  width: 1000px;
  margin: 0 auto;
}
#topinfolist ul {
  width: auto;
  margin: 0 0 110px 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  list-style: none;
}
#topinfolist ul li {
  width: 252px;
  display: inline-block;
  margin: 25px 17px 0;
  box-shadow: 0 0 7px rgba(0,0,0,.15);
  overflow: hidden;
  vertical-align: top;
  background: #fff;
}
#topinfolist ul li a {
  color: #333;
  text-decoration: none;
  display: block;
  cursor: pointer;
  transition: opacity .3s;
}
#topinfolist ul li a:hover { opacity: .7; }
#topinfolist ul li a img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  display: block;
}
#topinfolist ul li .infolist__title {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  margin: 12px 15px 5px;
  text-align: left;
  color: #333;
  font-size: 14px;
}
#topinfolist ul li .infolist__date {
  margin: 0 15px 15px;
  color: #999;
  font-size: 12px;
  display: block;
}

/* お知らせ一覧ボタン */
.part1189_moreWrapper { display: block; width: 100%; text-align: center; }
.part1189_more {
  display: inline-flex;
  background: #a98840;
  padding: 6px 50px 10px 30px;
  color: #fff;
  position: relative;
  font-weight: bold;
  font-size: 18px;
  text-decoration: none;
  line-height: 1.6;
  justify-content: center;
  align-items: center;
}
.part1189_more:hover { opacity: .8; color: #fff; }
.part1189_more::before {
  content: "";
  position: absolute;
  top: 1px; bottom: 0;
  right: 35px;
  margin: auto;
  width: 8px; height: 8px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: rotate(45deg);
}

/* =============================================
   ニュース一覧ページ (archive-post.php)
============================================= */
.news-archive {
  max-width: 1000px;
  margin: 120px auto 80px;
  padding: 0 40px;
}
.news-archive h1 {
  font-size: 32px;
  color: #a98840;
  font-weight: normal;
  margin: 0 0 40px;
  text-align: center;
  letter-spacing: 2px;
}
.news-list { list-style: none; margin: 0; padding: 0; }
.news-list li {
  border-bottom: 1px solid #ddd;
  padding: 20px 0;
  display: flex;
  align-items: flex-start;
  gap: 20px;
}
.news-list li .news-thumb img {
  width: 160px;
  height: 110px;
  object-fit: cover;
  border-radius: 4px;
}
.news-list li .news-info { flex: 1; }
.news-list li .news-date { color: #999; font-size: 13px; margin: 0 0 8px; }
.news-list li .news-title a {
  color: #333;
  text-decoration: none;
  font-size: 16px;
  line-height: 1.6;
}
.news-list li .news-title a:hover { color: #a98840; }
.news-list li .news-cat {
  display: inline-block;
  background: #a98840;
  color: #fff;
  font-size: 11px;
  padding: 2px 10px;
  border-radius: 3px;
  margin: 8px 0 0;
}

/* ニュース詳細 */
.news-single {
  max-width: 800px;
  margin: 120px auto 80px;
  padding: 0 40px;
}
.news-single h1 {
  font-size: 26px;
  font-weight: normal;
  color: #333;
  line-height: 1.6;
  margin: 0 0 10px;
}
.news-single .news-meta {
  color: #999;
  font-size: 13px;
  margin: 0 0 30px;
  padding-bottom: 20px;
  border-bottom: 1px solid #ddd;
}
.news-single .news-content {
  font-size: 15px;
  line-height: 2;
  color: #444;
}
.news-single .news-content img { max-width: 100%; height: auto; margin: 20px 0; }
.news-back { text-align: center; margin: 40px 0; }
.news-back a {
  color: #805c0f;
  text-decoration: none;
  font-size: 14px;
  border-bottom: 1px solid #805c0f;
}

/* =============================================
   CONTACT FORM
============================================= */
.part1270 {
  margin: 0 auto 120px;
  max-width: 830px;
  text-align: center;
  padding: 0 40px;
  font-size: 18px;
}
.part1270_description {
  text-align: left;
  font-size: 20px;
  line-height: 1.6;
  margin: 0 0 80px;
}
.part1270_form { text-align: left; }
.part1270_item { width: 100%; padding: 0; margin: 0 0 40px; }
.part1270_name {
  width: 100%;
  font-weight: bold;
  line-height: 1.6;
  margin: 0 0 15px;
  padding: 0;
  display: flex;
  align-items: center;
}
.part1270_required {
  border-radius: 6px;
  margin-right: 12px;
  padding: 4px 20px;
  display: inline-block;
  text-align: center;
  background: #805c0f;
  color: #fff;
  font-size: 16px;
}
.part1270_input {
  border-radius: 4px !important;
  border: 1px solid #000 !important;
  padding: 0 1em !important;
  height: calc(1em + 30px);
  flex: 1;
  width: 100% !important;
  background: #fff;
  font-size: 18px;
  box-sizing: border-box;
}
.part1270_textArea {
  border-radius: 4px !important;
  border: 1px solid #000;
  padding: 1em;
  height: 500px;
  flex: 1;
  width: 100% !important;
  background: #fff;
  font-size: 18px;
  box-sizing: border-box;
}
.part1270_formButton {
  border-radius: 40px;
  margin: 80px auto 0;
  padding: 20px 80px;
  display: block;
  background: #805c0f;
  color: #fff;
  font-weight: bold;
  font-size: 20px;
  border: none;
  cursor: pointer;
}
.part1270_formButton:hover { opacity: .6; }

/* Contact Form 7 customise */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"] {
  border-radius: 4px;
  border: 1px solid #000;
  padding: 0 1em;
  height: calc(1em + 30px);
  width: 100%;
  background: #fff;
  font-size: 18px;
  box-sizing: border-box;
}
.wpcf7 textarea {
  border-radius: 4px;
  border: 1px solid #000;
  padding: 1em;
  height: 300px;
  width: 100%;
  background: #fff;
  font-size: 18px;
  box-sizing: border-box;
}
.wpcf7 input[type="submit"] {
  border-radius: 40px;
  margin: 40px auto 0;
  padding: 20px 80px;
  display: block;
  background: #805c0f;
  color: #fff;
  font-weight: bold;
  font-size: 20px;
  border: none;
  cursor: pointer;
}
.wpcf7 input[type="submit"]:hover { opacity: .6; }

/* =============================================
   FOOTER
============================================= */
.part1146 { letter-spacing: 1px; }

.part1146-header {
  display: flex;
  justify-content: space-between;
  padding: 80px 40px 120px 40px;
  background: url(https://asset.digi-ato.com/images/wp-content/uploads/2024/12/haikei-3.png) center/cover;
  color: #fff;
}
.part1146-header a { color: #fff; }
.part1146-header-left { max-width: 60%; }

.part1146-nav ul {
  list-style: none;
  padding: 0; margin: 0;
  display: flex;
  gap: 20px;
}
.part1146-nav a { text-decoration: none; }

.part1146-address { margin-top: 10px; line-height: 1.6; }

.part1146-header-right .part1146-logo { height: 60px; }

.part1146_sub-footer {
  justify-content: space-between;
  align-items: center;
  padding: 20px 40px;
  background-color: #fff;
  font-size: 18px;
  color: #000;
  text-align: center;
  position: relative;
}
.part1146_sub-footer img { display: inline-block; margin: 0 0 0 20px; }
.part1146_sub-footer-left { font-weight: normal; letter-spacing: 1px; color: #666; }

/* =============================================
   ANIMATIONS & ACCESSIBILITY 付帯 #tt
============================================= */
.htmlBox_titleaccess { position: relative; }

#tt {
  opacity: .8;
  display: inline-block;
  transform: translate3d(35px,35px,0);
  position: absolute;
  bottom: 87px;
  left: 0;
  right: -235px;
  margin: 0 auto;
  text-align: center;
  width: 55px;
  height: auto;
}
.animation1 #tt {
  opacity: 1;
  transition: opacity 2s, transform 5s;
  transition-timing-function: cubic-bezier(.165,.84,.44,1);
  transform: translate3d(0,0,0);
}

/* =============================================
   RESPONSIVE — SP (max-width: 800px)
============================================= */
@media screen and (max-width: 800px) {

  .displaypc { display: none; }
  .displaysd { display: block; }

  /* Header SP */
  .header-content-logo.pc { display: none; }
  .header-content-logo.sd { display: inline-block; }
  .logolink { top: 16px; left: 15px; width: 50px; }
  .header-content-logo { width: 50px; }

  #header-content-linklist {
    background: linear-gradient(to bottom, #000000ab, rgba(0,0,0,0));
    position: fixed;
    top: 0; left: 0; right: 0;
    padding: 15px 0;
    height: 80px !important;
    box-sizing: border-box;
    display: flex;
    justify-content: flex-end !important;
    align-items: center;
    overflow: hidden;
  }
  #header-content-linklist .reservationBtn { display: none; }
  .header-content-linklist .menu { display: none; }
  #translation_links { display: none; }

  /* Hamburger button */
  .htmlBoxMenuSdBtnWrapper {
    display: block;
    position: absolute;
    right: 0; top: 0; bottom: 0;
    margin: auto;
  }
  .htmlBoxMenuSdBtnWrapper::before {
    content: "MENU";
    position: absolute;
    top: 15px !important;
    right: 22px !important;
    color: #fff !important;
    font-size: 10px !important;
  }
  #htmlBoxMenuSdBtn {
    display: block;
    width: 28px;
    transition: .2s;
    right: 23px;
    position: absolute;
    top: 35px !important;
    background: transparent;
    height: 27px;
    border-top: 1px solid #fff;
    cursor: pointer;
  }
  #htmlBoxMenuSdBtn::before {
    display: block; content: "";
    position: absolute;
    width: 28px; height: 1px;
    background: #fff !important;
    transition: .3s;
    top: 17px; left: 0;
  }
  #htmlBoxMenuSdBtn::after {
    display: block; content: "";
    position: absolute;
    width: 28px; height: 1px;
    background: #fff !important;
    transition: .3s;
    top: 8px; left: 0;
  }

  /* Fixed bottom bar */
  .fix-bottom-btn {
    display: block;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 9999;
  }
  .part1229-container {
    display: flex;
    justify-content: space-between;
    background-color: #7a5410;
    padding: 0;
  }
  .part1229-button {
    flex: 1;
    text-align: center;
    padding: 0 10px 7px;
    color: #fff;
    font-family: Arial, sans-serif;
    border-left: 1px solid #977436;
    text-decoration: none;
    cursor: pointer;
  }
  .part1229-icon { display: block; font-size: 1.7em; margin-bottom: 0; }
  .part1229-text { font-size: 12px; }

  /* Hero */
  .part1149 { margin: 0 0 60px; height: 100vh; max-height: 640px; padding-bottom: 60px; box-sizing: border-box; }
  .part1149_logo { left: 0; right: 0; margin: auto; text-align: center; top: 38%; }
  .part1149_logo img { max-width: 160px; }
  .part1149 .pc_only { display: none; }
  .part1149 .sd_only { display: block; }
  .part1149_image::before { background: radial-gradient(transparent, black); }

  /* Scroll */
  .part1186 { left: 22px; bottom: 170px !important; }

  /* Concept */
  .part1181 {
    margin: 0 auto 40px;
    padding: 0 10px;
    display: flex;
    flex-direction: column-reverse;
  }
  .part1181_text { padding: 0; width: auto; margin: 0 auto 15px; }
  .part1181_title { font-size: 24px; margin-bottom: 10px; }
  .part1181_image { width: auto; margin: 0 0 20px; }
  .part1181 .button_box { display: block; text-align: center; }

  /* Rooms/Gallery blocks */
  .part1182 { margin: 0 auto 60px; padding: 0 0 90px; }
  .part1182_image { margin: 0 0 10px; }
  .part1182_image img { min-height: 260px; object-fit: cover; }
  .part1182_imageText { font-size: 40px; font-weight: 400; }
  .part1182_text { display: block; padding: 0 10px; }
  .part1182_title { font-size: 24px; flex-basis: 100%; text-align: left; padding: 10px 0; font-weight: 100; }
  .part1182_description { flex-basis: 100%; font-size: 14px; padding: 0 0 20px; }
  .part1182_button { left: 0; right: 0; bottom: 40px; margin: auto; max-width: 140px; text-align: center; }
  .part1182_iconkumo { bottom: -10px; width: 120px; left: 20px; }

  /* Instagram */
  .part1215 { padding-bottom: 40px; margin: 0 0 30px; height: auto; }
  .part1215::before { height: calc(60% - 40px); }
  .part1215_title { font-size: 30px; margin: 0 0 15px; }
  .part1215_list { padding: 0 10px; }
  .part1215_list > li { margin-right: 10px; }
  .htmlBox_InstagramBox { padding: 0 10px; }
  .part1218 { margin-bottom: 40px; }

  /* Section title */
  .part1187_inner { margin-bottom: 5px; padding: 0 15px; font-size: 26px; }

  /* Map */
  .part1231 { margin: 0 auto 20px; padding: 0 10px; }
  .part1231_map { margin: 0 auto 20px; }
  .part1222 { margin: 0 auto 20px; padding: 0 10px; }
  .part1222_title { font-size: 18px; }
  .part1222_description { font-size: 14px; }

  /* News */
  #topinfolist { width: auto; }
  #topinfolist ul { margin: 0 auto; }

  /* Special offer */
  .part1236 { padding: 0 10px; margin: 0 auto 60px; }
  .part1236_text { left: 20px; }
  .part1236_title { margin: 0 0 13px; font-size: 25px; letter-spacing: 1.3px; line-height: 1.4; }
  .part1236_list { font-size: 14px; line-height: 1.4; letter-spacing: 1px; }

  /* Contact */
  .part1270 { margin: 0 auto 80px; max-width: 100%; padding: 0 10px; }
  .part1270_description { font-size: 16px; margin: 0 0 30px; }
  .part1270_item { margin: 0 0 20px; }
  .part1270_name { font-size: 18px; margin: 0 0 10px; }
  .part1270_input { height: calc(1em + 20px); font-size: 16px; }
  .part1270_textArea { height: 200px; font-size: 16px; }
  .part1270_formButton { margin: 40px auto 0; padding: 12px 40px; font-size: 16px; }

  /* Footer */
  .part1146-header { display: block; padding: 20px; }
  .part1146-header-left { max-width: 100%; }
  .part1146-header-right .part1146-logo { width: 100px; height: auto; }
  .part1146_sub-footer-left { font-size: 14px; }

  /* #tt decoration */
  #tt { transform: translate3d(20px,20px,0); right: 75px; left: auto; margin: auto; bottom: 70px; }

  /* News archive */
  .news-archive { padding: 0 15px; margin: 100px auto 60px; }
  .news-list li { flex-direction: column; }
  .news-list li .news-thumb img { width: 100%; height: 200px; }
  .news-single { padding: 0 15px; margin: 100px auto 60px; }
}

/* =============================================
   スクロールアニメーション
============================================= */
.fade-up {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}
.fade-up.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.fade-in {
  opacity: 0;
  transition: opacity 1s ease;
}
.fade-in.is-visible {
  opacity: 1;
}

/* =============================================
   ヘッダー スクロール時のグラデーション制御
============================================= */
#header-content-linklist.scrolled {
  background: linear-gradient(to bottom, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.15) 60%, rgba(0,0,0,0) 100%) !important;
}

/* part1185 各ページのヒーロー */
.part1185 {
  width: 100%;
  height: 93vh;
  position: relative;
  margin: 0 auto 100px;
}
.part1185::after {
  content: "";
  position: absolute;
  top: 0; bottom: 0; left: 0; right: 0;
  margin: auto;
  width: 100%; height: 100%;
  background: #000;
  opacity: .4;
  z-index: 2;
}
.part1185_title {
  position: absolute;
  top: 0; bottom: 0; left: 0; right: 0;
  margin: auto;
  z-index: 3;
  color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 58px;
  font-family: "Cormorant Garamond", serif;
  letter-spacing: 5px;
}
.part1185_image {
  position: absolute;
  top: 0; bottom: 0; left: 0; right: 0;
  margin: auto;
  object-fit: cover;
  width: 100%; height: 100%;
  z-index: 1;
}
.part1185_image.image_sd { display: none; }
.part25_word {
  opacity: 0;
  display: inline-block;
  transform: translate3d(0, 30px, 0);
}
.part25_word.active {
  opacity: 1;
  transition: opacity 1s, transform 1s;
  transition-timing-function: cubic-bezier(.165,.84,.44,1);
  transform: translate3d(0, 0, 0);
}

/* ギャラリーリスト */
.part1212 {
  max-width: 980px;
  margin: 0 auto 80px;
  padding: 0 40px;
  list-style: none;
}
.part1212 > li { margin: 0 0 60px; }
.part1212 > li:last-child { margin-bottom: 0; }
.part1212_image { width: 100%; vertical-align: bottom; margin: 0 auto 25px; display: block; }
.part1212_title {
  font-size: 28px;
  line-height: 1.6;
  font-weight: 700;
  padding: 0; margin: 0;
  color: #a98840;
  letter-spacing: 7px;
}
.part1212_description {
  font-size: 15px;
  line-height: 1.8;
  letter-spacing: 2px;
  padding: 0;
  margin: 10px 0 0;
}

/* 貸切風呂リスト */
.part1213 {
  max-width: 1000px;
  margin: 0 auto 100px;
  list-style: none;
  padding: 0 40px;
}
.part1213 > li { display: flex; margin: 0 0 60px; }
.part1213 > li:last-child { margin: 0; }
.part1213 > li.left .part1213_text { padding-right: 60px; }
.part1213_text { padding-top: 25px; width: 30%; box-sizing: border-box; }
.part1213_image { width: 70%; text-align: center; overflow: hidden; }
.part1213_image img { width: 100%; vertical-align: bottom; transition: transform .5s ease; }
.part1213_image img:hover { transform: scale(1.1); }
.part1213_title {
  font-size: 28px;
  line-height: 1.4;
  color: #a98840;
  margin: 0;
  padding: 1.2em 0 0;
  position: relative;
  display: inline-block;
  letter-spacing: 3px;
}
.part1213_icon {
  position: absolute;
  top: -20px; left: 0; right: 0;
  margin: auto;
  width: 40px; height: 40px;
  object-fit: contain;
}
.part1213_enTitle { font-size: 12px; margin: 4px 0 0; display: block; letter-spacing: 2px; color: #777; }
.part1213_spec { margin: 30px 0 50px; padding: 0; font-size: 14px; line-height: 1.8; letter-spacing: 1.5px; }
.part1213_spec > span { display: block; }
.part1213_link {
  background: #805c0f;
  color: #fff;
  text-decoration: none;
  padding: 12px 25px;
  display: inline-block;
  border-radius: 30px;
  font-size: 16px;
}
.part1213_link:hover { opacity: .6; }

/* ストーリー */
.part1225 { max-width: 1000px; margin: 0 auto 80px; padding: 0 40px; }
.part1225_wrapper { background: #fff; padding: 40px; border-radius: 20px; }
.part1225_title { display: flex; align-items: center; margin: 0 0 15px; }
.part1225_title > p { font-size: 20px; line-height: 1.6; margin: 0 0 0 20px; padding: 0; }
.part1225_title > img { width: 40px; }
.part1225_text { font-size: 16px; line-height: 2; margin: 0; padding: 0; }
.part1225_text > a { color: #000; text-decoration: underline; }
.part1226 { max-width: 1200px; padding: 40px 40px 0; margin: 0 auto 80px; position: relative; }
.part1226 a { color: #000; text-decoration: underline; }
.part1226::before { content: ""; position: absolute; top: 0; left: 0; right: 0; margin: auto; width: calc(100% - 40px); height: 1px; background: #000; }
.part1226_text { font-size: 18px; line-height: 1.8; margin: 0; padding: 0; }
.part1226_list { list-style: none; margin: 0; padding: 0; }
.part1226_list > li { font-size: 18px; line-height: 1.8; position: relative; padding: 0 0 0 1em; }
.part1226_list > li::before { content: "・"; position: absolute; top: 0; left: 0; }
.part1227 { text-align: center; max-width: 1200px; padding: 0 40px; margin: 0 auto 80px; }
.part1227_title { font-size: 30px; line-height: 1.6; padding: 0; margin: 0 auto 30px; color: #a98840; }
.part1227_description { text-align: left; font-size: 14px; line-height: 2.1em; padding: 0; letter-spacing: 1px; color: #333; }
.syuten { text-align: right; font-size: 10px; color: #cdc0a3; padding: 10px 0 100px 0; }
.htmlBox_contensBox { position: relative; padding-bottom: 20px; }
.contensBoxNote { font-size: 16px; line-height: 1.4; position: absolute; right: 0; left: 0; bottom: 50px; max-width: 1200px; padding: 0 40px; margin: 0 auto; text-align: right; }

/* 部屋一覧 */
.part1217 { position: relative; text-align: center; padding-bottom: 60px; margin: 0 0 60px; }
.part1217::before { content: ""; position: absolute; bottom: 0; left: 0; right: 0; width: 100%; height: calc(80% - 60px); background-color: #a98840; }
.part1217_title { font-size: 34px; margin: 0 0 20px; padding: 0; font-weight: bold; text-align: center; }
.part1217_list { list-style: none; margin: 0 auto; position: relative; max-width: 1200px; padding: 0 40px; display: flex; }
.part1217_list > li { position: relative; margin-right: 20px; width: calc((100% - 80px)/3); text-align: center; overflow: hidden; }
.part1217_list > li:last-child { margin-right: 0; }
.part1217_list > li > a { display: block; width: 100%; color: #fff; font-size: 20px; }
.part1217_image { position: relative; width: 100%; height: 0; padding-bottom: 100%; margin: 0 0 10px; overflow: hidden; }
.part1217_image img { width: 100%; height: 100%; object-fit: cover; position: absolute; top: 0; left: 0; right: 0; bottom: 0; margin: auto; transition: transform .5s ease; }
.part1217_image img:hover { transform: scale(1.1); }

@media screen and (max-width: 800px) {
  .part1185 { margin-bottom: 60px; height: 77vh; }
  .part1185_title { font-size: 45px; display: table; text-align: center; }
  .part1185 .image_sd { display: block; }
  .part1185 .image_pc { display: none; }
  .part1213 { margin: 0 auto 60px; padding: 10px 0 0; }
  .part1213 > li { display: block; margin: 0 0 40px; position: relative; padding-bottom: 70px; }
  .part1213 > li.left .part1213_text { padding-right: 0; }
  .part1213_text { padding-top: 0; width: auto; text-align: center; }
  .part1213_image { width: auto; margin: 20px 0 0; }
  .part1213_image img { min-height: 300px; object-fit: cover; }
  .part1213_title { font-size: 22px; }
  .part1213_link { position: absolute; bottom: 0; left: 0; right: 0; max-width: 200px; margin: 0 auto; text-align: center; font-size: 14px; }
  .part1212 { margin: 0 auto 40px; padding: 0 10px; }
  .part1212 > li { margin: 0 0 30px; }
  .part1212_title { font-size: 22px; letter-spacing: 3px; }
  .part1212_description { font-size: 14px; letter-spacing: 1px; margin: 5px 0 0; }
  .part1225 { margin: 0 auto 30px; padding: 0 10px; }
  .part1225_wrapper { padding: 20px; }
  .part1225_title > p { font-size: 18px; margin: 0 0 0 10px; }
  .part1225_title > img { width: 25px; }
  .part1225_text { font-size: 14px; }
  .part1226 { padding: 30px 10px 0; margin: 0 auto 40px; }
  .part1226_text { font-size: 14px; }
  .part1226_list > li { font-size: 14px; }
  .part1227 { padding: 0 10px; margin: 0 auto 40px; }
  .part1227_title { font-size: 24px; margin: 0 auto 20px; }
  .part1227_description { font-size: 14px; }
  .part1217_list { padding: 0 10px; }
  .part1217_list > li { width: calc((100% - 0px)/3); margin-right: 10px; }
  .part1217_list > li > a { font-size: 14px; }
  .contensBoxNote { font-size: 12px; bottom: 15px; padding: 0 10px; }
}

/* Jp/En リンク */
#translation_links {
  display: block;
  color: #fff;
  font-size: 14px;
  text-align: right;
  padding: 4px 15px 0 0;
  white-space: nowrap;
}
#translation_links a { color: #fff; text-decoration: none; }
#translation_links a:hover { opacity: .6; }
#translation_link_s { display: inline-block; margin: 0 4px; }

/* 観光情報一覧（トップページ） */
#tourismlist { width: 1000px; margin: 0 auto; }
#tourismlist ul {
  width: auto;
  margin: 0 0 110px 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  list-style: none;
}
#tourismlist ul li {
  width: 252px;
  display: inline-block;
  margin: 25px 17px 0;
  box-shadow: 0 0 7px rgba(0,0,0,.15);
  overflow: hidden;
  vertical-align: top;
  background: #fff;
}
#tourismlist ul li a {
  color: #333;
  text-decoration: none;
  display: block;
  transition: opacity .3s;
}
#tourismlist ul li a:hover { opacity: .7; }
#tourismlist ul li a img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  display: block;
}
#tourismlist ul li .infolist__title {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  margin: 12px 15px 5px;
  text-align: left;
  color: #333;
  font-size: 14px;
}
#tourismlist ul li .infolist__date {
  margin: 0 15px 15px;
  color: #999;
  font-size: 12px;
  display: block;
}

@media screen and (max-width: 800px) {
  #tourismlist { width: auto; }
  #tourismlist ul { margin: 0 auto; }
}

/* =============================================
   部屋詳細ページ (part1209, 1210, 1211, 1220)
============================================= */
.part1209 { width: 100%; height: 63vh; position: relative; margin: 0 auto 100px; }
.part1209::after { content: ""; position: absolute; top: 0; bottom: 0; left: 0; right: 0; width: 100%; height: 100%; background: #0c1733; opacity: .3; z-index: 2; }
.part1209_image { position: absolute; top: 0; bottom: 0; left: 0; right: 0; object-fit: cover; width: 100%; height: 100%; z-index: 1; }
.part1209_image.image_sd { display: none; }
.part1209-container { text-align: left; max-width: 600px; padding: 20px; position: absolute; top: 36%; left: 40px; z-index: 3; }
.part1209-title { font-size: 50px; color: #fff; font-weight: bold; margin-bottom: 5px; letter-spacing: 5px; }
.part1209-subtitle { font-size: 19px; color: #ccc; letter-spacing: 3px; margin-bottom: 20px; }
.part1209_link { display: inline-block; padding: 12px 30px; font-size: 20px; font-weight: 700; color: #805c0f; text-decoration: none; background: #fff; position: absolute; bottom: 60px; left: 0; right: 0; margin: auto; z-index: 999; width: 300px; text-align: center; border-radius: 40px; }
.part1209_link:hover { opacity: .6; }

.part1210-container { max-width: 1000px; margin: 0 auto 40px; display: flex; flex-direction: column; gap: 20px; padding: 0 40px; }
.part1210-row { display: flex; gap: 20px; }
.part1210-row.part1210-row-2-col .part1210-item { width: 50%; }
.part1210-row.part1210-row-3-col .part1210-item { width: 33.333%; }
.part1210-item img { width: 100%; height: auto; display: block; }

.part1211 { max-width: 1000px; margin: 0 auto 60px; padding: 0 40px; }
.part1211_list { display: flex; flex-wrap: wrap; list-style: none; margin: 0; padding: 0; }
.part1211_list > li { width: calc((100% - 40px)/2); margin: 0 40px 20px 0; }
.part1211_list > li:nth-child(2n) { margin-right: 0; }
.part1211_title { font-size: 24px; font-weight: bold; margin-bottom: 10px; }
.part1211_description { font-size: 15px; line-height: 2; letter-spacing: 1px; }

.part1220 { text-align: center; margin: 0 auto 40px; }
.part1220_image { width: 1.4em; margin: 0 0 8px; }
.part1220_text { font-size: 34px; color: #a98840; line-height: 1.6; font-weight: 700; margin: 0; padding: 0; }

.part1219 { max-width: 1000px; padding: 0 40px; margin: 0 auto 60px; font-size: 15px; line-height: 2; letter-spacing: 1px; }

@media screen and (max-width: 800px) {
  .part1209 { height: 60vh; margin-bottom: 60px; }
  .part1209_image.image_sd { display: block; }
  .part1209_image.image_pc { display: none; }
  .part1209-container { top: 37%; left: 10px; }
  .part1209-title { font-size: 40px; }
  .part1209-subtitle { font-size: 16px; }
  .part1209_link { padding: 10px 20px; font-size: 16px; bottom: 40px; width: 160px; }
  .part1210-container { margin: 0 auto 20px; padding: 0 10px; gap: 10px; }
  .part1210-row { gap: 10px; }
  .part1211 { margin: 0 auto 40px; padding: 0 10px; }
  .part1211_list > li { width: 100%; margin: 0 0 20px 0; }
  .part1211_title { font-size: 18px; }
  .part1211_description { font-size: 13px; }
  .part1219 { padding: 0 10px; margin: 0 auto 40px; }
  .part1220_text { font-size: 24px; }
}
