@charset "UTF-8";
@property --zoom-factor {
  syntax: "<length>";
  inherits: false;
  initial-value: 0;
}
.zoom-wrapper {
  --_min-viewport-width: 480px; /* viewportの最小値を下回ったら縮小をやめる */
  --_max-viewport-width: 1350px; /* viewportの最大値を上回ったら拡大をやめる */
  --_zoom-value: clamp(
    tan(atan2(var(--_min-viewport-width), var(--_max-viewport-width))),
    tan(atan2(var(--zoom-factor), var(--_max-viewport-width))),
    1
  );
  --zoom-factor: clamp(
    var(--_min-viewport-width),
    100dvi,
    var(--_max-viewport-width)
  );
  zoom: var(--_zoom-value);
  -webkit-text-size-adjust: initial; /* iOS Safariのバグを修正 */
  /* 768px以下では100%のズーム値を適用 */
}
@media (max-width: 480px) {
  .zoom-wrapper {
    zoom: 1;
  }
}

:root {
  --color-primary-500: rgb(24, 159, 186);
  --color-primary-500_op90: rgba(24, 159, 186, 0.9);
  --color-primary-500_op65: rgba(24, 159, 186, 0.65);
  --color-primary-300: rgb(103, 190, 208);
  --color-secondary-500: rgb(255, 248, 193);
  --color-thirdry-500: rgb(233, 177, 196);
  --color-thirdry-500_op30: rgba(233, 177, 196, 0.3);
  --color-thirdry-500_op70: rgba(233, 177, 196, 0.7);
  --color-thirdry-500_op90: rgba(233, 177, 196, 0.9);
  --color-thirdry-600: rgb(231, 149, 177);
  --color-variant-moist500: rgb(173, 220, 224);
  --color-variant-moist500_op60: rgba(173, 220, 224, 0.6);
  --color-accent-600: rgb(11, 147, 178);
  --color-accent-500: rgb(51, 166, 209);
  --color-grayscale-100: rgb(255, 255, 255);
  --color-grayscale-100_op10: rgba(255, 255, 255, 0.1);
  --color-grayscale-100_op50: rgba(255, 255, 255, 0.5);
  --color-grayscale-100_op70: rgba(255, 255, 255, 0.7);
  --color-grayscale-100_op90: rgba(255, 255, 255, 0.9);
  --color-grayscale-400: rgb(222, 221, 221);
  --color-grayscale-500: rgb(92, 92, 92);
  --color-grayscale-900: rgb(69, 69, 69);
  --color-comment-blue: rgb(68, 46, 206);
  --color-comment-500: rgb(255, 0, 0);
  --color-surface-400: rgb(244, 207, 220);
  --color-surface-300: rgb(247, 218, 228);
  --color-surface-200: rgb(248, 253, 190);
  --noise01: url("data:image/svg+xml,%3Csvg viewBox='0 0 500 500' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='turbulence' baseFrequency='0.4' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
  --noise02: url("data:image/svg+xml,%3Csvg viewBox='0 0 500 500' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='1' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
  --fontfamily_base: "Zen Kaku Gothic New", sans-serif;
  --font_color_base: var(--color-primary-500);
  --font_size_base: max(10px,2.6vw);
  --font_weight_base: 500;
  --font_weight_bold: 700;
  --line-height_base: 1.8;
  --line-height_head: 1.5;
  --line-height_narrow: 1.05;
  --line-height_wide: 2.4;
  --letter-spacing_base: 0.03em;
  --fontfamily_en: serif;
  --font_weight_en: 400;
  --line-height_en: 1.05;
  --letter-spacing_en: 0.04em;
  --letter-spacing_en_tight: 0em;
  --mh--duration01: 0.3s;
  --mh--duration02: 0.6s;
  --mh--easing01: ease;
  --mh--easing02: cubic-bezier(0.1, 0.7, 0.4, 1);
  --mh--easing03: cubic-bezier(0.03, 0.9, 0.15, 1);
  --mh--easing04: cubic-bezier(1, 0, 0.87, 0.86);
  --contents_width: 1100px;
  --contents_wide_width: 1340px;
  --body_padding_side: 8%;
  --contents_width_with_padding: 940px;
  --contents_wide_width_with_padding: 1240px;
  --sidebar_width: 250px;
  --header_height: 68px;
}

.moreBtn {
  width: 100%;
  height: 65px;
}
.moreBtn a {
  display: flex;
  line-height: 65px;
  width: 100%;
  height: 100%;
  text-align: center;
  position: relative;
  border-radius: 33px;
  padding: 0 18px 0 55px;
}
.moreBtn a span {
  font-size: 2.4rem;
  font-weight: 500;
  letter-spacing: 0.06em;
}
.moreBtn a i.icon {
  height: 65px;
  width: 32.5px;
  display: block;
  margin-left: auto;
}
@media (max-width: 480px) {
  .moreBtn {
    height: 50px;
  }
  .moreBtn a {
    line-height: 50px;
  }
  .moreBtn a span {
    font-size: 1.8rem;
  }
  .moreBtn a i.icon {
    height: 50px;
    width: 25px;
  }
  .moreBtn a i.icon img {
    width: 25px;
    height: 50px;
  }
}
.moreBtn.mini {
  height: 45px;
  max-width: 360px;
}
.moreBtn.mini a {
  line-height: 45px;
}
.moreBtn.mini a span {
  font-size: 1.6rem;
}
.moreBtn.mini a i.icon {
  height: 45px;
  width: 25px;
}
.moreBtn.mini a i.icon img {
  width: 25px;
  height: 45px;
}
.moreBtn.blue a {
  background: #62C1BC;
}
.moreBtn.blue a span {
  color: #FFFBEF;
}
.moreBtn.blue a i.icon img {
  filter: brightness(0) invert(1);
}
.moreBtn.blue:hover {
  opacity: 0.8;
}
.moreBtn.white a {
  background: #fff;
  border: 1.5px solid #62C1BC;
}
.moreBtn.white a span {
  color: #62C1BC;
}
.moreBtn.white a i.icon img {
  filter: invert(71%) sepia(73%) saturate(249%) hue-rotate(128deg) brightness(86%) contrast(88%);
}
.moreBtn.white:hover {
  opacity: 0.8;
}

/**
 * ローディングオーバーレイ（TOPページ専用）
 * 仕様:
 * - 画面全体を覆うオーバーレイ
 * - 中央にロゴを垂直・水平センタリング
 * - フェードイン/アウトに対応（JSで .is-loaded を付与 → 3秒後にopacity 0 → display none）
 * 制限:
 * - 他要素のpositionやz-indexと競合しないよう z-index を最大層級に設定
 */
.loading {
  position: fixed;
  inset: 0;
  z-index: 99999;
  background: #fff;
  display: block;
  opacity: 1;
  transition: opacity var(--mh--duration02) var(--mh--easing01);
}
.loading .loadingInner {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: min(70vw, 420px);
  max-width: 90%;
  text-align: center;
}
.loading .loadingLogo {
  margin: 0 auto;
  width: 100%;
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}
.loading .loadingLogo img {
  width: 80%;
  height: auto;
  display: block;
}
.loading.is-loaded {
  /* ロード開始状態の軽い演出（任意） */
  opacity: 1;
}

.sttl {
  font-size: 3.8rem;
  letter-spacing: 0.06em;
  line-height: 1;
  font-feature-settings: "palt";
  font-weight: 500;
}
.sttl ruby rt {
  font-size: 2rem;
  font-weight: 400;
  letter-spacing: 0.03em;
  margin-bottom: 10px;
}
@media (max-width: 480px) {
  .sttl {
    font-size: 2.8rem;
  }
  .sttl ruby rt {
    font-size: 1.5rem;
  }
}

.wrapper {
  max-width: 500px;
  margin-right: auto;
  margin-left: auto;
  width: 100%;
  height: 100%;
  overflow-x: clip;
  position: relative;
  z-index: 5;
}

.sideMenu {
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
}
@media (max-width: 1280px) {
  .sideMenu {
    display: none;
  }
}
.sideMenu.is-shown {
  position: fixed;
  top: 50%;
  right: clamp(36.75px, 8.7504vw, 105px);
  transform: translateY(-50%);
  z-index: 999;
  opacity: 1;
  pointer-events: auto;
  visibility: visible;
}
.sideMenu ul.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity var(--mh--duration01) var(--mh--easing01), visibility var(--mh--duration01) var(--mh--easing01);
}
.sideMenu ul li a {
  display: flex;
}
.sideMenu ul li a p.num {
  width: 40px;
  font-size: 2rem;
  letter-spacing: 0.03em;
  font-weight: 600;
  font-family: "Zen Old Mincho", serif;
}
.sideMenu ul li a .ttlBox {
  width: calc(100% - 40px);
}
.sideMenu ul li a .ttlBox span {
  display: block;
}
.sideMenu ul li a .ttlBox span.en {
  font-size: 2rem;
  letter-spacing: 0.03em;
  font-weight: 600;
  font-family: "Zen Old Mincho", serif;
}
.sideMenu ul li a .ttlBox span.jp {
  font-size: 1.6rem;
  letter-spacing: 0.03em;
  font-weight: 400;
  font-family: "Zen Old Mincho", serif;
  margin-top: 5px;
}
.sideMenu ul li + li {
  margin-top: 20px;
}
.sideMenu .onlineBtn {
  margin-top: 5lvh;
  position: absolute;
  right: 0;
}
.sideMenu .onlineBtn a {
  display: block;
  width: 100%;
  height: 100%;
  margin-left: auto;
  text-align: right;
}

.sideLogo {
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
}
@media (max-width: 1280px) {
  .sideLogo {
    display: none;
  }
}
.sideLogo.is-shown {
  opacity: 1;
  position: fixed;
  top: 50%;
  left: 5%;
  transform: translateY(-50%);
  z-index: 999;
  pointer-events: auto;
  visibility: visible;
}
.sideLogo.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

body {
  transition: filter 0.8s var(--mh--easing01);
}
body.is-shown {
  filter: brightness(2) saturate(0.3);
}

#fvArea {
  transition: filter 0.8s var(--mh--easing01);
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1;
  height: 100lvh;
  /**
   * .is-shownクラスの状態管理
   * @description スクロール位置に応じて表示状態を制御
   */
  /**
   * FVエリアの内部構造
   */
}
@media (max-width: 480px) {
  #fvArea {
    background: #fff;
    position: fixed;
    height: -webkit-fill-available;
  }
  #fvArea::before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background: rgba(248, 237, 221, 0.35);
    z-index: 2;
    top: 0;
    left: 0;
    position: absolute;
  }
}
#fvArea .fvInner {
  position: sticky;
  top: 0;
  left: 0;
  right: 0;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.8s var(--mh--easing01);
}
@media (max-width: 480px) {
  #fvArea .fvInner {
    display: block;
    height: 100%;
  }
}
#fvArea .fvInner .imgBox {
  width: 100%;
}
@media (max-width: 480px) {
  #fvArea .fvInner .imgBox {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
  }
}
#fvArea .fvInner .imgBox picture {
  position: relative;
  display: block;
  overflow: hidden;
  width: 100%;
}
#fvArea .fvInner .imgBox picture::before {
  content: "";
  display: block;
  padding-top: 100lvh;
}
#fvArea .fvInner .imgBox picture source,
#fvArea .fvInner .imgBox picture img {
  margin: auto;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 0;
}
@media (max-width: 480px) {
  #fvArea .fvInner .imgBox figure {
    width: 100%;
    height: 100%;
  }
}
#fvArea .fvInner .ttlBox {
  position: absolute;
  top: 50%;
  left: 52%;
  transform: translate(-50%, -50%);
  z-index: 10;
  width: 90%;
  max-width: 620px;
}
@media (max-width: 480px) {
  #fvArea .fvInner .ttlBox {
    position: absolute;
    left: 20px;
    width: 90%;
    top: auto;
    transform: none;
    top: auto;
    bottom: 20px;
  }
}
#fvArea .fvInner .ttlBox .ttl .read {
  margin-top: 26px;
  background: rgba(255, 255, 255, 0.8);
  font-size: 2.2rem;
  color: #62C1BC;
  padding: 10px 20px;
  font-weight: 700;
  letter-spacing: 0;
  width: fit-content;
}
@media (max-width: 480px) {
  #fvArea .fvInner .ttlBox .ttl .read {
    font-size: 1.6rem;
    margin-top: 18px;
  }
}
#fvArea .fvInner .ttlBox .ttl .read span {
  background: #fff;
  font-size: 2.2rem;
  color: #62C1BC;
  padding-left: 20px;
  font-weight: 700;
  letter-spacing: 0;
}
#fvArea .fvInner .ttlBox .ttl .read span + span {
  padding-right: 20px;
  padding-left: 0;
}
@media (max-width: 480px) {
  #fvArea .fvInner .ttlBox .ttl .read span {
    font-size: 1.6rem;
    padding-right: 20px;
  }
  #fvArea .fvInner .ttlBox .ttl .read span + span {
    padding-left: 20px;
  }
}
#fvArea.is-shown {
  filter: brightness(2) saturate(0.3);
}
@media (max-width: 480px) {
  #fvArea.is-shown {
    opacity: 0;
    filter: none;
  }
}
#fvArea.is-shown .fvInner {
  opacity: 0;
}

