@charset "utf-8";
/* Google Fontsの正しいインポート */
@import url('https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700;1,900&family=Montserrat:ital,wght@0,100..900;1,100..900&family=Noto+Sans+JP:wght@100..900&family=Noto+Serif+JP:wght@200..900&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Shippori+Mincho:wght@400;500;600;700;800&display=swap');

:root {
  --easing: cubic-bezier(0.2, 1, 0.2, 1);
  --transition: 0.8s var(--easing);
  --color-base: #ece6dc;
  --color-gray: #ccc;
  --color-gray-light: #f5f5f5;
  --color-gray-darken: #535353;
  --color-theme: #b8860b;
  --color-theme-light: #f8f6f0;
  --color-theme-light-second: #d8be7d;
  --color-accent: #ff0000;
  --color-red: #cc0000;
  --color-blue: #3296e6;
  --color-green: #5ec618;
  --color-green-dark: #4aa012;
  --color-green-light: #b6e597;
  --color-line: #06c755;
  --color-sakura: #fc80a5;
  --color-orange: #ff7415;
  --color-yellow: #fec601;
  --color-cream: #ffef8f;
  --color-cream-light: #fff2cb;
  --color-insta: #ff0069;
  --color-insta-light: #ff96c1;
  --color-hotpepper: #8f3356;
  --font-base: 'Helvetica Neue', Arial, 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif;
  --box-shadow: 0.8rem 0.8rem 1.2rem rgba(0, 0, 0, 0.05), -0.8rem -0.8rem 1.2rem #fff;
  --box-shadow-hover: 1rem 1rem 1.5rem rgba(0, 0, 0, 0.08), -1rem -1rem 1.5rem #fff;
  --box-shadow-inset: inset 0.8rem 0.8rem 1.2rem rgba(0, 0, 0, 0.05), inset -0.8rem -0.8rem 1.2rem #fff;
  --box-shadow-dark: 0.8rem 0.8rem 1.2rem rgba(0, 0, 0, 0.1), -0.8rem -0.8rem 1.2rem rgba(#fff, 0.2);
}

/* Reset */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html,
body {
  font-family: var(--font-base);
  min-height: 100%;
  /* height: 100%; を削除 - スクロールを可能にする */
  box-sizing: border-box;
  line-height: 1.5;
  font-size: 62.5%;
  color: #000;
  background-color: var(--color-theme-light);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior-x: none;
  /* 横スクロール防止・オーバースクロール抑止（スマホのガタつき対策） */
}

@media only screen and (max-width: 599px) {
  html {
    overflow-x: hidden;
    overflow-y: auto;
    /* スクロールを有効化 */
    height: auto;
    /* 高さを自動調整 */
    min-height: 100%;
    /* 最小高さを100%に設定 */
  }

  body {
    overflow-x: hidden;
    overflow-y: auto;
    /* スクロールを有効化 */
    width: 100%;
    height: auto;
    /* 高さを自動調整 */
    min-height: 100%;
    /* 最小高さを100%に設定 */
  }
}

/* Reset for all elements */
/* prettier-ignore */
div,
span,
object,
iframe,
blockquote,
pre,
abbr,
address,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
samp,
small,
strong,
sub,
sup,
var,
b,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
caption,
article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
  font-style: normal;
}

a {
  color: var(--color-theme);
  text-decoration: none;
}

body.fixed {
  overflow: hidden;
  position: fixed;
  width: 100%;
  height: 100%;
}

body.subpage {
  padding-top: 151px;
}

@media only screen and (max-width: 1024px) {
  body.subpage {
    padding-top: 100px;
  }
}

/* MARK:レスポンシブ表示制御 */
@media only screen and (max-width: 1024px) {
  html {
    -webkit-text-size-adjust: 100%;
  }
}

/* スマホでは非表示（タブレット以上で表示）*/
@media only screen and (max-width: 599px) {
  .sp-hide {
    display: none !important;
  }
}

/* タブレットでは非表示（PC・スマホで表示）*/
@media only screen and (min-width: 600px) and (max-width: 1024px) {
  .tab-hide {
    display: none !important;
  }
}

/* PCでは非表示（モバイル・タブレットで表示）*/
@media only screen and (min-width: 1025px) {
  .pc-hide {
    display: none !important;
  }
}

/* スマホのみ表示 */
@media only screen and (min-width: 600px) {
  .smp {
    display: none !important;
  }
}

/* タブレット以下のみ表示 */
@media only screen and (min-width: 769px) {
  .tab {
    display: none !important;
  }
}

/* タブレットのみ表示 */
@media only screen and (max-width: 599px), only screen and (min-width: 1025px) {
  .tab-only {
    display: none !important;
  }
}

/* PCのみ表示 */
@media only screen and (max-width: 1024px) {
  .pc-only {
    display: none !important;
  }
}

/* Form Elements */
input[type='text'],
input[type='tel'],
input[type='email'],
input[type='number'],
textarea,
select {
  border-radius: 3px;
  border: solid 1px #bfbfbf;
  background-color: #f5f5f5;
  padding: 0.5rem;
  box-sizing: border-box;
  margin: 5px 0;
}

select {
  min-height: 40px;
}

@media only screen and (min-width: 1025px) {
  input[type='text'],
  input[type='tel'],
  input[type='email'],
  textarea {
    max-width: 100%;
  }

  textarea {
    width: 100%;
  }
}

@media screen and (max-width: 599px) {
  /* 幅を制御したい特定のinput要素に対して */
  input[type='text'].full-width,
  input[type='tel'].full-width,
  input[type='email'].full-width,
  textarea.full-width {
    width: 100%;
  }
}

/* Input Styles */
input:-webkit-autofill {
  transition: background-color 5000s ease-in-out 0s !important;
}

input:focus::placeholder {
  color: transparent;
}

/* フォーカス時のスタイル */
.radio-group input[type='radio']:focus-visible {
  outline: 2px solid #007bff;
  outline-offset: 2px;
}

/* ラジオボタンのサイズ調整（必要に応じて） */
.radio-group input[type='radio'] {
  width: 1.2em;
  height: 1.2em;
}

/* アクセシビリティのための非表示クラス */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

/* Utility Classes */
.center {
  text-align: center;
}

.center-img,
.center-img img {
  margin-inline: auto;
}

.bold {
  font-weight: 900;
}

/* Colors */
.red {
  color: var(--color-red);
}

.blue {
  color: var(--color-blue);
}

.green {
  color: var(--color-theme-second);
}

.orange {
  color: var(--color-orange);
}

.yellow {
  color: var(--color-yellow);
}

.pink {
  color: var(--color-theme);
}

/* Font Sizes */
.txt-10 {
  font-size: 1rem;
}

.txt-12 {
  font-size: 1.2rem;
}

.txt-14 {
  font-size: 1.4rem;
}

.txt-16 {
  font-size: 1.6rem;
}

.txt-18 {
  font-size: 1.8rem;
}

.txt-20 {
  font-size: 2rem;
}

