@charset "utf-8";
@import url("../font/load.css");

/* CSS Document */

body {
  font-size: clamp(14px, 0.72vw, 28px);
  line-height: 1.73;
}

/*========================================
headerの設定
==========================================*/

header {
  position: relative;
}

.sr-hd {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  z-index: 10;
  padding-top: min(3.38vw, 130px);
}

.sr-hd-inbox {
  justify-content: space-between;
  align-items: center;
}

.sr-hd-logo {
  width: clamp(100px, 7.44vw, 286px);
}

.sr-hd-nav {
  font-size: clamp(13px, 0.78vw, 30px);
}

.sr-hd-nav-list-item:not(:last-child) {
  margin-right: clamp(20px, 1.3vw, 50px);
}

/*========================================
footerの設定
==========================================*/

.sr-ft {
  padding: clamp(30px, 1.7vw, 70px) 0;
  background: #000000;
}

.sr-ft-inbox {
  justify-content: center;
}

.sr-hd-logo {
  width: clamp(250px, 8.07w, 310px);
}

/*========================================
メインビジュアルの設定
==========================================*/

.main_visual {
  position: relative;
}

.main_visual-bg img {
  width: 100%;
  height: 100%;
}

.main_visual .catch {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-40%);
  text-align: center;
  z-index: 5;
}

.catch-img {
  width: clamp(100px, 14.53vw, 558px);
  margin: 0 auto clamp(15px, 1.8vw, 40px);
}

.catch-img-txt01 {
  width: clamp(140px, 20.75vw, 797px);
  text-align: center;
  margin: 0 auto clamp(15px, 1.8vw, 40px);
}

.catch-img-txt02 {
  width: clamp(80px, 12.65vw, 486px);
  text-align: center;
  margin: 0 auto;
}

/*========================================
TOPページ
==========================================*/

/*---------------------
sr-explanation
----------------------*/

.sr-explanation {
  text-align: center;
  color: #fff;
  background: url(../img/sr-explanation-bg.jpg) no-repeat center/cover;
}

.sr-explanation-inbox01 {
  padding: clamp(70px, 5.6vw, 215px) 0;
}

/*---------------------
sr-story
----------------------*/

.sr-story {
  position: relative;
  text-align: center;
  color: #fff;
  background: url(../img/pattern01.jpg);
}

.sr-story::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: clamp(700px, 60vw, 2305px);
  height: 230px;
  background: url(../img/sr-story-en.png) no-repeat left top / contain;
  z-index: 1;
}

.sr-story-inbox01 {
  padding: clamp(100px, 8.6vw, 330px) 0;
}

.sr-story-list-item:nth-child(1) {
  display: flex;
}

.sr-story-list-item:nth-child(1) .sr-story-list-item-img {
  width: 50%;
}

.sr-story-list-item:nth-child(1) .sr-story-list-item-txt {
  width: 50%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-bottom: clamp(15px, 2vw, 80px);
}

.sr-story-list-item-num {
  width: clamp(80px, 6.1vw, 235px);
  margin: 0 auto clamp(15px, 1vw, 40px);
}

.sr-story-list-item-txt-ttl {
  position: relative;
  font-size: clamp(20px, 1.2vw, 50px);
  font-weight: 500;
  margin-bottom: clamp(20px, 1.3vw, 50px);
}

.sr-story-list-item .sr-cmn-txt {
  font-size: clamp(12px, 0.7vw, 32px);
  line-height: 2;
}

.sr-story-list-item:nth-child(2) {
  width: 50%;
  margin-top: clamp(-15px, -1vw, -40px);
}

.sr-story-list-item:nth-child(3) {
  display: flex;
}

.sr-story-list-item:nth-child(3) .sr-story-list-item-img {
  width: 50%;
}

.sr-story-list-item:nth-child(3) .sr-story-list-item-img img {
  width: 70%;
  margin: clamp(40px, 3.1vw, 120px) auto 0;
}

.sr-story-list-item:nth-child(4) {
  margin-top: clamp(-15px, -2vw, -80px);
}

.sr-story-list-item:nth-child(4) .sr-story-list-item-img {
  width: 52%;
  margin: 0 auto;
}

.sr-story-list-item:nth-child(4) .sr-story-list-item-txt {
  margin-top: clamp(-15px, -1vw, -40px);
}

/*---------------------
sr-ripening
----------------------*/

.sr-ripening {
  text-align: center;
  color: #fff;
  padding: clamp(80px, 5.4vw, 210px) 0;
  background: url(../img/sr-ripening-bg.jpg) no-repeat center/cover;
}

.sr-ripening-inner {
  width: clamp(700px, 33.8vw, 1300px);
  background: rgba(0, 0, 0, 0.4);
  margin: 0 auto;
  padding: clamp(50px, 3.9vw, 150px) 0;
}

/*---------------------
sr-about
----------------------*/

