@charset "utf-8";

/* トップ画像レイアウト */
#top_address {
    position: absolute;
    top: 0;
    z-index: 11;
    top: 80px;
    left: 10PX;
    background:#FFF
}

a.s {
    display: flex;
    justify-content: end;
    position: relative;
    top: -10px;
    right: 10px;
}

#top_address svg {
    width: 13px;
}

#top_cover {
    display: flex;
    align-items: end;
    width: 100%;
    position: relative;
}

#topcover_right {
    width: 40%;
    /* padding: 30px 30px 30px 30px; */
}

#left_content {
    width: 60%;
    padding: initial;
    padding: 30px 30px 0;
}

/* タブレット横向き (1024px以下) */
@media (max-width: 1024px) {
    #top_address {
        /* 必要に応じてここにスタイルを記述 */
    }

    a.s {
        display: flex;
        justify-content: end;
        position: relative;
        top: -10px;
        right: 10px;
    }

    #top_address svg {
        width: 13px;
    }

    #top_cover {
        /* 必要に応じてここにスタイルを記述 */
    }

    #topcover_right {
        /* 必要に応じてここにスタイルを記述 */
    }

    #left_content {
        /* 必要に応じてここにスタイルを記述 */
    }
}

/* タブレット縦向き・スマホ横向き (768px以下) */
@media (max-width: 768px) {
    #top_address {
        /* 必要に応じてここにスタイルを記述 */
        position: static;
        width: 100%;
        margin: 10px auto;
        border-bottom: solid 2px;
        padding: 10px;
    }

    a.s {
        display: flex;
        justify-content: end;
        position: relative;
        top: -10px;
        right: 10px;
    }

    #top_address svg {
        width: 13px;
    }

    #top_cover {
        /* 必要に応じてここにスタイルを記述 */
        display: block;
        /* width: 100%; */
    }

    #topcover_right {
        /* 必要に応じてここにスタイルを記述 */
        width: 100%;
        padding: 0 2%;
    }

    #left_content {
        /* 必要に応じてここにスタイルを記述 */
        width: 95%;];
        padding: 0;
        margin: auto;
    }
}

/* スマホ縦向き (480px以下) */
@media (max-width: 480px) {
    #top_address {
        position: static;
        padding: 0px 10px 5px;
        border-bottom: solid;
    }

    #top_address svg {
        width: 13px;
    }

    a.s {
        display: flex;
        justify-content: end;
        position: relative;
        top: -10px;
        right: 10px;
    }

    #top_cover {
        display: block;
    }

    #topcover_right {
        width: 100%;
        padding: 10px;
    }

    #left_content {
        width: 100%;
        padding: 10px;
    }
}


/* テーブルコンテンツ */
#nav_header {
  position: relative;
}

#nav_header_left {
  top: 50%;
  left: 0;
  position: absolute;
  font-size: 8px;
  font-weight: bold;
  letter-spacing: 6px;
  white-space: nowrap;
  bottom: 0;
}

#sp_header {
  width: 150px;
}

#nav_header_right {
  top: 50%;
  right: 0;
  position: absolute;
  font-size: 8px;
  font-weight: bold;
  letter-spacing: inherit;
  white-space: nowrap;
}

#nav_header_center {
  text-align: center;
  position: relative;
  top: 0px;
  z-index: 2;
}

#nav_upper {
  font-size: 20px;
  text-align: center;
  letter-spacing: 2px;
  line-height: 50px;
  display: block;
}
#nav_header_top {
    position: relative;
    display: contents;
}
#nav_under {
  font-size: 20px;
  text-align: center;
  letter-spacing: 1px;
  line-height: 70px;
  font-weight: bolder;
  display: block;
  position: relative;
}

#nav_header_logo {
  position: absolute;
  bottom: -40px;
  right: -40px;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  border: solid;
  z-index: 1;
  background: #fff;
}



/* 
Counters 
*/
.menu ol {
  counter-reset: menu;
}

/* 追加：各 li で番号を進める（Safariで安定） */
.menu li {
  counter-increment: menu;
}

/*
Regular menu items
*/
.menu-item a {
  display: flex;
  justify-content: flex-start; /*shrink towards text*/
  align-items: baseline;       /* ← 追加：縦ズレ防止 */
  color: currentColor;
  text-decoration: none;
  padding: 0.3rem 0;
  /* avoid flickin' */
  order: 0;
  /* 長文での崩れ防止（任意） */
  overflow-wrap: anywhere;
}

.menu-item a::before {
  /* dots */
  content: "";
  display: block;
  border-bottom: 1px dotted black;
  position: relative;
  top: -3px;
  flex: 1 1 auto;
  margin: 0 1rem;
  order: 1;
}

.menu-item a::after {
  /* item ids */
  /* ↓↓↓ 重複インクリメントを削除（ここは進めない） */
  /* counter-increment: menu;  削除 */
  content: counters(menu, ".");   /* そのまま表示 */
  flex: 0 0 auto;
  order: 2;
  text-decoration: underline;
}

.sub-menu {
  /* font-weight: normal; */
}

.sub-menu > li > a {
  text-indent: 0ch;
  padding: 0.5rem 0 0.5rem 2ch;
  margin: 0;
}

.menu {
  width: 100%;
  display: flex;
  flex-flow: column nowrap;
  margin: 50px auto 0;
  position: relative;
  transform: rotate(0deg);
  background: #ffffff;
  padding-left: 40px;
  padding-right: 20px;
  /* margin-top: 0; */
  font-size: 14px;
}
/* タブレット横向き (1024px以下) */
@media (max-width: 1024px) {
  #nav_header {

  }

  #nav_header_left {

  }

  #nav_header_right {

  }

  #nav_header_center {

  }

  #nav_upper {

  }

  #nav_under {top: -10px;}

  #nav_header_logo {

  }

  .menu {

  }

  .menu-item a {

  }

  .menu-item a::before {

  }

  .menu-item a::after {

  }
}

/* タブレット縦向き・スマホ横向き (768px以下) */
@media (max-width: 768px) {
  #nav_header {

  }

  #nav_header_left {

  }

  #nav_header_right {

  }

  #nav_header_center {

  }

  #nav_upper {

  }

  #nav_under {

  }

  #nav_header_logo {

  }

  .menu {

  }

  .menu-item a {

  }

  .menu-item a::before {

  }

  .menu-item a::after {

  }
}