.marker {
  background: linear-gradient(transparent 55%, #fff100 55%);
}

/* Font Families */

.noto_san {
  font-family: 'Noto Sans JP', sans-serif;
}

/* Opacity Animation */
.opa {
  transition: var(--transition);
  backface-visibility: hidden;
}

.opa:hover {
  opacity: 0.6;
  filter: alpha(opacity=60);
  backface-visibility: hidden;
}

/* Header Styles */
.site-header {
  width: 100%;
  z-index: 9999;
  transition:
    background-color 0.3s ease,
    box-shadow 0.3s ease,
    border-color 0.3s ease;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  border-bottom: 2px solid transparent;
}

/* スクロール時にヘッダー背景を白に */

.site-header.scroll {
  background-color: #fff;
  border-bottom: 2px solid var(--color-accent);
}

@media only screen and (max-width: 1024px) {
  html,
  body {
    overflow-x: hidden;
    overflow-y: auto;
    height: auto;
    min-height: 100%;
  }

  body {
    width: 100%;
  }

  .site-header {
    width: 100%;
    height: 70px;
    padding: 0;
    z-index: 9999;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    transition: all 0.4s cubic-bezier(0.25, 0.1, 0.25, 1);
    transform: translateZ(0);
    will-change: transform;
  }
  /* スクロール時にヘッダー背景を白に */
  .site-header.scroll {
    background-color: #fff;
  }
}

@media only screen and (max-width: 599px) {
  .site-header {
    height: 80px;
  }
}

.header-inner {
  max-width: 1400px;
  width: 90vw;
  margin: 0 auto;
  padding: 1.5rem 0;
  position: relative;
}

/* Header Responsive */

@media only screen and (max-width: 1024px) {
  .header-inner {
    width: 100%;
    position: relative;
    padding: 2rem;
  }
}

@media only screen and (max-width: 599px) {
  .header-inner {
    padding: 1rem 1.5rem;
    min-height: 80px;
    display: flex;
    align-items: center;
  }
}

.h-txt {
  font-size: 1.4rem;
  padding: 1rem 0;
  width: 100%;
  color: #000;
  font-weight: 400;
}

.home .h-txt {
  color: #fff;
}

.home .site-header.scroll .h-txt {
  color: #000;
}

/* スマートフォンでh1要素を非表示にする（SEOには影響なし） */
@media only screen and (max-width: 767px) {
  .h-txt {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
  }
}

.h-logo-tel-box {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.h-logo {
  padding: 1rem 0;
  transition: all 0.4s cubic-bezier(0.25, 0.1, 0.25, 1);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  font-size: 3rem;
  font-weight: 900;
  color: #000;
}

.home .h-logo {
  color: #fff;
}

.home .site-header.scroll .h-logo {
  color: #000;
}

.h-logo img {
  transition: all 0.4s cubic-bezier(0.25, 0.1, 0.25, 1);
}

.h-logo .logo-sp {
  display: none;
}

@media only screen and (max-width: 600px) {
  .h-logo {
    max-width: min(280px, calc(100vw - 90px));
    width: 100%;
    padding: 0.5rem 0;
    font-size: 2rem;
  }

  .h-logo img {
    max-width: 100%;
    max-height: 50px;
    width: auto;
    height: auto;
    object-fit: contain;
  }
}

.h_tel {
  position: relative;
  font-size: 2.4rem;
}

.h_tel a {
  font-size: 2.4rem;
  font-weight: 500;
  color: #000;
  text-decoration: none;
}

.home .h_tel,
.home .h_tel a {
  color: #fff;
}

.home .site-header.scroll .h_tel,
.home .site-header.scroll .h_tel a {
  color: #000;
}

.h_tel .tel_no a:hover,
.h_tel_smp .tel_no a:hover,
.tel-box .tel-box-no a:hover {
  color: var(--color-theme);
}

.tel-box .tel-box-no a:hover {
  color: var(--color-accent);
}

.h_tel .tel_txt,
.h_tel_smp .tel_txt,
.h_tel .tel_subtxt,
.h_tel_smp .tel_subtxt,
.tel-box .tel-box-subtxt {
  text-align: center;
  transition: all 0.3s ease;
}

.h_tel .tel_txt,
.h_tel_smp .tel_txt,
.tel-box .tel-box-txt {
  font-size: 1.2rem;
  font-family: 'Shippori Mincho', serif;
  font-weight: 500;
  font-optical-sizing: auto;
}

.tel-box .tel-box-txt,
.tel-box .tel-box-no {
  margin: 0;
}

.h_tel .tel_subtxt,
.h_tel_smp .tel_subtxt,
.tel-box .tel-box-subtxt {
  font-family: 'Shippori Mincho', serif;
  font-weight: 500;
  font-size: 1.4rem;
}

@media only screen and (max-width: 1024px) {
  .h_tel {
    display: none;
  }

  .h_tel_smp,
  .h_tel_smp a {
    font-size: 1.8rem;
    color: #fff;
    font-weight: 500;
    font-family: 'Noto Sans JP', sans-serif;
  }
}

/* Navigation */
.g-nav {
  transition: all 0.4s cubic-bezier(0.25, 0.1, 0.25, 1);
}

.g-nav > ul {
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  transition: all 0.4s cubic-bezier(0.25, 0.1, 0.25, 1);
}

@media only screen and (min-width: 1368px) {
  .g-nav > ul {
    gap: 15px;
  }
}

.g-nav > ul > li {
  position: relative;
}

.g-nav > ul > li > a {
  display: block;
  position: relative;
  color: #333;
  font-size: clamp(1.2rem, 1.018rem + 0.78vw, 1.8rem);
  transition: all 0.4s cubic-bezier(0.25, 0.1, 0.25, 1);
  white-space: nowrap;
  padding: 1.5rem;
}

.home .g-nav > ul > li > a {
  color: #fff;
}

.home .site-header.scroll .g-nav > ul > li > a {
  color: #000;
}

.g-nav > ul > li > a:hover {
  color: var(--color-theme);
}

@media only screen and (max-width: 599px) {
  .g-nav > ul > li > a {
    display: block;
    position: relative;
    color: #fff;
    font-size: clamp(1.2rem, 1.018rem + 0.78vw, 1.6rem);
    font-weight: 500;
    transition: all 0.4s cubic-bezier(0.25, 0.1, 0.25, 1);
    white-space: nowrap;
    padding: 1.5rem;
  }
  .home .site-header.scroll .g-nav > ul > li > a {
    color: #fff;
  }
}

/* スマートフォン用のスタイル */

/* スマホナビボタン */
.navbtn {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 1rem;
  z-index: 1001;
  position: relative;
  width: 30px;
  height: 30px;
}

/*アクセシビリティ対策*/
.navbtn .sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ハンバーガーメニュー */
.navbtn .hamburger,
.navbtn .hamburger::before,
.navbtn .hamburger::after {
  display: block;
  width: 25px;
  height: 2px;
  background: #fff;
  position: absolute;
  transition: all 0.3s ease-in-out;
}

.navbtn .hamburger {
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

.navbtn .hamburger::before,
.navbtn .hamburger::after {
  content: '';
  width: 100%;
}

.navbtn .hamburger::before {
  top: -8px;
}

.navbtn .hamburger::after {
  bottom: -8px;
}

/* アクティブ時 */
.navbtn.active .hamburger {
  background: transparent;
}

.navbtn.active .hamburger::before {
  top: 0;
  transform: rotate(45deg);
}

.navbtn.active .hamburger::after {
  bottom: 0;
  transform: rotate(-45deg);
}

/* Responsive Layout */
@media only screen and (min-width: 1025px) {
  .navbtn {
    display: none;
  }
}

@media only screen and (max-width: 1024px) {
  .h_tool_smp {
    background-color: var(--color-accent);
    padding: 15px;
    width: 50px;
    height: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    top: 20px;
    right: 10px;
    border-radius: 10px;
    z-index: 100;
  }
}

@media only screen and (max-width: 599px) {
  .h_tool_smp {
    width: 50px;
    height: 50px;
    top: 15px;
    padding: 12px;
  }
}

/* スマホグローバルナビ */
@media only screen and (max-width: 1024px) {
  .navbtn {
    display: block;
  }

  .g-nav {
    position: fixed;
    top: 0;
    left: 0;
    width: 75%;
    max-width: 340px;
    height: 100vh;
    background: var(--color-theme);
    transform: translateX(calc(-100% - 2px));
    transition: transform 0.3s ease;
    z-index: 90;
    justify-content: center;
    justify-items: center;
    pointer-events: none;
  }

  .g-nav.show {
    transform: translateX(0);
    pointer-events: auto;
    overflow: scroll;
    padding: 10rem 0;
  }

  .g-nav > ul:first-child {
    margin-bottom: 2.5rem;
  }

  .g-nav > ul {
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 100%;
    margin: 0;
    gap: 2rem;
  }

  .g-nav > ul > li {
    opacity: 0;
    transition:
      opacity 0.2s ease,
      transform 0.2s ease;
    overflow: hidden;
  }

  .g-nav > ul > li > a {
    position: relative;
    display: block;
    padding: 15px 20px;
    color: #fff;
    font-size: 2rem;
    /* border-bottom: 1px solid #666; */
  }

  .g-nav.show > ul > li {
    opacity: 1;
    padding: 0;
  }

  /* Submenu Toggle */
  .g-nav > ul > li > a .submenu-toggle {
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
  }

  .g-nav > ul > li > a .submenu-toggle::before,
  .g-nav > ul > li > a .submenu-toggle::after {
    content: '';
    position: absolute;
    background-color: #333;
    transition: transform 0.3s ease;
  }

  .g-nav > ul > li > a .submenu-toggle::before {
    width: 2px;
    height: 20px;
    left: 50%;
    top: 0;
    transform: translateX(-50%);
  }

  .g-nav > ul > li > a .submenu-toggle::after {
    width: 20px;
    height: 2px;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
  }

  .g-nav > ul > li.open > a .submenu-toggle::before {
    transform: translateX(-50%) rotate(90deg);
  }

  .g-nav > ul > li > a .submenu-toggle {
    width: 30px;
    height: 30px;
    position: relative;
    cursor: pointer;
    position: absolute;
    right: 0;
  }

  .g-nav > ul > li > a .submenu-toggle::before,
  .g-nav > ul > li > a .submenu-toggle::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 12px;
    height: 2px;
    background-color: #333;
    transition: transform 0.3s;
  }

  .g-nav > ul > li > a .submenu-toggle::before {
    transform: translate(-50%, -50%) rotate(90deg);
  }

  .g-nav > ul > li > a .submenu-toggle::after {
    transform: translate(-50%, -50%);
  }

  .g-nav > ul > li.open > a .submenu-toggle::before {
    transform: translate(-50%, -50%) rotate(0);
  }
}

@media only screen and (max-width: 600px) {
  .g-nav {
    width: 75%;
  }
}

/*パンくず*/
.breadcrumb-nav {
  max-width: 1400px;
  margin: 0 auto;
  padding: 1.5rem;
  background-color: var(--color-theme-light);
  font-size: 1.6rem;
}

/* Main Content */
main {
  position: relative;
  /* min-height: 100vh; */
  overflow-x: hidden;
}

#content {
  overflow-x: hidden;
}

.main-content {
  width: 90vw;
  max-width: 1400px;
  margin: 0 auto;
  padding: 6rem 0;
  line-height: 1.5;
  font-size: 1.6rem;
}

.main-content p,
.main-content > dl > dd {
  margin-bottom: 1.5rem;
}

.page-content > ul,
.main-content > ol,
.page-content > ol {
  margin-left: 3.5rem;
  margin-bottom: 3rem;
}

.main-content > ol > li,
.page-content > ol > li {
  list-style-type: decimal;
  margin-bottom: 1.5rem;
}

.page-content > ul > li {
  list-style-type: disc;
  margin-bottom: 1.5rem;
}

.main-content p a,
.page-content p a {
  text-decoration: underline;
}

/* yakatabune 記事一覧リンク（東京・横浜で分けて表示） */
.yakatabune-post-links-wrap {
  font-size: 0.8em;
  background-color: #eee9e6;
  padding: 1rem;
  margin-top: 2rem;
}

.yakatabune-post-links a {
  text-decoration: underline;
}

.yakatabune-post-links a.yakatabune-post-link-current {
  font-weight: 700;
  color: var(--color-accent);
  text-decoration: none;
  pointer-events: none;
}

/* Main Content Responsive */

@media only screen and (max-width: 1024px) {
  .main-content {
    width: 100%;
    padding: 3rem;
  }
}

@media only screen and (max-width: 599px) {
  .main-content {
    padding: 3rem;
  }
}

/*MARK:mainimage*/

.mainimage {
  background: url(../images/mainimage_2.jpg) no-repeat center bottom / cover;
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  overflow-x: hidden;
}

.mainimage-sub {
  background: url(../images/mainimage-sub.jpg) no-repeat center center / cover;
  min-height: 560px;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow-x: hidden;
}

@media only screen and (max-width: 1024px) {
  .mainimage {
    align-items: flex-end;
    height: 750px;
  }
}

@media only screen and (max-width: 599px) {
  .mainimage {
    align-items: flex-end;
    height: 560px;
  }

  .mainimage-sub {
    min-height: 300px;
  }
}

.mainimage-text {
  /* background-image: url(../images/mainimage-text_bg.png);
  aspect-ratio: 1200 / 495;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat; */
  text-align: center;
  position: absolute;
  top: 35%;
  left: 50%;
  transform: translate(-50%, -35%);
  max-width: 1200px;
  width: 80vw;
  padding: 2rem;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

@media only screen and (max-width: 600px) {
  .mainimage-text {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
}

.mainimage-title {
  font-family: 'Noto Serif JP', serif;
  font-optical-sizing: auto;
  font-weight: 600;
  font-style: normal;
  font-size: 4.8rem;
  color: var(--color-sakura);
  text-align: center;
  /* text-shadow:
    0.5px 0.5px 1px rgba(0, 0, 0, 0.5),
    0px 0px 4px rgba(255, 255, 255, 0.9),
    0px 0px 6px rgba(255, 255, 255, 1),
    0px 0px 6px rgba(255, 255, 255, 0.8); */
  margin-bottom: 3rem;
  line-height: 1.2;
}

.mainimage-title em {
  font-size: 8rem;
}

@media only screen and (max-width: 1024px) {
  .mainimage-title {
    font-size: 3.2rem;
  }

  .mainimage-title em {
    font-size: 6rem;
  }
}

@media only screen and (max-width: 600px) {
  .mainimage-title {
    font-size: 2rem;
  }

  .mainimage-title em {
    font-size: 3rem;
  }
}

/* メイン画像テキスト：ゴールド・メタリック風 */
.mainimage-text--gold .mainimage-title,
.mainimage-text--gold .mainimage-subtitle {
  color: transparent;
  background: linear-gradient(to bottom, #fee98a 0%, #eca810 15%, #d4a545 30%, #cc8c18 42%, #9a6508 50%, #cc8c18 58%, #d4a545 70%, #eca810 85%, #fee98a 100%);
  background-size: 100% 1.2em;
  background-repeat: repeat;
  -webkit-background-clip: text;
  background-clip: text;
  text-shadow: none;
}

.mainimage-text--gold .mainimage-title {
  filter: drop-shadow(2px 2px 1px rgba(0, 0, 0, 1)) drop-shadow(2px 2px 4px rgba(0, 0, 0, 0.5)) drop-shadow(0 0 8px rgba(0, 0, 0, 0.35)) drop-shadow(0 0 16px rgba(0, 0, 0, 0.2));
}

.mainimage-text--gold .mainimage-subtitle {
  filter: drop-shadow(2px 2px 1px rgba(0, 0, 0, 1)) drop-shadow(2px 2px 4px rgba(0, 0, 0, 0.5)) drop-shadow(0 0 8px rgba(0, 0, 0, 0.35)) drop-shadow(0 0 16px rgba(0, 0, 0, 0.2));
}

.mainimage-subtitle {
  font-family: 'Noto Serif JP', serif;
  font-optical-sizing: auto;
  font-weight: 600;
  font-style: normal;
  font-size: 3.6rem;
  color: #fff;
  text-align: center;
  text-shadow:
    0.5px 0.5px 0.5px rgba(0, 0, 0, 0.5),
    0px 0px 2px rgba(255, 255, 255, 1),
    0px 0px 4px rgba(255, 255, 255, 1),
    0px 0px 6px rgba(255, 255, 255, 1),
    0px 0px 8px rgba(255, 255, 255, 1),
    0px 0px 10px rgba(255, 255, 255, 1),
    0px 0px 12px rgba(255, 255, 255, 1),
    0px 0px 16px rgba(255, 255, 255, 1),
    0px 0px 20px rgba(255, 255, 255, 0.95);
  line-height: 1.2;
}

.mainimage-subtitle span {
  font-size: 4.4rem;
}

@media screen and (max-width: 600px) {
  .mainimage-subtitle {
    font-size: 1.8rem;
  }
}

@media only screen and (max-width: 600px) {
  .mainimage-subtitle span {
    font-size: 2rem;
  }
}

@media only screen and (max-width: 1024px) and (max-height: 375px) {
  .tab {
    display: inline-block !important;
  }
}

/* Footer */
#footer {
  width: 100%;
  margin: 0;
  background-image: url(../images/footer-bg.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: #fff;
}

.single-post #footer {
  background-image: none;
}

.footer-inner {
  font-size: 1.6rem;
  max-width: 1200px;
  min-height: 600px;
  margin: 0 auto;
  padding: 4rem 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.footer-title {
  font-size: 4rem;
  font-weight: 700;
  color: #fff;
  text-align: center;
}

.footer-subtitle {
  font-size: 2.4rem;
  color: #fff;
  text-align: center;
  margin: 2rem 0;
}

@media only screen and (max-width: 599px) {
  .footer-title {
    font-size: 3rem;
    line-height: 1.4;
  }
  .footer-subtitle {
    font-size: 2rem;
  }
}

.footer-contact-box {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2rem;
  margin: 4rem 0;
}

.footer-contact-box a {
  text-decoration: none;
  color: #fff;
}

.footer-contact-box a p {
  font-size: 2.4rem;
  font-weight: 700;
  color: #fff;
}

.footer-contact-box a h4 {
  font-size: 4.4rem;
  font-weight: 700;
  color: #fff;
  font-family: 'Lato', sans-serif;
  line-height: 1;
}

.f_logo {
  display: block;
  text-align: center;
}

.f_logo img {
  width: 260px;
  display: block;
  margin: 0 auto 2rem auto;
  transition: all 0.3s ease;
}

@media only screen and (max-width: 1024px) {
  .footer-inner {
    width: 100%;
    padding: 3rem;
  }
}

.footer-inner nav ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2rem;
}

.footer-inner nav ul li a {
  position: relative;
  text-decoration: none;
  color: var(--color-theme);
  /* リンクのを適宜調整 */
  display: inline-block;
  transition: color 0.3s ease;
  /* テキストの色変化のアニメーション */
  font-size: 1.4rem;
  padding: 1rem 0;
}

.footer-inner nav ul li a::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0;
  height: 1px;
  /* 下線の太さ */
  background-color: var(--color-theme);
  /* 下線の色 */
  transition: width 0.3s ease;
}

.footer-inner nav ul li a:hover {
  color: var(--color-accent);
  /* ホバー時テキスト色 */
}

.footer-inner nav ul li a:hover::after {
  width: 100%;
  /* ホバー時に下線を100%の幅 */
}

.foot-bt-link {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 3rem;
}

@media only screen and (max-width: 1024px) {
  .foot-bt-link .bt01 {
    width: 330px;
    min-width: 330px;
  }
}

@media only screen and (max-width: 599px) {
  .foot-bt-link {
    flex-direction: column;
    gap: 2rem;
  }
}

.foot-txt-link {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 3rem;
  margin: 3rem 0;
}

.foot-txt-link li a {
  font-size: 1.4rem;
  text-decoration: none;
  color: #fff;
  transition: all 0.3s ease;
}

.foot-txt-link li a:hover {
  color: var(--color-accent);
}

@media only screen and (max-width: 600px) {
  .foot-txt-link {
    flex-direction: column;
    gap: 2rem;
    padding: 2rem;
  }
}

.address_txt {
  text-align: center;
  padding: 5px;
  min-height: 42px;
  font-style: normal;
  font-size: 1.2rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  background-color: #000;
  color: #fff;
}

@media only screen and (max-width: 1024px) {
  .footer-inner nav ul li a {
    font-size: 1.3rem;
  }
}

@media only screen and (max-width: 599px) {
  #footer {
    padding-bottom: 0;
  }

  .footer-inner {
    width: 100%;
    padding: 3rem;
  }
}

/*MARK:サブコンテンツ*/
.subpage section {
  background-color: var(--color-theme-light);
}

.section-title {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  font-style: normal;
  font-size: 4.8rem;
  color: #000;
  position: relative;
  margin-bottom: 4rem;
  text-align: center;
}

@media only screen and (max-width: 1024px) {
  .section-title {
    font-size: 4rem;
  }
}

@media only screen and (max-width: 599px) {
  .section-title {
    font-size: 2.4rem;
  }
}

.section-subtitle {
  position: relative;
  font-size: 2rem;
  font-weight: 700;
  color: #000;
  font-family: 'Noto Sans JP', sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
  margin-bottom: 3rem;
}

@media only screen and (max-width: 599px) {
  .section-subtitle {
    font-size: 1.6rem;
  }
}

.section-subtitle-border-left {
  font-size: 3rem;
  color: #000;
  font-family: 'Noto Sans JP', sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  margin-bottom: 3rem;
  padding-left: 1.5rem;
  border-left: 1rem solid var(--color-accent);
}

#plan {
  /* background-color: #fff; */
  background-image: url(../images/plan_bg.gif);
  background-repeat: repeat;
}

