@charset "UTF-8";
/* =====================================================
   FPM Milano / BANK ON THE ROAD Spinner 55S 表参道店限定
   案件slug: feature-2026-0808_BANKOTR
   計測ID: #FPM260808BANKOTR_lp
   単位・命名などの規約は coding-guidelines.md を参照
   ===================================================== */

/* ▼ -----------セルフホストフォント---------- ▼ */
@font-face {
  font-family: "Sofia Sans Extra Condensed";
  src:
    url("../fonts/SofiaSansExtraCondensed-VariableFont_wght.ttf")
      format("truetype-variations"),
    url("../fonts/SofiaSansExtraCondensed-VariableFont_wght.ttf")
      format("truetype");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
/* ▲ -----------セルフホストフォント---------- ▲ */

/* ▼ -----------可変設定---------- ▼
   SP特化型部分があるときのみ使用（不要なら削除）。
   変数値はデザインに合わせて変更する。
   .lp_variable は #FPM260808BANKOTR_lp と同じ要素に付与する。 */
.lp_variable {
  /*デザインの値*/
  --pc-width: 1400; /*PCデザイン幅*/
  --sp-width: 750; /*SPデザイン幅*/
  --pc-artboard-width: 443; /*PC時の中央コンテンツ列の幅（SPコンテンツを流す列。SPと等倍）*/
  --sp-artboard-width: 700; /*SP時の中央コンテンツ列の幅*/
  /*可変率の計算式*/
  --formula: calc(
    var(--variable) * var(--ratio)
  ); /*SP,PC共通箇所の可変割合の計算式*/
  --formula_pc: calc(var(--variable) * 1); /*PCデザインの可変割合の計算式*/
}

/* PC画面幅 1400px以上 固定 */
@media (min-width: 1401px) {
  .lp_variable {
    --ratio: calc(
      var(--pc-artboard-width) / var(--sp-artboard-width)
    ); /* PCとSPのデザイン幅の比率 */
    --variable: 1px; /* 固定値（可変しない） */
  }
}

/* PC画面幅 768～1400px 可変 */
@media (min-width: 768px) and (max-width: 1400px) {
  .lp_variable {
    --ratio: calc(
      var(--pc-artboard-width) / var(--sp-artboard-width)
    ); /* PCとSPのデザイン幅の比率 */
    --variable: calc(100vw / var(--pc-width)); /* 画面幅に基づく可変値 */
  }
}

/* SP画面幅 767px以下 可変 */
@media (max-width: 767px) {
  .lp_variable {
    --ratio: 1; /* 比率は1（変わらない） */
    --variable: calc(100vw / var(--sp-width)); /* 画面幅に基づく可変値 */
  }
}
/* ▲ -----------可変設定---------- ▲ */

/* ▼ -----------カスタムプロパティ---------- ▼
   案件固有の変数は #FPM260808BANKOTR_lp に定義する */
#FPM260808BANKOTR_lp {
  --color-text: #000;
  --color-bg: #fff;
  --color-badge: #737680;
  --color-section-green: #929f77;
  --color-section-gray: #b3b3b3;
  --font-base:
    "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic Medium", YuGothic,
    Meiryo, sans-serif;
  --font-heading: "Sofia Sans Extra Condensed", var(--font-base);
  --ease-base: cubic-bezier(0.25, 0.1, 0.25, 1);
  --duration-base: 0.8s;
}
/* ▲ -----------カスタムプロパティ---------- ▲ */

/* ▼ -----------LPスコープ リセット（3ブランド共通部分）---------- ▼ */
#FPM260808BANKOTR_lp * {
  box-sizing: border-box;
  font: inherit; /* font-family / size / weight / style / line-height を継承（フォーム部品含む） */
  letter-spacing: inherit; /* font ショートハンドに含まれないため明示（基準を全要素に継承） */
  font-feature-settings: "palt";
}

#FPM260808BANKOTR_lp img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  user-select: none;
  transition: unset;
}

#FPM260808BANKOTR_lp picture {
  display: block;
}

#FPM260808BANKOTR_lp button {
  padding: 0;
  cursor: pointer;
  appearance: none;
  color: inherit;
  background-color: unset;
  border: unset;
}

/* 表示制御ユーティリティ */
@media (min-width: 768px) {
  #FPM260808BANKOTR_lp .is-hidden--desktop {
    display: none !important;
  }
}

@media (max-width: 767px) {
  #FPM260808BANKOTR_lp .is-hidden--mobile {
    display: none !important;
  }
}
/* ▲ -----------LPスコープ リセット---------- ▲ */

