html,
body,
div,
span,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
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,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
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;
    -webkit-box-sizing: border-box;
    box-sizing: border-box
}
body {
    line-height: 1
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
    display: block
}
nav ul {
    list-style: none
}
blockquote,
q {
    quotes: none
}
blockquote:before,
blockquote:after,
q:before,
q:after {
    content: '';
    content: none
}
a {
    margin: 0;
    padding: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent
}
ins {
    background-color: #ff9;
    color: #000;
    text-decoration: none
}
mark {
    background-color: #ff9;
    color: #000;
    font-style: italic;
    font-weight: bold
}
del {
    text-decoration: line-through
}
abbr[title],
dfn[title] {
    border-bottom: 1px dotted;
    cursor: help
}
table {
    border-collapse: collapse;
    border-spacing: 0
}
hr {
    display: block;
    height: 1px;
    border: 0;
    border-top: 1px solid #cccccc;
    margin: 1em 0;
    padding: 0
}
input,
select {
    vertical-align: middle
}
.wrapper {
    overflow: hidden;
    background: #d9d6d6
}
.top__rogo {
    position: absolute;
    top: 50%;       /* 画面上からの位置 */
    left: 50%;
    transform: translate(-50%, -50%); /* 中央揃え */
    z-index: 15;     /* スクロール線より前面 */
}
.header {
    position: fixed;
    top: 0;
    right: 0;
    width: 100%;
    height: auto;
    z-index: 50; /* 通常は中程度 */
    pointer-events: none; /* header全体はクリック無効 */
}
.header * {
    pointer-events: auto; /* 内部要素は有効 */
}
.gnav {
    position: fixed;
    top: 0;
    width: 472px;
    height: 100vh;
    right: -472px;
    z-index: 100; /* メニューはヘッダーより前面 */
    text-align: center;
    background: rgba(84, 79, 79, 0.434);
    -webkit-transition: 0.4s;
    transition: 0.4s;
    pointer-events: none; /* 初期状態は無効 */
}
.gnav.open { /* メニュー開いた時だけ有効 */
    pointer-events: auto;
}
.gnav__link {
    display: inline-block;
    padding: 30px 180px;
    margin-top: 70px;
    text-decoration: none;
    font-family: 'Shippori Mincho', serif;
    color: #fff
}
.box {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    position: relative;
    z-index: 3;
    width: 100%
}
.icon {
    padding: 20px
}
.footer {
    display: block;
    padding: 30px;
    text-align: center;
    background: url('../images/footer_img1.jpg') center center/cover
}
.footer__list {
    list-style-type: none
}
.footer__name,
.footer__address,
.footer__tel,
.footer__mail,
.footer__time {
    font-size: 18px;
    font-family: 'Shippori Mincho', serif;
    text-decoration: none;
    text-shadow: 1px 1px 1px #000000;
    line-height: 3;
    color: #fff
}
.footer__copy {
    line-height: 6
}
.footer__small {
    font-size: 12px;
    color: #fff
}
.concept {
  position: relative; /* MVと被らないように独立 */
  display: flex;              /* Flexbox 有効 */
  flex-direction: column;     /* 縦方向に並べる */
  justify-content: center;    /* 上下中央揃え */
  align-items: center;        /* 左右中央揃え */
  text-align: center;         /* テキストも中央 */
  min-height: 100vh;          /* セクションの高さを画面いっぱいに */
  padding: 12rem 10% 10rem; /* 上 5rem、左右 10%、下 10rem に増やす */
  margin-bottom: 6rem;     /* 下に余白を追加 */
  overflow: hidden;  /* 風や月がはみ出ても切れない */
}
.concept__ttl {
    padding: 40px;
    text-align: center;
    font-size: 40px;
    font-family: 'Shippori Mincho', serif
}
.concept__rogo {
    margin: 0;
    padding: 0;
}
.concept__txt {
    writing-mode: vertical-rl;  /* 縦書き */
    text-orientation: mixed;    /* 縦書き文字の向き */
    max-height: 45%;          /* 高さ制限 */
    /* overflow-y: auto; */
    overflow-y: visible; /* 縦スクロールを消す */
    text-align: start;     /* 縦書きでの頭揃え */
    letter-spacing: 0.1rem;
    line-height: 2em;
    font-family: 'Shippori Mincho', serif;
    font-size: 1rem;
    margin-top: 20px;
}

