@charset "utf-8";
/* CSS Document */

/* header
--------------------------------*/
header{
	width: 100%;
	box-sizing: border-box;
	margin: 0 auto;
    height: 95px;
    background: #FF0000;
    color: #FFF;
    position: fixed;
    top: 0;
    z-index: 999999;
}
header #mainManu{
    width: 100%;
    height: 100%;
    margin: auto;
    max-width: 1100px;
    text-align: left;
}
header #mainManu ul{
    position: relative;
    display: flex;
    z-index: 10;
    height: 100%;
    width: 100%;
    gap:0 4em; 
    justify-content: space-between;
}
header #mainManu > ul li{
    position: relative;
    flex-wrap:wrap;
    justify-content: center;
    align-items:baseline;
    align-self: center;
    font-size: 1.8rem;
    line-height: 0;
}
header #mainManu > ul li a{
    color: #FFF;
    line-height: 1;
}
header #mainManu > ul li a .new:before{
    content:"NEW";
    position:absolute;
    background:#FFF;
    color:#F00;
    font-size:1.2rem;
    font-weight:bold;
    line-height:1;
    padding:0.2em 0.5em;
    top:-1.6em;
}
header #mainManu > ul li:not(.logo){
    display: block;
}
header #mainManu > ul li:not(.logo):not(.contact):not(.lang) a{
}
header #mainManu > ul li:not(.logo):not(.contact):not(.lang) a span{
    line-height: 1;
    padding-bottom: 0.05em;
    border-bottom: 1px solid #FFF;
}
header #mainManu > ul li:not(.logo):not(.contact):not(.lang) a span:hover{
    border-bottom: 1px dashed #FFF;
    transition: .3s;
}

header #mainManu > ul li.logo{
}
header #mainManu > ul li.logo img{
    position: relative;
    width: auto;
    height: 70px;
    top: 0;
    margin-right: 1em;
}
header #mainManu > ul li.contact a{
    border: 1px solid #FFF;
    margin: auto 1em;
    padding: 0.3rem 3.5rem 0.5rem;
    line-height: 100%;
    border-radius:2rem;
}
header #mainManu > ul li.contact a:hover{
    border: 1px solid #FFF;
    background: #FFF;
    color: #FF0000;
}
header #mainManu > ul li.lang{
    margin: auto 0 auto auto;
}
header #mainManu > ul li.lang span{
    font-size: 1.6rem;
    margin: auto 0.25em;
    border: 1px solid #FFF;
    background: #FFF;
    color: #FF0000;
    padding: 0.2rem 1.5rem 0.3rem;
    line-height: 100%;
    border-radius:1.6rem;
}
header #mainManu > ul li.lang a{
    font-size: 1.6rem;
    margin: auto 0.25em;
    border: 1px solid #FFF;
    padding: 0.2rem 1.5rem 0.3rem;
    line-height: 100%;
    border-radius:1.6rem;
}
header #mainManu > ul li.lang a:hover{
    border: 1px solid #FFF;
    background: #FFF;
    color: #FF0000;
}
@media screen and (max-width: 1024px){
    header{
        height: 18vw;
    }
    .mobileMenu{
        position: relative;
        width: 100%;
        height: 100%;
        z-index: 999999;
    }
    .mobileMenu__head{
        position: relative;
        height: 18vw;
        width: 85vw;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        z-index: 100;
        margin: auto auto auto 5vw;
    }
    .mobileMenu__head .logo{
        width: 30vw;
        position: relative;
        top:5%;
    }
    .mobileMenu__head .lang{
        width: 40vw;
        font-size: 4vw;
        position: relative;
        top: -7%;
    }
    .mobileMenu__head .lang a{
        margin: auto 0.25em;
        border: 1px solid #FFF;
        background: #FFF;
        color: #FF0000;
        padding: 0.2rem 1.5rem 0.3rem;
        line-height: 100%;
        border-radius:1.6rem;
    }
    .mobileMenu__head .lang span{
        margin: auto 0.25em;
        border: 1px solid #FFF;
        background: #FF0000;
        color: #FFF;
        padding: 0.2rem 1.5rem 0.3rem;
        line-height: 100%;
        border-radius:1.6rem;
    }
    .hamburger-menu {
        width: 18vw;
        height: 18vw;
        position: absolute;
        border: none;
        background: transparent;
        appearance: none;
        padding: 0;
        cursor: pointer;
        z-index: 100;
        right: 0;
        top:0;
        margin: 0 0 0 auto ;
    }
    .hamburger-menu__bar {
      display: inline-block;
      width: 10vw;
      height: 3px;
      background: #FFF;
      position: absolute;
      left: 50%;
      transform: translateX(-50%);
      transition: .5s;
    }
    .hamburger-menu__bar:first-child {
      top: 5.5vw;
    }
    .hamburger-menu__bar:nth-child(2) {
      top: 9vw;
    }
    .hamburger-menu__bar:last-child {
      top: 12.5vw;
    }
    .hamburger-menu--open .hamburger-menu__bar {
      top: 50%;
    }
    .hamburger-menu--open .hamburger-menu__bar:first-child {
      transform: translateX(-50%) translateY(-50%) rotate(45deg);
    }
    .hamburger-menu--open .hamburger-menu__bar:last-child {
      transform: translateX(-50%) translateY(-50%) rotate(-45deg);
    }
    .hamburger-menu--open .hamburger-menu__bar:nth-child(2) {
      display: none;
    }
    .menu__content {
        display: none;
        background: #FF0000 url("../images/logo_light.svg") no-repeat center bottom 5% / 40% auto;
        position: absolute;
        top: 18vw;
        width: 100%;
        height: calc(100vh - 18vw);
        z-index: 99999999;
    }
    .menu__list {
        text-align: center;
        list-style: none;
        padding: 0 5vw 5vw;
        margin: 0;
        font-size: 6vw;
        z-index: 9999;
    }
    .menu__list li {
        border-bottom: solid 1px #FFF;
    }
    .menu__list li:last-child {
        border-bottom: none;
    }
	.menu__list li a span{
	    position:relative;
	}
	.menu__list li a .new:before{
	    content:"NEW";
	    position:absolute;
	    background:#FFF;
	    color:#F00;
	    font-size:3vw;
	    font-weight:bold;
	    line-height:1;
	    padding:0.5em 0.5em;
	    left:-4em;
	    top:0.5em;
	}
    .menu__list li .link {
        color: #fff;
        text-decoration: none;
        display: block;
        padding: 16px 0;
        transition: .5s;
    }
    .menu__list li .contact span{
        display: inline-block;
        margin-top: 1em;
        line-height: 1;
        padding: 0.4em 3em 0.6em;
        border-radius: 1.5em;
        border: 1px solid #FFF;
    }
    
}
@media screen and (min-width: 768px) and (max-width: 1024px){
    header{
        height: 10vw;
    }
    .mobileMenu__head{
        height: 10vw;
    }
    .mobileMenu__head .logo{
        width: 19vw;
    }
    .mobileMenu__head .lang{
        font-size: 3vw;
    }
    .mobileMenu__head .lang a{
        padding: 0.2rem 1.5rem 0.3rem;
        line-height: 100%;
        border-radius:3vw;
    }
    .mobileMenu__head .lang span{
        padding: 0.2rem 1.5rem 0.3rem;
        line-height: 100%;
        border-radius:3vw;
    }
    .hamburger-menu {
        width: 10vw;
        height: 10vw;
    }
    .hamburger-menu__bar {
      width: 5vw;
    }
    .hamburger-menu__bar:first-child {
      top: 3.5vw;
    }
    .hamburger-menu__bar:nth-child(2) {
      top: 5vw;
    }
    .hamburger-menu__bar:last-child {
      top: 6.5vw;
    }
    .hamburger-menu--open .hamburger-menu__bar {
      top: 50%;
    }
    .menu__content {
        top: 10vw;
        height: calc(100vh - 10vw);
    }
}

