@charset "UTF-8";


/* ===================================================================

	Setting

=================================================================== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    /* font-weight: normal; */
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    font-weight: 700;
}
html {
    height: 100%;
    width: 100%;
    /* html overflow: auto; 重要 scroll*/
    overflow-y: auto;
    overflow-x: hidden;
    margin: 0 !important;
}
body {
    font-family: sans-serif;
    font-weight: 500;
    color: #333;
    font-size: 16px;
    letter-spacing: .8px;
    line-height: 1.3;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
}
main{
    overflow: hidden;
}
section p{
    line-height: 2;
}
a {
    text-decoration: none;
    color: #333;
    transition: 0.5s;
}

a:hover {
    opacity: 0.7;
    cursor: pointer;
    transition: 0.5s;
}
a.link:hover{
    box-shadow: 0px 0px 10px #00000050;
}
li {
    list-style-type: none;
}

button {
    border: none;
    cursor: pointer;
    outline: none;
    appearance: none;
}
img {
    width: 100%;
    max-width: 100%;
    height: auto;
    flex-shrink: 0;
}

/* 連続 br でIE6が改行しないバグ対策　CSS:letter-spacing の影響
----------------------------------------------- */
br {
    letter-spacing: normal;
}

/* table
----------------------------------------------- */
tr {
    border: none;
}

th {
    background-color: #ccc;
}

th,
td {
    padding: 5px 10px;
    font-weight: 100;
    /* border: solid 1px #eaeaea; */
}
.logo{
    display: inline-block;
    max-width: 250px;
}
.owrap ,
.cwrap {
    padding: 0 30px;
}

.container {
    text-align: center;
    max-width: 1000px;
    width: 100%;
    margin: auto;
}

.sp {
    display: none;
}

.pc {
    display: block;
}


.btnwrap {
    text-align: center;
}
.center {
    text-align: center;
}

.left {
    text-align: left;
}

.right {
    text-align: right;
}
.ttl{
    font-weight: 700;
    color: var(--main-color);
    margin-bottom: 30px;
}
.ttlrtn{
    font-weight: 700;
    color: #fff;
    margin-bottom: 30px;
}

.btn {
    display: inline-block;
    position: relative;
    text-align: center;
    background: var(--main-color);
    margin: 20px auto;
}
.btn a{
    display: inline-block;
    padding: 20px 35px;
    color: #fff;
    transition: 0.5s;
    font-size: 24px;
}
.btnrtn{
    display: inline-block;
    position: relative;
    text-align: center;
    background: #fff;
    margin: 20px auto;
}
.btnrtn a{
    display: inline-block;
    padding: 15px 60px;
    transition: 0.5s;
}
.dblock{
    display: block;
}

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

/* flex
----------------------------------------------- */
.flex {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}
.flexcol {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
}
.flexwrap {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}
.flexwrapjc {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
}
.flexcolac {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
.flexcoljc {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
}
.flexcolacjc {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
}
.flexacjc{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
}
.flexac{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
.flexas{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
}
.flexae{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: end;
    -ms-flex-align: end;
    align-items: flex-end;
}
.flexjc{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
}
.flexjs{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
}
.flexje{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: end;
    -ms-flex-pack: end;
    justify-content: flex-end;
}
.flexacjbe{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
}
.flexacjar{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -ms-flex-pack: distribute;
    justify-content: space-around;
}


/* colwrap
----------------------------------------------- */
.col2tb1p > *{
    width: calc(100% / 2);
    padding: 60px 30px;
}
.col2tb1m > *{
    width: calc(100% / 2 - 60px);
    margin: 0 30px;
}
.col2tb2m > *{
    width: calc(100% / 2 - 60px);
    margin: 0 30px 45px;
}

.col3tb1m > *{
    width: calc(100% / 3 - 60px);
    margin: 0 30px;
}
.col4tb2m > *{
    width: calc(100% / 4 - 40px);
    margin: 0 20px;
}

@media only screen and (max-width: 768px) {
    .col2tb1p > *{
        width: calc(100% / 1);
    }

    .col2tb1m > *{
        width: calc(100% / 1 - 30px);
    }
    .col2tb1m > *:first-child{
        margin-bottom: 60px;
    }
    .col2tb2m > * {
        width: calc(100% / 1 );
        margin: 0 0 45px;
    }
    
    .col3tb1m > *{
        width: calc(100% / 1 - 30px);
        margin-bottom: 60px;
    }
    .col3tb1m > *:last-child{
        margin-bottom: 0;
    }
    .col4tb2m > *{
        width: calc(100% / 2 - 30px);
        margin: 0 15px;
    }
    .col4tb2m > *:nth-child(1),
    .col4tb2m > *:nth-child(2){
        margin-bottom: 45px;
    }
}
@media only screen and (max-width: 479px) {
    .col4tb2m > * {
        width: calc(100% / 2 - 20px);
        margin: 0 10px;
    }
}




/* mainimage
----------------------------------------------- */
.mainimage{
    margin-bottom: 150px;
}

@media only screen and (max-width: 768px) {
    .mainimage{
        margin-bottom: 120px;
    }
}
@media only screen and (max-width: 479px) {
    .mainimage{
        margin-bottom: 90px;
        height: 300px;
    }
}