#plan .section-title {
  color: #fff;
  text-shadow: 2px 2px 1px rgba(0, 0, 0, 0.9);
}

.plan-img-wrap {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3rem;
}

.plan-list-wrap {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 6rem;
  padding: 6rem 0;
}

@media only screen and (max-width: 1024px) {
  .plan-img-wrap {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 3rem;
  }

  .plan-list-wrap {
    grid-template-columns: repeat(1, 1fr);
    gap: 3rem;
  }
}

.plan-list-item {
  background-color: var(--color-theme-light);
  border: solid 1px #ccc;
  padding: 2rem;
  border-radius: 0.5rem;
}

.plan-list-title {
  font-size: 2.4rem;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  font-style: normal;
  margin-bottom: 1rem;
  position: relative;
  display: flex;
  align-items: center;
  gap: 1rem;
}

.plan-list-title::before {
  content: '';
  display: inline-block;
  background-image: url(../images/cruise-icon.png);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  width: 120px;
  height: 27px;
  aspect-ratio: 120 / 27;
}

.plan-list-item .plan-list-price {
  font-size: 1.6rem;
  margin-bottom: 1rem;
}

.plan-list-price span {
  font-size: 2rem;
  font-weight: 700;
  color: var(--color-accent);
}

.plan-list-subtitle {
  font-size: 1.8rem;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  font-style: normal;
}

#omotenashi {
  background-image: url(../images/omote_bg.jpg);
  background-repeat: repeat;
}