/* wrapper
--------------------------------*/
#wrapper{
	width: 100%;
	box-sizing: border-box;
	margin: 0 auto;
    padding-bottom: 10em;
}
#wrapper a{
    transition: .3s; 
}
#wrapper a:hover{
    opacity: 0.75;
}
@media screen and (max-width: 1280px){
    #wrapper{
        padding-bottom: 5em;
    }
}
@media screen and (max-width: 767px){
    #wrapper{
        padding-bottom: 5em;
    }
}
 

/* cover
--------------------------------*/
#cover{
    width: 100%;
    height: 0;
    padding-bottom: 33.71%;
    position: relative;
    overflow: hidden;
}
@media screen and (max-width: 1280px){
    #cover{
    padding-bottom: 45%;
    }
}
@media screen and (max-width: 767px){
    #cover{
        width: 100%;
        padding-bottom: 100vw;
    }
}
/* mainVisual
--------------------------------*/
.mainVisual{
    width:100%;
    height: 100%;
    max-width: 1100px;
    position: absolute;
    margin:0 auto;
    z-index: 0;
    left: 50%;
    transform: translate(-50% , 0);
    -webkit-transform: translate(-50% , 0);
    -ms-transform: translate(-50% , 0);
}
@media screen and (max-width: 1280px){
    .mainVisual{
        max-width: none !important;
    }
}
@media screen and (max-width: 767px){
    .mainVisual{
    }
}
.mainVisual:after{
    content: "";
    overflow: hidden;
    position: absolute;
    top: 0;
    left: 50%;
    opacity: 0;
    width: 100vw;
    height: 100%;
    transform: translate(-50% , 0);
    -webkit-transform: translate(-50% , 0);
    -ms-transform: translate(-50% , 0);
    margin: 0;
    padding: 0;
    background: #FFF;
    display: flex;
    justify-content: center;
    animation: mainVisual_after 4s 0s ;
}
@keyframes mainVisual_after {
    0%,70%,90% {
        opacity: 0;
    }
    75% {
        opacity: 0.8;
        z-index: 100;
    }
}


/* h1
--------------------------------*/
.mainVisual h1{
    position: absolute;
    display: block;
    width: 100%;
    text-align: center;
    top: 12%;
    left: 0;
    transform: translate(0 , -50%);
    -webkit-transform: translate(0 , -50%);
    -ms-transform: translate(0 , -50%);
    font-size: 3.3rem;
    font-weight: 400;
    line-height: 1.6;
    color: #FFF;
    text-shadow: 0px 0px 10px rgba(0,0,0,100), 0px 0px 15px rgba(0,0,0,100);
    box-sizing: border-box;
    animation: main_h1 4s linear 0s;
}
@keyframes main_h1 {
    0% {
        opacity: 0;
    }
    50%{
        opacity: 0;
    }
    55% {
        opacity: 1;
    }
}

@media screen and (max-width: 1280px){
    .mainVisual h1{
        font-size: 3.5vw;
        margin: 2vw auto 0;
    }
}
@media screen and (max-width: 767px){
    .mainVisual h1{
        position: relative;
        top: 0;
        width: 90%;
        font-size: 6vw;
        margin: 20vw auto 0;
        line-height: 1.4;
    }
}

/* main__txt main__logo
--------------------------------*/
.mainVisual .main__txt{
    position: absolute;
    margin: 0 auto;
    width: 75%;
    top: 22%;
    left: 50%;
    transform: translate(-50% , 0);
    -webkit-transform: translate(-50% , 0);
    -ms-transform: translate(-50% , 0);
    animation: main__text 4s 0s;
}
@keyframes main__text {
    0% {
        opacity: 0;
    }
    45%{
        opacity: 0;
    }
    60% {
        opacity: 1;
    }
}
.mainVisual .main__logo{
    position: absolute;
    margin: 0 auto;
    width: 55%;
    left: 50%;
    bottom: 1%;
    transform: translate(-50% , 0);
    -webkit-transform: translate(-50% , 0);
    -ms-transform: translate(-50% , 0);
    animation: main__logo 4s 0s;
}
@keyframes main__logo {
    0%,82%{
        opacity: 0;
    }
    83%,100%{
        opacity: 1;
    }
}
.mainVisual * img{
    width: 100%;
    text-align: center;
    margin: 0 auto;
}

@media screen and (max-width: 1280px){
    .mainVisual .main__txt{
        width: 50%;
        top: 30%;
    }
    .mainVisual .main__logo{
        width: 35%;
        bottom: 2%;
    }
}
@media screen and (max-width: 767px){
    .mainVisual .main__txt{
        width: 100%;
        top: 38%;
    }
    .mainVisual .main__logo{
        width: 60%;
        bottom: 2%;
    }
}


/* mainImage
--------------------------------*/
.mainImage{
    overflow: hidden;
    z-index: -1;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50% , 0);
    -webkit-transform: translate(-50% , 0);
    -ms-transform: translate(-50% , 0);
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    background: #F00 url("../images/cover.jpg") center center / cover no-repeat;
    display: flex;
    justify-content: center;
}
.mainConcierge{
    overflow: hidden;
    z-index: -1;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50% , 0);
    -webkit-transform: translate(-50% , 0);
    -ms-transform: translate(-50% , 0);
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    background: url("../images/main_concierge.png") center center / cover no-repeat;
    display: flex;
    justify-content: center;
    animation: mainConcierge 4s linear 0s;
}
@keyframes mainConcierge {
    0% {
        transform: translate(-50%,40%);
        opacity: 0;
    }
    30% {
        transform: translate(-50%, 0%);
        opacity: 1;
    }
}


@media screen and (max-width: 1280px){
}
@media screen and (max-width: 767px){
    .mainImage{
        background: #F00 url("../images/cover_sp.jpg") center center / cover no-repeat;
    }
    .mainConcierge{
        background: url("../images/main_concierge_sp.png") center center / cover no-repeat;
    }
}


/* contents
--------------------------------*/
#contents{
    width: 100%;
    margin: 0 auto;
    padding: 2em 0;
    box-sizing: border-box;
}
#contents section{
    width: 100%;
    max-width: 1100px;
    margin: 5em auto 2em;
    text-align: left;
}
#contents section + section{
    margin: 5em auto 2em auto;
}
#contents section h1{
    margin: 0 auto 1em -2em;
    position: relative;
    font-size: 4.4rem;
    font-weight: 700;
    color: #000000;
    font-feature-settings: "palt" 1;
}
#contents section h1:before{
    content: "";
    position: absolute;
    left: -2em;
    top: 1em;
    z-index: -1;
    display: block;
    width: 20rem;
    height: 20rem;
    background: #FF0000;
}
#contents section .innerConts{
    width: 100%;
    max-width: 970px;
    margin: auto 0 auto auto;
}
#contents section .innerConts p + p{
    margin-top: 0.5em;
}
#contents section .button a{
    display: inline-block;
    line-height: 1;
    padding: 0.4em 1.5em 0.5em;
    border: 1px solid #FF0000;
    border-radius: 1.5em;
    color: #FF0000;
    box-sizing: border-box;
}
#contents section .button a:hover{
    background: #FF0000;
    color: #FFF;
}
#contents section .button_dark a{
    display: inline-block;
    line-height: 1;
    padding: 0.4em 1.5em 0.5em;
    border: 1px solid #FF0000;
    background: #FF0000;
    border-radius: 1.5em;
    color: #FFF;
    box-sizing: border-box;
}
#contents section .button_dark a:hover{
    background: #FFF;
    color: #FF0000;
}
#contents section .button_redbg a{
    display: inline-block;
    line-height: 1;
    padding: 0.4em 1.5em 0.5em;
    border: 1px solid #FFFFFF;
    background: #FFFFFF;
    border-radius: 1.5em;
    color: #F00;
    box-sizing: border-box;
}
#contents section .button_redbg a:hover{
    background: #EFF;
    color: #FF0000;
}


