@charset "utf-8";

/* ==========================================================================
   メイン画像カルーセルスタイル (.mainImage-carousel)
   ========================================================================== */
.mainImage-carousel {
  overflow: hidden;
  position: relative;
}
.mainImage-carousel > .inner {
  aspect-ratio: 1/1; /* デフォルトの縦横比 */
}
.mainImage-carousel > .inner > figure,
.mainImage-carousel > .inner > figure > a {
  display: flex;
  width: 100%;
  height: 100%;
  justify-content:center;
  align-items:center;
  overflow:hidden;
}
.mainImage-carousel > .inner > figure img,
.mainImage-carousel > .inner > figure video {
  max-width:none;
  width: 100%;
  height: 100%; /* 動画と画像共通で高さ100% */
}
.mainImage-carousel > .inner > figure img {
  height: auto; /* 画像は高さ自動調整 (サイト共通) */
}
.mainImage-carousel > .inner > figure video {
  object-fit: contain;
  background-color:#f7f7f7;
}
.mainImage-carousel iframe {
  width: 100%;
  height: 100%;
}
.mainImage-carousel [data-img="vieo-file"] video {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
/* Swiperナビゲーションボタン調整 */
.mainImage-carousel :is(
  .swiper-button-next,
  .swiper-button-prev) {
  text-rendering: auto !important;
  color: #fff !important;
  background-color: rgba(0, 0, 0, 0.1);
  transition: background-color 0.3s ease;
  width: 44px !important;
  height: 44px !important;
  border-radius: 50%;
  opacity: 0;
}
.mainImage-carousel :is(
  .swiper-button-next[aria-disabled="false"],
  .swiper-button-prev[aria-disabled="false"]){
  opacity: 1;
}
.mainImage-carousel :is(
  .swiper-button-next,
  .swiper-button-prev
):after {
  font-size: 16px !important;
  font-weight: 600;
}
.mainImage-carousel .swiper-button-disabled {
  opacity: 0 !important;
}

/* ==========================================================================
   サムネイルリストスタイル (.mainImage-thumbList)
   ========================================================================== */
.mainImage-thumbList {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
}
.mainImage-thumbList figure{
  display:flex;
  justify-content:center;
  align-items:center;
  overflow:hidden;
}
.mainImage-thumbList figure img {
  max-width: none;
  width: 100%;
  height: auto;
}
/* ビデオサムネイルの再生アイコン */
.mainImage-thumbList .has-video {
  position: relative;
}
.mainImage-thumbList .has-video:after {
  content: "";
  display: flex;
  width: 30px;
  height: 30px;
  background: url(https://media.aws.locondo.jp/_assets/img/icon-play.svg) no-repeat;
  background-size: 100%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
}
.mainImage-thumbList .has-video:before,
.mainImage-thumbList .has-video a:before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.7);
  position: absolute;
  top: 0;
  left: 0;
  pointer-events: none;
}
.mainImage-thumbList .has-video.active:before {
  background-color: rgba(0, 0, 0, 0.7);
}

/* ==========================================================================
   Photoswipe拡大画像スタイル
   ========================================================================== */