#introArea {
  position: relative;
  transform: translateY(100vh);
  opacity: 0;
  transition: opacity var(--mh--duration01) var(--mh--easing01), transform 0s linear var(--mh--duration01);
}
#introArea.is-shown {
  transform: translateY(0);
  transition-delay: 0s, 0s;
  opacity: 1;
}
#introArea .wrapper {
  background: rgba(255, 255, 255, 0.85);
  padding-top: 175px;
}
#introArea .wrapper .introInner {
  padding: 60px 0;
}
@media (max-width: 480px) {
  #introArea .wrapper {
    background: none;
  }
}
#introArea p.ttl {
  margin-bottom: clamp(30px, 5.208vw, 50px);
  text-align: center;
}
@media (max-width: 480px) {
  #introArea p.ttl {
    max-width: 206px;
    margin: 0 auto 30px;
  }
}
#introArea .txtBox p {
  line-height: 1.5;
  color: #3E2E18;
}
@media (max-width: 480px) {
  #introArea .txtBox p {
    line-height: 1.6666666667;
  }
}
#introArea .txtBox p + p {
  margin-top: 15px;
}
#introArea .txtBox figure {
  max-width: 162px;
  margin: 5px 0 0 auto;
  mix-blend-mode: multiply;
}
#introArea .btnBox {
  margin-top: 5px;
}
#introArea .btnBox .moreBtn + .moreBtn {
  margin-top: 15px;
}