/* ----------------------------------------------------- */

/* 星の柔らかい点滅アニメーション */
#stars {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  overflow: hidden;
  z-index: 5;
}

.shooting-star {
  position: absolute;
  top: -5%;
  background: #fff;
  border-radius: 50%;
  opacity: 0;
  box-shadow:
    0 0 1.5vw rgba(255,255,255,0.8),
    0 0 1vw rgba(255,255,255,0.5),
    0 0 2.5vw rgba(255,255,255,0.6);
  animation: fall linear infinite, glow ease-in-out infinite;
}

@keyframes fall {
  0% { top: -5%; }
  100% { top: 105%; }
}

@keyframes glow {
  0%   { opacity: 0.4; }
  25%  { opacity: 1; }
  50%  { opacity: 0.6; }
  75%  { opacity: 1; }
  100% { opacity: 0.5; }
}

/* =============================
   コレクションセクション
============================= */
.collection {
    min-height: 100vh;  /* セクション全体を画面高さに */
}
.collection__ttl {
    margin-bottom: 4rem; 
    text-align: center; /* センター寄せしたい場合 */
    font-family: 'Shippori Mincho', serif;
    font-size: 40px;
}
.collection__box {
  display: flex;
  flex-wrap: wrap;
  /* justify-content: center; */
  /* justify-content: stretch; */
  align-items: stretch;  /* 高さを揃える */
  gap: 2rem;
  /* max-width: 90%; */
  width: 85%;
  min-height: 100vh; /* 高さは最低100vh */
  height: auto;
  margin: 0 auto;
}

/* 左：商品画像 */
.collection__box .heroimage {
  flex: 0 0 35%;
  /* margin: 0; */
  /* display: flex; */
  max-height: 100%;         /* 親の高さに合わせる */
  object-fit: contain;
}
.collection__box .heroimage img {
  /* display: block; */
  width: 100%;
  object-fit: contain;  /* 切れないようにする */
}
/* サムネイルクリック可能に */  
#collection__list {
    position: relative;
    z-index: 30;
}
/* collection セクション内Swiperのはみ出し防止 */
/* #collection .thumbnail_images {
  width: 60%;
  overflow: hidden;
} */
#collection .thumbnail_images {
    width: 100%;         /* 画面いっぱいに広げる */
    overflow-x: auto;    /* 横スクロールOK */
    overflow-y: hidden;  /* 縦スクロール不要 */
    padding: 0;        /* 上下の余白を消す */
    margin: 0 auto;    /* 中央寄せ */
    gap: 0.5rem;
    /* display: flex; */
}

#collection .swiper {
  width: 100%;
  box-sizing: border-box;
}

#collection .swiper-slide {
  flex-shrink: 0;   /* 余計な縮みを防止 */
  box-sizing: border-box;
}

.collection__list {
    position: relative;
    z-index: 20; /* サムネイルと商品情報はヒーロー画像より前面 */
}
.collection__box .collection__list {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between; /* 上下に分ける */
  /* max-height: 80vh; */
   max-height: 100%;         /* 親の高さに合わせる */
   padding: 1rem;      /* 固定ではなく相対値 */
  /* gap: 0.5rem; */
  /* box-sizing: border-box; */
  /* overflow-y: visible; */
  overflow-y: auto;   /* 必要に応じてスクロール */
}
.collection__gnav__ttl {
    display: block;
    text-align: center;
    padding: 20px;
    font-size: 24px;
    font-family: 'Shippori Mincho', serif;
    font-weight: normal;
    border-bottom: 2px #262525 solid;
}

