@charset "UTF-8";

:root {
    --text-color: #FFFFFF;
    --font-family: "YuMincho", "Yu Mincho", "Hiragino Mincho ProN", "MS PMincho", serif;
    --gradient-button: linear-gradient(90deg, rgba(255,227,182,0.6), rgba(81,88,114,0.6));
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    color: var(--text-color);
    font-family: var(--font-family);
    line-height: 2;
}
body::before {
  content:"";
  position: fixed;
  top: 0;
  left: 0;
  z-index: -1;
  width: 100vw;
  height: 100vh;
  background: url(../images/rainbow2026/bg_pc.webp) no-repeat center center;
  background-size: cover;
  letter-spacing: 0.1rem;
}

a {
    text-decoration: none;
    color: inherit;
}

ul {
    list-style: none;
}

img {
  width: 100%;
  height: auto;
}


.mb40 {
  margin-bottom: 40px !important;
}

.txt-ind {
  font-size: 12px;
  padding-left: 12px;
  text-indent: -12px;
  line-height: 1.25;
}

.txt-narrow {
  letter-spacing: -0.05rem;
}

.ta-center {
  text-align: center;
}

@media screen and (max-width: 1010px) {
#spots br.is-sp {
  display: inline;
}
}

@media screen and (max-width: 768px) {
body::before {
background: url(../images/rainbow2026/bg_sp.webp) no-repeat center center;
  background-size: cover;
}
}


.h2-wrap {
  min-height: 293px;
  margin-bottom: 16px;
  padding: 130px 0 0 114px;
  background: url(../images/rainbow2026/ttl_bg.png) no-repeat left top / 293px;
  color: #fff;
}

.h2-en {
  margin-bottom: 9px;
  font-feature-settings: 'palt' on;
  /*font-family: "The Seasons";*/
  font-size: 48px !important;
  font-weight: 400 !important;
  line-height: 100% !important;
  letter-spacing: 0.08rem;
  text-align: left !important;
}

h2 {
  font-feature-settings: 'palt' on;
  font-size: 24px;
  font-weight: 600;
  line-height: 100%;
  letter-spacing: 4.8px;
}

@media screen and (max-width: 767px){
.h2-wrap {
  min-height: 293px;
  margin-bottom: 0;
  padding: 130px 0 0 16px;
  background: url(../images/rainbow2026/ttl_bg.png) no-repeat left -100px top / 293px;
  color: #fff;
}

.h2-en {
  font-feature-settings: 'palt' on;
  /*font-family: "The Seasons";*/
  font-size: 48px !important;
  font-weight: 400 !important;
  line-height: 100% !important;
  letter-spacing: 0.08rem;
  text-align: left !important;
}

h2 {
  font-feature-settings: 'palt' on;
  font-size: 22px;
  font-weight: 600;
  line-height: 100%;
  letter-spacing: 4.8px;
}
}

/*-----------------------------------------------------------------
		header
-----------------------------------------------------------------*/
header {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  min-width: 100%;
  z-index: 10000;
  background: rgba(0,0,0,0.2);
}
.l-header {
  min-width: 100%;
}

.header-lp-left {
  width: calc(100% - 220px);
  vertical-align: middle;
}

.l-header-sns {
  width: 165px;
  margin-left: auto;
}
.l-header-lp-snsList li {
  width: 100%;
}
.l-header-sns a {
 font-size: 13px;
  display: flex;
  width: 100%;
  justify-content: space-between;
}

.l-header-lp-snsList li span {
  margin-top: 2px;
}

.header-sns-txt {
  width: calc(100% - 30px);
  font-weight: bold;
}


.header-sns-att {
  padding-top: 3px;
  font-size: 11px;
  font-weight: normal;
}


@media screen and (max-width: 980px) {
.header-lp-right {
  width: 220px;
}

.l-header-lp-snsList li + li {
  margin-left: 10px;
}
}


