@charset "utf-8";

:root{
  --white: #f5f5f5;
  --black: #222222;
  --darkblue: #002d74;
  --darkblue_border: #5b6d8c;
  --darkblue_hover-d: #4d6895;
  --darkblue_hover-l: #0082ca;
  --gray: #e0e0e0;
  --gray_border: #ccc;
  --white_hover: #aebcd4;
}

/* ルーレット - 背景 */
.roulette {
  position: relative;
  overflow: hidden;
  background: var(--darkblue);
}
.bg_area {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  overflow: hidden;
}
.bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  filter: blur(20px);
  transform: scale(1.1); /* 端の黒防止 */
  opacity: 0;
}
.kv_bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  overflow: hidden;
  background: url("../img/kv_bg.webp") no-repeat center;
  background-size: cover;
}

.roulette_main,
.headline_area {
  position: relative;
  z-index: 1;
}
.bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.3);
}

.roulette_box {
  width: 1200px;
  margin: 0 auto;
  padding: 0 0px;
  box-sizing: border-box;
  overflow: hidden;
}


/* ルーレット - バナー */
.roulette_main {
  display: block;
  overflow: hidden;
  float: right;
  width: 70%;
  padding-top: 50px;
  padding-bottom: 50px;
}
.roulette_main:active {
  cursor: grabbing;
}
.roulette_main img {
  width: 100%;
  height: auto;
  border-radius: 10px;
}
.banner_wrap {
  display: flex;
}
.banner {
  min-width: 100%;
}

/* ルーレット - 見出し */
.headline_area {
  position: relative;
  height: 80px; /* 高さ固定（重要） */
  width: 50%;
}

.headline {
  position: absolute;
  top: calc(50% + 40px);
  left: 0;
  display: inline-block;
  opacity: 0;
  visibility: hidden;
}

/* ルーレット - 行 */
.line {
  display: block;
  width: fit-content;
  position: relative;
  overflow: hidden;
}

/* ルーレット - 見出し背景 */
.line_bg {
  position: absolute;
  inset: 0;
  background: var(--darkblue);
  transform: scaleX(0);
  transform-origin: left;
  z-index: 0;
}
.line_text {
  position: relative;
  z-index: 1;
  padding: 0 10px;
}
.headline_text {
  font-weight: bold;
  font-size: 170%;
  color: var(--white);
  display: inline-block;
}

/* ルーレット - 文字 */
.char {
  display: inline-block;
  transform: translateY(10px);
  opacity: 0;
}
/* ルーレット - 概要 */
.description {
  display: block;
  width: 400px;
  margin-top: 15px;
  color: var(--white);
  opacity: 0;
  text-shadow: 0px 0px 5px rgba(0, 0, 0, 1);
}
.description .d_big {
  font-size: 120%;
  font-weight: bold;
}
/* ルーレット - サムネ */
.roulette_thumb {
  clear: both;
  margin-top: 20px;
  display: flex;
  justify-content: center;
  align-items: center;
}
.roulette_thumb .thumb {
  cursor: pointer;
  background: var(--darkblue);
  color: var(--white);
  border: none;
  margin: 0px 10px;
  xpadding: 6px 10px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
}
.roulette_thumb .thumb.is-active {
  background: var(--darkblue_hover-l);
  width: 40px;
  height: 40px;
}

/* メイン */
.main_content {
  padding-bottom: 100px;
}

/* 新着記事 */
.content_01 {
  margin-top: 50px;
  width: 1200px;
  margin-left: auto;
  margin-right: auto;
  clear: both;
}
.content_01 h2 {
  min-height: 100px;
  background: url(../img/h2_a_bg.svg) no-repeat left bottom;
  background-size: auto 100px;
  position: relative;
  border-bottom: 2px solid var(--darkblue);
}
.content_01 h2 p {
  position: absolute;
  left: 130px;
  bottom: 10px;
  color: var(--darkblue);
  font-weight: bold;
  font-size: 150%;
}
.content_01 h2 span {
  position: absolute;
  left: 160px;
  bottom: 0px;
  color: rgb(221, 221, 221);
  font-weight: bold;
  font-size: 350%;
}

.new_list {
  margin-top: 30px;
  width: 1200px;
  margin-left: auto;
  margin-right: auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 0% 2%;
  align-items: stretch;
}

.new_list .new_content {
  width: 32%;
  margin-bottom: 50px;
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 15px;
}
/*画像とタイトルをflexで設定するため、クラス追加 (s)*/
.new_content_main{
    display: flex;
    flex-direction: column;
}