#meansArea .wrapper {
  background: rgba(255, 255, 255, 0.85);
}
#meansArea .wrapper .meansInner {
  padding: 60px 0 20px;
}
@media (max-width: 480px) {
  #meansArea .wrapper {
    background: none;
  }
}
#meansArea .sttl {
  color: #9F7668;
  margin-bottom: 25px;
}
#meansArea .descBox p.read {
  margin-bottom: 30px;
  font-size: 2.2rem;
  font-weight: 500;
  text-align: center;
}
@media (max-width: 480px) {
  #meansArea .descBox p.read {
    font-size: 1.8rem;
  }
}
#meansArea .descBox .txtBox p {
  line-height: 1.5;
}
@media (max-width: 480px) {
  #meansArea .descBox .txtBox p {
    line-height: 1.6666666667;
  }
}
#meansArea .descBox .txtBox p + p {
  margin-top: 1em;
}
#meansArea .descBox figure {
  margin: 20px 0 0 auto;
}

#picArea {
  position: relative;
}
@media (max-width: 480px) {
  #picArea {
    padding-bottom: 60px;
    padding-top: 60px;
  }
}
#picArea .picInner {
  position: relative;
  z-index: 5;
}
#picArea .picInner::before {
  content: "";
  display: block;
  padding-top: 900px;
}
@media (max-width: 480px) {
  #picArea .picInner::before {
    padding-top: 0;
  }
}
@media (max-width: 480px) {
  #picArea .picInner {
    display: flex;
    flex-direction: column;
  }
}
#picArea .picInner .pic {
  position: absolute;
}
@media (max-width: 480px) {
  #picArea .picInner .pic {
    position: relative;
  }
}
#picArea .picInner .pic.pic01 {
  width: 362px;
  height: 263px;
  top: 80px;
  left: 296px;
  order: 1;
}
@media (max-width: 480px) {
  #picArea .picInner .pic.pic01 {
    width: 310px;
    top: auto;
    left: auto;
    height: auto;
    right: 0;
    bottom: 0;
    order: 2;
    margin-left: 20px;
    margin-top: 20px;
  }
}
#picArea .picInner .pic.pic02 {
  width: 323px;
  height: 370px;
  top: 80px;
  right: 336px;
}
@media (max-width: 480px) {
  #picArea .picInner .pic.pic02 {
    width: 250px;
    top: auto;
    left: auto;
    height: auto;
    right: 0;
    bottom: 0;
    order: 3;
    margin-left: auto;
    margin-top: 40px;
  }
}
#picArea .picInner .pic.pic03 {
  width: 293px;
  height: 375px;
  top: 156px;
  left: 20px;
}
@media (max-width: 480px) {
  #picArea .picInner .pic.pic03 {
    width: 250px;
    top: auto;
    left: auto;
    height: auto;
    margin-top: -36px;
    right: 0;
    bottom: 0;
    order: 4;
  }
}
#picArea .picInner .pic.pic04 {
  width: 323px;
  height: 370px;
  top: 267px;
  right: 51px;
}
@media (max-width: 480px) {
  #picArea .picInner .pic.pic04 {
    width: 253px;
    top: auto;
    left: auto;
    height: auto;
    right: 0;
    bottom: 0;
    order: 5;
    margin-left: auto;
    margin-right: 20px;
    margin-top: -20px;
  }
}
#picArea .picInner .pic.pic05 {
  width: 280px;
  height: 370px;
  top: 379px;
  left: 378px;
}
@media (max-width: 480px) {
  #picArea .picInner .pic.pic05 {
    width: 200px;
    top: auto;
    left: auto;
    height: auto;
    right: 0;
    bottom: 0;
    order: 6;
    margin-left: auto;
    margin-right: auto;
    margin-top: 20px;
  }
}
#picArea .picInner .pic.pic06 {
  width: 405px;
  height: 237px;
  top: 631px;
  left: 65px;
}
@media (max-width: 480px) {
  #picArea .picInner .pic.pic06 {
    width: 300px;
    top: auto;
    left: auto;
    height: auto;
    right: 0;
    bottom: 0;
    order: 7;
    margin-left: 30px;
    margin-top: 20px;
  }
}
#picArea .picInner .pic.pic07 {
  width: 442px;
  height: 272px;
  top: 523px;
  right: 302px;
}
@media (max-width: 480px) {
  #picArea .picInner .pic.pic07 {
    width: 300px;
    top: auto;
    left: auto;
    height: auto;
    right: 0;
    bottom: 0;
    order: 7;
    margin-left: auto;
    margin-top: -20px;
  }
}
#picArea .picInner .logoBox {
  position: absolute;
  top: 267px;
  left: 50%;
  transform: translateX(-50%);
  background: #fff;
  border-radius: 50%;
  padding: 10px;
  width: 238px;
  aspect-ratio: 1;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
}
#picArea .picInner .logoBox figure {
  margin: 20px auto 0;
  max-width: 190px;
}
@media (max-width: 480px) {
  #picArea .picInner .logoBox {
    top: auto;
    width: 150px;
    position: relative;
    order: 1;
  }
  #picArea .picInner .logoBox figure {
    max-width: 100%;
  }
}