/* スマホ縦向き (480px以下) */
@media (max-width: 480px) {
  #nav_header {margin-bottom: 30px;}

  #nav_header_left {letter-spacing: inherit;}

  #nav_header_right {letter-spacing: inherit;width: 30%;text-align: right;/* background: #aaa; */}

  #nav_header_center {

  }

  #nav_upper {

  }

  #nav_under {
    top: 20px;
}

  #nav_header_logo {

  }

  .menu {font-size: inherit;padding: 0 20px;margin-top: 0;}

  .menu-item a {

  }

  .menu-item a::before {

  }

  .menu-item a::after {

  }
}
/* 予約 */

.page_reservation {
    display: flex;
    position: fixed;
    bottom: 0;
    z-index: 9999999;
    width: 100%;
    display: none;
}

.reservation_button {
    flex: 1 0 auto;
    padding: 0;
    text-align: center;
    /* border: 1px solid #ccc; */
    background-color: #f0f0f0;
    display: flex; /* アイコンとテキストを並べる */
    align-items: center; /* 中央寄せ */
    color: #ffffff; /* 文字色を白に */
}

.reservation_button a {
    text-decoration: none;
    color: inherit;
    display: flex;
    align-items: center;
    width: 100%;
    padding: 10px;
    justify-content: center;
}
.reservation_button i,
.reservation_button p {
    margin: 0; /* 余白をなくす */
}

.reservation_button img {
    max-width: 50px;
    height: auto;
}

/* 個別の背景色 */
.tel_bg {background-color: #000000;}
.hotpepper_bg {
    background-color: #9f1547;
}
.rakuten_bg {
    background-color: #bf0000;
}
.web_bg { background-color: #4caf50; }

@media (max-width: 1024px) {
  .page_reservation {
    bottom: 50px;
  }
}
/* トップ格子線付きのイメージ*/

    /* 背景画像が表示される領域 */
    .background-container {
      position: relative;
      width: 100%;
      margin: 30px auto 12px;
      overflow: hidden;
      /* margin-bottom: 12px; */
      background: #FFF;
      line-height: 0;
    }

    /* 背景画像 */
    .background-container img {
      width: 100%;
      background: #ffffff;
      overflow: hidden;
      padding: 0;
      margin: 0;
      /* margin-top: 30px; */
      /* padding-top: 30px; */
    }

    /* ロゴ画像と線のボックス */
    .image-box {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      z-index: 2;
      width: 33.3%;
      height: 33.3%;
      background: #ffffff;
    }

    .image-box img {
      width: 50px;
      display: inline;
      height: auto;
      position: absolute;
      top: 0;
      bottom: 0;
      margin: auto;
      right: 0;
      left: 0;
    }

    /* 横の線（上下に配置） */
    .horizontal-line2 {
      position: absolute;
      height: 12px;
      width: 100%;
      background-color: #ffffff;
      z-index: 11;
    }

    /* 上から33%と66%の位置に配置 */
.line-top {
      top: calc(33.3% - 6px); /* 線の太さの半分を引いて調整 */
    }

    .line-bottom {
      top: calc(66.6% - 6px); /* 線の太さの半分を引いて調整 */
    }
    /* 縦線を配置するためのdiv */
    .vertical-line2 {
      position: absolute;
      width: 12px;
      height: 100vh;
      background-color: #ffffff;
      z-index: 10;
      top: 0;
    }

    /* 左から33%と66%の位置に配置 */
    .line-left {
      left: calc(33.3% - 6px); /* 線の太さの半分を引いて調整 */
    }

    .line-right {
      right: calc(33.3% - 6px); /* 右側も同様に調整 */
    }

    @media (max-width: 599px) {
.image-box img {
    width: 40px;
}
            /* 横の線（上下に配置） */
    .horizontal-line2 {
      position: absolute;
      height: 12px;
      width: 100%;
      background-color: #ffffff;
      z-index: 11;
    }

    /* 上から33%と66%の位置に配置 */
.line-top {
      top: calc(33.3% - 6px); /* 線の太さの半分を引いて調整 */
    }

    .line-bottom {
      top: calc(66.6% - 6px); /* 線の太さの半分を引いて調整 */
    }
    /* 縦線を配置するためのdiv */
    .vertical-line2 {
      position: absolute;
      width: 12px;
      height: 100vh;
      background-color: #ffffff;
      z-index: 10;
      top: 0;
    }

    /* 左から33%と66%の位置に配置 */
    .line-left {
      left: calc(33.3% - 6px); /* 線の太さの半分を引いて調整 */
    }

    .line-right {
      right: calc(33.3% - 6px); /* 右側も同様に調整 */
    }

    }

    @media (min-width: 600px) and (max-width: 767px) {
.image-box img {
    width: 60px;
}
    }

    @media (min-width: 768px) and (max-width: 991px) {
.image-box img {
    width: 70px;
}
    }

    @media (min-width: 992px) and (max-width: 1199px) {
.image-box img {
    width: 80px;
}
    }

    @media (min-width: 1200px) {
.image-box img {
    width: 100px;
}
    }
/* ギャラリーコンテナのスタイル */
.gallery-container {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    gap:15px;
}

.gallery-item {
    flex: 0 0 auto;
    width: calc(33.333% - 10px); /* 3カラムに設定 */
    /* margin-right: 10px; */
    scroll-snap-align: start;
}

.gallery-item img {
    width: 100%;
    height: auto;
    display: block;
}

/* スクロールバーのスタイル（オプション） */
.gallery-container::-webkit-scrollbar {
    height: 8px;
}

.gallery-container::-webkit-scrollbar-thumb {
    background-color: #ccc;
    border-radius: 4px;
}

.gallery-container::-webkit-scrollbar-track {
    background-color: #f0f0f0;
}


/* カラム記事 */

.title_box {
    margin: 14px 0;
}

.title_box h2 {
    position: relative;
    padding: 10px 0em;
    padding-left: 0;
    font-size: 17px;
}

.title_box h2:before {
    position: absolute;
    bottom: 0;
    left: 0%;
    width: 98%;
    height: 10px;
    content: "";
    border-bottom: 2px solid #000;
    border-right: 2px solid #000;
    transform: skew(55deg);
}

.title_box h2:after {
    position: absolute;
    bottom: 2px;
    left: -webkit-calc(5% - 6px);
    left: calc(5% - 6px);
    width: 93%;
    height: 5px;
    content: "";
    border-right: 2px solid #000;
    transform: skew(55deg);
}

.content_box {}
.content_box p{}
.content_box strong {
.content_box ul {
    padding-left: 20px;
}

    background-image: linear-gradient(to right, #d3ff10a1, #f3ff0785);
    background-repeat: no-repeat;
    background-size: 100% 46%;
    background-position: bottom;
    font-weight: bold;
}
.content_box img {
    margin: 30px 0;
}
#content_columu {
    padding-top: 1em;
    margin-top: 0.5em;
    -webkit-column-count: 3;
    -webkit-column-gap: 2em;
    -webkit-column-rule: 1px dotted rgba(0, 0, 0, 0.5);
    -moz-column-count: 3;
    -moz-column-gap: 2em;
    -moz-column-rule: 1px dotted rgba(0, 0, 0, 0.5);
    column-count: 3;
    column-gap: 80px;
    column-rule: 1px dotted rgba(0, 0, 0, 0.5);
    border-top: 2px solid #000;
    margin-bottom: 1%;
    width: 95%;
    margin: 100px auto 0;
    /* border: solid 2px; */
    padding: 30px 0;
    border-bottom: 2px solid;
}

/* タブレット横向き (1024px以下) */
@media (max-width: 1024px) {
  .title_box h2 {
    
  }

  #content_columu {column-gap: 30px;}
}

/* タブレット縦向き・スマホ横向き (768px以下) */
@media (max-width: 768px) {
  .title_box h2 {
    
  }
.content_box p{}
  #content_columu {
    -webkit-column-count: 1; /* カラム数を1に変更 */
    -moz-column-count: 1;
    column-count: 1;
    padding: 20px; /* 内側のパディングを調整 */
    /* border: none; */
    width: 95%;
    padding: 50px 0;
  }
}

/* スマホ縦向き (480px以下) */
@media (max-width: 480px) {
  .title_box h2 {
 
  }
.content_box p{}
  #content_columu {border-top: none;margin: 0px auto;}
}

/* 目次 */
#content_columu .shop-feature-box {
    width: 100%;
}
.shop-feature-box {
  margin: 25px auto 0;
  width: 95%;
  margin: 50px auto 0;
}

