html.scrollmenu-open, html.scrollmenu-open body {height: 100%; overflow: hidden;}

/* common */
body {font-size: 1.4rem;}

/* html */
html.scrollmenu-open {
width: 100%;
height: 100%;
overflow: hidden;
}

/* header */
#header {
position: fixed;
width: 100%;
z-index: 100;
transition: .5s;
height:60px;
background: linear-gradient(120deg, rgba(32, 99, 199, 1) 20%, rgba(33, 108, 206, 1) 50%, rgba(0, 145, 255, 1) 50%, rgba(61, 200, 255, 1) 100%);
}
#header_inner{
height:60px;
justify-content:space-between;
align-items: center;
}
#header h1 {
display:block;
margin-left:5%;
text-align:left;
}
#header h1 a {
display:block;
color:#FFF;
}
#header h1 img {
width:50%;
vertical-align: -9px;
}

/* hamburger-menu */
.hamburger{
	position: relative;
	padding:0 2rem;
	z-index:2;
	-webkit-tap-highlight-color:transparent;
	cursor:pointer;
}
.hamburger .line{
	display: block;
	position: relative;
	width: 20px;
	height: 2px;
	margin: 6px auto;
	background-color: #fff;
	-webkit-transition: all 0.3s ease-in-out;
	-o-transition: all 0.3s ease-in-out;
	transition: all 0.3s ease-in-out;
}
.hamburger:hover{cursor: pointer;
}
.hamburger.active{
-webkit-transform: rotate(45deg);
-ms-transform: rotate(45deg);
-o-transform: rotate(45deg);
transform: rotate(45deg);
}
.hamburger:before{
content: "";
position: absolute;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
width: 32px;
height: 32px;
top: calc(50% - 16px);
left: calc(50% - 16px);
border: 2px solid transparent;
border-radius: 100%;
-webkit-transition: all 0.3s ease-in-out;
-o-transition: all 0.3s ease-in-out;
transition: all 0.3s ease-in-out;
}
.hamburger.active:before{
border: 2px solid #FFF;
}
.hamburger.active .line{
width: 20px;
}
.hamburger.active .line:nth-child(2){
opacity: 0;
}
.hamburger.active .line:nth-child(1){
-webkit-transform: translateY(8px);
-ms-transform: translateY(8px);
-o-transform: translateY(8px);
transform: translateY(8px);
}
.hamburger.active .line:nth-child(3){-webkit-transform: translateY(-8px) rotate(90deg);-ms-transform: translateY(-8px) rotate(90deg);-o-transform: translateY(-8px) rotate(90deg);transform: translateY(-8px) rotate(90deg);
}

/*hamburger-menus*/
.hamburger-menus{
position: fixed;
z-index:1;
top:60px;
left:0;
width:100%;
height:calc(100% - 60px);
visibility:collapse;
opacity:0;
transition: opacity 0.2s ease-out;
background-color: rgba(255, 255, 255,.95);
overflow: scroll;
}
.hamburger-menus ul{padding: 0 16rem 12rem;}
.hamburger-menus ul li {
position: relative;
display: flex;
flex-direction: column;
align-items: left;
}
.hamburger-menus ul li:before {
content: "";
position: absolute;
bottom: 0;
left: 0;
width: 0;
height: 1px;
background-color: #2063c7;
opacity:0;
transition: all 0.2s 0.4s ease;
}
.hamburger-menus ul li a {
padding: 3rem 3rem;
color: #2063c7 !important;
opacity:0;
transition: opacity 0.2s 0.2s ease ,padding 0.2s 0.2s ease,background-color 0.3s ease;
}
.hamburger.active ~ .hamburger-menus{
visibility:visible;opacity:1;
}
.hamburger.active ~ .hamburger-menus ul li:before {
opacity:1;width: 100%;
}
.hamburger.active ~ .hamburger-menus ul li a {
opacity:1;padding: 8rem 3rem;
}
.hamburger.active ~ .hamburger-menus ul li a:hover {
font-weight:900;
background-color: rgba(50, 125, 255,.3);
}
@media all and (max-width: 480px) {
html.scroll-off, html.scroll-off body {height: 100%; overflow: hidden;}
}

