@charset "UTF-8";








.undercontraction {
text-align:center;
padding:4em 2em;
border-radius:8px;}


/* index  ==================*/

.index-greeting {}
.index-greeting p {
margin-bottom:1em;}
.index-greeting h2 {
width:75%;
transform:translate(-5%,0);}
.index-greeting h3 {
font-family: "Noto Serif JP", serif;
margin:0.9em 0 0.8em 0;
font-size:148%;
line-height:1.2;
font-weight:600;}
.index-greeting ul {
flex-direction:row-reverse;
justify-content:space-between;
-ms-flex-pack:justify;
margin:0 auto;
width:100%;}
.index-greeting ul li.img {
text-align:center;
width:26.5%;
transform:translate(-8%,0);}
.index-greeting ul li.txt {
width:71.5%;}

@media only screen and ( max-width:767px) {

.index-greeting h2 {
transform:translate(0%,0);}
.index-greeting ul li.img {
margin-top:1.5em;
width:100%;
transform:translate(0%,0);}
.index-greeting ul li.img img {
width:60%;
max-width:350px;}
.index-greeting ul li.txt {
width:100%;}

}

.index-about {}
.index-about p {
margin-bottom:1em;}
.index-about ul {
justify-content:space-between;
-ms-flex-pack:justify;
width:100%;}
.index-about ul li {
width:47.5%;}

@media only screen and ( max-width:1023px) {

.index-about ul li {
font-size:100%;
width:100%;}

}

.index-outline {}
ul.index-outline02 {
justify-content:space-between;
-ms-flex-pack:justify;
margin:0 auto;
width:100%;}
ul.index-outline02 li {
position:relative;
margin:2.25% 0;
width:31.3333%;}
ul.index-outline02::after {
content:"";
display:block;
width:31.3333%;}
ul.index-outline02 li a {
display:block;
padding:0 0 40px 0;
height:100%;
color:#222;}
ul.index-outline02 li a:hover {
color:#900;}
ul.index-outline02 li .img img {
width:100%;}
ul.index-outline02 li h3 {
margin:0.8em 0 0.7em 0;
font-size:140%;
line-height:1.3;
font-weight:bold;}
ul.index-outline02 li .desc {
font-size:84%;
line-height:1.45;}
ul.index-outline02 li h4 {
text-align:right;
position:absolute;
padding:6px 0 0 0;
left:0px;
bottom:0px;
width:calc( 100% - 0px );
font-size:76%;
line-height:1.3;
white-space:nowrap;
border-top:1px solid #666;}

@media only screen and (max-width:1023px) {

ul.index-outline02 li  {
width:47.5% !important;}

}

@media only screen and (max-width:640px) {

ul.index-outline02 {
max-width:480px;}
ul.index-outline02 li {
width:100% !important;}
ul.index-outline02 li a {
display:block;
padding:5px 5px 40px 5px;}
ul.index-outline02 li h3 {
margin:18px 0 16px 0;
font-size:132%;}
ul.index-outline02 li h4 {
left:5px;
bottom:5px;
width:calc( 100% - 10px );}

}

.index-news {}
.index-news .news-topics {
padding:1em 0;
border-bottom:1px dotted #999;}
.index-news .news-topics dl {
justify-content:space-between;
display:flex;
flex-wrap:wrap;
width:100%;
line-height:1.45;}
.index-news .news-topics dt {
width:160px;}
.index-news .news-topics dt .date {
position:relative;
padding:0 0 0 18px;
width:160px;
font-weight:bold;
white-space:nowrap;}
.index-news .news-topics dt .date::after {
content:"";
position:absolute;
z-index:2;
top:50%;
left:0;
width:8px;
height:8px;
border-bottom:1px solid #222;
border-right:1px solid #222;
transform:translate(0,-50%) rotate(-45deg);}
.index-news .news-topics dd {
width:calc(100% - 160px);}
.index-news .news-topics dd .ttl {}
.index-news .news-topics dd a {
color:#222;}
.index-news .news-topics dd a:hover {
color:#900;
text-decoration:underline;}
.index-news .news-topics dd .new {
margin:0 0 0 9px;
color:#c00;
font-weight:bold;}
.index-news .news-topics dd .topics-btn {
cursor:pointer;}
.index-news .news-topics dd .topics-btn:hover {
color:#900;
text-decoration:underline;}
.index-news .news-topics .topics-detail {
margin:1em 0;
padding:1.65em 1.65em 0.65em 1.65em;
line-height:1.7;
background:rgba(255,255,255,0.3);
border:1px solid rgba(0,0,0,0.3);
border-radius:5px;}
.index-news .news-topics .topics-detail p {
margin-bottom:1em;}

@media only screen and (max-width:640px) {

.index-news .news-topics dt {
width:100%;}
.index-news .news-topics dd {
margin:0.5em 0 0 0;
width:100%;}
.index-news .news-topics dd .ttl br {
display:none;}

}

.index-management {}
.index-management table {
width:100%;
display:block;
border-collapse:collapse;}
.index-management table tbody {
width:100%;
display:table;}
.index-management table th {
text-align:left;
padding:0.2em 1em 0.2em 0;
width:100px;
font-size:92%;
line-height:1.5;
font-weight:bold;
white-space:nowrap;}
.index-management table td {
padding:0.2em 0 0.2em 0;
font-size:92%;
line-height:1.5;}

@media only screen and (max-width:767px) {

.index-management table th {
display:block;
padding:0.4em 0 0.1em 0;
width:100%;}
.index-management table td {
display:block;
padding:0.1em 0 0.4em 0;
width:100%;}

}

/* entry  ==================*/

.entry01 {}
.entry01 p {
margin-bottom:1em;}
.entry02 {}