.shop-feature-box h3 {
  margin: 0 0 .5rem;
}

.shop-feature-list {
  display: flex;
  gap: .5rem;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
  margin: 0;
}

.shop-feature-list li a {
  display: inline;
  /* padding: .35em .8em; */
  /* border: 1px solid #ddd; */
  /* border-radius: 999px; */
  text-decoration: none;
  /* font-size: .9rem; */
  color: #FF2D55;
  margin-bottom: 0px;
  text-align: left;
  border-bottom: solid 2px #FF2D55;
}

/* クーポンアウトライン */
    .special-coupon-layout-container {
      display: flex;
      width: 95%;
      /* max-width: 1200px; */
      margin: 100px auto;
      border: 2px solid black;
      /* display: none; */
    }

    .special-coupon-layout-left-column {
      width: 100%;
      display: flex;
      flex-direction: column;
      /* gap: 20px; */
      /* padding: 10px; */
      border-right: 1px solid;
    }

    .special-coupon-layout-left-header {
      display: flex;
      width: 100%;
      border-bottom: solid;
    }

    .special-coupon-layout-div1 {
      width: 20%;
      background-color: black;
      color: white;
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      padding: 10px;
      flex-direction: column;
    }

    .special-coupon-layout-div1-text-limited {
      font-size: 10px;
      color: white;
      font-weight: bold;
    }

    .special-coupon-layout-div1-text-webplan {
      font-family: 'Cabin Sketch', cursive;
      font-size: 22px;
      color: white;
    }

    .special-coupon-layout-div2 {
      width: 80%;
      background-color: #ffffff;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      padding: 20px;
      text-align: center;
    }
.special-coupon-layout-div2-text-1{
    font-size: 17px;
    letter-spacing: 1px;
}
.special-coupon-layout-div2-text-2{
    font-size: 15px;
    /* letter-spacing: 5px; */
}

.special-coupon-layout-divider {
    width: 90%;
    margin: auto;
    height: 7px;
    background: #000;
}
    .special-coupon-layout-div4 {
      /* background-color: white; */
      display: block;
      /* align-items: center; */
      justify-content: center;
      /* height: auto; */
      /* border: 2px solid black; */
      /* font-size: 24px; */
      /* font-weight: bold; */
      padding: 30px;
    }

    .special-coupon-layout-right-column {
      width: 100%;
      padding: 10px;
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
    }

    .special-coupon-layout-div3-item {
      width: calc(50% - 10px); /* 50%幅で左右に10pxの間隔を確保 */
      border: 2px solid black;
      padding: 10px;
    }

    /* レスポンシブ対応 */
    @media (max-width: 768px) {
      .special-coupon-layout-container {
        flex-direction: column;
        /* border-right: none; */
      }

      .special-coupon-layout-left-header {
        flex-direction: column; /* ヘッダーをワンカラムに */
      }

      .special-coupon-layout-div1,
      .special-coupon-layout-div2 {
        width: 100%; /* ワンカラム幅に調整 */
      }

      .special-coupon-layout-left-column,
      .special-coupon-layout-right-column {
        width: 100%; /* 左右カラムも縦並びに */
        border-right: none;
      }

      .special-coupon-layout-div3-item {
        width: calc(50% - 10px); /* 50%幅に変更 */
      }
    }

    @media (max-width: 480px) {
      .special-coupon-layout-div3-item {
        width: 100%; /* ワンカラムに変更 */
      }
    }

/* クーポン */
.coupon-container {
    margin: 10px auto;
    border: 1px solid #333;
    background-color: #fff;
    position: relative;
    width: 95%;
    cursor: pointer; /* コンテナ全体をクリック可能にする */
}

.coupon-header {
    display: flex;
    align-items: stretch; /* 上下の隙間をなくす */
    border-bottom: 1px solid #333;
    background-color: #FFF;
    cursor: pointer; /* クリック可能にする */
}

.logo-column {
    flex: 1;
    text-align: center;
    border-right: 1px solid #333;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px; /* ロゴ周りのパディングを追加 */
}

.logo-column img {
    width: 40px;
    height: auto;
}

.info-column {
    flex: 5;
    display: flex;
    align-items: center;
    justify-content: space-between; /* 左右の要素を両端に配置 */
    padding: 10px; /* テキスト周りのパディングを追加 */
}

.info-column p {
    margin: 0;
    font-size: 15px;
    line-height: 1.5;
}

.price {
    font-size: 20px;
    font-weight: bold;
    text-align: right;
    margin-left: auto; /* プライスを右寄せ */
}

.price span {
    font-size: 18px;
    margin-right: 5px;
}

.coupon-details {
    padding: 15px;
    /* border-bottom: 11px solid #333; */
    position: relative;
}
.coupon_category {
    display: flex;
    flex-wrap: wrap; /* ボックスが横に並ぶように設定 */
    gap: 10px; /* ボックス間のスペース */
}

