/* 親要素は画像のラッパーのまま（変更なし） */
.news_header-wrap {
    position: relative;
    width: 100%;
}

.news_header-wrap img {
    width: 100%;
    /* 画像がコンテナの高さを決定する役割。 */
    /* 必要に応じて 'object-fit: cover;' なども検討してください。 */
}

/*------------------------------------------------------------------------------------------------
moonrabi-Menu コミュニティ無ver
------------------------------------------------------------------------------------------------*/

@media screen and (max-width:1024px) {
    #moonrabi-nav{
    display: none;
    }
}

#moonrabi-nav{
    font-family: 'Noto-Sans-JP', "sans-serif";
    color: #fff;
    background-color: #fff;
    letter-spacing: 0;
    line-height: 1;
    width: 100%;
}

#moonrabi-nav .subNav{
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 10px 0% 10px 0%;
}

#moonrabi-nav .subNav li{
    list-style: none;
    position: relative;
    font-weight: bold;
}

.subNav {
    margin: 0;
}

.moonrabi-btn {
    margin-bottom: 8px;
}

.subNav li .moonrabi-btn{
    display: flex;
    justify-content: space-evenly;
    align-items: center;
	text-decoration: none;
	width: auto;
	padding: 0.7rem 1rem;
	font-weight: bold;
	background: #39b89f;
	color: #fff;
	position: relative;
    font-size: 0.85rem;
}

#moonrabi-nav .subNav li .moonrabi-btn::before {
	content: '';
	width: 0.7rem;
	height: 0.7rem;
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
	transform: rotate(45deg);
    margin-right: 1.5rem;
}

#moonrabi-nav .subNav li .moonrabi-btn:hover {
	background: #595656;
    transition: 0.3s;
}

#moonrabi-nav .subNav li:first-child{
    margin-right: min(420 / 1000 * 72vw, 550px);
    margin-left: 2rem;
}

#moonrabi-nav .subNav li:nth-child(n+2):nth-child(-n+3){
    margin-top: 0.6rem;
    margin-left: 1rem;
}

#moonrabi-nav .subNav li:nth-child(n+4):nth-child(-n+5){
    margin-top: 0.8rem;
    margin-left: 1rem;
}

.moonrabi_login-btn {
    padding-bottom: 5px;
}

.moonrabi_login-btn:hover {
    opacity: 0.7;
    transition: 0.3s;
}

/*------------------------------------------------------------------------------------------------
moonrabi-Menu end
------------------------------------------------------------------------------------------------*/


/*------------------------------------------------------------------------
ナビゲーション
------------------------------------------------------------------------*/

header {
transition: 0.5s;
}

.header_wrapper {
/* width: 100%; */
position: sticky;
z-index: 999999;
top: 0px;
background-color: rgb(10 39 77 / 0.9);
display: flex;
text-align: center;
justify-content: center;
}

.p7g_logo_h1 {
position: sticky;
float: left;
z-index: 999;
top: 0px;
margin: 0;
/* padding-right: 120px; */
margin-right: min(420 / 1000 * 100vw, 150px);
/* left: 10vw; */
}

.dropdownmenu {
position: sticky;
z-index: 8;
top: 0px;
width: 100%;
display: flex;
align-items: center;
justify-content: space-evenly;
padding: 6px 0 6px 0;
background-color:rgb(10 39 77)
}

/* .dropdownmenu ul, .dropdownmenu li {
    margin: 0;
    padding: 0;
width: 100%;
} */

/* .dropdownmenu ul {
    list-style: none;
    width: 100%;
height: fit-content;
display: flex;
align-items: center;
padding: 5px 6% 5px 50%;
} */
/*これはコミュニティが解放されたら使用*/

.dropdownmenu ul {
/* position: sticky;
top: 0px; */
    list-style: none;
    /* width: 100%; */
height: fit-content;
display: flex;
/* justify-content: center; */
align-items: center;
/* padding: 10px 5% 10px 55%; */
}