.pswp--touch .pswp__button--arrow {
  visibility: visible;
}
.pswp__counter {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 2px;
  width: 60px;
  height: 20px;
  color: #fff;
  background: rgba(0, 0, 0, 0.2);
  border-radius: 10px;
  opacity: 1;
  text-shadow: none;
  margin-top: 20px;
}
/* pswp上での動画サイズ */
.pswp__content{
  display:flex;
  justify-content:center;
  align-items:center;
}
.mainImage-pswp-video {
  display: flex;
  justify-content: center;
  align-items: center;
  max-width: 90vw;
  max-height: 90vh;
  min-width:70vw;
}
.mainImage-pswp-video video {
  object-fit: contain;
  max-width: none !important;
  width: 100%;
  height: 100%;
}
/* アプリ調整 */
body.-isWebView .pswp,
body.-isWebView .uk-modal{
  top: env(safe-area-inset-top);
  bottom: env(safe-area-inset-bottom);
  height: calc(100vh - env(safe-area-inset-top) - env(safe-area-inset-bottom));
}
body.-isWebView .pswp__img,
body.-isWebView .mainImage-pswp-video{
  animation: fadeSlideIn 0.5s ease forwards;
}
@keyframes fadeSlideIn {
  from {
    transform: translateY(0);
    opacity: 0;
  }
  to {
    transform: translateY(-60px);
    opacity: 1;
  }
}
body.-isWebView .pswp__img--placeholder{
 opacity:0 !important; /* 最初にスライドしながら小さく表示されてしまう */
}
/* ボタンデザイン */
.pswp .pswp__button--arrow {
  visibility: visible;
  text-rendering: auto !important;
  color: #fff !important;
  background-color: rgba(0, 0, 0, 0.1);
  transition: background-color 0.3s ease;
  width: 44px !important;
  height: 44px !important;
  border-radius: 50%;
  transform: translateY(50%);
}
.pswp__button--arrow use, .pswp__button--arrow path {
  display: none;
}
.pswp .pswp__button--arrow:after {
  font-family: swiper-icons;
  text-transform: none !important;
  letter-spacing: 0;
  font-variant: initial;
  line-height: 1;
  font-size: 16px !important;
  font-weight: 600;
}
.pswp__button--arrow--next {
  right: 5px;
}
.pswp__button--arrow--prev {
  left: 5px;
}
.pswp__button--arrow--next:after {
  content: 'next';
}
.pswp__button--arrow--prev:after {
  content: 'prev';
}
/* エラーフォールバック */
.mainImage-carousel > .inner > figure:has(.video-error) a{
  text-decoration:none;
  pointer-events:none;
  color:#666;
}
[id^="fallback-video-pswp-"] {
  color:#fff;
}

/* ==========================================================================
   Drift.js (マウスによる画像拡大)
   ========================================================================== */
#product_detail,
#product_right_container{
  position: relative;
}
#drift-zoom-pane:has(*) {
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  border: 1px solid #eee;
  position: absolute;
  z-index:10;
  top: 0;
  left: 0;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}
/* 元画像に拡大エリアを表示する要素(drift-bounding-box) ※jsで生成される */
.drift-bounding-box {
  z-index: 10; /* 指定しないと表示されない */
  background: rgba(255, 255, 255, 0.4);
  border: 1px solid #ddd;
}
.mainImage-carousel [data-img="image-file"] img:hover {
  cursor: zoom-in;
}
/* 元ライブラリのアニメーションから拡大を削除 */
@keyframes a {
  0% { opacity: 0; } to { opacity: 1; }
}
@keyframes b {
  0% { opacity: 1; } 15% { opacity: 1; } to { opacity: 0;}
}

/* ==========================================================================
   メディアクエリ (ビューポートの整理)
   ========================================================================== */