#omotenashi .section-title {
  color: #fff;
  text-shadow: 2px 2px 1px rgba(0, 0, 0, 0.9);
}

#omotenashi .main-content,
#omotenashi .section-subtitle {
  color: #fff;
  text-shadow: 2px 2px 1px rgba(0, 0, 0, 0.9);
}

.omotenashi-grid {
  display: grid;
  grid-template-columns: 600px 1fr;
  gap: 3rem;
  margin-top: 6rem;
  margin-bottom: 6rem;
}

@media only screen and (max-width: 599px) {
  .omotenashi-grid {
    grid-template-columns: 1fr;
  }
}

.omotenashi-list {
  padding: 2rem;
  border-radius: 0.5rem;
  margin-top: 2rem;
  margin-bottom: 2rem;
  background-color: #fff;
  border-radius: 0.5rem;
}
.omotenashi-list ul {
  list-style: disc;
  padding-left: 3rem;
}

.omotenashi-list li {
  font-size: 1.4rem;
  color: #000;
  text-shadow: none;
}

.omotenashi-list ul li::marker {
  color: var(--color-theme);
  font-size: 2.4rem;
}

.option-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3rem;
  margin-top: 6rem;
  margin-bottom: 6rem;
}

@media only screen and (max-width: 599px) {
  .option-grid {
    grid-template-columns: 1fr;
  }
}

.option-img-text {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.option-img img {
  width: 100%;
  height: auto;
  aspect-ratio: 400 / 300;
  object-fit: cover;
  object-position: center;
}

.option-text {
  background-color: #fff;
  font-size: 1.4rem;
  color: #000;
  text-shadow: none;
  padding: 2rem;
  border-radius: 0.5rem;
  height: 100%;
}

.option-text p:last-child {
  margin-bottom: 0;
}

.home #event {
  background-color: #fff;
}

#area .section-title,
#event .section-title,
#subpage .section-title,
.subpage-title {
  position: relative;
  text-align: center;
}

#area .section-title::after,
#event .section-title::after,
#subpage .section-title::after,
.subpage-title::after {
  content: '';
  display: block;
  background-image: url(../images/cruise-icon.png);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  width: 120px;
  height: 27px;
  aspect-ratio: 120 / 27;
  margin: 3rem auto 0;
}

.subpage-title {
  font-size: 3rem;
}

.event-list-wrap {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}

@media screen and (max-width: 1024px) {
  .event-list-wrap {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (max-width: 599px) {
  .event-list-wrap {
    grid-template-columns: 1fr;
  }
}

.event-list-item-img {
  overflow: hidden;
}

.event-list-item-img img {
  width: 100%;
  height: auto;
  aspect-ratio: 400 / 300;
  object-fit: cover;
  object-position: center;
  transition: transform 0.3s ease;
}

.event-list-item-img img:hover {
  transform: scale(1.05);
}

.event-list-item h4 {
  font-size: 2.4rem;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  font-style: normal;
  margin-top: 1rem;
  margin-bottom: 1rem;
}

.event-list-item p {
  font-size: 1.4rem;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-style: normal;
  margin-bottom: 2rem;
}

.event-list-item .bt01 {
  min-width: 200px;
}

@media only screen and (max-width: 1024px) {
  .event-list-item .bt01 {
    min-width: 100px;
  }
}

/*トップページイベント情報表組み*/

.event-title {
  color: var(--color-theme);
  font-size: 1.6rem;
  font-weight: 700;
  font-style: normal;
}
.event-list-item-content table,
.event-list-dl {
  border-top: 1px solid #ccc;
  margin: 2rem 0;
}

.event-list-item-content table tr td {
  padding: 1rem 0;
  border-bottom: 1px solid #ccc;
  font-size: 1.3rem;
}

.event-list-dl-item {
  display: grid;
  gap: 1rem;
  grid-template-columns: 70px 1fr;
  align-items: center;
  padding: 1rem 0;
  border-bottom: 1px solid #ccc;
  font-size: 1.3rem;
}

.hanabi .event-list-dl-item {
  grid-template-columns: 120px 1fr;
}

/* イベント記事：メインとサイドバーのレイアウト */
#event .page-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 3rem;
  align-items: flex-start;
}

#event .page-wrap .page-content {
  flex: 1;
  min-width: 0;
}

#event .page-wrap .sidebar {
  flex-shrink: 0;
  width: 280px;
}

@media screen and (max-width: 767px) {
  #event .page-wrap {
    flex-direction: column;
  }

  #event .page-wrap .sidebar {
    width: 100%;
  }
}

/* イベント記事：タイトル・ヘッダーメタ情報 */
.entry-header {
  border-bottom: 2px solid var(--color-theme);
  margin: 3rem 0;
}

.event-entry-title {
  font-size: 3rem;
  margin-bottom: 1.5rem;
}

.event-header-meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: center;
  gap: 1rem;
  margin-bottom: 2rem;
}

.event-header-meta .event-date {
  flex-shrink: 0;
  font-size: 1.4rem;
  color: var(--color-gray-darken);
}

.event-header-meta .event-date time {
  font-style: normal;
}

/* イベントサイドバー：アーカイブリンク */
.event-sidebar {
  background-color: #fff;
  padding: 2rem;
  border-radius: 0.5rem;
}

.event-sidebar-title {
  font-size: 1.6rem;
  font-weight: 700;
  margin: 0 0 1.5rem;
  padding-bottom: 1rem;
  border-bottom: 2px solid var(--color-theme);
}

.event-archive-links ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.event-archive-links li {
  margin-bottom: 0.8rem;
}

.event-archive-links a {
  display: block;
  padding: 0.5rem 0;
  text-decoration: none;
  color: inherit;
  transition:
    color 0.3s ease,
    padding-left 0.3s ease;
}

.event-archive-links a:hover {
  color: var(--color-theme);
  padding-left: 0.5rem;
}

/* 最新の記事一覧 */
.event-sidebar .event-latest-posts {
  margin-top: 2.5rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.event-latest-posts ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.event-latest-posts li {
  margin-bottom: 0.8rem;
  font-size: 1.4rem;
}

.event-latest-posts a {
  display: block;
  padding: 0.5rem 0;
  text-decoration: none;
  color: inherit;
  transition:
    color 0.3s ease,
    padding-left 0.3s ease;
}

.event-latest-posts a:hover {
  color: var(--color-theme);
  padding-left: 0.5rem;
}

/* 月別アーカイブ */
.event-sidebar .event-monthly-archive {
  margin-top: 2.5rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.event-monthly-archive ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.event-monthly-archive li {
  margin-bottom: 0.8rem;
  font-size: 1.4rem;
}

.event-monthly-archive a {
  display: block;
  padding: 0.5rem 0;
  text-decoration: none;
  color: inherit;
  transition:
    color 0.3s ease,
    padding-left 0.3s ease;
}

.event-monthly-archive a:hover {
  color: var(--color-theme);
  padding-left: 0.5rem;
}

/* イベント記事の前後ナビゲーション */
#event .post-navigation {
  margin-top: 4rem;
  padding-top: 2rem;
  border-top: 1px solid var(--color-gray);
}

#event .post-navigation .nav-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 1.5rem;
}

#event .post-navigation .nav-previous,
#event .post-navigation .nav-next {
  flex: 1;
  min-width: 0;
}

#event .post-navigation .nav-next {
  text-align: right;
}

#event .post-navigation .nav-subtitle {
  display: block;
  font-size: 1.2rem;
  color: var(--color-gray-darken);
  margin-bottom: 0.3em;
}

#event .post-navigation .nav-title {
  font-weight: 500;
}

#event .post-navigation a {
  text-decoration: none;
  color: inherit;
  transition: color 0.3s ease;
}

#event .post-navigation a:hover {
  color: var(--color-theme);
}

/* #concept: スマホ=タイトル→画像→テキスト、PC=画像左・テキスト右 */

#concept {
  background-color: var(--color-theme-light);
}

#concept .main-content {
  padding-top: 6rem;
  padding-bottom: 6rem;
}

.concept-inner {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.concept-title {
  font-size: 2.4rem;
  font-weight: 700;
  color: #000;
  line-height: 1.4;
  margin: 0 0 0.5rem;
  order: 1;
}

.concept-img-wrap {
  order: 2;
}

.concept-img {
  width: 100%;
  overflow: hidden;
  border-radius: 0.5rem;
}

.concept-img img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

.concept-body {
  order: 3;
}

.concept-body p {
  margin-bottom: 1.5rem;
  font-size: 1.6rem;
  line-height: 1.8;
}

.concept-body p:last-of-type {
  margin-bottom: 2.5rem;
}

.concept-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
}

.concept-btns .bt01 {
  flex: 1;
  min-width: 200px;
}

@media only screen and (min-width: 1025px) {
  .concept-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto auto;
    gap: 3rem 4rem;
    align-items: start;
  }

  .concept-title {
    grid-column: 2;
    grid-row: 1;
    order: unset;
    font-size: 6rem;
    margin-bottom: 0;
    line-height: 1.2;
  }

  .concept-img-wrap {
    grid-column: 1;
    grid-row: 1 / -1;
    order: unset;
  }

  .concept-img {
    position: sticky;
    top: 2rem;
  }

  .concept-body {
    grid-column: 2;
    grid-row: 2;
    order: unset;
  }

  .concept-body p {
    font-size: 1.6rem;
  }

  .concept-btns {
    grid-column: 2;
    grid-row: 3;
    gap: 2rem;
  }

  .concept-btns .bt01 {
    min-width: 240px;
    flex: 0 1 auto;
  }
}

@media only screen and (max-width: 1024px) {
  .concept-img {
    width: 60vw;
    margin: 0 auto;
  }

  .concept-body {
    width: 80vw;
    margin: 0 auto;
  }

  .concept-title {
    font-size: 4rem;
    text-align: center;
  }
}

#flow {
  background-color: var(--color-theme-light);
}

.flow-wrap {
  margin: 3rem auto;
  position: relative;
}

.flow-item {
  display: flex;
  align-items: flex-start;
  position: relative;
  z-index: 1;
  gap: 20px;
}

.flow-item:last-child {
  margin-bottom: 0;
}

.flow-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-right: 4rem;
  flex-shrink: 0;
  width: 5rem;
  position: relative;
  align-self: stretch;
}