@media screen and (max-width: 1280px){
    #contents{
        width: 100vw;
        padding: 0 5vw;
        max-width: none !important;
        overflow-x: hidden;
        font-size: 1.8rem;
    }
    #contents section + section{
        margin: 5em 0 2em 0;
    }
    #contents section h1{
        margin: 0 0 8vw 5vw;
    }
    #contents section h1:before{
        left: -10vw;
        top: 50%;
        transform: translate(0 , -50%);
        -webkit-transform: translate(0 , -50%);
        -ms-transform: translate(0 , -50%);
        z-index: -1;
        display: block;
        width: 18vw;
        height: 18vw;
    }
}
@media screen and (max-width: 1024px){
    #contents{
        width: 100vw;
        padding: 0 5vw;
        max-width: none !important;
        overflow-x: hidden;
    }
    #contents section + section{
        margin: 5em 0 2em 0;
    }
    #contents section h1{
        font-size: 6vw;
        margin: 0 0 8vw 5vw;
    }
    #contents section h1:before{
        left: -10vw;
        top: 50%;
        transform: translate(0 , -50%);
        -webkit-transform: translate(0 , -50%);
        -ms-transform: translate(0 , -50%);
        z-index: -1;
        display: block;
        width: 18vw;
        height: 18vw;
    }
}
@media screen and (max-width: 767px){
    #contents section{
        margin: 3em 0 2em 0;
    }
    #contents section + section{
        margin: 3em 0 2em 0;
    }
    #contents section h1{
        font-size: 8.5vw;
        margin: 0 0 5vw 5vw;
    }
    #contents section h1:before{
        left: -10vw;
        top: 50%;
        transform: translate(0 , -50%);
        -webkit-transform: translate(0 , -50%);
        -ms-transform: translate(0 , -50%);
        z-index: -1;
        display: block;
        width: 20vw;
        height: 20vw;
    }
}


/* message
--------------------------------*/
section#message{
    font-size:2.2rem;
    line-height: 1.6;
    padding-bottom: 5em;
}
section#message h2{
    font-size:3.4rem;
    font-weight:700;
    color: #000;
    padding-bottom: 1em;
}
section#message p{
    font-size: 2.16rem;
}
@media screen and (max-width: 1024px){
    section#message{
        font-size:2.5vw;
    }
    section#message h2{
        font-size:4vw;
    }
    section#message p{
        font-size: 2.5vw;
    }
}
@media screen and (max-width: 767px){
    section#message{
        font-size:4.5vw;
        padding-bottom: 5vw;
    }
    section#message h2{
        font-size:7.5vw;
        font-weight: 700;
        line-height: 1.2;
    }
    section#message p{
        font-size: 4.5vw;
    }
}

/* service
--------------------------------*/
section#service{
    position: relative;
    font-size:2.2rem;
    line-height: 1.6;
    padding-bottom: 2em;
    z-index: 0;
}
section#service:before{
    content: "";
    position: absolute;
    width: 100vw;
    left: 0;
    top: -5vw;
    height: 5vw;
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
    background: #FF0000;
    overflow: hidden;
    z-index: -10;
}
section#service:after{
    content: "";
    position: absolute;
    width: 100vw;
    left: 0;
    top: 0;
    height: 100%;
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
    background: #FF0000;
    overflow: hidden;
    z-index: -10;
}
section#service h1:before{
    background: #FFF;
}
section#service h2{
    position: relative;
    font-size:3.4rem;
    color: #000;
    font-weight: 700;
    padding-bottom: 1em;
}
section#service p{
    font-size: 2.8rem;
}

section#service #chart{
    position: relative;
    left: 50%;
    width:1280px;
    background: #e9e6e4;
    margin: auto auto;
    transform: translate(-50%, 0);
    -webkit-transform: translate(-50% , 0);
    -ms-transform: translate(-50% , 0);
}
section#service #chart:after{
    content: "";
    position: absolute;
    display: block;
    width:45%;
    height: 100%;
    z-index: -1;
    background: #2c2e3c;
    left: 0;
    top: 0;
}

section#service #chart .chart__inner{
    width: 90%;
    margin: 0 auto;
    padding: 0 0 2em 0;
    display: flex;
    flex-wrap: wrap;
    z-index: -1;
}

section#service #chart .chart__title,
section#service #chart .chart__disc,
section#service #chart .chart__phase{
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    flex-wrap: wrap;
    margin: auto auto;
    width: 100%;
    box-sizing: border-box;
    z-index: 0;
}
section#service #chart .chart__title{
    margin: 2em auto 1em;
}

section#service #chart .chart__title h2 {
    display: block;
    font-size: 2.8rem;
    text-align: center;
    font-weight: 400;
    padding: 0;
    margin: 0;
    line-height: 1.6;
    box-sizing: border-box;
}

section#service #chart .chart__title .chart__title__phase{
    border-bottom: 2px solid #FFF;
}
section#service #chart .chart__title .chart__title__support{
    border-bottom: 2px solid #F00;
}

section#service #chart .chart__title .chart__title__phase,
section#service #chart .chart__disc .chart__title__phase,
section#service #chart .chart__phase .chart__phase__title{
    position: relative;
    color: #FFF;
    width: 40.5%;
    margin-right: 4%;
    z-index: -1;
}

section#service #chart .chart__phase h3 {
    display: block;
    font-size: 3.2rem;
    text-align: center;
    font-weight: 700;
    padding: 0;
    margin: 0;
    line-height: 1.6;
    box-sizing: border-box;
}

section#service #chart .chart__phase .chart__phase__title:before{
    content: "";
    position: absolute;
    display: block;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    box-shadow: 3px 3px 10px 0px rgba(0, 0, 0, 0.8),-5px 0px 10px 0px rgba(255, 255, 255, 0.3);    
}
section#service #chart .chart__phase .chart__phase__title.start{
    z-index: 10;
}
section#service #chart .chart__phase .chart__phase__title.start:before{
    border-radius: 1em 1em 0 0;
    z-index: -1;
}
section#service #chart .chart__phase .chart__phase__title.start:after{
}
section#service #chart .chart__phase .chart__phase__title.end:before{
    border-radius: 0 0 1em 1em;
}
section#service #chart .chart__phase .chart__phase__title:not(.start){
    background: #2c2e3c;
}
section#service #chart .chart__phase .chart__phase__title:not(.start):after{
    content: "";
    position: absolute;
    display: block;
    width: 100%;
    height: 15px;
    top: -15px;
    left: 0;
    z-index: 10;
    background: #2c2e3c;
}

section#service #chart .chart__title .chart__title__support,
section#service #chart .chart__phase .chart__phase__disc,
section#service #chart .chart__phase .chart__phase__body{
    color: #F00;
    width: 51.5%;
    margin-left: 4%;
}
section#service #chart .chart__phase{
    align-items: stretch;
    box-sizing: border-box;
    position: relative;
    
}

section#service #chart .chart__phase__wrap{
    width: 100%;
    box-sizing: border-box;
    display: flex;
    position: relative;
}
section#service #chart .chart__phase__wrap.end{
    margin-bottom: 6em;
}
section#service #chart .chart__phase__wrap.end:after{
    content: "▼";
    color: #FFF;
    width: 40.5%;
    font-size: 3.25em;
    display: block;
    margin: 1em auto 0;
    position: absolute;
    top: 1.5em;
    text-align: center;
}

