@charset "UTF-8";

/* 20????????????? */
/*--------------------------------------------
    ????設??
--------------------------------------------*/
body{
    color: #fff;
    background-color: #222222;
    font-family: "Hiragino Kaku Gothic StdN", "Hiragino Kaku Gothic ProN", "游????????", "YuGothic", sans-serif;
}
.contents_wrap *,
.contents_wrap *::before, 
.contents_wrap *::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
.contents_wrap img {
    display: block;
    max-width: 100%;
    height: auto;
}
.contents_wrap ul,
.contents_wrap li {
    margin: 0;
    padding: 0;
    list-style: none;
}
.contents_wrap a {
    position: relative;
    display: block;
    margin: auto;
    color: #1F1C1C;
    font-size: 0.95vw;
    font-weight: bold;
    text-align: center;
    line-height: 2.41vw;
    text-decoration: none;
    width: 15.38vw;
    height: 2.41vw;
    border-radius: 2.41vw;
    background: linear-gradient(to right, #ff8b2e 0%, #f4e71c 100%);
    background-size: 200% 100%;
    background-position: left center;
    transition: background-position 0.4s ease;
}

.contents_wrap a::after {
    position: absolute;
    content: "";
    display: inline-block;
    width: 1.53vw;
    height: 0.89vw;
    right: 0.73vw;
    top: 50%;
    transform: translateY(-50%);
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20.88' height='12.228'><g fill='none' stroke='%231f1c1c'><path d='m12.888.391 7.189 5.723-7.189 5.723M0 6.216h20.264'/></g></svg>") no-repeat center;
    background-size: contain;
    vertical-align: middle;
    margin-left: 0.58vw;
    transition: transform 0.3s ease;
}

/* ??? hover?????????? */
.contents_wrap a:hover {
    background-position: right center; /* ???????????????????????????? */
}
.contents_wrap a:hover::after {
     transform: translateY(-50%) translateX(6px); /* ?????????????? */
}
.pc_view{
    display: block;
}
.sp_view{
    display: none;
}
.contents_wrap h2{
    height: 2.41vw;
    margin-bottom: 2.2vw;
}
.contents_wrap h2 img{
    margin: auto;
    height: 100%;
}
@media only screen and (max-width: 1200px) {
    .contents_wrap h2{
        height: 6.93vw; /* 26px => 6.93vw */
        margin-bottom: 4vw; /* 15px => 4vw */
    }
    .contents_wrap a{
        width: 50.67vw; /* 190px => 50.67vw */
        height: 8.8vw; /* 33px => 8.8vw */
        border-radius: 8.8vw; /* 33px => 8.8vw */
        line-height: 8.8vw; /* 33px => 8.8vw */
        font-size: 3.2vw; /* 12px => 3.2vw */
    }
    .contents_wrap a:after{
        width: 4.53vw; /* 17px => 4.53vw */
        height: 2.67vw; /* 10px => 2.67vw */
        right: 2.67vw; /* 10px => 2.67vw */
    }
    .pc_view{
        display: none;
    }
    .sp_view{
        display: block;
    }
    .sp-footer{
        padding-top: 28px;
    }
}
/*--------------------------------------------
    kv
--------------------------------------------*/
.main_visual{
    position: relative;
    width: 100%;
    height: 38.8vw;
    background: url(https://cdn.netkeiba.com/netkeiba_shop/2025/20thclass/kv_bg.png) no-repeat center center;
    background-size: cover;
}
.main_visual .main_visual_inner{
    display: flex;
    width: 57.75vw;
    margin: auto;
    justify-content: space-between;
    align-items: center;
}
.logo_img{
    width: 21.67vw;
    text-align: center;
}
.logo_img img{
    width: 14.64vw;
    margin:0 auto 2.2vw;
}
.logo_img .only_label{
    font-size: 0.95vw;
    width: 12.59vw;
    height: 2.12vw;
    border:0.073vw solid #ffffff;
    border-radius: 2.12vw;
    text-align: center;
    line-height: 2.0vw;
    margin:0 auto 0.73vw;
}
.logo_img h2{
    font-size: 1.17vw;
    margin-bottom: 0.73vw;
}
.logo_img .byline{
    font-size: 0.73vw;
    margin-bottom: 1.46vw;
}
.logo_img .byline .pc_view{
    display: inline-block;
    margin-right: -0.3em;
}
.jockeys_img{
    width: 35.28550512445095vw;
    text-align: center;
}
@media only screen and (max-width: 1200px) {
    .main_visual{
        margin-top: 16vw; /* 60px => 16vw */
        position: relative;
        padding-top: 8vw; /* 30px => 8vw */
        width: 100%;
        height: 84.53vw; /* 317px => 84.53vw */
        background: url(https://cdn.netkeiba.com/netkeiba_shop/2025/20thclass/kv_bg_sp.png) no-repeat center center;
        background-size: cover;
    }
    .main_visual .main_visual_inner{
        width: 100%;
        padding-left: 5.33vw; /* 20px => 5.33vw */
    }
    .logo_img{
        width: 41.87vw; /* 157px => 41.87vw */
    }
    .logo_img img{
        width: 26.67vw; /* 100px => 26.67vw */
        margin: 0 auto 4vw; /* 15px => 4vw */
    }
    .logo_img .only_label{
        font-size: 2.67vw; /* 10px => 2.67vw */
        width: 36.27vw; /* 136px => 36.27vw */
        height: 5.33vw; /* 20px => 5.33vw */
        line-height: 4.8vw; /* 18px => 4.8vw */
        margin-bottom: 2.13vw; /* 8px => 2.13vw */
    }
    .logo_img h2{
        font-size: 3.47vw; /* 13px => 3.47vw */
        margin-bottom: 2.13vw; /* 8px => 2.13vw */
        height: auto;
    }
    .logo_img a{
        width: 41.87vw; /* 157px => 41.87vw */
    }
    .logo_img .byline .pc_view{
        display: none;
    }
    .jockeys_img{
        width: 52.8vw; /* 198px => 52.8vw */
    }
    .logo_img .byline{
        font-size: 1.87vw; /* 7px => 1.87vw */
        margin-bottom: 4vw; /* 15px => 4vw */
    }
}

/*--------------------------------------------
    goods
--------------------------------------------*/
.goods {
    padding:3.66vw 0 0;
    background-image: url('https://cdn.netkeiba.com/netkeiba_shop/2025/20thclass/goods_bg_left.png?20250519'), url('https://cdn.netkeiba.com/netkeiba_shop/2025/20thclass/goods_bg_right.png?20250519');
    background-position: left top, right bottom;
    background-repeat: no-repeat, no-repeat;
    background-size: 18.3vw auto, 18.3vw auto; /* ???????? contain / cover ?????? */
}
.goods-list{
    width: 49.06vw;
    margin: 0 auto;
}
.goods-list ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    padding: 0;
    margin: 0;
    list-style: none;
}
.goods-list ul li {
    width: 23.43vw;
    margin-bottom: 3.66vw;
    text-align: center;
}
.goods-list ul li .img_list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.73vw;
    margin-bottom: 1.1vw;
}
.goods-list ul li .img_list img {
    width: calc((100% - 1.46vw) / 3); /* gap???????????3???? */
    max-width: 7.32vw;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    display: block;
}
.goods-list ul li .goods_name {
    font-size: 1.32vw;
    font-weight: bold;
    margin-bottom: 0.73vw;
}
.goods-list ul li .goods_price {
    font-size: 1.1vw;
    margin-bottom: 1.46vw;
}
.goods-list ul li.v_middle{
    display: flex;
    align-items: center;
    justify-content: center;
}
.goods-list ul li svg{
    width: 9.51683748169839vw;
    height:10.322108345534406vw;
}
@media only screen and (max-width: 1200px) {
    .goods{
        padding: 8vw 7.2vw 8vw; /* 30px, 27px => 8vw, 7.2vw */
        background-image: none;
    }
    .goods-list{
        width: 100%;
    }
    .goods-list ul li {
        width: 100%;
        margin-bottom: 8vw; /* 30px => 8vw */
    }
    .goods-list ul li .img_list {
        gap: 2.67vw; /* 10px => 2.67vw */
    }
    .goods-list ul li .img_list img{
        width: calc((100% - 5.43vw) / 3); /* 20px => 5.33vw */
        max-width: 100%;
    }
    .goods-list ul li.v_middle{
        display: none;
    }
    .goods-list ul li .goods_name{
        font-size: 4vw; /* 15px => 4vw */
    }
    .goods-list ul li .goods_price{
        font-size: 2.93vw; /* 11px => 2.93vw */
    }
}

/*--------------------------------------------
    購????
--------------------------------------------*/
.benefit{
    padding:3.66vw 0;
    background-color: #FF8522;
}
.benefit_detail{
    display: flex;
    width: 49.06vw;
    margin: 0 auto;
    align-items: center;
}
.benefit_item_img{
    width: 20.64vw;
}
.benefit_item_text{
    padding-left: 3.160322vw;
    text-align: left;
}

.benefit_item_text .head{
    width: 8.06vw;
    height: 2.64vw;
    margin-bottom: 1.1vw;
    text-align: center;
    line-height: 2.64vw;
    border-radius: 2.64vw;
    color: #FF8522;
    font-size: 1.46vw;
    font-weight: bold;
    background-color: #fff;
}
.benefit_item_text .main span{
    font-size: 1.32vw;
    font-weight: bold;
}
.benefit_item_text .main {
    margin-bottom: 1.0980966325036603vw;
    font-size: 0.95vw;
}
.benefit_item_text .notice{
    font-size: 0.8052708638360175vw;
}
@media only screen and (max-width: 1200px) {
    .benefit{
        padding: 8vw 0; /* 30px => 8vw */
    }
    .benefit_detail{
        flex-direction: column;
        width: 100%;
    }
    .benefit_item_img{
        width: 75.2vw; /* 282px => 75.2vw */
        margin-bottom: 5.33vw; /* 20px => 5.33vw */
    }
    .benefit_item_img img{
        width: 100%;
        margin: auto;
    }
    .benefit_item_text .head{
        width: 24vw; /* 90px => 24vw */
        height: 8.27vw; /* 31px => 8.27vw */
        border-radius: 8.27vw; /* 31px => 8.27vw */
        line-height: 8.27vw; /* 31px => 8.27vw */
        font-size: 4vw; /* 15px => 4vw */
        margin: 0 auto 4vw; /* 15px => 4vw */
    }
    .benefit_item_text .main{
        margin-bottom: 4vw; /* 15px => 4vw */
        font-size: 3.47vw; /* 13px => 3.47vw */
    }
    .benefit_item_text .main span{
        font-size: 4vw; /* 15px => 4vw */
    }
    .benefit_item_text .notice{
        font-size: 2.93vw; /* 11px => 2.93vw */
    }
}

/*--------------------------------------------
    ?????????
--------------------------------------------*/
.contents{
    padding:3.66vw 0;
}
ul.movie_container{
    width: 49.04831625183016vw;
    margin: 0 auto 2.2vw;
    justify-content: space-between;
}
ul.movie_container li{
    width: 100%;
}
.movie_container li h3{
    font-weight: normal;
    text-align: center;
    font-weight: normal;
    margin-bottom: 1.1vw;
}
.movie_comment{
    width: 49.04831625183016vw;
    margin: 0 auto;
    font-size: 1.1vw;
    font-weight: normal;
    line-height: 2;
    text-align: left;
}
.movie_comment a{
    background: none;
    display: inline-block;
    color: #fff;
    font-size: 1.1vw;
    width: auto;
    text-decoration: underline !important;
}
.movie_comment a:after{
    display: none;
}
@media only screen and (max-width: 1200px) {
    .contents{
        padding: 8vw 5.33vw; /* 30px, 20px => 8vw, 5.33vw */
    }
    ul.movie_container{
        width: 100%;
        flex-direction: column;
        margin-bottom: 8vw; /* 30px => 8vw */
    }
    ul.movie_container li{
        width: 100%;
    }
    .movie_container li h3{
        text-align: left;
        font-size: 2.93vw; /* 11px => 2.93vw */
        margin-bottom: 2.67vw; /* 10px => 2.67vw */
    }
    .movie_container li:last-child{
        margin-top: 8vw; /* 30px => 8vw */
    }
    .movie_comment{
        width: 100%;
        font-size: 3.47vw; /* 13px => 3.47vw */
        line-height: 2.1538461538461537;
    }
    .movie_comment a{
        font-size: 3.47vw; /* 13px => 3.47vw */
    }
}

/*--------------------------------------------
    ??大????
--------------------------------------------*/
#modalOverlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
  z-index: 9999;
  display: flex;
  justify-content: center;
  align-items: center;
}
#modalContent {
  background: #fff;
  max-width: 1200px;
  /* width: calc(100% - 20px); */
  max-height: 90vh;
  position: relative;
  margin: auto;
}
#modalContent img {
    max-width: 90vw;
    max-height: 80vh;
    display: block;
}
#modalVideoWrap {
  position: relative;
  width: 80vw;
  max-width: 960px;
  aspect-ratio: 16 / 9;
  background-color: #000;
  display: none;
}
#modalVideoWrap iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
}