#bikatsuArea {
  min-height: 900px;
  position: relative;
}
@media (max-width: 480px) {
  #bikatsuArea {
    display: none;
  }
}
#bikatsuArea::before {
  content: "";
  display: block;
  height: 80px;
  width: 1.5px;
  position: absolute;
  background: #9F7668;
  bottom: 95px;
  left: 50%;
  transform: translateX(-50%);
}
#bikatsuArea .wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 900px;
}
@media (max-width: 480px) {
  #bikatsuArea .wrapper {
    min-height: 400px;
  }
}
#bikatsuArea .wrapper .bikatsuInner {
  padding: 60px 0;
}
#bikatsuArea .wrapper .bikatsuInner .sttl {
  color: #9F7668;
  text-align: center;
  margin-bottom: clamp(51px, 8.8545vw, 85px);
}
#bikatsuArea .wrapper .bikatsuInner .txtBox {
  text-align: center;
}
#bikatsuArea .wrapper .bikatsuInner .txtBox p {
  color: #9F7668;
  text-align: center;
  letter-spacing: 0;
  line-height: 1.8;
}

#recipeArea {
  background: url(../img/top/bikatsu_bg.svg) no-repeat center center/cover;
  padding: 90px 0 60px;
  position: relative;
  z-index: 3000;
}
#recipeArea .recipeInner {
  max-width: 1350px;
  margin: 0 auto;
}
#recipeArea .recipeInner p.ttl {
  font-size: 3.5rem;
  font-weight: 500;
  letter-spacing: 0.03em;
  color: #3E2E18;
  text-align: center;
  margin-bottom: clamp(30px, 5.208vw, 50px);
}
#recipeArea .recipeInner ul {
  display: flex;
  flex-wrap: wrap;
  gap: 2.22%;
  row-gap: 30px;
}
@media (max-width: 480px) {
  #recipeArea .recipeInner ul {
    display: block;
  }
}
#recipeArea .recipeInner ul li {
  width: 31.85%;
}
@media (max-width: 480px) {
  #recipeArea .recipeInner ul li {
    width: 90%;
  }
}
#recipeArea .recipeInner ul li a {
  display: flex;
  background: #fff;
  gap: 22px;
}
#recipeArea .recipeInner ul li a .imgBox {
  width: 182px;
  height: 170px;
  margin-left: -15px;
}
#recipeArea .recipeInner ul li a .imgBox figure {
  position: relative;
  display: block;
  overflow: hidden;
  transform: rotate(-6deg);
}
#recipeArea .recipeInner ul li a .imgBox figure::before {
  content: "";
  display: block;
  padding-top: 93.41%;
}
#recipeArea .recipeInner ul li a .imgBox figure img {
  margin: auto;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 0;
}
#recipeArea .recipeInner ul li a .txtBox {
  width: calc(100% - 182px);
  padding: 25px 0 10px;
  display: flex;
  flex-direction: column;
  margin-right: 5%;
}
#recipeArea .recipeInner ul li a .txtBox p.name {
  font-weight: 700;
  letter-spacing: 0;
  padding-bottom: 10px;
  border-bottom: 1px solid #3E2E18;
}
#recipeArea .recipeInner ul li a .txtBox p.desc {
  padding-top: 15px;
  font-size: 1.8rem;
  font-weight: 400;
  letter-spacing: 0.03em;
  line-height: 1.5555555556;
  width: 95%;
}
#recipeArea .recipeInner ul li a .txtBox p.link {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: auto 0 0 auto;
}
#recipeArea .recipeInner ul li a .txtBox p.link span {
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: #62C1BC;
  display: block;
}
#recipeArea .recipeInner ul li a .txtBox p.link i.icon {
  width: 6px;
  height: 11px;
  display: block;
}
#recipeArea .recipeInner ul li a .txtBox p.link i.icon img {
  vertical-align: text-top;
}
#recipeArea .recipeInner .moreBtn {
  max-width: 450px;
  margin: 30px auto 0;
}
@media (max-width: 480px) {
  #recipeArea .recipeInner .moreBtn {
    max-width: 310px;
  }
}