.category-box {
    padding: 0px 10px;
    border: 1px solid #000000; /* ボーダーの色 */
    /* border-radius: 5px; */ /* 角を丸くする */
    background-color: #ffffff; /* 背景色 */
    color: #333; /* テキストの色 */
    font-size: 14px;
    margin-bottom: 10px;
}

.coupon-details h2 {
    font-size: 15px;
    margin: 0px 0 10px;
}

.coupon-details p {
    font-size: 13px;
    margin: 0;
    color: #555;
}
.coupon-details__image {
    /* width: 150px; */
    max-width: 40%;
    /* padding: 10px; */
    /* background: #aaa; */
    width: 100px;
}
span.badge-number {
    font-size: 20px;
    /* background: #000; */
    color: #000000;
    margin-right: 10px;
}
span.badge-number {
    font-size: 20px;
    /* background: #000; */
    color: #000000;
    margin-right: 10px;
}
.coupon-conditions {
    display: none; /* 初期状態で非表示 */
    padding: 15px;
}

.coupon-conditions strong {
    color: #fff; /* 文字色を白に */
    background-color: #000; /* 背景を黒に */
    padding: 2px 5px; /* 少し余白を追加 */
    border-radius: 3px; /* 角を少し丸める */
}
@media screen and (max-width: 768px) {
  .coupon-container {
    width: 100%;
  }
}
/* クーポンボタンスタイル */
.toggle-button {
    cursor: pointer;
    font-size: 24px;
    text-align: center;
    background-color: #000;
    color: #fff;
    border: 2px solid #fff;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: -20px;
    display: block;
}

.coupon_reservation {
    display: flex;
    margin-top: 15px; /* 上に余白を追加 */
    width: 100%;
    box-sizing: border-box;
    font-size: 10px;
}

.coupon_reservation_button {
    flex: 1; /* 均等に幅を持たせる */
    text-align: center;
    background-color: #8c9390;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    box-sizing: border-box;
    padding: 0; /* 内側の余白をなくす */
    border: none; /* ボーダーがあれば削除 */
}
.coupon_reservation_button.coupon_instagram_bg {
    background: #71386f;
}
.coupon_reservation_button.coupon_line_bg {
    background: #96cb73;
}
.coupon_reservation_button a {
    text-decoration: none;
    color: inherit;
    display: flex;
    align-items: center;
    width: 100%;
    padding: 10px;
    justify-content: center;
    box-sizing: border-box;
}

.coupon_reservation_button img {
    max-width: 50px; /* アイコンの最大幅を調整 */
    height: auto;
}
/* 2件目以降を非表示 */
.hidden-coupon {
    display: none;
}
/* クーポンボタン */
#show-more {
    text-align: center;
    cursor: pointer;
    margin: 20px auto;
    padding: 5px 0px;
    background-color: #333;
    color: #fff;
    /* border-radius: 5px; */
    width: 95%;
    height: min-content;
}

/* ライトボックス */
#lightbox {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.8);
    display: none; /* 初期状態で非表示 */
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

#lightbox .lightbox-content {
    background-color: #fff;
    padding: 20px;
    border-radius: 5px;
    max-width: 600px;
    width: 95%;
    /* text-align: center; */
    overflow-y: auto; /* コンテンツが長い場合スクロール可能にする */
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
    overflow: scroll;
    max-height: 90vh;
}

#lightbox .coupon-container {
    margin: 0; /* ライトボックス内の余白調整 */
    /* border: none; */ /* ライトボックス内ではボーダーを非表示 */
}

#lightbox-close {
    position: absolute;
    top: 20px;
    right: 20px;
    font-size: 24px;
    color: #fff;
    cursor: pointer;
    background: #000;
    width: 100%;
    text-align: center;
}