/* ▼ -----------ベーススタイル---------- ▼ */
#FPM260808BANKOTR_lp {
  color: var(--color-text);
  background-color: var(--color-bg);
  font-family: var(--font-base);
  line-height: 1.5; /* line-height は単位なし */
  letter-spacing: 0.05em; /* letter-spacing は em */
}

#FPM260808BANKOTR_lp a {
  color: inherit;
  text-decoration: underline;
}
/* ▲ -----------ベーススタイル---------- ▲ */

/* ▼ -----------出現アニメーション（.js-inview 用）---------- ▼ */
#FPM260808BANKOTR_lp .js-inview {
  opacity: 0;
  translate: 0 calc(30 * var(--formula, 1px));
  transition:
    opacity var(--duration-base) var(--ease-base),
    translate var(--duration-base) var(--ease-base);
}

#FPM260808BANKOTR_lp .js-inview.is-active {
  opacity: 1;
  translate: 0 0;
}

#FPM260808BANKOTR_lp .js-fade-in {
  opacity: 0;
  transition: opacity 680ms cubic-bezier(0.285, 0.24, 0.29, 0.915);
}

#FPM260808BANKOTR_lp .js-fade-in.is-active {
  opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
  #FPM260808BANKOTR_lp .js-inview {
    opacity: 1;
    translate: 0 0;
    transition: none;
  }
}
/* ▲ -----------出現アニメーション---------- ▲ */

/* ▼ -----------レイアウト（2カラム）既定---------- ▼
   左カラム(lp-mv)＝ヒーロー画像（PC: sticky固定 / SP: 通常フロー先頭）
   右カラム(lp-layout__primary)＝SPコンテンツをそのまま流用（PC/SP共通） */
/* 中央コンテンツ列の幅（SP: sp-artboard-width / PC: pc-artboard-width） */
#FPM260808BANKOTR_lp .lp-inner {
  width: calc(var(--sp-artboard-width) * var(--formula));
  margin-inline: auto;
}
@media (min-width: 768px) {
  #FPM260808BANKOTR_lp .lp-inner {
    width: calc(var(--pc-artboard-width) * var(--formula_pc));
  }
}

/* グリッド本体（PCのみ grid 化。SPは通常フロー＝上から順に縦積み） */
@media (min-width: 768px) {
  #FPM260808BANKOTR_lp .lp-layout {
    display: flex;
    align-items: flex-start;
  }
}

@media (min-width: 768px) {
  #FPM260808BANKOTR_lp .lp-layout__inner {
  }
}

#FPM260808BANKOTR_lp .lp-layout__primary {
  overflow-x: clip;
}
@media (min-width: 768px) {
  #FPM260808BANKOTR_lp .lp-layout__primary {
    width: 50%;
  }
}

/* ▲ -----------レイアウト（2カラム）既定---------- ▲ */

/* =====================================================
   MV（ヒーロー・左カラム固定）
   ===================================================== */
#FPM260808BANKOTR_lp .lp-mv {
  position: relative;
}
@media (min-width: 768px) {
  #FPM260808BANKOTR_lp .lp-mv {
    position: sticky;
    top: var(--header-height, 12rem);
    height: calc(100vh - var(--header-height, 12rem));
    width: 50%;
    overflow: hidden;
  }
  #FPM260808BANKOTR_lp .lp-mv picture,
  #FPM260808BANKOTR_lp .lp-mv img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}
#FPM260808BANKOTR_lp .lp-mv__img {
  overflow: hidden;
  opacity: 0;
  transition: 1s;
}
#FPM260808BANKOTR_lp .lp-mv__img.is-active {
  opacity: 1;
}

#FPM260808BANKOTR_lp .lp-mv__caption {
  position: absolute;
  left: calc(50 * var(--formula));
  right: calc(50 * var(--formula));
  bottom: calc(54 * var(--formula));
}

@media (min-width: 768px) {
  #FPM260808BANKOTR_lp .lp-mv__caption {
    bottom: calc(90 * var(--formula));
  }
}

#FPM260808BANKOTR_lp .lp-mv__title {
  margin: 0;
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: calc(65 * var(--formula));
  letter-spacing: normal;
  color: #fff;
  text-transform: uppercase;
  white-space: nowrap;
  text-align: center;
  letter-spacing: 0.02em;
  overflow: hidden;
  line-height: 1;
}

