/* ==========================================================
   feature-common.css
   Common parts shared across seasonal feature LPs.
   - Load AFTER fs_theme.css / fs_original.css (site-wide base).
   - Season-specific look (colors, MV images, etc.) is overridden
     in feature-[season].css, not here.
   ========================================================== */

#fs_CustomPage {
/*  --feature-font-serif:
    "Yu Mincho",
    "Hiragino Mincho ProN",
    "Noto Serif JP",
    serif;*/
}

#fs_CustomPage .slide-1-scroll .slide-1-frame {
    padding-top: 16px;
}

/* ==========================================================
   FEATURE MV
   ========================================================== */

.feature-mv {
  position: relative;

  width: 100vw;
  min-height: 92vh;

  margin-left: calc(50% - 50vw);

  padding: 28px 5vw 80px;

  overflow: hidden;
  box-sizing: border-box;

  font-family: var(--feature-font-serif);
}


/* コピー位置 */
.feature-mv__content {
  width: min(620px, 40vw);

  margin: 17vh 0 0 7vw;
}


/* 英字 */
.feature-mv__sub {
  margin: 0;

  font-family: Arial, sans-serif;
  font-size: 12px;
  line-height: 1.6;

  letter-spacing: .24em;
}


/* H1 */
.feature-mv__title {
  margin: 22px 0;

  font-size: clamp(46px, 4vw, 68px);
  font-weight: 400;
  line-height: 1.35;

  letter-spacing: .08em;
}


/* リード */
.feature-mv__lead {
  margin: 0;

  font-size: 14px;
  line-height: 2.1;
}

.feature-mv__lead p {
  margin: 0;
}

.feature-mv__lead p + p {
  margin-top: 18px;
}


/* ==========================================================
   FEATURE MV / SP
   ========================================================== */

@media (max-width: 767px) {

  .feature-mv {
    min-height: 780px;

    padding: 22px 22px 250px;
  }

  .feature-mv__content {
    width: 100%;

    margin: 70px 0 0;
  }

  .feature-mv__sub {
    font-size: 10px;
  }

  .feature-mv__title {
    font-size: 38px;
    line-height: 1.45;
  }

  .feature-mv__lead {
    font-size: 13px;
    line-height: 2;
  }

}

/* ==========================================================
   FEATURE SECTION
   ========================================================== */

.feature-section {
  width: 100%;
  padding: 90px 20px 110px;
  box-sizing: border-box;
}


/* 中身 */
.feature-section__heading,
.feature-section > [data-feature-filter] {
  width: 100%;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}


/* 見出し */
.feature-section__heading {
  margin-bottom: 48px;
  text-align: center;
}


.feature-section__en {
  margin: 0 0 10px;

  font-family: Arial, sans-serif;
  font-size: 11px;
  line-height: 1.4;
  letter-spacing: .22em;
}

/* MORE / 小カテゴリ共通：英字ラベル上の細線 */
.feature-section--more .feature-section__en,
.feature-section__group .feature-section__en {
  position: relative;
  padding-top: 32px;
}

.feature-section--more .feature-section__en::before,
.feature-section__group .feature-section__en::before {
  content: "";

  position: absolute;
  top: 0;
  left: 50%;

  width: 48px;
  height: 1px;

  background: currentColor;
  transform: translateX(-50%);
}

.feature-section__title {
  margin: 0;

  font-family: var(--feature-font-serif);

  font-size: clamp(28px, 3vw, 40px);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: .06em;
}

.feature-section__subheading {
  margin: 42px 0 24px;

  font-family: var(--feature-font-serif);

  font-size: 22px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: .08em;
  text-align: center;
}

/* 英字ラベル直下のH3は余分な上マージンを持たせない */
.feature-section__en + .feature-section__subheading {
  margin-top: 0;
}

.feature-section__sublead {
  margin: 12px 0 0;

  font-size: 14px;
  line-height: 1.9;
  letter-spacing: .04em;

  color: #555;
}

.feature-section__group.feature-section__group--kitten {
    padding-top: 0;
}

.feature-section__group {
  width: 100vw;
  margin-left: calc(50% - 50vw);

  padding: 72px 20px 80px;

  box-sizing: border-box;
}

.feature-section__group-inner {
  width: 100%;
  max-width: 1200px;

  margin: 0 auto;
  text-align: center;
}

/* 商品エリアは左揃えに戻す */
.feature-section__group-inner > [data-feature-filter] {
  text-align: left;
}