#modalClose {
  position: absolute;
  top: -76px;
  right: -10px;
  width: 60px;
  height: 60px;
  background: transparent;
  border: none;
  cursor: pointer;
  z-index: 1;
}

#modalClose::before,
#modalClose::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 60px;
  height: 2px;
  background-color: white;
  transform-origin: center;
}

#modalClose::before {
  transform: translate(-50%, -50%) rotate(45deg);
}

#modalClose::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

/*--------------------------------------------
    ?????????????
--------------------------------------------*/
/* ???????? */
.fade {
  opacity: 0;
  transform: scale(1.1);
}

.fade.show {
  animation: fadeBounce 0.3s ease-out forwards;
}

@keyframes fadeBounce {
  0% {
    opacity: 0;
    transform: scale(1.1);
  }
  50% {
    opacity: 1;
    transform: scale(0.97);
  }
  70% {
    transform: scale(1.02);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}
/*購????*/
.benefit_item_img {
  position: relative;
  display: inline-block;
  overflow: hidden;
}

.benefit_item_img img {
  display: block;
  width: 100%;
  height: auto;
}

.img_mask {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #FF8522; /* ??? ????????????????????????????????????? */
  transform: translateX(0%);
  transition: transform 0.3s ease-out;
  z-index: 2;
}

.benefit_item_img.show .img_mask {
  transform: translateX(100%);
}