/*-----------------------------------------------------------------
		MV
-----------------------------------------------------------------*/
.mv {
  width: 100%;
  padding-top: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
}

.mv-inner {
  max-width: 372px;
  padding: 0 16px;
}

.mv h1 {
  margin: 0 auto;
}


@media screen and (max-width: 767px){
.mv {
  padding-top: 96px;
}

.mv-inner {
  max-width: 100%;
}

.mv h1 {
  position: relative;
}
.mv h1 img {
  max-width: 360px;
}

.mv-txt {
  font-size: 13px;
}
}



/*-----------------------------------------------------------------
		navi
-----------------------------------------------------------------*/
.nav-outer {
  padding-top: 80px;
  background: url(../images/rainbow2026/nav_top.png) repeat-x center top / 1280px auto;
}

nav {
  background: rgba(4, 19, 42, 0.80);
}

.nav-list {
  max-width: 752px;
  margin: 0 auto;
  display: flex;
  padding: 0 16px 8px;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  align-self: stretch;
}
.nav-list::after{
  content:"";
  display: block;
  width: calc((100% - 32px) / 3);
}

.nav-item {
  width: calc((100% - 32px) / 3);
}
.nav-item a {
  width: 100%;
  margin-bottom: 16px;
  line-height: 38px;
  border-radius: 99px;
  border: 1px solid rgba(255, 255, 255, 0.40);
  background: rgba(4, 19, 42, 0.10);
  backdrop-filter: blur(6px);
  display: block;
  text-align: center;
}

.nav-item a:hover {
  opacity: 0.7;
}

@media screen and (max-width: 980px) {
  nav {
    opacity: 1;
    visibility: visible;
  }
}

@media screen and (max-width: 767px){
.nav-outer {
  padding-top: 100px;
  background: url(../images/rainbow2026/nav_top.png) repeat-x center top 20px / 1280px auto;
}

.nav-list li {
  width: calc(50% - 6px);
}

.nav-item a {
  margin-bottom: 12px;
  line-height: 32px;
  font-size: 12px;
}
}



/*-----------------------------------------------------------------
		About
-----------------------------------------------------------------*/
#about .container-outer {
  padding: 64px 0 32px;
  background: rgba(4, 19, 42, 0.80);
}

#about .container {
  max-width: 756px;
  margin: 0 auto;
}

#about h3 {
  margin-bottom: 15px;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.8;
  text-align: center;
}

#about p {
  font-size: 14px;
  font-weight: 500;
  line-height: 200%;
  text-align: center;
}

.music-wrap {
  width: calc(100% - 32px);
  max-width: 460px;
  margin: 0 auto;
  padding-top: 22%;
  background: url(../images/rainbow2026/music_top.png) no-repeat center top / 100% auto;
}

.music-wrap-inner {
  padding: 40px 0 24px 0;
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(72, 126, 200, 0.10) 0%, rgba(72, 126, 200, 0.40) 100%);
  position: relative;
}

.music-wrap span {
  font-size: 21px;
}

#about .music-wrap h3 {
  width: 100%;
  max-width: 186px;
  margin: -20px auto 24px;
  padding: 0 8px;
  border-radius: 99px;
  border: 1px solid #8CA6C8;
  background: #487EC8;
  line-height: 38px;
  font-size: 18px;
  position: absolute;
  top: -2px;
  left: 50%;
  transform: translateX(-50%);
}
#about .music-wrap h3 span {
  padding: 0 5px;
  font-size: 10px;
  line-height: 1;
}


@media screen and (max-width: 767px){
#about .container-outer {
  padding: 48px 0 32px;
  background: rgba(4, 19, 42, 0.80);
}
}


/*-----------------------------------------------------------------
		概要
-----------------------------------------------------------------*/
#overview .container-outer {
  padding-top: 12.5%;
  background: url(../images/rainbow2026/overview_top.png) no-repeat center top / 100% auto;
}

