@charset "utf-8";
/* http://jigsaw.w3.org/css-validator/ */

/* body */

:root {
	--maincolor: rgba(0,0,0,1);
	--maincolor-h: rgba(0, 0, 0, 0.66);
	--subcolor: rgb(127, 217, 229,1);
	--subcolor-h: rgb(127, 217, 229,0.66);
	--graycolor: #e8eced;
	--graybg: #f7f7f7;
	--mpsize: 20px;
	--webfont-g: 'Shippori Mincho B1', serif;
	--webfont-fp: 'DNPShueiGoKinStd-M', sans-serif;
	--webfont-fpl: 'DNPShueiGoKinStd-L', sans-serif;
    --borderline:1px solid #999;
  }

body{
	margin: 0;
	padding: 0;
    font-family: var(--webfont-g); 
    line-height: 180%;
}
body *{
    box-sizing: border-box;
}
body #container
{
	color: var(--maincolor);
	background-color: #fff;
	word-break: break-all;
	-webkit-text-size-adjust: 100%;
}
sub,sup{
    font-size: 0.75rem;
}
ul,ol{
    padding: 0 0 0 1rem;
}
ul.flex,ol.flex{
    padding: 0;
}
ul li::marker{
	color: var(--maincolor);
}

body #container *
{
    box-sizing: border-box;
}

strong,
em
{
	color: #e00;
}

#container strong strong
{
	border-bottom: 3px #aaa double;
}

#container u
{
	text-decoration: none;
	background: linear-gradient(transparent 70%, #EAD67980 0);
	border-bottom: 1px solid #EAD67980;
}
input, select, button {
    -webkit-appearance: none;
    appearance: none;
  }
img,
iframe,
figure
{
	max-width: 100%;
    margin: 0 auto;
    padding: 0;
}

#container img
{
	height: auto;
	border: none;
}
.skip{
    position: absolute;
    left: -9000px !important;
}
.pc {
    display: block;
}
.sp {
    display: none;
}
.wrapper{
    position: relative;
	width: 100%;
    margin: 0 auto;
	padding: 0 var(--mpsize);
	max-width: 1040px;
}
.wrap800{
	max-width: 840px;
}
.linkbt{
	padding: 0.5rem 2rem;
	font-size: 1.05rem;
	color: #fff;
    text-decoration: none;
    font-family: var(--webfont-fp);
	background-color: var(--maincolor);
	display: inline-block;
	margin: 1.5em auto;
	text-align: center;
}
.linkbt:hover{
    background-color: var(--maincolor-h);
}
.linktxt{
	padding-left: 1rem;
    position: relative;
	background: left top ;
}
.linktxt::before{
    content: url(../images/linktxt.svg);
    vertical-align: middle;
    position: absolute;
    left: 0;
    top: -0.25rem;
}
.sig{
    text-align: right;
}
.cmt{
    background: var(--graycolor);
    padding: 1rem 2rem;
    border-radius: 5px;
}
.flex {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
    list-style:none;
}
.flex.c2>*{
    width: 100%;
    max-width: calc(96% / 2);
    margin-bottom:4%;
}
.flex.c3::after,
.flex.c3>*{
    width: 100%;
    max-width: calc(94% / 3);
    margin-bottom:3%; 
}
.flex.c4::before,
.flex.c4::after,
.flex.c4>*{
    width: 100%;
    max-width: calc(94% / 4);
    margin-bottom:2%;
}
.flex.c4::before,
.flex.c4::after,
.flex.c3::after{
    order: 2;
    content:'';
    height: 1px;
    display: inline-block;
    margin: 0;
}
.nav-links>*{
    padding: 0.5rem;
}
.nav-links a{
    background: var(--maincolor);
    color: #fff;
    text-decoration: none;
}
.nav-links a:hover{
    background: var(--maincolor-h);
}

.center{
    text-align: center;
    margin: 0 auto;
}
img {
    max-width: 100%;
    height: auto;
}
nav ul{
    display: flex;
    justify-content: flex-start;
    align-items: center;
    flex-wrap: wrap;
    list-style: none;
    margin: 0;
    padding: 0;
}
a{
    transition: 0.5s;
}

/* container */
#container {}

/* header */
#site-header {
    background: var(--maincolor);
}
header.flex{
    height: 75px;
    align-items: center;
}
#toplinks ul a{
    text-decoration: none;
    margin-left: 2rem;
    font-size: 0.9rem;
    color: var(--maincolor);
    border-bottom:2px solid #fff;
}
#toplinks a:hover{
    font-size: 0.9rem;
    border-bottom:2px solid var(--subcolor);
}