@media (min-width: 768px) {
  #FPM260808BANKOTR_lp .lp-mv__title {
    font-size: calc(60.67 * var(--formula_pc));
    letter-spacing: 0.02em;
  }
}

#FPM260808BANKOTR_lp .lp-mv__title span {
  display: inline-block;
  transform: translateY(105%);
  transition: all 0.5s ease;
}

#FPM260808BANKOTR_lp .lp-mv__title span:nth-of-type(1) {
  transition-delay: 0.5s;
}
#FPM260808BANKOTR_lp .lp-mv__title span:nth-of-type(2) {
  transition-delay: 0.55s;
}
#FPM260808BANKOTR_lp .lp-mv__title span:nth-of-type(3) {
  transition-delay: 0.6s;
}
#FPM260808BANKOTR_lp .lp-mv__title span:nth-of-type(4) {
  transition-delay: 0.65s;
}
#FPM260808BANKOTR_lp .lp-mv__title span:nth-of-type(5) {
  transition-delay: 0.7s;
}
#FPM260808BANKOTR_lp .lp-mv__title span:nth-of-type(6) {
  transition-delay: 0.75s;
}
#FPM260808BANKOTR_lp .lp-mv__title span:nth-of-type(7) {
  transition-delay: 0.8s;
}
#FPM260808BANKOTR_lp .lp-mv__title span:nth-of-type(8) {
  transition-delay: 0.85s;
}
#FPM260808BANKOTR_lp .lp-mv__title span:nth-of-type(9) {
  transition-delay: 0.9s;
}
#FPM260808BANKOTR_lp .lp-mv__title span:nth-of-type(10) {
  transition-delay: 0.95s;
}
#FPM260808BANKOTR_lp .lp-mv__title span:nth-of-type(11) {
  transition-delay: 1s;
}
#FPM260808BANKOTR_lp .lp-mv__title span:nth-of-type(12) {
  transition-delay: 1.05s;
}
#FPM260808BANKOTR_lp .lp-mv__title span:nth-of-type(13) {
  transition-delay: 1.1s;
}
#FPM260808BANKOTR_lp .lp-mv__title span:nth-of-type(14) {
  transition-delay: 1.15s;
}
#FPM260808BANKOTR_lp .lp-mv__title span:nth-of-type(15) {
  transition-delay: 1.2s;
}
#FPM260808BANKOTR_lp .lp-mv__title span:nth-of-type(16) {
  transition-delay: 1.25s;
}
#FPM260808BANKOTR_lp .lp-mv__title span:nth-of-type(17) {
  transition-delay: 1.3s;
}
#FPM260808BANKOTR_lp .lp-mv__title span:nth-of-type(18) {
  transition-delay: 1.35s;
}
#FPM260808BANKOTR_lp .lp-mv__title span:nth-of-type(19) {
  transition-delay: 1.4s;
}
#FPM260808BANKOTR_lp .lp-mv__title span:nth-of-type(20) {
  transition-delay: 1.45s;
}
#FPM260808BANKOTR_lp .lp-mv__title span:nth-of-type(21) {
  transition-delay: 1.5s;
}
#FPM260808BANKOTR_lp .lp-mv__title span:nth-of-type(22) {
  transition-delay: 1.55s;
}
#FPM260808BANKOTR_lp .lp-mv__title span:nth-of-type(23) {
  transition-delay: 1.6s;
}
#FPM260808BANKOTR_lp .lp-mv__title.is-active span {
  transform: translateY(0%);
}

#FPM260808BANKOTR_lp .lp-mv__badge {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: calc(15 * var(--formula)) auto 0;
  width: calc(270 * var(--formula));
  height: calc(70 * var(--formula));
  background-color: rgba(255, 255, 255, 0.8);
  color: var(--color-badge);
  font-weight: 600;
  font-size: calc(35 * var(--formula));
  letter-spacing: 0.07em;

  clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
  transition: clip-path 1.2s cubic-bezier(0.8, 0, 0.15, 1) 1.7s;
  transition-delay: 2s;
}

@media (min-width: 768px) {
  #FPM260808BANKOTR_lp .lp-mv__badge {
    margin: calc(15 * var(--formula_pc)) auto 0;
    width: calc(252 * var(--formula_pc));
    height: calc(65 * var(--formula_pc));
    font-size: calc(32.67 * var(--formula_pc));
  }
}

#FPM260808BANKOTR_lp .lp-mv__badge.is-active {
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
}

/* =====================================================
   イントロ（リード文・商品写真・商品クレジット／グリーン背景）
   ===================================================== */