/* 背景色の設定 */
.coupon_tel_bg { background-color: #000000; }
.coupon_hotpepper_bg { background-color: #9f1547; }
.coupon_rakuten_bg { background-color: #bf0000; }


/* リレーコンテンツ */

.relay-container {
    width: 95%;
    margin: 100px auto 0;
    background-color: #fff;
    border: solid 1px;
}

/* ヘッダー全体 */
.relay-header {
    display: flex;
    align-items: center;
    border-bottom: solid 2px;
}

/* 変更: .header-left → .relay-header-left */
.relay-header-left {
    width: 180px;
    background-color: #000;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 120px;
}
p.relay-link {
    font-size: 10px;
    color: white;
    font-weight: bold;
}

p.relay-join-us {
    font-family: 'Cabin Sketch', cursive;
    font-size: 22px;
    color: white;
}
.relay-left-content p {
    margin: 0;
}

/* 変更: .header-main → .relay-header-main */
.relay-header-main {
    display: flex;
    width: 100%;
    align-items: center;
}

/* 変更: .header-icon → .relay-header-icon */
.relay-header-icon {
    width: 10%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.relay-header-icon img {
    width: 50%;
}

/* 変更: .header-description → .relay-header-description */
.relay-header-description {
    width: 70%;
    text-align: left;
    font-size: 18px;
    letter-spacing: 2px;
    padding-left: 15px;
    border-left: solid 5px #000;
}

.relay-header-description p {
    margin: 0;
    padding-left: 10px;
}

/* メインカラム全体 */
.relay-main {
    display: flex;
    justify-content: space-between;
    padding: 20px;
    /* align-items: end; */
}

/* 変更: .left-box → .relay-left-box, 
          .right-box → .relay-right-box,
          .main-column → .relay-main-column */
.relay-main-column {
    box-sizing: border-box;
}

/* 左カラム（70%） */
.relay-left-box {
    width: 50%;
    background-color: #fff;
    position: inherit;
    padding: 20px;
}

/* 右カラム（30%） */
.relay-right-box {
    width: 50%;
    padding: 20px;
}

/* オーバーレイコンテナ（左カラム内） */
/* 変更: .overlay-container → .relay-overlay-container */
.relay-overlay-container {
    position: relative;
    width: 100%;
    height: auto;
}

/* 変更: .image → .relay-image */
.relay-image {
    width: 100%;
    height: auto;
    display: block;
    border-bottom: solid 14px;
}

/* 変更: .text-overlay → .relay-text-overlay */
.relay-text-overlay {
    /* position: relative; */
    /* top: 50%; */
    /* left: 50%; */
    /* transform: translate(-50%, -50%); */
    z-index: 2;
    color: #000000;
    text-align: left;
    background-color: rgb(255 255 255);
    padding: 10px 20px;
    /* max-width: 80%; */
    box-sizing: border-box;
    width: 100%;
    border: solid;
    margin: 50px 0;
}

/* 変更: .text-overlay_title → .relay-text-overlay_title */
.relay-text-overlay_title {
    margin-bottom: 6px;
}

/* 変更: .subtitle → .relay-subtitle */
.relay-text-overlay p.relay-subtitle {
    font-size: 22px;
    line-height: 35px;
    margin: 0;
    letter-spacing: 4px;
}

.relay-text-overlay p {
    font-size: 0.8rem;
    line-height: 1.4;
    /* margin: 0 0; */
}

/* 変更: .divider → .relay-divider */
hr.relay-divider {
    height: 5px;
    background: #000;
    border: none;
    margin: 4px auto 10px;
}

/* 変更: .shoplist → .relay-shoplist */
.relay-shoplist {
    position: relative;
    padding: 0px;
    margin-bottom: 20px;
    background-color: #fff;
    width: 95%;
    margin: auto;
}
.relay-text-overlay .relay-button {
    display: inline-block;
    background-color: black; /* 背景色を黒に設定 */
    color: white; /* 文字色を白に設定 */
    text-decoration: none; /* アンダーラインを削除 */
    padding: 5px 0px; /* ボタンの余白を設定 */
    font-size: 14px; /* 文字サイズを調整 */
    /* border-radius: 5px; */ /* 角を丸くする */
    text-align: center; /* テキストを中央揃え */
    transition: background-color 0.3s ease, color 0.3s ease; /* ホバー時のアニメーション */
    margin-top: 20px; /* ボタンの上に余白を追加 */
    width: 100%;
}
.relay-text-overlay .relay-button:hover {
    background-color: white; /* ホバー時の背景色を白に設定 */
    color: black; /* ホバー時の文字色を黒に設定 */
    border: solid;
}

/* 左上の装飾 */
.relay-shoplist::before {
    content: '';
    position: absolute;
    border: 1px solid #000000;
    width: 20px;
    height: 20px;
    top: -10px;
    left: -10px;
    border-width: 1px 0 0 1px;
}

/* 右上の装飾 */
.relay-shoplist::after {
    content: '';
    position: absolute;
    border: 1px solid #000000;
    width: 20px;
    height: 20px;
    top: -10px;
    right: -10px;
    border-width: 1px 1px 0 0;
}

/* 左下の装飾 */
/* 変更: .corner-left-bottom → .relay-corner-left-bottom */
.relay-corner-left-bottom {
    position: absolute;
    border: 1px solid #000000;
    width: 20px;
    height: 20px;
    bottom: -10px;
    left: -10px;
    border-width: 0 0 1px 1px;
}

/* 右下の装飾 */
/* 変更: .corner-right-bottom → .relay-corner-right-bottom */
.relay-corner-right-bottom {
    position: absolute;
    border: 1px solid #000000;
    width: 20px;
    height: 20px;
    bottom: -10px;
    right: -10px;
    border-width: 0 1px 1px 0;
}

.relay-shoplist h2 {
    text-align: center;
    font-size: 20px;
    margin-bottom: 10px;
    color: #000;
    font-weight: bold;
    letter-spacing: 3px;
    position: relative;
}

.relay-shoplist h2::after {
    content: '';
    display: block;
    width: 50px;
    height: 3px;
    background-color: #000;
    margin: 5px auto 0;
}

.relay-shoplist ul {
    list-style: circle;
    color: #000;
    padding-left: 20px;
    display: none;
}

.relay-shoplist li {
    padding: 10px 0;
    border-top: 1px dashed #000;
}

.relay-shoplist li:first-child {
    border-top: none;
}

.relay-shoplist a {
    text-decoration: none;
    color: #000000;
    font-size: 12px;
    display: flex;
    justify-content: center;
    background: #ffffff;
    border: solid;
}

/* 変更: .text → .relay-text, .number → .relay-number */
.relay-text {
    flex: 1;
    text-align: left;
}

.relay-number {
    color: #000;
    font-size: 16px;
    font-weight: normal;
    text-align: right;
    margin-left: 10px;
}

/* 変更: .shoplist-more → .relay-shoplist-more */
.relay-shoplist-more {
    text-align: center;
    margin-top: 50px;
    width: 100%;
}

.relay-shoplist-more a {
    display: inline-block;
    padding: 5px 0;
    background-color: #000;
    color: #fff;
    text-decoration: none;
    font-size: 12px;
    font-weight: bold;
    transition: background-color 0.3s ease;
    width: 90%;
    background: #FFF;
    border: solid;
    color: #000;
}

.relay-shoplist-more a:hover {
    background-color: #333;
    color: #FFF;
}

/* --- 768px 以下のレスポンシブ対応 --- */
@media screen and (max-width: 768px) {
    .relay-header {
        display: block;
        border-bottom: solid 10px;
    }

    .relay-header-left {
        width: 180px;
        background-color: #000;
        color: #fff;
        display: flex;
        align-items: center;
        justify-content: center;
        height: 120px;
        margin: auto;
    }
p.relay-link {
    font-size: 10px;
    color: white;
    font-weight: bold;
}

p.relay-join-us {
    font-family: 'Cabin Sketch', cursive;
    font-size: 22px;
    color: white;
}
    .relay-left-content p {
        margin: 0;
    }

    .relay-header-main {
        display: block;
        width: 100%;
        margin: 50px auto;
        text-align: center;
    }

    .relay-header-icon {
        width: 100%;
        display: flex;
        align-items: center;
    }

    .relay-header-icon img {
        width: 10%;
    }

    .relay-header-description {
        width: 90%;
        text-align: center;
        border-left: none;
        margin: 30px auto;
        padding: 0;
    }

    .relay-header-description p {
        margin: 0;
        padding-left: 10px;
        font-size: 20px;
    }

    .relay-main {
        display: block;
        padding: 0;
        margin-top: 30px;
        padding: 10px;
    }

    .relay-left-box,
    .relay-right-box {
        width: 100%;
        padding: 0;
        margin-bottom: 50px;
    }

    .relay-overlay-container {
        position: relative;
        margin-bottom: 20px;
    }

    .relay-text-overlay {

        width: 100%;
    }
}

/* --- 480px 以下のレスポンシブ対応 --- */
@media screen and (max-width: 480px) {
    .relay-header {
        display: block;
        border-bottom: 1px solid;
        text-align: center;
    }

    .relay-header-left {
        width: 100%;
        background-color: #000;
        color: #fff;
        display: flex;
        align-items: center;
        justify-content: center;
        height: 61px;
        margin: auto;
    }

    .relay-header-main {
        display: flex;
        width: 100%;
        margin: 20px auto;
        text-align: center;
    }
    .relay-text-overlay {
        transform: unset;
        position: static;
        max-width: 100%;
        /* margin: 50px auto; */
        /* width: 100%; */
        padding: 20px;
    }
    .relay-header-icon {
        width: 20%;
        display: flex;
        align-items: center;
    }

    .relay-header-icon img {
        width: 70%;
    }

    .relay-header-description {
        width: 90%;
        text-align: left;
        border-left: none;
        margin: -13px auto;
        padding: 0;
    }

    .relay-header-description p {
        padding-left: 0;
        font-size: 20px;
        font-size: 13px;
        /* letter-spacing: 5px; */
        /* border-left: solid 2px; */
        /* padding-left: 10px; */
    }

    .relay-main {
        padding: 5px;
    }

    .relay-left-box,
    .relay-right-box {
        padding: 5px;
        margin-bottom: 50px;
    }

    .relay-text-overlay p.relay-subtitle {
        font-size: 18px;
        line-height: 23px;
    }

    .relay-shoplist h2 {
        font-size: 20px;
    }

    .relay-shoplist ul li {
        font-size: 14px;
    }

    .relay-shoplist-more a {
        font-size: 12px;
    }
}
/* 店舗フッター */



.collab-container {
    display: flex;
    max-width: 95%;
    margin: 100px auto;
    border: 2px solid #000;
    display: none;
}

/* 左側コンテンツ */
.collab-left-content {
    width: 30%;
    background-color: #fff;
    box-sizing: border-box;
    border-right: solid 2px #000;
    text-align: center;
}

.collab-black-box {
    background-color: #000;
    color: #fff;
    padding: 20px 0;
    margin-bottom: 20px;
    width: 50%;
    margin: auto;
}

.collab-relay-text {
    font-size: 20px;
    margin: 0;
}

.collab-join-text {
    font-family: 'Cabin Sketch', cursive;
    font-size: 38px;
    margin: 0;
}

.collab-sub-text {
    /* font-size: 14px; */
    margin: 10px 0;
    line-height: 1.6;
    /* color: #555; */
    letter-spacing: 3px;
}

.collab-main-text {
    font-size: 20px;
    font-weight: bold;
    margin: 20px 0;
    text-align: center;
    letter-spacing: 1px;
    width: 90%;
    margin: 30px auto;
}

.collab-black-footer {
    background-color: #000;
    text-align: center;
    padding: 5px 0;
    width: 95%;
    margin: auto;
}

.collab-black-footer a {
    display: inline-block;
    text-decoration: none;
    color: #fff;
    /* padding: 10px 20px; */
    /* border-radius: 5px; */
    transition: background-color 0.3s;
    /* font-weight: bold; */
}

.collab-black-footer a:hover {
    background-color: #333;
}

/* 右側コンテンツ */
.collab-right-content {
    width: 70%;
    background-color: #fff;
    box-sizing: border-box;
}

.collab-header-box {
    color: #000;
    padding: 10px;
    display: flex;
    justify-content: space-between;
}

.collab-left-text,
.collab-right-text {
    font-size: 12px;
    font-weight: bold;
}

.collab-info-content {
    display: flex;
    border-top: solid 2px #000;
    align-items: center;
}

.collab-table-area {
    width: 50%;
    padding: 20px;
}
/* 正しい記述に修正 */
.collab-table-area tr {
    background-color: #ffffff; /* 行の背景色 */
    /* border-bottom: 1px solid #ddd; */ /* 行のボーダー */
}

.collab-table-area th {
    background-color: #ffffff; /* ヘッダー背景色 */
    color: #000000; /* 文字色 */
    text-align: left; /* 左揃え */
    padding: 10px; /* パディング */
    font-weight: bold;
}

.collab-table-area td {
    padding: 10px; /* セルのパディング */
    /* border-bottom: 1px solid #ddd; */ /* セルの下線 */
}

    width: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 20px;
}

.collab-map-area iframe {
    width: 100%;
    height: 300px;
    border: none;
}

/* レスポンシブ対応：768px以下 */
@media (max-width: 768px) {
    .collab-container {
        flex-direction: column; /* ワンカラムにする */
        border: none; /* 全体のボーダーを削除 */
    }

    .collab-left-content{
        width: 100%;
        border: 2px solid #000; /* 各セクションにボーダー */
    }
	.collab-right-content{
    width: 100%;
    border: solid 2px;
    margin: 50px 0;
}
	.collab-header-box{} 
	.collab-info-content{
		display:block;}
	.collab-map-area{
		width:90%;
		margin:auto;
	}
	.collab-table-area{
		width:100%;
	}
    /* フォントサイズの調整 */
    .collab-black-box {
        font-size: 18px;
    }
iframe {
    width: 100%;
}
    .collab-relay-text {
        font-size: 16px;
    }

    .collab-join-text {
        font-size: 20px;
    }

    .collab-sub-text {
        font-size: 12px;
    }

    .collab-main-text {
        font-size: 16px;
    }

    .collab-black-footer a {
        font-size: 14px;
        padding: 8px 15px;
    }

    .collab-left-text, .collab-right-text {
        font-size: 14px;
    }
}

/* レスポンシブ対応：480px以下 */
@media (max-width: 480px) {
	p.relay-link {
    font-size: 10px;
    color: white;
    font-weight: bold;
}

p.relay-join-us {
    font-family: 'Cabin Sketch', cursive;
    font-size: 22px;
    color: white;
}
    .collab-black-box {
        font-size: 16px;
    }

    .collab-relay-text {
        font-size: 14px;
    }

    .collab-join-text {
        font-size: 18px;
    }

    .collab-sub-text {
        font-size: 10px;
    }

    .collab-main-text {
        font-size: 14px;
    }

    .collab-black-footer a {
        font-size: 12px;
        padding: 6px 10px;
    }

    .collab-left-text, .collab-right-text {
        font-size: 12px;
    }
}

/* */
/* ボタン１(上) */

.btn_page_shop_info {
  display: flex;
  flex-direction: column;
  position: relative; /* 追加 */
  display: none;
}

.top_section {
  display: flex;
  align-items: center;
}

.btn_page_shop_image, .btn_page_shop_text {
  width: 50%;
}

.open_info {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  width: 90%;
  margin: auto;
  padding: 5px;
  border: solid 2px;
}

.writer_intro {
  /* 任意のスタイル */
}

.open_icon {
  width: 15px;
  height: 15px;
  margin-left: 8px;
}

.btn_page_shop_image {
  width: 50%;
  padding: 5% 0px 5% 40px;
  display: inline-flex;
}

.btn_page_shop_text {
  width: 50%;
  padding: 0 5%;
}
.btn_page_shop_text p {
    margin: 10px 0;
    display: table;
    padding: 0 10px;
}
.btn_page_shop_image img {
  background: #FFF;
  width: 130px;
  height: 80px;
  padding: 5%;
  margin: auto;
  object-fit: cover;
  display: block;
}

@media screen and (max-width: 600px) {
 .close_window.close {
    font-size: 30px;
    position: absolute;
    top: 0;
    left: calc(50% - 25px); /* 50%からボタンの半分の幅を引く */
    border-radius: 30px;
    width: 50px;
    height: 50px;
    text-align: center;
    line-height: 50px;
    border: solid;
    padding: 0px;
    background: rgb(255, 255, 255);
    z-index: 10;
    cursor: pointer;
  }

  .open_window {
    display: none;
  }

  .element {
    opacity: 1;
    transition: opacity 0.1s ease-in-out;
    margin-bottom: 60px;
  }

  .block {
    display: block;
    padding: 4%;
    background: #FFF;
    width: 95%;
    margin: 30px auto;
    border: solid;
    padding-top: 0%;
  }

  .none {
    display: none;
  }

  .img_content {
    overflow: hidden;
  }

  .height {
    height: 0;
  }
}

@media screen and (max-width: 600px) {
  @keyframes shake {
    0% { transform: scale(1); }
    50% { transform: scale(0.95); }
    100% { transform: scale(1); }
  }

  .shaking {
    animation: shake 0.3s ease;
    animation-iteration-count: infinite;
  }
}
/*　ボタン下　*/

@keyframes stretch1 {
  0% { width: 10px; }
  50% { width: 20px; }
  100% { width: 10px; }
}

@keyframes stretch2 {
  0% { width: 10px; }
  40% { width: 18px; }
  100% { width: 10px; }
}

@keyframes stretch3 {
  0% { width: 10px; }
  30% { width: 15px; }
  100% { width: 10px; }
}
.openbtn1 {
    background: #FFF;
    margin: 10px 0;
    padding: 5px;
}
.openbtn1 span:nth-of-type(1) {
    animation: stretch1 1s ease-in-out infinite;
}

.openbtn1 span:nth-of-type(2) {
    animation: stretch2 0.8s ease infinite;
}

.openbtn1 span:nth-of-type(3) {
    animation: stretch3 1.2s ease-out infinite;
}


@media screen and (max-width: 1024px) {
    #g-nav {
        position: fixed;
        z-index: -1;
        opacity: 0;
        top: 0;
        width: 100%;
        height: 100vh;
        transition: all .3s;
    }

    #g-nav.panelactive {
        opacity: 1;
        z-index: 999;
    }

    #g-nav.panelactive #g-nav-list {
        position: fixed;
        z-index: 999;
        width: 100%;
        height: 100vh;
        overflow: auto;
        -webkit-overflow-scrolling: touch;
    }

.openbtn1 {
    position: fixed;
    z-index: 9999;
    cursor: pointer;
    width: 50px;
    height: 50px;
    width: 100%;
    bottom: 0;
    background: #fff;
    color: #000;
    vertical-align: baseline;
    margin: 0;
    padding: 0;
}
.openbtn1:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px; /* ぼかし効果の高さ */
    background: rgba(255, 255, 255, 0.5); /* 色と透明度 */
    filter: blur(2px); /* ぼかしの量 */
    z-index: 1;
}

    .openbtn1 span {
        display: inline-block;
        transition: all .4s;
        position: absolute;
        right: 14px;
        height: 3px;
        border-radius: 2px;
        background-color: #666;
        animation: stretch 1s infinite;
    }

    .openbtn1 span:nth-of-type(1) {
        top: 15px;
        width: 10px;
        right: 18px;
    }

    .openbtn1 span:nth-of-type(2) {
        top: 23px;
        width: 10px;
        right: 18px;
    }

    .openbtn1 span:nth-of-type(3) {
        top: 31px;
        width: 10px;
        right: 18px;
    }

    .openbtn1.active span:nth-of-type(1) {
        top: 18px;
        right: 18px;
        width: 10px;
    }

    .openbtn1.active span:nth-of-type(2) {
        opacity: 0;
    }

    .openbtn1.active span:nth-of-type(3) {
        top: 30px;
        right: 18px;
        width: 10px;
    }

    .openbtn1 p {
        margin: auto;
        text-align: center;
        vertical-align: bottom;
        height: 50px;
        line-height: 50px;
    }