#whatArea {
  position: relative;
  overflow-y: clip;
  /**
   * メインコンテナの設定
   * @description スクロール可能な高い領域を作成し、その中でstickyエフェクトを実現
   */
}
@media (max-width: 480px) {
  #whatArea {
    overflow-x: clip;
  }
}
#whatArea .whatInner {
  position: relative;
  /* スクロール可能な領域を4倍にしてstickyエフェクトを作る */
}
#whatArea .whatInner::before {
  content: "";
  display: block;
  max-width: 500px;
  height: 100%;
  width: 100%;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(255, 255, 255, 0.85);
}
@media (max-width: 480px) {
  #whatArea .whatInner::before {
    display: none;
  }
}
#whatArea .whatInner .whatContent {
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
}
#whatArea .whatInner .whatContent .whatSlider {
  width: 100%;
  height: 100%;
  overflow-x: clip;
  position: relative;
  z-index: 10;
}
#whatArea .whatInner .whatContent .whatSlider .swiper {
  width: 100%;
  height: auto;
}
#whatArea .whatInner .whatContent .whatSlider .swiper .swiper-wrapper {
  position: relative;
  padding: 80px 0;
}
#whatArea .whatInner .whatContent .whatSlider .swiper .swiper-wrapper li.swiper-slide .imgBox {
  width: 100%;
  position: relative;
  overflow: hidden;
  max-width: 500px;
  margin-right: auto;
  margin-left: auto;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
}
@media (max-width: 480px) {
  #whatArea .whatInner .whatContent .whatSlider .swiper .swiper-wrapper li.swiper-slide .imgBox {
    display: flex;
    align-items: center;
    justify-content: center;
  }
}
#whatArea .whatInner .whatContent .whatSlider .swiper .swiper-wrapper li.swiper-slide .imgBox .slideContent {
  text-align: center;
  z-index: 2;
  position: relative;
}
#whatArea .whatInner .whatContent .whatSlider .swiper .swiper-wrapper li.swiper-slide .imgBox .slideContent h3 {
  font-size: 2.4rem;
  font-weight: 700;
  margin-bottom: 20px;
  color: #62C1BC;
  letter-spacing: 0.05em;
  margin-top: 20px;
}
@media (max-width: 480px) {
  #whatArea .whatInner .whatContent .whatSlider .swiper .swiper-wrapper li.swiper-slide .imgBox .slideContent h3 {
    font-size: 2rem;
    margin-bottom: 15px;
  }
}
#whatArea .whatInner .whatContent .whatSlider .swiper .swiper-wrapper li.swiper-slide .imgBox .slideContent p {
  font-size: 1.5rem;
  line-height: 1.6;
  margin-bottom: 30px;
  color: #3e2900;
  font-weight: 400;
}
#whatArea .whatInner .whatContent .whatSlider .swiper .swiper-wrapper li.swiper-slide .imgBox .slideContent p.num {
  font-family: "Zen Old Mincho", serif;
  font-size: 5rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #62C1BC;
  line-height: 1;
}
@media (max-width: 480px) {
  #whatArea .whatInner .whatContent .whatSlider .swiper .swiper-wrapper li.swiper-slide .imgBox .slideContent p.num {
    font-size: 4rem;
    margin-bottom: 15px;
  }
}
#whatArea .whatInner .whatContent .whatSlider .swiper .swiper-wrapper .swiper-pagination {
  position: absolute;
  bottom: 40px;
  z-index: 100;
}
#whatArea .whatInner .whatContent .whatSlider .swiper .swiper-wrapper .swiper-pagination span.swiper-pagination-bullet {
  width: 17px;
  height: 17px;
  background: #BBE3E1;
  opacity: 1;
}
#whatArea .whatInner .whatContent .whatSlider .swiper .swiper-wrapper .swiper-pagination span.swiper-pagination-bullet-active {
  background: #62C1BC;
}
#whatArea .whatInner .whatContent .whatSlider .swiper .swiper-buttonBox {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  max-width: 525px;
  margin-right: auto;
  margin-left: auto;
  left: 50%;
  transform: translateX(-50%);
}
@media (max-width: 480px) {
  #whatArea .whatInner .whatContent .whatSlider .swiper .swiper-buttonBox {
    width: 97%;
  }
}
#whatArea .whatInner .whatContent .whatSlider .swiper .swiper-button-next {
  background: url(../img/top/icon_arrow_blue.svg) no-repeat center center/contain;
  width: 25px;
  height: 50px;
  top: 50%;
  transform: translateY(-50%);
  right: 0;
  z-index: 100;
  transition: all 0.3s ease;
}
@media (max-width: 480px) {
  #whatArea .whatInner .whatContent .whatSlider .swiper .swiper-button-next {
    width: 20px;
    height: 36px;
  }
}
#whatArea .whatInner .whatContent .whatSlider .swiper .swiper-button-next::after {
  display: none;
}
#whatArea .whatInner .whatContent .whatSlider .swiper .swiper-button-next:hover {
  right: -10px;
}
#whatArea .whatInner .whatContent .whatSlider .swiper .swiper-button-prev {
  background: url(../img/top/icon_arrow_blue.svg) no-repeat center center/contain;
  width: 25px;
  height: 50px;
  top: 50%;
  transform: translateY(-50%) rotate(180deg);
  left: 0;
  z-index: 100;
  transition: all 0.3s ease;
}
@media (max-width: 480px) {
  #whatArea .whatInner .whatContent .whatSlider .swiper .swiper-button-prev {
    width: 20px;
    height: 36px;
  }
}
#whatArea .whatInner .whatContent .whatSlider .swiper .swiper-button-prev::after {
  display: none;
}
#whatArea .whatInner .whatContent .whatSlider .swiper .swiper-button-prev:hover {
  left: -10px;
}