@media only screen and (max-width: 1024px) {
  .flow-step {
    margin-right: 3rem;
  }
}

@media only screen and (max-width: 599px) {
  .flow-step {
    margin-right: 0;
  }
}

.step-circle {
  width: 5rem;
  height: 5rem;
  border-radius: 50%;
  border: 3px solid var(--color-theme);
  background-color: var(--color-theme);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: relative;
  font-family: 'Noto Serif JP', serif;
  font-weight: 700;
  font-size: 2.4rem;
  color: #fff;
  line-height: 1;
}

@media only screen and (max-width: 1024px) {
  .step-circle {
    width: 7rem;
    height: 7rem;
    font-size: 2rem;
  }
}

@media only screen and (max-width: 599px) {
  .step-circle {
    width: 6rem;
    height: 6rem;
    font-size: 1.8rem;
  }
}

.flow-line {
  width: 3px;
  background-color: var(--color-theme);
  flex: 1;
  min-height: 4rem;
  margin: 0 auto;
}

/* 最後のflow-itemのflow-lineは非表示 */
.flow-item:last-child .flow-line {
  display: none;
}

.flow-content {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 225px;
  gap: 3rem;
  flex: 1;
  min-width: 0;
}

.flow-img {
  justify-self: end;
  width: 225px;
}

.flow-item:not(:last-of-type) .flow-img {
  padding-bottom: 6rem;
}

.flow-img-1 {
  align-self: start;
}

.flow-img-2,
.flow-img-3,
.flow-img-4 {
  align-self: center;
}

.flow-img img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  object-position: center bottom;
}

@media only screen and (max-width: 599px) {
  .flow-content {
    grid-template-columns: 1fr;
  }

  .flow-img {
    width: 100%;
    max-width: 225px;
    margin-inline: auto;
  }
}

.flow-txt h4,
.flow-txt h3 {
  font-size: 3rem;
  font-weight: bold;
  margin: 1rem 0;
  line-height: 1.4;
}

@media only screen and (max-width: 1024px) {
  .flow-txt {
    font-size: 2rem;
  }
}

.flow-detail {
  font-size: 1.8rem;
}

#cruise {
  background-color: #fff;
}

#cruise .main-content {
  width: 90vw;
}

@media only screen and (max-width: 1024px) {
  #cruise .main-content {
    width: 100%;
  }
}

.cruise-container {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 3rem;
}

@media only screen and (max-width: 1024px) {
  .cruise-container {
    grid-template-columns: 1fr;
  }
}

/* @media only screen and (max-width: 600px) {
  .cruise-container {
    grid-template-columns: 1fr;
  }
} */

.cruise-item {
  position: relative;
  padding: 4rem;
}

@media only screen and (max-width: 1024px) {
  .cruise-item {
    padding: 0;
  }
}

.cruise-item-map img {
  margin-inline: auto;
}

.cruise-item-title {
  background-color: var(--color-theme-light);
  border: solid 2px var(--color-theme);
  border-radius: 0.5rem;
  padding: 2rem;
  font-weight: 500;
  margin: 3rem 0;
  position: relative;
  display: flex;
  align-items: center;
  gap: 2rem;
}

.cruise-item-title::after {
  content: '';
  display: inline-block;
  background-image: url(../images/cruise-icon.png);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  width: 120px;
  height: 27px;
  aspect-ratio: 120 / 27;
}

.cruise-list-wrap {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}

.cruise-category-list-wrap {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
}

@media only screen and (max-width: 600px) {
  .cruise-list-wrap {
    grid-template-columns: repeat(2, 1fr);
  }

  .cruise-category-list-wrap {
    grid-template-columns: repeat(2, 1fr);
  }
}

.cruise-list-item,
.cruise-category-list-item {
  position: relative;
}

.cruise-list-item h4,
.cruise-category-list-item h4 {
  color: #000;
  margin-top: 1rem;
  transition: color 0.3s ease;
}

.cruise-list-item:hover h4,
.cruise-category-list-item:hover h4 {
  color: var(--color-theme);
}

.cruise-list-item-img,
.cruise-category-list-item-img {
  overflow: hidden;
}

.cruise-list-item-img img,
.cruise-category-list-item-img img {
  width: 100%;
  height: auto;
  aspect-ratio: 188 / 77;
  object-fit: cover;
  object-position: center;
  transition: transform 0.3s ease;
}

.cruise-list-item:hover .cruise-list-item-img img,
.cruise-category-list-item:hover .cruise-category-list-item-img img {
  transform: scale(1.05);
}

/* MARK:grid layouts */
.grid-2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 3rem;
}

.grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3rem;
}
.grid-3 img {
  width: 100%;
  height: auto;
  object-fit: cover;
  object-position: center;
}

@media only screen and (max-width: 1024px) {
  .grid-2 {
    grid-template-columns: 1fr;
  }
}

@media only screen and (max-width: 600px) {
  .grid-3 {
    grid-template-columns: 1fr;
  }
}

.txt-img-grid {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 6rem;
}

@media only screen and (max-width: 1024px) {
  .txt-img-grid {
    grid-template-columns: 1fr;
  }
}

.img-box img {
  border-radius: 1rem;
}

@media only screen and (max-width: 1024px) {
  .img-box img {
    margin-inline: auto;
  }
}

/* MARK:Tables */
.legal_notice {
  border-collapse: collapse;
  width: 100%;
  margin: 0 auto;
  padding: 0;
  border-top: 2px solid var(--color-theme);
  border-bottom: 2px solid var(--color-theme);
}

.legal_notice th {
  text-align: left;
  vertical-align: middle;
  padding: 13px 15px;
  color: #000;
  font-size: 1.8rem;
  border-bottom: 1px solid var(--color-theme);
  width: 15%;
}

.legal_notice td {
  padding: 13px 15px;
  color: #000;
  font-size: 1.6rem;
  border-bottom: 1px solid var(--color-theme);
}

.form {
  border-collapse: collapse;
  width: 100%;
  margin: 0 auto;
  padding: 0;
  border-top: 1px solid #ccc;
  border-left: 1px solid #ccc;
  margin-bottom: 20px;
}

.form th {
  text-align: left;
  vertical-align: middle;
  padding: 13px 15px;
  background: #f5f5f5;
  color: #000;
  font-size: 1.6rem;
  border-right: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
  width: 30%;
}

.form td {
  padding: 13px 15px;
  background: #fff;
  color: #000;
  font-size: 1.6rem;
  border-bottom: 1px solid #ccc;
  border-right: 1px solid #ccc;
}

.datepicker {
  min-width: 300px;
}

@media only screen and (max-width: 1024px) {
  .legal_notice th {
    width: 20%;
  }
}

@media only screen and (max-width: 599px) {
  .legal_notice th,
  .form th {
    display: block;
    width: 100%;
    border-bottom: 0;
  }

  .legal_notice th {
    padding: 1rem 0 0 0;
  }

  .legal_notice td,
  .form td {
    display: block;
    width: 100%;
  }

  .legal_notice td {
    padding: 1rem 0;
  }

  .form th {
    padding-bottom: 0;
  }
}

@media only screen and (max-width: 599px) {
  .form td {
    padding: 10px;
  }

  .form th .red {
    margin-left: 5px;
  }
}

@media only screen and (min-width: 600px) and (max-width: 1024px) {
  .form input[type='text'],
  .form input[type='tel'],
  .form input[type='email'] {
    width: 90%;
    max-width: 400px;
  }
}

/* Page Top Button */
#page-top {
  display: none; /* JSでスクロール時に表示 */
  position: fixed;
  bottom: 0;
  right: 0;
  font-size: 1.2rem;
  z-index: 20;
  margin: 0 !important;
}

#page-top a {
  background: var(--color-theme);
  text-decoration: none;
  color: #fff;
  width: 42px;
  height: 42px;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: var(--transition);
}

@media only screen and (min-width: 1281px) {
  #page-top a:hover {
    text-decoration: none;
    background: var(--color-theme-light);
    color: var(--color-theme);
  }
}

@media only screen and (max-width: 599px) {
  #page-top {
    bottom: 57px;
  }
}

/*MARK:gmap*/
.gmap {
  position: relative;
  width: 100%;
  height: 0;
  padding-bottom: 75%;
  /* 4:3の比率 */
  overflow: hidden;
}

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

@media only screen and (max-width: 599px) {
  .gmap {
    padding-bottom: 56.25%;
    /* 16:9の比率 */
  }
}

/*MARK:Margin Padding*/
.mt-2 {
  margin-top: 2rem;
}

.mt-3 {
  margin-top: 3rem;
}

.mt-4 {
  margin-top: 4rem;
}

.mt-6 {
  margin-top: 6rem;
}

.mt-10 {
  margin-top: 10rem;
}

.mb-2 {
  margin-bottom: 2rem;
}

.mb-4 {
  margin-bottom: 4rem;
}

.pl-10 {
  padding-left: 1rem;
}
.pr-10 {
  padding-right: 1rem;
}
.pl-15 {
  padding-left: 1.5rem;
}
.pr-15 {
  padding-right: 1.5rem;
}
.pl-20 {
  padding-left: 2rem;
}
.pr-20 {
  padding-right: 2rem;
}

/* Button Style */

.arrow_list li {
  padding: 1rem;
  color: var(--color-green-dark);
  font-size: 1.6rem;
  position: relative;
}

.arrow_list li::before {
  font-family: 'Font Awesome 6 Free';
  content: '\f054';
  font-weight: 900;
  margin-right: 10px;
}

.link-list,
.link_list_center {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin: 3rem 0;
}

@media only screen and (max-width: 599px) {
  .link-list,
  .link_list_center {
    margin: 0;
  }
}

.link_list_center {
  justify-content: center;
}

.link-list li a::before,
.link_list_center li a::before {
  font-family: 'Font Awesome 6 Free';
  content: '\f138';
  font-weight: 900;
  margin-right: 10px;
  color: var(--color-theme);
  font-size: 1.8rem;
}

.link-list li a,
.link_list_center li a {
  display: inline-block;
  color: #000;
  font-size: 1.4rem;
  position: relative;
  text-decoration: none;
  padding-bottom: 2px;
  padding-left: 0;
}

