.p-race__main {
  margin: 4rem 1.5rem 0;
  padding: 4rem 1.5rem 2rem;
}

.p-race__howto {
  margin-block: 3rem 3.2rem;
}

.p-race__howto__title {
  margin-bottom: 1rem;
  text-align: center;
  font-family: var(--fontJp2);
  color: #3064D3;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.6;
}

.p-race__howto__title__emphasis {
  font-size: 2rem;
}

.p-race__howto__heading {
  width: 100%;
  height: 7rem;
  border-radius: 0.8rem;
  background: #3064D3;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
}
.p-race__howto__heading::before, .p-race__howto__heading::after {
  content: "";
  width: 2rem;
  height: 2px;
  background: #fff;
  position: absolute;
  top: 50%;
  right: 2rem;
  translate: 0 -50%;
  transition: rotate 0.2s, opacity 0.2s;
}
.p-race__howto__heading::after {
  rotate: 90deg;
}
.p-race__howto__heading:has(.p-race__howto__toggle-trigger:checked)::before {
  rotate: 90deg;
  opacity: 0;
}
.p-race__howto__heading:has(.p-race__howto__toggle-trigger:checked)::after {
  rotate: 180deg;
}

.p-race__howto__toggle-trigger {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}

.p-race__howto__heading__text {
  color: #FFF;
  text-align: center;
  font-family: var(--fontJp2);
  display: inline-block;
  color: #FAFFAD;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.3;
}

.p-race__howto__body {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.4s;
}

.p-race__howto__body__inner {
  overflow: hidden;
  opacity: 0;
  transition: opacity 0.2s 0.1s, padding-block 0.3s;
}

.p-race__howto:has(.p-race__howto__toggle-trigger:checked) .p-race__howto__body {
  grid-template-rows: 1fr;
}
.p-race__howto:has(.p-race__howto__toggle-trigger:checked) .p-race__howto__body__inner {
  opacity: 1;
  padding-block: 3.2rem 3rem;
}

.p-race__howto__image {
  width: 100%;
  display: block;
  margin: 2.6rem 0 0;
}

.p-race__howto__description {
  color: #364D9D;
  font-weight: 700;
  line-height: 1.6;
  text-align: center;
  font-size: 1.8rem;
  margin-top: 2.4rem;
}

.p-race__howto__close {
  color: #576082;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.03em;
  border: 1px solid currentColor;
  width: 24rem;
  height: 4.8rem;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 2rem auto 0;
  cursor: pointer;
}