#productArea {
  position: relative;
  /**
   * メインコンテナの設定
   * @description スクロール可能な高い領域を作成し、その中でstickyエフェクトを実現
   */
}
#productArea .productInner {
  position: relative;
  /* スクロール可能な領域を4倍にしてstickyエフェクトを作る */
}
#productArea .productInner .productContent {
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
}
#productArea .productInner .productContent .productSlider {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
#productArea .productInner .productContent .productSlider .swiper {
  width: 100%;
  height: auto;
}
#productArea .productInner .productContent .productSlider .swiper .swiper-wrapper {
  position: relative;
}
#productArea .productInner .productContent .productSlider .swiper .swiper-wrapper li.swiper-slide {
  display: flex;
  align-items: center;
  justify-content: center;
  height: auto;
}
#productArea .productInner .productContent .productSlider .swiper .swiper-wrapper li.swiper-slide .imgBox {
  padding: 80px 0;
  width: 100%;
  height: 100%;
  position: relative;
  overflow: hidden;
  max-width: 500px;
  margin-right: auto;
  margin-left: auto;
  overflow-x: clip;
  position: relative;
  z-index: 10;
  background: rgba(255, 255, 255, 0.85);
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
}
@media (max-width: 480px) {
  #productArea .productInner .productContent .productSlider .swiper .swiper-wrapper li.swiper-slide .imgBox {
    display: flex;
    align-items: center;
    justify-content: center;
  }
}
#productArea .productInner .productContent .productSlider .swiper .swiper-wrapper li.swiper-slide .imgBox .slideContent {
  z-index: 2;
  position: relative;
}
#productArea .productInner .productContent .productSlider .swiper .swiper-wrapper li.swiper-slide .imgBox .slideContent .descBox {
  width: 95%;
  margin: 15px auto 0;
}
#productArea .productInner .productContent .productSlider .swiper .swiper-wrapper li.swiper-slide .imgBox .slideContent p.read {
  font-family: "Zen Old Mincho", serif;
  font-size: 2rem;
  font-weight: 400;
  letter-spacing: 0.06em;
  text-align: center;
  margin-bottom: 20px;
  position: relative;
  padding-bottom: 10px;
}
#productArea .productInner .productContent .productSlider .swiper .swiper-wrapper li.swiper-slide .imgBox .slideContent p.read::before {
  content: "";
  display: block;
  width: 120px;
  height: 0.75px;
  background: #3e2900;
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}
@media (max-width: 480px) {
  #productArea .productInner .productContent .productSlider .swiper .swiper-wrapper li.swiper-slide .imgBox .slideContent p.read {
    font-size: 1.8rem;
    margin-bottom: 15px;
  }
}
#productArea .productInner .productContent .productSlider .swiper .swiper-wrapper li.swiper-slide .imgBox .slideContent .priceBox {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
@media (max-width: 480px) {
  #productArea .productInner .productContent .productSlider .swiper .swiper-wrapper li.swiper-slide .imgBox .slideContent .priceBox {
    margin-top: 10px;
  }
}
#productArea .productInner .productContent .productSlider .swiper .swiper-wrapper li.swiper-slide .imgBox .slideContent .priceBox p.gram {
  font-size: 2.2rem;
  font-weight: 400;
  letter-spacing: 0.06em;
  color: #3e2900;
}
#productArea .productInner .productContent .productSlider .swiper .swiper-wrapper li.swiper-slide .imgBox .slideContent .priceBox p.price {
  font-size: 1.8rem;
  font-weight: 400;
  letter-spacing: 0.06em;
  color: #3e2900;
}
#productArea .productInner .productContent .productSlider .swiper .swiper-wrapper li.swiper-slide .imgBox .slideContent .priceBox p.price span {
  font-size: 2.8rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: #D24545;
}
#productArea .productInner .productContent .productSlider .swiper .swiper-wrapper li.swiper-slide .imgBox .slideContent p.txt {
  font-size: 1.6rem;
  line-height: 1.6;
  letter-spacing: 0em;
  color: #3e2900;
  font-weight: 400;
  margin-top: 12px;
}
#productArea .productInner .productContent .productSlider .swiper .swiper-wrapper li.swiper-slide .imgBox .slideContent p.name {
  font-size: 2.2rem;
  font-weight: 500;
  letter-spacing: 0;
}
@media (max-width: 480px) {
  #productArea .productInner .productContent .productSlider .swiper .swiper-wrapper li.swiper-slide .imgBox .slideContent p.name {
    font-size: 2rem;
  }
}
#productArea .productInner .productContent .productSlider .swiper .swiper-wrapper li.swiper-slide .imgBox .slideContent .moreBtn {
  margin: 30px auto 0;
}
#productArea .productInner .productContent .productSlider .swiper .swiper-wrapper li.swiper-slide.koujihaku .imgBox {
  background: #F8E5E5;
}
#productArea .productInner .productContent .productSlider .swiper .swiper-wrapper li.swiper-slide.coffee .imgBox {
  background: #F0E1CD;
}
#productArea .productInner .productContent .productSlider .swiper .swiper-wrapper li.swiper-slide.matcha .imgBox {
  background: #C3D9B7;
}
#productArea .productInner .productContent .productSlider .swiper .swiper-buttonBox {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  max-width: 568px;
  margin-right: auto;
  margin-left: auto;
  left: 50%;
  transform: translateX(-50%);
}
@media (max-width: 480px) {
  #productArea .productInner .productContent .productSlider .swiper .swiper-buttonBox {
    width: 98%;
    top: 42.5%;
  }
}
#productArea .productInner .productContent .productSlider .swiper .swiper-button-next {
  background: url(../img/top/icon_arrow_product.svg) no-repeat center center/contain;
  width: 68px;
  height: 68px;
  top: 50%;
  transform: translateY(-50%);
  right: 0;
  z-index: 100;
  transition: all 0.3s ease;
}
@media (max-width: 480px) {
  #productArea .productInner .productContent .productSlider .swiper .swiper-button-next {
    width: 50px;
    height: 50px;
  }
}
#productArea .productInner .productContent .productSlider .swiper .swiper-button-next::after {
  display: none;
}
#productArea .productInner .productContent .productSlider .swiper .swiper-button-next:hover {
  right: -10px;
}
#productArea .productInner .productContent .productSlider .swiper .swiper-button-prev {
  background: url(../img/top/icon_arrow_product.svg) no-repeat center center/contain;
  width: 68px;
  height: 68px;
  top: 50%;
  transform: translateY(-50%) rotate(180deg);
  left: 0;
  z-index: 100;
  transition: all 0.3s ease;
}
@media (max-width: 480px) {
  #productArea .productInner .productContent .productSlider .swiper .swiper-button-prev {
    width: 50px;
    height: 50px;
  }
}
#productArea .productInner .productContent .productSlider .swiper .swiper-button-prev::after {
  display: none;
}
#productArea .productInner .productContent .productSlider .swiper .swiper-button-prev:hover {
  left: -10px;
}