/* 商品情報リスト内のボーダーや余白 */
.collection__gnav__nav {
    /* overflow-y: auto; */
    flex: 1 1 auto;
}
.collection__gnav__list {
    padding: 1rem;       /* 固定値を削除して相対値に */
    font-size: 0.9375rem;
    font-family: 'Shippori Mincho', serif;
    border-bottom: 1px rgba(38, 37, 37, 0.296) solid
}
.collection__txt {
    max-width: 100%;
    text-align: justify;
    line-height: 1.5em;
    font-size: 16px;
    font-family: 'Shippori Mincho', serif;
    box-sizing: border-box;
}
.collection__caution {
    font-size: 12px;
    font-family: 'Shippori Mincho', serif
}
 .thumbnail_images {
    display: flex;
    flex-direction: row;
    flex-shrink: 0;
    gap: 0.1rem;
    flex-shrink: 0;
    width: 100%;
    max-height: 80%;
    margin: 1rem auto 0 auto;
    padding: 0.1rem 0; /* 上下に少し余白 */
    overflow-x: auto;
    z-index: 30;
    position: relative;
}
/* スワイパー */
.thumbnail-swiper {
  width: 100%;
  padding: 1rem 0;
}

/* .thumbnail-swiper .swiper-slide img {
  display: block;
  width: 100%;
  cursor: pointer;
  border-radius: 4px;
  transition: transform 0.2s, box-shadow 0.2s;
} */
 /* サムネイル画像 */
.thumbnail-swiper .swiper-slide img {
    display: block;
    max-width: 60px;   /* お好みのサイズ */
    width: auto;
    height: auto;
    object-fit: contain; /* 縦横比を保持 */
    cursor: pointer;
    border-radius: 4px;
    transition: transform 0.2s, box-shadow 0.2s;
}
.thumbnail-swiper .swiper-slide {
    display: flex;        /* 余白を消すためにflex */
    justify-content: center;
    align-items: center;
    width: auto;          /* Swiperに任せる */
    flex-shrink: 0;          /* 縮まない */
}
.thumbnail-swiper .swiper-slide img:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 15px rgba(0,0,0,0.3);
}
#thumbnail_images .swiper {
    position: relative; /* 矢印・ページネーションの基準 */
    width: 100%;
    box-sizing: border-box;
}
/* Swiper1枚のスライド */
#thumbnail_images .swiper-slide {
  width: auto;       /* Swiperに任せる */
  flex-shrink: 0;    /* 縮まない */
  gap: 0; /* 余白を消す */
    /* max-width: 80%; */
}
#thumbnail_images .swiper-button-next,
#thumbnail_images .swiper-button-prev {
  position: absolute;
  top: 50%;
  /* transform: translateY(-50%); */
  z-index: 999;
  color: #ffffff; /* 好きな色 */
  pointer-events: auto;
}
/* ページネーション */
#thumbnail_images .swiper-pagination {
  position: absolute;
  bottom: 5px;
  left: 0;
  width: 100%;
  text-align: center;
}

#thumbnail_images .swiper-pagination-bullet {
  background: #000;   /* 黒ドット */
  opacity: 0.6;
}

#thumbnail_images .swiper-pagination-bullet-active {
  background: #c00;   /* 赤などに変更可 */
  opacity: 1;
}
/* ----------------------------------------------------- */
.collection__tmb {
  width: auto;
  height: auto;
  max-width: 15%;
  margin: 0; /* ←追加 */
  padding: 0; /* 念のため */
  flex-shrink: 0;
  overflow: hidden;   /* オーバーレイ用 */
  background: transparent !important; /* 念のため背景消す */  
  border: none;   /* 念のため */  
  position: relative;
  display: inline-block; /* 横並び対応 */
  /* display: block; */
  position: relative;
  line-height: 0; /* inline-block の余白を消す */
    /* display: flex; */
  /* align-items: center; */
  /* justify-content: center; */
  /* flex: 0 0 auto;  */
  /* cursor: pointer; */
  /* transition: transform 0.3s ease, box-shadow 0.3s ease; */
}

