@charset "UTF-8";
/* ///////////////
ページ毎編集
/////////////// */
/* ///// ログイン後index ///// */
/* ///// 今週の重賞予想 ///// */
body.thisweek-grade-data .data-sect {
  padding: 0;
  border: none;
}
body.thisweek-grade-data .data-sect .applicable {
  background-color: var(--color-sub-accent);
}
body.thisweek-grade-data .data-sect .applicable * {
  display: inline-block;
}
body.thisweek-grade-data .data-sect .applicable dt,
body.thisweek-grade-data .data-sect .applicable dd {
  color: #fff;
}
/* ///// サイトランキング ///// */
body.site-ranking main .ranking-headline li {
  position: relative;
  text-align: center;
}
body.site-ranking main .ranking-headline li .icon {
  display: block;
  position: absolute;
}
body.site-ranking main .ranking-headline li h3 {
  line-height: 1;
}
body.site-ranking main .ranking-headline li .eval {
  display: flex;
  justify-content: center;
  align-items: center;
}
body.site-ranking main .ranking-headline li .eval .star {
  margin: 0;
  display: flex;
  align-items: center;
}
body.site-ranking main .ranking-headline li .eval .grading {
  color: var(--color-accent);
  line-height: 1;
}
body.site-ranking main .ranking-headline li .ranking-result .amount time {
  display: block;
  color: #000;
}
body.site-ranking main .ranking-headline li .common-btn {
  width: 100%;
}
body.site-ranking main .ranking-headline .first .ranking-result dt {
  background-color: rgba(201, 154, 69, 0.6);
}
body.site-ranking main .ranking-headline .second .ranking-result dt {
  background-color: rgba(0, 0, 0, 0.1);
}
body.site-ranking main .ranking-headline .third .ranking-result dt {
  background-color: rgba(170, 110, 85, 0.4);
}
body.site-ranking main .ranking-detail li .site-prof .eval {
  display: flex;
  align-items: center;
}
body.site-ranking main .ranking-detail li .site-prof .eval .star {
  display: flex;
  align-items: center;
  position: relative;
}
body.site-ranking main .ranking-detail li .site-prof .eval .star img {
  width: auto;
  height: 25px;
  object-fit: contain;
}
body.site-ranking main .ranking-detail li .site-prof .eval .grading {
  color: var(--color-accent);
  line-height: 1;
}
body.site-ranking main .ranking-detail li .site-prof .text {
  text-align: center;
}
body.site-ranking main .ranking-detail li .banner {
  display: block;
}
body.site-ranking main .ranking-detail li .result-detail {
  display: flex;
  flex-wrap: wrap;
}
body.site-ranking main .ranking-detail li .result-detail .common-caption {
  width: 100%;
}
body.site-ranking main .ranking-detail li .result-detail figure {
  display: flex;
  align-items: center;
  justify-content: center;
}
body.site-ranking main .ranking-detail li .result-detail > div {
  flex: 1;
}
body.site-ranking main .ranking-detail li .result-detail > div h4 {
  font-weight: 900;
}
body.site-ranking main .ranking-detail li .result-detail > div h4 time {
  display: block;
}
body.site-ranking main .ranking-detail li .result-detail > div .result-detail-list dt {
  border-top: 2px dotted;
  border-bottom: 2px dotted;
  text-align: center;
}
body.site-ranking main .ranking-detail li .result-detail > div .result-detail-list dd {
  text-align: center;
  /* 投資金額 */
  /* 払戻金額 */
}
body.site-ranking main .ranking-detail li .result-detail > div .result-detail-list dd.result-num ol {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
}
body.site-ranking main .ranking-detail li .result-detail > div .result-detail-list dd.result-num ol > li {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1 / 1;
  font-weight: 900;
  position: relative;
}
body.site-ranking main .ranking-detail li .result-detail > div .result-detail-list dd.result-num ol > li::after {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-style: solid;
  border-color: transparent transparent transparent #000;
}
body.site-ranking main .ranking-detail li .result-detail > div .result-detail-list dd.result-num ol > li:last-child {
  margin-right: 0;
}
body.site-ranking main .ranking-detail li .result-detail > div .result-detail-list dd.result-num ol > li:last-child::after {
  display: none;
}
body.site-ranking main .ranking-detail li .result-detail > div .result-detail-list dd.bet-type {
  line-height: 1;
}
body.site-ranking main .ranking-detail li .result-detail > div .result-detail-list dd.amount {
  line-height: 1;
}
body.site-ranking main .ranking-detail .first .site-prof .text {
  border-color: #8c5c05;
}
body.site-ranking main .ranking-detail .first h3 {
  background-color: rgba(201, 154, 69, 0.6);
  color: #000;
}
body.site-ranking main .ranking-detail .first .result-detail-list dt {
  color: #8c5c05;
}
body.site-ranking main .ranking-detail .second .site-prof .text {
  border-color: #666;
}
body.site-ranking main .ranking-detail .second h3 {
  background-color: rgba(0, 0, 0, 0.1);
  color: #000;
}
body.site-ranking main .ranking-detail .second .result-detail-list dt {
  color: #666;
}
body.site-ranking main .ranking-detail .third .site-prof .text {
  border-color: #601f04;
}
body.site-ranking main .ranking-detail .third h3 {
  background-color: rgba(170, 110, 85, 0.4);
  color: #000;
}
body.site-ranking main .ranking-detail .third .result-detail-list dt {
  color: #601f04;
}
body.site-ranking main .first {
  background: linear-gradient(45deg, #fff3c4 0%, #f4d48a 45%, #dcb360 80%, #c99a45 100%);
  border: 1px solid #c99a45;
}
body.site-ranking main .second {
  background: linear-gradient(45deg, #f2f2f2 0%, #f0f4f8 45%, #dce4eb 80%, #c2cbd4 100%);
  border: 1px solid #c2cbd4;
}
body.site-ranking main .third {
  background: linear-gradient(45deg, #f7dcd1 0%, #e6b49e 45%, #c88f77 80%, #aa6e55 100%);
  border: 1px solid #aa6e55;
}
/* ///// 無料予想詳細 ///// */
body.free-predictions-detail .racecard-sect {
  align-items: center;
}
body.free-predictions-detail .racecard-sect .race-header {
  display: flex;
  align-items: center;
}
body.free-predictions-detail .racecard-sect .race-header .num {
  background-color: var(--color-key);
}
body.free-predictions-detail .racecard-sect .race-header .race-detail {
  text-align: left;
  justify-self: start;
}
body.free-predictions-detail .racecard-sect .race-header .race-detail .race-detail {
  color: #666;
}
body.free-predictions-detail .bet-list-sect .bet-list {
  display: flex;
}
body.free-predictions-detail .bet-list-sect .bet-list li {
  border: 2px solid var(--color-border);
  flex: 1;
}
body.free-predictions-detail .bet-list-sect .bet-list li h3 {
  border-bottom: 2px solid var(--color-border);
  color: var(--color-key);
}
body.free-predictions-detail .payouts-sect table {
  border: 2px solid var(--color-border);
}
body.free-predictions-detail .payouts-sect table th {
  background-color: #f2f2f2;
  color: #666;
}
body.free-predictions-detail .payouts-sect table tr.no-border td {
  border: none;
  border-right: 2px solid var(--color-border);
}
body.free-predictions-detail .payouts-sect .result-table .horse-name,
body.free-predictions-detail .payouts-sect .result-table .jockey {
  text-align: left;
}
body.free-predictions-detail .payouts-sect .payout-table1,
body.free-predictions-detail .payouts-sect .payout-table2 {
  width: 100%;
}
/* ///// DB重賞データ ///// */
body.db-grade .content-sect .content-wrap h3 {
  display: inline-flex;
  align-items: center;
}
body.db-grade .content-sect .content-wrap .common-list li a {
  position: relative;
  display: flex;
  align-items: center;
}
body.db-grade .content-sect .content-wrap .common-list li a::after {
  content: "";
  position: absolute;
  transform: translateY(-50%) rotate(45deg);
  border-top: 2px solid #000;
  border-right: 2px solid #000;
}
/* ///// DBコースデータ ///// */
body.db-course .content-sect .content-wrap {
  border: 2px solid var(--color-border);
}
body.db-course .content-sect .content-wrap .common-list li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  line-height: 1.2;
}
body.db-course .content-sect .content-wrap .common-list li h3 {
  color: var(--color-key);
}
body.db-course .content-sect .content-wrap .common-list li .course-detail li {
  padding: 0;
  border: none;
  display: inline-block;
}
body.db-course .content-sect .content-wrap .common-list li .course-detail li:hover {
  color: var(--color-key);
}
/* ///// DB馬検索 ///// */
body.db-horse .content-sect .content-wrap {
  border: 2px solid var(--color-border);
}
body.db-horse .content-sect .content-wrap h2 {
  color: var(--color-key);
}
body.db-horse .content-sect .content-wrap .text.error {
  color: #f00;
}
body.db-horse .content-sect .content-wrap .common-caption.framed {
  margin-bottom: 0;
}
body.db-horse .content-sect .content-wrap .common-list li a {
  display: block;
}
/* ///// DB騎手検索 ///// */
body.db-jockey .content-sect .content-wrap {
  border: 2px solid var(--color-border);
}
body.db-jockey .content-sect .content-wrap h2 {
  color: var(--color-key);
}
body.db-jockey .content-sect .content-wrap .kana-nav {
  display: flex;
}
body.db-jockey .content-sect .content-wrap .kana-nav li {
  flex: 1;
  border: 2px solid var(--color-border);
  border-radius: 100vmax;
}
body.db-jockey .content-sect .content-wrap .kana-nav li a {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
}
body.db-jockey .content-sect .content-wrap .kana-nav .visit {
  background-color: var(--color-key);
  border-color: var(--color-key);
  color: #fff;
}
body.db-jockey .content-sect .content-wrap .text.error {
  color: #f00;
}
body.db-jockey .content-sect .content-wrap .common-caption.framed {
  margin-bottom: 0;
}
body.db-jockey .content-sect .content-wrap .common-list li a {
  display: block;
}
/* ///// みんなの重賞予想 ///// */
body.participatory-vote .content-sect h4 {
  color: var(--color-key);
  line-height: 1;
}
body.participatory-vote .content-sect .text strong {
  color: var(--color-key);
}
body.participatory-vote .content-sect .odds-table {
  border: 2px solid var(--color-border);
  /* セル共通設定 */
  /* ヘッダー設定 */
}
body.participatory-vote .content-sect .odds-table th,
body.participatory-vote .content-sect .odds-table td {
  border: 2px solid var(--color-border);
  text-align: center;
  box-sizing: border-box;
}
body.participatory-vote .content-sect .odds-table th {
  background-color: #f2f2f2;
  color: #333;
  text-align: center;
}
body.participatory-vote .content-sect .odds-table .win {
  background-color: var(--color-accent);
  color: #fff;
}
body.participatory-vote .content-sect .odds-table .col-name {
  text-align: left;
}
body.participatory-vote .content-sect .odds-table .col-name a {
  text-decoration: none;
}
body.participatory-vote .content-sect .odds-table th.col-name {
  text-align: center;
}
body.participatory-vote .content-sect .odds-table .col-select {
  padding: 0;
}
body.participatory-vote .content-sect .odds-table .col-select .radio-label {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  cursor: pointer;
}
body.participatory-vote .content-sect .odds-table .col-select .radio-label input[type="radio"] {
  position: absolute;
  opacity: 0;
  cursor: pointer;
  width: 0;
  height: 0;
  /* 選択時のデザイン */
}
body.participatory-vote .content-sect .odds-table .col-select .radio-label input[type="radio"]:checked + .custom-radio {
  border-color: #43a047;
  background-color: #e8f5e9;
}
body.participatory-vote .content-sect .odds-table .col-select .radio-label input[type="radio"]:checked + .custom-radio::after {
  display: block;
}
body.participatory-vote .content-sect .odds-table .col-select .radio-label .custom-radio {
  position: relative;
  background-color: #f8f9fa;
  border: 2.5px solid #a0aab2;
  border-radius: 50%;
  box-sizing: border-box;
  transition: all 0.2s ease;
  /* 中心の丸ポチの初期設定 */
}
body.participatory-vote .content-sect .odds-table .col-select .radio-label .custom-radio::after {
  content: "";
  position: absolute;
  display: none;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background-color: #43a047;
  /* 中心ポチの色 */
}
body.participatory-vote .content-sect .odds-table .col-odds {
  text-align: center;
  color: #333;
}
body.participatory-vote .content-sect .odds-table .col-odds.odds-single {
  color: #d32f2f;
}
body.participatory-vote .vote-sect .memo {
  color: var(--color-accent);
}
body.participatory-vote .vote-result h4 {
  color: var(--color-accent);
}
/* ///// クイズコンテンツ ///// */
body.participatory-quiz .content-sect h3 {
  border-bottom: 2px dotted var(--color-border);
}
body.participatory-quiz .content-sect h3.result {
  color: var(--color-key);
  line-height: 1;
}
body.participatory-quiz .content-sect .text .answer1 {
  color: var(--color-key);
}
body.participatory-quiz .content-sect ol {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  counter-reset: quiz-counter;
}
body.participatory-quiz .content-sect ol li {
  counter-increment: quiz-counter;
}
body.participatory-quiz .content-sect ol li label {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  width: 100%;
  border: 2px solid var(--color-border);
  border-radius: 100vmax;
  background: linear-gradient(to bottom, #ffffff 0%, #e0e0e0 100%);
  cursor: pointer;
  text-align: center;
  transition: transform 0.1s, box-shadow 0.1s, background 0.1s;
  /* ラジオボタン本体は隠す */
  /* 左端の英字丸アイコン */
  /* テキスト部分 */
}
body.participatory-quiz .content-sect ol li label:hover {
  background: linear-gradient(to bottom, #f9f9f9 0%, #d8d8d8 100%);
  color: var(--color-key);
}
body.participatory-quiz .content-sect ol li label:active {
  transform: translateY(2px);
  box-shadow: 0 2px 3px rgba(0, 0, 0, 0.15);
}
body.participatory-quiz .content-sect ol li label input[type="radio"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
body.participatory-quiz .content-sect ol li label .quiz-option-letter {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  background-color: var(--color-key);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: inset 0 -2px 4px rgba(0, 0, 0, 0.2);
  pointer-events: none;
}
body.participatory-quiz .content-sect ol li label .quiz-option-text {
  word-break: break-word;
}
/* ///// ゲームコンテンツ ///// */
body.participatory-game main {
  background: #000 url("../img/slot/contents-bg.png") no-repeat top center / 100% auto;
}
body.participatory-game main h1 {
  margin: 0 auto;
}
body.participatory-game main h2 {
  width: fit-content;
  /* 中身（画像）の幅に合わせる */
  text-align: center;
}
body.participatory-game main h2 img {
  animation: moveUpAndBack 0.5s ease-in-out infinite alternate;
}
@keyframes moveUpAndBack {
  0% {
    transform: translateY(0);
    /* 元の位置 */
  }
}
body.participatory-game main .cooldown-message .text {
  text-shadow: 2px 2px 0px rgba(0, 0, 0, 0.9);
  color: #fff;
}
body.participatory-game main .prize-result h3 {
  color: #ff71ce;
  font-weight: 900;
}
body.participatory-game main .prize-result .text {
  color: #fff;
}
body.participatory-game main .payout-table {
  background: #000;
  background-image: linear-gradient(#000, #000), linear-gradient(90deg, #ff71ce, #ffffff, #01cdfe);
  background-origin: border-box;
  background-clip: padding-box, border-box;
  color: #fff;
  /* リスト行（dd）の設定 */
}
body.participatory-game main .payout-table > dt {
  font-weight: 900;
  text-align: center;
  /* 下部のグラデーション下線 */
  border-bottom: 3px solid;
  border-image: linear-gradient(90deg, #ff71ce, #ffffff, #01cdfe) 1;
  /* テキストのグラデーション色（非対応ブラウザ考慮でフォールバックも可能） */
  background: linear-gradient(90deg, #ff71ce, #ffffff, #01cdfe);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
body.participatory-game main .payout-table > dd {
  display: flex;
  align-items: center;
  /* 画像のサイズと揃え */
}
body.participatory-game main .payout-table > dd img {
  display: block;
  height: auto;
  flex-shrink: 0;
}
body.participatory-game main .contents-list,
body.participatory-game main .site-ranking-sect {
  margin: 0 auto;
}
body.participatory-game main > :not(:last-child) {
  margin-bottom: 0;
}
/* ///// 競走馬詳細 ///// */
body.horse-detail main h1 {
  text-align: left;
}
body.horse-detail main table th,
body.horse-detail main table td {
  border: 2px solid var(--color-border);
}
body.horse-detail main .horse-profile-table {
  width: 100%;
  color: #333;
}
body.horse-detail main .horse-profile-table tr th {
  background-color: #f2f2f2;
  text-align: center;
  white-space: nowrap;
}
body.horse-detail main .horse-profile-table tr td {
  text-align: left;
}
body.horse-detail main .pedigree-table {
  width: 100%;
  border-collapse: separate;
  background-color: #fff;
  /* 列ごとの幅比率 */
}
body.horse-detail main .pedigree-table td {
  vertical-align: middle;
  box-sizing: border-box;
  border: none;
}
body.horse-detail main .pedigree-table td.male {
  background-color: #d8f1ff;
  color: #1a4b9c;
}
body.horse-detail main .pedigree-table td.female {
  background-color: #fddcd4;
  color: #9c2e1a;
}
body.horse-detail main .pedigree-table tr td:first-child {
  width: 33%;
}
body.horse-detail main .pedigree-table tr td:nth-child(2) {
  width: 33%;
}
body.horse-detail main .pedigree-table tr td:last-child {
  width: 34%;
}
body.horse-detail main .race-history-wrapper {
  width: 100%;
  overflow-x: auto;
}
body.horse-detail main .race-history-wrapper .race-history-table {
  width: 100%;
  color: #333;
  white-space: nowrap;
  text-align: center;
}
body.horse-detail main .race-history-wrapper .race-history-table th,
body.horse-detail main .race-history-wrapper .race-history-table td {
  border: 2px solid var(--color-border);
  vertical-align: middle;
}
body.horse-detail main .race-history-wrapper .race-history-table thead th {
  background-color: #f2f2f2;
  color: #000;
}
body.horse-detail main .race-history-wrapper .race-history-table tbody {
  /* レース名・勝ち馬は左寄せ */
}
body.horse-detail main .race-history-wrapper .race-history-table tbody a {
  color: #0033cc;
}
body.horse-detail main .race-history-wrapper .race-history-table tbody .race-name,
body.horse-detail main .race-history-wrapper .race-history-table tbody td:last-child {
  text-align: left;
}
body.horse-detail main .race-history-wrapper .race-history-table tbody .first {
  background-color: #ffd2d2;
}
body.horse-detail main .race-history-wrapper .race-history-table tbody .second {
  background-color: #d3e5ff;
}
body.horse-detail main .race-history-wrapper .race-history-table tbody .third {
  background-color: #d2fdd2;
}
/* ///// 騎手詳細 ///// */
body.jockey-detail main h1 {
  text-align: left;
}
body.jockey-detail main .jockey-profile-table {
  width: 100%;
}
body.jockey-detail main .jockey-profile-table th,
body.jockey-detail main .jockey-profile-table td {
  border: 2px solid var(--color-border);
  vertical-align: middle;
}
body.jockey-detail main .jockey-profile-table th {
  background-color: #f2f2f2;
  text-align: center;
  white-space: nowrap;
}
body.jockey-detail main .jockey-profile-table td {
  background-color: #fff;
  text-align: left;
}
body.jockey-detail main .jockey-profile-table td time {
  display: block;
}
body.jockey-detail main .yearly-record-wrapper {
  width: 100%;
  overflow-x: auto;
}
body.jockey-detail main .yearly-record-wrapper .yearly-record-table {
  width: 100%;
  text-align: center;
  white-space: nowrap;
}
body.jockey-detail main .yearly-record-wrapper .yearly-record-table th,
body.jockey-detail main .yearly-record-wrapper .yearly-record-table td {
  border: 2px solid #ccc;
  vertical-align: middle;
}
body.jockey-detail main .yearly-record-wrapper .yearly-record-table th {
  background-color: #f2f2f2;
}
body.jockey-detail main .yearly-record-wrapper .yearly-record-table td a {
  text-decoration: none;
}
body.jockey-detail main .yearly-record-wrapper .yearly-record-table td a:hover {
  text-decoration: underline;
}
body.jockey-detail main .yearly-record-wrapper .yearly-record-table tr.is-current td {
  background-color: var(--color-key-pale);
}
/* ///// 初心者コンテンツ ///// */
body.beginner-about main .common-caption,
body.beginner-howto main .common-caption {
  background-color: #234a41;
}
body.beginner-about main .intro h2,
body.beginner-howto main .intro h2 {
  color: var(--color-key);
  font-weight: 900;
}
body.beginner-about main ol li figure img,
body.beginner-howto main ol li figure img {
  border: 1px solid var(--color-border);
}
body.beginner-about main .content-sect .intro {
  margin-bottom: 2em;
}
body.beginner-about main .content-sect .intro img {
  width: 86%;
  margin: 0 auto;
}
body.beginner-about main .content-sect ol {
  display: flex;
  flex-direction: column;
  gap: 1em;
  margin: 1em 0;
}
body.beginner-about main .content-sect ol li {
  background: #f5f5f5;
  padding: 1.6em 0.8em;
  border-radius: 0.6em;
  margin: 0!important;
}
body.beginner-about main .content-sect ol li img {
  width: 86%;
  margin: 1em auto 0;
}
body.beginner-about main .content-sect ol li .common-caption {
  background: unset;
  color: #165318;
  font-weight: 900;
  padding: 0;
  /* border-bottom:2px solid; */
  /* width:fit-content; */
  margin: 0 auto 1em;
}
body.beginner-guide main {
  background-color: #f2f7ef;
}
body.beginner-guide main h1 img {
  border-radius: 10px 10px 0 0;
}
body.beginner-guide main .summary a {
  display: block;
  margin: 0 auto;
}
body.beginner-guide main .summary a:hover {
  opacity: 0.5;
}
body.beginner-guide main .banner-list {
  margin: 0 auto;
}
/* ///// チャット ///// */
body.chat .fixed-nav {
  bottom: 20vw;
}
body.chat .sendform {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  position: fixed;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  z-index: 5;
  /* deco */
  background-color: var(--color-key);
}
body.chat .sendform label {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.2);
  cursor: pointer;
}
body.chat .sendform label input {
  display: none;
}
body.chat .sendform label img {
  object-fit: contain;
  filter: brightness(0) invert(1);
  cursor: pointer;
}
body.chat .sendform .textfield {
  align-self: stretch;
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
}
body.chat .sendform .textfield textarea,
body.chat .sendform .textfield input {
  border: none;
  width: 100%;
  height: 100%;
  /* deco */
  background-color: #fff;
}
body.chat .sendform .textfield textarea {
  line-height: 1.5;
  resize: none;
  overflow-y: auto;
}
body.chat .sendform .send-btn {
  flex: 0 0 auto;
  margin: 0;
}
body.chat .sendform .send-btn button {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: var(--color-accent);
}
body.chat .sendform .send-btn button img {
  width: 80%;
  height: 80%;
  object-fit: contain;
}
/* ///// メッセージボックス ///// */
body.msg-box .msg-tag li {
  display: inline-block;
  /* deco */
  border: 2px solid var(--color-border);
  border-radius: 100vmax;
  color: #666;
}
body.msg-box .msg-tag li a {
  display: block;
  line-height: 1;
}
body.msg-box .msg-tag li span {
  color: var(--color-key);
  line-height: 1;
}
body.msg-box .msg-detail,
body.msg-box ul.msg-list {
  text-align: left;
}
body.msg-box .msg-detail li,
body.msg-box ul.msg-list li {
  border: 2px solid var(--color-border);
  border-radius: 10px;
}
body.msg-box .msg-detail a,
body.msg-box ul.msg-list a {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
}
body.msg-box .msg-detail .head,
body.msg-box ul.msg-list .head {
  display: flex;
  align-items: center;
  border-bottom: 2px dotted;
}
body.msg-box .msg-detail .head .status-tag,
body.msg-box ul.msg-list .head .status-tag {
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  display: grid;
  place-items: center;
  white-space: nowrap;
  /* deco */
  color: #fff;
}
body.msg-box .msg-detail .head h2,
body.msg-box ul.msg-list .head h2 {
  /* deco */
  font-weight: inherit;
}
body.msg-box .msg-detail time,
body.msg-box ul.msg-list time {
  display: block;
  /* deco */
  color: #666;
  font-weight: 600;
}
body.msg-box div.msg-detail {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  text-align: left;
}
body.msg-box div.msg-detail .head {
  display: flex;
  align-items: center;
  /* deco */
  border-bottom: 2px dotted;
}
body.msg-box div.msg-detail time {
  display: block;
  /* deco */
  color: #666;
}
body.msg-box .msg-detail.unread {
  border-color: var(--color-key);
}
body.msg-box .msg-detail.unread .status-tag {
  /* deco */
  background: var(--color-key);
}
body.msg-box .msg-detail.read .status-tag {
  /* deco */
  background: #999;
}
body.msg-box .msg-detail.read * {
  color: #999;
}
body.msg-box .msg-detail.sent .status-tag {
  /* deco */
  background: #666;
}
body.msg-box .form-block .btn-area button {
  width: 100%;
}
/* ///// ログインページ ///// */
body.login-page .form-block dt {
  color: var(--color-key);
}
/* ///// パスワード忘れ ///// */
body.forget .form-block {
  border-top: 1px solid var(--color-border);
}
body.forget .form-block dt {
  color: var(--color-key);
}
/* ///// 会員登録 ///// */
body.regist .form-block dt {
  color: var(--color-key);
  text-align: center;
}
body.regist .form-block .errormsg {
  text-align: center;
}
body.regist .caution {
  /* deco */
  border: 2px solid var(--color-accent);
}
body.regist .caution dt {
  /* deco */
  background-color: var(--color-accent);
  color: #fff;
}
body.regist .caution dd {
  /* deco */
  color: var(--color-accent);
}
body.regist .user-acount {
  display: inline-block;
  border: 2px solid var(--color-key);
}
body.regist .user-acount li {
  /* deco */
  color: var(--color-key);
}
/* ///// LINEログイン ///// */
body.line-login main .content-sect form .text input[type="checkbox"] {
  cursor: pointer;
  transform: scale(1.1);
  appearance: auto;
}
body.line-login main .content-sect ul {
  list-style: disc inside;
  border: 2px solid var(--color-border);
  text-align: left;
}
/* ///// PC個別 ///// */
@media screen and (min-width: 751px) {
  /* ///// ログイン後index ///// */
  body.index .grade-race .grade-race-list {
    display: flex;
    gap: var(--inner-smgap-wide);
  }
  body.index .grade-race .grade-race-list li {
    display: flex;
    border: 2px solid var(--color-border);
    width: calc((100% - 10px * 3) / 4);
    border-radius: 5px;
  }
  body.index .grade-race .grade-race-list li a {
    padding: var(--inner-smgap-wide);
    width: 100%;
    display: block;
  }
  body.index .grade-race .grade-race-list li a time {
    margin-bottom: var(--inner-smgap-wide);
    padding-bottom: var(--inner-smgap-wide);
    display: block;
    font-size: var(--fs-xsm-wide);
    border-bottom: 2px dotted var(--color-border);
    color: #666;
  }
  body.index .grade-race .grade-race-list li a .race-name {
    color: var(--color-key);
  }
  body.index .grade-race .grade-race-list li a span {
    font-size: var(--fs-xsm-wide);
    color: #666;
  }
  body.index .grade-race .grade-race-list li:hover {
    background-color: var(--color-sub-pale);
  }
  body.index .grade-race .grade-race-list li.visit {
    background-color: #eaf8f0;
  }
  body.index .grade-race .grade-race-select {
    display: none;
  }
  body.index .grade-race .graderace-nav {
    display: flex;
    flex-wrap: wrap;
    gap: var(--inner-smgap-wide);
  }
  body.index .grade-race .graderace-nav dt {
    width: 100%;
    margin-bottom: var(--inner-smgap-wide);
  }
  body.index .grade-race .graderace-nav dd {
    flex: 1 0 calc((100% - 20px) / 3);
    max-width: 33.333%;
  }
  body.index .grade-race .graderace-nav dd img {
    width: 100%;
    height: auto;
  }
  body.index .grade-race .race-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-top: var(--inner-gap-wide);
  }
  body.index .grade-race .race-header .num {
    width: 60px;
    background-color: var(--color-key);
  }
  body.index .grade-race .race-header .race-detail {
    text-align: left;
    justify-self: start;
  }
  body.index .grade-race .race-header .race-detail .race-name {
    font-size: var(--fs-lg-wide);
  }
  body.index .grade-race .race-header .race-detail .race-name span {
    margin-right: 5px;
    font-size: var(--fs-md-wide);
  }
  body.index .grade-race .race-header .race-detail .race-name::after {
    margin-left: 5px;
  }
  body.index .grade-race .race-header .race-detail .race-detail {
    margin-top: 4px;
    font-size: var(--fs-xsm-wide);
    color: #666;
  }
  body.index .grade-race .graderace-nav dd:not(:only-of-type) {
    max-width: 100%;
  }
  body.index .grade-race .race-table {
    margin: var(--inner-gap-wide) 0;
  }
  body.index .result-sect .common-btn,
  body.index .site-review-sect .common-btn {
    margin-top: var(--inner-gap-wide);
  }
  /* ///// 今週の重賞予想 ///// */
  body.thisweek-grade-data {
    /* レース見出し。無料予想詳細（body.free-predictions-detail .race-header）に合わせる。 */
  }
  body.thisweek-grade-data .race-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 15px;
  }
  body.thisweek-grade-data .race-header .num {
    width: 60px;
    background-color: var(--color-key);
  }
  body.thisweek-grade-data .race-header .race-detail {
    text-align: left;
  }
  body.thisweek-grade-data .race-header .race-detail .race-name {
    font-size: var(--fs-lg-wide);
  }
  body.thisweek-grade-data .race-header .race-detail .race-name span {
    margin-right: 5px;
    font-size: var(--fs-md-wide);
  }
  body.thisweek-grade-data .race-header .race-detail .race-name::after {
    margin-left: 5px;
  }
  body.thisweek-grade-data .race-header .race-detail .race-detail {
    margin-top: 4px;
    font-size: var(--fs-xsm-wide);
    color: #666;
  }
  body.thisweek-grade-data .data-sect .applicable {
    margin-top: var(--inner-gap-wide);
    padding: 10px 0;
    background-color: var(--color-sub-accent);
  }
  body.thisweek-grade-data .data-sect .applicable dt,
  body.thisweek-grade-data .data-sect .applicable dd {
    margin: 0 5px;
  }
  body.thisweek-grade-data .data-sect .memo {
    margin-top: var(--inner-smgap-wide);
    font-size: var(--fs-xsm-wide);
    text-align: right;
  }
  /* ///// 無料予想詳細 ///// */
  body.free-predictions-detail .racecard-sect {
    gap: 10px;
  }
  body.free-predictions-detail .racecard-sect .race-header {
    gap: 15px;
    margin-bottom: 15px;
  }
  body.free-predictions-detail .racecard-sect .race-header .num {
    width: 60px;
  }
  body.free-predictions-detail .racecard-sect .race-header .race-detail .race-name {
    font-size: var(--fs-lg-wide);
  }
  body.free-predictions-detail .racecard-sect .race-header .race-detail .race-name span {
    margin-right: 5px;
    font-size: var(--fs-md-wide);
  }
  body.free-predictions-detail .racecard-sect .race-header .race-detail .race-name::after {
    margin-left: 5px;
  }
  body.free-predictions-detail .racecard-sect .race-header .race-detail .race-detail {
    margin-top: 4px;
    font-size: var(--fs-xsm-wide);
  }
  body.free-predictions-detail .racecard-sect .memo {
    margin-top: var(--inner-smgap-wide);
    font-size: var(--fs-sm-wide);
  }
  body.free-predictions-detail .bet-list-sect .bet-list {
    gap: var(--inner-smgap-wide);
  }
  body.free-predictions-detail .bet-list-sect .bet-list li {
    padding: var(--inner-smgap-wide);
    border-radius: 10px;
  }
  body.free-predictions-detail .bet-list-sect .bet-list li h3 {
    margin-bottom: var(--inner-smgap-wide);
    padding-bottom: var(--inner-smgap-wide);
    font-size: var(--fs-md-wide);
  }
  body.free-predictions-detail .payouts-sect {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
    align-items: start;
  }
  body.free-predictions-detail .payouts-sect .common-caption {
    margin-bottom: var(--inner-smgap-wide);
  }
  body.free-predictions-detail .payouts-sect .common-caption,
  body.free-predictions-detail .payouts-sect .result-table {
    grid-column: 1 / -1;
    width: 100%;
  }
  body.free-predictions-detail .payouts-sect table th,
  body.free-predictions-detail .payouts-sect table td {
    padding: 3px;
    font-size: var(--fs-sm-wide);
    border: 2px solid var(--color-border);
  }
  body.free-predictions-detail .payouts-sect table th {
    font-size: var(--fs-xsm-wide);
  }
  body.free-predictions-detail .payouts-sect .result-table .rank,
  body.free-predictions-detail .payouts-sect .result-table .gate,
  body.free-predictions-detail .payouts-sect .result-table .gate-num {
    width: 3em;
  }
  body.free-predictions-detail .payouts-sect .result-table .horse-name,
  body.free-predictions-detail .payouts-sect .result-table .jockey {
    padding-left: 5px;
  }
  body.free-predictions-detail .payouts-sect .result-table .horse-name:hover,
  body.free-predictions-detail .payouts-sect .result-table .jockey:hover {
    color: var(--color-key);
  }
  body.free-predictions-detail .payouts-sect .payout-table1,
  body.free-predictions-detail .payouts-sect .payout-table2 {
    margin: 0;
  }
  body.free-predictions-detail .memo {
    font-size: var(--fs-xsm-wide);
  }
  /* ///// DB重賞データ ///// */
  body.db-grade .content-sect .content-wrap {
    padding: var(--inner-gap-wide);
    border: 2px solid var(--color-border);
  }
  body.db-grade .content-sect .content-wrap h3 {
    gap: 6px;
  }
  body.db-grade .content-sect .content-wrap .common-list li a {
    padding: var(--inner-gap-wide) 0;
  }
  body.db-grade .content-sect .content-wrap .common-list li a::after {
    top: 50%;
    right: 16px;
    width: 8px;
    height: 8px;
  }
  body.db-grade .content-sect .content-wrap .common-list li:hover {
    background-color: var(--color-sub-pale);
  }
  /* ///// DBコースデータ ///// */
  body.db-course .content-sect .content-wrap {
    padding: var(--inner-gap-wide);
    padding-top: 0;
  }
  body.db-course .content-sect .content-wrap .common-list li {
    padding: var(--inner-gap-wide) 0;
  }
  body.db-course .content-sect .content-wrap .common-list li h3 {
    font-size: var(--fs-md-wide);
    width: 300px;
  }
  body.db-course .content-sect .content-wrap .common-list li .course-detail {
    width: 500px;
  }
  body.db-course .content-sect .content-wrap .common-list li .course-detail li {
    margin-right: 5px;
    font-size: var(--fs-sm-wide);
  }
  /* ///// DB馬検索 ///// */
  body.db-horse .content-sect .content-wrap {
    padding: var(--inner-gap-wide);
  }
  body.db-horse .content-sect .content-wrap h2 {
    font-size: var(--fs-lg-wide);
  }
  body.db-horse .content-sect .content-wrap .text.error {
    margin-top: var(--inner-gap-wide);
  }
  body.db-horse .content-sect .content-wrap .common-caption.framed {
    margin-top: 40px;
  }
  body.db-horse .content-sect .content-wrap a.common-btn {
    margin-top: var(--inner-gap-wide);
  }
  body.db-horse .content-sect .content-wrap .pagenation {
    margin-top: var(--inner-gap-wide);
  }
  body.db-horse .content-sect .content-wrap .common-list li a {
    padding: var(--inner-gap-wide) 0;
  }
  body.db-horse .content-sect .content-wrap .common-list li:hover {
    background-color: var(--color-sub-pale);
  }
  /* ///// DB騎手検索 ///// */
  body.db-jockey .content-sect .content-wrap {
    padding: var(--inner-gap-wide);
  }
  body.db-jockey .content-sect .content-wrap h2 {
    font-size: var(--fs-lg-wide);
  }
  body.db-jockey .content-sect .content-wrap a.common-btn {
    margin-top: var(--inner-gap-wide);
  }
  body.db-jockey .content-sect .content-wrap .pagenation {
    margin-top: var(--inner-gap-wide);
  }
  body.db-jockey .content-sect .content-wrap .form-block {
    margin-bottom: 30px;
  }
  body.db-jockey .content-sect .content-wrap .kana-nav {
    gap: 5px;
  }
  body.db-jockey .content-sect .content-wrap .kana-nav li:hover {
    background-color: var(--color-key);
    border-color: var(--color-key);
    color: #fff;
  }
  body.db-jockey .content-sect .content-wrap .text.error {
    margin-top: var(--inner-gap-wide);
  }
  body.db-jockey .content-sect .content-wrap .common-caption.framed {
    margin-top: var(--inner-gap-wide);
  }
  body.db-jockey .content-sect .content-wrap .common-list li a {
    padding: var(--inner-gap-wide) 0;
  }
  body.db-jockey .content-sect .content-wrap .common-list li:hover {
    background-color: var(--color-sub-pale);
  }
  /* ///// 競馬ツール ///// */
  body.betting-tool .text.narrow {
    display: none;
  }
  body.betting-tool .fm-calc .calc-table {
    width: 100%;
    font-size: var(--fs-sm-wide);
    text-align: center;
  }
  body.betting-tool .fm-calc .calc-table th,
  body.betting-tool .fm-calc .calc-table td {
    border: 2px solid var(--color-border);
    padding: 5px;
    white-space: nowrap;
  }
  body.betting-tool .fm-calc .calc-table thead th {
    background-color: #f2f2f2;
    color: #666;
    font-weight: bold;
    width: 4.4%;
  }
  body.betting-tool .fm-calc .calc-table thead th.table-num {
    width: 15%;
  }
  body.betting-tool .fm-calc .calc-table tbody .row-label {
    background-color: var(--color-key-pale);
    color: var(--color-key);
    text-align: center;
  }
  body.betting-tool .fm-calc .calc-table tbody .row-label.same-gate {
    background-color: var(--color-sub-accent-pale);
    color: var(--color-sub-accent);
  }
  body.betting-tool .fm-calc .calc-table tbody input[type="checkbox"] {
    cursor: pointer;
    transform: scale(1.1);
    appearance: auto;
  }
  body.betting-tool .fm-calc .common-btn {
    margin-top: var(--inner-smgap-wide);
  }
  body.betting-tool .fm-calc .fm-calc-result {
    margin: 20px 0;
    border: 2px solid var(--color-border);
    background-color: #fff;
  }
  body.betting-tool .fm-calc .fm-calc-result h3 {
    padding: var(--inner-smgap-wide) 0;
    background-color: #f2f2f2;
    border-bottom: 2px solid var(--color-border);
    color: #666;
    font-size: var(--fs-md-wide);
    font-weight: bold;
    text-align: center;
  }
  body.betting-tool .fm-calc .fm-calc-result dl {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: var(--inner-gap-wide) 0;
  }
  body.betting-tool .fm-calc .fm-calc-result dl dt {
    display: flex;
    align-items: center;
    font-size: var(--fs-sm-wide);
    /* 1行に収めるためサイズを微調整 */
    color: var(--color-key);
    white-space: nowrap;
  }
  body.betting-tool .fm-calc .fm-calc-result dl dt::after {
    content: "：";
  }
  body.betting-tool .fm-calc .fm-calc-result dl dd {
    display: flex;
    align-items: center;
    gap: 2px;
    margin-right: 20px;
    /* 次の項目との余白 */
    font-size: var(--fs-sm-wide);
    color: #333;
    white-space: nowrap;
    /* 点数表示用のテキストフィールド */
  }
  body.betting-tool .fm-calc .fm-calc-result dl dd:last-child {
    margin-right: 0;
  }
  body.betting-tool .fm-calc .fm-calc-result dl dd input[type="text"] {
    width: 50px;
    /* 幅をコンパクトに固定 */
    border: 2px solid var(--color-border);
    border-radius: 5px;
    background-color: #fff;
    font-size: var(--fs-sm-wide);
    text-align: right;
    /* 数字が見やすいよう右寄せ */
    box-sizing: border-box;
    outline: none;
  }
  body.betting-tool .odds-calc .odds-table {
    width: 100%;
  }
  body.betting-tool .odds-calc .odds-table * {
    font-size: var(--fs-sm-wide);
  }
  body.betting-tool .odds-calc .odds-table th,
  body.betting-tool .odds-calc .odds-table td {
    padding: 3px 0;
    border: 2px solid var(--color-border);
  }
  body.betting-tool .odds-calc .odds-table th {
    background-color: #f2f2f2;
    color: #666;
    font-size: var(--fs-xsm-wide);
  }
  body.betting-tool .odds-calc .odds-table .th-em {
    background-color: var(--color-key-pale);
    color: var(--color-key);
    font-size: var(--fs-sm-wide);
  }
  body.betting-tool .odds-calc .odds-table.box th,
  body.betting-tool .odds-calc .odds-table.trifecta th {
    width: 5%;
  }
  body.betting-tool .odds-calc .odds-table.box .mark-num,
  body.betting-tool .odds-calc .odds-table.trifecta .mark-num {
    width: 15%;
  }
  body.betting-tool .odds-calc .odds-table.trio th {
    width: 6.25%;
  }
  body.betting-tool .odds-calc .odds-table.box,
  body.betting-tool .odds-calc .odds-table.trio {
    margin-bottom: var(--block-gap-wide);
  }
  /* ///// みんなの重賞予想 ///// */
  body.participatory-vote .content-sect h4 {
    margin-bottom: var(--inner-smgap-wide);
    font-size: var(--fs-xlg-wide);
  }
  body.participatory-vote .content-sect .odds-table {
    margin: var(--inner-gap-wide) auto;
    width: 80%;
  }
  body.participatory-vote .content-sect .odds-table th,
  body.participatory-vote .content-sect .odds-table td {
    padding: 10px;
  }
  body.participatory-vote .content-sect .odds-table th {
    font-size: var(--fs-sm-wide);
  }
  body.participatory-vote .content-sect .odds-table .col-pop {
    width: 45px;
  }
  body.participatory-vote .content-sect .odds-table .col-gate {
    width: 38px;
  }
  body.participatory-vote .content-sect .odds-table .col-num {
    width: 45px;
  }
  body.participatory-vote .content-sect .odds-table .col-name {
    text-align: left;
  }
  body.participatory-vote .content-sect .odds-table .col-name a:hover {
    color: var(--color-key);
    text-decoration: underline;
  }
  body.participatory-vote .content-sect .odds-table .col-select {
    width: 52px;
  }
  body.participatory-vote .content-sect .odds-table .col-select .radio-label {
    min-height: 44px;
    /* ホバー時の枠線強調 */
  }
  body.participatory-vote .content-sect .odds-table .col-select .radio-label .custom-radio {
    width: 24px;
    height: 24px;
    /* 中心の丸ポチの初期設定 */
  }
  body.participatory-vote .content-sect .odds-table .col-select .radio-label .custom-radio::after {
    width: 12px;
    height: 12px;
  }
  body.participatory-vote .content-sect .odds-table .col-select .radio-label:hover .custom-radio {
    border-color: #5c6b73;
  }
  body.participatory-vote .content-sect .odds-table .col-odds {
    width: 80px;
  }
  body.participatory-vote .vote-sect .submit {
    margin-bottom: var(--inner-gap-wide);
  }
  body.participatory-vote .vote-sect .memo {
    font-size: var(--fs-sm-wide);
  }
  body.participatory-vote .vote-result h4 {
    margin-top: var(--inner-smgap-wide);
    font-size: var(--fs-lg-wide);
  }
  body.participatory-vote .send-comp h4 {
    margin-top: var(--inner-smgap-wide);
  }
  /* ///// クイズコンテンツ ///// */
  body.participatory-quiz .content-sect h3 {
    padding-bottom: var(--inner-gap-wide);
  }
  body.participatory-quiz .content-sect h3.question {
    font-size: var(--fs-md-wide);
  }
  body.participatory-quiz .content-sect h3.result {
    margin-bottom: var(--inner-gap-wide);
  }
  body.participatory-quiz .content-sect h3.result img {
    display: block;
    margin: 0 auto;
    width: 500px;
    height: auto;
  }
  body.participatory-quiz .content-sect .common-btn {
    margin-top: var(--inner-gap-wide);
  }
  body.participatory-quiz .content-sect .text {
    font-size: var(--fs-md-wide);
  }
  body.participatory-quiz .content-sect ol {
    margin-top: var(--inner-gap-wide);
    gap: var(--inner-smgap-wide);
  }
  body.participatory-quiz .content-sect ol li {
    counter-increment: quiz-counter;
  }
  body.participatory-quiz .content-sect ol li label {
    min-height: 60px;
    padding: 8px 0;
    /* 左側に英字バッジ用の余白を確保 */
    /* 左端の英字丸アイコン */
    /* テキスト部分 */
  }
  body.participatory-quiz .content-sect ol li label .quiz-option-letter {
    left: 8px;
    width: 44px;
    font-size: var(--fs-md-wide);
  }
  body.participatory-quiz .content-sect ol li label .quiz-option-text {
    font-size: var(--fs-md-wide);
  }
  /* ///// ゲームコンテンツ ///// */
  body.participatory-game main {
    padding: 0 0 var(--inner-gap-wide) 0;
  }
  body.participatory-game main h1 {
    width: 740px;
  }
  body.participatory-game main h2 {
    margin: 0 auto var(--inner-gap-wide);
  }
  @keyframes moveUpAndBack {
    100% {
      transform: translateY(-30px);
      /* 上に15px動く */
    }
  }
  body.participatory-game main .prize-result h3 {
    font-size: 2.2rem;
  }
  body.participatory-game main .payout-table {
    border-radius: 16px;
    padding: var(--inner-gap-wide);
    border: 3px solid transparent;
    max-width: 700px;
    margin: 40px auto;
    /* リスト行（dd）の設定 */
  }
  body.participatory-game main .payout-table > dt {
    font-size: var(--fs-lg-wide);
    margin-bottom: 25px;
    padding-bottom: var(--inner-gap-wide);
  }
  body.participatory-game main .payout-table > dd {
    gap: var(--inner-gap-wide);
    margin-bottom: 0 0 15px 0;
    font-size: 1.5rem;
    /* 画像のサイズと揃え */
  }
  body.participatory-game main .payout-table > dd img {
    width: 221px;
  }
  body.participatory-game main .payout-table dd:not(:last-of-type) {
    margin-bottom: var(--inner-gap-wide);
  }
  body.participatory-game main .contents-list,
  body.participatory-game main .site-ranking-sect {
    width: 800px;
  }
  /* ///// 競走馬詳細 ///// */
  body.horse-detail main h1 {
    margin-top: var(--inner-smgap-wide);
    font-size: var(--fs-lg-wide);
  }
  body.horse-detail main h1 span {
    margin-left: 10px;
    font-size: var(--fs-sm-wide);
  }
  body.horse-detail main .horse-profile-table {
    font-size: var(--fs-sm-wide);
  }
  body.horse-detail main .horse-profile-table tr th {
    width: 15%;
    padding: 10px;
  }
  body.horse-detail main .horse-profile-table tr td {
    width: 35%;
    padding: 10px 14px;
  }
  body.horse-detail main .pedigree-table {
    border-spacing: 2px;
    font-size: var(--fs-sm-wide);
  }
  body.horse-detail main .pedigree-table td {
    padding: 8px 12px;
  }
  body.horse-detail main .race-history-wrapper .race-history-table {
    font-size: var(--fs-sm-wide);
  }
  body.horse-detail main .race-history-wrapper .race-history-table th,
  body.horse-detail main .race-history-wrapper .race-history-table td {
    padding: 4px 6px;
    height: 24px;
  }
  body.horse-detail main .race-history-wrapper .race-history-table tbody a:hover {
    text-decoration: underline;
  }
  body.horse-detail main > :not(:last-child) {
    margin-bottom: var(--inner-gap-wide);
  }
  /* ///// 騎手詳細 ///// */
  body.jockey-detail main h1 {
    margin-top: var(--inner-smgap-wide);
    font-size: var(--fs-lg-wide);
  }
  body.jockey-detail main h1 span {
    margin-left: 2px;
    font-size: var(--fs-sm-wide);
  }
  body.jockey-detail main .jockey-profile-table {
    font-size: var(--fs-sm-wide);
    line-height: 1.5;
  }
  body.jockey-detail main .jockey-profile-table th,
  body.jockey-detail main .jockey-profile-table td {
    padding: 5px;
  }
  body.jockey-detail main .jockey-profile-table th {
    width: 14%;
    font-size: var(--fs-xsm-wide);
  }
  body.jockey-detail main .jockey-profile-table td {
    width: 36%;
  }
  body.jockey-detail main .jockey-profile-table td time {
    font-size: var(--fs-xsm-wide);
  }
  body.jockey-detail main .yearly-record-wrapper .yearly-record-table {
    font-size: var(--fs-sm-wide);
  }
  body.jockey-detail main .yearly-record-wrapper .yearly-record-table th,
  body.jockey-detail main .yearly-record-wrapper .yearly-record-table td {
    padding: 5px 0;
  }
  body.jockey-detail main .yearly-record-wrapper .yearly-record-table th {
    font-size: var(--fs-xsm-wide);
  }
  body.jockey-detail main .yearly-record-wrapper .yearly-record-table td a {
    text-decoration: none;
  }
  body.jockey-detail main .yearly-record-wrapper .yearly-record-table td a:hover {
    text-decoration: underline;
  }
  body.jockey-detail main > :not(:last-child) {
    margin-bottom: var(--inner-gap-wide);
  }
  /* ///// 初心者コンテンツ ///// */
  body.beginner-about main .text,
  body.beginner-howto main .text {
    margin-bottom: var(--inner-smgap-wide);
  }
  body.beginner-about main .intro,
  body.beginner-howto main .intro {
    margin-bottom: var(--inner-gap-wide);
  }
  body.beginner-about main .intro h2,
  body.beginner-howto main .intro h2 {
    margin: 0 auto var(--inner-smgap-wide);
  }
  body.beginner-about main ol li:not(:last-of-type),
  body.beginner-howto main ol li:not(:last-of-type) {
    margin-bottom: var(--inner-gap-wide);
  }
  body.beginner-about main .summary,
  body.beginner-howto main .summary {
    margin: var(--inner-gap-wide) auto;
    width: 535px;
  }
  body.beginner-about main .banner-list,
  body.beginner-howto main .banner-list {
    margin-top: 40px;
  }
  body.beginner-about main .intro h2 {
    width: 510px;
  }
  body.beginner-howto main .intro h2 {
    width: 500px;
  }
  body.beginner-guide main {
    padding: 0 0 40px 0;
  }
  body.beginner-guide main img {
    width: 100%;
    height: auto;
  }
  body.beginner-guide main .summary a {
    width: 760px;
  }
  body.beginner-guide main .banner-list {
    width: 760px;
  }
  /* ///// サイトランキング ///// */
  body.site-ranking main h1 {
    margin-bottom: 50px;
  }
  body.site-ranking main .ranking-headline {
    display: flex;
    justify-content: center;
    gap: 20px;
  }
  body.site-ranking main .ranking-headline li {
    padding: var(--inner-smgap-wide);
    padding-top: 0;
    padding-bottom: var(--inner-gap-wide);
    flex: 1 1 0;
    position: relative;
    border-radius: 12px;
  }
  body.site-ranking main .ranking-headline li .icon {
    width: 80px;
    top: -30px;
    left: 50%;
    transform: translateX(-50%);
  }
  body.site-ranking main .ranking-headline li h3 {
    margin: 60px 0 5px;
    font-size: var(--fs-lg-wide);
  }
  body.site-ranking main .ranking-headline li .eval {
    gap: 5px;
    margin-bottom: var(--inner-gap-wide);
  }
  body.site-ranking main .ranking-headline li .eval .star {
    width: 120px;
  }
  body.site-ranking main .ranking-headline li .eval .star img {
    width: 100%;
    height: auto;
  }
  body.site-ranking main .ranking-headline li .eval .grading {
    font-size: var(--fs-md-wide);
  }
  body.site-ranking main .ranking-headline li .ranking-result {
    margin-bottom: var(--inner-smgap-wide);
  }
  body.site-ranking main .ranking-headline li .ranking-result dt {
    margin-bottom: var(--inner-smgap-wide);
    padding: 5px 0;
    font-size: var(--fs-md-wide);
  }
  body.site-ranking main .ranking-headline li .ranking-result dd {
    margin-bottom: var(--inner-smgap-wide);
  }
  body.site-ranking main .ranking-headline li .ranking-result .amount {
    font-size: 1.5rem;
  }
  body.site-ranking main .ranking-headline li .ranking-result .amount time {
    margin-bottom: 5px;
    font-size: var(--fs-xsm-wide);
  }
  body.site-ranking main .ranking-headline li .ranking-result .text {
    font-size: var(--fs-sm-wide);
  }
  body.site-ranking main .ranking-detail li {
    border-radius: 10px;
    padding: var(--inner-gap-wide);
  }
  body.site-ranking main .ranking-detail li .site-prof {
    display: grid;
    grid-template-columns: 1fr max-content minmax(0, auto) 1fr;
    column-gap: 8px;
    align-items: center;
    width: 100%;
  }
  body.site-ranking main .ranking-detail li .site-prof .icon {
    grid-column: 2;
    grid-row: 1 / 3;
    display: flex;
    align-items: center;
    justify-content: flex-end;
  }
  body.site-ranking main .ranking-detail li .site-prof .icon img {
    width: 75px;
    height: auto;
    display: block;
  }
  body.site-ranking main .ranking-detail li .site-prof h2 {
    grid-column: 3;
    grid-row: 1;
    font-size: 1.4rem;
    line-height: 1;
    text-align: left;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
  }
  body.site-ranking main .ranking-detail li .site-prof .eval {
    grid-column: 3;
    grid-row: 2;
    gap: 5px;
  }
  body.site-ranking main .ranking-detail li .site-prof .eval .star {
    top: -3px;
  }
  body.site-ranking main .ranking-detail li .site-prof .eval .star img {
    width: auto;
    height: 25px;
    object-fit: contain;
  }
  body.site-ranking main .ranking-detail li .site-prof .eval .grading {
    font-size: var(--fs-md-wide);
  }
  body.site-ranking main .ranking-detail li .site-prof .text {
    grid-column: 1 / -1;
    width: 100%;
    margin-top: var(--inner-smgap-wide);
    padding-top: var(--inner-smgap-wide);
    border-top: 2px dotted;
    font-size: var(--fs-md-wide);
  }
  body.site-ranking main .ranking-detail li .banner img {
    width: 100%;
    height: auto;
  }
  body.site-ranking main .ranking-detail li .result-detail {
    display: flex;
    flex-wrap: wrap;
  }
  body.site-ranking main .ranking-detail li .result-detail figure {
    width: 350px;
  }
  body.site-ranking main .ranking-detail li .result-detail figure img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: contain;
  }
  body.site-ranking main .ranking-detail li .result-detail > div {
    padding: var(--inner-gap-wide);
  }
  body.site-ranking main .ranking-detail li .result-detail > div h4 {
    margin-bottom: var(--inner-gap-wide);
    font-size: var(--fs-lg-wide);
    line-height: 1.3;
  }
  body.site-ranking main .ranking-detail li .result-detail > div h4 time {
    font-size: var(--fs-xsm-wide);
    margin-bottom: 5px;
  }
  body.site-ranking main .ranking-detail li .result-detail > div .result-detail-list dt {
    margin-bottom: var(--inner-smgap-wide);
    padding: 5px 0;
    font-size: var(--fs-md-wide);
  }
  body.site-ranking main .ranking-detail li .result-detail > div .result-detail-list dd {
    margin-bottom: var(--inner-smgap-wide);
    padding: var(--inner-smgap-wide);
    /* 投資金額 */
    /* 払戻金額 */
  }
  body.site-ranking main .ranking-detail li .result-detail > div .result-detail-list dd.result-num ol > li {
    width: 50px;
    flex: 0 0 50px;
    font-size: var(--fs-lg-wide);
    border-radius: 5px;
    padding: 0;
    margin-right: 30px;
    /* 各正方形の右側に配置する右向き三角 */
  }
  body.site-ranking main .ranking-detail li .result-detail > div .result-detail-list dd.result-num ol > li::after {
    right: -18px;
    border-width: 4px 0 4px 6px;
  }
  body.site-ranking main .ranking-detail li .result-detail > div .result-detail-list dd.bet-type {
    font-size: var(--fs-lg-wide);
  }
  body.site-ranking main .ranking-detail li .result-detail > div .result-detail-list dd.bet-type .amount {
    font-size: 1.6rem;
  }
  body.site-ranking main .ranking-detail li .result-detail > div .result-detail-list dd.amount {
    font-size: 2.5rem;
  }
  body.site-ranking main .ranking-detail li .reason .free-text {
    font-size: var(--fs-md-wide);
    line-height: 1.6;
    padding: 0 4px;
  }
  body.site-ranking main .ranking-detail li > :not(:last-child) {
    margin-bottom: var(--inner-gap-wide);
  }
  body.site-ranking main .ranking-detail > :not(:last-child) {
    margin-bottom: var(--block-gap-wide);
  }
  /* ///// 的中実績 ///// */
  body.result .content-sect .result-list {
    margin: var(--inner-gap-wide) 0;
  }
  /* ///// マイページ ///// */
  body.mypage .mypage-edit > :not(:last-child) {
    margin-bottom: var(--inner-gap-wide);
  }
  body.mypage .form-block .next-status {
    margin-top: var(--inner-gap-wide);
  }
  /* ///// チャット ///// */
  body.chat {
    padding-bottom: 120px;
  }
  body.chat .sendform {
    border-radius: 10px 10px 0 0;
    gap: 14px;
  }
  body.chat .sendform .textfield textarea,
  body.chat .sendform .textfield input {
    border-radius: 3px;
  }
  body.chat .sendform {
    padding: var(--inner-gap-wide);
    width: var(--contents-width-wide);
  }
  body.chat .sendform label {
    width: 60px;
    height: 60px;
  }
  body.chat .sendform .textfield {
    margin: 0;
    width: auto;
  }
  body.chat .sendform .textfield textarea,
  body.chat .sendform .textfield input {
    padding: 5px;
    font-weight: 600;
  }
  body.chat .sendform .send-btn {
    width: 60px;
    height: 60px;
  }
  /* ///// ログインページ ///// */
  body.login-page .text-link a {
    margin: var(--inner-gap-wide) 5px 0 5px;
  }
  /* ///// パスワード忘れ ///// */
  body.forget p.text {
    margin-bottom: var(--inner-gap-wide);
  }
  body.forget .form-block {
    border-top: none;
  }
  body.forget .form-block dd.text {
    font-size: var(--fs-sm-wide);
  }
  /* ///// メッセージボックス ///// */
  body.msg-box .msg-tag li a {
    padding: 5px 15px;
    font-size: var(--fs-sm-wide);
  }
  body.msg-box .msg-tag li a span {
    margin-left: 5px;
  }
  body.msg-box .msg-tag li:hover {
    background-color: var(--color-key-pale);
  }
  body.msg-box .msg-detail a,
  body.msg-box ul.msg-list a {
    padding: var(--inner-gap-wide);
  }
  body.msg-box .msg-detail .head,
  body.msg-box ul.msg-list .head {
    gap: var(--inner-smgap-wide);
    margin-bottom: var(--inner-smgap-wide);
    padding-bottom: var(--inner-smgap-wide);
  }
  body.msg-box .msg-detail .head .status-tag,
  body.msg-box ul.msg-list .head .status-tag {
    width: 45px;
    font-size: var(--fs-sm-wide);
  }
  body.msg-box .msg-detail .head h2,
  body.msg-box ul.msg-list .head h2 {
    font-size: var(--fs-lg-wide);
  }
  body.msg-box .msg-detail time,
  body.msg-box ul.msg-list time {
    font-size: var(--fs-xsm-wide);
    margin-bottom: var(--inner-gap-wide);
  }
  body.msg-box .msg-list li:hover {
    background-color: var(--color-sub-pale);
  }
  body.msg-box .msg-list > :not(:last-child) {
    margin-bottom: var(--inner-gap-wide);
  }
  body.msg-box div.msg-detail {
    gap: 10px;
  }
  body.msg-box div.msg-detail .head {
    gap: 8px;
    padding-bottom: 10px;
  }
  body.msg-box div.msg-detail .head h2 {
    font-size: var(--fs-lg-wide);
  }
  body.msg-box div.msg-detail time {
    font-size: var(--fs-sm-wide);
    margin-bottom: 10px;
  }
  /* ///// 会員登録 ///// */
  body.regist .caution {
    margin-top: var(--inner-gap-wide);
    padding-bottom: var(--inner-smgap-wide);
  }
  body.regist .caution dt {
    margin-bottom: var(--inner-smgap-wide);
    padding: var(--inner-smgap-wide) 0;
    font-size: var(--fs-md-wide);
  }
  body.regist .caution dd {
    font-size: var(--fs-md-wide);
  }
  body.regist .user-acount {
    margin-top: var(--inner-gap-wide);
    padding: var(--inner-smgap-wide);
  }
  body.regist .user-acount li {
    font-size: var(--fs-md-wide);
  }
  /* ///// LINEログイン ///// */
  body.line-login main {
    margin: 50px auto;
  }
  body.line-login main .content-sect form {
    margin-bottom: 40px;
  }
  body.line-login main .content-sect form .text {
    margin-top: var(--inner-gap-wide);
  }
  body.line-login main .content-sect form .text input[type="checkbox"] {
    margin-right: 5px;
  }
  body.line-login main .content-sect ul {
    padding: var(--inner-gap-wide);
  }
  body.line-login main .content-sect ul li {
    font-size: var(--fs-sm-wide);
  }
  body.line-login main .content-sect ul li:not(:last-of-type) {
    margin-bottom: var(--inner-smgap-wide);
  }
}
/* ///// SP個別 ///// */
@media screen and (max-width: 750px) {
  /* ///// ログイン後index ///// */
  body.index {
    /* 的中実績はスマホでは2件まで表示する */
  }
  body.index .grade-race {
    /* 選択中レースの見出し。無料予想詳細（body.free-predictions-detail .race-header）に合わせる。 */
  }
  body.index .grade-race .grade-race-list {
    display: none;
  }
  body.index .grade-race .grade-race-select dt {
    margin-bottom: var(--inner-smgap-narrow);
    font-size: var(--fs-sm-narrow);
    color: var(--color-key);
  }
  body.index .grade-race .grade-race-select dd select {
    padding: 1vw;
    font-size: var(--fs-sm-narrow);
    width: 100%;
    border: 2px solid var(--color-border);
    border-radius: 1vw;
    appearance: auto;
    -webkit-appearance: auto;
  }
  body.index .grade-race .race-header {
    display: flex;
    align-items: center;
    gap: 1vw;
    margin-top: var(--inner-gap-narrow);
  }
  body.index .grade-race .race-header .num {
    font-size: var(--fs-sm-narrow);
    width: 10vw;
    background-color: var(--color-key);
  }
  body.index .grade-race .race-header .race-detail {
    text-align: left;
  }
  body.index .grade-race .race-header .race-detail .race-name {
    font-size: var(--fs-md-narrow);
  }
  body.index .grade-race .race-header .race-detail .race-name span {
    font-size: var(--fs-sm-narrow);
  }
  body.index .grade-race .race-header .race-detail .race-name::after {
    margin-left: 1vw;
  }
  body.index .grade-race .race-header .race-detail .race-detail {
    margin-top: 4px;
    font-size: var(--fs-xsm-narrow);
    color: #666;
  }
  body.index .grade-race .graderace-nav {
    display: flex;
    flex-direction: column;
    gap: var(--inner-gap-narrow);
  }
  body.index .grade-race .graderace-nav dt {
    width: 100%;
    margin-bottom: var(--inner-smgap-narrow);
  }
  body.index .grade-race .graderace-nav dd a {
    display: block;
    width: 100%;
  }
  body.index .grade-race .graderace-nav dd a img {
    width: 100%;
  }
  body.index .grade-race .race-table {
    margin: var(--inner-gap-narrow) 0;
  }
  body.index .result-sect .common-btn,
  body.index .site-review-sect .common-btn {
    margin-top: var(--inner-gap-narrow);
  }
  body.index .result-sect .result-list li:nth-child(n+3) {
    display: none;
  }
  /* ///// 今週の重賞予想 ///// */
  body.thisweek-grade-data {
    /* レース見出し。無料予想詳細（body.free-predictions-detail .race-header）に合わせる。 */
  }
  body.thisweek-grade-data .race-header {
    display: flex;
    align-items: center;
    gap: 1vw;
    margin-bottom: var(--inner-gap-narrow);
  }
  body.thisweek-grade-data .race-header .num {
    font-size: var(--fs-sm-narrow);
    width: 10vw;
    background-color: var(--color-key);
  }
  body.thisweek-grade-data .race-header .race-detail {
    text-align: left;
  }
  body.thisweek-grade-data .race-header .race-detail .race-name {
    font-size: var(--fs-md-narrow);
  }
  body.thisweek-grade-data .race-header .race-detail .race-name span {
    font-size: var(--fs-sm-narrow);
  }
  body.thisweek-grade-data .race-header .race-detail .race-name::after {
    margin-left: 1vw;
  }
  body.thisweek-grade-data .race-header .race-detail .race-detail {
    margin-top: 4px;
    font-size: var(--fs-xsm-narrow);
    color: #666;
  }
  body.thisweek-grade-data .data-sect .applicable {
    margin-top: var(--inner-gap-narrow);
    padding: 1vw;
    background-color: var(--color-sub-accent);
  }
  body.thisweek-grade-data .data-sect .applicable dt,
  body.thisweek-grade-data .data-sect .applicable dd {
    margin: 0 0.5vw;
    font-size: var(--fs-sm-narrow);
    line-height: 1;
  }
  body.thisweek-grade-data .data-sect .memo {
    margin-top: var(--inner-smgap-narrow);
    font-size: var(--fs-xsm-narrow);
    text-align: left;
  }
  /* ///// 無料予想詳細 ///// */
  body.free-predictions-detail .racecard-sect {
    gap: 1vw;
  }
  body.free-predictions-detail .racecard-sect .race-header {
    gap: 1vw;
    margin-bottom: var(--inner-gap-narrow);
  }
  body.free-predictions-detail .racecard-sect .race-header .num {
    font-size: var(--fs-sm-narrow);
    width: 10vw;
  }
  body.free-predictions-detail .racecard-sect .race-header .race-detail .race-name {
    font-size: var(--fs-md-narrow);
  }
  body.free-predictions-detail .racecard-sect .race-header .race-detail .race-name span {
    font-size: var(--fs-sm-narrow);
  }
  body.free-predictions-detail .racecard-sect .race-header .race-detail .race-name::after {
    margin-left: 1vw;
  }
  body.free-predictions-detail .racecard-sect .race-header .race-detail .race-detail {
    margin-top: 4px;
    font-size: var(--fs-xsm-narrow);
  }
  body.free-predictions-detail .racecard-sect .memo {
    margin-top: var(--inner-smgap-narrow);
    font-size: var(--fs-sm-narrow);
  }
  body.free-predictions-detail .bet-list-sect .bet-list {
    gap: var(--inner-smgap-narrow);
  }
  body.free-predictions-detail .bet-list-sect .bet-list li {
    padding: var(--inner-smgap-narrow);
    border-radius: 10px;
  }
  body.free-predictions-detail .bet-list-sect .bet-list li h3 {
    margin-bottom: var(--inner-smgap-narrow);
    padding-bottom: var(--inner-smgap-narrow);
    font-size: var(--fs-xsm-narrow);
  }
  body.free-predictions-detail .bet-list-sect .bet-list li .free-text {
    font-size: var(--fs-sm-narrow);
  }
  body.free-predictions-detail .payouts-sect .common-caption {
    margin-bottom: var(--inner-smgap-narrow);
  }
  body.free-predictions-detail .payouts-sect .common-caption,
  body.free-predictions-detail .payouts-sect .result-table {
    grid-column: 1 / -1;
    width: 100%;
  }
  body.free-predictions-detail .payouts-sect table th,
  body.free-predictions-detail .payouts-sect table td {
    padding: 1vw;
    font-size: var(--fs-xsm-narrow);
    border-top: 2px solid var(--color-border);
    border-right: 2px solid var(--color-border);
    border-left: 2px solid var(--color-border);
  }
  body.free-predictions-detail .payouts-sect table th {
    font-size: var(--fs-xsm-narrow);
  }
  body.free-predictions-detail .payouts-sect .result-table {
    margin-bottom: var(--inner-smgap-narrow);
  }
  body.free-predictions-detail .payouts-sect .result-table .rank,
  body.free-predictions-detail .payouts-sect .result-table .gate,
  body.free-predictions-detail .payouts-sect .result-table .gate-num {
    width: 5vw;
  }
  body.free-predictions-detail .payouts-sect .result-table .horse-name:hover,
  body.free-predictions-detail .payouts-sect .result-table .jockey:hover {
    color: var(--color-key);
  }
  body.free-predictions-detail .payouts-sect .payout-table1 {
    border-bottom: none;
  }
  body.free-predictions-detail .payouts-sect .payout-table1 th,
  body.free-predictions-detail .payouts-sect .payout-table2 th,
  body.free-predictions-detail .payouts-sect .payout-table1 td,
  body.free-predictions-detail .payouts-sect .payout-table2 td {
    font-size: 2.8vw;
  }
  body.free-predictions-detail .payouts-sect .payout-table1 th,
  body.free-predictions-detail .payouts-sect .payout-table2 th {
    width: 22%;
  }
  body.free-predictions-detail .payouts-sect .payout-table1 td,
  body.free-predictions-detail .payouts-sect .payout-table2 td {
    width: 26%;
  }
  body.free-predictions-detail .payouts-sect .payout-table1 .bottom-border td,
  body.free-predictions-detail .payouts-sect .payout-table2 .bottom-border td {
    border-bottom: 2px solid var(--color-border);
  }
  body.free-predictions-detail .memo {
    font-size: var(--fs-xsm-narrow);
  }
  /* ///// DB重賞データ ///// */
  body.db-grade .content-sect .content-wrap {
    padding: var(--inner-gap-narrow);
    border: 2px solid var(--color-border);
  }
  body.db-grade .content-sect .content-wrap h3 {
    font-size: var(--fs-sm-narrow);
    gap: 1.5vw;
  }
  body.db-grade .content-sect .content-wrap .common-list li a {
    padding: var(--inner-gap-narrow) 0;
  }
  body.db-grade .content-sect .content-wrap .common-list li a::after {
    top: 50%;
    right: 2vw;
    width: 1.5vw;
    height: 1.5vw;
  }
  body.db-grade .content-sect .content-wrap .common-list li:hover {
    background-color: var(--color-sub-pale);
  }
  /* ///// DBコースデータ ///// */
  body.db-course .content-sect .content-wrap {
    padding: var(--inner-gap-narrow);
    padding-top: 0;
  }
  body.db-course .content-sect .content-wrap .common-list li {
    padding: var(--inner-gap-narrow) 0;
  }
  body.db-course .content-sect .content-wrap .common-list li h3 {
    font-size: 3.5vw;
    width: 30vw;
  }
  body.db-course .content-sect .content-wrap .common-list li .course-detail {
    width: 68vw;
  }
  body.db-course .content-sect .content-wrap .common-list li .course-detail li {
    margin-right: 1vw;
    font-size: var(--fs-sm-narrow);
  }
  /* ///// DB馬検索 ///// */
  body.db-horse .content-sect .content-wrap {
    padding: var(--inner-gap-narrow);
    padding-bottom: 3vw;
  }
  body.db-horse .content-sect .content-wrap h2 {
    font-size: var(--fs-md-narrow);
  }
  body.db-horse .content-sect .content-wrap .text.error {
    margin-top: var(--inner-gap-narrow);
  }
  body.db-horse .content-sect .content-wrap .common-caption.framed {
    margin-top: 4vw;
  }
  body.db-horse .content-sect .content-wrap .form-block .submit {
    margin-top: 0;
  }
  body.db-horse .content-sect .content-wrap a.common-btn {
    margin-top: var(--inner-gap-narrow);
  }
  body.db-horse .content-sect .content-wrap .pagenation {
    margin-top: var(--inner-gap-narrow);
  }
  body.db-horse .content-sect .content-wrap .common-list li a {
    padding: var(--inner-gap-narrow) 0;
  }
  /* ///// DB騎手検索 ///// */
  body.db-jockey .content-sect .content-wrap {
    padding: var(--inner-gap-narrow);
  }
  body.db-jockey .content-sect .content-wrap h2 {
    font-size: var(--fs-md-narrow);
  }
  body.db-jockey .content-sect .content-wrap a.common-btn {
    margin-top: var(--inner-gap-narrow);
  }
  body.db-jockey .content-sect .content-wrap .pagenation {
    margin-top: var(--inner-gap-narrow);
  }
  body.db-jockey .content-sect .content-wrap .form-block {
    margin-bottom: 4vw;
  }
  body.db-jockey .content-sect .content-wrap .form-block .submit {
    margin-top: 0;
  }
  body.db-jockey .content-sect .content-wrap .kana-nav {
    margin-bottom: var(--inner-gap-narrow);
    gap: 1vw;
  }
  body.db-jockey .content-sect .content-wrap .kana-nav li a {
    font-size: var(--fs-sm-narrow);
  }
  body.db-jockey .content-sect .content-wrap .text.error {
    margin-top: var(--inner-gap-narrow);
  }
  body.db-jockey .content-sect .content-wrap .common-caption.framed {
    margin-top: var(--inner-gap-narrow);
  }
  body.db-jockey .content-sect .content-wrap .common-list li a {
    padding: var(--inner-gap-narrow) 0;
    font-size: 3.5vw;
  }
  body.db-jockey .content-sect .content-wrap .common-list li:hover {
    background-color: var(--color-sub-pale);
  }
  /* ///// 競馬ツール ///// */
  body.betting-tool .odds-calc,
  body.betting-tool .fm-calc {
    display: none;
  }
  /* ///// みんなの重賞予想 ///// */
  body.participatory-vote .content-sect .common-caption.framed {
    font-size: 3.5vw;
  }
  body.participatory-vote .content-sect .common-caption.framed time {
    margin-bottom: 1vw;
    display: block;
    font-size: var(--fs-sm-narrow);
  }
  body.participatory-vote .content-sect h4 {
    margin-bottom: var(--inner-smgap-narrow);
    font-size: 3.5vw;
  }
  body.participatory-vote .content-sect .odds-table {
    margin: var(--inner-gap-narrow) auto;
    width: 100%;
  }
  body.participatory-vote .content-sect .odds-table th,
  body.participatory-vote .content-sect .odds-table td {
    padding: var(--inner-smgap-narrow);
  }
  body.participatory-vote .content-sect .odds-table th {
    font-size: var(--fs-sm-narrow);
  }
  body.participatory-vote .content-sect .odds-table td {
    font-size: var(--fs-sm-narrow);
  }
  body.participatory-vote .content-sect .odds-table .col-pop,
  body.participatory-vote .content-sect .odds-table .col-gate,
  body.participatory-vote .content-sect .odds-table .col-num {
    width: 10%;
  }
  body.participatory-vote .content-sect .odds-table .col-name {
    text-align: left;
  }
  body.participatory-vote .content-sect .odds-table .col-select {
    width: 10%;
  }
  body.participatory-vote .content-sect .odds-table .col-select .radio-label {
    min-height: 44px;
    /* ホバー時の枠線強調 */
  }
  body.participatory-vote .content-sect .odds-table .col-select .radio-label .custom-radio {
    width: 5vw;
    height: 5vw;
    /* 中心の丸ポチの初期設定 */
  }
  body.participatory-vote .content-sect .odds-table .col-select .radio-label .custom-radio::after {
    width: 2.5vw;
    height: 2.5vw;
  }
  body.participatory-vote .content-sect .odds-table .col-select .radio-label:hover .custom-radio {
    border-color: #5c6b73;
  }
  body.participatory-vote .content-sect .odds-table .col-odds {
    width: 15%;
  }
  body.participatory-vote .vote-sect .submit {
    margin-bottom: var(--inner-gap-narrow);
  }
  body.participatory-vote .vote-sect .memo {
    font-size: var(--fs-sm-narrow);
  }
  body.participatory-vote .vote-result h4 {
    margin-top: var(--inner-smgap-narrow);
    font-size: var(--fs-md-wide);
  }
  body.participatory-vote .send-comp h4 {
    margin-top: var(--inner-smgap-narrow);
  }
  /* ///// クイズコンテンツ ///// */
  body.participatory-quiz .content-sect h3 {
    padding-bottom: var(--inner-gap-narrow);
  }
  body.participatory-quiz .content-sect h3.question {
    font-size: var(--fs-sm-narrow);
  }
  body.participatory-quiz .content-sect h3.result {
    margin-bottom: var(--inner-gap-narrow);
  }
  body.participatory-quiz .content-sect h3.result img {
    margin: 0 auto;
    width: 80%;
  }
  body.participatory-quiz .content-sect .common-btn {
    margin-top: var(--inner-gap-narrow);
  }
  body.participatory-quiz .content-sect .text {
    font-size: 3.5vw;
  }
  body.participatory-quiz .content-sect ol {
    margin-top: var(--inner-gap-narrow);
    gap: var(--inner-smgap-narrow);
  }
  body.participatory-quiz .content-sect ol li {
    counter-increment: quiz-counter;
  }
  body.participatory-quiz .content-sect ol li label {
    min-height: 9vw;
    padding: 1vw 0;
    /* 左側に英字バッジ用の余白を確保 */
    /* 左端の英字丸アイコン */
    /* テキスト部分 */
  }
  body.participatory-quiz .content-sect ol li label .quiz-option-letter {
    left: 1vw;
    width: 7vw;
    border-radius: 50%;
    font-size: var(--fs-sm-narrow);
  }
  body.participatory-quiz .content-sect ol li label .quiz-option-text {
    font-size: var(--fs-sm-narrow);
  }
  /* ///// ゲームコンテンツ ///// */
  body.participatory-game main {
    padding: 0 0 var(--inner-gap-narrow) 0;
  }
  body.participatory-game main h1 {
    width: 90%;
  }
  body.participatory-game main h2 {
    margin: 0 auto var(--inner-gap-narrow);
    width: 90%;
  }
  @keyframes moveUpAndBack {
    100% {
      transform: translateY(-30px);
      /* 上に15px動く */
    }
  }
  body.participatory-game main .prize-result h3 {
    font-size: var(--fs-lg-narrow);
  }
  body.participatory-game main .payout-table {
    border-radius: 2vw;
    padding: var(--inner-gap-narrow);
    border: 2px solid transparent;
    max-width: 94%;
    margin: 3vw auto;
    /* リスト行（dd）の設定 */
  }
  body.participatory-game main .payout-table > dt {
    font-size: var(--fs-md-narrow);
    margin-bottom: var(--inner-gap-narrow);
    padding-bottom: var(--inner-gap-narrow);
  }
  body.participatory-game main .payout-table > dd {
    gap: var(--inner-gap-narrow);
    margin-bottom: 0 0 var(--inner-smgap-narrow) 0;
    font-size: var(--fs-md-wide);
    /* 画像のサイズと揃え */
  }
  body.participatory-game main .payout-table > dd img {
    width: 30vw;
  }
  body.participatory-game main .payout-table dd:not(:last-of-type) {
    margin-bottom: var(--inner-gap-narrow);
  }
  body.participatory-game main .contents-list,
  body.participatory-game main .site-ranking-sect {
    width: 94%;
  }
  /* ///// 競走馬詳細 ///// */
  body.horse-detail main h1 {
    margin-top: var(--inner-smgap-narrow);
    font-size: var(--fs-md-narrow);
  }
  body.horse-detail main h1 span {
    margin-left: 2vw;
    font-size: var(--fs-xsm-narrow);
  }
  body.horse-detail main .horse-profile-table {
    font-size: var(--fs-xsm-narrow);
  }
  body.horse-detail main .horse-profile-table tr th {
    width: 10%;
    padding: 1vw;
  }
  body.horse-detail main .horse-profile-table tr td {
    width: 40%;
    padding: 1vw;
  }
  body.horse-detail main .pedigree-table {
    border-spacing: 0.7vw;
    font-size: var(--fs-xsm-narrow);
  }
  body.horse-detail main .pedigree-table td {
    padding: 1vw;
  }
  body.horse-detail main .race-history-wrapper .race-history-table {
    font-size: var(--fs-xsm-narrow);
  }
  body.horse-detail main .race-history-wrapper .race-history-table th,
  body.horse-detail main .race-history-wrapper .race-history-table td {
    padding: 4px 6px;
    height: 24px;
  }
  body.horse-detail main .race-history-wrapper .race-history-table tbody a:hover {
    text-decoration: underline;
  }
  body.horse-detail main > :not(:last-child) {
    margin-bottom: var(--inner-gap-narrow);
  }
  /* ///// 騎手詳細 ///// */
  body.jockey-detail main h1 {
    margin-top: var(--inner-smgap-narrow);
    font-size: var(--fs-md-narrow);
  }
  body.jockey-detail main h1 span {
    margin-left: 1vw;
    font-size: var(--fs-xsm-narrow);
  }
  body.jockey-detail main .jockey-profile-table {
    font-size: var(--fs-xsm-narrow);
    line-height: 1.2;
  }
  body.jockey-detail main .jockey-profile-table th,
  body.jockey-detail main .jockey-profile-table td {
    padding: 1vw;
  }
  body.jockey-detail main .jockey-profile-table th {
    width: 10%;
    font-size: var(--fs-xsm-narrow);
  }
  body.jockey-detail main .jockey-profile-table td {
    width: 40%;
  }
  body.jockey-detail main .jockey-profile-table td span.wide {
    display: none;
  }
  body.jockey-detail main .jockey-profile-table td time {
    font-size: var(--fs-xsm-narrow);
  }
  body.jockey-detail main .yearly-record-wrapper .yearly-record-table {
    font-size: var(--fs-xsm-narrow);
  }
  body.jockey-detail main .yearly-record-wrapper .yearly-record-table th,
  body.jockey-detail main .yearly-record-wrapper .yearly-record-table td {
    padding: 1vw;
  }
  body.jockey-detail main .yearly-record-wrapper .yearly-record-table th {
    font-size: var(--fs-xsm-narrow);
  }
  body.jockey-detail main > :not(:last-child) {
    margin-bottom: var(--inner-gap-narrow);
  }
  /* ///// 初心者コンテンツ ///// */
  body.beginner-about main .text,
  body.beginner-howto main .text {
    margin-bottom: var(--inner-smgap-narrow);
  }
  body.beginner-about main .intro,
  body.beginner-howto main .intro {
    margin-bottom: var(--inner-gap-narrow);
  }
  body.beginner-about main .intro h2,
  body.beginner-howto main .intro h2 {
    margin: 0 auto var(--inner-smgap-narrow);
    font-size: var(--fs-lg-narrow);
    line-height: 1.3;
    width: 80%;
  }
  body.beginner-about main ol li .text,
  body.beginner-howto main ol li .text {
    text-align: left;
  }
  body.beginner-about main ol li:not(:last-of-type),
  body.beginner-howto main ol li:not(:last-of-type) {
    margin-bottom: var(--inner-gap-narrow);
  }
  body.beginner-about main .summary,
  body.beginner-howto main .summary {
    margin: var(--inner-gap-narrow) auto;
    width: 80%;
  }
  body.beginner-about main .banner-list,
  body.beginner-howto main .banner-list {
    margin-top: 4vw;
  }
  body.beginner-guide main {
    padding: 0 0 4vw 0;
  }
  body.beginner-guide main .summary a {
    width: 90%;
  }
  body.beginner-guide main .banner-list {
    width: 90%;
  }
  /* ///// サイトランキング ///// */
  body.site-ranking main h1 {
    margin-bottom: var(--inner-gap-narrow);
  }
  body.site-ranking main .ranking-headline {
    display: flex;
    justify-content: center;
    gap: var(--inner-gap-narrow);
  }
  body.site-ranking main .ranking-headline li {
    padding: var(--inner-smgap-narrow);
    padding-top: 0;
    padding-bottom: var(--inner-gap-narrow);
    flex: 1 1 0;
    position: relative;
    border-radius: 2vw;
  }
  body.site-ranking main .ranking-headline li .icon {
    width: 10vw;
    top: -3vw;
    left: 50%;
    transform: translateX(-50%);
  }
  body.site-ranking main .ranking-headline li h3 {
    margin: 9vw 0 1vw;
    font-size: var(--fs-xsm-narrow);
  }
  body.site-ranking main .ranking-headline li .eval {
    gap: 5px;
    margin-bottom: var(--inner-gap-narrow);
  }
  body.site-ranking main .ranking-headline li .eval .star {
    width: 15vw;
  }
  body.site-ranking main .ranking-headline li .eval .grading {
    font-size: var(--fs-xsm-narrow);
  }
  body.site-ranking main .ranking-headline li .ranking-result {
    margin-bottom: var(--inner-smgap-narrow);
  }
  body.site-ranking main .ranking-headline li .ranking-result dt {
    margin-bottom: var(--inner-smgap-narrow);
    padding: 1vw 0;
    font-size: var(--fs-xsm-narrow);
  }
  body.site-ranking main .ranking-headline li .ranking-result dd {
    margin-bottom: var(--inner-smgap-narrow);
  }
  body.site-ranking main .ranking-headline li .ranking-result .amount {
    font-size: var(--fs-md-narrow);
  }
  body.site-ranking main .ranking-headline li .ranking-result .amount time {
    margin-bottom: 1vw;
    font-size: 2vw;
  }
  body.site-ranking main .ranking-headline li .ranking-result .text {
    font-size: var(--fs-xsm-narrow);
    text-align: left;
    line-height: 1.2;
  }
  body.site-ranking main .ranking-detail li {
    border-radius: 2vw;
    padding: var(--inner-gap-narrow);
    padding-bottom: 3vw;
  }
  body.site-ranking main .ranking-detail li .site-prof {
    display: grid;
    grid-template-columns: 1fr max-content minmax(0, auto) 1fr;
    column-gap: 8px;
    align-items: center;
    width: 100%;
  }
  body.site-ranking main .ranking-detail li .site-prof .icon {
    grid-column: 2;
    grid-row: 1 / 3;
    display: flex;
    align-items: center;
    justify-content: flex-end;
  }
  body.site-ranking main .ranking-detail li .site-prof .icon img {
    width: 12vw;
    height: auto;
    display: block;
  }
  body.site-ranking main .ranking-detail li .site-prof h2 {
    grid-column: 3;
    grid-row: 1;
    font-size: var(--fs-md-narrow);
    line-height: 1;
    text-align: left;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
  }
  body.site-ranking main .ranking-detail li .site-prof .eval {
    grid-column: 3;
    grid-row: 2;
    gap: 1vw;
  }
  body.site-ranking main .ranking-detail li .site-prof .eval .star img {
    width: auto;
    height: 4vw;
    object-fit: contain;
  }
  body.site-ranking main .ranking-detail li .site-prof .eval .grading {
    font-size: var(--fs-sm-narrow);
  }
  body.site-ranking main .ranking-detail li .site-prof .text {
    grid-column: 1 / -1;
    width: 100%;
    margin-top: var(--inner-smgap-narrow);
    padding-top: var(--inner-smgap-narrow);
    border-top: 2px dotted;
    font-size: var(--fs-sm-narrow);
  }
  body.site-ranking main .ranking-detail li .result-detail figure {
    margin-bottom: var(--inner-gap-narrow);
    width: 100%;
    display: block;
  }
  body.site-ranking main .ranking-detail li .result-detail figure img {
    width: 100%;
    display: block;
  }
  body.site-ranking main .ranking-detail li .result-detail > div h4 {
    margin-bottom: var(--inner-gap-narrow);
    font-size: var(--fs-md-narrow);
    line-height: 1.3;
  }
  body.site-ranking main .ranking-detail li .result-detail > div h4 time {
    font-size: var(--fs-xsm-narrow);
    margin-bottom: 1vw;
  }
  body.site-ranking main .ranking-detail li .result-detail > div .result-detail-list dt {
    margin-bottom: var(--inner-smgap-narrow);
    padding: 1vw 0;
    font-size: var(--fs-sm-narrow);
  }
  body.site-ranking main .ranking-detail li .result-detail > div .result-detail-list dd {
    margin-bottom: var(--inner-smgap-narrow);
    padding: var(--inner-smgap-narrow);
    /* 投資金額 */
    /* 払戻金額 */
  }
  body.site-ranking main .ranking-detail li .result-detail > div .result-detail-list dd.result-num ol > li {
    width: 8vw;
    flex: 0 0 8vw;
    font-size: var(--fs-md-narrow);
    border-radius: 5px;
    padding: 0;
    margin-right: 5vw;
    /* 各正方形の右側に配置する右向き三角 */
  }
  body.site-ranking main .ranking-detail li .result-detail > div .result-detail-list dd.result-num ol > li::after {
    right: -3.5vw;
    border-width: 4px 0 4px 6px;
  }
  body.site-ranking main .ranking-detail li .result-detail > div .result-detail-list dd.bet-type {
    font-size: var(--fs-md-narrow);
  }
  body.site-ranking main .ranking-detail li .result-detail > div .result-detail-list dd.bet-type .amount {
    font-size: var(--fs-lg-narrow);
  }
  body.site-ranking main .ranking-detail li .result-detail > div .result-detail-list dd.amount {
    font-size: 8vw;
  }
  body.site-ranking main .ranking-detail li .reason .free-text {
    font-size: var(--fs-sm-narrow);
    line-height: 1.4;
    text-align: left;
  }
  body.site-ranking main .ranking-detail li > :not(:last-child) {
    margin-bottom: var(--inner-gap-narrow);
  }
  body.site-ranking main .ranking-detail > :not(:last-child) {
    margin-bottom: var(--block-gap-narrow);
  }
  /* ///// 的中実績 ///// */
  body.result .content-sect .result-list {
    margin: var(--inner-gap-narrow) 0;
  }
  /* ///// マイページ ///// */
  body.mypage main {
    padding-bottom: 3vw;
  }
  body.mypage main .mypage-edit > :not(:last-child) {
    padding-bottom: var(--inner-gap-wide);
  }
  body.mypage main .form-block .next-status {
    margin-top: var(--inner-gap-narrow);
  }
  /* ///// チャット ///// */
  body.chat {
    padding-bottom: 30vw;
  }
  body.chat .sendform {
    border-radius: 2vw 2vw 0 0;
    gap: 2vw;
  }
  body.chat .sendform .textfield textarea,
  body.chat .sendform .textfield input {
    border-radius: 2vw;
  }
  body.chat .sendform {
    padding: var(--inner-gap-narrow);
    width: var(--contents-width-narrow);
  }
  body.chat .sendform label {
    width: 10vw;
    height: 10vw;
  }
  body.chat .sendform .textfield {
    margin: 0;
    width: auto;
  }
  body.chat .sendform .textfield textarea,
  body.chat .sendform .textfield input {
    padding: 2vw;
    font-size: 3.5vw;
  }
  body.chat .sendform .send-btn {
    width: 10vw;
    height: 10vw;
  }
  /* ///// ログインページ ///// */
  body.login-page .text-link a {
    font-size: var(--fs-xsm-narrow);
    margin: var(--inner-gap-narrow) 1vw 0 1vw;
  }
  /* ///// パスワード忘れ ///// */
  body.forget main {
    padding-bottom: 3vw;
  }
  body.forget main .form-block {
    margin-top: var(--inner-gap-narrow);
    padding-top: var(--inner-gap-narrow);
  }
  /* ///// メッセージボックス ///// */
  body.msg-box .msg-tag li {
    padding: 1vw 2vw;
    font-size: 2.5vw;
  }
  body.msg-box .msg-tag li span {
    margin-left: 1vw;
    font-size: var(--fs-sm-narrow);
  }
  body.msg-box .msg-detail a,
  body.msg-box ul.msg-list a {
    padding: var(--inner-gap-narrow);
  }
  body.msg-box .msg-detail .head,
  body.msg-box ul.msg-list .head {
    gap: 1vw;
    margin-bottom: var(--inner-smgap-narrow);
    padding-bottom: var(--inner-gap-narrow);
  }
  body.msg-box .msg-detail .head .status-tag,
  body.msg-box ul.msg-list .head .status-tag {
    width: 8vw;
    font-size: var(--fs-xsm-narrow);
  }
  body.msg-box .msg-detail .head h2,
  body.msg-box ul.msg-list .head h2 {
    font-size: 3.5vw;
  }
  body.msg-box .msg-detail time,
  body.msg-box ul.msg-list time {
    font-size: var(--fs-xsm-narrow);
    margin-bottom: var(--inner-gap-narrow);
  }
  body.msg-box .msg-list > :not(:last-child) {
    margin-bottom: var(--inner-gap-narrow);
  }
  body.msg-box div.msg-detail {
    gap: var(--inner-gap-narrow);
  }
  body.msg-box div.msg-detail .head {
    gap: 1vw;
    padding-bottom: var(--inner-gap-narrow);
  }
  body.msg-box div.msg-detail .head h2 {
    font-size: var(--fs-lg-narrow);
  }
  body.msg-box div.msg-detail time {
    font-size: var(--fs-sm-narrow);
    margin-bottom: var(--inner-gap-narrow);
  }
  /* ///// 会員登録 ///// */
  body.regist main {
    padding-bottom: 3vw;
  }
  body.regist main .form-block dt {
    font-size: var(--fs-sm-narrow);
  }
  body.regist main .caution {
    margin: var(--inner-gap-narrow) 0;
    padding-bottom: var(--inner-gap-narrow);
  }
  body.regist main .caution dt {
    margin-bottom: var(--inner-gap-narrow);
    padding: var(--inner-smgap-narrow) 0;
    font-size: var(--fs-sm-narrow);
  }
  body.regist main .caution dd {
    font-size: var(--fs-sm-narrow);
  }
  body.regist main .user-acount {
    margin: var(--inner-gap-narrow) 0;
    padding: var(--inner-gap-narrow);
  }
  body.regist main .user-acount li {
    font-size: var(--fs-sm-narrow);
  }
  /* ///// LINEログイン ///// */
  body.line-login main {
    margin: 3vw auto;
  }
  body.line-login main .content-sect form {
    margin-bottom: 3vw;
  }
  body.line-login main .content-sect form .text {
    margin-top: var(--inner-gap-narrow);
  }
  body.line-login main .content-sect form .text input[type="checkbox"] {
    margin-right: 1vw;
  }
  body.line-login main .content-sect ul {
    padding: var(--inner-gap-narrow);
  }
  body.line-login main .content-sect ul li {
    font-size: var(--fs-sm-narrow);
  }
  body.line-login main .content-sect ul li:not(:last-of-type) {
    margin-bottom: var(--inner-smgap-narrow);
  }
}
