@charset "utf-8";
/* top css */

html,
body {
overflow-x: hidden;
}
body::before {
background-image: none;
}

#page_home .loader {
display: none;
}

/*-------------------------------------------------
loading
-------------------------------------------------*/

.loader_top {
position: fixed;
z-index: 1000;
inset: 0;
display: flex;
justify-content: center;
align-items: center;
background: #090D17;
overflow: hidden;
will-change: transform, opacity, visibility;
}
.loading_logo {
position: fixed;
top: var(--pv-logo-top, 40%);
left: 50%;
z-index: 1002;
width: 400px;
height: auto;
transform: translate(-50%, -50%);
opacity: 0;
visibility: hidden;
filter: blur(12px);
pointer-events: none;
}
.kv_center_group {
--pv-logo-width: 400px;
--pv-date-gap: 150px;

position: absolute;
top: var(--pv-logo-top, 35%);
left: 50%;
z-index: 6;
width: var(--pv-logo-width);
transform: translateX(-50%);
pointer-events: none;
}
.pv_logo {
position: absolute;
top: 0;
left: 50%;
z-index: 6;
width: 100%;
height: auto;
transform: translate(-50%, -50%);
opacity: 0;
visibility: hidden;
filter: blur(12px);
pointer-events: none;
}
.loading_logo img,
.pv_logo img {
display: block;
width: 100%;
height: auto;
}

@media all and (max-width : 1024px ){
.loading_logo,
.pv_logo {
width: 320px;
}
.kv_center_group {
--pv-logo-width: 320px;
--pv-date-gap: 128px;
}
}

@media all and (max-width : 820px ){
.loading_logo,
.pv_logo {
width: 300px;
}
.kv_center_group {
--pv-logo-width: 300px;
--pv-date-gap: 120px;
}
}

@media screen and (max-width: 767px) {
.loading_logo,
.pv_logo {
width: 230px;
}
.kv_center_group {
--pv-logo-width: 230px;
--pv-date-gap: 82px;
}
}

.progress {
position: fixed;
top: 50%;
left: 0;
right: 0;
width: min(320px, 60vw);
margin: 0 auto;
z-index: 1001;
will-change: opacity, filter;
}
.progress_inner {
width: 100%;
height: 1px;
background: rgba(255, 255, 255, 0.2);
overflow: hidden;
}
.progress_bar {
width: 100%;
height: 100%;
background: #fff;
transition: none !important;
transform: scaleX(0.7);
transform-origin: left center;
will-change: opacity, filter, transform;
}

/* GSAP表示対象の初期状態 */
.head_navi,
.sidenavi,
.openbtn,
.lang {
visibility: hidden;
opacity: 0;
filter: blur(5px);
}
.pv_digest {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
min-width: 0;
min-height: 0;
object-fit: cover;
transform: none;
}
header {
background: #090D17;
position: relative;
z-index: 2;
}
.header_top {
transition: 1.3s;
position: relative;
height: 100vh;
}

@media all and (max-width : 767px ){
.header_top {
height: 100dvh; 
}
}

.video_box {
--movie-w: 100vw;
--movie-h: 100vh;

position: fixed;
top: 50%;
left: 50%;
width: var(--movie-w);
height: var(--movie-h);
transform: translate(-50%, -50%);
transform-origin: center center;
overflow: hidden;
z-index: 0;
opacity: 0;
visibility: hidden;
}
.video_box::after {
content: "";
position: absolute;
inset: 0;
background: rgba(0, 0, 0, 0.4);
pointer-events: none;
z-index: 1;
}
.pv_date {
position: relative;
top: auto;
left: auto;
width: min(400px, 100%);
max-width: none;
height: auto;
margin: 100px auto 0;
transform: none;
z-index: 5;
opacity: 0;
visibility: hidden;
filter: blur(5px);
}
.pv_date img {
display: block;
width: 100%;
height: auto;
}

@media all and (max-width : 1024px ){
.pv_date {
max-width: 320px;
margin: 80px auto 0;
}
}

@media all and (max-width : 820px ){
.pv_date {
max-width: 300px;
}
}