#g-nav.panelactive {
    position: fixed;
    z-index: 999;
    width: 100%;
    height: 100vh;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    left: 0;
    padding: 5% 5% 50% 5%;
}
}

/*　 十字線　 */

.cross {
    position: relative;
    width: 95%;
    height: 13px;
    margin: auto;
}

.horizontal {
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    height: 2px;
    background: black;
}

.vertical {
    position: absolute;
    top: 0;
    left: 50%;
    width: 2px;
    height: 100%;
    background: black;
}

@media screen and (max-width: 768px) {
    .cross {
        margin: auto;
    }
}

/* おすすめポイント */

.customContainer {
    display: flex;
    flex-wrap: wrap;
    background: #FFF;
    width: 70%;
    margin: 20px auto 50px;
    /* padding: 10px; */];
    /* max-width: 70%; */
}

.customBox {
  flex: 1 1 auto;
  border: 1px solid black;
  box-sizing: border-box;
}

.customLogo {
    flex: none;
    width: 20%;
    display: flex;
    justify-content: center;
    align-items: center;
    border-right: none;
    height: 60px;
}

.customLogo img {
    height: inherit;
    padding: 5px;
}

.customText {
    display: flex;
    flex-direction: column;
    justify-content: center;
    border-left: 1px solid;
}