#logo{
    font-size: 1rem;
    margin: 1rem 0;
    padding:  0;
    max-width: calc(100% - 32px);
}
#logo img{
    display: block;
    
}
#ocbt{
    display: none;
}
.page-index #mainmenu{
    display: none;
}
#mainmenu{
    margin: 0.5rem auto;
    z-index: 0;
}
#homemenu{
    margin: 5rem auto 0;
    z-index: 0;
}
#mainmenu ul,
#homemenu ul{
    justify-content: center;
}
#mainmenu a,
#homemenu a{
    display: block;
    margin: 0.5rem 1rem;
    text-decoration: none;
    font-size: 1.05rem;
    color: #000;
    padding: 0.25rem 0;
    border-bottom: 3px solid #fff;
}
#homemenu a:hover,
#homemenu a.on,
#mainmenu a:hover,
#mainmenu a.on{
    border-bottom: 3px solid var(--subcolor);
}
#content,
#mainvisual{
    position: relative;
    z-index: 1;
    background: #fff;

}
#mainvisual{
    padding: 0;
    background: var(--maincolor);
}
#mainvisual .wrapper{
    min-height: 150px;
    display: flex;
    justify-content: space-between;
    padding: 0 20px;
}
#mainvisual .wrapper *{
    align-self: center;
}
#mainvisual h1,
#mainvisual #mvtitle{
    max-width: 100%;
    font-size: 1.8rem;
    font-weight: 400;
    color: #fff;
    text-align: center;
    margin: 0 auto;
    padding: 1em;
    line-height: 160%;
}

#mainvisual .wrapper img{
    align-self: flex-end;
}


#slides {
    position: relative;
    padding-top: 56.25%;
}

.slidecontent {
    width: 100%;
    height: 100%;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
    opacity: 0;
    transition: 1s;
}
.slidecontent span{
    display: inline-block;
    padding: 0.5rem 1rem;
    font-size: 0.9rem;
    color: var(--subcolor);
    background: rgba(0, 0, 0, 0.75);
    position: absolute;
    top: 0;
    right: 0;
}
.slidecontent img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.slidecontent a {
    transition: 0.5s;
    opacity: 1;
}

.slidecontent a:hover {
    opacity: 0.7;
}

.slidecontent.current {
    z-index: 10;
    opacity: 1;
    display: block;
    width: 100%;
}
.wrapcontent{
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: 20;
}
.wrapcontent svg{
    width: 100%;
    height: auto;
}
.wrapbox{
    position: absolute;
    bottom: 0%;
    left: 0;
    width: 100%;
    z-index: 30;
    font-size: 0.9em;
}
.wrapbox .wrapper{
    margin: 0 auto 5%;
}
.wrapbox .wrapper>*{
    max-width: 48%;
}
.wrapbox .title{
    color: var(--subcolor);
    font-size: 1.5em;
    max-width: 35%;
    text-shadow: 0 0 2px #000;
}
.wrapbox .txt{
    color: #fff;
    text-shadow: 0 0 2px #000;
    font-family: var(--webfont-fp);
}
.wrapbox .links a{
    display: inline-block;
    padding: 0.5rem 2rem 0.75rem;
    background: var(--subcolor);
    color: var(--maincolor);
    text-decoration: none;
    font-size: 1rem;
    line-height: 100%;
    font-family: var(--webfont-fp);
}
.wrapbox .links a::after{
    font-family: "Material Icons";
    content: '\e8b6';
    color: var(--maincolor);
    font-size: 1.4em;
    line-height: 100%;
    display: inline-block;
    vertical-align: baseline;
    transform: translateY(5px);
    margin-left: 0.5rem;
}
.wrapbox .links a:hover{
    background: var(--subcolor-h);
}