/* デスクトップビューポート (769px以上) */
@media (min-width: 769px) {
  /* メイン画像カルーセル */
  .mainImage-carousel {
    margin-bottom: 12px;
  }
  .mainImage-carousel > .inner {
    width: 512px;
  }
  .site_fashionwalker .mainImage-carousel > .inner {
    width: 416px;
  }
  /* サムネイルリスト */
  .mainImage-thumbList figure {
    width: 54px;
    opacity: 0.6;
    cursor: pointer;
  }
  .mainImage-thumbList figure.active {
    opacity: 1;
    border: 1px solid #000;
  }
  .site_descente .mainImage-thumbList figure {
    width: 100px;
  }
  .site_steady .mainImage-thumbList {
    gap:12px;
  }
  .site_steady .mainImage-thumbList figure {
    width: 75px;
  }
  /* Swiperナビゲーションボタンホバーエフェクト */
  .mainImage-carousel :is(
    .swiper-button-next,
    .swiper-button-prev
  ):hover {
    background-color: rgba(0, 0, 0, 0.5);
  }
  /* Swiperカウンター */
  .swiper-counter{
    display:none;
  }
  /* (fashionwalker) サイズ調整 */
  .site_fashionwalker .mainImage-container{
    width:416px;
  }
  /* photoswipe */
  .pswp .pswp__button--arrow {
    background-color: rgba(0, 0, 0, 0.1);
  }
  .pswp__button--arrow--next {
    right: 20px;
  }
  .pswp__button--arrow--prev {
    left: 20px;
  }
}
/* モバイルビューポート (769px以下) */
@media (max-width: 769px) {
  /* サムネイルリスト */
  .mainImage-thumbList {
    gap: 0;
  }
  .mainImage-thumbList figure {
    opacity: 1;
  }
  .mainImage-thumbList figure a {
    display: flex;
    position: relative;
    align-items: center;
    justify-content: center;
    overflow: hidden;
  }
  /* SP画像一覧モーダル専用スタイル */
  #wrap_mainImage-thumbList {
    display: none;
    background-color: #fff;
    padding: 0;
  }
  #btn_imgIndex-modal {
    z-index: 10;
  }
  .mainImage-thumbList.uk-modal-dialog {
    transform: translateY(0);
  }
  .mainImage-thumbList .heading {
    display: block !important;
    width: 100%;
    text-align: center;
    font-size: 13px;
    font-weight: 400;
    line-height: 1;
    color: #333;
    padding: 1.4em 0;
    border-bottom: 1px solid #ddd;
    position: sticky;
    top: 0;
    z-index: 10;
    background-color: #fff;
  }
  .mainImage-thumbList .heading button {
    all: unset;
    display: inline-block;
    position: absolute;
    left: 16px;
    color: #666;
    line-height: 15px;
    padding-left: 16px;
  }
  .mainImage-thumbList .heading button:after {
    content: "";
    display: inline-block;
    position: absolute;
    top: 0;
    left: 0;
    width: 12px;
    height: 12px;
    -webkit-transform: rotate(135deg);
    transform: rotate(135deg);
    border-right: 1px solid #666;
    border-bottom: 1px solid #666;
  }
  .mainImage-thumbList figure {
    box-sizing: border-box;
    flex: 0 1 calc(100% / 3);
    border-right: 1px solid #eee;
    border-bottom: 1px solid #eee;
  }
  .mainImage-thumbList .has-video:before,
  .mainImage-thumbList .has-video a:before {
    background-color: rgba(0, 0, 0, 0.4);
  }
  .mainImage-thumbList .has-video:after {
    width: 50px;
    height: 50px;
  }
  /* Swiperカウンター */
  .swiper-counter,
  .wrap_img_icon .btn_favoriteItem_count {
    z-index: 10;
  }
  .swiper-counter.swiper-pagination-fraction {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: 2px;
    width: 60px;
    height: 20px;
    color: #fff;
    background: rgba(0, 0, 0, 0.2);
    border-radius: 10px;
    position: absolute;
    left: 50%;
    transform: translate(-50%, -18px);
    z-index: 10;
  }
  /* pswp上での動画サイズ */
  .mainImage-pswp-video {
    max-width: 100vw;
    max-height: 100vh;
  }
}

/* 動画の右クリック禁止（Swiper、Photoswipe共通） */
.mainImage-carousel video,
.mainImage-pswp-video video {
  user-select: none;
  -webkit-user-drag: none;
}

/* ==========================================================================
   サイト固有の画像比
   ========================================================================== */

/* --- 比率 5/7 --- */
/* メイン画像カルーセル, サムネイル画像 */
:is(
  .site_fineoutlet,
  .site_mango,
  .site_brandeli,
  .site_fashionwalker,
  .site_waja
  ) 
.mainImage-carousel > .inner{
  aspect-ratio: 5/7;
}
:is(
  .site_fineoutlet,
  .site_mango,
  .site_brandeli,
  .site_fashionwalker,
  .site_waja
  ) :is(
.mainImage-carousel > .inner img,
.mainImage-thumbList figure img
){
  width: calc(100% * (7/5));
}
:is(
  .site_fineoutlet,
  .site_mango,
  .site_brandeli,
  .site_fashionwalker,
  .site_waja
  )
#drift-zoom-pane:has(*) {
  aspect-ratio: 5/7;
}