.customText-left {
  /* border-left: 1px solid black; */
  padding-left: 10px;
}

.customText-right {
    padding-right: 10px;
}
.customClassicEditor {
    flex: 0 0 100%;
    border: 1px solid black;
    border-top: none;
    border-bottom: 15px solid black;
    box-sizing: border-box;
    padding: 20px 10px;
    /* width: 90%; */
}
@media screen and  (max-width: 768px) {
	.customContainer{
		width:95%;
	}
}
@media screen and  (max-width: 480px) {
	.customContainer{
    margin: 0 auto 50px;
}
}

/* 店舗情報部分 */
.store-wrapper{
	width: 95%;
	display:flex;
	justify-content: flex-end;
	margin: auto;
}
.store-info img {
  width: 50%;
}
.store-info {
    display: flex;
    flex-direction: column;
    align-items: unset;
    background: #ffffff;
    padding: 20px 0px;
    margin: 0 0 0;
    /* border-top: solid 1px; */
    /* margin-top: 30px; */
    width: 33.3%;
    padding-left: 80px;
}

.store-details h2 {
    font-family: 'Big Shoulders Inline Text', cursive;
    text-align: center;
    font-size: 30px;
    margin: 30px 0;
    padding: 30px 0 0;
}

.details-button {
    width: 95%;
    display: inline-block;
    margin: 20px auto;
    background: #000;
    color: #FFF;
    border: none;
    padding: 5px 0;
}