section#service #chart .chart__phase.phase01{
}
section#service #chart .chart__phase .chart__phase__title{
    position: relative;
    box-sizing: border-box;
}
section#service #chart .chart__phase__title h3{
    position: relative;
    text-align: center;
    font-weight: 700;
    font-size: 2.8rem;
    letter-spacing: -0.01em;
    width: 100%;
    top: 0.8em;
    vertical-align:baseline;
    background: #2c2e3c;
}
section#service #chart .chart__phase .chart__phase__title h4{
    position: relative;
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap:0 0.8em;
    width: 90%;
    height: 3.5em;
    background:linear-gradient(120deg, rgba(0,0,0,0.5) 50%, rgba(255,255,255,0.2) 100%);
    font-size:2.4rem;
    font-weight: 700;
    border-radius: 1em;
    padding: 0 0.5em;
    box-sizing: border-box;
    margin:0 auto;
    top: 50%;
    transform: translate(0, -50%);
    -webkit-transform: translate(0 , -50%);
    -ms-transform: translate(0 , -50%);
    line-height: 1.1;
    z-index: auto !important;
}
section#service #chart .chart__phase .chart__phase__title h4:after{
    content: "";
    position: absolute;
    display: block;
    background: #651015;
    width: calc(100% - 10px);
    height: calc(100% - 10px);
    box-shadow: 2px 0px 5px 0px rgba(0, 0, 0, 0.8),-2px 0px 5px 0px rgba(255, 255, 255, 0.2);
    border-radius:1em; 
    left: 5px;
    top: 5px;
    z-index: -2;
}
section#service #chart .chart__phase .chart__phase__title h4 span.num{
    display: block;
    font-size:150%;
    width: 1.7em;
    line-height: 1.4;
    height: 1.5em;
    text-align: center;
    border-radius: 2em;
    box-sizing: border-box;
    box-shadow: 3px 0px 5px 0px rgba(0, 0, 0, 0.8),-2px 0px 5px 0px rgba(255, 255, 255, 0.5);
    flex-grow: 1;
    z-index: 1;
}
section#service #chart .chart__phase .chart__phase__title h4 span + span{
    flex-grow: 1;
    width: calc(100% - 1.5em);
    z-index: 1;
}
section#service #chart .chart__phase .chart__phase__title h4 small{
    display: block;
    font-size: 70%;
    margin-top: -0.05em;
}

section#service #chart .chart__phase .chart__phase__body{
    position: relative;
    box-sizing: border-box;
    background: #F00;
    padding: 0.5em 0.5em 0.5em 2em;
    border-radius: 1em;
    color: #FFF;
    margin-top: 1em;
    margin-bottom: 1em;
    filter: drop-shadow( 5px 6px 8px rgba(0, 0, 0, 0.5));
}
section#service #chart .chart__phase .chart__phase__body:before{
    content: "";
    position: absolute;
    display: block;
    top: 50%;
    left: -5em;
    background: #F00;
    width: 5em;
    height: 20px;
    transform: translate(0, -50%);
    -webkit-transform: translate(0 , -50%);
    -ms-transform: translate(0 , -50%);
    clip-path: polygon(20% 0%, 20% 30%, 100% 30%, 100% 70%, 20% 70%, 20% 100%, 0% 50%);
}
section#service #chart .chart__phase .chart__phase__body:after{
    content: "";
    position: absolute;
    display: block;
    top: 50%;
    left: 1em;
    border-radius: 3px;
    transform: translate(0, -50%);
    -webkit-transform: translate(0 , -50%);
    -ms-transform: translate(0 , -50%);
    background: rgba(255,255,255,0.5);
    width: 6px;
    height: calc(100% - 1em);
    
}
section#service #chart .chart__phase .chart__phase__body p{
    font-size: 2.2rem;
    font-weight: 700;
}
section#service #chart .chart__phase .chart__phase__body ul{
    font-size: 1.6rem;
}
section#service #chart .chart__phase .chart__phase__body ul li{
    text-indent: -1.5em;
    margin-left: 1.5em;
}
section#service #chart .chart__phase .chart__phase__body ul li:before{
    content: "●";
    margin-right: 0.5em;
}
section#service #chart .chart__phase .chart__phase__body ul li ul li:before{
    content: "－";
}
section#service #chart .chart__phase .chart__phase__body .chart__phase__button{
    position: absolute;
    display: block;
    width: 1.5em;
    height: 1.5em;
    right: 1em;
    top: 50%;
    transform: translate(0, -50%);
    -webkit-transform: translate(0 , -50%);
    -ms-transform: translate(0 , -50%);
    background: url("../images/arrow_white.svg") center center / cover no-repeat ;
    z-index: 1;
    border-radius: 50%;
    box-shadow: 3px 3px 5px 0px rgba(0, 0, 0, 0.5),-2px -2px 5px 0px rgba(255, 255, 255, 0.8);
    cursor: pointer;
}


body.stop{
    margin: 0;
    padding-right:0;
    overflow: hidden !important;
    width: 100vw;
}
.modal{
    position: absolute;
	top: 50%;
	left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50% , -50%);
    -ms-transform: translate(-50% , -50%);
	width: 100vw;
	height: 100vh;
	text-align: center;
	background: rgba(0,0,0,50%);
	padding: 0 0;
    margin: 0;
	opacity: 0;
	visibility: hidden;
	transition: .3s;
    box-sizing: border-box;
    z-index: 9999999999;
    font-size: 1.8rem;
}
.modal:before{
	content: "";
    display: flex;
    overscroll-behavior: contain;
    overflow-y: scroll;
    vertical-align: middle;
	height: 100%;
}
.modal.active{
	opacity: 1;
	visibility: visible;
    position: fixed;    
}
.modal .modal__overlay{
    height:calc(100vh + 1px) ;
    width: 1px;
    background-color: transparent;
}
.modal .modal__inner{
	position: absolute;
	top: 50%;
	left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50% , -50%);
    -ms-transform: translate(-50% , -50%);
	display: inline-block;
	vertical-align: middle;
	max-width: 800px;
	width: 90%;
    text-align: left;
}
.modal .modal__inner .modal__contents{
    box-sizing: border-box;
    padding: 1em 3em 1em 1em;
    color: #000;
}
.modal .modal__inner .modal__contents p{
}
.modal .modal__inner .modal__close{
    position: absolute;
    display: block;
    width: 1.8em;
    height: 1.8em;
    right: 0.5em;
    top: 50%;
    transform: translate(0, -50%);
    -webkit-transform: translate(0 , -50%);
    -ms-transform: translate(0 , -50%);
    background: url("../images/arrow_close.svg") center center / cover no-repeat ;
    z-index: 1;
    border-radius: 50%;
    box-shadow: 3px 3px 5px 0px rgba(0, 0, 0, 0.5),-2px -2px 5px 0px rgba(255, 255, 255, 0.8);
    cursor: pointer;
}
.modal .modal__inner .modal__contents{
    display: block;
    width: 100%;
    background: #FFF;
    border-radius: 1em;    
}