.p-race__detail__table {
  background: #fff;
  margin-top: 2.6rem;
}
.p-race__detail__table .RaceDayWrap_Inner {
  border-bottom: none;
  background: #197599;
}
.p-race__detail__table .Tab_RaceDaySelect {
  height: 5.4rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.p-race__detail__table .Tab_RaceDaySelect ul {
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
}
.p-race__detail__table .Tab_RaceDaySelect ul li a,
.p-race__detail__table .Tab_RaceDaySelect ul li span.No_Link {
  color: #fff;
  font-size: 2.3rem;
}
.p-race__detail__table .Tab_RaceDaySelect ul li a span {
  font-size: 1.9rem;
}
.p-race__detail__table .RaceDayPrev,
.p-race__detail__table .RaceDayNext {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
.p-race__detail__table .RaceDayPrev a,
.p-race__detail__table .RaceDayNext a {
  padding: 0;
  width: 3.2rem;
  height: auto;
  aspect-ratio: 1/1;
  position: relative;
  color: #fff;
  border: 1px solid currentColor;
}
.p-race__detail__table .RaceDayPrev a::after,
.p-race__detail__table .RaceDayNext a::after {
  border: solid currentColor;
  border-width: 1px 1px 0 0;
  width: 0.9rem;
  height: 0.9rem;
  position: absolute;
  left: 50%;
  top: 50%;
  translate: -50% -50%;
}
.p-race__detail__table .RaceDayPrev {
  left: 1.6rem;
}
.p-race__detail__table .RaceDayPrev a::after {
  margin-left: 0.2rem;
}
.p-race__detail__table .RaceDayNext {
  right: 1.6rem;
}
.p-race__detail__table .RaceDayNext a::after {
  margin-left: -0.2rem;
}
.p-race__detail__table .RaceInformation_Wrap {
  padding: 0;
  margin: 0;
  height: 3.6rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #E1F2F9;
  font-size: 1.4rem;
}
.p-race__detail__table .RaceInformation {
  color: inherit;
  font-weight: 500;
}
.p-race__detail__table .RaceInformation_Item {
  font-size: 1.4rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.p-race__detail__table .RaceInformation_Item .Item02 {
  display: flex;
  align-items: center;
  margin-left: 1em;
}
.p-race__detail__table .RaceInformation_Item .Item04 {
  margin-left: 1em;
}
.p-race__detail__table .RaceInformation_Item .Icon_Weather {
  margin: 0;
  vertical-align: middle;
}
.p-race__detail__table .RaceTopRaceMenuWrap .RaceList {
  border-top: none;
  border-right: 1px solid #AFAFAF;
  border-bottom: 1px solid #AFAFAF;
}
.p-race__detail__table .RaceTopRaceMenuWrap .RaceList li {
  border-bottom: none;
}
.p-race__detail__table .RaceList_Main_Box a {
  position: relative;
  padding: 1rem 1.2rem 1rem 6.2rem;
  display: block;
}
.p-race__detail__table .RaceList_Main_Box a:hover {
  opacity: 1;
}
.p-race__detail__table .RaceList_Main_Box a::after {
  content: "";
  display: block;
  border-bottom: 1px solid #AFAFAF;
  width: 100%;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 1;
}
.p-race__detail__table .RaceList_Main_Box .RaceList_Item01 {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 2;
  display: block;
  width: 4.8rem;
  height: 100%;
  margin: 0;
  padding: 0;
}
.p-race__detail__table .RaceList_Main_Box .RaceList_Item01 .Race_Num {
  width: 100%;
  height: 100%;
  border-radius: 0;
  font-size: 1.6rem;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}
.p-race__detail__table .RaceList_Main_Box .RaceList_Item02 dl .Race_Name {
  color: inherit;
  font-size: 1.6rem;
  line-height: 1.4;
  margin: 0;
}
.p-race__detail__table .RaceList_Main_Box .RaceList_Item02 dl .Race_Name .Icon_GradeType {
  vertical-align: initial;
  border-radius: initial;
  margin-top: 0;
  position: relative;
  top: 0.2rem;
  margin-left: 0.2rem;
}
.p-race__detail__table .RaceList_Main_Box .RaceList_Item02 dl .Race_Data {
  color: inherit;
  font-size: 1.3rem;
  display: flex;
  align-items: center;
  gap: 0 0.5em;
  margin-top: 0.2rem;
}
.p-race__detail__table .RaceList_Main_Box .RaceList_Item02 dl .Race_Data * {
  margin: 0;
}
.p-race__detail__table .RaceList_Main_Box .RaceList_Item02 dl .Race_Data > .Dirt {
  color: inherit;
}
.p-race__detail__table .RaceList_Main_Box .RaceList_ItemExtra {
  margin-top: 0.7rem;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.p-race__detail__table .RaceList_Main_Box .Race_Predict {
  display: flex;
  border: 1px solid #92B2F8;
  border-radius: 0.4rem;
  padding: 0.5rem 0.8rem;
}
.p-race__detail__table .RaceList_Main_Box .Race_PredictList {
  position: relative;
  width: 100%;
}
.p-race__detail__table .RaceList_Main_Box .Race_PredictListName {
  font-size: 1.3rem;
  line-height: 1.4;
  font-weight: 500;
  position: relative;
}
.p-race__detail__table .RaceList_Main_Box .Race_PredictListName span {
  display: inline-block;
  margin-right: 0.25em;
}
.p-race__detail__table .RaceList_Main_Box .Race_PredictListMark {
  position: absolute;
  right: 0rem;
  top: 50%;
  translate: 0 -50%;
  width: 7.2rem;
}
.p-race__detail__table .RaceList_Main_Box .Race_PredictListMark img {
  width: 100%;
}
.p-race__detail__table .RaceList_Main_Box .Race_DetailBtn {
  background: #F04B94;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  height: 3.4rem;
  border-radius: 0.4rem;
  font-size: 1.3rem;
  text-align: center;
  line-height: 1.3;
  font-weight: 700;
  position: relative;
  z-index: 1;
  overflow: hidden;
  transition: background 0.3s;
}
.p-race__detail__table .RaceList_Main_Box .Race_DetailBtn::after {
  content: "";
  display: block;
  width: 1.4rem;
  aspect-ratio: 1/1;
  -webkit-mask: url("../../img/icon_circle-arrow_small.svg") no-repeat center center/contain;
          mask: url("../../img/icon_circle-arrow_small.svg") no-repeat center center/contain;
  background: currentColor;
  transition: translate 0.3s;
  margin-top: 0.1rem;
}
.p-race__detail__table li:first-child .RaceList_Main_Box a::after {
  border-bottom: none;
}
.p-race__detail__table .RaceTopRaceMenuWrap .RaceList li:nth-child(odd) .RaceList_Main_Box .RaceList_Item01 .Race_Num {
  background: #197599 !important;
}
.p-race__detail__table .RaceTopRaceMenuWrap .RaceList li:nth-child(even) .RaceList_Main_Box .RaceList_Item01 .Race_Num {
  background: #318FB4 !important;
}

.p-race__banner {
  display: block;
  margin: 2rem auto 0;
}
.p-race__banner img {
  width: 100%;
}
@media (min-width: 769px) {
  .p-race__main {
    padding: 6.4rem 4rem 5rem;
    width: min(100% - var(--sidePaddingPc1) * 2, 104.6rem);
    margin: 8rem auto 0;
  }
  .p-race__howto {
    margin-block: 4.8rem;
  }
  .p-race__howto__title {
    font-size: 2.2rem;
  }
  .p-race__howto__title__emphasis {
    font-size: 2.8rem;
  }
  .p-race__howto__heading {
    width: min(100%, 90rem);
    height: 7.2rem;
    margin: 0 auto;
  }
  .p-race__howto__heading::before, .p-race__howto__heading::after {
    right: 2.2rem;
  }
  .p-race__howto__heading__text {
    font-size: 2.7rem;
    line-height: 1.6;
  }
  .p-race__howto:has(.p-race__howto__toggle-trigger:checked) .p-race__howto__body__inner {
    padding-block: 4.8rem;
  }
  .p-race__howto__image {
    width: min(100%, 80.2rem);
    margin: 3.4rem auto 0;
  }
  .p-race__howto__description {
    font-size: 2rem;
    margin-top: 4rem;
  }
  .p-race__detail__table {
    margin-top: 3.5rem;
    margin-inline: auto;
  }
  .p-race__detail__table .Tab_RaceDaySelect {
    height: 7.2rem;
  }
  .p-race__detail__table .Tab_RaceDaySelect ul li a,
  .p-race__detail__table .Tab_RaceDaySelect ul li span.No_Link {
    font-size: 2.8rem;
  }
  .p-race__detail__table .Tab_RaceDaySelect ul li a span {
    font-size: 2.2rem;
  }
  .p-race__detail__table .RaceDayPrev {
    left: calc(50% - 14rem);
  }
  .p-race__detail__table .RaceDayNext {
    right: calc(50% - 15rem);
  }
  .p-race__detail__table .RaceInformation_Wrap {
    height: 4.2rem;
  }
  .p-race__detail__table .RaceList_Main_Box a {
    padding: 1rem 0.8rem 1rem 8rem;
    display: flex;
    align-items: center;
  }
  .p-race__detail__table .RaceList_Main_Box .RaceList_Item01 {
    width: 6.4rem;
  }
  .p-race__detail__table .RaceList_Main_Box .RaceList_Item01 .Race_Num {
    font-size: 1.7rem;
  }
  .p-race__detail__table .RaceList_Main_Box .RaceList_Item02 {
    flex: 1 1;
    padding-right: 2.7rem;
  }
  .p-race__detail__table .RaceList_Main_Box .RaceList_Item02 dl .Race_Name {
    font-size: 1.7rem;
  }
  .p-race__detail__table .RaceList_Main_Box .RaceList_Item02 dl .Race_Name .Icon_GradeType {
    top: 0.1rem;
    margin-left: 0.2rem;
  }
  .p-race__detail__table .RaceList_Main_Box .RaceList_ItemExtra {
    flex: none;
    margin: 0;
    gap: 0.6rem;
  }
  .p-race__detail__table .RaceList_Main_Box .Race_Predict {
    padding: 1rem;
    width: 43.7rem;
  }
  .p-race__detail__table .RaceList_Main_Box .Race_PredictList {
    display: grid;
    grid-template-columns: repeat(2, max-content);
    grid-template-rows: repeat(3, 1fr);
    gap: 0 2rem;
  }
  .p-race__detail__table .RaceList_Main_Box .Race_PredictListName {
    width: 15.9rem;
  }
  .p-race__detail__table .RaceList_Main_Box .Race_PredictListName:nth-child(1) {
    grid-column: 1/2;
    grid-row: 1/2;
  }
  .p-race__detail__table .RaceList_Main_Box .Race_PredictListName:nth-child(2) {
    grid-column: 1/2;
    grid-row: 2/3;
  }
  .p-race__detail__table .RaceList_Main_Box .Race_PredictListName:nth-child(3) {
    grid-column: 1/2;
    grid-row: 3/4;
  }
  .p-race__detail__table .RaceList_Main_Box .Race_PredictListName:nth-child(4) {
    grid-column: 2/3;
    grid-row: 1/2;
  }
  .p-race__detail__table .RaceList_Main_Box .Race_PredictListName:nth-child(4)::before {
    content: "";
    display: block;
    width: 1px;
    height: 5.6rem;
    background: #D9D9D9;
    position: absolute;
    left: -1rem;
    top: 0;
  }
  .p-race__detail__table .RaceList_Main_Box .Race_PredictListName:nth-child(5) {
    grid-column: 2/3;
    grid-row: 2/3;
  }
  .p-race__detail__table .RaceList_Main_Box .Race_DetailBtn {
    margin-top: 0;
    padding: 0;
  }
  .p-race__banner {
    margin: 4.8rem auto 0;
    width: 60rem;
  }
}
@media (min-width: 1000px) {
  .p-race__detail__table .RaceList_Main_Box .RaceList_ItemExtra {
    display: grid;
    grid-template-columns: max-content 9.4rem;
  }
  .p-race__detail__table .RaceList_Main_Box .Race_DetailBtn {
    flex-direction: column;
    width: 100%;
    height: 100%;
    margin-top: 0;
  }
  .p-race__detail__table .RaceList_Main_Box .Race_DetailBtn::after {
    -webkit-mask-image: url("../../img/icon_circle-arrow.svg");
            mask-image: url("../../img/icon_circle-arrow.svg");
    width: 2.2rem;
  }
}
@media (any-hover: hover) {
  .p-race__detail__table .RaceList_Main_Box a:hover .Race_DetailBtn::after {
    translate: 0.2rem 0;
  }
}
.p-race__detail__table .RaceTopRaceMenuWrap .RaceList li.is-hit .RaceList_Main_Box a {
  background: #fff2f7;
}

.p-race__detail__table .RaceTopRaceMenuWrap .RaceList li.is-miss .RaceList_Main_Box a {
  background: #fff;
}

.p-race__detail__table .RaceTopRaceMenuWrap .RaceList li.is-hit-unfixed .RaceList_Main_Box a {
  background: #fff;
}

.p-race__detail__table .Race_PredictHitImage {
  display: block;
  width: 9.2rem;
  max-width: 100%;
  height: auto;
}

.p-race__detail__table .ai-race-list-empty {
  padding: 3.2rem 2rem;
  text-align: center;
  color: #364D9D;
  font-weight: 700;
  background: #fff;
  border: 1px solid #AFAFAF;
  border-top: none;
}