.link-list li a::after,
.link_list_center li a::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0;
  height: 1px;
  background-color: var(--color-theme);
  transition: width 0.3s ease;
}

.link-list li a:hover::after,
.link_list_center li a:hover::after {
  width: 100%;
}

.link-bt-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 3rem;
  margin: 3rem 0;
}

.bt-list {
  display: flex;
  flex-wrap: wrap;
  gap: 3rem;
  margin: 3rem 0;
}

.bt-list-center {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 3rem;
  margin-top: 3rem;
}

.bt-img img {
  transition: all 0.3s ease;
}

.bt-img:hover img {
  transform: translateY(-5px);
}

.bt02,
.bt-item,
.form-bt {
  display: inline-block;
  transition:
    var(--transition),
    transform 0.3s ease;
  text-decoration: none !important;
}

.bt01 {
  display: inline-flex;
  align-items: center;
  transition:
    var(--transition),
    transform 0.3s ease;
  text-decoration: none !important;
  background-color: var(--color-accent);
  color: #fff;
  font-size: 1.8rem;
  padding: 10px 20px;
  position: relative;
  min-width: 360px;
  gap: 1rem;
  border: none;
  cursor: pointer;
  font-family: inherit;
  justify-content: space-between;
}

/* CF7 submit は input のため ::before/::after が効かない。form-bt-wrap でラップ。wpcf7-spinner 対応で inline-block */
.form-bt-wrap {
  display: inline-block;
  position: relative;
  transition:
    var(--transition),
    transform 0.3s ease;
  background-color: var(--color-accent);
  color: #fff;
  font-size: 1.8rem;
  padding: 10px 20px;
  min-width: 360px;
  border: none;
  cursor: pointer;
  font-family: inherit;
  text-align: center;
  text-decoration: none !important;
  padding-left: 75px;
  padding-right: 75px;
}

.form-bt-wrap .form-bt {
  display: inline-block;
  background: transparent;
  border: none;
  color: #fff;
  font-size: inherit;
  font-family: inherit;
  cursor: pointer;
  padding: 0;
  margin: 0;
  vertical-align: middle;
  -webkit-appearance: none;
  appearance: none;
}

.form-bt-wrap .form-bt:hover {
  transform: none;
}

.form-bt-wrap .wpcf7-spinner {
  display: inline-block;
  vertical-align: middle;
  margin-left: 0.5em;
}

/* 送信中のボタンフィードバック */
.wpcf7-submitting .form-bt-wrap {
  pointer-events: none;
  opacity: 0.85;
}

@media only screen and (max-width: 599px) {
  .bt01 {
    padding: 8px;
    min-width: 100%;
  }

  .form-bt-wrap {
    min-width: 100%;
    padding-left: 65px;
    padding-right: 65px;
  }
}

.bt01:hover,
.form-bt-wrap:hover {
  transform: translateY(-5px);
}

.bt01::before {
  content: '';
  display: block;
  background-image: url(../images/logo-mark.jpg);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  width: 45px;
  aspect-ratio: 55 / 43;
  flex-shrink: 0;
  order: -1;
  margin-right: auto;
}

.bt01::after {
  font-family: 'Font Awesome 5 Free';
  content: '\f0da';
  font-weight: 900;
  color: #fff;
  font-size: 1.4rem;
  flex-shrink: 0;
  order: 1;
  width: 45px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-left: auto;
}

/* form-bt-wrap の ::before/::after は absolute で配置（inline-block 時） */
.form-bt-wrap {
  position: relative; /* 既にある想定 */
}

.form-bt-wrap .wpcf7-spinner {
  position: absolute;
  right: 20px; /* 矢印の内側や、右端に寄せる */
  top: 50%;
  transform: translateY(-50%);
  margin: 0;
}
.form-bt-wrap::before {
  content: '';
  position: absolute;
  left: 20px;
  top: 50%;
  transform: translateY(-50%);
  background-image: url(../images/logo-mark.jpg);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  width: 45px;
  aspect-ratio: 55 / 43;
}

.form-bt-wrap::after {
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  font-family: 'Font Awesome 5 Free';
  content: '\f0da';
  font-weight: 900;
  color: #fff;
  font-size: 1.4rem;
}

.bt02 {
  border: solid 1px var(--color-theme-second);
  color: var(--color-theme-second);
  min-width: 250px;
  padding: 10px 20px;
  font-family: 'Shippori Mincho', serif;
  font-weight: 400;
  position: relative;
  background-color: #fff;
  opacity: 1;
}

.bt02:hover {
  background-color: var(--color-theme-second);
  color: #fff;
  transform: translateY(-5px);
}

.bt02::after {
  font-family: 'Font Awesome 5 Free';
  content: '\f0da';
  font-weight: 900;
  padding-left: 1rem;
  /*文字との隙間*/
  color: var(--color-theme-second);
  font-size: 1.4rem;
  text-decoration: none;
  vertical-align: middle;
  /* 縦中央に配置 */
  display: inline-block;
  /* インラインブロック要素に変更 */
  transition:
    var(--transition),
    transform 0.3s ease;
}

.bt02:hover::after {
  color: #fff;
}

.bt-item {
  border: solid 1px var(--color-red);
  color: #fff;
  min-width: 250px;
  padding: 10px 20px;
  font-weight: 400;
  position: relative;
  background-color: var(--color-red);
  opacity: 1;
  text-align: center;
  border-radius: 100px;
}

.bt-item:hover {
  background-color: var(--color-red);
  color: #fff;
  transform: translateY(-5px);
}

.bt-item::after {
  font-family: 'Font Awesome 5 Free';
  content: '\f0da';
  font-weight: 900;
  padding-left: 1rem;
  /*文字との隙間*/
  color: var(--color-theme-second);
  font-size: 1.4rem;
  text-decoration: none;
  vertical-align: middle;
  /* 縦中央に配置 */
  display: inline-block;
  /* インラインブロック要素に変更 */
  transition:
    var(--transition),
    transform 0.3s ease;
}

.bt-item:hover::after {
  color: #fff;
}

.line_icon {
  transition:
    var(--transition),
    transform 0.3s ease;
}

.line_icon:hover {
  transform: translateY(-5px);
}

@media screen and (min-width: 1025px) {
  .bt01 {
    min-width: 360px;
  }
}

@media only screen and (max-width: 1024px) {
  .bt_list li a {
    width: 100%;
  }
}

@media only screen and (max-width: 599px) {
  .bt_list li {
    width: 100%;
  }
}

.disc-list {
  list-style: disc;
  margin-left: 3.5rem;
  margin-bottom: 3.5rem;
}

.disc-list li::marker {
  color: var(--color-theme);
  font-size: 2.4rem;
}

/* FAQ Section */
#faq {
  background-color: var(--color-theme-light);
  padding: 8rem 0;
}

.faq-title {
  font-size: 3.6rem;
  text-align: center;
}

.faq-container {
  max-width: 1200px;
  margin: 0 auto;
  margin-top: 6rem;
}

.faq-item {
  background-color: #fff;
  border: 3px solid var(--color-theme);
  border-radius: 15px;
  margin-bottom: 3rem;
  padding: 2.5rem 3rem;
  overflow: hidden;
}

.faq-question {
  display: flex;
  align-items: center;
  padding-bottom: 2rem;
  gap: 2rem;
  border-bottom: 2px solid var(--color-theme);
  position: relative;
}

.faq-question::before {
  content: 'Q';
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  background-color: #000;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.4rem;
  font-weight: bold;
  flex-shrink: 0;
}

.faq-answer {
  display: flex;
  align-items: flex-start;
  padding-top: 2rem;
  gap: 2rem;
  position: relative;
}

.faq-answer::before {
  content: 'A';
  color: #000;
  font-size: 2.4rem;
  font-weight: bold;
  line-height: 1;
  padding: 0 1rem;
}

.faq-question {
  font-size: 2.4rem;
  font-weight: bold;
  color: #000;
  line-height: 1.8;
}

.faq-answer {
  font-size: 1.8rem;
  line-height: 1.8;
  color: #000;
}

@media only screen and (max-width: 1024px) {
  #faq {
    padding: 6rem 0;
  }

  .faq-container {
    margin-top: 4rem;
  }

  .faq-question {
    padding-bottom: 2rem;
    gap: 1.5rem;
  }

  .faq-answer {
    padding-top: 2rem;
    gap: 1.5rem;
  }

  .faq-question::before,
  .faq-answer::before {
    width: 3.5rem;
    height: 3.5rem;
    font-size: 2rem;
  }

  .faq-question {
    font-size: 1.8rem;
  }

  .faq-answer {
    font-size: 1.4rem;
  }
}

@media only screen and (max-width: 599px) {
  #faq {
    padding: 4rem 0;
  }

  .faq-container {
    margin-top: 3rem;
  }

  .faq-question {
    padding-bottom: 1.5rem;
    gap: 1rem;
  }

  .faq-answer {
    padding-top: 1.5rem;
    gap: 1rem;
  }

  .faq-question::before,
  .faq-answer::before {
    width: 3rem;
    height: 3rem;
    font-size: 1.8rem;
  }

  .faq-question {
    font-size: 1.6rem;
  }

  .faq-answer {
    font-size: 1.3rem;
    line-height: 1.6;
  }

  .faq-item {
    margin-bottom: 2rem;
  }
}