@media screen and (max-width: 1280px){
    section#service{
        font-size:2.5vw;
    }
    section#service:before{
        top:-10vw;
        height: 10vw;
    }
    section#service:after{
        width: 100vw;
    }
    section#service h2{
        font-size:4vw;
    }
    section#service p{
        font-size: 3.2vw;
    }

    section#service #chart{
        width: 100vw;
        margin: auto auto;
    }
    section#service #chart .chart__phase h3 {
        font-size: 2vw;
    }
    section#service #chart .chart__phase__title h3{
        font-size: 2vw;
    }
    section#service #chart .chart__phase .chart__phase__title h4{
        font-size:2vw;
    }
    section#service #chart .chart__phase .chart__phase__body{
    }
    section#service #chart .chart__phase .chart__phase__body:before{
        left: -3.5em;
        width: 3.6em;
        height: 30px;
    }
    section#service #chart .chart__phase .chart__phase__body p{
        font-size: 2vw;
    }
    section#service #chart .chart__phase .chart__phase__body ul{
        padding-right: 3em;
        font-size: 1.6vw;
    }
    section#service #chart .chart__phase{
    }
    section#service #chart .chart__phase__wrap.end{
        position: relative;
        margin-bottom: 4em;
    }
    section#service #chart .chart__phase__wrap.end:after{
        font-size: 8vw;
    }
    section#service #chart .chart__phase__wrap.end01:after{
        top: 1em;
    }
    section#service #chart .chart__phase__wrap.end02:after{
        top: 2em;
    }
    body.stop{
        padding-right: 0;
    }
    .modal{
        display: flex;
        overscroll-behavior: contain;
        overflow-y: scroll;
    }
    .modal .modal__overlay{
        height:calc(100vh + 1px) ;
        width: 1px;
        overflow: hidden;
        background-color: transparent;
    }

}
@media screen and (max-width: 767px){
    section#service{
        font-size:4.5vw;
        padding-top: 2em;
        background: #F00;
        width: 100vw;
        left: -5vw;
        padding: 2em 5vw 0;
        box-sizing: border-box;
    }
    section#service:before{
        top:-5vw;
        height: 5vw;
    }
    section#service:after{
        display: none;
    }
    section#service h2{
        font-size:6.8vw;
        font-weight: 700;
        line-height: 1.2;
    }
    section#service h1:before{
        background: #FFF;
    }
    section#service p{
        font-size: 4.5vw;
    }
    section#service #chart{
        position: relative;
        left: -5vw;
        width:100vw;
        margin: auto auto;
        transform: none;
        -webkit-transform:none;
        -ms-transform: none;
        border-bottom: 1em solid #F00;
        zoom:1;
    }
    section#service #chart:after{
        display: none;
    }

    section#service #chart .chart__inner{
        width: 100%;
        box-sizing: border-box;
        padding: 0;
        display: block;
        z-index: -1;
    }
    section#service #chart .chart__slick{
        position: relative;
    }
    section#service #chart .chart__slick:before{
        content: "GMP/GCTP運用管理";
        display: block;
        background: #2c2e3c;
        text-align: center;
        font-size: 6vw;
        color: #FFF;
        padding-top: 1em;
        border-bottom:1px solid #FFF;        
    }
    section#service #chart .chart__slick:after{
        content: "NPSのサポート";
        display: block;
        text-align: center;
        font-size: 6vw;
        color: #F00;
        padding-bottom: 0.5em;
        border-top:1px solid #F00;
    }
    .prev-arrow,
    .next-arrow {
        position: absolute;
        top: 36%;
        margin: 0;
        padding: 0;
        line-height: 1;
        -webkit-transform: translateY(-50%);
        transform: translateY(-50%);
        cursor: pointer;
        font-weight: bold;
        width: 8vw;
        z-index: 10;
    }

    .prev-arrow {
        left: 0;
    }

    .next-arrow {
        right: 0;
    }
    .prev-arrow.slick-disabled,
    .next-arrow.slick-disabled {
        display: none !important;
    }

    section#service #chart .chart__title,
    section#service #chart .chart__disc,
    section#service #chart .chart__phase{
        display: block;
        margin: auto auto;
        width: 100%;
        box-sizing: border-box;
        z-index: 0;
    }
    section#service #chart .chart__title{
        display: none;
    }

    section#service #chart .chart__title h2 {
        display: none;
        font-size: 2.8rem;
        text-align: center;
        font-weight: 400;
        padding: 0;
        margin: 0;
        line-height: 1.6;
        box-sizing: border-box;
    }

    section#service #chart .chart__title .chart__title__phase{
        border-bottom: 2px solid #FFF;
    }
    section#service #chart .chart__title .chart__title__support{
        border-bottom: 2px solid #F00;
    }

    section#service #chart .chart__title .chart__title__phase,
    section#service #chart .chart__disc .chart__title__phase,
    section#service #chart .chart__phase .chart__phase__title{
        position: relative;
        color: #FFF;
        width: 100%;
        margin-right: 0;
        z-index: -1;
    }

    section#service #chart .chart__phase > .chart__phase__title,
    section#service #chart .chart__phase > .chart__phase__disc{
        display: none;
    }
    section#service #chart .chart__phase .chart__phase__title:before{
        content: "";
        position: absolute;
        display: block;
        width: 100%;
        height: 100%;
        top: 0;
        left: 0;
        box-shadow: none;
    }
    section#service #chart .chart__phase .chart__phase__title.start{
        z-index: 10;
    }
    section#service #chart .chart__phase .chart__phase__title.start:before{
        border-radius: 1em 1em 0 0;
        z-index: -1;
    }
    section#service #chart .chart__phase .chart__phase__title.start:after{
    }
    section#service #chart .chart__phase .chart__phase__title.end:before{
        border-radius: 0 0 1em 1em;
    }
    section#service #chart .chart__phase .chart__phase__title:not(.start){
        background: #2c2e3c;
    }
    section#service #chart .chart__phase .chart__phase__title:not(.start):after{
        display: none;
    }

    section#service #chart .chart__title .chart__title__support,
    section#service #chart .chart__phase .chart__phase__disc,
    section#service #chart .chart__phase .chart__phase__body{
        color: #F00;
        width: 100%;
        margin-left: 0 auto;
    }
    section#service #chart .chart__phase{
        align-items: stretch;
        box-sizing: border-box;
        position: relative;

    }
    section#service #chart .chart__phase__wrap{
        width: 100%;
        box-sizing: border-box;
        display: block;
        position: relative;
    }
    section#service #chart .chart__phase__wrap:before{
        position: absolute;
        top: 0.2em;
        width: 100%;
        text-align: center;
        color: #FFF;
        font-weight: 700;
        font-size: 6vw;        
    }
    section#service #chart .chart__phase__wrap.phase1:before{
        content:"Ⅰ 設計/建設フェーズ";
    }
    section#service #chart .chart__phase__wrap.phase2:before{
        content:"Ⅱ 施設の試運転/立ち上げフェーズ";
    }
    section#service #chart .chart__phase__wrap.phase3:before{
        content:"Ⅲ 運用フェーズ";
    }
    section#service #chart .chart__phase__wrap .disc{
        position: relative;
        bottom: 0.2em;
        width: 100%;
        text-align: center;
        color: #F00;
        font-weight: 700;
        font-size: 5.5vw;        
    }
    section#service #chart .chart__phase__wrap.phase1 .disc:before{
        content:"現場目線による施設・設備導入を支援";
    }
    section#service #chart .chart__phase__wrap.phase2 .disc:before{
        content:"施設稼働に向けた運用体制確立支援";
    }
    section#service #chart .chart__phase__wrap.phase3 .disc:before{
        content:"安定生産に向けて、稼働を管理";
    }
    section#service #chart .chart__phase__wrap.end{
        margin-bottom: 0;
    }
    section#service #chart .chart__phase__wrap.end:after{
        display: none;
    }

    section#service #chart .chart__phase .chart__phase__wrap .chart__phase__title{
        position: relative;
        box-sizing: border-box;
        padding: 3em 0 0;
        background: #2c2e3c;
    }
    section#service #chart .chart__phase .chart__phase__title h4{
        font-size:5.5vw;
        margin:2em auto 0;
    }

    section#service #chart .chart__phase .chart__phase__body{
        width: 90%;
        background: #F00;
        color: #FFF;
        margin-top: 1em;
        margin-bottom: 2em;
        padding-bottom: 1.5em;
    }
    section#service #chart .chart__phase .chart__phase__body:before{
        content: "";
        position: absolute;
        display: block;
        left: 50%;
        top: -3.2em;
        background: #F00;
        width: 10vw;
        height: 3.2em;
        transform: translate(-50%,0 );
        -webkit-transform: translate(-50%,0);
        -ms-transform: translate(-50%,0);
        clip-path: polygon(50% 0, 75% 20%, 60% 20%, 60% 100%, 40% 100%, 40% 20%, 25% 20%);
    }
    section#service #chart .chart__phase .chart__phase__body p{
        font-size: 5vw;
        line-height: 1.4;
    }
    section#service #chart .chart__phase .chart__phase__body ul{
        font-size: 3.5vw;
    }
    section#service #chart .chart__phase .chart__phase__body .chart__phase__button{
        position: absolute;
        display: block;
        width: 1.5em;
        height: 1.5em;
        top: inherit;
        right:calc( 50% - 1em);
        bottom: -1em;
        transform: translate(50% , 0 );
        -webkit-transform: translate(50% , 0 );
        -ms-transform: translate(50% , 0 );
        transform: rotate(-90deg);
        margin: 0 auto;
        background: url("../images/arrow_white.svg") center center / cover no-repeat ;
        z-index: 1;
        border-radius: 50%;
        border: 4px solid #F00;
        box-shadow: none;
        cursor: pointer;
    }


    body.stop{
        margin: 0;
        padding-right: 0;
        overflow: hidden !important;
    }
    .modal{
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        -webkit-transform: translate(-50% , -50%);
        -ms-transform: translate(-50% , -50%);
        width: 100vw;
        height: 100vh;
        text-align: center;
        background: rgba(0,0,0,50%);
        padding: 0 0;
        margin: 0;
        opacity: 0;
        visibility: hidden;
        transition: .3s;
        box-sizing: border-box;
        z-index: 9999999999;
        font-size: 1.8rem;
        display: flex;
        overscroll-behavior: contain;
        overflow-y: scroll;
    }
    .modal:before{
        content: "";
        display: inline-block;
        vertical-align: middle;
        height: 100%;
    }
    .modal.active{
        opacity: 1;
        visibility: visible;
        position: fixed;
    }
    .modal .modal__overlay{
        height:calc(100vh + 1px) ;
        width: 1px;
        background-color: transparent;
    }
    .modal .modal__inner{
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        -webkit-transform: translate(-50% , -50%);
        -ms-transform: translate(-50% , -50%);
        display: inline-block;
        vertical-align: middle;
        max-width: 800px;
        width: 90%;
        text-align: left;
    }
    .modal .modal__inner .modal__contents{
        box-sizing: border-box;
        padding: 1em 3em 1em 1em;
        color: #000;
    }
    .modal .modal__inner .modal__contents p{
    }
    .modal .modal__inner .modal__close{
        position: absolute;
        display: block;
        width: 1.8em;
        height: 1.8em;
        right: 0.5em;
        top: 50%;
        transform: translate(0, -50%);
        -webkit-transform: translate(0 , -50%);
        -ms-transform: translate(0 , -50%);
        background: url("../images/arrow_close.svg") center center / cover no-repeat ;
        z-index: 1;
        border-radius: 50%;
        box-shadow: 3px 3px 5px 0px rgba(0, 0, 0, 0.5),-2px -2px 5px 0px rgba(255, 255, 255, 0.8);
        cursor: pointer;
    }
    .modal .modal__inner .modal__contents{
        display: block;
        width: 100%;
        background: #FFF;
        border-radius: 1em;    
    }
}