/* gnavi-sp */
#gnavi-sp{
	width:60px;
	display: flex;
	justify-content: center;
	align-items: center;
}
.hamburger-menus ul{padding: 1rem;}
.hamburger-menus ul li a {
padding: 0rem 2rem;
}
.hamburger.active ~ .hamburger-menus ul li a {
padding: 1.5rem 2rem;
}
#hamburger-menus-sns{
width:90%;
margin:3rem auto;
}
.hamburger-menus #hamburger-menus-sns ul li:before {
content: none;
}
#hamburger-menus-sns p{
font-weight:900;
color:#fff;
text-align:center;
}
#hamburger-menus-sns ul {
display: flex;
justify-content: center;
align-items: center;
}
#hamburger-menus-sns ul li {
position: relative;
padding: 0;
margin:0 2rem 3rem;
}
#hamburger-menus-sns ul li a {
padding: 0rem;
color:#FFF;
}
#hamburger-menus-sns svg {
width: 8vw;
height: 8vw;
vertical-align: top;
fill:#2063c7;
}


/*page*/
#toppage {
padding-top: 60px;
}
#page {
padding-top: 0;
}
.section-header h2 {
    font-size: 7vw;
text-shadow:
 1px 3px #FFF, 1px -3px #FFF, -1px 3px #FFF, -1px -3px #FFF, 2px 2px #FFF, 2px -2px #FFF, -2px 2px #FFF, -2px -2px #FFF, 3px 1px #FFF, 3px -1px #FFF, -3px 1px #FFF, -3px -1px #FFF;
}
.section-header h2:after {
font-size: 1.2rem;
}
.section-header p {
font-size: 1.3rem;
width:100%;
}


/* mainvisual */
#toppage #mainvisual {
position: relative;
width:100%;
}
#toppage .mv-name {
    position: absolute;
    top: 34%;
    left: 10%;
    transform: translateY(-50%);
    z-index: 2;
    width: 18vh;
    max-width: 260px;
}
#toppage .mv-name p {
font-size:4vw;
margin-bottom:8px;
}
#toppage .mv-catchcopy {
    position: absolute;
    top: 76%;
    left: 50%;
    transform: translate(-50%,-50%);
    z-index: 2;
    width: 60%;
}
div.arrows {
position: absolute;
z-index: 5;
width: 30px;
height: 40px;
margin: auto;
bottom: 20px;
left: 50%;
}
div.arrows b {
width: 150%;
top: -15px;
left:50%;
transform: translateX(-50%);
margin:0;
line-height:1;
}
div.arrows span::before, div.arrows span::after {
border-bottom: 3px solid #FFF;
}
div.arrows span {
}
div.arrows span:nth-of-type(1) {
top: 0px;
}
div.arrows span:nth-of-type(2) {
top: 10px;
}
div.arrows span:nth-of-type(3) {
top: 20px;
}


/*latest_news*/
#latest_news {
display: block;
padding:3rem 0;
}
#latest_news:before {
    display: block;
    font-size: 1.4rem;
    line-height:1.6;
    width: auto;
    margin-bottom:1rem;
    padding:0 1rem;
    text-align:center;
}
#latest_news:after {
 transform: rotate(-16deg)skewX(-16deg)scale(1.4)translate(0,-40%);
}
#latest_news ul {
    width: 100%;
}


/*resume*/
#prof-image {
    width: 33vw;
    top: -55%;
    right: 0;
    position:absolute;
    z-index:2;
    overflow:visible;
}
#profile-name {
    position:relative;
    width: 100%;
    overflow:visible;
    z-index:2;
}
#profile-name h3 {
width:65%;
}
#profile-name h3 span:nth-of-type(2) {
    font-size: 9vw;
}
#resume nav {
  margin-top:3vw;
    gap: 3vw 3%;
}
#resume nav li {
    flex-basis: calc(97% / 2);
}


/*breadcrumb*/
#top_breadcrumb {margin-top: 60px;}
.breadcrumb ol { width:92%;}
.breadcrumb { font-size: 1.2rem; padding: 0.25rem 0; }

/* aisatsu */
#aisatsu .section-header {
padding: 5rem 0 0;
}
#aisatsu h2{
line-height:1.4;
margin-bottom:1.5rem;
}
#aisatsu .parallax_content {
background-size: cover;
background-position: center top;
padding:0 0 4rem;
}
#aisatsu .content {
width: 90%;
padding: 2rem;
font-size:1.4rem;
letter-spacing:1px;
margin:auto;
}
#aisatsu .content div span{
display:block;
}
#aisatsu .content div span:nth-of-type(1) {
font-size:1.2rem;
letter-spacing:0;
}
#aisatsu .content div span:nth-of-type(2) {
line-height:1;
font-size:2.1rem;
white-space:nowrap;
}