.new_content_main a {
  display: block;
  text-decoration: none;
}

/*paddingで調整していた画像サイズ？をaspect-ratioに置き換え（比率で指示） (s)*/
.new_list .new_content_main a .new_content_img {
  position: relative;
  width: 100%;
  aspect-ratio: 16/9;
  border-radius: 10px;
  overflow: hidden;
}
/*「NEW」表示 (s)*/
.new_active{
    position: relative;
    &:before{
        content: "";
        width: 100%;
        height: auto;
        aspect-ratio: 16/9;
        background: url(/segaway/img/new.png);
        background-size: contain;
        background-repeat: no-repeat;
        position: absolute;
        top: 0;
        right: auto;
        bottom: auto;
        left: 0;
        margin: auto;
        z-index: 999;
    }
}

.new_list .new_content_main a .new_content_img {
  position: relative;
  width: 100%;
  aspect-ratio: 16/9;
  border-radius: 10px;
  overflow: hidden;
}
.new_list .new_content_main a .new_content_img img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: .3s;
}
.new_list .new_content_main a:hover .new_content_img img {
  transform: scale(1.05);
}
.new_imgT {
  z-index: 1;
}
.new_imgB {
  z-index: 2;
  opacity: 0;
}
.new_img {
  z-index: 1;
}
.new_img_f {
  z-index: 2;
  opacity: 1;
}
/*.new_content_mainで追加したflex子要素に、flexgrow（可変）を追加 (s)*/
.new_list .new_content_main a .new_content_title {
  display: inline-block;
  font-size: 110%;
  font-weight: bold;
  margin-top: 15px;
  color: transparent;
  background: linear-gradient(to right, var(--darkblue_hover-l) 50%, var(--darkblue) 50%) 100%;
  background-clip: text;
  background-size: 200% 100%;
  transition: background-position 0.3s;
  flex-grow: 1;
}

.new_list .new_content_main a:hover .new_content_title {
  background-position: 0 100%;
}

.new_list .new_content .new_content_add {
  width: 100%;
  border-top: 1px solid var(--gray_border);
  padding-top: 5px;
    margin-top: auto; /* flexbox用 */
}
.new_list .new_content_add .new_content_date,
.new_list .new_content_add .new_content_category {
  font-size: 80%;
}
.new_list .new_content_add .new_content_category a {
  text-decoration: none;
  display: inline-block;
  margin-bottom: 3px;
}
.new_list .new_content_add .new_content_date::before {
  content: '';
  background: url("../img/clock.svg") no-repeat left;
  display: inline-block;
  background-size: contain;
  width: 12px;
  height: 12px;
  margin-right:3px;
  vertical-align: underline;
}
.new_list .new_content_add .new_content_category span.cate {
  display: inline-block;
  color: var(--white);
  padding: 1px 10px;
  transform: skewX(-15deg); /* 全体を斜めに傾ける */
}

.new_list .new_content_add .new_content_category span.tag {
  display: inline-block;
  color: var(--darkblue);
  padding: 0px 9px;
  border: 1px solid;
  transform: skewX(-15deg); /* 全体を斜めに傾ける */
}

/* カテゴリーカラーはbase.css */

.new_list .new_content_add .new_content_category span p {
  transform: skewX(15deg); /* 斜め戻す */
}

/* カテゴリー検索 */
.content_02 {
  background: var(--gray);
}
.content_02_box {
  width: 1100px;
  margin: 80px auto 0px;
  padding: 20px 0px 25px;
}
.content_02 h2 {
  margin-bottom: 15px;
}
.content_02 h2 p {
  text-align: center;
  color: var(--darkblue);
  font-weight: bold;
  font-size: 120%;
}
.content_02 .category_list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 5px;
  margin-bottom: 10px;
}
.content_02 .category_list li a {
  text-decoration: none;
  padding: 2px 15px 2px;
  display: flex;
  justify-content: center;
  align-items: center;
  border: 1px solid;
  color: var(--darkblue);
  border-radius: 20px;
  transition: 0.3s;
}
.content_02 .category_list li a:hover {
  background: var(--darkblue);
  color: var(--white);
  border: 1px solid var(--darkblue);
}