/*pagenavi*/
.wp-pagenavi {
  clear: both;
  text-align: center;
  font-size: 14px;
  padding: 25px 0;
}
.wp-pagenavi a,
.wp-pagenavi span {
  color: #fff;
  background-color: var(--color-theme);
  border: 1px solid var(--color-theme);
  padding: 5px 15px;
  margin: 0 2px;
  white-space: nowrap;
  border-radius: 3px;
  transition: 0.2s ease-in-out;
  text-align: center;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.wp-pagenavi a:hover {
  background-color: #fff;
  color: var(--color-theme);
  border-color: var(--color-theme);
}
.wp-pagenavi span.current {
  color: var(--color-theme);
  background-color: #fff;
  border-color: var(--color-theme);
  font-weight: bold;
}

@media screen and (max-width: 768px) {
  .wp-pagenavi a,
  .wp-pagenavi span {
    color: #fff;
    background-color: var(--color-theme);
    border: 1px solid var(--color-theme);
    padding: 1% 3%;
    margin: 2% 2px;
    white-space: nowrap;
    border-radius: 3px;
    transition: 0.2s ease-in-out;
    text-align: center;
    text-decoration: none;
    display: inline-block;
  }
}

.page-numbers {
  clear: both;
  text-align: center;
}
.page-numbers li {
  display: inline-block;
}
.page-numbers a,
.page-numbers span {
  color: #fff;
  background-color: var(--color-theme);
  border: 1px solid var(--color-theme);
  padding: 8px 15px;
  margin: 0 2px;
  white-space: nowrap;
  border-radius: 3px;
  transition: 0.2s ease-in-out;
  text-align: center;
  text-decoration: none;
}
.page-numbers a:hover {
  background-color: #fff;
  color: var(--color-theme);
  border-color: var(--color-theme);
}
.page-numbers span.current {
  color: var(--color-theme);
  background-color: #fff;
  border-color: var(--color-theme);
  font-weight: bold;
}
@media screen and (max-width: 768px) {
  .page-numbers a,
  .page-numbers span {
    color: #fff;
    background-color: var(--color-theme);
    border: 1px solid var(--color-theme);
    padding: 5px 13px;
    margin: 2% 2px;
    white-space: nowrap;
    border-radius: 3px;
    transition: 0.2s ease-in-out;
    text-align: center;
    text-decoration: none;
    display: inline-block;
  }
}

/* Error 404 */
.error404 .widget {
  margin-top: 4rem;
}

.error404 .search-form {
  text-align: center;
  margin-bottom: 2rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
}

.error404 .search-form label {
  display: inline-block;
  margin: 0;
}

.error404 .search-form .search-field {
  background-color: #fff;
  border: 1px solid rgba(0, 0, 0, 0.1);
  border-radius: 12px 0 0 12px;
  padding: 14px 24px;
  font-size: 1.4rem;
  color: #333;
  min-width: 280px;
  transition:
    border-color 0.3s ease,
    box-shadow 0.3s ease;
}

.error404 .search-form .search-field::placeholder {
  color: #888;
}

.error404 .search-form .search-field:focus {
  outline: none;
  border-color: var(--color-theme);
  box-shadow: 0 0 0 1px var(--color-theme);
}

.error404 .search-form .search-submit {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  background-color: var(--color-theme);
  border: 1px solid var(--color-theme);
  border-radius: 0 12px 12px 0;
  padding: 14px 18px;
  font-size: 1.25rem;
  color: #fff;
  cursor: pointer;
  transition:
    border-color 0.3s ease,
    color 0.3s ease,
    background-color 0.3s ease;
  min-width: 52px;
  min-height: 52px;
  outline: none;
}

.error404 .search-form .search-submit:focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--color-theme);
}

.error404 .search-form .search-submit .screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.error404 .search-form .search-submit:hover {
  background-color: var(--color-theme-light-second);
  border-color: var(--color-theme-light-second);
  color: #fff;
}
.error404 .widgettitle,
.error404 .widget-title {
  font-size: 2rem;
  font-weight: bold;
  margin-bottom: 2rem;
  border-bottom: 2px solid var(--color-theme);
  padding-bottom: 1rem;
  display: inline-block;
}

.error404 .widget ul {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
}

/* 子カテゴリを親と同じ行に続けて横並び（未分類｜屋形船｜東京｜横浜） */
.error404 .widget_categories li:has(ul.children) {
  display: contents;
}
.error404 .widget_categories ul.children {
  display: contents;
}

.error404 .widget_recent_entries li a,
.error404 .widget_categories li a {
  list-style-type: disc;
  margin-bottom: 15px;
  display: inline-flex;
  background-color: #fff;
  padding: 10px 20px;
  list-style-position: inside;
  border-radius: 10px;
  position: relative;
  align-items: center;
  border: 1px solid #fff;
  transition: all 0.3s ease;
}

.error404 .widget_recent_entries li a::before,
.error404 .widget_categories li a::before {
  content: '';
  width: 8px;
  height: 8px;
  background-color: #666;
  border-radius: 50%;
  display: inline-flex;
  margin-right: 10px;
}

.error404 .widget_recent_entries li a:hover,
.error404 .widget_categories li a:hover {
  border: 1px solid var(--color-theme);
}
.error404 .widget_categories li a:hover::before {
  background-color: var(--color-theme);
}

.error404 .event-archive-dropdown {
  display: block;
}
.error404 .event-archive-dropdown select {
  width: 100%;
  max-width: 300px;
  padding: 10px;
  border-radius: 5px;
}

/* 検索結果 */
#search .page-header {
  margin-bottom: 2rem;
}

#search .page-title {
  font-size: 1.8rem;
  font-weight: bold;
  color: #333;
}

#search .search-result-list {
  padding: 0;
}

#search .search-result-item {
  padding-bottom: 2rem;
  margin-bottom: 2rem;
  border-bottom: 1px solid #e0e0e0;
  list-style: none;
}

#search .search-result-item:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
}

#search .search-result-inner {
  display: flex;
  gap: 2rem;
  align-items: flex-start;
}

#search .search-result-thumb {
  flex: 0 0 15%;
  max-width: 15%;
  border-radius: 8px;
  overflow: hidden;
  aspect-ratio: 4 / 3;
}

#search .search-result-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

#search .search-result-thumb a:hover img {
  opacity: 0.9;
}

#search .search-result-body {
  flex: 1;
  min-width: 0;
}

#search .search-result-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}

#search .search-result-tag {
  display: inline-block;
  background-color: var(--color-accent);
  color: #fff;
  font-size: 1.4rem;
  padding: 0.5rem 1rem;
  border-radius: 4px;
  text-decoration: none;
  transition: opacity 0.3s ease;
}

#search .search-result-tag:hover {
  opacity: 0.9;
  color: #fff;
}

#search .search-result-title {
  font-size: 2.4rem;
  font-weight: bold;
  line-height: 1.4;
  margin-bottom: 0.75rem;
  transition: all 0.3s ease;
}

#search .search-result-title a {
  color: #333;
  text-decoration: none;
  transition: all 0.3s ease;
}

#search .search-result-title a:hover {
  color: var(--color-theme);
}

#search .search-result-excerpt {
  font-size: 1.4rem;
  color: #535353;
  line-height: 1.6;
}

#search .search-result-excerpt p {
  margin: 0;
}

@media screen and (max-width: 767px) {
  #search .search-result-inner {
    flex-direction: column;
    gap: 1rem;
  }

  #search .search-result-thumb {
    flex: 0 0 auto;
    max-width: 100%;
    width: 100%;
  }
}

.posts-navigation {
  margin: 3rem 0 !important;
}

/* 検索結果：前のページを左、次のページを右に表示（HTMLの並びを逆にする） */
#search .posts-navigation .nav-links {
  display: flex;
  flex-direction: row-reverse;
  justify-content: flex-end;
  gap: 1rem;
}

/*記事ページ*/

.post-thumbnail {
  width: 1200px;
  margin: 3rem auto;
}

.post-thumbnail img {
  max-width: 750px;
  margin-inline: auto;
}

@media screen and (max-width: 1024px) {
  .post-thumbnail {
    width: 100%;
  }
  .post-thumbnail img {
    max-width: 100%;
  }
}
@media screen and (max-width: 599px) {
  .post-thumbnail {
    width: 100%;
  }
}

.panel-layout table {
  max-width: 100%;
  width: 100%;
  padding: 1rem;
  border: 1px solid var(--color-theme);
  background-color: #fff;
}

.panel-layout h3 {
  background-color: #fff;
  border: 1px solid var(--color-theme);
  border-left: 7px solid var(--color-theme);
  font-size: 2rem;
  padding: 12px 20px;
  margin: 3rem 0;
}

/*Cocoonから移設*/