@media all and (max-width : 767px ){
.pv_date {
width: 230px;
margin: 55px auto 0;
}
}


/*-------------------------------------------------
重要なお知らせ
-------------------------------------------------*/

.kv_important {
position: relative;
left: 50%;
width: 650px;
max-width: calc(100vw - 80px);
margin-top: 50px;
padding: 18px 24px 20px;
transform: translateX(-50%);
background: rgba(0, 0, 0, 0.55);
border: solid 1px rgba(255, 255, 255, 0.35);
box-sizing: border-box;
pointer-events: auto;

opacity: 0;
visibility: hidden;
filter: blur(5px);
}
.kv_important_label {
font-size: 1.5rem;
font-weight: 500;
letter-spacing: 0.15em;
line-height: 1;
margin-bottom: 14px;
color: #fff;
}


/* ticker
-------------------------------------------------*/

.kv_important_ticker {
position: relative;
width: 100%;
height: 24px;
overflow: hidden;
}
.kv_important_track {
position: relative;
width: 100%;
height: 100%;
}
.kv_important_item {
position: absolute;
top: 0;
left: 0;
width: 100%;
opacity: 0;
visibility: hidden;
}
.kv_important_item.is-active {
opacity: 1;
visibility: visible;
}
.kv_important_item a {
display: flex;
align-items: center;
width: 100%;
color: #fff;
text-decoration: none;
}
.kv_important_item time {
flex-shrink: 0;
font-family: "EB Garamond", serif;
font-size: 1.4rem;
letter-spacing: 0.1em;
margin-right: 20px;
}
.kv_important_title {
min-width: 0;
font-size: 1.5rem;
font-weight: 400;
letter-spacing: 0.15em;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.kv_important_item a:hover .kv_important_title {
text-decoration: underline;
}


/*-------------------------------------------------
重要なお知らせ tablet
-------------------------------------------------*/

@media all and (max-width : 1024px ){
.kv_important {
width: 600px;
max-width: calc(100vw - 100px);
margin-top: 40px;
padding: 16px 20px 18px;
}
.kv_important_label {
font-size: 1.3rem;
margin-bottom: 12px;
}
.kv_important_title {
font-size: 1.3rem;
}
}


/*-------------------------------------------------
重要なお知らせ SP
-------------------------------------------------*/

@media all and (max-width : 767px ){
.kv_important {
width: calc(100vw - 50px);
max-width: none;
margin-top: 30px;
padding: 14px 15px 16px;
}
.kv_important_label {
font-size: 1.2rem;
margin-bottom: 10px;
}
.kv_important_ticker {
height: 20px;
}
.kv_important_item time {
font-size: 1.1rem;
margin-right: 12px;
}
.kv_important_title {
font-size: 1.2rem;
letter-spacing: 0.08em;
}
}


/*-------------------------------------------------
header ロゴ表示
-------------------------------------------------*/

#page_home .head_logo {
opacity: 0;
visibility: hidden;
}

/*-------------------------------------------------
overlay
-------------------------------------------------*/

.pv_green_overlay {
position: fixed;
inset: 0;
z-index: 4;
background-color: #002734;
mix-blend-mode: multiply;
opacity: 0;
visibility: visible;
pointer-events: none;
will-change: opacity;
}

/*-------------------------------------------------
sec_concept
-------------------------------------------------*/

