@charset "UTF-8";
* {margin: 0;padding: 0;box-sizing: border-box;}
html {overflow-y: scroll;overflow-x: hidden;scroll-behavior: smooth;
/*	必要に応じて調整　scroll-padding-top: 60px;*/
}
body{margin:0;padding:0;overflow-x: hidden;-webkit-font-smoothing: antialiased;font-size: 16px;line-height: 1.7;}
main.main{
	min-height:100svh;display:flex;flex-direction:column;justify-content:center;box-sizing:content-box;scroll-behavior: smooth;}
main.main > *{box-sizing:border-box;}
main.main > h1{text-align:center;font-size:var(--s3);}
main.main > h1 + *{margin-top:var(--s2)}

/* content */
.content-wrap{width:100%;max-width:61.25rem;/*980px*/display:flex;flex-wrap:wrap;gap:var(--s1);}
.content-box.full{flex-basis:100%;}
.content-box:not(.full){flex-basis:calc(100% / 2 - 1rem);overflow-wrap:break-word;}

@media (40rem > width) {/*640px未満*/
		.content-wrap{grid-template-columns:100%;}
	}

/* FOOTER */
#footer{width:100dvw;background:#e6e6e6;position: relative;z-index: 2;padding:var(--s2) var(--s1);text-align:center;}
#page-top {position: fixed;right: 10px;z-index: 2;opacity: 0;transform: translateY(100px); width: 15%;max-width: 150px;}
#page-top a{transition:all 0.3s;}
#page-top a:hover{}
#page-top.UpMove{animation: UpAnime 0.5s forwards;}
@keyframes UpAnime{
  from {opacity: 0;transform: translateY(100px);}
  to {opacity: 1;transform: translateY(0);}
}
#page-top.DownMove{animation: DownAnime 0.5s forwards;}
@keyframes DownAnime{
  from {opacity: 1;transform: translateY(0);}
  to {opacity: 1;transform: translateY(100px);}
}
/*アコーディオン*/
details::details-content {transition: height 0.4s, opacity 0.4s, content-visibility 0.4s allow-discrete;height: 0;opacity: 0;overflow: clip;background-color: var(--color-light); border-radius: 0 0 10px 10px;}
details[open]::details-content {opacity: 1;}
details[open] .icon {transform: rotate(180deg);}
summary[open]{border-radius: 10px 10px 0 0;}