#promiseArea {
  position: relative;
  /**
   * メインコンテナの設定
   * @description スクロール可能な高い領域を作成し、その中でstickyエフェクトを実現
   */
}
#promiseArea .promiseInner {
  position: relative;
  /* スクロール可能な領域を4倍にしてstickyエフェクトを作る */
}
#promiseArea .promiseInner::before {
  content: "";
  display: block;
  max-width: 500px;
  height: 100%;
  width: 100%;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(255, 255, 255, 0.85);
}
#promiseArea .promiseInner .promiseContent {
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
}
#promiseArea .promiseInner .promiseContent .promiseSlider {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
#promiseArea .promiseInner .promiseContent .promiseSlider .swiper {
  width: 100%;
  height: auto;
}
#promiseArea .promiseInner .promiseContent .promiseSlider .swiper .swiper-wrapper {
  position: relative;
  padding: 80px 0 100px;
}
#promiseArea .promiseInner .promiseContent .promiseSlider .swiper .swiper-wrapper li.swiper-slide .imgBox {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
}
#promiseArea .promiseInner .promiseContent .promiseSlider .swiper .swiper-wrapper li.swiper-slide .imgBox p.ttl {
  font-size: 3rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-align: center;
  margin-bottom: 20px;
  color: #9F7668;
}
@media (max-width: 480px) {
  #promiseArea .promiseInner .promiseContent .promiseSlider .swiper .swiper-wrapper li.swiper-slide .imgBox p.ttl {
    font-size: 2.4rem;
  }
}
#promiseArea .promiseInner .promiseContent .promiseSlider .swiper .swiper-wrapper li.swiper-slide .imgBox .slideContent {
  padding: 30px 0;
  z-index: 2;
  position: relative;
  background: #F8EDDD;
  border-radius: 30px;
}
#promiseArea .promiseInner .promiseContent .promiseSlider .swiper .swiper-wrapper li.swiper-slide .imgBox .slideContent p.read {
  font-family: "Zen Old Mincho", serif;
  font-size: 2.2rem;
  font-weight: 400;
  letter-spacing: 0.06em;
  text-align: center;
  margin-bottom: 20px;
  position: relative;
  padding-bottom: 10px;
  color: #9F7668;
}
@media (max-width: 480px) {
  #promiseArea .promiseInner .promiseContent .promiseSlider .swiper .swiper-wrapper li.swiper-slide .imgBox .slideContent p.read {
    font-size: 2rem;
  }
}
#promiseArea .promiseInner .promiseContent .promiseSlider .swiper .swiper-wrapper li.swiper-slide .imgBox .slideContent figure {
  max-width: 380px;
  margin: 0 auto;
}
#promiseArea .promiseInner .promiseContent .promiseSlider .swiper .swiper-wrapper li.swiper-slide .imgBox .slideContent .txtBox {
  width: 90%;
  margin: 20px auto 0;
}
#promiseArea .promiseInner .promiseContent .promiseSlider .swiper .swiper-wrapper li.swiper-slide .imgBox .slideContent .txtBox p.txt {
  font-size: 1.55rem;
  line-height: 1.5555555556;
  letter-spacing: 0em;
  color: #3e2900;
  font-weight: 400;
  margin-top: 15px;
}
@media (max-width: 480px) {
  #promiseArea .promiseInner .promiseContent .promiseSlider .swiper .swiper-wrapper li.swiper-slide .imgBox .slideContent .txtBox p.txt {
    font-size: 1.4rem;
  }
}
#promiseArea .promiseInner .promiseContent .promiseSlider .swiper .swiper-wrapper li.swiper-slide .imgBox .slideContent .txtBox p.txt + p {
  margin-top: 1em;
}
#promiseArea .promiseInner .promiseContent .promiseSlider .swiper .swiper-wrapper .swiper-pagination {
  position: absolute;
  bottom: 40px;
  z-index: 100;
}
#promiseArea .promiseInner .promiseContent .promiseSlider .swiper .swiper-wrapper .swiper-pagination span.swiper-pagination-bullet {
  width: 17px;
  height: 17px;
  background: #E6D6BF;
  opacity: 1;
}
#promiseArea .promiseInner .promiseContent .promiseSlider .swiper .swiper-wrapper .swiper-pagination span.swiper-pagination-bullet-active {
  background: #C9AF8B;
}
#promiseArea .promiseInner .promiseContent .promiseSlider .swiper .swiper-buttonBox {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  max-width: 568px;
  margin-right: auto;
  margin-left: auto;
  left: 50%;
  transform: translateX(-50%);
}
@media (max-width: 480px) {
  #promiseArea .promiseInner .promiseContent .promiseSlider .swiper .swiper-buttonBox {
    width: 98%;
  }
}
#promiseArea .promiseInner .promiseContent .promiseSlider .swiper .swiper-button-next {
  background: url(../img/top/icon_arrow_product.svg) no-repeat center center/contain;
  width: 68px;
  height: 68px;
  top: 50%;
  transform: translateY(-50%);
  right: 0;
  z-index: 100;
  transition: all 0.3s ease;
}
@media (max-width: 480px) {
  #promiseArea .promiseInner .promiseContent .promiseSlider .swiper .swiper-button-next {
    width: 50px;
    height: 50px;
  }
}
#promiseArea .promiseInner .promiseContent .promiseSlider .swiper .swiper-button-next::after {
  display: none;
}
#promiseArea .promiseInner .promiseContent .promiseSlider .swiper .swiper-button-next:hover {
  right: -10px;
}
#promiseArea .promiseInner .promiseContent .promiseSlider .swiper .swiper-button-prev {
  background: url(../img/top/icon_arrow_product.svg) no-repeat center center/contain;
  width: 68px;
  height: 68px;
  top: 50%;
  transform: translateY(-50%) rotate(180deg);
  left: 0;
  z-index: 100;
  transition: all 0.3s ease;
}
@media (max-width: 480px) {
  #promiseArea .promiseInner .promiseContent .promiseSlider .swiper .swiper-button-prev {
    width: 50px;
    height: 50px;
  }
}
#promiseArea .promiseInner .promiseContent .promiseSlider .swiper .swiper-button-prev::after {
  display: none;
}
#promiseArea .promiseInner .promiseContent .promiseSlider .swiper .swiper-button-prev:hover {
  left: -10px;
}