/* --- 比率 5/6 --- */
/* メイン画像カルーセル, サムネイル画像 */
:is(
  .site_descente,
  .site_kuipo,
  .site_lapine,
  .site_magaseek
)
.mainImage-carousel > .inner {
  aspect-ratio: 5/6;
}
:is(
  .site_descente,
  .site_kuipo,
  .site_lapine,
  .site_magaseek
) :is(
.mainImage-carousel > .inner img,
.mainImage-thumbList figure img
) {
  width: calc(100% * (6/5));
}
:is(
  .site_descente,
  .site_kuipo,
  .site_lapine,
  .site_magaseek
)
#drift-zoom-pane:has(*) {
  aspect-ratio: 5/6;
}

/* --- 比率 4/5 --- */
/* メイン画像カルーセル, サムネイル画像 */
:is(
  .site_jayjay
)
.mainImage-carousel > .inner {
  aspect-ratio: 4/5;
}
:is(
  .site_jayjay
) :is(
.mainImage-carousel > .inner img,
.mainImage-thumbList figure img
) {
  width: calc(100% * (5/4));
}
:is(
  .site_jayjay
)
#drift-zoom-pane:has(*) {
  aspect-ratio: 4/5;
}
/* jayjay 1枚目のみカスタム */
/* メイン画像カルーセル, サムネイル画像 */
/* モバイルビューポート (769px以下) */
@media (max-width: 769px) {
  :is(
    .site_jayjay
  ) :is(
  .mainImage-carousel > .inner figure:nth-child(1) img,
  .mainImage-thumbList figure:nth-child(1) img
  ) {
    width: 90%;
  }
}
/* デスクトップビューポート (769px以上) */
@media (min-width: 769px) {
  :is(
    .site_jayjay
  ) :is(
  .mainImage-carousel > .inner figure:nth-child(1) img,
  .mainImage-thumbList figure:nth-child(1) img
  ) {
    width: 100%;
  }
}

/* --- 比率 2/3 --- */
/* メイン画像カルーセル, サムネイル画像 */
:is(
  .site_duvetica,
  .site_fascinate,
  .site_steady
)
.mainImage-carousel > .inner
{
  aspect-ratio: 2/3;
}
:is(
  .site_duvetica,
  .site_fascinate,
  .site_steady
) :is(
.mainImage-carousel > .inner img,
.mainImage-thumbList figure img
){
  width: calc(100% * (3/2));
}
:is(
  .site_duvetica,
  .site_fascinate,
  .site_steady
  )
#drift-zoom-pane:has(*) {
  aspect-ratio: 2/3;
}

/* --- 比率 8/7 横長 --- */
/* メイン画像カルーセル, サムネイル画像 */
:is(
  .site_harleydavidson
)
.mainImage-carousel > .inner
{
  aspect-ratio: 8/7;
}
:is(
  .site_harleydavidson
) :is(
.mainImage-carousel > .inner img,
.mainImage-thumbList figure img
){
  width: calc(100% * (7/8));
}
:is(
  .site_harleydavidson
  )
#drift-zoom-pane:has(*) {
  aspect-ratio: 8/7;
}

/* シューズカテゴリなどを正方形にするサイト */
.-square:is(
  .site_brandeli,
  .site_fashionwalker,
  .site_waja,
  .site_magaseek
  ) 
.mainImage-carousel > .inner{
  aspect-ratio: 1/1;
}
.-square:is(
  .site_brandeli,
  .site_fashionwalker,
  .site_waja,
  .site_magaseek
  ) :is(
.mainImage-carousel > .inner img,
.mainImage-thumbList figure img
){
  width: calc(100% * (1/1));
}
.-square:is(
  .site_brandeli,
  .site_fashionwalker,
  .site_waja,
  .site_magaseek
  )
#drift-zoom-pane:has(*) {
  aspect-ratio: 1/1;
}

/* fashionwalker,waja,brandeli でのガタつき防止 */
.mainImage-container .mainImage-carousel > .inner img {
  opacity: 0;
}
.mainImage-container.-ready .mainImage-carousel > .inner img {
  opacity: 1;
  transition: opacity .3s ease;
}

