/* ==================================================
   RIDGE RACER V
   VERSION 03
   GRAND PRIX SELECT SCREEN STYLE
================================================== */

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  padding: 0;
  background: #000;
  color: #fff;
  font-family: Arial, Helvetica, "Meiryo", sans-serif;
}

h1,h2,h3,h4,h5 {
  margin: 0 auto;
}
p {
  margin: 0 auto;
}


.rrv-kouryaku-outline {
  margin: 80px auto 28px;
}
.rrv-kouryaku-outline-image {
  margin: 12px 0;
  width: 100%;
  max-width: 1280px;
}
.rrv-kouryaku-outline-header,
.rrv-kouryaku-ultimategp-header {
  background: #272672;
  margin: 0 0 8px;
  padding: 2px 16px;
}
.rrv-koryaku-item-header {
  padding: 2px 16px;
}

.rrv-kouryaku-item-inner-header {
  margin: 12px auto 4px;
}

.rrv-kouryaku-item-inner {
  margin: 20px auto;
}
.rrv-kouryaku-item-inner-text {
  margin: 0 0 0 1em;
}

.rrv-kouryaku-ultimategp-item {
  margin: 20px auto;
}
.rrv-kouryaku-ultimategp-item-header {
  border-bottom: 1px solid #fff;
  padding: 4px 2%;
  text-align: center;
}
.rrv-kouryaku-ultimategp-item-smalltext {
  text-align: center;
}
.rrv-kouryaku-ultimategp-item-course {
  display: block;
  margin: 20px auto;
  width: 100%;
  max-width: 400px;
}

.rrv-kouryaku-ultimategp-item-table {
  border-collapse: collapse;
}
.rrv-kouryaku-ultimategp-item-table th,
.rrv-kouryaku-ultimategp-item-table td {
  border: 1px solid #fff;
  padding: 4px 8px;
}
.rrv-kouryaku-ultimategp-item-table .lap {
  text-align: center;
}
.rrv-kouryaku-ultimategp-item-table td .text {
  margin: 0 0 1em;
}
.rrv-kouryaku-ultimategp-item-table td img {
  display: block;
  margin: 0 0 4px;
  width: 200px;
}
.rrv-kouryaku-ultimategp-item-table td small {
  color: #ccc;
}


/* 横に長い攻略テーブルのみ横スクロール */
.rrv-kouryaku-ultimategp-item-table-scroll {
  margin: 12px auto;
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
}

.rrv-kouryaku-ultimategp-item-table-scroll .rrv-kouryaku-ultimategp-item-table {
  width: max-content;
  min-width: 100%;
}

.rrv-kouryaku-ultimategp-item-table-scroll .rrv-kouryaku-ultimategp-item-table th,
.rrv-kouryaku-ultimategp-item-table-scroll .rrv-kouryaku-ultimategp-item-table td {
  width: 300px;
  min-width: 300px;
  max-width: 300px;
  white-space: normal;
  overflow-wrap: break-word;
  vertical-align: top;
}


.site-wrap {
  width: 1280px;
  margin: 0 auto;
  background: #000;
}





/* ==================================================
   TOP SCREEN
================================================== */

