@charset "utf-8";
/* CSS Document */

#wrapper{ width: 100%; margin: 0px auto; min-width: 1200px; overflow: hidden; position: relative;}
h2.english-title{ text-align: center; color: var(--clr-primary); font-size: var(--fs-2xl); font-family: var(--font-en); margin-bottom: var(--sp-base);}

/*=============================================================
	main
=============================================================*/
.contents{ width: 100%; padding: var(--sp-lg) 0; position: relative; z-index: 2;}
.contents section{ width: 90%; margin: 0px auto; max-width: 1200px;}

#page-title{ padding: var(--sp-lg) 0; text-align: center; background-image: linear-gradient(90deg, rgba(95, 210, 210, 1.0), rgba(174, 214, 251, 1.0));}
#page-title h1{ text-align: center; font-size: var(--fs-2xl); color: var(--clr-primary-dark); line-height: 1.4em;}
#page-title h1 span{ display: block; text-align: center; font-size: var(--fs-md); font-family: var(--font-en); color: #FFF; line-height: 1.2em;}

h2.index-heading{ display: flex; justify-content: flex-start; flex-wrap: wrap; align-items: flex-end; font-size: var(--fs-lg); margin-bottom: var(--sp-md);}
h2.index-heading span{ font-size: var(--fs-2xl); font-family: var(--font-en); line-height: 1.0em; color: var(--clr-primary); margin-right: var(--sp-sm);}