/* gmpconcierge
--------------------------------*/
section#gmpconcierge{
    position: relative;
    font-size:2.2rem;
    line-height: 1.6;
    padding-bottom: 2em;
    z-index: 0;
	margin: 0 auto 2em !important;
}
section#gmpconcierge:before{
    content: "";
    position: absolute;
    width: 100vw;
    left: 0;
    top: -5vw;
    height: 5vw;
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
    background: #FF0000;
    overflow: hidden;
    z-index: -10;
}
section#gmpconcierge:after{
    content: "";
    position: absolute;
    width: 100vw;
    left: 0;
    top: 0;
    height: 100%;
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
    background: #FF0000;
    overflow: hidden;
    z-index: -10;
}
section#gmpconcierge h1:before{
    background: #FFF;
}
section#gmpconcierge h2{
    position: relative;
    font-size:3.4rem;
    color: #000;
    font-weight: 700;
    padding-bottom: 1em;
}
section#gmpconcierge .images{
    position: relative;
	text-align: center;
    left: 50%;
    width:calc(1280px - 1em);
    background: #FFF;
    margin: 2em auto 1em !important;
    transform: translate(-50%, 0);
    -webkit-transform: translate(-50% , 0);
    -ms-transform: translate(-50% , 0);
	box-sizing: border-box;
	padding: 0.5em;
}
section#gmpconcierge .images p{
    font-size: 2.2rem;
	padding: 1em 1em 1em 0;
}
section#gmpconcierge .button_redbg{
    font-size: 2.8rem;
	margin: 2em auto 1em;
	text-align: center;
}
@media screen and (max-width: 1280px){
	section#gmpconcierge .images{
	    width:calc(100% - 1em);
	}
}
@media screen and (max-width: 1024px){
    section#gmpconcierge{
        font-size:2.5vw;
    }
    section#gmpconcierge:before{
        top:-10vw;
        height: 10vw;
    }
    section#gmpconcierge:after{
        width: 100vw;
    }
    section#gmpconcierge h2{
        font-size:4vw;
    }
    section#gmpconcierge p{
        font-size: 3.2vw;
    }
	section#gmpconcierge .images{
		position: relative;
		left: 50%;
		width:calc(100vw - 2em);
		background: #FFF;
		margin: 2em auto 1em;
		transform: translate(-50%, 0);
		-webkit-transform: translate(-50% , 0);
		-ms-transform: translate(-50% , 0);
		box-sizing: border-box;
		padding: 0.5em;
	}
	section#gmpconcierge .images p{
		font-size: 4vw;
		padding: 1em 1em 1em 0;
	}
	section#gmpconcierge .button_redbg{
		font-size: 3vw;
		margin: 2em auto 1em;
		text-align: center;
	}
}
@media screen and (max-width: 767px){
    section#gmpconcierge{
        font-size:4.5vw;
		margin: -2em auto 0 !important;
        background: #F00;
        width: 100vw;
        left: -5vw;
        padding: 2em 5vw;
        box-sizing: border-box;
    }
    section#gmpconcierge:before{
        top:-5vw;
        height: 5vw;
    }
    section#gmpconcierge:after{
        display: none;
    }
    section#gmpconcierge h2{
        font-size:6.8vw;
        font-weight: 700;
        line-height: 1.2;
    }
    section#gmpconcierge h1:before{
        background: #FFF;
    }
    section#gmpconcierge p{
        font-size: 3.5vw;
    }
	section#gmpconcierge .button_redbg{
		font-size: 5vw;
		margin: 1em auto 0.5em;
		text-align: center;
	}
}

/* news
--------------------------------*/
section#news{
}
section#news .newslist{
    width: 100%;
    border-top:1px solid #FF0000;
    padding: 1em 0;
    line-height: 1.6em;
    font-size:2rem;
}
section#news .newslist a{
    display: block;
    color: #FF0000;
    text-decoration: underline;
    word-wrap: break-word;
}
section#news .newslist .date{
    display: block;
    font-size:1.8rem;
    color: #848484;
}

section#news dl{
    width: 100%;
    border-top:1px solid #FF0000;
    font-size:2.2rem;
    line-height: 1.6;
    margin-bottom: 1em;
    position: relative;
    float: none;
    clear: both;
}
section#news .newspage dl{
    display: none
}
section#news dl.active{
    display: block;
}
section#news dl.cat_website .news__cat:before{
    content: "[サイト更新情報]";
}
section#news dl.cat_company .news__cat:before{
    content: "[会社情報]";
}
section#news dl.cat_join .news__cat:before{
    content: "[団体加盟のお知らせ]";
}
section#news dl .news__cat{
    color: #848484;
    font-size: 1.8rem;
}
section#news dl dt{
    cursor: pointer;
    padding-right: 2em;
}
section#news dl dt .title{
    font-weight:700;
    color: #FF0000;
}
section#news dl dt.open .title{
    color: #000000;
}
section#news dl dt .date{
    display: block;
    font-size:1.8rem;
    color: #848484;
}
section#news dl dt:before{
    content:"";
    position: absolute;
    right: 0;
    top: 0.25rem;
    display: block;
    width: 2.5rem;
    height: 2.5rem;
    background: url("../images/arrow_down.svg") 0 0 / cover;
}
section#news dl dt.open:before{
    content:"";
    background: url("../images/arrow_close.svg") 0 0 / cover;
}
section#news dl dt + dd{
    display: none;
    padding-top: 1em;
}

section#news dl dt + dd .news__text{
    font-size: 1.8rem;
}
section#news dl dt + dd .news__text a.inline{
    display:inline;
}

section#news dl dt + dd .newsImg{
    display: block;
    width: 25%;
    float: left;
    clear: both;
    padding: 0 1em 1em 0;
}
section#news dl dt + dd .newsImg img{
    width: 100%;
}
section#news dl dt + dd .news__cat{
    float: none;
    clear: both;
}
section#news dl dd:last-child {
    float: none;
}
section#news dl dd:last-child a{
    display: block;
    color: #FF0000;
    text-decoration: underline;
}
section#news .button{
    margin: 1.5em 0 0 0;
    font-size:1.8rem;
}