.dropdownmenu li {
    float: left;
    position: relative;
    /* width: auto; */
}

/* .dropdownmenu li:hover {
opacity: 0.5;
transition: 0.3s;
} */

.ddmenu_li {
width: 175px;
}

.dropdownmenu a {
    /* background-color: rgb(10 39 77 / 0.9); */
    color: #FFFFFF;
    display: block;
    font: bold 12px/20px sans-serif;
    padding: 0px 0px 0px 0px;
    text-align: center;
    text-decoration: none;
    -webkit-transition: all .25s ease;
    -moz-transition: all .25s ease;
    -ms-transition: all .25s ease;
    -o-transition: all .25s ease;
    transition: all .25s ease;
}

.dropdownmenu .a_nav:hover {
opacity: 0.5;
transition: 0.3s;
}

/* .dropdownmenu li:hover a {
    background: rgb(10 39 77 / 0.9);
} */
#submenu {
    left: 0;
    opacity: 0;
    position: absolute;
    top: 35px;
    visibility: hidden;
    z-index: 1;
display: flex;
flex-direction: column;
padding: 0;
width: 175px;
}
li:hover ul#submenu {
    opacity: 1;
    top: 39px;	/* adjust this as per top nav padding top & bottom comes */
    visibility: visible;
}
#submenu li {
    float: none;
    width: 100%;
}
#submenu a:hover {
    background-color:rgb(10 39 77);
/* background-color: red; */
}
#submenu a {
    background-color:rgb(10 39 77 / 0.75);
padding: 10px 0 10px 0;
}

.nav_x-icon {
width: 25px;
height: auto;
display: block;
align-items: center;
}

.nav_x-icon:hover {
opacity: 0.5;
transition: 0.3s;
}

.nav_discord-icon {
width: 32px;
height: auto;
display: block;
align-items: center;
margin-left: 25px;
}

.nav_discord-icon:hover {
opacity: 0.5;
transition: 0.3s;
}

@media screen and (max-width:1024px) {
    .dropdownmenu{
    display: none;
    }
    .header_wrapper {
    /* width: 100%; */
    position: absolute;
    z-index: 999999;
    top: 0px;
    background-color: transparent;
    display: flex;
    text-align: center;
    justify-content: center;
    }
    .p7g_logo_sp {
        display: block;
        position: fixed;
        top: 0px;
        left: 0;
        transition: all .5s;
        cursor: pointer;
        z-index: 3;
        margin: -3px 0 0 5px;
    }
}



.hamnav {
display: block;
position: fixed;
top: 0;
left: -300px;
bottom: 0;
width: 300px;
background: #ffffff;
overflow-x: hidden;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
transition: all .5s;
z-index: 3;
opacity: 0;
}
.open .hamnav {
left: 0;
opacity: 1;
}
.hamnav .inner {
padding: 85px 25px 0 25px;
}
.hamnav .inner ul {
list-style: none;
margin: 0;
padding: 0;
}
.hamnav .inner ul li {
position: relative;
margin: 0;
}
.hamnav .inner ul li a {
display: block;
color: #333;
font-size: 14px;
padding: 1em;
text-decoration: none;
transition-duration: 0.2s;
}
.hamnav .inner ul li a:hover {
background: #e4e4e4;
}
@media screen and (max-width: 767px) {
.hamnav {
    left: -220px;
    width: 220px;
}
}
/*============
.toggle_btn
=============*/
.toggle_btn {
display: block;
position: fixed;
top: 30px;
right: 30px;
width: 40px;
height: 30px;
transition: all .5s;
cursor: pointer;
z-index: 3;
}
.toggle_btn span {
display: block;
position: absolute;
left: 0;
width: 30px;
height: 4px;
background-color: #fff;
border-radius: 4px;
transition: all .5s;
box-shadow: 0px 6px 15px 0px rgba(0, 0, 0, 0.4);
}
.toggle_btn span:nth-child(1) {
top: 4px;
}
.toggle_btn span:nth-child(2) {
top: 15px;
}
.toggle_btn span:nth-child(3) {
bottom: 0px;
}
.open .toggle_btn span {
background-color: #fff;
}
.open .toggle_btn span:nth-child(1) {
-webkit-transform: translateY(10px) rotate(-315deg);
transform: translateY(12px) rotate(-315deg);
}
.open .toggle_btn span:nth-child(2) {
opacity: 0;
}
.open .toggle_btn span:nth-child(3) {
-webkit-transform: translateY(-10px) rotate(315deg);
transform: translateY(-10px) rotate(315deg);
}