@supports (interpolate-size: allow-keywords) {
  :root {interpolate-size: allow-keywords; /* height:0（数値型） → auto（文字型） のアニメーションを可能にするための指定 */}
  details[open]::details-content {height: auto;}
}
details[open]::details-content {
    height: auto;
    overflow: visible;
}
summary {display: grid;grid-template-columns:  1fr 24px;gap: 6px;align-items: center;padding: 16px 10px;font-weight: bold;color: #002255;cursor: pointer;}
/* Safariの三角形アイコン消去 */
summary::-webkit-details-marker {display: none;}
.content {background-color: #f0f2ff;padding: 24px 48px;}


section:not(#top_area section){
	margin-inline: auto;
	padding: min(10%,150px) var(--s2);
	max-width: 1280px;
	font-feature-settings: "palt";
}
section:not(#top_area section,#supporters-association section) > * {
	margin-bottom: 5%;	
}
h2{
    margin: 0 auto 5%;
	width: 60svw;
    max-width: 800px;
	min-width: 280px;
	font-size: var(--s1);
}
p{
	font-size: var(--s05);
}
dt,dd{
	line-height: 1.5;
	font-size: var(--s05);
}
dd{
	margin-top: 0.4em;
}
li{
	line-height: 1.5;
}
a:hover {
	opacity: 0.7;
}
/* top_area---------------------------------------------------------- */
#top_area{
	background: #005D64;
	background: linear-gradient(52deg,rgba(0, 92, 100, 1) 0%, rgba(0, 161, 153, 1) 100%);
	padding-top: 80px;
}
.top_area-wrap{
	display: flex;
	align-items: center;
	justify-content: center;
	max-width: 1280px;
	margin-inline: auto;
}
.top_area-wrap p {
	max-height: 78dvh;
}
.top_area-wrap p img {
	max-height: 78dvh;
}
.top_area-txt {
	margin-left: 10%;
	flex-basis: 35%;	
}
.top_area-img{
	flex-basis: 55%;
}
.top_area-link{
	display: grid;
	grid-template-columns: 1fr 1fr;
}
.top_area-link a {
	display: inline-block;
	font-size: var(--s1);
	font-weight: bold;
	text-align: center;
	padding: 0.5rem 0;
}
.top_area-blog{
	background-color: var(--color-midgreen);
	color: var(--color-light);
}
.top_area-insta{
	background:url(../img/top_insta-back.png) no-repeat center top;
	background-size: cover;
}

/* policy---------------------------------------------------------- */
.policy_items{
	display: flex;
	flex-wrap: wrap;
	width: 80%;
	margin-inline: auto;
	gap: 5%;
}
.policy_items div{
	flex-basis: 30%;
}

/* will---------------------------------------------------------- */
#will{
	background-color: #c9e5dd;
}
#will h3{
	background-color: var(--color-green);
	color: var(--color-light);
	font-size: var(--s1);
	text-align: center;
	border-radius: 10px 10px 0 0;
	letter-spacing: 0.1em;
	padding: 0.5em 1em;
}
.content{
	background-color: var(--color-light);
	padding: 0;
	border-radius: 0 0 10px 10px;
}
.content ul, .content dl{
	padding:var(--s1);
	padding-left: 3em;
}
.content ul li{
	position: relative;	
	font-size: var(--s0);
}
.content ul li:not(:last-child){
	margin-bottom: 0.8em;
}
.content ul li::before{
	content: "";
	position: absolute;
	left: -1.2em;
	top: 0.4em;
	width: 1em;
	height: 1em;
	border: 1px solid var(--color-dark);
	border-radius: 50%;
	box-sizing: border-box;
}
.content dl {
	border-top: 1px dashed var(--color-dark);
}
.content dl dt{
	position: relative;
}
.content dl dt::before{
	content: "";
	position: absolute;
	left: -1.2em;
	top: 0.3em;
	width: 1em;
	height: 1em;
	background-color: #006d6f;
}
.masonry {
  max-width: 1280px;
  margin: 0 auto;
}
.masonry-item {
  width: calc(50% - 10px); /* 2列 */
  margin-bottom: 16px;
  padding: min(0.5svw, 16px);
  box-sizing: border-box;
  border-radius: 8px;
}
/* profile---------------------------------------------------------- */
#profile{
	/* background: #D9E1F3;
background: linear-gradient(70deg, rgba(217, 225, 243, 1) 0%, rgba(221, 228, 241, 1) 65%, rgba(238, 240, 252, 1) 90%, rgba(214, 220, 236, 1) 100%); */
	position: relative;
	background-image: url(../img/bg.png);
}
.profile_img {
  position: absolute;
  z-index: -10;
  right: 0;
  top: 25%;
}
.profile_img::before{
	content: "";
	position: absolute;
    width: 100%;
    height:5%;
    top: 0;
    left: 0;
    background:linear-gradient(180deg,rgba(213, 220, 239, 1) 0%, rgba(213, 220, 239, 0) 84%, rgba(243, 246, 255, 0.16) 100%);
}
.profile_img::after{
	content: "";
	position: absolute;
    width: 100%;
    height:5%;
    bottom: 0;
    left: 0;
    background:linear-gradient(0deg,rgba(213, 220, 239, 1) 0%, rgba(213, 220, 239, 0) 84%, rgba(243, 246, 255, 0.16) 100%);
}
.profile_img img {
	width: min(50dvw, 650px);
    min-width: 400px;
}
.profile_container{
	padding-left: 10%;
}
.profile_container dl > *{
	font-size: var(--s0);
	margin-bottom: 0.7em;
}
.profile_container dd {
	margin-top: 0;
}
.profile_container-top div {
	display: grid;
	grid-template-columns: 12em minmax(15em, 2fr)
}
.profile_container-top dt, .profile_container-bottom dt {
	position: relative;
}
.profile_container-top dt::before {
	content: "";
    position: absolute;
    left: -1em;
    top: 0.5em;
    height: 0.8em;
    aspect-ratio: cos(30deg);
    clip-path: polygon(0 0, 100% 50%, 0 100%);
    background-color: #128077;
}
.profile_container-bottom {
	margin-top: 1.4em;
}
.profile_container-bottom div:not(.notflex){
	display: flex;
	gap: 1em;
}
.profile_container-bottom dt::before{
	content: "";
	position: absolute;
	left: -1em;
	top: 0.5em;
    right: 4em;
    width: 0.8em;
    height: 0.8em;
	background-color: #128077;
}
/* supporters-association---------------------------------------------------------- */
#supporters-association section{
	text-align: center;
	width: 70%;
}
#supporters-association section > *:not(.no-marginbottom){
	margin-bottom: 4%;
}
.f_size-xl{
	font-size: var(--s3);
}
.f_size-l{
	font-size: var(--s1_5);
}
.f_size-m{
	font-size: var(--s1);
}
.f_size-s{
	font-size: var(--s0);
}
.f_size-xs{
	font-size: var(--s-1);
}
.f_bold{
	font-weight: bold;
}
.green_txt{
	color: #006d6f;
}
.border-radius{
	width: max-content;
    margin-inline: auto;
	margin-top: 6%;
    padding: 0.1em 1em;
    border: solid 1px;
    border-radius: 30px;
}
.leading-loose{
	letter-spacing: 0.1em;
}
#supporters-association h3{
	font-size: var(--s1);
	border: solid 1px;
	width: 8em;
	margin-inline: auto;
	margin-bottom: 2%;
	padding: 0.1em 0;
}
.fax_num{
	width:75%;
	margin-inline: auto;
	margin-bottom: 2%;
}
.button{
	background-color: var(--color-midgreen);
	width: 75%;
	margin-inline: auto;
	padding: 0.7em 1em;
	border-radius: 7px;
}
.button a{
	color: var(--color-light);
	display: block;
	width: 100%;
	height: 100%;
}
.spObj{
		display: none;
	}