.content_02 .tag_list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 5px;
  font-size: 80%;
}
.content_02 .tag_list li a {
  text-decoration: none;
  padding: 2px 15px 2px;
  display: flex;
  justify-content: center;
  align-items: center;
  border: 1px solid;
  color: var(--darkblue);
  border-radius: 20px;
  transition: 0.3s;
}
.content_02 .tag_list li a:hover {
  background: var(--darkblue);
  color: var(--white);
  border: 1px solid var(--darkblue);
}

/* カテゴリーカラーはbase.css */


/* ショート動画 */
.content_03 {
  width: 1200px;
  margin-top: 80px;
  margin-left: auto;
  margin-right: auto;
  clear: both;
}
.content_03 h2 {
  min-height: 100px;
  background: url(../img/h2_s_bg.svg) no-repeat left bottom;
  background-size: auto 100px;
  position: relative;
}
.content_03 h2 p {
  position: absolute;
  xleft: 150px; /* m */
  left: 130px;
  bottom: 10px;
  color: var(--darkblue);
  font-weight: bold;
  font-size: 150%;
}
.content_03 h2 span {
  position: absolute;
  xleft: 180px; /* m */
  left: 130px;
  bottom: 0px;
  color: rgb(221, 221, 221);
  font-weight: bold;
  font-size: 350%;
}
.content_03_box {
  background: var(--darkblue);
  color: var(--white);
  margin-top: -1px; /* セガロゴフォント下処理 */
  padding-top: 30px;
  padding-bottom: 30px;
}
.movie_box {
  position: relative;
  overflow: hidden;
}
  .scroll-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background-color: rgba(0, 0, 0, 0.5);
    color: white;
    border: none;
    border-radius: 50%;
    width: 80px;
    height: 80px;
    font-size: 150%;
    cursor: pointer;
    z-index: 10;
    transition: opacity 0.25s ease;
  }
  .prev { left: -30px; }
  .next { right: -30px; }
  .scroll-btn.hidden {
    opacity: 0;
    pointer-events: none;
  }
.movie_s {
  width: 1200px;
  margin: 0px auto;
  display: flex;
  column-gap: 15px;
  overflow-x: auto;
  scroll-behavior: auto; /* GSAPで制御 */
  -webkit-overflow-scrolling: touch; /* iOSでの慣性スクロールを滑らかにする */
  touch-action: pan-x;
  scroll-snap-type: x mandatory; /* スクロール位置を綺麗に止める場合 */
  scrollbar-width: none; /* スクロールバー非表示 */
}
.movie_s::-webkit-scrollbar {
    display: none;
  }

.movie_s .youtube_s_box {
  flex: 0 0 235px;
  height: auto;
}
.youtube_s_box .youtube_s {
  position: relative;
  width: 100%;
  aspect-ratio: 9/16;
}
.youtube_s_box .youtube_s iframe {
  position: absolute;
  top: 0;
  right: 0;
  width: 100% !important;
  height: 100% !important;
  border-radius: 10px;
}
.movie_txt {
  margin: 10px 5px;
  font-size: 80%;
}

/* シリーズ紹介 */
.content_04 {
  width: 1200px;
  margin-top: 80px;
  margin-left: auto;
  margin-right: auto;
  clear: both;
}
.content_04 h2 {
  min-height: 100px;
  background: url(../img/h2_s_bg.svg) no-repeat left bottom;
  background-size: auto 100px;
  position: relative;
}
.content_04 h2 p {
  position: absolute;
  left: 120px;
  bottom: 10px;
  color: var(--darkblue);
  font-weight: bold;
  font-size: 180%;
}
.content_04 h2 span {
  position: absolute;
  left: 150px;
  bottom: 0px;
  color: rgb(221, 221, 221);
  font-weight: bold;
  font-size: 350%;
}
.content_04_box_blue {
  background: var(--darkblue);
  color: var(--white);
  margin-top: -1px; /* セガロゴフォント下処理 */
  padding-top: 30px;
  padding-bottom: 30px;
}
.content_04_box_silver {
  background: var(--gray);
  color: var(--black);
  padding-top: 30px;
  padding-bottom: 30px;
}

.content_04_content {
  width: 1200px;
  margin: 0px auto;
  display: flex;
  justify-content: space-between;
}
.content_04_content:after {
    content: "";
    clear: both;
    height: 0;
    display: block;
    visibility: hidden;
}