@media screen and (max-width: 768px) {
    .toggle_btn {
    display: block;
    position: fixed;
    top: 30px;
    right: 30px;
    width: 40px;
    height: 30px;
    transition: all .5s;
    cursor: pointer;
    z-index: 3;
    }
}

@media screen and (max-width: 428px) {
    .toggle_btn {
    display: block;
    position: fixed;
    top: 30px;
    right: 30px;
    width: 40px;
    height: 30px;
    transition: all .5s;
    cursor: pointer;
    z-index: 3;
    }
}


/*============
#mask
=============*/
#mask {
display: none;
transition: all .5s;
}
.open #mask {
display: block;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: #000;
opacity: .8;
z-index: 2;
cursor: pointer;
}

@media screen and (min-width: 1025px) {
#navArea {
    display: none;
}
}


/* ------------------
ハンバーガー内アコーディオン
------------------ */

/* ------------------ */
/* ×印 */
/* ------------------ */
/*activeクラスが付与されると線が回転して×になる*/
#header-hamburger.active span:nth-of-type(1) {
    top: 50%;
    left: 25%;
    transform: rotate(-45deg);
    width: 50%;
}

#header-hamburger.active span:nth-of-type(2) {
    opacity: 0;
}

#header-hamburger.active span:nth-of-type(3) {
    top: 50%;
    left: 25%;
    transform: rotate(45deg);
    width: 50%;
}
/* ----------------------------------------------- */
/* メニューウィンドウ */
/* -------------------------- */


/*スクロールバー非表示（Chrome・Safari）*/
.content::-webkit-scrollbar{
    display:none;
}

#hamburger-window.open {
    visibility: visible;
    right: 0;
}

.hamburger-window__link {
    display: block;
    margin: 0 auto;
    width: 100%;
}

/* ----------------------------------
アコーディオン部分
--------------------- */
.acordion-menu-wrapper {
    background-color: #fff
}

.acordion-btn {
    display: flex;
    align-items: center;
    border-bottom: 1px solid #BFBFBF;
    /* padding-left: 5%; */
}

.none-acordion {
display: flex;
align-items: center;
border-bottom: 1px solid #BFBFBF;
padding-left: 5%;
}

.acordion-btn::after {
    /* fontawesomeアイコンを表示 */
    content: url(../images/nav/hamnav_plus.svg);
    /* background-image: url(../images/hamnav_plus.svg);
    background-repeat: none;
    background-size: contain; */
    /* font-weight: 900;
    font-family: "Font Awesome 6 Free"; */
    display: inline-block;
    position: absolute;
    top: 15px;
    right: 5%;
    width: 10px;
    aspect-ratio: 1/1;
    color: #051730;
}

.acordion-btn.is-open::after {
    /* fontawesomeアイコンを表示 */
    content: url(../images/nav/hamnav_minus.svg);
    top: 11px;
}

.hamburger-window__title {
    color: #051730;
    text-align: left;
    font-weight: 700;
    margin: 0;
}

.acordion>.acordion__item {
    position: relative;
    text-align: left;
    width: 100%;
    /* background-color: #dfdfdf; */
    /* 閉じている状態 */
    /* border-top: 0 #BFBFBF solid; */
    line-height: 0;
    /* 閉じるアニメーション */
    transition:
        border-top .1s ease-out,
}