/* footer---------------------------------------------------------- */
#footer{
	background-color: var(--color-midgreen);
	color: var(--color-light);
}

@media (max-width:1024px) {
	
}
@media (max-width:768px) {
	.top_area-link{
		grid-template-columns: 1fr;
	}
	.masonry-item {
    	width: 100%;
  	}
	/* .profile_img{
		right: -17%;
	} */
	.profile_container-top div{
		grid-template-columns: 1fr;
	}
	.profile_container dd {
		margin-bottom: 0.4em;
	}
	.profile_container-bottom div:not(.notflex){
		flex-direction: column;
		gap: 0;
	}
	#supporters-association section{
		width: 100%;
	}
	/* iOS */
	@supports (-webkit-touch-callout: none) {
		#profile {
		aspect-ratio: auto;
		}
	}
}
@media(max-width:435px){
	#top_area{
		padding-top: 60px;
	}
	.l-header{
		height: 60px;
	}
	h2{
		width: 100%;
	}
	div.header_bg-color{
		height: 60px;
	}
	.l-header button.nav_toggle{
		width: 28px;
		height: 28px;
	}
	section:not(#top_area section){
		padding-left: var(--s1);
		padding-right: var(--s1);
	}
	.content ul, .content dl{
		padding-left: 2em;
		padding-right: 1em;
	}
	.profile_img{
		position: relative;
	}
	.profile_img img {
		width: auto;
	}
	#supporters-association section > *:not(.no-marginbottom){
		margin-bottom: 8%;
	}
	h3:not(#will h3){
		margin-bottom: 4%;
	}
	.f_size-l{
		font-size: var(--s1);
	}
	.f_size-m{
		font-size: var(--s0);
	}
	.f_size-s{
		font-size: var(--s-1);
	}
	.f_size-xs{
		font-size: var(--s-1);
	}
	.leading-loose{
		letter-spacing: 0;
	}
	.pcObj {
		display: none;
	}
	.spObj{
		display: block;
	}
	.policy_items, .fax_num, .button{
		width: 100%;
	}
}
