@charset "UTF-8";
/* ==========================================================================
   style.scss - 全ページ共通スタイル
   ベース・ヘッダー・フッター・heading-line(共通見出し)を含む
   ========================================================================== */
/* ==========================================================================
   変数定義 - Variables
   ========================================================================== */
/* ----- 色 : ベース ----- */
/* ----- 色 : ゴールド系 ----- */
/* ----- 色 : ブラウン系 ----- */
/* ----- 色 : クリーム系 ----- */
/* ----- 色 : グラデーション (左→右 #704816 → #d7a43b) ----- */
/* ----- 色 : 赤 (キャンペーン帯) ----- */
/* ----- 色 : フッター ----- */
/* ----- 色 : その他 ----- */
/* ----- フォント ----- */
/* ----- レイアウト ----- */
/* ----- ブレイクポイント ----- */
/* ==========================================================================
   Mixin
   ========================================================================== */
/* ----- メディアクエリ ----- */
/* ----- インナーラッパー ----- */
/* ----- ゴールドのグラデーション文字 (左→右) ----- */
/* ----- ゴールド左→右の背景 (タグなど) ----- */
/* ----- 2重線バー (heading-line, sub-title などの装飾) ----- */
/* ----- カード共通の影 ----- */
/* ----- ピル型ボタン ----- */
/* ==========================================================================
   reset / base
   ========================================================================== */
*,
*::before,
*::after {
  box-sizing: border-box; }

html {
  font-size: 62.5%;
  scroll-behavior: smooth;
  /* タブレット : PCデザイン(1280px基準)を画面幅に連動して縮小 */
  /* スマフォ : SPデザイン(375px基準)に連動 */ }
  @media (min-width: 768px) and (max-width: 1024px) {
    html {
      font-size: calc(100vw / 128); } }
  @media (max-width: 767px) {
    html {
      font-size: 2.75vw; } }