.header_bottom {
position: relative;
z-index: 5;
}
.txt_box_inner {
width: 100%;
max-width: 710px;
margin: 40vh auto 150vh;
padding-bottom: 150vh;
}
.concept_title {
display: flex;
align-items: center;
margin-bottom: 20px;
}
.concept_title dt {
font-family: "EB Garamond", serif;
font-weight: 500;
font-size: 1.8rem;
margin-right: 10px;
}
.concept_title dd {
font-size: 1.4rem;
font-weight: 500;
letter-spacing: 0.2em;
padding-left: 15px;
position: relative;
}
.concept_title dd::before {
content: "/";
display: inline-block;
font-size: 1.2rem;
color: #fff;
position: absolute;
left: 0;
top: 0;
}
.concept_copy {
font-family: 'F+UD-TsukuMin-R';
font-weight: 400;
font-size: 3.5rem;
letter-spacing: 0.25em;
margin-bottom: 40px;
}
.concept_txt {
font-size: 1.95rem;
font-weight: 500;
line-height: 240%;
letter-spacing: 0.2em;
margin-bottom: 50px;
}
.sec_concept .link_btn_box {
justify-content: flex-start;
}
.sec_concept .link_btn {  
color:#fff;
padding: 15px 110px;
background-color: transparent;
border: solid 1px #fff;
}
.sec_concept .link_btn:hover {
background: #897658;
border: solid 1px #897658;
transition: ease .3s;
color:#fff;
}
.sec_concept .btn_arrow::after {
border-top: 1px solid #fff;
border-right: 1px solid #fff;
}

@media all and (max-width : 820px ){
.concept_copy {
font-size: 2.8rem;
letter-spacing: 0.25em;
margin-bottom: 30px;
}
.concept_txt {
font-size: 1.6rem;
line-height: 200%;
}
}

@media all and (max-width : 767px ){
.txt_box_inner {
margin: 25vh auto 100vh;
padding-bottom: 120vh;
}
.concept_title {
margin-bottom: 10px;
}
.concept_title dt {
font-size: 1.6rem;
}
.concept_title dd {
font-size: 1.3rem;
}
.concept_title dd::before {
font-size: 1.1rem;
}
.concept_copy {
font-size: 2.0rem;
letter-spacing: 0.1em;
margin-bottom: 20px;
}
.concept_txt {
font-size: 1.4rem;
line-height: 180%;
letter-spacing: 0.15em;
}
}


/*-------------------------------------------------
full movie
-------------------------------------------------*/