/* ==========================================================
   FEATURE PRODUCTS
   CSV商品表示 共通
   ========================================================== */

.feature-product-list {
  position: relative;
  width: 100%;
  margin-top: 32px;

  --product-gap: 24px;
}

#fs_CustomPage .feature-section--seasonal .feature-product-card__link,
#fs_CustomPage .feature-section__group .feature-product-card__link {
  padding: 24px 28px 28px;
  background: rgba(255, 255, 255, 1);
  border-radius: 14px;
  box-shadow: 0 5px 10px rgba(56, 42, 46, 0.1);
  box-sizing: border-box;
}


/* シャドウが切れないように余白を確保 */
#fs_CustomPage .feature-section--seasonal .feature-product-list__viewport,
#fs_CustomPage .feature-section__group .feature-product-list__viewport {
  width: 100%;
  padding: 16px 16px 32px;
  box-sizing: border-box;
  scroll-padding-inline: 16px;
}


/* ------------------------------------------
   viewport
------------------------------------------ */

.feature-product-list__viewport {
  width: 100%;
  padding: 16px 0 32px;
  box-sizing: border-box;
}


/* スライドが必要な場合 */
.feature-product-list.is-scrollable .feature-product-list__viewport {
  overflow-x: auto;
  overflow-y: hidden;

  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;

  -webkit-overflow-scrolling: touch;

  scrollbar-width: none;
}

.feature-product-list__viewport::-webkit-scrollbar {
  display: none;
}


/* ------------------------------------------
   track
------------------------------------------ */

.feature-product-list__track {
  display: flex;
  gap: var(--product-gap);
  align-items: stretch;
}


/* ------------------------------------------
   商品カード
------------------------------------------ */

.feature-product-card {
  flex: 0 0 calc((100% - (var(--product-gap) * 2)) / 3);
  min-width: 0;

  scroll-snap-align: start;
}


.feature-product-card__link {
  display: block;
  height: 100%;

  color: inherit;
  text-decoration: none;
}


/* ------------------------------------------
   商品画像
------------------------------------------ */

.feature-product-card__image {
  position: relative;
  overflow: hidden;

  width: 100%;
  aspect-ratio: 1 / 1;
	
  border-radius: 10px;
  background: #f7f4f1;
}


.feature-product-card__image img {
  display: block;

  width: 100%;
  height: 100%;

  object-fit: cover;

  transition:
    transform .45s ease,
    opacity .3s ease;
}


@media (hover: hover) {

  .feature-product-card__link:hover
  .feature-product-card__image img {
    transform: scale(1.025);
  }

}


/* ------------------------------------------
   商品情報
------------------------------------------ */

.feature-product-card__body {
  padding-top: 14px;
}

.feature-product-card__catch {
  margin: 0 0 6px;

  font-size: 13px;
  font-weight: 400;
  line-height: 1.6;

  letter-spacing: .04em;
  color: #9a6f79;
}

.feature-product-card__name {
  margin: 0;

  font-size: 15px;
  font-weight: 500;
  line-height: 1.7;

  letter-spacing: .03em;
}

.feature-product-card__description {
  margin: 8px 0 0;

  font-size: 13px;
  font-weight: 400;
  line-height: 1.8;

  letter-spacing: .03em;
  color: #666;
}

.feature-product-card__price {
  margin: 10px 0 0;

  font-size: 14px;
  line-height: 1.5;

  letter-spacing: .03em;
}

/* =========================================================
   PRODUCT CAROUSEL NAV
   PC：4商品以上のみ表示
   SP：3商品以上で表示
========================================================= */

/* 基本は非表示 */
.feature-product-list__nav {
  display: none;
}