body {
  margin: 0;
  font-family: "Zen Old Mincho", serif;
  color: #4a2d08;
  line-height: 1.8;
  letter-spacing: 0;
  background: #ffffff;
  font-size: 1.6rem;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

* {
  letter-spacing: 0; }

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

a {
  color: inherit;
  text-decoration: none;
  transition: opacity .2s ease; }
  a:hover {
    opacity: .75; }

ul, ol {
  margin: 0;
  padding: 0;
  list-style: none; }

h1, h2, h3, h4, h5, h6, p, figure {
  margin: 0; }

button {
  background: none;
  border: 0;
  padding: 0;
  font: inherit;
  cursor: pointer;
  color: inherit; }

/* ----- ゴールドのグラデ文字 ----- */
.text-gold-grad {
  background: linear-gradient(to right, #704816 0%, #d7a43b 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent; }

/* ----- Material Symbols ----- */
.icon {
  font-family: "Material Symbols Outlined";
  font-weight: normal;
  font-style: normal;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: 'liga';
  font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24; }

/* ----- 共通ラッパー ----- */
.inner {
  width: 92%;
  max-width: 110rem;
  margin-left: auto;
  margin-right: auto; }

/* ----- プレースホルダー画像 ----- */
.ph {
  display: block;
  width: 100%;
  background: linear-gradient(135deg, #ddd0b0 0%, #c4b388 100%);
  color: #ffffff;
  text-align: center;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 1.4rem; }
  .ph span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    min-height: 100%;
    background: rgba(0, 0, 0, 0.05); }

/* ==========================================================================
   共通 : heading-line (PRICE / PAYMENT / RULE 等の見出し)
   ========================================================================== */
.heading-line {
  text-align: center;
  margin-bottom: 5rem; }
  .heading-line .en {
    display: inline-block;
    position: relative;
    font-family: bodoni-std, sans-serif;
    font-size: 5.6rem;
    line-height: 1.3;
    padding: 0 1rem;
    background: linear-gradient(to right, #704816 0%, #d7a43b 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent; }
    @media (max-width: 767px) {
      .heading-line .en {
        font-size: 4.2rem; } }
    .heading-line .en::before, .heading-line .en::after {
      content: "";
      position: absolute;
      top: 50%;
      width: 8rem;
      height: 0.4rem;
      transform: translateY(-50%);
      border-top: 1px solid #d6a33a;
      border-bottom: 1px solid rgba(214, 163, 58, 0.5); }
      @media (max-width: 767px) {
        .heading-line .en::before, .heading-line .en::after {
          width: 3.2rem; } }
    .heading-line .en::before {
      left: -8rem; }
      @media (max-width: 767px) {
        .heading-line .en::before {
          left: -3.2rem; } }
    .heading-line .en::after {
      right: -8rem; }
      @media (max-width: 767px) {
        .heading-line .en::after {
          right: -3.2rem; } }
  .heading-line .jp {
    display: block;
    font-size: 1.6rem;
    color: #4a2d08; }
    @media (max-width: 767px) {
      .heading-line .jp {
        font-size: 1.4rem; } }

.wp-pagenavi {
  text-align: center;
  clear: both;
  padding: 5rem 0;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: .6rem; }
  .wp-pagenavi a:hover {
    background: rgba(197, 160, 74, 0.2); }
  .wp-pagenavi > a, .wp-pagenavi > span {
    min-width: 5rem;
    height: 5rem;
    font-size: 1.6rem;
    font-family: bodoni-std, sans-serif;
    text-decoration: none;
    background: #fff;
    padding: 0 1rem;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
    border: 1px solid rgba(110, 74, 35, 0.15); }
    @media (max-width: 767px) {
      .wp-pagenavi > a, .wp-pagenavi > span {
        min-width: 3.6rem;
        height: 3.6rem;
        font-size: 1.4rem;
        padding: 0 .5rem; } }
    .wp-pagenavi > a span, .wp-pagenavi > span span {
      font-size: 1.6rem; }
      @media (max-width: 767px) {
        .wp-pagenavi > a span, .wp-pagenavi > span span {
          font-size: 1.4rem; } }
  .wp-pagenavi > span {
    background: #d9b96a;
    border-color: #d9b96a; }

/* ==========================================================================
   header
   ========================================================================== */
.header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
  padding: 1.8rem 4rem 2.4rem;
  background: linear-gradient(to bottom, white 0%, rgba(255, 255, 255, 0.95) 30%, rgba(255, 255, 255, 0.75) 60%, rgba(255, 255, 255, 0) 100%);
  min-height: 20rem;
  /* ----- ロゴ + キャッチコピー ----- */
  /* ----- 右側 : 営業時間 + ナビ (2段) ----- */
  /* ----- ハンバーガー (SP) ----- */ }
  @media (max-width: 767px) {
    .header {
      padding: .4rem 2rem 4rem;
      min-height: auto; } }
  .header__inner {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 3rem; }
    @media (max-width: 767px) {
      .header__inner {
        align-items: center; } }
  .header__logo {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.6rem; }
    @media (max-width: 767px) {
      .header__logo {
        position: relative; } }
    .header__logo .logo-img {
      display: block;
      width: 35.5rem;
      height: auto; }
      @media (max-width: 767px) {
        .header__logo .logo-img {
          width: 26rem; } }
    .header__logo .logo-desc {
      display: block;
      font-size: 1.1rem;
      color: #4a2d08;
      line-height: 1.4;
      margin-top: -2.2rem;
      font-weight: 700; }
      .header__logo .logo-desc br {
        display: none; }
      @media (max-width: 767px) {
        .header__logo .logo-desc {
          margin: 0;
          line-height: 1;
          font-size: 1rem;
          position: absolute;
          right: -3.5rem;
          bottom: 0;
          letter-spacing: 0; }
          .header__logo .logo-desc br {
            display: block; } }
  .header__right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 1.4rem; }
    @media (max-width: 767px) {
      .header__right {
        display: none; } }
  .header__info {
    background: rgba(214, 163, 58, 0.5);
    border: 1px solid #d6a33a;
    padding: 0.6rem 1.2rem;
    border-radius: 0.3rem;
    text-align: center;
    line-height: 1.1; }
    .header__info .hours {
      display: block;
      font-size: 1.4rem;
      font-weight: 500; }
      .header__info .hours-time {
        font-size: 1.8rem;
        font-weight: 400;
        font-family: bodoni-std, sans-serif; }
    .header__info .note {
      display: block;
      font-size: 1rem;
      margin-top: 0.2rem;
      font-family: "Zen Kaku Gothic New", sans-serif;
      font-weight: 500; }
  .header__nav ul {
    display: flex;
    align-items: center;
    gap: 2.6rem; }
  .header__nav a {
    font-family: "Zen Old Mincho", serif;
    font-size: 1.5rem;
    color: #4a2d08;
    position: relative;
    font-weight: 700;
    padding-bottom: 0.4rem; }
    .header__nav a:hover {
      color: #c5a04a; }
  .header__burger {
    display: none;
    width: 4.4rem;
    height: 4.4rem;
    position: relative; }
    @media (max-width: 767px) {
      .header__burger {
        display: block; } }
    .header__burger span {
      position: absolute;
      left: 0.8rem;
      width: 2.8rem;
      height: 2px;
      background: #c5a04a;
      transition: transform .25s ease, opacity .25s ease, top .25s ease; }
      .header__burger span:nth-child(1) {
        top: 1.4rem; }
      .header__burger span:nth-child(2) {
        top: 2.1rem; }
      .header__burger span:nth-child(3) {
        top: 2.8rem; }
    .header__burger.is-open span:nth-child(1) {
      top: 2.1rem;
      transform: rotate(45deg); }
    .header__burger.is-open span:nth-child(2) {
      opacity: 0; }
    .header__burger.is-open span:nth-child(3) {
      top: 2.1rem;
      transform: rotate(-45deg); }

/* ----- SP用 ドロワー ----- */
.drawer {
  display: none;
  position: fixed;
  top: 0;
  right: -100%;
  width: 80%;
  max-width: 36rem;
  height: 100vh;
  background: rgba(255, 255, 255, 0.97);
  z-index: 99;
  padding: 9rem 3rem 3rem;
  transition: right .3s ease; }
  @media (max-width: 767px) {
    .drawer {
      display: block; } }
  .drawer.is-open {
    right: 0; }
  .drawer ul li {
    border-bottom: 0.1rem dotted #e3d9c1; }
    .drawer ul li a {
      display: block;
      padding: 1.6rem 0.6rem;
      font-size: 1.5rem;
      color: #4a2d08; }
      .drawer ul li a:hover {
        color: #c5a04a; }

/* ==========================================================================
   footer
   ========================================================================== */
.footer {
  background: #fefaf0;
  padding: 10rem 0 0;
  position: relative; }
  @media (max-width: 767px) {
    .footer {
      padding: 6rem 0 0; } }
  .footer::after {
    content: "";
    position: absolute;
    top: -1rem;
    left: 0;
    width: 100%;
    height: 2rem;
    pointer-events: none;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 20' preserveAspectRatio='none'><path d='M0,5 Q360,-5 720,5 T1440,5 L1440,20 L0,20 Z' fill='%23fcf4e1'/></svg>") no-repeat center/100% 100%;
    z-index: 2; }
  .footer::before {
    content: "";
    position: absolute;
    top: -1.1rem;
    left: 0;
    width: 100%;
    height: 2rem;
    pointer-events: none;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 20' preserveAspectRatio='none'><path d='M0,5 Q360,-5 720,5 T1440,5 L1440,20 L0,20 Z' fill='%23f6e8cc'/></svg>") no-repeat center/100% 100%;
    z-index: 1; }
  .footer__main {
    width: 92%;
    max-width: 110rem;
    margin-left: auto;
    margin-right: auto;
    display: grid;
    grid-template-columns: 28rem 1fr;
    gap: 6rem;
    padding-bottom: 5rem;
    align-items: start; }
    @media (max-width: 767px) {
      .footer__main {
        grid-template-columns: 1fr;
        gap: 3rem;
        text-align: center;
        padding-bottom: 2rem; } }
  .footer__brand {
    text-align: center; }
    .footer__brand .logo {
      display: inline-block;
      margin-bottom: 1.8rem; }
      .footer__brand .logo img {
        display: block;
        max-width: 22.5rem;
        height: auto; }
        @media (max-width: 767px) {
          .footer__brand .logo img {
            max-width: 12rem; } }
    .footer__brand .lead {
      font-family: "Zen Kaku Gothic New", sans-serif;
      font-size: 1.4rem;
      line-height: 1.8;
      margin-bottom: 2.2rem;
      font-weight: 500; }
      @media (max-width: 767px) {
        .footer__brand .lead {
          font-size: 1.1rem; } }
    .footer__brand .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 22rem;
      height: 4rem;
      padding: 0;
      color: #6e4a23;
      background: #ffffff;
      border: 0.1rem solid #eec969;
      border-radius: 99.9rem;
      font-size: 1.6rem;
      text-decoration: none;
      box-shadow: 0 0 0.8rem rgba(120, 90, 40, 0.2);
      font-weight: 700; }
      @media (max-width: 767px) {
        .footer__brand .btn {
          font-size: 1.4rem; } }
  .footer__info {
    display: flex;
    flex-direction: column;
    gap: 1.5rem; }
  .footer__map-area {
    display: grid;
    grid-template-columns: 15rem 1fr;
    align-items: stretch;
    border: 0.4rem solid #ffffff; }
    @media (max-width: 767px) {
      .footer__map-area {
        grid-template-columns: 11rem 1fr; } }
  .footer__landmark {
    position: relative;
    overflow: visible;
    min-height: 28rem; }
    @media (max-width: 767px) {
      .footer__landmark {
        min-height: 18rem; } }
    .footer__landmark img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block; }
    .footer__landmark .speech {
      position: absolute;
      top: 5.5rem;
      right: -3.6rem;
      background: #6e4a23;
      color: #ffffff;
      font-family: "Zen Kaku Gothic New", sans-serif;
      font-size: 1rem;
      line-height: 1.1;
      padding: 0 1rem;
      border-radius: 50%;
      width: 5rem;
      height: 5rem;
      text-align: center;
      white-space: nowrap;
      z-index: 5;
      display: flex;
      justify-content: center;
      align-items: center;
      font-weight: 600; }
      @media (max-width: 767px) {
        .footer__landmark .speech {
          top: 3.5rem; } }
      .footer__landmark .speech::after {
        content: "";
        position: absolute;
        top: 50%;
        left: -.7rem;
        margin-top: -.4rem;
        width: 0;
        height: 0;
        border: 0.4rem solid transparent;
        border-right-color: #6e4a23; }
  .footer__map {
    background: #ececec;
    overflow: hidden;
    position: relative;
    min-height: 28rem;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #7a6a55;
    font-size: 1.3rem; }
    @media (max-width: 767px) {
      .footer__map {
        min-height: 18rem; } }
    .footer__map iframe {
      width: 100%;
      height: 100%;
      border: 0;
      position: absolute;
      inset: 0;
      filter: grayscale(1); }
    .footer__map .gmap-link {
      position: absolute;
      right: 1rem;
      bottom: 1rem;
      background: #eec969;
      color: #4a2d08;
      font-family: "Zen Kaku Gothic New", sans-serif;
      font-size: 1.4rem;
      padding: 0.2rem 1.6rem;
      border-radius: 0.3rem;
      text-decoration: none;
      display: inline-flex;
      align-items: center;
      gap: .3rem;
      z-index: 2;
      font-weight: 700; }
      .footer__map .gmap-link .icon {
        font-size: 1.7rem;
        color: #c5a04a; }
  .footer__address {
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-size: 1.6rem;
    line-height: 1.6;
    color: #4a2d08;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    text-align: center;
    align-items: center; }
    @media (max-width: 767px) {
      .footer__address {
        font-size: 1.2rem;
        grid-template-columns: 1fr; } }
    .footer__address .addr {
      margin-bottom: 0.1rem; }
    .footer__address .park {
      margin-top: 0.4rem;
      display: flex;
      gap: .8rem;
      flex-wrap: wrap;
      align-items: center;
      justify-content: center; }
      @media (max-width: 767px) {
        .footer__address .park {
          justify-content: center; } }
      .footer__address .park span {
        display: inline-flex;
        align-items: center;
        gap: 0.4rem; }
      .footer__address .park .icon {
        color: #d6a33a;
        font-size: 2rem;
        font-weight: 600; }
    .footer__address .access-box {
      background: #ffffff;
      border-radius: 0.6rem;
      padding: 1.4rem 1.8rem 1.4rem 6rem;
      position: relative; }
    .footer__address .access-train-icon {
      position: absolute;
      left: 1.4rem;
      top: 50%;
      transform: translateY(-50%);
      width: 3.2rem;
      height: 3.2rem;
      display: flex;
      align-items: center;
      justify-content: center; }
      .footer__address .access-train-icon .icon {
        color: #d6a33a;
        font-size: 2.4rem; }
    .footer__address .access li {
      position: relative;
      font-size: 1.4rem;
      line-height: 1.9;
      padding-left: 1.4rem;
      text-align: left; }
      @media (max-width: 767px) {
        .footer__address .access li {
          font-size: 1.2rem; } }
      .footer__address .access li::before {
        content: "";
        position: absolute;
        left: 0;
        top: 0.85em;
        width: 0.8rem;
        height: 0.8rem;
        border-radius: 50%;
        background: #eec969; }
      .footer__address .access li .icon {
        display: none; }
  .footer__bottom {
    background: #4a2d08;
    color: #ffffff;
    padding: 1.4rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem; }
    @media (max-width: 767px) {
      .footer__bottom {
        flex-direction: column;
        text-align: center;
        gap: .5rem; } }
    .footer__bottom::after {
      content: "";
      position: absolute;
      top: -.4rem;
      left: 0;
      width: 100%;
      height: 2rem;
      pointer-events: none;
      background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 20' preserveAspectRatio='none'><path d='M0,5 Q360,-5 720,5 T1440,5 L1440,20 L0,20 Z' fill='%23fefaf0'/></svg>") no-repeat center/100% 100%;
      z-index: 4; }
    .footer__bottom ul {
      display: flex;
      gap: 1.8rem;
      font-size: 1.2rem;
      font-weight: 600;
      font-family: "Zen Kaku Gothic New", sans-serif; }
      .footer__bottom ul li + li {
        position: relative;
        padding-left: 1.8rem; }
        .footer__bottom ul li + li::before {
          content: "|";
          position: absolute;
          left: 0;
          opacity: .5; }
      .footer__bottom ul a:hover {
        opacity: .8; }
    .footer__bottom .copy {
      font-size: 1.2rem; }