.content_04_img {
  width: 40%;
  overflow: hidden;
  border-radius: 10px;
}
.content_04_img a img {
  width: 100%;
  height: auto;
  transition: .3s;
}
.content_04_img a:hover img {
  transform: scale(1.05);
}
.content_04_txt {
  width: 40%;
}
.content_04_txt .content_04_title {
  width: 100%;
  text-align: center;
  border-bottom: 1px solid var(--darkblue_border);
  padding-bottom: 20px;
  margin-bottom: 20px;
}
.content_04_txt .content_04_title img {
  width: 40%;
  height: auto;
}
.content_04_more {
  border-left: 1px solid var(--darkblue_hover-d);
  width: 15%;
  display: flex;
  text-align: center;
  justify-content: center;
  align-items: center;
}
.content_04_box_blue .content_04_more a {
  text-decoration: none;
  color: var(--white);
  transition: 0.2s;
}
.content_04_box_silver .content_04_more a {
  text-decoration: none;
  color: var(--darkblue);
  transition: 0.2s;
}
.content_04_box_blue .content_04_more a:hover,
.content_04_box_silver .content_04_more a:hover {
  margin-right: -5px;
}


/*-----------------------------------------------------	*/
/*	for - 1200px以下の記述　*/
/*-----------------------------------------------------	*/

@media screen and (max-width:1200px) {
/* ルーレット */
.roulette {
  overflow: visible;
}
.roulette_box {
  width: 96%;
  height: auto;
  display: flex;
  flex-direction: column;
  overflow: visible;
}
.roulette_main {
  float: none;
  width: 100%;
  position: static;
  padding-top: 50px;
  padding-bottom: 30px;
}
.headline_area {
  position: static;
  height: 240px; /* 高さ固定（重要） */
  width: 96%;
}
.headline {
  position: absolute;
  height: 240px;
  top: auto;
  bottom: 50px;
  left: 4%;
  width: 96%;
}
.description {
  width: 96%;
}

/* 新着記事 */
.content_01 {
  width: 96%;
}
.new_list {
  width: 100%;
}
.new_list .new_content {
  width: 49%;
    gap: 2%;
}

/* カテゴリー検索 */
.content_02_box {
  width: 96%;
}

/* ショート動画 */
.content_03 {
    width: 96%;
}
.movie_s {
    width: 92%;
}

/* シリーズ紹介 */
.content_04 {
  width: 96%;
}
.content_04_content {
  width: 96%;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}

.content_04_img {
  width: 40%;
  padding-bottom: 20px;
}
.content_04_txt {
  width: 55%;
  padding-bottom: 20px;
}
.content_04_txt .content_04_title {
  border-bottom: none;
  padding-bottom: 0px;
  margin-bottom: 0px;
}
.content_04_more {
  border-left: none;
  border-top: 1px solid var(--darkblue_hover-d);
  padding-top: 20px;
  width: 100%;
}
}

/*-----------------------------------------------------	*/
/*	for - 700px以下の記述　*/
/*-----------------------------------------------------	*/

@media screen and (max-width:700px) {
/* ルーレット */
.headline_text {
  font-size: 130%;
  font-size: 4.0vmin;
}
.headline_area {
  height: 200px; /* 高さ固定（重要） */
}
.headline {
  height: 200px;
}

/* 新着記事 */
.content_01 h2 {
  min-height: 80px;
  background: url(../img/h2_a_bg.svg) no-repeat left bottom;
  background-size: auto 80px;
}
.content_01 h2 p {
  left: 100px;
  bottom: 10px;
}
.content_01 h2 span {
  left: 130px;
  bottom: 15px;
  font-size: 240%;
}
.new_list .new_content {
  width: 100%;
}

/* ショート動画 */
.content_03 h2 {
  min-height: 80px;
  background: url(../img/h2_s_bg.svg) no-repeat left bottom;
  background-size: auto 80px;
}
.content_03 h2 p {
  left: 100px;
  bottom: 10px;
}
.content_03 h2 span {
  left: 130px;
  bottom: 15px;
  font-size: 240%;
}
.movie_s .youtube_s_box {
  flex: 0 0 200px;
  height: auto;
}

/* シリーズ紹介 */
.content_04 h2 {
  min-height: 80px;
  background: url(../img/h2_s_bg.svg) no-repeat left bottom;
  background-size: auto 80px;
}
.content_04 h2 p {
  left: 100px;
  bottom: 10px;
}
.content_04 h2 span {
  left: 130px;
  bottom: 15px;
  font-size: 240%;
}

.content_04_img {
  width: 80%;
  margin-left: auto;
  margin-right: auto;
}
.content_04_txt {
  width: 100%;
}
}