.full_movie_btn {
position: fixed;
left: 50%;
top: 50%;
z-index: 30;
width: 180px;
height: 180px;
transform: translate(-50%, -50%);
opacity: 0;
visibility: hidden;
pointer-events: none;
perspective: 900px;
will-change: transform, opacity, filter;
}
.full_movie_btn_ring {
position: absolute;
inset: 0;
display: block;
animation: fullMovieRotate 10s linear infinite reverse;
}
.full_movie_btn_ring img {
display: block;
width: 100%;
height: auto;
}
.full_movie_btn_circle {
position: absolute;
left: 50%;
top: 50%;
width: 135px;
height: 135px;
border-radius: 50%;
background: #fff;
transform: translate(-50%, -50%);
transition: transform 0.5s ease;
overflow: hidden;
}
.full_movie_btn_circle::before {
content: "";
position: absolute;
inset: 0;
border-radius: 50%;
background: linear-gradient(#cea55c, #f1cd89, #cea55c);
opacity: 0;
transition: opacity 0.5s ease;
}
.full_movie_btn_circle::after {
content: "";
position: absolute;
left: 53%;
top: 50%;
width: 0;
height: 0;
border-top: 9px solid transparent;
border-bottom: 9px solid transparent;
border-left: 14px solid #090D17;
transform: translate(-50%, -50%);
}

@keyframes fullMovieRotate {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}

.full_movie_btn:hover .full_movie_btn_circle {
/*background: linear-gradient(90deg, #ebd29f, #fff0d3 50%, #c5ae7d);*/
background: linear-gradient(#cea55c, #f1cd89, #cea55c);
transform: translate(-50%, -50%) scale(1.05);
transition: transform 0.5s ease;
}
.full_movie_btn:hover .full_movie_btn_circle::before {
opacity: 1;
}

@media screen and (max-width: 767px) {
.full_movie_btn {
width: 120px;
height: 120px;
}
.full_movie_btn_circle {
width: 42px;
height: 42px;
}
}


/*-------------------------------------------------
movie modal
-------------------------------------------------*/

.movie_modal {
position: fixed;
inset: 0;
z-index: 200000;
display: none;
opacity: 0;
visibility: hidden;
overflow: hidden; 
}
.movie_modal_bg {
position: absolute;
inset: 0;
background: rgba(0, 0, 0, 0.88);
opacity: 0;
}
.movie_modal_inner {
position: fixed;
inset: 0;
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
padding: 0;
opacity: 0;
visibility: hidden;
filter: blur(8px);
overflow: hidden; 
}

/*
1) 基本は画面幅の75%
2) ただし高さ80vhで16:9に収まる幅まで縮む
3) 最大は1500px
*/
.movie_modal_video_wrap {
position: relative;
width: min(75vw, calc(80vh * 16 / 9), 1500px);
aspect-ratio: 16 / 9;
max-width: calc(100vw - 80px); /* 画面端に食い込まない */
overflow: visible;
flex: 0 1 auto;
}
.movie_modal_video {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
background: #000;
}
.movie_modal_close {
position: absolute;
top: -48px;
right: 0;
width: 40px;
height: 40px;
border: 0;
background: transparent;
cursor: pointer;
padding: 0;
z-index: 5;
}
.movie_modal_close span {
position: absolute;
top: 19px;
left: 4px;
width: 32px;
height: 1px;
background: #fff;
}
.movie_modal_close span:nth-child(1) {
transform: rotate(45deg);
}
.movie_modal_close span:nth-child(2) {
transform: rotate(-45deg);
}
body.is-movie-modal-open {
overflow: hidden;
}
body.is-movie-modal-open .openbtn {
opacity: 0;
visibility: hidden;
}

@media screen and (max-width: 767px) {
.movie_modal_video_wrap {
width: min(92vw, calc(72vh * 16 / 9));
max-width: calc(100vw - 40px);
}
.movie_modal_close {
top: -40px;
width: 34px;
height: 34px;
}
.movie_modal_close span {
top: 16px;
left: 3px;
width: 28px;
}
}


/*-------------------------------------------------
main
-------------------------------------------------*/

.main {
background: transparent;
z-index: 1;
overflow: hidden;
}

@media all and (max-width : 767px ){
.main {
padding-top: 3800px;
}
}

.fixed_movie {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
opacity: .35;
z-index: -1;
pointer-events: none;
}
.bg_illumi {
width: 100%;
height: 100%;
display: block;
object-fit: cover;
}
.sec_box {
position: relative;
z-index: 2;
padding: 80px 0
}
.sec_titlebox {
display: flex;
flex-direction: column;
align-items: center;
margin-bottom: 30px;
}
.sec_titlebox dt {
font-family: "EB Garamond", serif;
font-size: 4.0rem;
font-weight: 400;
letter-spacing: 0.1em;
line-height: 1;
margin-bottom: 10px;
background: linear-gradient(180deg, #ebd29f 0%, #fff0d3 50%, #c5ae7d 100%);
color: transparent;
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
text-fill-color: transparent;
}
.sec_titlebox dd {
font-size: 1.2rem;
color: #ECDCBE;
letter-spacing: 0.2em;
}
.sec_intro_copy {
font-family: 'F+UD-TsukuMin-R';
font-weight: 400;
font-size: 2.6rem;
letter-spacing: 0.3em;
color: #ECDCBE;
text-align: center;
margin-bottom: 30px;
}
.sec_intro_txt {
font-size: 1.6rem;
line-height: 2.0;
letter-spacing: 0.2em;
text-align: center;
}

@media all and (max-width : 1024px ){
.sec_intro_txt {
font-size: 1.5rem;
}
}

@media all and (max-width : 820px ){
.sec_box {
padding: 40px 0
}
.sec_intro_copy {
font-size: 2.4rem;
letter-spacing: 0.2em;
margin-bottom: 20px;
}
.sec_intro_txt {
font-size: 1.5rem;
line-height: 1.8;
}
}

@media all and (max-width : 767px ){
.sec_box {
padding: 20px 0
}
.sec_titlebox dt {
font-size: 3.0rem;
margin-bottom: 10px;
}
.sec_titlebox dd {
font-size: 1.0rem;
letter-spacing: 0.1em;
position: relative;
top: -6px;
}
.sec_intro_copy {
font-size: 2.0rem;
letter-spacing: 0.2em;
margin-bottom: 20px;
}
.sec_intro_txt {
font-size: 1.4rem;
}
}


/*-------------------------------------------------
sec_overview
-------------------------------------------------*/

.outline_box {
width: 100%;
font-size: 1.6rem;
display: flex;
align-items: center;
padding: 30px 30px;
border-bottom: solid 1px rgba(255,255,255,0.25);
letter-spacing: 0.2em;
}
.outline_box.first {
border-top: solid 1px rgba(255,255,255,0.25);
margin-top: 50px;
}
.outline_box dt {
width: 25%;
}
.outline_box dd {
width: 75%;
padding-left: 20px;
}

@media all and (max-width : 820px ){
.outline_box {
font-size: 1.5rem;
padding: 25px 15px;
}
}

@media all and (max-width : 767px ){
.outline_box {
font-size: 1.4rem;
display: flex;
flex-direction: column;
align-items: flex-start;
padding: 20px 5px 20px 15px;
letter-spacing: 0.15em;
}
.outline_box dt {
width: 100%;
margin-bottom: 10px;
}
.outline_box dd {
width: 100%;
padding-left: 0px;
}
}


/*-------------------------------------------------
作品テーマ
-------------------------------------------------*/

.theme_title {
font-size: 1.6rem;
letter-spacing: 0.2em;
color: #ECDCBE;
display: block;
text-align: center;
margin-bottom: 20px;
}
.sec_theme .sec_intro_copy {
color: #fff;
}
.theme_imgbox {
width: 100%;
position: relative;
z-index: 3;
}
.theme_imgbox img {
width: 100%;
}
.box_theme {
margin: 40px 0 30px;
}
.sec_theme .sec_intro_copy {
margin-bottom: 15px;
}
.theme_en_copy {
font-family: "EB Garamond", serif;
font-size: 1.6rem;
font-weight: 400;
letter-spacing: 0.1em;
line-height: 1;
display: block;
text-align: center;
margin-bottom: 50px;
}
.sec_theme .sec_intro_txt {
text-align: left;
margin-bottom: 20px;
}
.p_name {
font-size: 1.5rem;
display: flex;
flex-direction: column;
align-items: flex-end;
margin-bottom: 30px;
}
.p_name dt {
margin-bottom: 5px;
}

@media all and (max-width : 767px ){
.theme_title {
font-size: 1.4rem;
margin-bottom: 15px;
}
.box_theme {
margin: 25px 0 15px;
}
.theme_en_copy {
font-size: 1.3rem;
font-weight: 400;
margin-bottom: 30px;
}
.p_name {
font-size: 1.3rem;
}
}


/*-------------------------------------------------
デジタルマップ
-------------------------------------------------*/

.d_map {
height: 0;
overflow: hidden;
padding-top: 33.33%;
position: relative;
margin-top: 30px;
margin-bottom: 15px;
}
.d_map iframe {
position: absolute;
left: 0;
top: 0;
height: 100%;
width: calc(100% - 82px);
}
.d_map_txt {
font-size: 1.4rem;
text-align: right;
padding-right: 7%;
margin-bottom: 50px;
}

@media all and (max-width : 980px ){
.d_map iframe {
width: 100%;
}
.d_map_txt {
font-size: 1.3rem;
padding-right: 10px;
}
}

@media all and (max-width : 767px ){
.d_map {
width: 90%;
margin: 0 auto 10px;
padding-top: 140%;
}
.d_map_txt {
font-size: 1.2rem;
text-align: center;
margin-bottom: 30px;
}
}



/*-------------------------------------------------
sec_ticket
-------------------------------------------------*/

.paid_box_wrap {
display: flex;
gap:40px;
margin-top: 50px;
margin-bottom: 70px;
}
.paid_box {
width: calc(50% - 40px / 2);
}
.paid_img {
position: relative;
z-index: 3;
}
.paid_img img {
width: 100%;
}
.paid_title {
margin: 15px 0;
}
.paid_title dt {
font-size: 2.0rem;
letter-spacing: 0.2em;
color: #ECDCBE;
display: block;
text-align: center;
margin-bottom: 20px;
}
.paid_title dd {
font-size: 1.5rem;
line-height: 2.0;
letter-spacing: 0.2em;
}
.cation_txt {
font-size: 1.2rem;
letter-spacing: 0.2em;
}

@media all and (max-width : 1024px ){
.paid_box_wrap {
gap:30px;
}
.paid_box {
width: calc(50% - 30px / 2);
}
}

@media all and (max-width : 820px ){
.paid_box_wrap {
gap:20px;
}
.paid_box {
width: calc(50% - 20px / 2);
}
.paid_title dt {
font-size: 1.8rem;
letter-spacing: 0.1em;
margin-bottom: 15px;
}
.paid_title dd {
font-size: 1.45rem;
line-height: 1.8;
letter-spacing: 0.1em;
}
}

@media all and (max-width : 767px ){
.paid_box_wrap {
gap:0px;
flex-wrap: wrap;
margin-top: 30px;
margin-bottom: 30px;
}
.paid_box {
width: 100%;
margin-bottom: 20px;
}
.paid_title dt {
font-size: 1.6rem;
letter-spacing: 0.1em;
margin-bottom: 15px;
}
.paid_title dd {
font-size: 1.4rem;
}
}


/*-------------------------------------------------
sec_event
-------------------------------------------------*/

.event_box {
width: calc(33.33333333% - 60px / 3);
padding-bottom: 25px;
position: relative;
background: #fff;
color: #222;
}
.event_img_inner {
display: block;
overflow: hidden;
position: relative;
z-index: 3;
}
.event_box .event_img {
position: relative;
background: #000;
overflow: hidden;
}
.event_box .event_img img {
display: block;
width: 100%;
aspect-ratio: 3 / 2;
object-fit: cover;
transform: scale(1);
transition: transform 0.5s ease, opacity 0.5s ease;
will-change: transform, opacity;
}
.event_box a:hover .event_img_inner img {
transform: scale(1.05);
opacity: .8;
}
.event_box .event_title {
font-weight: 600;
font-size: 1.6rem;
margin-bottom: 15px;
letter-spacing: 0.1em;
line-height: 145%;
padding: 20px 20px 0 20px;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
text-overflow: ellipsis;
}
.event_box .event_info {
display: flex;
align-items: center;
padding: 0 20px;
margin-bottom: 10px;
}
.event_box .event_info dt {
height: 15px;
width: auto;
margin-right: 7px;
}
.event_box .event_info dt img {
max-width :none;
}
.event_box .event_info dd {
font-size: 1.4rem;
margin-left: 5px;
margin-bottom: 0px;
}
.event_box .event_txt {
font-size: 1.4rem;
padding: 5px 20px;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
text-overflow: ellipsis;
}
.event_box_wrap {
display: flex;
gap: 30px;
flex-wrap: wrap;
padding-top: 50px;
margin-bottom: 60px;
}

@media all and (max-width : 1024px ){
.event_box {
width: calc(50% - 30px / 2);
}
.event_box:nth-child(3) {
display: none;
}
}

@media all and (max-width : 767px ){
.sec_link .sec_title_en {
width: 25%;
}
.sec_link {
margin-bottom: 40px;
}
.event_box {
width: 100%;
margin-right: 0px;
margin-bottom: 20px;
padding-bottom: 15px;
}
.event_box .event_img {
margin-bottom: 10px;
}
.event_box .event_title {
font-size: 1.6rem;
padding: 5px 5px 0 20px;
margin-bottom: 15px;
}
.event_box .event_info {
display: flex;
align-items: center;
padding: 0 20px;
margin-bottom: 10px;
}
.event_box .event_info dt {
height: 14px;
margin-right: 5px;
}
.event_box .event_info dt img {
width: 80%;
}
.event_box .event_info dd {
font-size: 1.3rem;
margin-left: 0;
}
.event_box_wrap {
display: flex;
flex-direction: column;
flex-wrap: wrap;
padding-top: 30px;
margin-bottom: 20px;
}
}


/*-------------------------------------------------
sec_news
-------------------------------------------------*/

.news_box {
width: 100%;
display: flex;
align-items: center;
padding: 30px 30px;
border-bottom: solid 1px rgba(255,255,255,0.25);
letter-spacing: 0.2em;
}
.news_date_box {
display: flex;
align-items: center;
}
.news_date_box .date {
font-family: "EB Garamond", serif;
font-weight: 400;
font-size: 1.6rem;
letter-spacing: 0.1em;
margin-right: 20px;
}
.news_box.first {
border-top: solid 1px rgba(255,255,255,0.25);
margin-top: 50px;
}
.news_date_box .news_cate {
font-size: 1.2rem;
white-space: nowrap;
line-height: 1.0;
padding: 5px 20px;
text-align: center;
border: solid 1px #fff;
margin-right: 30px;
}
.news_title {
font-size: 1.5rem;
font-weight: 400;
letter-spacing: 0.2em;
}
.news_title a:hover {
text-decoration: underline;
}
.news_box_wrap {
margin-bottom: 50px;
}

@media all and (max-width : 820px ){
.news_box {
padding: 25px 15px;
}
}

@media all and (max-width : 767px ){
.news_box {
width: 100%;
display: flex;
flex-direction: column;
align-items: flex-start;
padding: 20px 5px 15px 10px;
}
.news_date_box {
margin-bottom: 10px;
}
.news_date_box .date {
font-size: 1.3rem;
margin-right: 10px;
}
.news_box.first {
margin-top: 25px;
}
.news_date_box .news_cate {
font-size: 1.0rem;
padding: 5px 10px;
margin-right: 0px;
}
.news_title {
font-size: 1.3rem;
letter-spacing: 0.15em;
}
.news_box_wrap {
margin-bottom: 30px;
}
}


/*-------------------------------------------------
sec_donation
-------------------------------------------------*/

.sec_donation {
background-image: url("../img/top/donation_bg.jpg");
background-position: center top;
background-repeat: no-repeat;
background-size: cover;
position: relative;
z-index: 5;
padding: 100px 0 120px; 
margin-top: 50px;
}
.sec_donation::after {
content: "";
display: block;
width: 100%;
height: 100%;
background: #000;
opacity: .5;
position: absolute;
left: 0;
top: 0;
z-index: 1;
}
.sec_donation .box_m {
position: relative;
z-index: 3;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.sec_donation .sec_intro_copy {
color: #fff;
margin-bottom: 50px;
}
.sec_donation .sec_intro_txt {
margin-bottom: 60px;
}
.generic {
display: none;
}

@media all and (max-width : 1024px ){
.sec_donation .sec_intro_copy {
font-size: 2.2rem;
margin-bottom: 30px;
}
.generic {
display: block;
}
}

@media all and (max-width : 767px ){
.sec_donation {
padding: 50px 0 60px; 
margin-top: 30px;
}
.sec_donation .sec_intro_copy {
font-size: 2.0rem;
letter-spacing: 0.2em;
margin-bottom: 20px;
}
.sec_donation .sec_intro_txt {
margin-bottom: 30px;
}
}


/*-------------------------------------------------
スポンサースライド
-------------------------------------------------*/

.sec_sponsor {
width: 100%;
background: #fff;
position: relative;
}
.sponsor_loop {
width: 100%;
overflow: hidden;
}
.sponsor_track {
display: flex;
width: max-content;
will-change: transform;
}
.sponsor_group {
display: flex;
align-items: center;
flex-shrink: 0;
gap: 10px;
padding: 10px 10px;
}
.sponsor_group a {
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
width: 200px;
height: 70px;
}
.sponsor_group img {
display: block;
width: 100%;
object-fit: contain;
transition:
opacity 0.35s ease,
transform 0.35s ease;
}
.sponsor_group a:hover img {
opacity: 0.65;
transform: scale(0.96);
}

@media all and (max-width: 979px) {
.sponsor_group {
padding: 5px 10px;
}
}

@media all and (max-width: 767px) {
.sponsor_group {
gap: 10px;
padding: 5px 0px;
}
.sponsor_group a {
width: 120px;
height: auto;
}
.sponsor_group img {
width: 120px;
height: auto;
}
}