.collection__tmb img {
  display: block;
  /* width: auto; */
  /* max-width: 35%; */
  width: 100%;
  /* max-width: 100px; */
  height: auto; 
  object-fit: cover;
  background: transparent;  /* 万が一の背景色をリセット */
  /* vertical-align: middle; */
}
.collection__tmb a {
  display: block;
  margin: 0;
  padding: 0;
}
/* collection内のswiper-wrapperに適用 */
.collection__list #thumbnail_images .swiper-wrapper {
    gap: 0%;             /* 0でSwiperのspaceBetweenに任せるまたは *//* スライド間の余白を％単位で調整 */
}

/* スライド1枚の幅を固定 or パーセントに */
.collection__list #thumbnail_images .swiper-slide {
    width: auto;         /* Swiperに任せる */
    flex-shrink: 0;
}

/* 白オーバーレイを作る */
.collection__tmb::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(255,255,255,0); /* 通常は透明 */
  transition: background 0.3s ease;
  pointer-events: none; /* クリックを妨げない */
  border-radius: 4px;
}
/* ホバー時 */
.collection__tmb:hover {
  transform: translateY(-5px); /* 浮き上がり */
  box-shadow: 0 8px 15px rgba(0,0,0,0.5); /* 影で立体感 */
}

.collection__tmb:hover::after {
  background: rgba(255,255,255,0.4); /* 薄い白オーバーレイ */
}
/* 購入ボタン */
.button {
    margin: 1.5rem auto 0 auto; /* 上に2remの余白を追加 */
    display: inline-block; /* ← ブロック幅をなくす */
    position: relative;    /* ← 念のためレイヤーを独立 */
    z-index: 30;           /* ← 他要素より前面に出す */
    flex-shrink: 0;       /* 高さが縮まらない */
}
.button__link {
    position: relative;
    display: inline-block;
    padding: 10px 25px;
    text-decoration: none;
    font-size: 18px;
    font-family: 'Shippori Mincho', serif;
    color: #000;
    background: #919191;
    border: 1px solid #000;
    text-align: center;
    z-index: 30;
    text-shadow: none;
}
.button__link:hover {
    color: #fff !important;
    background: #000 !important;
}

/* =============================
   スマホ対応
============================= */
@media screen and (max-width: 768px) {
    .collection__box {
        flex-direction: column;   /* 縦並び */
        align-items: center;
        max-height: none; /* 高さ制限を解除 */
    }
  .collection__box .heroimage,
  .collection__box .collection__list {
    flex: 0 0 auto;
    width: 100%;
    max-height: auto;
  }
}