.acordion.is-open>.acordion__item {
    /* background-color: #dfdfdf; */
    /* 開いている状態 */
    /* border-top: 1px #BFBFBF solid; */
    /* 開くアニメーション */
    transition:
    border-top .1s ease-out,
}

.acordion.is-open>.acordion__item:first-child {
    border-top: none;
}

.acordion.is-open>.acordion__item::after {
    /* fontawesomeアイコンを表示 */
    content: '';
    display: inline-block;
    position: absolute;
    top: 50%;
    right: 10%;
    width: 10px;
    aspect-ratio: 1/1;
    color: #333;
}

.acordion>.acordion__item>.acordion__link {
    color: #333;
    display: block;
    padding-left: 7%;
    /* 閉じている状態 */
    padding-top: 0;
    padding-bottom: 0;
    line-height: 0;
    opacity: 0;
    visibility: hidden;
    /* 閉じるアニメーション */
    transition:
        padding-top .3s ease-out,
        padding-bottom .3s ease-out,
        line-height .3s ease-out,
        opacity .1s linear,
        visibility .1s linear;
}

.acordion.is-open>.acordion__item>.acordion__link {
    display: block;
    padding-left: 7%;
    /* 開いている状態 */
    padding-top: 13px;
    padding-bottom: 13px;
    line-height: 1.5;
    opacity: 1;
    visibility: visible;
    border-bottom: 1px solid #bfbfbf;
    /* 開くアニメーション */
    transition:
        padding-top .3s ease-out,
        padding-bottom .3s ease-out,
        line-height .3s ease-out,
        opacity .1s linear,
        visibility .1s linear;
}

.hamnav_p7g-logo img {
/* width: 20vw; */
margin: 0;
}

.hamnav_p7g-logo h2 {
    margin-bottom: 0;
}

.hamnav_sns-icon {
display: flex;
align-items: center;
}
.hamnav_x-icon img {
/* position: absolute; */
width: 30px;
height: auto;
}

.hamnav_discord-icon img {
/* position: absolute; */
width: 35px;
height: auto;
}

.hamnav_x-icon:hover .hamnav_discord-icon:hover img {
opacity: 0.7;
transition: 0.3s;
}

/*------------------------------------------------------------------------
ナビゲーションend
------------------------------------------------------------------------*/

/* 親要素は画像のラッパーのまま（変更なし） */
.news_header-wrap {
    position: relative;
    width: 100%;
}

@media screen and (min-width: 1025px) {
    .news_header-PC img {
        width: 100%;
        /* 画像がコンテナの高さを決定する役割。 */
        /* 必要に応じて 'object-fit: cover;' なども検討してください。 */
    }
    .news_header-PCmid img {
        display: none;
        /* 画像がコンテナの高さを決定する役割。 */
        /* 必要に応じて 'object-fit: cover;' なども検討してください。 */
    }
    .news_header-tab img {
        display: none;
        /* 画像がコンテナの高さを決定する役割。 */
        /* 必要に応じて 'object-fit: cover;' なども検討してください。 */
    }
    .news_header-SP img {
        display: none;
        /* 画像がコンテナの高さを決定する役割。 */
        /* 必要に応じて 'object-fit: cover;' なども検討してください。 */
    }
}

@media (min-width: 769px) and (max-width: 1024px) {
    .news_header-PC img {
        display: none;
        /* 画像がコンテナの高さを決定する役割。 */
        /* 必要に応じて 'object-fit: cover;' なども検討してください。 */
    }
    .news_header-PCmid img {
        width: 100%;
        /* 画像がコンテナの高さを決定する役割。 */
        /* 必要に応じて 'object-fit: cover;' なども検討してください。 */
    }
    .news_header-tab img {
        display: none;
        /* 画像がコンテナの高さを決定する役割。 */
        /* 必要に応じて 'object-fit: cover;' なども検討してください。 */
    }
    .news_header-SP img {
        display: none;
        /* 画像がコンテナの高さを決定する役割。 */
        /* 必要に応じて 'object-fit: cover;' なども検討してください。 */
    }
}