.details-button p {
    font-size: 12px;
}

.store-details {
  display: none;
  position: fixed;
  top: 0;
  bottom: 0;  
  left: 0;
  width: 100%;
  height: auto;  
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 100;
  overflow: auto;
}

.store-details h1 {
  text-align: center;
}

.store-name {
  font-weight: bold;
  font-size: 15px;
  line-height: 42px;
}

.store-address {
  font-weight: 500;
  font-size: 10px;
}

.store-phone {
  font-weight: 500;
  font-size: 10px;
}

.close-button {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    cursor: pointer;
    width: 100%;
    height: 50px;
}

.details_bg {
    background: #FFF;
    max-width: 1000px;
    margin: 5% auto;
}
.shop_name {
    margin-bottom: 20px;
}
.shop_description {
    margin-bottom: 20px;
}
.map-container {
    position: relative;
    width: 100%;
    padding-bottom: 100%; /* 16:9 アスペクト比を維持するテクニック */
    margin-top: 20px;
    overflow: hidden;
}

.map-container iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    /* padding-bottom: 50%; */
}

.column {
    display: flex;
    justify-content: space-between;
    margin: 10px;
    padding: 30px;
}

.left-column,
.right-column {
    width: 45%;
}

.store-details table {
    table-layout: fixed;
    width: 100%;
}

.store-details td {
    word-wrap: break-word;
}

.store-details th {
    width: 20%;
    text-align: left;
    padding: 5px 5px 5px 0px;
}

.store-details tr {
  width:80%;
}

@media (max-width: 768px) {
    .store-info {
    width: 48%;
    padding: 0;
    margin: 50px 0;
}
    .left-column,
    .right-column {
        width: 100%;
    }

    .store-details > div > div {
        width: 100%;
    }
    .store-details > div {
        display: flex;
        flex-direction: column;
        margin: 8px;
        padding: 10px;
        margin-bottom: 10%;
        margin-top: 10%;
    }
    .column {
      display: block;
    }
    body.no-scroll {
        overflow: hidden;
    }
}
@media (max-width: 480px) {
    .store-info {
    width: 100%;
    padding: 10px;
    margin: 50px 0;
}
}
/* 太陽光 */

.solar-catch {
    text-align: center;
    border: solid 1px #222;
    margin: 10px 0;
    background: #222;
    color: #fff;
}
.solar-title {
    background: #efeeee;
    width: 100%;
    overflow: hidden;
    position: relative;
    height: 40px;
    line-height: 40px;
    border: solid 1px #222;
}

.solar-title_inner {
    display: inline-block;
    white-space: nowrap;
    position: absolute;
    left: 100%;
    animation: marquee 5s linear infinite;
    font-size: 15px;
}
.solar-title_shop-name {
    font-weight: bold;
    color: #333;
}

.solar-title_shop-intro {
    font-style: italic;
    color: #555;
}

@keyframes marquee {
  0% {
    left: 100%;
  }
  100% {
    left: -100%;
  }
}



.solar-banner {
    text-align: center;
    padding: 0px 0;
    color: #222;
    margin-top: 30px;
}

.solar-banner-text-medium {
  font-size: 12px; /* 中サイズのフォント */
  /* margin-bottom: 15px; */
}

.solar-banner-text-large {
  font-size: 17px; /* 大サイズのフォント */
  border-bottom: 2px solid; /* 線太め 5px */
  margin-bottom: 8px;
  letter-spacing: 2px;
}

.solar-banner-text-small {
  font-size: 11px; /* 小サイズのフォント */
  margin-bottom: 15px;
}

/* =========================
   支店一覧 共通スタイル
   ========================= */
.branch-box {
  margin: 30px 0;
  padding: 20px;
  background: #f9fafb;
  border-radius: 8px;
  border: 1px solid #e3e3e3;
}

.branch-box h3 {
  margin: 0 0 15px;
  font-size: 18px;
}

.branch-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.branch-item {
  display: flex;
  flex-direction: column; /* ← スマホは縦積み */
  gap: 10px;
  padding: 15px 0;
  /* border-bottom: 1px solid #eee; */
}

.branch-item:last-child {
  border-bottom: none;
}

/* 現在の店舗を少しだけ強調 */
.branch-item-current {
  /* background: #eef6ff; */
  /* border-radius: 8px; */
  /* padding: 15px; */
}

.branch-image {
  width: 50%;
  max-width: 100%;
  height: auto;
  /* border-radius: 6px; */
  object-fit: cover;
}

.branch-text {
  flex: 1;
}

.branch-title {
  display: block;
  /* font-size: 16px; */
  font-weight: bold;
  /* margin-bottom: 6px; */
}

.branch-address {
  margin: 10px 0 0;
  font-size: 10px;
  /* color: #555; */
}

.branch-tel {
  /* margin: 0 0 10px; */
}

.branch-tel a {
  /* color: #0072c6; */
  text-decoration: none;
  font-weight: bold;
  font-size: 10px;
}


/* =========================
   PC版（幅768px以上）
   2カラム：左140px画像 / 右テキスト
   ========================= */
@media (min-width: 768px) {
  .branch-item {
    flex-direction: row;      /* 横並び */
    align-items: flex-start;
    gap: 15px;
  }

  .branch-image {
    width: 140px;             /* 指定どおり140px */
    max-width: 140px;
  }

  .branch-text {
    flex: 1;
  }

  .branch-title {
    font-size: 18px;
  }
}

/* =========================
   スマホ版（幅767px以下）
   ボタンを横いっぱいにしたい場合
   ========================= */
@media (max-width: 767px) {
  .branch-details-button {
    display: block;      /* 横いっぱい */
    width: 100%;
    box-sizing: border-box;
  }
}