.breadcrumbs{ padding: var(--sp-sm) 0; border-bottom: solid 1px rgba(0,0,0,0.08);}
.breadcrumbs ul{ display: flex; justify-content: flex-start; flex-wrap: wrap; align-items: center; width: 90%; margin: 0px auto; max-width: 1200px;}
.breadcrumbs ul li{ line-height: 1.0em; color: rgba(51,51,51,0.48); position: relative; max-width: 20em; text-overflow: ellipsis; white-space: nowrap; overflow: hidden;}
.breadcrumbs ul li:nth-child(n+2){ padding-left: 1.6em;}
.breadcrumbs ul li:nth-child(n+2):before{ content: "\e315"; font-family: "Material Symbols Outlined"; font-size: 1.6rem; line-height: 1.0em; position: absolute; top: 50%; left: 0.3em; transform: translateY(-50%);}
.breadcrumbs ul li.home{ padding-left: 1.2em; position: relative;}
.breadcrumbs ul li.home span{ position: absolute; top: 0; left: 0; font-size: 1.6rem;}
.breadcrumbs ul li a{ display: inline-block; color: #333; text-decoration: none; line-height: 1.0em;}
.breadcrumbs ul li a:hover{ color: rgba(51,51,51,0.64);}

.more-button a{ display: inline-block; color: #FFF; text-decoration: none; line-height: 1.0em; padding: 0.4em 1.2em; border-radius: 100px; background: var(--clr-primary-light);}
.more-button a:hover{ color: #FFF; background: var(--clr-primary);}
.more-button a span{ display: inline-block; padding-right: 1.2em; position: relative;}
.more-button a span:after{ content: "\eaaa"; font-family: "Material Symbols Outlined"; position: absolute; top: 0; right: 0;}

/* index
-------------------------------------------------------------*/

/* slideshow */
#slideshow { position: relative; width: 100%; height: 40vw; min-height: 480px; overflow: hidden;}
#slideshow h1 { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 10; margin: 0; width: 90%; min-width: 1200px;}
#slideshow h1 img{ width: 100%; height: auto; max-width: 900px;}
#slideshow ul { position: relative; width: 100%; height: 100%; list-style: none; padding: 0; margin: 0;}
#slideshow ul:before{ content: ""; width: 100%; height: 100%; background: rgba(0,0,0,0.24); position: absolute; top: 0; left: 0; z-index: 1;}
#slideshow ul li { position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; visibility: hidden; transition: opacity 1.0s ease-in-out, visibility 1.0s ease-in-out;}
#slideshow ul li.is-active { opacity: 1; visibility: visible;}
#slideshow ul li picture, #slideshow ul li img { display: block; width: 100%; height: 100%; object-fit: cover;}

/* お知らせ */
.newslist section{ position: relative;}
.newslist dl{}
.newslist dl dt{ display: flex; justify-content: flex-start; align-items: center; padding-top: var(--sp-sm); color: rgba(51,51,15,0.56);}
.newslist dl dt span{ margin-left: 1.0em; background: #EEE; padding: 0.32em 0.4em; min-width: 7.0em; text-align: center; border-radius: 4px; color: rgba(51,51,51,0.72); line-height: 1.0em; font-size: var(--fs-sm);}
.newslist dl dt span.event{ background: #DDF3FA;}
.newslist dl dt span.press{ background: #FFF6DE;}
.newslist dl dt span.important{ background: #FCEBED;}
.newslist dl dt span.media{ background: #EBF7E9;}
.newslist dl dd{ padding-bottom: var(--sp-sm); border-bottom: solid 1px rgba(0,0,0,0.08);}
.newslist .more-button{ position: absolute; top: 0.64em; right: 0;}

.about{ padding-top: 0;}
.about .column{ display: flex; justify-content: space-between; flex-wrap: wrap;}
.about .column .inner{ width: 47%;}
.about .column .inner figure{ width: 100%; position: relative; border-radius: var(--radius-lg); overflow: hidden;}
.about .column .inner figure img{ width: 100%; height: auto;}
.about .column .inner figure a{ display: inline-block;}
.about .column .inner figure a:before{ content: ""; width: 4.8rem; height: 4.8rem; background: var(--clr-bg-blue); border-radius: 16px 0 0 0; position: absolute; bottom: 0; right: 0; z-index: 1; transition: all 0.3s ease 0s;}
.about .column .inner figure a:hover:before{ background: var(--clr-primary-light);}
.about .column .inner figure a:after{ content: "\e941"; font-family: "Material Symbols Outlined"; line-height: 4.8rem; width: 4.8rem; text-align: center; position: absolute; bottom: 0; right: 0; z-index: 2; color: var(--clr-primary-light); transition: all 0.3s ease 0s;}
.about .column .inner figure a:hover:after{ color: #FFF;}
.about .column .inner h3{ font-size: var(--fs-xl); line-height: 1.2em; margin:var(--sp-md) 0 var(--sp-sm); text-align: center; color: var(--clr-primary);}
.about .column .inner p{ padding: 0 1.0em; text-align: center;}
.about .column .inner .more-button{ text-align: center; margin-top: var(--sp-md);}

/* CONCEPT MOVIE */
.movie section{ width: 100% !important; max-width: none;}
.movie:before{ content: ""; width: 96%; height: 100%; border-radius: 40px; background-image: linear-gradient(90deg, rgba(95, 210, 210, 0.48), rgba(174, 214, 251, 0.48)); position: absolute; top: 0; left: 50%; transform: translateX(-50%); z-index: -1;}
.movie-list-window { width: 100%; overflow: hidden;}
.movie-list { display: flex; list-style: none; padding: 0; margin: 0; transition: transform 0.5s ease-in-out; position: relative;}
.movie-list li { width: 64%; max-width: 800px; flex-shrink: 0; margin: 0 24px; opacity: 1.0; transition: opacity 0.5s; aspect-ratio: 16 / 9; position: relative;}
.movie-list li.is-active { opacity: 1;}
.movie-list li iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border-radius: 24px; overflow: hidden; border: solid 8px #FFF; background: #FFF;}
.slider-nav { position: absolute; top: 50%; left: 0; width: 100%; transform: translateY(-50%); display: flex; justify-content: space-between; padding: 0 40px; pointer-events: none; z-index: 10;}
.nav-btn { width: 50px; height: 50px; background-color: rgba(0, 0, 0, 0.5); border: none; border-radius: 50%; cursor: pointer; pointer-events: auto; position: relative;}
.nav-btn::before { content: ""; display: block; width: 12px; height: 12px; border-top: 3px solid #fff; border-left: 3px solid #fff; position: absolute; top: 50%; left: 50%;}
.prev-btn::before { transform: translate(-30%, -50%) rotate(-45deg);}
.next-btn::before { transform: translate(-70%, -50%) rotate(135deg);}

/* about:委員会について
-------------------------------------------------------------*/
h2.center{ text-align: center; margin-bottom: var(--sp-md); font-size: var(--fs-xl); line-height: 1.2em; color: var(--clr-primary-dark);}
h2.center span{ display: block; text-align: center; font-size: var(--fs-base); line-height: 1.2em; font-family: var(--font-en); color: var(--clr-primary-light);}
body#about footer:before{ content: none;}

.half{ display: flex; justify-content: space-between; flex-wrap: wrap;}
.half figure,
.half .inner{ width: 47%;}
.half figure img{ width: 100%; height: auto; border-radius: var(--radius-lg); overflow: hidden;}
.half .inner p:nth-child(n+2){ margin-top: 1.0em;}
.half.slogan{ margin-top: var(--sp-md); align-items: center;}
.half.slogan h3{ font-size: var(--fs-md); line-height: 1.2em; color: var(--clr-primary);}

.contents.activity:before{ content: ""; width: 96%; height: 100%; background: var(--clr-bg); border-radius: var(--radius-xl); position: absolute; top: 0; left: 2%; z-index: -1; opacity: 0.56;}
.activity .column{ display: flex; justify-content: center; flex-wrap: wrap;}
.activity .column .inner{ width: 31%;}
.activity .column .inner:nth-child(n+2){ margin-left: 3.5%;}
.activity .column .inner figure img{ width: 100%; height: auto; border-radius: var(--radius-lg); overflow: hidden;}
.activity .column .inner h3{ font-size: var(--fs-lg); line-height: 1.2em; text-align: center; margin-top: var(--sp-sm); color: var(--clr-primary);}
.activity .column .inner p{ margin-top: 1.0em;}
.activity .balloon{ color: var(--clr-primary-dark); text-align: center; margin: var(--sp-xl) 0; border: dotted 2px var(--clr-primary-dark); background: rgba(255,255,255,0.64); padding: 1.0em; border-radius: var(--radius-md); position: relative; z-index: 10;}
.activity .balloon:before{ content: ""; width: 77px; height: 72px; background: url("../images/about/arrow_before.svg") no-repeat bottom; background-size: cover; position: absolute; bottom: calc(100% + 2px); left: 50%; transform: translateX(-50%);}
.activity .balloon:after{ content: ""; width: 77px; height: 72px; background: url("../images/about/arrow_after.svg") no-repeat top; background-size: cover; position: absolute; top: calc(100% + 1px); left: 50%; transform: translateX(-50%);}

.overview table{ width: 100%; border: solid 1px #DDD; border-collapse: collapse;}
.overview table th{ width: 16%; background: #F6F6F6; padding: 1.0em; border: solid 1px #DDD;}
.overview table td{ width: calc(100% - 16%); padding: 1.0em; border: solid 1px #DDD;}

.histroy table{ width: 100%; border-top: solid 1px #DDD;}
.histroy table tr{ border-bottom: solid 1px #DDD;}
.histroy table tr th{ padding: 1.5em 0.5em; color: rgba(51,51,51,0.64); line-height: 1.4em; width: 8.0em;}
.histroy table tr td{ padding: 1.5em 0.5em; line-height: 1.4em; width: calc(100% - 8.0em);}

/* achievements:活動実績一覧
-------------------------------------------------------------*/
.cardlist{ display: flex; justify-content: flex-start; flex-wrap: wrap;}
.cardlist .inner{ width: 31%; background: #FFF; border-radius: var(--radius-lg); margin-right: 3.5%; position: relative; overflow: hidden; box-shadow: 0 4px 16px rgba(0,0,0,0.08); transition: all 0.3s ease 0s;}
.cardlist .inner:nth-child(3n){ margin-right: 0;}
.cardlist .inner:nth-child(n+4){ margin-top: var(--sp-base);}
.cardlist .inner:hover{ box-shadow: 0 0 8px rgba(0,0,0,0.16);}
.cardlist .inner figure img{ width:100%; height: auto;}
.cardlist .inner dl{ padding: 1.0em;}
.cardlist .inner dl dt{ font-size: var(--fs-sm); color: var(--clr-primary-light);}
.cardlist .inner dl dd{ font-size: var(--fs-md); line-height: 1.2em;}
.cardlist .inner a span{ display: none;}
.cardlist .inner a:before{ content: ""; width: 100%; height: 100%; position: absolute; top: 0; left: 0; z-index: 10;}

/* achievements:活動実績
-------------------------------------------------------------*/
body#article main .contents section{ max-width: 960px;}
.slide { width: 100%; margin-bottom: var(--sp-lg);}
.main { position: relative; width: 100%; aspect-ratio: 13.5 / 9; max-height: 640px; overflow: hidden; margin-top: 0 !important;}
.main ul { list-style: none; padding: 0; margin: 0; width: 100%; height: 100%; position: relative;}
.main ul li { position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; visibility: hidden; transition: opacity 0.5s ease-in-out, visibility 0.5s ease-in-out;display: flex;justify-content: center;align-items: center;}
.main ul li.is-active { opacity: 1; visibility: visible;}
.main ul li img { display: block; width: auto; height: auto; max-width: 100%; max-height: 100%;}
.thumbnail { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin-top: var(--sp-sm);}
.thumbnail li { cursor: pointer; border: 2px solid #ccc; transition: border-color 0.3s ease; overflow: hidden; aspect-ratio: 4 / 3;}
.thumbnail li.is-active { border-color: var(--clr-primary);}
.thumbnail li img { display: block; width: 100%; height: 100%; object-fit: cover;}

.update{ display: block;}
body#article main .contents h2{ font-size: var(--fs-xl); line-height: 1.2em; color: var(--clr-primary-dark); padding-bottom: 1.6rem; border-bottom: solid 1px rgba(0,0,0,0.08);}
body#article main .contents div{ margin-top: 1.0em;}
body#article main .contents .img-box{ margin: 1.0em auto 0; max-width: 80%;}
body#article main .contents .img-box img{ display: block; width: auto; height: auto; max-width: 100%; margin: 0 auto;}

body#article main .contents h3{ background: var(--clr-bg-blue); color: var(--clr-primary-dark); border-left: solid 2px var(--clr-primary); font-size: var(--fs-lg); line-height: 1.2em; padding: 0.8em; margin-top: var(--sp-lg);}
body#article main .contents h4{ color: var(--clr-primary); font-size: var(--fs-md); line-height: 1.2em; padding: 1.6rem 0; margin-top: var(--sp-base); border-bottom: solid 1px rgba(0,0,0,0.08); position: relative;}
body#article main .contents h4:before{ content: ""; width: 1.0em; height: 1px; background: var(--clr-primary); position: absolute; bottom: -1px; left: 0;}
body#article main .contents .link-button{ margin-top: 1.0em;}
body#article main .contents .link-button a{ display: inline-block; color: #FFF; text-decoration: none; line-height: 1.0em; padding: 0.4em 1.2em; border-radius: 100px; background: var(--clr-accent);}
body#article main .contents .link-button a:hover{ color: #FFF; background: #D0888F;}
body#article main .contents .link-button a span{ display: inline-block; padding-right: 1.2em; position: relative;}
body#article main .contents .link-button a span:after{ content: "\eaaa"; font-family: "Material Symbols Outlined"; position: absolute; top: 0; right: 0;}
body#article main .contents .link-button.pdf a span:after{ content: "\ef42"; font-family: "Material Symbols Outlined"; position: absolute; top: 0; right: 0;}
body#article main .contents .back-button{ margin-top: var(--sp-base); text-align: center;}
body#article main .contents .back-button a{ display: block; width: 23.5%; margin: 0px auto; border: solid 1px #DDD; color: #333; text-decoration: none; line-height: 1.0em; text-align: center; padding: 1.2em 0;}
body#article main .contents .back-button a:hover{ color: #FFF; background: #999; border-color: #999;}

/* news:お知らせ
-------------------------------------------------------------*/
nav.pager{ margin-top: var(--sp-lg);}
nav.pager ul{ display: flex; justify-content: center; flex-wrap: wrap;}
nav.pager ul li{ margin: 0 0.24em;}
nav.pager ul li a{ display: block; width: 3.2rem; height: 3.2rem; line-height: 3.2rem; text-align: center; color: var(--clr-primary-light); text-decoration: none; border: solid 1px var(--clr-primary-light); border-radius: 100%;}
nav.pager ul li a span{ font-size: 1.6rem; line-height: 3.2rem;}
nav.pager ul li a.active,
nav.pager ul li a:hover{ color: #FFF; background: var(--clr-primary-light);}
nav.pager ul li > span{ font-size: 1.6rem; line-height: 3.2rem; text-align: center;}

/* 404:ページが見つかりません
-------------------------------------------------------------*/
.not-found p{ text-align: center;}
.not-found .back-button{ margin-top: var(--sp-base); text-align: center;}
.not-found .back-button a{ display: block; width: 23.5%; margin: 0px auto; border: solid 1px #DDD; color: #333; text-decoration: none; line-height: 1.0em; text-align: center; padding: 1.2em 0;}
.not-found .back-button a:hover{ color: #FFF; background: #999; border-color: #999;}

/*=============================================================
	header
=============================================================*/

.header-inner { width: 100%; padding: var(--sp-base) 5%; margin: 0px auto; display: flex; align-items: center; justify-content: space-between; position: relative; transition: padding 0.3s ease;}
.header-inner .site-logo{ width: 320px;}
.header-inner .site-logo img{ width: 100%; height: auto;}
.header-inner .header-info{ display: flex; justify-content: space-between; flex-wrap: wrap; align-items: center;}
.header-inner .nav-toggle { display: none;}
.header-inner .global-menu {}
.header-inner .global-menu ul { display: flex; align-items: center;}
.header-inner .global-menu ul li { margin: 0 var(--sp-sm);}
.header-inner .global-menu ul li a { font-size: var(--fs-md); color: #333; text-decoration: none; line-height: 1.0em; padding: 0.48em 0;}
.header-inner .global-menu ul li a:hover{ color: var(--clr-primary-dark);}
.header-inner .sns-icon { margin-left: var(--sp-md);}
.header-inner .sns-icon a{ display: block; width: 4.0rem; height: 4.0rem; border-radius: 100%; padding: 1.0rem; background: var(--clr-primary-light);}
.header-inner .sns-icon a img{ width: 100%; height: auto;}
.header-inner .sns-icon a:hover{ background: var(--clr-primary);}

header.is-fixed { width: 100%; position: fixed; background: #FFF; top: 0; left: 0; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); animation: slideDown 0.4s ease forwards; z-index: 100;}
header.is-fixed .header-inner { padding: var(--sp-sm) 5%;}
header.is-fixed .site-logo { width: 240px;}
@keyframes slideDown { 0% { transform: translateY(-100%);} 100% { transform: translateY(0);}}

/*=============================================================
	cta
=============================================================*/
#cta{ background-image: linear-gradient(90deg, rgba(95, 210, 210, 0.48), rgba(174, 214, 251, 0.48)); padding: var(--sp-xl) 0;}
#cta section{ width: 90%; margin: 0px auto; max-width: 1200px;}
#cta section p{ text-align: center;}
#cta section .phone{ font-size: var(--fs-md); line-height: 1.2em; margin-top: 0.5em;}
#cta section .phone a{ display: inline-block; font-size: var(--fs-xl); color: var(--clr-primary-dark); text-decoration: underline; line-height: 1.2em;}
#cta section .phone a { pointer-events: none; cursor: default; color: inherit; text-decoration: none;}
#cta section .phone a:hover{ color: var(--clr-primary-dark); text-decoration: none;}
#cta section .phone span{ display: block; text-align: center; font-size: var(--fs-base); line-height: 1.2em; margin-top: 0.24em;}

/*=============================================================
	footer
=============================================================*/
.page-top-btn { position: fixed; bottom: 30px; right: 30px; width: 50px; height: 50px; background-color: rgba(0, 0, 0, 0.6); color: #fff; border: none; border-radius: 50%; cursor: pointer; display: flex; justify-content: center; align-items: center; z-index: 100; opacity: 0; visibility: hidden; transition: opacity 0.3s, visibility 0.3s, background-color 0.3s;}
.page-top-btn.is-active { opacity: 1; visibility: visible;}
.page-top-btn:hover { background-color: rgba(0, 0, 0, 0.9);}
.page-top-btn .material-symbols-outlined { font-size: 32px;}

footer{ width: 100%; margin: 0px auto; position: relative;}
footer:before{ content: ""; width: 90%; height: 1px; background: rgba(0,0,0,0.08); position: absolute; top: 0; left: 50%; transform: translateX(-50%);}
body#index footer:before{ content: none;}
.footer-inner { width: 90%; padding: var(--sp-base) 0; margin: 0px auto; position: relative;}
.footer-inner .site-logo{ width: 400px; margin: 0px auto;}
.footer-inner .site-logo img{ width: 100%; height: auto;}
.footer-inner .address{ font-size: var(--fs-sm); line-height: 1.2em; text-align: center; margin-top: 1.0em;}
footer .copyright{ line-height: 1.2em; text-align: center; color: #FFF; background: var(--clr-primary); padding: 0.64em 0;}