@media (min-width: 429px) and (max-width: 768px) {
    .news_header-PC img {
        display: none;
        /* 画像がコンテナの高さを決定する役割。 */
        /* 必要に応じて 'object-fit: cover;' なども検討してください。 */
    }
    .news_header-PCmid img {
        display: none;
        /* 画像がコンテナの高さを決定する役割。 */
        /* 必要に応じて 'object-fit: cover;' なども検討してください。 */
    }
    .news_header-tab img {
        width: 100%;
    }
    .news_header-SP img {
        display: none;
        /* 画像がコンテナの高さを決定する役割。 */
        /* 必要に応じて 'object-fit: cover;' なども検討してください。 */
    }
}

@media (max-width: 428px) {
    .news_header-SP img {
        width: 100%;
    }
    .news_header-PC img {
        display: none;
        /* 画像がコンテナの高さを決定する役割。 */
        /* 必要に応じて 'object-fit: cover;' なども検討してください。 */
    }
    .news_header-PCmid img {
        display: none;
        /* 画像がコンテナの高さを決定する役割。 */
        /* 必要に応じて 'object-fit: cover;' なども検討してください。 */
    }
    .news_header-tab img {
        display: none;
        /* 画像がコンテナの高さを決定する役割。 */
        /* 必要に応じて 'object-fit: cover;' なども検討してください。 */
    }
}

.news_btn_wrap {
    width: 85%;
    text-align: center;
    cursor: pointer;
    position: relative;
    padding: 10px 0;
    font-size: 15px;
    color: rgb(30, 105, 207);
    border: 2px solid rgb(30, 105, 207);
    border-radius: 34px;
    background-color: #fff;
    font-weight: 600;
    transition: all 0.3s cubic-bezier(0.23, 1, 0.32, 1);
    overflow: hidden;
    text-decoration: none;
    word-break: break-word;
}

.news_btn_wrap::before {
    content: "";
    position: absolute;
    inset: 0;
    margin: auto;
    width: 50px;
    height: 50px;
    border-radius: inherit;
    scale: 0;
    z-index: -1;
    background-color: rgb(30, 105, 207);
    transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1);
}

.news_btn_wrap:hover::before {
    scale: 10;
}

.news_btn_wrap:hover {
    color: #ffffff;
    scale: 1.1;
    box-shadow: 0 0px 20px rgba(30, 105, 207, 0.4);
}

.news_btn_wrap:active {
    scale: 1;
}

.news_btn_container_pc {
    padding: 50px 30px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    column-gap: 10;
    max-width: 1200px;
    margin: 0 auto;
    justify-items: center;
}

@media (min-width: 769px) {
.news_btn_container_sp {
    display: none;
    }
}

.news_btn_bottom_row {
    /* Gridの1行全体（1列目から4列目の開始線まで）を占有 */
    grid-column: 1 / 4; 
    
    /* Flexboxを適用し、中身を中央に寄せる */
    display: flex;
    justify-content: center;
    
    /* 下段ボタン間の隙間 */
    gap: 80px;
    padding-top: 20px;
    
    /* ボタンを縦に並べないよう設定 */
    width: 100%;
}

.news_btn_bottom_row a.news_btn_wrap {
    /* Flexアイテムとなったので幅の定義を変更 */
    width: 30%; /* 例として幅を固定（お好みで調整） */
    max-width: 40%; /* 画面が狭くなったら縮むように */
}

.news_btn_container_pc a.news_btn_wrap:nth-child(4) {
    grid-column: 2 / 3;
    justify-self: center; /* 2列目の中央に配置 */
}

/* 5番目のボタン：3列目開始から4列目開始までのスペースを占有し、中央に配置 */
.news_btn_container_pc a.news_btn_wrap:nth-child(5) {
    grid-column: 3 / 4;
    justify-self: center; /* 3列目の中央に配置 */
}