/**
 * スクロール連動プログレスインジケーター
 * @description スクロール進行度とアクティブスライドを視覚的に表示
 */
.scroll-progress-indicator {
  position: absolute;
  bottom: 60px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1000;
  display: flex;
  align-items: center;
  transition: all 0.3s ease;
  /* #whatAreaが表示されている時のみ表示 */
}
.scroll-progress-indicator .progress-bar {
  display: none;
  width: 4px;
  height: 100px;
  background: rgba(255, 255, 255, 0.3);
  border-radius: 2px;
  position: relative;
  overflow: hidden;
}
.scroll-progress-indicator .progress-bar .progress-fill {
  width: 100%;
  height: 0%;
  background: linear-gradient(to bottom, #62C1BC, #3E2E18);
  border-radius: 2px;
  transition: height 0.3s ease;
  position: absolute;
  bottom: 0;
  left: 0;
}
.scroll-progress-indicator .slide-indicators {
  gap: 17px;
}
.scroll-progress-indicator .slide-indicators .indicator {
  width: 17px;
  height: 17px;
  border-radius: 50%;
  background: #BBE3E1;
  cursor: pointer;
  transition: all 0.3s ease;
  position: relative;
}
.scroll-progress-indicator .slide-indicators .indicator:hover {
  background: #62C1BC;
}
.scroll-progress-indicator .slide-indicators .indicator.active {
  background: #62C1BC;
}

/**
 * 背景画像切り替えシステム
 * @description コンテンツエリアに応じて背景画像をフワッと切り替える
 */
.l-main-img__bg {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  z-index: 1;
  pointer-events: none;
  /**
   * 各背景エリアの共通スタイル
   */
  /**
   * 各背景エリア個別の調整
   */
}
.l-main-img__bg > div {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.8s ease-in-out, visibility 0.8s ease-in-out;
  /**
   * アクティブ状態
   * @description 該当エリアが表示されている時のスタイル
   */
}
.l-main-img__bg > div.is-active {
  opacity: 1;
  visibility: visible;
}
.l-main-img__bg > div figure {
  width: 100%;
  height: 100%;
  margin: 0;
  position: relative;
  overflow: hidden;
}
.l-main-img__bg > div figure::before {
  content: "";
  display: block;
  padding-top: 100lvh;
}
.l-main-img__bg > div figure img {
  margin: auto;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 0;
}
.l-main-img__bg .introAreaBg {
  z-index: 10;
}
.l-main-img__bg .bikatsuAreaBg {
  z-index: 9;
}
.l-main-img__bg .picAreaBg {
  z-index: 8;
}
.l-main-img__bg .whatAreaBg {
  z-index: 7;
}

/**
 * メインコンテンツの調整
 * @description 背景画像の上に表示されるよう z-index を調整
 */
main {
  position: relative;
  z-index: 100;
}
main > div {
  position: relative;
  z-index: 101;
}

/**
 * headerLogoのスクロール連動表示制御
 * @description ページトップでは表示、下スクロール時は非表示、上スクロール時に再表示
 */
.headerLogo {
  z-index: 9999;
  opacity: 1;
  transform: translate(-50%, 0);
  transition: opacity var(--mh--duration02) var(--mh--easing01), transform var(--mh--duration02) var(--mh--easing02);
  /**
   * スクロール時の非表示状態
   * @description 下スクロール時に適用される状態
   */
  /**
   * スクロール時の表示状態
   * @description 上スクロール時やページトップ時に適用される状態
   */
  /**
   * レスポンシブ対応
   * @description スマートフォンでのトランジション調整
   */
  /**
   * リンク要素の調整
   * @description アニメーション中の表示品質向上
   */
}
.headerLogo.is-hidden {
  opacity: 0;
  transform: translate(-50%, -100%);
  pointer-events: none;
}
.headerLogo.is-visible {
  opacity: 1;
  transform: translate(-50%, 0);
  pointer-events: auto;
}
@media (max-width: 480px) {
  .headerLogo {
    transition-duration: var(--mh--duration01);
  }
  .headerLogo.is-hidden {
    transform: translate(-50%, -80%);
  }
}
.headerLogo a {
  display: block;
  transition: transform var(--mh--duration01) var(--mh--easing01);
  position: relative;
  z-index: 100;
}
.headerLogo a img {
  display: block;
  width: 100%;
  height: auto;
  transition: opacity var(--mh--duration01) var(--mh--easing01);
}

/**
 * ヘッダー全体の調整
 * @description headerLogoのアニメーションに合わせた調整
 */
.header {
  /**
   * スクロール状態管理用のクラス
   * @description JavaScriptで制御される状態クラス
   */
  /**
   * パフォーマンス最適化
   * @description GPU加速とスムーズなアニメーション
   */
}
.header.scroll-down .headerLogo {
  opacity: 0;
  transform: translate(-50%, -100%);
  pointer-events: none;
}
.header.scroll-up .headerLogo {
  opacity: 0;
  transform: translate(-50%, -100%);
  pointer-events: none;
}
.header.at-top .headerLogo {
  opacity: 1;
  transform: translate(-50%, 0);
  pointer-events: auto;
}
.header .headerLogo {
  will-change: opacity, transform;
  backface-visibility: hidden;
  position: relative;
}
.header .headerLogo::before {
  content: "";
  display: block;
  background: #fff;
  width: 418px;
  aspect-ratio: 1;
  position: absolute;
  bottom: -38px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1;
  border-radius: 50%;
}
@media (max-width: 480px) {
  .header .headerLogo::before {
    width: 305px;
    bottom: -20px;
  }
}

.recipeRecommendBox {
  background: url(../img/top/bikatsu_bg.svg) no-repeat center center/cover;
  padding: 90px 0 60px;
  position: relative;
  z-index: 3000;
  max-width: 100%;
  width: 100%;
  margin-top: 0;
}
.recipeRecommendBox .list {
  width: 90%;
  max-width: 1350px;
  margin: 0 auto 0;
}