#slidecontrol {
    padding: 0 0 0.25rem 0;
    width: 100%;
    z-index: 20;
    text-align: center;
    background: var(--graycolor);
}
#dots {
    display: inline-block;
}

#dots a {
    text-decoration: none;
    font-size: 0.6rem;
    margin: 0 3px;
    color: #707070;
    cursor: pointer;
    opacity: 1;
    transition: 0.5s;
}

#dots a:hover {
    opacity: 0.7;
}
#dots a.current {
    color: var(--subcolor);
}

#start:before {
    content: '\e037';
}

#stop:before {
    content: '\e034';
}


#start,
#stop {
    font-family: "Material Icons";
    color: #707070;
    font-size: 1.6rem;
    vertical-align: bottom;
    cursor: pointer;
    display: inline-block;
    margin-left: 0.5rem;
}

#start.on,
#stop.on {
    display: none;
}

#start:hover,
#stop:hover {
    color: #000;
}

#start span,
#stop span {
    position: absolute;
    top: -9000px;
    left: -9000px;
}

#searchlist{
    background: var(--graybg);
}
#searchlist .flex.c3 li{
    display: table;
    width: 30vw;
    max-width: 300px;
    height: 30vw;
    max-height: 300px;
}
#searchlist li a{
    background: var(--maincolor);
    display: table-cell;
    position: relative;
    vertical-align: middle;
    color: #fff;
    font-size: 1.6rem;
    text-decoration: none;
    text-align: center;
    padding: 1rem var(--mpsize);
    line-height: 160%;
}
#searchlist li a:hover{
    background: var(--maincolor-h);
}
#searchlist li a::before{
    font-family: "Material Icons";
    content: '\e8b6';
    display: block;
    font-size: 1.6em;
}
#searchlist li a span{
    display: block;
    margin: 1rem auto 0;
    font-size: 0.9rem;
    line-height: 1.4rem;
    padding: 0 20px;
}
#searchlist li a::after{
    content: '\e5cc';
    font-family: "Material Icons";
    position: absolute;
    color: var(--maincolor);
    right: 0;
    bottom: 0;
    background: var(--subcolor);
    padding: 5px;
    line-height: 1;
}
.page-index h2{
    text-align: center;
    margin: 1em auto;
}
.page-index h2:before{
    content: url('../images/h2bg.svg');
    display: block;
    margin: 0 auto 0.5rem;
    padding: 0;
}
section{
    padding: 2rem 0;
}
section h2{
    font-size: 1.8em;
    font-weight: normal;
    text-align: center;
    margin: 3em auto 1em;
}
section h3{
    font-size: 1.2em;
    margin: 2em auto 1rem;
}
/*search*/

#searchbox{
    background: var(--graybg);
}
#searchbox .sig{
    margin-bottom: 0;
}
#searchbox form{
    text-align: center;
}
#searchbox p{
    margin: 1rem auto;
}
#searchbox select,
#searchbox input,
#searchbox button{
    font-size: 1.1rem;
    background: #fff;
    color: var(--maincolor);
    border: 1px solid var(--maincolor-h);
    padding: 0.5rem;
    margin: 0 0.5rem 0.5rem 0;
    transition: 0.5s;
    -webkit-appearance: none;
    appearance: none;
}
#searchbox button{
    color: var(--maincolor);
    background: var(--subcolor);
    border: none;
    font-family: var(--webfont-fp);
    padding: 0.5rem 1rem;
    margin: 0 auto;
}
#searchbox button:hover{
    color: var(--maincolor-h);
    background: var(--subcolor-h);
}
.fullbt{
    display: inline-block;
    color: var(--maincolor);
    text-decoration: none;
}
.fullbt:hover{
    color: var(--subcolor);
}
.fullbt::before{
    font-family: "Material Icons";
    content: '\e5cc';
    font-size: 1.1rem;
    vertical-align: middle;
    display: inline-block;
    transform: translateY(-2px);
}