/* newsCat */

section#news .newsCat{
    display: flex;
    gap: 0 3em;
    padding-bottom: 10em;
}
section#news .newsCat > div{
    width: 100%;
    background: #FFF;
    color: #F00;
    font-size: 1.8rem;
    line-height: 1.6;
    border-radius: 1em;
    border: 1px solid #F00;
    text-align: center;
    cursor: pointer;
}
section#news .newsCat > div.active{
    background: #F00;
    color: #FFF;
}

@media screen and (max-width: 1024px){
    section#news .newslist{
        font-size:2.4vw;
    }
    section#news .newslist .date{
        font-size:2vw;
    }
    section#news{
        font-size:2.4vw;
    }
    section#news dt{
        font-size:2.4vw;
    }
    section#news dd{
        font-size:2vw;
    }
    section#news .newsCat{
        gap: 1em 1em;
        padding-top: 2em;
        padding-bottom: 2em;
        flex-wrap: wrap;
    }
    section#news .newsCat > div{
        width: calc(50% - 0.6em);
        font-size: 2.5vw;
        line-height: 2;
        box-sizing: border-box;
    }
}
@media screen and (max-width: 767px){
    section#news .newslist{
        font-size:4.5vw;
    }
    section#news .newslist .date{
        font-size:4vw;
    }
    section#news{
        font-size:4.5vw;
    }
    section#news dt{
        font-size:4.5vw;
    }
    section#news dd{
        font-size:4vw;
    }
    section#news dd{
        font-size:4vw;
    }
    section#news dl .news__cat{
        font-size: 4vw;
    }
    section#news dl dt .date{
        display: block;
        font-size:1.8rem;
        color: #848484;
    }
    section#news dl dt + dd .news__text{
        font-size: 4vw;
        line-height: 1.6;
    }
    section#news dl dt + dd .newsImg{
        display: block;
        width: 30%;
        padding: 0 1em 0 0;
    }
    section#news .newsCat > div{
        font-size: 4vw;
    }
}

/* management
--------------------------------*/
section#management{
    font-size:2.2rem;
    line-height: 1.6;
}
section#management h2{
    font-size:2.8rem;
    padding-bottom: 1em;
    font-weight: 700;
    width: 100%;
}
section#management .memberArea{
}
section#management .memberArea .mem__box{
    width: 100%;
    padding-bottom: 2em;
    display: flex;
    flex-wrap: wrap;
    column-gap: 1.5rem;
}
section#management .memberArea .mem__box:last-child{
    padding-bottom: 0;
}
section#management .memberArea .mem__box .mem__image{
    width: 14rem;
    float: left;
}
section#management .memberArea .mem__box .mem__image img{
    width: 100%;
}
section#management .memberArea .mem__box .mem__name{
    margin-top: -0.4em;
    font-weight: 700;
    line-height: 1.2;
}
section#management .memberArea .mem__box .mem__name .mem__position{
    font-weight: 400;
    font-size: 80%;
    display: block;
}
section#management .memberArea .mem__box .mem__text{
    font-size: 1.8rem;
    margin-top: 1em;
}
@media screen and (max-width: 1024px){
    section#management{
        font-size:2.5vw;
    }
    section#management h2{
        font-size:3.6vw;
    }
    section#management .memberArea .mem__box .mem__position,
    section#management .memberArea .mem__box .mem__text{
        font-size: 2vw;
    }
}
@media screen and (max-width: 767px){
    section#management{
        font-size:4.5vw;
    }
    section#management h2{
        font-size:6vw;
    }
    section#management .memberArea{
    }
    section#management .memberArea .mem__box{
        width: 100%;
        column-gap: 3vw;
    }
    section#management .memberArea .mem__box .mem__image{
        width: 30%;
    }
    section#management .memberArea .mem__box .mem__image img{
        width: 100%;
    }
    section#management .memberArea .mem__box .mem__name{
        font-size: 5vw;
    }
    section#management .memberArea .mem__box .mem__position{
    }
    section#management .memberArea .mem__box .mem__text{
        margin-top: 1em;
        font-size: 4vw;
    }
}
/* outline
--------------------------------*/
section#outline{
    font-size:2.2rem;
    line-height: 1.6;
}
section#outline .address{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin: 2em auto;
}
section#outline .address dt{
    width: 20%;
    text-align-last: justify;
    align-items: flex-start;
}
section#outline .address dd{
    width: 80%;
    box-sizing: border-box;
    padding-left: 2em;
    text-indent: -2em;
}
section#outline .address dd:before{
    content: "：";
    display: inline-block;
    width: 3em;
    text-align: center;
    margin-left: -3em;
    padding-left: 2em;
    text-indent: 1em;
}
section#outline * a{
    color: #FF0000;
    border-bottom: 1px solid #FF0000;
}
section#outline .address .company_name{
    vertical-align: bottom;
}
section#outline .map{
    display: block;
    position: relative;
    width: 99vw;
    height: 550px;
    margin-right: calc(50% - 49.5vw);
    margin-left: calc(50% - 49.5vw);
}
section#outline .map iframe{
    margin: 0;
    padding: 0;
}
@media screen and (max-width: 1024px){
    section#outline{
        font-size:2.5vw;
    }
}
@media screen and (max-width: 767px){
    section#outline{
        font-size:4.5vw;
    }
    section#outline .address{
        font-size: 4vw;
        width: 100%;
    }
    section#outline .address dt{
        width: 29%;
    }
    section#outline .address dd{
        width: 71%;
    }
    section#outline .map{
        left: -5vw;
        width: 100vw;
        height: 50vh;
        margin-right: 0;
        margin-left: 0;
    }
}


/* contact
--------------------------------*/
section#contact{
    font-size:2.2rem;
    line-height: 1.6;
    box-sizing: border-box;
}
section#contact h2{
    font-size: 3.4rem;
    font-weight: 700;
    color: #000;
    padding-bottom: 1em;
}
section#contact h3{
    font-size: 2rem;
    margin-bottom: 1em;
}
section#contact p{
    font-size: 1.8rem;
}
section#contact .privacy_policy{
    width: 100%;
    box-sizing: border-box;
    margin-top: 1.5em;
    padding: 0.5em 1.5em 0.5em 0.5em;
    height: 8em;
    overflow-y: scroll;
    border: 1px solid #ddd;
}
section#contact ul{
    margin: 1em auto;
    font-size: 1.6rem;
    line-height: 1.6
}
section#contact ul li{
    text-indent: -1em;
    margin-left: 1em;
}
section#contact ul li + li{
    margin-top: 0.5em;
}
section#contact ul li:before{
    content: "・";
    padding-right: 0.5em;
}
section#contact a{
    color: #F00;
    border-bottom: 1px solid #F00;
}
section#contact .form-group{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin: 0 auto 1em;
}
section#contact .form-group dt{
    width: 19%;
    text-align-last: justify;
}
section#contact .form-group dt:first-child label{
    line-height: 2;
}
section#contact .form-group dt label{
    line-height: 2.6;
}
section#contact .form-group dd{
    width: 80%;
    box-sizing: border-box;
    padding: 0.2em 0 0.2em 1em;
}
section#contact .form-group dd label{
    display: block;
}
section#contact .form-group dd.policy{
    margin-left: 20%;
}
section#contact .form-group dd.policy label{
    display: inline;
}
section#contact .form-group dd.policy .g-recaptcha{
    margin-top: 0.5em;
}