.top-screen {
  overflow: hidden;
  background:
    linear-gradient(to bottom, #01040f 0 22%, transparent 22%),
    #000;
  border-bottom: 1px solid #1b1b1b;
}

.top-screen::before {
  content: "";
  position: absolute;
  left: 0;
  top: 225px;
  width: 100%;
  height: 575px;
  pointer-events: none;
  background:
    repeating-linear-gradient(
      to bottom,
      rgba(255,255,255,0.035) 0,
      rgba(255,255,255,0.035) 2px,
      transparent 2px,
      transparent 5px
    );
  z-index: 3;
}

.top-head {
  position: relative;
  height: 165px;
  padding-top: 38px;
}

.profile-line {
  text-align: center;
  white-space: nowrap;
}

.profile-no {
  font-size: 42px;
  font-weight: 700;
  letter-spacing: 1px;
  color: #fff;
}

.profile-name {
  margin-left: 24px;
  font-size: 58px;
  font-weight: 400;
  letter-spacing: 4px;
  color: #fff;
}

.speed-lines {
  position: relative;
  width: 700px;
  height: 28px;
  margin: 2px auto 0;
}

.speed-lines span {
  position: absolute;
  height: 4px;
}

.line-white {
  top: 2px;
  left: 35px;
  width: 360px;
  background: #fff;
}

.line-yellow {
  top: 0;
  left: 85px;
  width: 290px;
  background: linear-gradient(to right, #d9d58c, #8f8e47, transparent);
}

.line-olive {
  top: 12px;
  left: 140px;
  width: 510px;
  background: linear-gradient(to right, #7f7a3a, #464620, transparent);
}

.distance {
  position: absolute;
  right: 95px;
  bottom: 0;
  font-size: 29px;
  font-weight: 700;
  letter-spacing: 1px;
}

.select-title {
  height: 70px;
  padding: 9px 0 0 32px;
  font-size: 38px;
  font-weight: 700;
  letter-spacing: 1px;
  background: #01040f;
}

.grand-prix-panel {
  background: linear-gradient(to bottom, #003d79, #002f5f);
  position: relative;
  z-index: 1;
}

.blue-zone {
  position: relative;
  height: 205px;
  text-align: center;
  border-bottom: 7px solid #fff;
  background:
    linear-gradient(to bottom, rgba(18,77,143,0.95), rgba(0,45,99,0.98)),
    #00356d;
}

.class-label {
  position: relative;
  z-index: 2;
  padding-top: 36px;
  font-size: 34px;
  font-weight: 700;
}

.class-name {
  position: relative;
  z-index: 2;
  font-size: 108px;
  line-height: 1;
  font-weight: 700;
  letter-spacing: -5px;
}

.ultimate-bar {
  position: relative;
  z-index: 4;
  margin-top: -1px;
  height: 72px;
  border-top: 2px solid #fff;
  border-bottom: 5px solid #fff;
  background: #d90a00;
  text-align: center;
  font-size: 47px;
  line-height: 66px;
  font-weight: 700;
  letter-spacing: 2px;
}

.series-area {
  min-height: 295px;
  padding-top: 12px;
  text-align: center;
}

.series-title {
  font-size: 27px;
  font-weight: 700;
  letter-spacing: 1px;
}

.series-boxes {
  display: flex;
  justify-content: center;
  gap: 11px;
}

.series-boxes span {
  display: block;
  width: 39px;
  height: 39px;
  border: 4px solid #fff;
}

.series-boxes-top {
  margin-top: 20px;
}

.series-boxes-top span {
  background: #00376c;
}

.series-boxes-bottom {
  margin-top: 10px;
}

.series-boxes-bottom span {
  background: #fff;
}

.grand-prix-copy {
  width: 900px;
  margin: 28px auto 0;
  padding-top: 10px;
  border-top: 4px solid #fff;
  font-size: 27px;
  line-height: 1.16;
  font-weight: 700;
  letter-spacing: 1px;
}

.information-label {
  display: flex;
  align-items: center;
  width: 390px;
  height: 56px;
  padding-left: 15px;
  color: #bfc2ca;
  font-size: 32px;
  font-weight: 700;
  background: #000;
  border-top-right-radius: 55px;
  border-bottom: 3px solid #999;
}

.information-r {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 40px;
  height: 40px;
  margin-right: 10px;
  border: 2px solid #9ea2aa;
  border-radius: 50%;
  font-family: Georgia, serif;
  font-style: italic;
  font-size: 30px;
  font-weight: normal;
}

.information-box {
  position: relative;
  left: 110px;
  right: 0;
  bottom: 0;
  padding: 22px 60px 20px 55px;
  color: #111;
  background:
    linear-gradient(to bottom, #d6d6d6, #b8b8b8 70%, #b0b0b0);
  border-top-left-radius: 8px;
}

.information-box::before {
  content: "";
  position: absolute;
  top: -52px;
  right: 0;
  z-index: 2;
  width: 300px;
  height: 55px;
  background: #d6d6d6;
  border-top-left-radius: 120px;
}

.information-box p {
  position: relative;
  z-index: 2;
  width: 840px;
  margin: 0;
  font-size: 27px;
  line-height: 1.2;
  font-weight: 700;
}

.control-line {
  position: relative;
  z-index: 2;
  display: flex;
  gap: 18px;
  margin-top: 22px;
  padding-top: 10px;
  border-top: 2px solid #222;
  font-size: 23px;
}

.control-button{appearance:none;border:0;padding:0;background:none;color:#111;font:inherit;font-weight:700;text-decoration:none;cursor:pointer}
.control-button:hover{color:#c00000;text-decoration:underline}




/* ==================================================
   BLACK CONTENT
================================================== */

.black-content {
  background: #000;
}

.content-section {
  padding: 78px 95px 90px;
  border-bottom: 1px solid #222;
  background: #000;
}

.section-kicker {
  margin-bottom: 5px;
  color: #a7a7a7;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 4px;
}

.content-section h2 {
  margin: 0 0 35px;
  font-size: 42px;
  font-weight: 400;
  letter-spacing: 3px;
  border-bottom: 2px solid #fff;
  padding-bottom: 9px;
}

.content-grid {
  display: grid;
  grid-template-columns: 1fr 470px;
  gap: 55px;
}

.copy p,
.race-text p {
  color: #c8c8c8;
  font-size: 16px;
  line-height: 2;
}

.image-frame {
  margin: 0;
  border: 1px solid #555;
  background: #070707;
  padding: 5px;
}

.image-frame img,
.wide-image img,
.machine-card img,
.gallery-grid img {
  display: block;
  width: 100%;
}

.image-frame figcaption,
.gallery-grid figcaption {
  padding: 6px 3px 2px;
  color: #777;
  font-size: 10px;
  letter-spacing: 2px;
}

.wide-image {
  height: 360px;
  overflow: hidden;
  border-top: 1px solid #555;
  border-bottom: 1px solid #555;
}

.wide-image img {
  height: 100%;
  object-fit: cover;
}

.three-columns,
.machine-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 26px;
}

.three-columns article {
  padding: 20px;
  background: #070707;
  border-top: 2px solid #bdbdbd;
}

.three-columns h3 {
  margin: 0 0 12px;
  font-size: 18px;
  letter-spacing: 3px;
}

.three-columns p,
.machine-card p {
  margin: 0;
  color: #8f8f8f;
  font-size: 13px;
  line-height: 1.8;
}

.machine-card {
  background: #070707;
  border-top: 2px solid #fff;
}

.machine-head {
  padding: 10px 12px;
  font-size: 18px;
  letter-spacing: 2px;
}

.machine-head span {
  margin-right: 10px;
  color: #c2b35b;
  font-size: 11px;
}

.machine-card img {
  height: 180px;
  object-fit: cover;
}

.machine-card p {
  padding: 15px;
}

.race-line {
  display: grid;
  grid-template-columns: 170px 1fr 270px;
  margin-top: 30px;
  border-top: 2px solid #fff;
  border-bottom: 2px solid #fff;
  align-items: center;
}

.race-line span {
  color: #bbb;
  font-size: 19px;
}

.race-line strong {
  font-size: 60px;
  font-weight: 400;
  letter-spacing: 1px;
}

.race-line em {
  padding: 11px;
  background: #c90b04;
  text-align: center;
  font-style: normal;
  font-size: 20px;
  font-weight: 700;
}

.gallery-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 22px;
}

.gallery-grid figure {
  margin: 0;
  padding: 4px;
  background: #070707;
  border: 1px solid #444;
}

.gallery-grid img {
  height: 275px;
  object-fit: cover;
}

footer {
  padding: 38px 95px;
  color: #555;
  font-size: 11px;
  letter-spacing: 3px;
  text-align: right;
  background: #000;
}


/* ==================================================
   RESPONSIVE
================================================== */

@media screen and (max-width: 1280px) {
  .site-wrap {
    width: 100%;
  }
}

@media screen and (max-width: 900px) {
  .top-screen {
    min-height: 900px;
  }

  .profile-no {
    font-size: 27px;
  }

  .profile-name {
    font-size: 42px;
  }

  .class-name {
    font-size: 70px;
  }

  .grand-prix-copy {
    width: 88%;
    font-size: 18px;
  }

  .information-box {
    left: 40px;
  }

  .information-box p {
    width: 90%;
    font-size: 18px;
  }

  .content-section {
    padding: 55px 28px 65px;
  }

  .content-grid,
  .three-columns,
  .machine-list,
  .gallery-grid {
    grid-template-columns: 1fr;
  }

  .race-line {
    grid-template-columns: 1fr;
  }

  .race-line > * {
    padding: 10px;
  }
}