/* --- レスポンシブ対応 --- */
@media (max-width: 768px) {
    .news_btn_wrap {
    width: 85%;
    text-align: center;
    cursor: pointer;
    position: relative;
    padding: 10px 0;
    margin-top: 10px;
    font-size: 15px;
    color: rgb(30, 105, 207);
    border: 2px solid rgb(30, 105, 207);
    border-radius: 34px;
    background-color: #fff;
    font-weight: 600;
    transition: all 0.3s cubic-bezier(0.23, 1, 0.32, 1);
    overflow: hidden;
    text-decoration: none;
    word-break: break-word;
    }
    /* 画面幅が768px以下になったら、2列に変更 */
    .news_btn_container_pc {
    display: none;
    }
    .news_btn_container_sp {
    padding: 30px 30px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    column-gap: 10;
    max-width: 1200px;
    margin: 0 auto;
    justify-items: center;
    }
    .news_btn_container_sp a.news_btn_wrap:nth-child(5) {
    grid-column: 1 / 3; /* 1列目から3列目まで占有 */
    margin: 10px 0 0;
    width: 45%;
    justify-self: center; /* 中央寄せを指示 */
    }
}

@media (max-width: 480px) {
    /* 画面幅が480px以下になったら、1列に変更 */
    .news_container {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 428px) {
    .news_btn_container_sp {
    padding: 30px 30px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    column-gap: 10;
    max-width: 1200px;
    margin: 0 auto;
    justify-items: center;
    }
}

.news_btn_wrap {
    width: 85%;
    text-align: center;
    cursor: pointer;
    position: relative;
    padding: 10px 0;
    font-size: 15px;
    color: #051730;
    border: 2px solid #0A274D;
    border-radius: 34px;
    background-color: #fff;
    font-weight: 600;
    transition: all 0.3s cubic-bezier(0.23, 1, 0.32, 1);
    overflow: hidden;
    text-decoration: none;
}

@media (max-width: 428px) {
    .news_btn_wrap {
    width: 95%;
    text-align: center;
    cursor: pointer;
    position: relative;
    padding: 10px 0;
    font-size: 0.8rem;
    color: #051730;
    border: 2px solid #0A274D;
    border-radius: 34px;
    background-color: #fff;
    font-weight: 600;
    transition: all 0.3s cubic-bezier(0.23, 1, 0.32, 1);
    overflow: hidden;
    text-decoration: none;
    }
}


.news_btn_wrap::before {
    content: "";
    position: absolute;
    inset: 0;
    margin: auto;
    width: 50px;
    height: 50px;
    border-radius: inherit;
    scale: 0;
    z-index: -1;
    background-color: #0A274D;
    transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1);
}

.news_btn_wrap:hover::before {
    scale: 10;
}

.news_btn_wrap:hover {
    color: #ffffff;
    scale: 1.1;
    box-shadow: 0 0px 20px rgba(5, 23, 48, 0.4);
}

.news_btn_wrap:active {
    scale: 1;
}

.news_btn_container {
    padding: 50px 30px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    column-gap: 10;
    max-width: 1200px;
    margin: 0 auto;
    justify-items: center;
}

.news_btn_wrap {
    /* テキストがはみ出さないように */
    word-break: break-word;
}

/* --- レスポンシブ対応 --- */
@media (max-width: 768px) {
    /* 画面幅が768px以下になったら、2列に変更 */
    .news_btn_container {
    padding: 30px 30px;
    /* Gridコンテナとして定義 */
    display: grid;
    /* 3つの列を定義。fr単位で等幅にする */
    grid-template-columns: repeat(2, 1fr);
    /* アイテム間の間隔（行と列） */
    gap: 10px; 
    /* 必要に応じて、コンテナの最大幅を設定 */
    max-width: 1200px;
    margin: 0 auto;
    justify-items: center;
    align-items: center;
    }
}

@media (max-width: 480px) {
    /* 画面幅が480px以下になったら、1列に変更 */
    .news_container {
        grid-template-columns: 1fr;
    }
}