#overview .container {
  padding: 32px 16px;
  background: rgba(13, 52, 107, 0.80);
}

#overview .container-inner {
  max-width: 998px;
  margin: 0 auto;
}

.overview-box {
  width: 100%;
  max-width: 772px;
  margin: 0 auto;
  padding: 10px;
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.20);
  background: rgba(0, 0, 0, 0.20);
  backdrop-filter: blur(8px);
}

#overview table {
  width: 100%;
  text-align: left;
  border-collapse: collapse;
}

#overview th, #overview td {
  padding: 12px 14px 14px 0;
  line-height: 1.45;
  font-size: 14px;
  vertical-align: top;
  border-bottom: 1px solid rgba(255, 255, 255, 0.20);
}

#overview th {
  width: 80px;
  padding: 12px 0;
  text-align: center;
}

#overview table tr:last-of-type th, #overview table tr:last-of-type td {
  border-bottom: none;
}

.side-list {
  margin-left: 15px;
}

.side-list li {
  margin-bottom: 7px;
  list-style-type: disc;
  line-height: 1.3;
}
.side-list a {
  text-decoration: underline;
}


@media screen and (max-width: 767px){
#overview th, #overview td {
  font-size: 13px;
}
#overview th {
  width: 66px;
  padding: 12px 0px;
}
}


/*-----------------------------------------------------------------
		打ち上げ場所
-----------------------------------------------------------------*/
#access .h2-wrap {
  padding: 115px 0 0 114px;
}

@media screen and (max-width: 767px){
#access .h2-wrap {
  padding: 115px 0 0 16px;
}
}

#access .container-outer {
  padding-top: 9.375%;
  background: url(../images/rainbow2026/launch_top.png) no-repeat center top / 100% auto;
}

#access .container {
  padding: 32px 16px;
  background: rgba(0, 39, 92, 0.80);
}

#access .container-inner {
  max-width: 998px;
  margin: 0 auto;
}

.access-content {
  width: 100%;
  max-width: 772px;
  margin: 0 auto;
}

.access-map {
  width: 100%;
  max-width: 772px;
  margin-bottom: 40px;
  border-radius: 16px;
  overflow: hidden;
}

.access-map iframe {
  width: 100%;
  height: 495px;
  margin-top: -60px;
  border: none;
}

.access-details {
  max-width: 772px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}

.access-train, .access-car {
  width: calc(50% - 12px);
  padding: 12px 16px 24px;
  display: flex;
  flex-direction: column;
  font-size: 14px;
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, 0.20);
  background: rgba(2, 27, 91, 0.50);
  backdrop-filter: blur(3.5px);
}

.ttl-img {
  width: 200px;
  margin: 0 auto 16px;
}

.mb-auto {
  margin-bottom: auto;
}

#access h3 {
  font-size: 18px;
  margin: 0 auto 16px;
  text-align: center;
  width: fit-content;
  line-height: 1;
}

#access .button {
  width: 100%;
  max-width: 250px;
  display: block;
  margin: 16px auto 0;
  line-height: 42px;
  font-weight: 700;
  font-size: 14px;
  text-align: center;
  border-radius: 999px;
  background: #487EC8;
}


@media screen and (max-width: 767px){
.access-train, .access-car {
  width: 100%;
}

.access-car {
  margin-top: 16px;
}
}


/*-----------------------------------------------------------------
		Spot
-----------------------------------------------------------------*/
#spots .container-outer {
  padding-top: 12.5%;
  background: url(../images/rainbow2026/spot_topo.png) no-repeat center top / 100% auto;
}

#spots .container {
  padding: 32px 16px;
  background: rgba(4, 19, 42, 0.80);
}

#spots .container-inner {
  max-width: 998px;
  margin: 0 auto;
}

.spot-grid {
  max-width: 772px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}