/*description*/
section .mokuji h2{
    font-size: 1.1rem;
}
.mokuji .flex.c2>*{
    margin-bottom: 0;
}
.mokuji{
    margin: 2em auto 0;
}
.person{
    padding: 0 0 0 200px;
    position: relative;
}
.person img{
    position: absolute;
    border-radius :50%;
    top: 0;
    left: 0;
}
.person h2{
    text-align: left;
}
.page-description h3{
    padding-left: 4em;
    position: relative;
}
.page-description h3::before{
    content:'';
    display: block;
    width: 3.5em;
    border-bottom: 1px solid var(--maincolor);
    position: absolute;
    left: 0;
    top: 1rem;
}
.page-description figure{
    text-align: center;
}
.page-description img{
    display: block;
}
.footnote{
    border-top: 1px solid var(--maincolor);
    margin: 3em auto;
    padding-top: 1em;
}
.footnote dd{
    margin: 0 auto 1em;
}

/*each*/
.youtubewrap{
    width: 100%;
    padding-top: 56.25%;
    position: relative;
}
.youtubewrap iframe{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
.youtubewrap+table{
    margin: 3em auto;
    width: 100%;
    border-collapse: collapse;
    border-top: 1px solid #ccc;
}
.youtubewrap+table th,
.youtubewrap+table td{
    padding: 0.25rem 1rem;
    text-align: left;
    border-bottom: 1px solid #ccc;
}
.youtubewrap+table th{
    background: var(--graybg);
}

.categories{
    text-align: center;
}
.categories{
    justify-content: center;
    flex-wrap: wrap;
}
.categories a{
    margin: 0 0.75rem 1rem;
    display: block;
    font-size: 0.9rem;
    color: var(--maincolor);
    text-decoration: none;
}
.categories span{
    display: block;
    margin: 0 auto;
    width: 140px;
    height: 140px;
    position: relative;
}
.categories span img{
    position: absolute;
    z-index: 5;
    left: calc(25px);
    top: calc(25px);
    width: 90px;
    height: 90px;
}
.categories a .catbg{
    fill: var(--maincolor);
    display: block;
    margin: 0 auto;
    transition: 0.5s;
    z-index: 1;
}
.categories a .on .catbg,
.categories a:hover .catbg{
    fill: var(--subcolor);
}
#resultbox a{
    text-decoration: none;
    color: var(--maincolor);
    font-size: 0.9rem;
}
#resultbox a:hover{
    color: var(--maincolor-h);
}
.resultbox{
    border: 1px solid var(--maincolor);
    padding: 0.5rem 1rem;
    margin: 0 auto 2rem;
}
.pagination{
    margin: 2em auto;
}

.pagination a{
    list-style: none;
    color: var(--maincolor);
    border: 1px solid #000;
    background: #fff;
    text-decoration: none;
    padding:  0.5rem;
}
.pagination a:hover{
    background: var(--subcolor);
}
#pagetop{
    margin-top: calc(-2em - 30px);
}

#footer{
    position: relative;
    z-index: 10;
    margin-top: 3em;
    background: var(--maincolor);
    color: #fff;
    font-family: var(--webfont-fp);
    padding: 2rem 0;
}
#footer .flex{
    align-items: center;
}
#footer address{
    font-style: normal;
}
#footer a{
    color: #fff;
    margin-right: 1rem;
}
#footmenu{
    margin-bottom: 2em;
}
.banner img{
    display: block;
    margin: 1rem auto;
}