#FPM260808BANKOTR_lp .lp-intro {
  background-image: url("../img/bg_sp.jpg");
  background-size: cover;
  background-repeat: no-repeat;
  padding-block: calc(134 * var(--formula)) calc(136 * var(--formula));
}

#FPM260808BANKOTR_lp .lp-lead-strong {
  font-size: calc(25 * var(--formula));
  line-height: 2;
  letter-spacing: 0.05em;
  text-align: center;
  color: var(--color-text);
  font-weight: 700;
}

#FPM260808BANKOTR_lp .lp-lead {
  margin: 0 0 calc(0 * var(--formula));
  font-size: calc(23 * var(--formula));
  line-height: 2.17391304;
  letter-spacing: 0.05em;
  text-align: center;
  color: var(--color-text);
  font-weight: 500;
}

#FPM260808BANKOTR_lp .lp-photo-01 {
  width: calc(650 * var(--formula));
  margin: calc(86 * var(--formula)) auto 0;
}
#FPM260808BANKOTR_lp .lp-photo-02 {
  width: calc(650 * var(--formula));
  margin: calc(50 * var(--formula)) auto 0;
}

#FPM260808BANKOTR_lp .lp-credit {
  margin-top: calc(68 * var(--formula));
  text-align: center;
}

#FPM260808BANKOTR_lp .lp-credit__name {
  position: relative;
  margin: 0 0 calc(24 * var(--formula));
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: calc(50 * var(--formula));
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

#FPM260808BANKOTR_lp .lp-credit__name::after {
  content: "";
  width: calc(70 * var(--formula));
  height: calc(2 * var(--formula));
  position: absolute;
  left: 0;
  right: 0;
  margin: auto;
  bottom: calc(-28 * var(--formula));
  background-color: #000;
}

#FPM260808BANKOTR_lp .lp-credit__spec {
  margin: calc(58 * var(--formula)) 0 0;
  font-size: calc(23 * var(--formula));
  line-height: 1.86956522;
  letter-spacing: 0.05em;
  font-weight: 500;
}

/* =====================================================
   DETAIL（詳細写真・2x2グリッド／各セルは2カット手動トグル）
   ===================================================== */
#FPM260808BANKOTR_lp .lp-detail {
  background-color: var(--color-bg);
  padding-block: calc(36 * var(--formula)) calc(132 * var(--formula));
}

#FPM260808BANKOTR_lp .lp-detail__heading {
  margin: 0 0 calc(34 * var(--formula));
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: calc(55 * var(--formula));
  letter-spacing: 0.04em;
  text-align: center;
}

#FPM260808BANKOTR_lp .lp-detail__heading span {
  position: relative;
  display: inline-block;
  padding-inline: calc(98 * var(--formula));
}
#FPM260808BANKOTR_lp .lp-detail__heading span::before,
#FPM260808BANKOTR_lp .lp-detail__heading span::after {
  content: "";
  position: absolute;
  top: 50%;
  width: calc(80 * var(--formula));
  border-top: calc(2 * var(--formula)) solid var(--color-text);
}
#FPM260808BANKOTR_lp .lp-detail__heading span::before {
  left: 0;
}
#FPM260808BANKOTR_lp .lp-detail__heading span::after {
  right: 0;
}

#FPM260808BANKOTR_lp .lp-detail__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: calc(10 * var(--formula));
}

#FPM260808BANKOTR_lp .lp-detail__cell {
  position: relative;
  aspect-ratio: 2 / 3;
  overflow: hidden;
}

#FPM260808BANKOTR_lp .lp-detail__cell img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity 0.4s var(--ease-base);
}

#FPM260808BANKOTR_lp .lp-detail__cell img.is-active {
  opacity: 1;
}

#FPM260808BANKOTR_lp .lp-detail__nav {
  position: absolute;
  left: calc(24 * var(--formula));
  bottom: calc(24 * var(--formula));
  width: max(
    44px,
    calc(48 * var(--formula))
  ); /* 44pxはタップ領域確保のための意図的な下限値 */
  height: max(
    44px,
    calc(48 * var(--formula))
  ); /* 44pxはタップ領域確保のための意図的な下限値 */
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.85);
}

#FPM260808BANKOTR_lp .lp-detail__nav::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: calc(10 * var(--formula));
  height: calc(10 * var(--formula));
  border-top: 2px solid var(--color-text);
  border-right: 2px solid var(--color-text);
  transform: translate(-30%, -50%) rotate(-135deg);
}