/* fascinate 現在のカスタム設定を無効化 */
.site_fascinate #product_img{
  width: 512px !important;
}
/* 動画ボタン */
.pswp .custom-video-control{
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: white;
  border: none;
  border-radius: 50%;
  width: 60px;
  height: 60px;
  font-size: 24px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  transition: opacity 0.3s;
  opacity: 0;
  background-image:url(https://media.aws.locondo.jp/_assets/img/icon-pause-2.svg);
  background-repeat:no-repeat;
  background-size:contain;
}
.pswp .custom-video-control.paused{
  background-image:url(https://media.aws.locondo.jp/_assets/img/icon-play-2.svg);
}

/* 後で消す (product.css と重複) */
.item-icons {
  z-index: 5;
}
.site_fashionwalker .item-icons {
  z-index: 10 !important;
}
/* モデルサイズ */
.modelSizeInfo{
  display:none;
}
.modelSizeInfo:has(div){
  display:flex;
  flex-direction:column;
  text-align:center;
  font-size:11px;
  color:#888;
  line-height:1;
  gap: 6px;
  padding:10px;
  border-bottom:1px solid #eee;
  margin-top:-15px;
  margin-bottom:12px;
}
.modelSizeInfo > div{
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
}
/* VDEOありアイコン */
.wrap_img_icon .icon_commodity_video{
  /* width:40px;
  height:12px;
  background: url(https://media.aws.locondo.jp/_assets/img/icon_commodity_video.png) center/cover no-repeat ;
  position: absolute;
  left:16px;
  bottom:60px;
  z-index:1; */
}
.wrap_img_icon .icon_commodity_video{
  width:49px;
  height:18px;
  background: url(https://media.aws.locondo.jp/_assets/img/icon_commodity_video_gray.png) center/cover no-repeat ;
  background-color:#f4f4f4;
  background-size:80%;
  position:absolute;
  top:8px;
  left:8px;
  z-index:1;
}
.wrap_img_icon .icon_commodity_video{
  /* width:49px;
  height:18px;
  background: url(https://media.aws.locondo.jp/_assets/img/icon_commodity_video_wh.png) center/cover no-repeat ;
  background-color:rgba(0,0,0,.2);
  background-size:80%;
  position:absolute;
  top:8px;
  left:8px;
  z-index:1; */
}
.wrap_img_icon .icon_commodity_video{
  /* width:49px;
  height:18px;
  background: url(https://media.aws.locondo.jp/_assets/img/icon_commodity_video_gray.png) center/cover no-repeat ;
  background-size:90%;
  position:absolute;
  top:12px;
  left:16px;
  z-index:1; */
}
.wrap_img_icon:has(.item-icons) .icon_commodity_video{
  top:30px;
}
/* デスクトップビューポート (769px以上) */
@media (min-width: 769px) {
  .modelSizeInfo:has(div){
    border-bottom:none;
    margin-top:0;
    margin-bottom:0;
    padding:12px;
  }
}

/* これは追記必要 */
#main {
  overflow-x: hidden;
}

/* webapp/contents/css/sp/smp-content-product.css に移動する*/

/* モデルサイズ */
.modelSizeInfo{
  display:none;
}
.modelSizeInfo:has(div){
  display:flex;
  flex-direction:column;
  text-align:center;
  font-size:11px;
  color:#888;
  line-height:1;
  gap: 6px;
  padding:10px;
  border-bottom:1px solid #eee;
  margin-top:-15px;
  margin-bottom:12px;
}
.modelSizeInfo > div{
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
}

/* デスクトップビューポート (769px以上) */
@media (min-width: 769px) {
  /* モデルサイズ */
  #product_img .modelSizeInfo{
    display:none;
  }
  #product_img .modelSizeInfo:has(div){
    display:flex;
    flex-direction:column;
    text-align:center;
    font-size:11px;
    color:#888;
    line-height:1;
    gap: 6px;
    padding:12px;
    margin-top:-12px;
    margin-bottom:0;
    border:none;
  }
  #product_img .modelSizeInfo > div{
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
  }
}