.spot-item {
  width: calc(50% - 12px);
  height: 209px;
  margin-bottom: 24px;
  border-radius: 16px;
  position: relative;
  text-align: center;
}
.spot-item a {
  height: 100%;
  display: block;
}
.spot-item img {
  height: 100%;
  object-fit: cover;
  border-radius: 16px;
}

.spot-item p {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  line-height: 40px;
  background: linear-gradient(0deg, #0C2C5E 0%, rgba(12, 44, 94, 0.80) 71.63%, rgba(12, 44, 94, 0.00) 100%);
  border-radius: 0 0 16px 16px;
  font-weight: 700;
  font-size: 14px;
}


@media screen and (max-width: 767px){
.spot-item {
  width: 100%;
  height: 180px;
}
}


/*-----------------------------------------------------------------
		Gallery
-----------------------------------------------------------------*/
#gallery .container {
  padding: 32px 0;
  background: rgba(4, 19, 42, 0.80);
}

#gallery .container-inner {
  max-width: 998px;
  margin: 0 auto;
  padding: 0 16px;
}


/* カルーセルの外枠（はみ出しを非表示） */
.carousel-container {
  width: 100%;
  overflow: hidden;
  position: relative;
  padding: 10px 0;
}

/* スライドが横並びになるトラック */
.carousel-track {
  display: flex;
  will-change: transform;
}

/* 個々のスライドアイテム（指定の228px幅） */
.carousel-item {
  width: 228px;
  min-width: 228px; /* 縮まないように固定 */
  box-sizing: border-box;
  padding: 0 10px;  /* アイテム間の余白 */
  text-align: center;
}

.carousel-item img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 4px;
}

.carousel-item p {
  margin: 8px 0 0;
  font-size: 12px;
  line-height: 1;
  text-align: left;
}


/*-----------------------------------------------------------------
		Sponsors
-----------------------------------------------------------------*/
#sponsors .container {
  padding: 52px 16px;
  background: url(../images/rainbow2026/sponsors_bg_pc.webp) no-repeat center top / cover;
  
}

#sponsors .sponsor-box {
    max-width: 700px;
    margin: 0 auto;
    padding: 24px 16px;
  border-radius: 10px;
border: 1px solid rgba(255, 255, 255, 0.20);
  text-align: center;
}

#sponsors h2 {
  margin-bottom: 16px;
  font-size: 32px;
  line-height: 1;
}

#sponsors p {
  font-size: 14px;
  margin-bottom: 24px;
}

#sponsors p.contact {
  margin-bottom: 8px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1;
}

#sponsors p.tel {
  margin-bottom: 0;
  font-size: 14px;
}





.bnr {
  PADDING: 16px 16px 0;
  background: #04132A;
}

.bnr ul {
  max-width: 752px;
  margin: 0 auto;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  background: rgba(4, 19, 42, 0.80);
}
.bnr li {
  width: calc((100% - 32px) / 3);
  max-width: 240px;
}


@media screen and (max-width: 767px){
.bnr li {
  width: 100%;
}
.bnr li + li {
  margin-top: 16px;
}
}


/*-----------------------------------------------------------------
		Footer
-----------------------------------------------------------------*/
.l-footer {
  padding: 10px;
  text-align: center;
}

.l-footer-inner {
  max-width: 100%;
  background: #04132A;
}


.copyright {
  font-size: 10px;
  line-height: 24px;
  float: none;
}

@media screen and (max-width: 767px) {
  .l-footer-navi {
    padding-bottom: 0;
  }
}


/*-----------------------------------------------------------------
		調整用
-----------------------------------------------------------------*/
.mb8 {margin-bottom: 8px !important;}
.mb16 {margin-bottom: 16px !important;}
.mb24 {margin-bottom: 24px !important;}
.mb32 {margin-bottom: 32px !important;}
.mb48 {margin-bottom: 48px !important;}


/* 英語用 */
#en .mv-inner {
  max-width: 450px;
}

#en #about .music-wrap h3{
  max-width: 226px !important;
}

#overview th {
  width: 120px;
}