section#contact .form-group input[type=radio],
section#contact .form-group input[type=checkbox]{
    margin: -0.1em 0.5em 0 0;
    zoom:1.5;
}
section#contact .form-group input[type="text"],
section#contact .form-group input[type="email"],
section#contact .form-group input[type="tel"]{
    width: 100%;
    padding: 0.4em;
    border-radius: 0.4em;
    box-sizing: border-box;
    height: 3em;
    outline: none;
    border: 1px solid #DDD;
    font-size: 1.8rem;
}
section#contact .form-group textarea {
    margin-top: 0.5em;
    width: 100%;
    padding: 0.4em;
    border-radius: 0.4em;
    box-sizing: border-box;
    outline: none;
    border: 1px solid #DDD;
    font-size: 1.8rem;
}
section#contact .form-group input:focus,
section#contact .form-group textarea:focus{
    border: 2px solid #666;
}
section#contact .submit_check{
    margin: 1em auto 2em;
    text-align: center;
}
section#contact .submit_check div{
    margin: 0.5em auto auto;
}

section#contact form .sendBtn{
    font-size: 2.6rem;
    cursor: pointer;
    display: block;
    margin: auto auto;
    line-height: 1;
    padding: 0.4em 3em;
    border: 1px solid #FF0000;
    background: #FF0000;
    border-radius: 1.5em;
    color: #FFF;
    box-sizing: border-box;
}
section#contact form .sendBtn[disabled]{
    cursor: default;
    opacity: 0.4;
}
section#contact form .sendBtn[disabled]:hover{
    background: #FF0000;
    color: #FFF;
}
section#contact form .sendBtn:hover{
    background: #FFF;
    color: #FF0000;
}
section#contact .thanks{
}

@media screen and (max-width: 1024px){
    section#contact{
    }
    section#contact h2{
        font-size:3.6vw;
        margin-top: 2em;
    }
    section#contact h3{
        font-size: 2.5vw;
    }
    section#contact p{
        font-size:2vw;
    }
    section#contact .privacy_policy{
        height: 12em;
    }
    section#contact ul{
        font-size:1.8vw;
    }
}
@media screen and (max-width: 767px){
    section#contact{
        font-size:4vw;
    }
    section#contact h2{
        font-size: 5vw;
    }
    section#contact h3{
        font-size: 4vw;
    }
    section#contact p{
        font-size: 4vw;
    }
    section#contact .privacy_policy{
        height: 12em;
    }
    section#contact ul{
        font-size: 3.5vw;
    }
    section#contact .form-group{
        display: block;
    }
    section#contact .form-group dt,
    section#contact .form-group dd{
        display: block;
        width: 100%;
        text-align-last:left;
        padding: 0;
    }
    section#contact .form-group dd{
        margin-bottom: 0.5em;
    }
    section#contact .form-group input[type=radio]{
        margin: 0 0.5em 0.15em 0;
        zoom:1.5;
    }
    section#contact .form-group input[type="text"],
    section#contact .form-group input[type="email"],
    section#contact .form-group input[type="tel"]{
        font-size: 4vw;
    }
    section#contact .form-group textarea {
        margin-top: 0;
        font-size: 4vw;
    }
    section#contact .form-group dd.policy{
        margin-left: 0;
    }
    section#contact form .sendBtn{
        font-size: 6vw;
    }
}


/* footer
--------------------------------*/
footer{
    position: relative;
    display: block;
    width: 100%;
    background: #FF0000;
    color: #FFF;
    margin: 0 auto;
    padding-bottom: 2em;
}

footer #footMenu{
    width: 100%;
    height: 100%;
    margin: auto;
    max-width: 1100px;
    text-align: left;
    padding: 2em 0;
}
footer #footMenu ul{
    position: relative;
    display: flex;
    z-index: 10;
    height: 100%;
    width: 100%;
    margin: 2em auto;
    text-align: center;
    justify-content:center;
    gap:0 3%;
}
footer #footMenu > ul li{
    position: relative;
    flex-flow: wrap;
    justify-content: center;
    align-items:baseline;
    align-self: center;
    font-size: 2rem;
    line-height: 0;
    display: block;
}
footer #footMenu > ul li.logo{
    width: 16rem;
    margin-right: auto;
}
footer #footMenu > ul li a{
    color: #FFF;
    line-height: 1;
}
footer #footMenu > ul li:not(.contact):not(.lang) a{
    margin: auto 0;
}
footer #footMenu > ul li:not(.contact):not(.lang) a span{
    line-height: 1;
    padding-bottom: 0.05em;
    border-bottom: 1px solid #FFF;
}
footer #footMenu > ul li:not(.logo):not(.contact):not(.lang) a span:hover{
    border-bottom: 1px dashed #FFF;
    transition: .3s;
}

footer #footMenu > ul li.contact a{
    border: 1px solid #FFF;
    margin: auto 1em;
    padding: 0.3rem 3rem 0.5rem;
    line-height: 100%;
    border-radius:2rem;
}
footer #footMenu > ul li.contact a:hover{
    border: 1px solid #FFF;
    background: #FFF;
    color: #462819;
}
footer #footMenu > ul li.lang{
    margin: auto auto auto 0;
}
footer #footMenu > ul li.lang span{
    font-size: 1.6rem;
    margin: auto 0.25em;
    border: 1px solid #FFF;
    background: #FFF;
    color: #462819;
    padding: 0.2rem 1.5rem 0.3rem;
    line-height: 100%;
    border-radius:1.6rem;
}
footer #footMenu > ul li.lang a{
    font-size: 1.6rem;
    margin: auto 0.25em;
    border: 1px solid #FFF;
    padding: 0.2rem 1.5rem 0.3rem;
    line-height: 100%;
    border-radius:1.6rem;
}
footer #footMenu > ul li.lang a:hover{
    border: 1px solid #FFF;
    background: #FFF;
    color: #462819;
}

footer .copy{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items:center;
    align-self: center;
    width: 100%;
    max-width: 480px;
    margin:0 auto 2em;
}
footer .copy .logo{
    width: 50%;
    margin-bottom: 0.5em;
}
footer .copyright{
    color: #000;
	font-size: 1.6rem;
}
@media screen and (max-width: 1024px){
    footer{
        margin: 0 auto;
    }
    footer #footMenu{
        max-width: none !important;
        text-align: left;
        padding: 4em 0 2em;
        box-sizing: border-box;
    }
    footer #footMenu ul{
        height: inherit;
        width: 95%;
        margin: 0 auto;
        flex-flow: wrap;
        text-align: center;
        position: relative;
        gap: 0 4em;
    }
    footer #footMenu > ul li{
        font-size: 3vw;
        line-height: 5rem;
    }
    footer #footMenu > ul li a{
        color: #FFF;
        line-height: 1;
    }
    footer #footMenu > ul li:not(.contact):not(.lang) a{
        margin: auto auto;
    }
    footer #footMenu > ul li:not(.contact):not(.lang) a span{
        line-height: 1;
        padding-bottom: 0.05em;
        border-bottom: 1px solid #FFF;
    }
    footer #footMenu > ul li:not(.logo):not(.contact):not(.lang) a span:hover{
        border-bottom: 1px dashed #FFF;
        transition: .3s;
    }

    footer #footMenu > ul li.contact{
        position: absolute;
        top: 1.5em;
        left: 34%;
        width: 100%;
    }
    footer #footMenu > ul li.contact a{
        padding: 0.2em 2em;
        border-radius: 1em;
    }
    footer #footMenu > ul li.logo{
        width: 30%;
        margin-right: 70%;
    }

    footer .copy{
        position: relative;
        width: 90%;
        max-width: none !important;
        margin:1em auto 0;
    }
    footer .copy .logo{
        display: block;
        width: 40%;
        margin-bottom: 0;
    }
    footer .copyright{
        width: 100%;
        font-size: 2vw;
    }
}
@media screen and (max-width: 767px){
    footer{
        margin: 0 auto;
    }
    footer #footMenu{
        padding: 2em 0;
    }
    footer #footMenu ul{
        gap: 0 1.5em;
    }
    footer #footMenu > ul li{
        font-size: 4vw;
        line-height: 1.5em;
    }
    footer #footMenu > ul li.contact{
        top: 0.5em;
    }
    footer #footMenu > ul li.contact a{
        padding: 0.2em 2em;
    }
    footer .copy .logo{
        width: 50%;
    }
    footer .copyright{
        font-size: 3vw;
    }
}