@media all and (max-width: 900px){
    #slides{
        padding-top: 66%;
    }
    .wrapcontent{
        height: 100%;
    }
    .sp2{
        display: block;
    }
@media all and (max-width: 720px){
    .flex.c3::after, .flex.c3 > *,.flex.c4::after, .flex.c4::before, .flex.c4 > *,#searchlist .flex.c3 li{
        width: 100%;
        max-width: calc(94% / 2);
        margin-bottom: 3%;
    }
    #slides{
        padding-top: 100%;
    }
    .categories a{
        margin: 0 0.5rem 1rem;
    }
}
@media all and (max-width: 640px){
    .pc{
        display: none;
    }
    .sp{
        display: block;
    }
    #slides{
        padding-top: calc(100vh - 110px);
    }
    .wrapcontent{
        height: 100%;
    }
    .wrapbox .wrapper {
        margin: 0 auto 10%;
    }
}
@media all and (max-width: 520px){
    #homemenu{
        display: none;
    }
    .page-index #mainmenu,
    #mainmenu{
        display: block;
        height: 0;
        opacity: 0;
        transition: 0.5s;
        margin: 0 auto;
    }
    #mainmenu .flex{
        margin: 0 -20px;
        width: calc(100% + 40px);
        max-width: calc(100% + 40px);
    }
    #mainmenu .flex>*{
        width: 100%;
    }
    #mainmenu .flex>* a{
        padding: 0.75rem 20px;
        margin: 0;
        border-top: 1px solid var(--graycolor);
        border-bottom: none !important;
    }
    #toplinks ul{
        display: none;
    }
    #ocbt{
        padding: 25px 0 0;
        display: block;
        text-decoration: none;
        color: #202020;
        font-size: 0.75rem;
		font-weight: bold;
        text-align: center;
		line-height: 1rem;
        margin: 0;
        width: 22px;
		position: relative;
        border-bottom: none !important;
    }
    #ocbt span,
    #ocbt span::after,
    #ocbt span::before {
        content: "";
        width: 22px;
        border-top: 2px solid var(--maincolor);
        display: block;
        position: absolute;
        transition: 0.5s;
        top: 2px;
		left: 0;
    }
    #ocbt span::before {
        top: 6px;
		left: 0;
    }
    #ocbt span::after{
        top: 15px;
		left: 0;
    }
    #ocbt em {
        text-indent: -9000px;
        position: absolute;
    }
    .menuon #ocbt span::before {
        transform: rotate(45deg);
        top: 11px;
    }
    .menuon #ocbt span::after {
        transform: rotate(-45deg);
        top: 11px;
    }
    .menuon #ocbt span {
        border-top: #fff
    }
    .menuon #mainmenu{
        opacity: 1;
        height: 325px;
    }

}
@media all and (max-width: 480px){
    @media all and (max-height: 680px){
        #slides{
            font-size: 90%;
            padding-top: calc(100vh - 75px);
        }
        .wrapbox .wrapper {
            margin: 0 auto 20px;
        }
    }
    .wrapbox .wrapper > *{
        max-width: 60%;
    }
    .person{
        padding: 0;
    }
    .person img{
        position: relative;
        top: auto;
        left: auto;
        float: left;
        margin: 0 1rem 0 0;
    }
    .page-description h3{
        padding-left: 2em;
    }
    .page-description h3::before {
        width: 1.5em;
    }
}
@media all and (max-width: 420px){
    .flex.c2>*, .flex.c3::after, .flex.c3 > *,.flex.c4::after, .flex.c4::before, .flex.c4 > *,#searchlist .flex.c3 li{
        max-width: 100%;
    }
    #searchbox select,
    #searchbox input,
    #searchbox button{
        margin: 0 auto 0.5rem;
        width: 100%;
    }
    #searchbox button{
        width: auto;
    }
}
@media all and (max-width: 360px){
    .categories{
        justify-content: space-around;
    }
    .categories li{
        display: block;
    }
    .categories a{
        margin: 0 0 1rem;
    }

}