/* -------------------------
   PC
------------------------- */
@media screen and (min-width: 768px) {

  /* 4商品以上のみ矢印表示 */
  .feature-product-list[data-count]:not([data-count="1"]):not([data-count="2"]):not([data-count="3"])
  .feature-product-list__nav {
    display: block;

    position: absolute;
    top: 50%;

    width: 44px;
    height: 44px;

    padding: 0;
    margin: 0;

    border: 1px solid rgba(86, 67, 72, .18);
    border-radius: 50%;

    background: rgba(255, 255, 255, .9);

    transform: translateY(-50%);

    cursor: pointer;
    z-index: 10;

    transition:
      background .2s ease,
      border-color .2s ease,
      transform .2s ease,
      opacity .2s ease;
  }


  /* 左 */
  .feature-product-list__nav--prev {
    left: -22px;
  }


  /* 右 */
  .feature-product-list__nav--next {
    right: -22px;
  }


  /* 矢印本体 */
  .feature-product-list__nav::before {
    content: "";

    position: absolute;
    top: 50%;
    left: 50%;

    width: 10px;
    height: 10px;

    border-top: 1px solid #333;
    border-right: 1px solid #333;
  }


  .feature-product-list__nav--prev::before {
    transform: translate(-35%, -50%) rotate(-135deg);
  }


  .feature-product-list__nav--next::before {
    transform: translate(-65%, -50%) rotate(45deg);
  }


  /* hover */
  @media (hover: hover) {

    .feature-product-list__nav:not(:disabled):hover {
      background: #fff;
      border-color: rgba(86, 67, 72, .38);

      transform:
        translateY(-50%)
        scale(1.05);
    }

  }


  /* disabled */
  .feature-product-list__nav:disabled {
    opacity: .2;
    cursor: default;
  }

  #fs_CustomPage .feature-section--seasonal
  .feature-product-list[data-count]:not([data-count="1"]):not([data-count="2"]):not([data-count="3"])
  .feature-product-list__viewport,

  #fs_CustomPage .feature-section__group
  .feature-product-list[data-count]:not([data-count="1"]):not([data-count="2"]):not([data-count="3"])
  .feature-product-list__viewport {
    width: 100%;
    padding: 16px 16px 32px;
    box-sizing: border-box;
    scroll-padding-inline: 16px;
  }
	
}


/* ==========================================================
   PRODUCT LAYOUT / PC
   ========================================================== */

@media (min-width: 768px) {

  /* ------------------------------------------
     1商品
     横組み：画像左 / テキスト右
     ------------------------------------------ */

  .feature-product-list[data-count="1"]
  .feature-product-list__track {
    display: block;
  }

  .feature-product-list[data-count="1"]
  .feature-product-card {
    width: 100%;
    max-width: none;
  }

  .feature-product-list[data-count="1"]
  .feature-product-card__link {
    display: grid;

    grid-template-columns:
      minmax(0, 1fr)
      minmax(0, 1fr);

    align-items: center;

    gap: 48px;
  }

  .feature-product-list[data-count="1"]
  .feature-product-card__body {
    padding-top: 0;
  }


  /* ------------------------------------------
     2商品
     縦組み × 2列
     ------------------------------------------ */

  .feature-product-list[data-count="2"]
  .feature-product-card {
    flex:
      0 0
      calc(
        (100% - var(--product-gap))
        / 2
      );
  }


  /* ------------------------------------------
     3商品
     1商品目：横組み
     2・3商品目：縦組み2列
     ------------------------------------------ */

  .feature-product-list[data-count="3"]
  .feature-product-list__track {
    flex-wrap: wrap;
  }

  .feature-product-list[data-count="3"]
  .feature-product-card:first-child {
    flex: 0 0 100%;
  }

  .feature-product-list[data-count="3"]
  .feature-product-card:first-child
  .feature-product-card__link {
    display: grid;

    grid-template-columns:
      minmax(0, 1fr)
      minmax(0, 1fr);

    align-items: center;

    gap: 48px;
  }

  .feature-product-list[data-count="3"]
  .feature-product-card:first-child
  .feature-product-card__body {
    padding-top: 0;
  }

  .feature-product-list[data-count="3"]
  .feature-product-card:not(:first-child) {
    flex:
      0 0
      calc(
        (100% - var(--product-gap))
        / 2
      );
  }


  /* ------------------------------------------
     4商品以上
     3枚表示カルーセル
     ------------------------------------------ */

  .feature-product-list.is-pc-carousel
  .feature-product-card {
    flex:
      0 0
      calc(
        (100% - (var(--product-gap) * 2))
        / 3
      );
  }

}

/* ==========================================================
   SP
   ========================================================== */