/*policy*/
#policy {
background-color: #f5f5f5;
}
#policy:before {
    background-size: cover;
}
#policy .section-header {
top: 15vw;
left: 0%;
width:100%;
}
#policy .section-header h2 {

}
#policy .section-header p {
font-size: 3vw;
margin-top: .5em;
}
#policy .section-body{
    padding-top: 25vh;
}
#policy .no {
font: 900 5rem/1 "Arial",sans-serif;
letter-spacing: -.5rem;
color: #0099DD;
width: 50%;
}
#policy .content {
margin:0 auto;
padding: 0;
display: flex;
justify-content: center;
align-items: center;
flex-wrap:wrap;
}
#policy .body {
width: 90%;
background:rgba(255,255,255,.9);
padding:3rem;
order:2;
margin-top:0;
margin-bottom:4rem;
}
#policy .header {
font-size: 2rem;
line-height:1.2;
color: #0099DD;
margin-bottom: 1rem;
}
#policy .section-body p {
    font-size: 1.4rem;
}
#policy .image {
width: 100%;
order:1;
margin-left:0;
display:flex;
}
#policy .image img {
width: 100%;
}
#policy .image figure {
width:calc(86%);
padding:0;
transform: translate(0) rotate(0) !important;
margin:0 auto;
}

#policy .content:nth-of-type(5) .body {
    margin-top: 0;
}
#policy #link-vtr {
    padding: 0 3rem;
    top: 0;
}
#policy #link-vtr a {
    width: 100%;
}

#policy .content .body {
margin-right:0;
padding:2rem !important;
}
#policy .content {
margin-bottom:3vw;
}
#policy .content:last-child {
margin-bottom:0;
}
#policy .body .jitsugen:after {
top:0;
}
#leaflet-link a {
    width: 90%;
    font-size: 1.6rem;
   }
.category-leaflet #article.archive ul{
width:100%;
justify-content: space-between;
}
.category-leaflet #article.archive li {
flex-basis: calc((100% - 20px) / 2) ;
margin:0 0 20px;
}
.category-leaflet #article.archive li:nth-of-type(2n) {
margin-right: 0;
}
.category-leaflet #article.archive li:nth-of-type(3n) {
margin-right: inherit;
}
.category-leaflet #article.archive li a {
font-size:1.4rem;
}

/*topics*/
#topics .section-body {
    display: block;
}
#topics .flex-item {
    display: block;
}
#topics .flex-item:nth-of-type(1) a {
    font-size: 100%;
}
#topics .flex-item:nth-of-type(1) svg {
    width: 2.4vw;
    height: 2.4vw;
    vertical-align: -2px;
    margin-right: 1px;
}
#topics .recent-posts-list {
margin-top:3vw;
}
#topics .recent-posts-list a {
    font-size: 100%;;
}
#topics .recent-posts-list svg {
    width: 2.4vw;
    height: 2.4vw;
    vertical-align: -2px;
    margin-right: 1px;
}



/*yotube*/
#youtube {
    padding: 5vw 5vw;
}
#youtube .section-header {
    padding: 4rem 0 2rem;
    max-width: auto;
}
#youtube h3 {
    font-size: 3.6rem;
    text-align:center;
}
#youtube h3 svg.icon {
width: 4rem !important;
height: 4rem !important;
vertical-align: -7px !important;
}
#youtube p.follow {
margin-bottom:3vw;
}
#youtube p.follow a {
    display: block;
    text-align:center;
}
#youtube .section-body {
    display: block;
    max-width: none;
}
#youtube .inner {
flex-wrap:wrap;
}
#youtube .iframewrapper {
width: 100%;
padding-top: calc(100% * 0.5625);
}


/* sns links */
#sns-links .section-body {
    width: 90%;
    gap: 4%;
}
#sns-links li {
    width: calc(80% / 5);
}
#sns-links li a {}
#sns-links li svg { height: calc(80vw / 5);}
#sns-links .sns-label {font-size:80%;}