.nws {
    padding: 40px 0;
    text-align: center
}
@media screen and (max-width: 768px) {
  .nws {
    margin-bottom: 10rem;
  }
}
.nws__ttl {
    padding: 40px;
    font-size: 32px;
    font-family: 'Shippori Mincho', serif
}
.nws__link {
    line-height: 2em;
    text-decoration: none;
    font-size: 16px;
    font-family: 'Shippori Mincho', serif;
    color: #000
}
.nws__button {
    margin: 30px 0 100px
}
.contact {
    background: #3e3d3d;
    padding: 4rem 10%;
}
.contact__ttl {
    padding: 40px;
    text-align: center;
    font-size: 32px;
    font-family: 'Shippori Mincho', serif;
    color: #fff
}
form div {
    margin-bottom: 14px
}
label {
    font-size: 1.125rem;
    margin-bottom: 10px;
    padding: 10px 0;
    display: block;
    font-size: 18px;
    font-family: 'Shippori Mincho', serif;
    color: #fff
}
/* テキストボックス & メール欄 & テキストエリア */
input[type="text"],
input[type="email"],
textarea {
  border: 0.5px solid rgba(26, 25, 25, 0.563);
  border-radius: 3px;
  padding: 10px;
  font-size: 1rem;
  box-sizing: border-box;
}
/* テキスト・メール入力欄 */
input[type="text"],
input[type="email"] {
  width: 100%;
  max-width: 70%;
}
/* テキストエリア */
textarea {
  width: 100%;
  max-width: 100%;
  min-height: 30vh;
  resize: vertical;
}
/* 送信ボタン */
input[type="submit"] {
  border: none;
  cursor: pointer;
  line-height: 1;
}
.button__contact {
    display: block;
    margin: 40px auto;
    height: 50px;
    line-height: 50px;
    text-align: center;
    font-family: 'Shippori Mincho', serif;
    color: #000;
    background: #919191;
    border-radius: 4px;
    padding: 0 20px;
    transition: background 0.3s ease;
    position: relative;   /* hoverが効きやすいように */
    z-index: 10;
    text-shadow: none;
}
.button__contact:hover {
      color: #fff;
    background: #000;
}
/* ==================================== */
.mv {
  position: relative; /* 子要素を絶対配置するため */
  width: 100%;
  height: 100vh;
  overflow: visible; /* これがないと線が切れる場合あり */
}
.mv__scroll {
  position: absolute;
  left: 50%;         /* 横中央 */
  bottom: -10%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column; /* 文字の上に線 */
  align-items: center;
  z-index: 20; /* ロゴより前面 */
}

/* scroll文字（縦書き） */
.mv__scroll-txt {
  writing-mode: vertical-rl;
  text-orientation: mixed;
  color: darkgoldenrod;
  font-family: 'Shippori Mincho', serif;
  letter-spacing: 0.3em;
  font-size: 14px;
  margin-bottom: 8px; /* 線との間隔 */
}

/* 赤い縦線 */
.mv__scroll-line {
  width: 2px;
  height: 60px;       /* 線の長さ */
  background-color: rgb(105, 35, 35);
}
/* ================================== */
.swiper-container {
    position: absolute;
    width: 100%;
    height: 100vh;
    top: 0
}
.sec1__slide01 {
    background: url('../images/mv1.jpg') center center/cover
}
.sec1__slide02 {
    background: url('../images/mv2.jpg') center center/cover
}
.sec1__slide03 {
    background: url('../images/mv3.jpg') center center/cover
}
.sec1__slide04 {
    background: url('../images/mv4.jpg') center center/cover
}
.sec1__slide05 {
    background: url('../images/mv5.jpg') center center/cover
}
.translate {
    -webkit-transform: translate(-472px);
    transform: translate(-472px)
}

/* 各セクションのふわっと表示
初期状態：透明・少し下にずらす */
.fade-in-section {
  opacity: 0;
  transform: translateY(50px);
  transition: opacity 1s ease-out, transform 1s ease-out;
}

/* スクロールで表示されたら */
.fade-in-section.visible {
  opacity: 1;
  transform: translateY(0);
}

/* ======================================
   saku〜newsまでの背景グラデーション
   文字は白固定＋シャドウで読みやすく
====================================== */
.fade-bg {
    background: linear-gradient(to bottom, #000000 0%, #ffffff 100%);
}

/* セクション内の文字 */
.fade-bg section {
    color: #fff; /* 白文字固定 */
    text-shadow:
        0 0 5px rgba(0,0,0,0.8),  /* 強めの黒影で黒背景でも見える */
        0 0 10px rgba(0,0,0,0.5);
}

/* 見出し */
.fade-bg section h2,
.fade-bg section h3,
.fade-bg section p {
    color: #fff; /* 白文字 */
    text-shadow:
        0 0 5px rgba(0,0,0,0.8),
        0 0 10px rgba(0,0,0,0.5);
}

/* 縦書きテキスト */
.concept__txt {
    color: #fff;
    text-shadow:
        0 0 5px rgba(0,0,0,0.8),
        0 0 10px rgba(0,0,0,0.5);
}