/* 右側セル(偶数)の矢印は右向き */
#FPM260808BANKOTR_lp .lp-detail__cell:nth-child(even) .lp-detail__nav {
  left: auto;
  right: calc(24 * var(--formula));
}
#FPM260808BANKOTR_lp .lp-detail__cell:nth-child(even) .lp-detail__nav::before {
  transform: translate(-70%, -50%) rotate(45deg);
}

/* =====================================================
   ショップ情報（FPM Milano 表参道／グレー背景）
   ===================================================== */
#FPM260808BANKOTR_lp .lp-shop {
  /*background-color: var(--color-section-gray);*/
  background-color: #ccc;
  padding-block: calc(120 * var(--formula)) calc(80 * var(--formula));
  text-align: center;
}

#FPM260808BANKOTR_lp .lp-shop__heading {
  position: relative;
  margin: 0 0 calc(26 * var(--formula));
  padding-top: calc(14 * var(--formula));
  padding-bottom: calc(12 * var(--formula));
  font-size: calc(40 * var(--formula));
  font-weight: 600;
}
#FPM260808BANKOTR_lp .lp-shop__heading::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  translate: -50% 0;
  width: calc(430 * var(--formula));
  border-top: calc(2 * var(--formula)) solid var(--color-text);
}

#FPM260808BANKOTR_lp .lp-shop__heading::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  translate: -50% 0;
  width: calc(430 * var(--formula));
  border-bottom: calc(2 * var(--formula)) solid var(--color-text);
}

#FPM260808BANKOTR_lp .lp-shop__address {
  margin: 0 0 calc(52 * var(--formula));
  font-size: calc(25 * var(--formula));
  line-height: 1.76;
  letter-spacing: 0.05em;
  font-weight: 600;
}
#FPM260808BANKOTR_lp .lp-shop__address span {
  display: inline-block;
  margin-top: calc(-4 * var(--formula));
  font-size: calc(21 * var(--formula));
  line-height: 1.61904762;
}
#FPM260808BANKOTR_lp .lp-shop__address a {
  text-decoration: none !important;
}

#FPM260808BANKOTR_lp .lp-shop__ttl {
  margin: 0 0 calc(14 * var(--formula));
  font-size: calc(25 * var(--formula));
  letter-spacing: 0.05em;
}

#FPM260808BANKOTR_lp .lp-shop__link {
  margin: 0 0 calc(78 * var(--formula));
  font-weight: 600;
}

#FPM260808BANKOTR_lp .lp-shop__link a {
  font-size: calc(19 * var(--formula));
  letter-spacing: 0.05em;
  text-decoration: none !important;
}

#FPM260808BANKOTR_lp .lp-shop__notice {
  margin: 0;
  font-size: calc(21 * var(--formula));
  line-height: 1.71428571;
  word-break: break-all;
  letter-spacing: 0.05em;
  font-weight: 600;
}

#FPM260808BANKOTR_lp .lp-shop__notice a {
  display: inline-block;
  margin-top: calc(10 * var(--formula));
  margin-top: calc(21 * var(--formula));
  white-space: nowrap;
  text-decoration: none !important;
}

/* スライダー */
.swiper-button-prev::after,
.swiper-button-next::after {
  content: "";
}

.swiper-button-prev,
.swiper-button-next {
  width: calc(72 * var(--formula));
  height: calc(72 * var(--formula));
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  z-index: 2;
  pointer-events: auto;
  cursor: pointer;
  top: 51%;
}

.swiper-button-prev {
  background-image: url("../img/prev.svg");
  left: 4%;
}

.swiper-button-next {
  background-image: url("../img/next.svg");
  right: 4%;
}

.detail-slider .swiper-slide {
  width: calc(522 * var(--formula));
  margin-right: calc(30 * var(--formula));
}

.detail-slider-02 {
  margin-top: calc(126 * var(--formula));
}

body {
  overflow-x: clip !important;
}

/* 2. Flexアイテムが親の高さまで引き伸ばされるのを防ぐ */
@media (min-width: 768px) {
  #FPM260808BANKOTR_lp .lp-layout {
    align-items: flex-start;
  }
}

/*【PC版】 左側のMVとテキストが表示された後に、LPのテキストと画像が表示される見え方に*/
/*.lp-intro 内のアニメーション発火*/
@media (min-width: 768px) {
  #FPM260808BANKOTR_lp .lp-layout .lp-intro .js-fade-in {
    transition-delay: 0.8s;
  }
  #FPM260808BANKOTR_lp .lp-layout .lp-intro .js-inview {
    transition-delay: 0.8s;
  }
}