/*page-policy*/
#policy-contents {
max-width:1280px;
padding:0 6rem;
margin:0 auto;
position: relative;
z-index:1;
}
#policy-contents .description {
background:#f5f5f5;
padding:3rem 4rem;
font-size:2.4rem;
}
#policy-contents .content {
background:#f5f5f5;
padding:3rem 4rem;
display:flex;
flex-wrap:wrap;
}
#policy-contents .content .no {
font:900 7rem/1 "Arial",sans-serif;
letter-spacing:-.5rem;
color:#0099DD;
width:50%;
}
#policy-contents .content .header {
font-size:2.4rem;
color:#0099DD;
width:50%;
margin-bottom:1rem;
}
#policy-contents .content .body {
font-size:1.6rem;
width:50%;
}
#policy-contents .content .image {
background:#fff;
width:50%;
}



/*resume*/
#resume_inner {
padding: 4rem 0;
width: 90%;
}
#profile {
width: 100%;
margin: auto;
}
#history {
width: 100%;
margin: 3rem auto 0;
}
#history .card {
margin: 10px auto;
margin-left: 35px;
padding: 5px;
}
#history .card::before {
left: -27px;
}
#history .card .event {
padding: 5px;
}
#history .card .event img {
width:40%;
}
#profile h3 span:nth-of-type(1) {
font-size: 1.6rem;
}
#profile h3 span:nth-of-type(2) {
font-size: 3.2rem;
}
#profile h3 span:nth-of-type(3) {
font-size: 1.6rem;
}
#profile dt, #profile dd {
margin: 0 0 10px 0;
}
#resume nav a {
    min-height: 100px;
}

/*contact*/
#contact {
padding-bottom:5rem;
}
#contact.img_bg_contact.lazyloaded {
background-image: none;
}
#contact_wrapper {
width: 100%;
background-color: rgba(250, 250, 250,.7);
}
#contact #contact_inner {
background-color: transparent;
width: 90%;
margin:auto;
padding: 0;
left: 0;
transform: none;
}
#contact .section-header h2{
height: 4rem;
}
#contact .section-header p {
font-size: 1.3rem;
}
#contact .section-header ul {
padding: 1.5rem;
font-size: 1.2rem;
}
.contactform {
margin: 0 auto;
}
.contactform .input-block {
padding: .5rem;
margin-bottom: 1rem;
}
.contactform .input-block label:nth-of-type(1) {font-size: 1.2rem;line-height:1.2;}
.contactform .input-block .form-control {font-size: 1.2rem;}
.contactform label span {font-size: 1.2rem;}
.check-wrapper {font-size: 1.4rem;}
.accept .custom-checkbox {
width: 20px;
height: 20px;
}
.accept .custom-checkbox .first-line {
    top: 4px;
    left: 2px;
}
.accept .custom-checkbox .second-line {
    height: 18px;
    bottom: 0px;
    left: 11px;
}

#support #support-inner {
    width: 100%;
}

#support .flex-wrapper a {font-size:110%; margin:2rem 0;}
#support .flex-wrapper a:nth-of-type(1){margin-right:2rem;} 

/*access*/
#access {
padding-bottom:5rem;
}
#access .section-header h2{
font-size: 3.6rem;
height: 6rem;
}
#access h3 {
font-size: 2.4rem;
}
#access dl {
font-size: 1.4rem;
line-height: 2;
width: 90%;
}
#googlemap {
width: 90%;
height:50vh;
}
#googlemap iframe{
height:100%;
}

/* リンクバナー */
#link_banners {
padding-bottom:4vw;
}
#link_banners .animate {
    padding: 2vw;
}
#link_banners ul {
gap: .75rem;
}
#link_banners a {
    padding: .5rem 1.25rem;
}


/*footer*/
#footer-menu-wrapper {
width: 80%;
padding: 40px 0 120px;
}
#footer-logo {
flex-basis: 100%;
margin-right: 0;
}
#footer-menu {
flex-basis: 100%;
align-content: center;
margin-right: 0;
height: 12em;
}
#footer-menu li {
min-width: 40%;
line-height: 1.6;
}
#footer-logo p.name {
font-size: 10vw;
letter-spacing: 1px;
margin-bottom:1rem;
}
#footer-logo p span {
font-size: 1.4rem;
}
#footer-logo ul {
width: 40%;
margin: 0 auto 30px;
}
#footer-logo svg {
height: 30px;
}