/* Facebook Page embed – 強制表示（切り分け用） */
.fb-page,
.fb_iframe_widget,
.fb_iframe_widget > span,
.fb_iframe_widget iframe {
  width: 350px !important;
  height: 400px !important;
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/*行替え*/
@media screen and (min-width: 680px) {
  .pc {
    display: inline;
  }
  .sp {
    display: none;
  }
}
@media screen and (max-width: 680px) {
  .pc {
    display: none;
  }
  .sp {
    display: inline;
  }
}

/*BOX*/
.box2 {
  padding: 0.5em 1em;
  margin: 2em 0;
  font-weight: bold;
  color: #6091d3; /*文字色*/
  background: #fff;
  border: solid 3px #6091d3; /*線*/
  border-radius: 10px; /*角の丸み*/
}
.box2 p {
  margin: 0;
  padding: 0;
}

@media screen and (min-width: 768px) {
  /* デスクトップ */

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

.main {
  width: 860px;
  padding: 0px 29px;
  border: 1px solid transparent;
  border-radius: 4px;
  position: relative;
}

.effect2 {
  position: relative;
}
.effect2:before,
.effect2:after {
  z-index: -1;
  position: absolute;
  content: '';
  bottom: 15px;
  left: 10px;
  width: 50%;
  top: 80%;
  max-width: 300px;
  background: #777;
  -webkit-box-shadow: 0 15px 10px #777;
  -moz-box-shadow: 0 15px 10px #777;
  box-shadow: 0 15px 10px #777;
  -webkit-transform: rotate(-3deg);
  -moz-transform: rotate(-3deg);
  -o-transform: rotate(-3deg);
  -ms-transform: rotate(-3deg);
  transform: rotate(-3deg);
}
.effect2:after {
  -webkit-transform: rotate(3deg);
  -moz-transform: rotate(3deg);
  -o-transform: rotate(3deg);
  -ms-transform: rotate(3deg);
  transform: rotate(3deg);
  right: 10px;
  left: auto;
}

hr.linedott {
  border: none;
  border-top: 1px dotted #999;
}

hr.lineshadow {
  border: none;
  height: 30px;
  box-shadow: 0 30px 30px -30px #5b7e91 inset;
}

/*column3*/
.items3 {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
}

.items3 .item1 {
  width: 30%;
}
.items3 .item2 {
  width: 70%;
}
@media screen and (min-width: 768px) {
  /* デスクトップ */
  section {
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .items3 {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }

  .items3 .item1 {
    width: 100%;
  }
  .items3 .item2 {
    width: 100%;
  }
}

/*column２b*/

.col-item {
  display: flex;
  padding: 0em;
  justify-content: center;
  align-items: center;
}
.row-2 .col-item.item-1 {
  width: 20%;
  height: auto;
}
.row-2 .col-item.item-2 {
  background-color: #e5e5e5;
  width: 80%;
  height: auto;
}
.row-3 .col-item.item-1 {
  background-color: #ddd;
}
.row-3 .col-item.item-2 {
  background-color: #d5d5d5;
}
.row-3 .col-item.item-3 {
  background-color: #ccc;
}

@media screen and (min-width: 768px) {
  /* デスクトップ */
  .col-item {
    display: flex;
    justify-content: center;
    align-items: center;
  }

  #row-2 .col-item item-1 {
    width: 100%;
    height: auto;
  }
  #row-2 .col-item item-2 {
    width: 100%;
    height: auto;
  }
}

/*column２m*/
@media screen and (min-width: 768px) {
  /* デスクトップ */
  @media screen and (min-width: 768px) {
    /* デスクトップ */
  }
  .col-item_m {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
  }
  .row-2 .col-item_m.item-1 {
    width: 50%;
    height: auto;
  }
  .row-2 .col-item_m.item-2 {
    background-color: #e5e5e5;
    width: 50%;
    height: auto;
  }
  .row-3 .col-item_m.item-1 {
    background-color: #ddd;
  }
  .row-3 .col-item_m.item-2 {
    background-color: #d5d5d5;
  }
  .row-3 .col-item_m.item-3 {
    background-color: #ccc;
  }
}
/*button*/
a.cp_btn {
  display: block;
  position: relative;
  width: 100%;
  padding: 0.5em;
  text-align: center;
  text-decoration: none;
  color: #fff;
  background: #00608d;
  border: 1px solid #fff;
  overflow: hidden;
}
a.cp_btn:after {
  content: '';
  position: absolute;
  top: -100%;
  left: -100%;
  height: 100%;
  width: 100%;
  background: #fff;
  opacity: 0.3;
  transition: 0.4s;
}
a.cp_btn:hover:after {
  top: 0;
  left: 0;
}

a.cp_btn_g {
  display: block;
  position: relative;
  width: 100%;
  padding: 0.5em;
  text-align: center;
  text-decoration: none;
  color: #fff;
  background: #008b8b;
  border: 1px solid #fff;
  overflow: hidden;
}
a.cp_btn_g:after {
  content: '';
  position: absolute;
  top: -100%;
  left: -100%;
  height: 100%;
  width: 100%;
  background: #fff;
  opacity: 0.3;
  transition: 0.4s;
}
a.cp_btn_g:hover:after {
  top: 0;
  left: 0;
}

a.cp_btn_s {
  display: block;
  position: relative;
  width: 50%;
  padding: 0.6em;
  text-align: center;
  text-decoration: none;
  color: #fff;
  background: #8f8667;
  border: 1px solid #fff;
  border-radius: 8px;
  overflow: hidden;
}
a.cp_btn_s:after {
  content: '';
  position: absolute;
  top: -100%;
  left: -100%;
  height: 100%;
  width: 50%;
  background: #fff;
  opacity: 0.3;
  transition: 0.4s;
}
a.cp_btn_s:hover:after {
  top: 0;
  left: 0;
}
.yokonarabe {
  display: flex; /*コレ*/
  width: 100%;
  margin: 0;
}
.yokonarabe > div {
  width: 48%;
  margin: 0 1%;
  border: 1px solid #fff;
  background: #fff;
}

/* button019 */
.button019 a {
  background: #dc143c;
  border-radius: 3px;
  position: relative;
  display: flex;
  justify-content: space-around;
  align-items: center;
  margin: 0 auto;
  max-width: 280px;
  padding: 10px 25px;
  color: #313131;
  transition: 0.3s ease-in-out;
  font-weight: 500;
}
.button019 a:after {
  content: '';
  position: absolute;
  top: 50%;
  bottom: 0;
  right: 2rem;
  font-size: 90%;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: right 0.3s;
  width: 6px;
  height: 6px;
  border-top: solid 2px currentColor;
  border-right: solid 2px currentColor;
  transform: translateY(-50%) rotate(45deg);
}
.button019 a:hover {
  background: #6bb6ff;
  color: #fff;
}
.button019 a:hover:after {
  right: 1.4rem;
}

/*table*/
table.business {
  border-collapse: collapse;
  padding: 20px;
  border: solid 0.7px #333;
}
/*MOBILE info*/
.mobinfo {
  font-size: 13px;
  font-weight: 600;
  margin: 10px;
  text-align: center;
}
/*料理title*/
.cross {
  position: relative;
  padding: 10px 20px;
  text-align: center;
  border-top: 2px solid #999966;
  border-bottom: 2px solid #999966;
}

.cross:before,
.cross:after {
  content: '';
  position: absolute;
  top: -10px;
  width: 2px;
  height: calc(100% + 1em);
  background-color: #000;
}

.cross:before {
  left: 10px;
}

.cross:after {
  right: 10px;
}
.cross {
  position: relative;
  padding: 10px 20px;
  margin-bottom: 20px;
  text-align: center;
  border-top: 2px solid #999966;
  border-bottom: 2px solid #999966;
}

.cross:before,
.cross:after {
  content: '';
  position: absolute;
  top: -10px;
  width: 2px;
  height: calc(100% + 1em);
  background-color: #999966;
}

.cross:before {
  left: 10px;
}

.cross:after {
  right: 10px;
}

@media screen and (min-width: 480px) {
  .cross {
    width: 100% !important;
    position: relative;
    padding: 10px 20px;
    text-align: center;
    border-top: 2px solid #999966;
    border-bottom: 2px solid #999966;
  }
}
/*br*/
@media screen and (min-width: 680px) {
  .pc {
    display: block;
  }
  .sp {
    display: none;
  }
}
@media screen and (max-width: 680px) {
  .pc {
    display: none;
  }
  .sp {
    display: block;
  }
}
/*tagline*/
.tagline {
  text-align: center;
  font-size: 24px;
  margin: 0.6em 1em;
}
/*corp*/
.corp {
  padding: 50px;
}

@media screen and (min-width: 768px) {
  .corp {
    padding: 10px;
  }
}
/*BOX*/
.mybox {
  border: 1px solid #ef858c; /* 線の太さ・種類・色 */
  border-radius: 5px;
  padding: 45px 10px 10px 10px; /* 内側の余白 上・右・左・下 */
  position: relative;
  z-index: 0;
}
.mybox:before {
  background-color: #ef858c; /* タイトル部分背景色 */
  border-radius: 5px 5px 0px 0px;
  color: #fff; /* タイトル部分文字色 */
  content: 'TITLE';
  height: 25px; /* タイトル部分高さ */
  padding: 5px 10px;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 2;
}
.mybox:after {
  border-style: solid;
  border-width: 10px 10px 0 10px;
  border-color: #ef858c transparent transparent transparent; /* 吹き出し三角部分の色 */
  content: '';
  position: absolute;
  top: 35px;
  left: 10px;
  width: 0px;
  height: 0px;
  z-index: 1;
}

.fa .fa-bar-chart .fa-fw {
  display: none;
}

.admin-pv.admin-pv-by .today-pv-count {
  display: none;
}

/*table class shedule*/
table.she {
  text-align: center;
  border: solid 2px;
  border-color: #404040;
}
.she td {
  border-collapse: separate;
  border: solid 1px;
  border-color: #404040;
}

.she th {
  background-color: #bbc8e6;
}

.must {
  font-weight: 700;
  display: inline-block;
  padding: 0.25rem 0.8rem;
  background-color: var(--color-accent);
  color: #fff;
  border-radius: 0.25em;
  float: right;
  font-size: 1.2rem;
}

.nin-i {
  font-size: 1.2rem;
  font-weight: 700;
  display: inline-block;
  padding: 0.25rem 0.8rem;
  background-color: #ccc;
  color: #333;
  border-radius: 0.25em;
  float: right;
}

/* BizCalendar（画面右上・ヘッダー外・スクロールで表示） */
.site-bizcalendar {
  position: fixed;
  top: 20vh;
  right: 1rem;
  z-index: 10000;
  max-width: 300px;
  opacity: 0;
  visibility: hidden;
  transform: translateX(1rem);
  transition:
    opacity 0.3s ease,
    visibility 0.3s ease,
    transform 0.3s ease;
  pointer-events: none;
}

.site-bizcalendar.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateX(0);
  pointer-events: auto;
}

.site-bizcalendar .widget {
  margin: 0;
  padding: 1rem 1.2rem;
  background: #fff;
  border-radius: 0.5rem;
  border: 1px solid rgba(0, 0, 0, 0.1);
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
  font-size: 1.2rem;
}

.site-bizcalendar .widget-title {
  font-size: 1.4rem;
  margin: 0 0 0.6rem 0;
  padding: 0;
  font-weight: 600;
}

.site-bizcalendar table {
  font-size: 1.2rem;
  border-collapse: collapse;
}

.site-bizcalendar td,
.site-bizcalendar th {
  padding: 0.35rem 0.4rem;
  text-align: center;
}

@media only screen and (max-width: 1024px) {
  .site-bizcalendar {
    top: 78px;
    right: 0.5rem;
    max-width: 260px;
  }
}

.site-bizcalendar-close {
  display: block;
  width: auto;
  min-width: 10em;
  margin: 0.6rem auto 0;
  padding: 0.5rem 1.5rem;
  font-size: 1.2rem;
  font-weight: 500;
  color: #fff;
  background: var(--color-accent);
  border: none;
  border-radius: 999px;
  cursor: pointer;
  transition:
    background 0.2s ease,
    opacity 0.2s ease;
}

.site-bizcalendar-close:hover {
  background: var(--color-red);
  opacity: 0.95;
}

@media only screen and (max-width: 599px) {
  .site-bizcalendar {
    display: none;
  }
}