@media (max-width: 767px) {


  .feature-section {
    padding: 64px 16px 80px;
  }

  .feature-section__heading {
    margin-bottom: 32px;
  }

  .feature-section__en {
    font-size: 10px;
  }

  .feature-section--more .feature-section__en,
  .feature-section__group .feature-section__en {
    padding-top: 24px;
  }

  .feature-section--more .feature-section__en::before,
  .feature-section__group .feature-section__en::before {
    width: 40px;
  }

  .feature-section__title {
    font-size: 26px;
  }

  .feature-product-list {
    margin-top: 24px;

    --product-gap: 12px;
  }

  .feature-section__subheading {
    margin: 64px 0 20px;
    font-size: 22px;
    line-height: 1.6;
  }

  .feature-section__group {
    padding: 52px 16px 60px;
  }

  #fs_CustomPage .feature-section--seasonal
  .feature-product-list[data-count]:not([data-count="1"]):not([data-count="2"])
  .feature-product-list__viewport,

  #fs_CustomPage .feature-section__group
  .feature-product-list[data-count]:not([data-count="1"]):not([data-count="2"])
  .feature-product-list__viewport {
    width: 100%;
    padding: 16px 16px 32px;
    box-sizing: border-box;
    scroll-padding-inline: 16px;
  }

	
  /* ------------------------------------------
     1～2商品
     普通に縦積み
     ------------------------------------------ */

  .feature-product-list[data-count="1"]
  .feature-product-list__track,
  .feature-product-list[data-count="2"]
  .feature-product-list__track {
    flex-direction: column;

    gap: 24px;
  }

  .feature-product-list[data-count="1"]
  .feature-product-card,
  .feature-product-list[data-count="2"]
  .feature-product-card {
    flex: 0 0 auto;

    width: 100%;
  }

  /* PCの横組みを解除 */
  .feature-product-list[data-count="1"]
  .feature-product-card__link {
    display: block;
  }

  .feature-product-list[data-count="1"]
  .feature-product-card__body {
    padding-top: 14px;
  }


  /* ------------------------------------------
     SP：3商品以上
     1枚表示カルーセル
     ------------------------------------------ */

  .feature-product-list[data-count]:not([data-count="1"]):not([data-count="2"])
  .feature-product-list__viewport {
    width: 100%;

    overflow-x: auto;
    overflow-y: hidden;

    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;

    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .feature-product-list[data-count]:not([data-count="1"]):not([data-count="2"])
  .feature-product-list__viewport::-webkit-scrollbar {
    display: none;
  }

  .feature-product-list[data-count]:not([data-count="1"]):not([data-count="2"])
  .feature-product-list__track {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 16px;
  }

  .feature-product-list[data-count]:not([data-count="1"]):not([data-count="2"])
  .feature-product-card {
    flex: 0 0 100%;
    width: 100%;
    min-width: 100%;

    scroll-snap-align: start;
    scroll-snap-stop: always;
  }


  /* ------------------------------------------
     SP CAROUSEL NAV
     3商品以上：左右矢印
     ------------------------------------------ */

  /* 1～2商品は矢印なし */
  .feature-product-list[data-count="1"]
  .feature-product-list__nav,
  .feature-product-list[data-count="2"]
  .feature-product-list__nav {
    display: none;
  }

  /* 3商品以上は矢印表示 */
  .feature-product-list[data-count]:not([data-count="1"]):not([data-count="2"])
  .feature-product-list__nav {
    display: block;

    position: absolute;
    top: 50%;

    /* 見た目は矢印だけ、タップ範囲は44px確保 */
    width: 44px;
    height: 44px;

    padding: 0;
    margin: 0;

    border: none;
    border-radius: 0;
    background: transparent;

    transform: translateY(-50%);

    font-size: 0;
    line-height: 0;
    color: transparent;

    cursor: pointer;
    z-index: 10;
  }

  /* タップ領域は画面内に固定 */
  .feature-product-list__nav--prev {
    left: 0;
  }

  .feature-product-list__nav--next {
    right: 0;
  }

  /* 表示する矢印だけ微調整 */
  .feature-product-list__nav::before {
    content: "";

    position: absolute;
    top: 50%;
    left: 50%;

    width: 12px;
    height: 12px;

    border-top: 2px solid #333;
    border-right: 2px solid #333;

    opacity: .7;
  }

  .feature-product-list__nav--prev::before {
    left: 42%;
    transform: translate(-50%, -50%) rotate(-135deg);
  }

  .feature-product-list__nav--next::before {
    left: 58%;
    transform: translate(-50%, -50%) rotate(45deg);
  }

  #fs_CustomPage .slide-1-scroll .slide-1-frame {
    padding: 16px 16px 0;
  }
 #fs_CustomPage .top-ranking .slide-1-direct {
    display: none;
    }

}