.sr-about {
  position: relative;
  text-align: center;
  overflow-x: hidden;
  padding: clamp(150px, 9.8vw, 380px) 0 clamp(270px, 19vw, 730px);
  background: linear-gradient(#1b5594, #1b5594) no-repeat center bottom / 100%
      clamp(120px, 8.07vw, 310px),
    url(../img/sr-about-bg.jpg) no-repeat center bottom/cover;
  z-index: 0;
}

.sr-about::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: clamp(402px, 27.05vw, 1037px);
  height: 100%;
  background: url(../img/sr-about-deco.png) no-repeat center bottom/contain;
  z-index: -1;
}

.sr-about-ttl {
  text-align: center;
}

.sr-about-ttl-animated-text {
  display: inline-block;
  font-size: clamp(30px, 2vw, 80px);
  color: #fff;
  letter-spacing: 0.2em;
  line-height: 1.6;
  font-weight: 300;
}

.sr-about-ttl-line {
  display: block;
  margin-bottom: 0.3em;
}

.sr-about-ttl-line:last-child {
  margin-top: 1em;
  font-family: "Futura", "Century Gothic", sans-serif;
  font-size: clamp(20px, 1.6vw, 62px);
  font-weight: 500;
  letter-spacing: 0.2em;
  color: #fff;
}

.char {
  display: inline-block;
  opacity: 0;
  transform: translateY(20px) scale(0.95);
  /* アニメーションは削除 */
}

.char.space {
  width: 0.3em;
}

/* アニメーションクラス - このクラスが追加されたときにアニメーション開始 */
.char.animate {
  animation: elegantFadeIn 2.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}

/* アニメーション */
@keyframes elegantFadeIn {
  0% {
    opacity: 0;
    transform: translateY(20px) scale(0.95);
  }
  30% {
    opacity: 0.6;
    transform: translateY(-2px) scale(1.02);
  }
  60% {
    opacity: 0.9;
    transform: translateY(1px) scale(1.01);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* レスポンシブ */
@media (max-width: 768px) {
  .sr-about-ttl-animated-text {
    letter-spacing: 0.08em;
  }
  .sr-about-ttl-line:last-child {
    letter-spacing: 0.15em;
  }
}

/* 歩くアニメーション */

/* レイヤ：位置移動はこの要素のrightで行う（JSでtransition時間を設定） */
#walker-layer {
  position: absolute;
  bottom: 0;
  right: 0; /* スタート位置 */
  width: 1px;
  height: 1px;
  will-change: right;
}

/* 実際の画像：natural寸法をtransform scaleで正規化。足元基準で拡縮 */
#walker {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform-origin: bottom center;
  transform: translateX(-50%) scale(1);
  will-change: transform, opacity;
  opacity: 1;
  transition: opacity 0.2s ease; /* フェード時間はJSのFADE_DURATION_MSと揃える */
  display: block;
}

#sr-lp #walker {
  max-width: none;
}

@media (prefers-reduced-motion: reduce) {
  #walker-layer,
  #walker {
    transition: none !important;
  }
}

/*---------------------
sr-product
----------------------*/

.sr-product {
  position: relative;
  color: #fff;
  background: url(../img/pattern01.jpg);
  z-index: 0;
}

.sr-product ::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: clamp(600px, 54vw, 2079px);
  height: 227px;
  background: url(../img/sr-product-en.png) no-repeat left top / contain;
  z-index: 1;
  opacity: 0.05;
}

.sr-product-inbox01 {
  padding: clamp(100px, 8.6vw, 330px) 0;
}

.sr-product-ttl {
  text-align: center;
  margin-bottom: clamp(50px, 5.2vw, 200px);
}

.sr-product-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: clamp(800px, 37.5vw, 1440px);
  margin: 0 auto;
}

.sr-product-card-img {
  width: 33%;
}

.sr-product-card-tbl {
  width: 50%;
}

.sr-product-card-tbl th,
.sr-product-card-tbl td {
  font-size: clamp(18px, 0.83vw, 32px);
  padding-bottom: 18px;
}

.sr-product-card-tbl th {
  text-align: left;
  font-weight: 500;
}

.sr-product-card-tbl td {
  text-align: right;
}

/*---------------------
sr-tasting
----------------------*/

.sr-tasting {
  position: relative;
  background: #000000;
}

.sr-tasting::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: clamp(700px, 60vw, 2305px);
  height: 230px;
  background: url(../img/sr-tasting-en.png) no-repeat left top / contain;
  z-index: 1;
}

/*---------------------
sr-info
----------------------*/

.sr-info {
  background: url(../img/pattern01.jpg);
}

.sr-info-inbox {
  padding: clamp(100px, 5.2vw, 200px) 0;
}

.sr-info-line {
  width: clamp(650px, 39.58vw, 120px);
  margin: 0 auto;
}

.sr-info-line_hover {
  display: inline-block;
  transition: 0.5s;
}

.sr-info-line_hover:hover {
  transform: translateY(-13px);
}

/*---------------------
セクション名
----------------------*/