#copyright {
flex-basis: 100%;
order:3;
}



#body:before{
line-height: 1.3;
    height: 50px;
}
#body .header { width:92%; padding: 20px 0;}
#body .header h1 {
    font-size: 5vw;
}
#body .header h1 a {
    font-size: 5vw;
}
#body .header p {
    margin: 0 0 0 6px;
    font-size: 1rem;
    border-top: 2px #fff solid;
    border-bottom: 2px #fff solid;
}
#body #mainvisual {
width:100%;
border-radius:0;
top: 0;
}
#body .section-header h2 {
font-size:2.4rem;
letter-spacing: 0;
height: auto;
}
#page-contents.layout-1column{
    width: 92%;
}
#page-contents.layout-1column #article {
 margin: 0 auto 20px;
}
#page-contents.layout-2column{
    width: 92%;
    top: 3vw;
}


/* page > reports */
#body.page-reports #page-contents {
width:92%;
justify-content: space-between;
padding-bottom:20px;
}

#page-contents .section {
flex-basis:100%;
margin-top:0px;
padding:2rem 1.5rem 1.5rem;
border-radius:1rem;
}
#body.page-reports p.follow {
text-align:center;
}

#follow.home p {
flex-basis: 100%;
padding:.25rem 0;
margin-bottom:1rem;
margin-right:0;
}
#follow.home span {
    position: static;
    white-space: nowrap;
}
#follow.home ul {
flex-basis: 100%;
}

.layout-2column {
width: 92%;
flex-wrap:wrap;
}
#article {
    flex-basis: 100%;
    width: 100%;
    margin: 0 auto 20px;
}
#article.archive li {
padding: 2rem 2rem 2rem 3rem;
    border-radius: 1rem;
    margin-bottom: 20px;
}
#article.archive li:before {
    width: 5px;
    left: 1.5rem;
}
#article.archive h3 {
font-size:1.6rem;
}
#article.archive p {
    font-size: 1.4rem;
}

.nav-links {
    font-size: 100%;
}

#sidebar {
    flex-basis: 100%;
    width: 100%;
    margin: 0 0 20px;
    border-radius: 1rem;
    border-top: 1rem #0099DD solid;
    border-bottom: 1rem #0099DD solid;
}
#sidebar h3 {
    letter-spacing: 1px;
}
#sidebar h3::before, #sidebar h3::after {
    top: 45%;
    width: 25%;
}
#sidebar #profile .avatar {
    width: 50%;
}
.page-privacy-policy #page-contents{
width:100%;
}
.page-privacy-policy #privacy-policy.section {
    width: calc(100% - 40px);
    margin: 0 auto;
    padding: 2.5rem;
}
.page-privacy-policy #privacy-policy .section-header p {
    font-size: 100%;
    text-align: left !important;
}

#article #post {
    padding: 2rem;
    border-radius: 1rem;
    font-size:1.4rem;
}
#body.search #article {
    width: calc(100% - 40px);
    margin-bottom:50px;
}
#article.search .search-result {
    padding: 2rem;
    border-radius: 1rem;
    margin-bottom: 20px;
    font-size:1.4rem;
}
#article.search li {
    padding: 1.5rem;
    border-radius: 1rem;
    margin-bottom: 20px;
}
#article.search h3 {
font-size:1.8rem;
}
#article.search p {
    font-size:1.4rem;
}
#share,#follow {
flex-wrap:wrap
}
#follow.layout-1column {
 width: 100%;
 margin:auto;
}
#share p,#follow p {
font-size:10px;
text-align:center;
width:100%;
flex-basis:100%;
margin:0;
}
#share span,#follow span {
font-size:1.6rem;
}
#follow li {

}
#share ul,#follow ul {
width:92%;
flex-basis:92%;
justify-content: center;
flex-wrap:wrap;
gap:15px;
}
#share li,#follow li {
margin: 5px;
}
#share li a,#follow li a {
border-radius: 0.25rem;
padding: 0;
}
#share svg,#follow svg {
    display:block;
    width:5vw;
    height: 5vw;
    vertical-align: -5px;
}

.profile-section-header div p {
    width: 90%;
    font-size:1.1rem;
    line-height:1.3;
}

#body.page .header {
    padding: 5vw 0 3vw;
}