@media screen and (min-width: 768px) {
	header h1{
		max-width: 34%;
	}
}
/* key */
.key-slide {
    height: 121vw;
    position: relative;
}
#key-box {
    overflow: hidden;
}
#key-box .main-catch {
    position: absolute;
    top: 77vw;
    width: 42vw;
    height: 98vw;
    white-space: nowrap;
    z-index: 15;
    left: 50%;
    color: #fff;
    transform: translateX(-50%);
    line-height: 1;
}
#key-box .main-catch::after {
    content: "";
    width: 50vw;
    height: 1px;
    background: #fff;
    display: inline-block;
    transform: rotate(-45deg);
    position: absolute;
    top: 83%;
    left: -8%;
}
#key-box .main-catch > span:first-child {
    font-size: 13.6vw;
}
#key-box .main-catch > span:first-child span {
    font-size: 19.9vw;
}
#key-box .main-catch > span:first-child small {
    font-size: 10vw;
}
#key-box .main-catch > span:last-child {
    font-size: 13.6vw;
    margin-top: 41vw;
}
#key-box .main-catch > span:last-child span {
    font-size: 20vw;
}
#key-box .main-catch > span:last-child small {
    font-size: 10vw;
}
#key-box .left {
    height: 112vw;
    background: url("../img/index/key_p1.jpg") no-repeat center bottom 4%;
    background-size: cover;
}
#key-box .img {
    height: 124vw;
}
#key-box .key-slide .slide {
    animation-duration: 5s;
    animation-delay: 0s;
    animation-timing-function: ease-out;
    animation-fill-mode: forwards;
    animation-iteration-count: 1;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    left: 0;
    opacity: 0;
}
#key-box .key-slide .slide:nth-child(1) {
    z-index: 1;
}
#key-box .key-slide .slide-img {
    transform: scale(1.3);
}
#key-box .key-slide .slide.active {
    opacity: 1;
}
#key-box .key-slide.run .slide.active:not(.first) {
    animation-name: showImg;
    z-index: 2;
    opacity: 1;
}
#key-box .key-slide .slide.active.first .slide-inner {
    transform: translate3d(50px, 0, 0);
}
#key-box .key-slide.run .slide.active .slide-inner {
    animation: showTranslate 5s linear forwards;
}
#key-box .key-slide.run .slide.prev {
    animation-name: hideImg;
    z-index: 2;
    opacity: 1;
}
#key-box .key-slide.run .slide.prev .slide-inner {
    animation: hideTranslate 5s linear forwards;
}
@media screen and (min-width: 768px) {
    .img-ob-pc {
        position: relative;
    }
    .img-ob-pc img {
        position: absolute;
        top: 0;
        left: 0;
        width: 100% !important;
        height: 100% !important;
        -o-object-fit: cover;
        object-fit: cover;
    }
}
@media screen and (min-width: 768px) {
    #key-box::before {
        content: "";
        position: absolute;
        z-index: 2;
        top: 0;
        bottom: 0;
        right: 0;
        left: 0;
        background: url("../img/shared/key_deco.png") no-repeat center right;
    }
    #key-box .img {
        height: 707px;
    }
    .key-slide {
        width: 50%;
        overflow: hidden;
        margin-top: 210px;
        height: 840px;
    }
    #key-box {
        display: flex;
        flex-direction: row-reverse;
		min-height: auto;
			
    }
    #key-box .main-catch {
        top: 334px;
        width: 280px;
        letter-spacing: -1px;
        line-height: 103px;
    }
    #key-box .main-catch::after {
        top: 437px;
        width: 310px;
        left: 20px;
        transform: rotate(-47deg);
    }
    #key-box .main-catch > span:first-child {
        font-size: 78px;
    }
    #key-box .main-catch > span:first-child span {
        font-size: 113px;
    }
    #key-box .main-catch > span:first-child small {
        font-size: 58px;
    }
    #key-box .main-catch > span:last-child {
        font-size: 78px;
        margin-top: 215px;
    }
    #key-box .main-catch > span:last-child span {
        font-size: 113px;
    }
    #key-box .main-catch > span:last-child small {
        font-size: 58px;
    }
    #key-box .left {
        width: 50%;
        height: 1020px;
    }
}
@keyframes showTranslate {
    0% {
        transform: translate3d(50px, 0, 0);
    }
    100% {
        transform: translate3d(0, 0, 0);
    }
}
@keyframes hideTranslate {
    0% {
        transform: translate3d(0, 0, 0);
    }
    100% {
        transform: translate3d(-50px, 0, 0);
    }
}
@keyframes hideImg {
    0% {
        opacity: 1;
    }
    50% {
        opacity: 0;
    }
    100% {
        opacity: 0;
    }
}
@keyframes showImg {
    0% {
        opacity: 0;
    }
    50% {
        opacity: 1;
    }
    100% {
        opacity: 1;
    }
}


/* rss */
#rss {
    position: relative;
    padding: 7vw 3% 7vw;
    margin: 6vw 3% 5vw 0;
    min-height: 17vw;
}
#rss::before {
    content: "";
    background: url("../img/index/sec1_deco1_sp.png") no-repeat;
    position: absolute;
    top: 0;
    left: 0;
    width: 90%;
    height: 130vw;
    background-size: 100%;
    z-index: -1;
}
#rss h2 {
    font-size: 7.1vw;
    margin-bottom: -8vw;
    letter-spacing: 0.15em;
}
#rss .btn-cus {
    width: 28vw;
    position: absolute;
    top: 6vw;
    right: 2%;
}
#rss .btn-cus::before {
    width: 17px;
}
#rss .btn-cus a {
    background: #000;
    color: #fff;
    text-align: center;
    font-size: 12px;
    height: 28px;
    line-height: 28px;
    padding-left: 8%;
}
#rss #feed .row dl {
    width: 63%;
}
#rss #feed .row dl dt {
    text-align: right;
}
@media only screen and (min-width: 768px) {
    #rss {
        padding: 30px 50px 30px 70px;
        margin: 0;
        min-height: 100px;
        position: absolute;
        top: 40px;
        left: 0;
        width: 481px;
        z-index: 14;
        box-sizing: border-box;
    }
    #rss::before {
        display: none;
    }
    #rss h2 {
        font-size: 32px;
        margin-bottom: -38px;
    }
    #rss .btn-cus {
        width: 130px;
        top: 26px;
        right: -28px;
    }
    #rss .btn-cus::before {
        width: 20px;
        z-index: 5;
    }
    #rss .btn-cus a {
        height: 34px;
        line-height: 34px;
        font-size: 14px;
    }
    #rss .btn-cus a:hover {
        opacity: 0.8
    }
    #rss #feed .row dl dd:hover {
        text-decoration: underline
    }
}


/* sec 1 */
#sec1 {
    position: relative;
    padding: 11vw 0 43vw;
    overflow: hidden;
}
#sec1::after {
    content: "";
    background: url("../img/index/sec1_deco3_sp.png") no-repeat center bottom;
    position: absolute;
    bottom: 0;
    right: 0;
    width: 100%;
    height: 150vw;
    background-size: 100%;
    z-index: -1;
}
#sec1 .group {
    position: relative;
    margin-bottom: 0vw;
}
#sec1 .group::after {
    content: "";
    background: url("../img/index/sec1_deco2_sp.png") no-repeat;
    position: absolute;
    bottom: -16vw;
    right: -5.6%;
    width: 54%;
    height: 110vw;
    background-size: 100%;
    z-index: -1;
}
#sec1 .group .photo {
    margin-left: 20%;
    width: 86%;
    margin-right: -8.6%;
    position: relative;
    z-index: 5;
    margin-bottom: -36vw;
    height: 66vw;
}
#sec1 .group .photo2 {
    width: 74%;
    margin-left: -5.6%;
}
#sec1 .group h2 {
    font-size: 3vw;
    color: #fff;
    position: absolute;
    top: 32vw;
    left: 0%;
    z-index: 5;
    line-height: 1.2;
    text-align: center;
    text-transform: uppercase;
}
#sec1 .group h2 span {
    font-size: 21.3vw;
    display: block;
}
#sec1 .group h3 {
    font-size: 21.3vw;
    position: absolute;
    top: 85vw;
    right: 11%;
    z-index: 5;
    line-height: 1.2;
    text-align: center;
    width: 25vw;
    height: 60vw;
}
#sec1 .group h3 span.txt-latin {
    font-size: 3.5vw;
    display: block;
    text-transform: uppercase;
}
#sec1 .group h3 .fnt-hina {
    font-size: 21.2vw;
}
#sec1 .col h4 {
    font-size: 12.5vw;
    margin-bottom: 11vw;
    letter-spacing: 0.15em;
    line-height: 1.7;
    white-space: nowrap;
}
#sec1 .col h4 span {
    margin-left: 15%;
    font-size: 6vw;
    margin-bottom: -20vw;
    display: block;
    position: relative;
    letter-spacing: 0.2em;
    margin-top: -2vw;
}
#sec1 .col h4 span::after {
    content: "";
    background: #000;
    height: 1px;
    left: 77%;
    right: -8%;
    position: absolute;
    top: 5vw;
}
#sec1 .col h4 small {
    font-size: 6.1vw;
}
#sec1 .col .txt {
    margin-bottom: 12vw;
}
#sec1 .col .txt li {
    margin-bottom: 9vw;
}
@media only screen and (min-width: 768px) {
    #sec1 {
        padding: 112px 0 252px;
        margin-bottom: -180px;
    }
    #sec1 .deco {
        position: absolute;
        right: 0;
        top: -486px;
    }
    #sec1 .wrap {
        width: 1300px;
        padding: 0 20px;
        z-index: 6;
    }
    #sec1::after {
        background: url("../img/index/sec1_bg.png") no-repeat center bottom;
        height: 540px;
        bottom: 0;
        z-index: 5;
        background-size: 100% 100%;
    }
    #sec1 .group::after {
        display: none;
    }
    #sec1 .group .photo {
        margin-left: 0;
        margin-bottom: 95px;
        margin-left: 424px;
        height: 615px;
        width: 897px;
        box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.2);
    }
    #sec1 .group .photo2 {
        width: calc(41vw + -12px);
        margin-left: 0;
        position: absolute;
        left: calc(50% - 50vw);
        top: 285px;
        height: 1091px;
    }
    #sec1 .group .photo2::before {
        content: "";
        background: url(../img/index/sec1_deco2.png) no-repeat;
        position: absolute;
        left: 0;
        top: -297px;
        width: 458px;
        height: 591px;
    }
    #sec1 .group h2 {
        font-size: 32px;
        top: 310px;
        left: calc(50% - 376px);
    }
    #sec1 .group h2 span {
        font-size: 195px;
    }
    #sec1 .group h3 {
        font-size: 195px;
        top: 590px;
        left: 194px;
        line-height: 113px;
        width: 402px;
        height: 914px;
    }
    #sec1 .group h3 span.txt-latin {
        font-size: 32px;
        margin-top: -17px;
    }
    #sec1 .group h3 .fnt-hina {
        font-size: 195px;
    }
    #sec1 .col {
        width: 623px;
        margin-left: auto;
    }
    #sec1 .col h4 {
        font-size: 91px;
        letter-spacing: -1px;
        line-height: 87px;
        margin-bottom: 79px;
    }
    #sec1 .col h4 span {
        margin-left: 83px;
        font-size: 40px;
        margin-bottom: -60px;
        letter-spacing: 6px;
    }
    #sec1 .col h4 span::after {
        top: 44px;
        left: 380px;
        right: calc(50% - 50vw);
    }
    #sec1 .col h4 small {
        font-size: 40px;
        letter-spacing: 6px;
    }
    #sec1 .col .txt {
        margin-bottom: 20px;
        width: 559px;
    }
    #sec1 .col .txt li {
        margin-bottom: 35px;
    }
    #sec1 .col .btn-cus {
        position: absolute;
        left: 124px;
        bottom: -2px;
    }
}
@media only screen and (min-width: 768px) and (max-width: 1300px) {
    #sec1 .group .photo2 {
        max-width: 41%;
    }
    #sec1 .col .btn-cus {
        left: 65px;
    }
	#sec1 .col .btn-cus a{
		max-width: 60%;
	}
	#sec1 .group h3{
		left: auto;
        right: 616px;
	}
}


/* sec 2 */
#sec2 .js-sticky .item {
    min-height: 30vw;
    position: sticky;
    top: 0;
}
#sec2 .js-sticky .item .title {
    position: absolute;
    top: 17vw;
    left: 0;
    right: 0;
    font-size: 8vw;
    z-index: 5;
    color: #fff;
    width: 48vw;
    height: 68vw;
    margin: 0 auto;
    line-height: 1.3;
    white-space: nowrap;
    letter-spacing: 0.1em;
}
#sec2 .js-sticky .item .title .big {
    font-size: 16vw;
}
#sec2 .js-sticky .item .title .medium {
    font-size: 7vw;
    margin-top: 10vw;
    position: relative;
	display: inline-block;
}
#sec2 .js-sticky .item .title .medium::after {
    content: "";
    position: absolute;
    top: 100%;
    width: 1px;
    height: 10vw;
    background: #fff;
    left: 29px;
}
#sec2 .js-sticky .item .title .medium span {
    font-size: 12vw;
}
#sec2 .js-sticky .item .title small {
    font-size: 6.5vw;
    margin-top: 20vw;
}
#sec2 .js-sticky .item .title-sub {
    position: absolute;
    z-index: 5;
    color: #fff;
    text-transform: uppercase;
    top: 48vh;
    left: 5%;
    border-top: 1px solid;
    line-height: 1.2;
    width: 3vw;
    height: 24vw;
    white-space: nowrap;
    border-bottom: 1px solid;
}
#sec2 .js-sticky .item .title-sub::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    height: 9px;
    background: #fff;
    width: 1px;
}
#sec2 .js-sticky .item .title-sub::after {
    content: "";
    content: "";
    position: absolute;
    right: 0;
    top: 0;
    height: 9px;
    background: #fff;
    width: 1px;
}
#sec2 .js-sticky .item .title-sub span::before {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    height: 9px;
    background: #fff;
    width: 1px;
}
#sec2 .js-sticky .item .title-sub span::after {
    content: "";
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    height: 9px;
    background: #fff;
    width: 1px;
}
#sec2 .js-sticky .item .title-sub span {
    /* background: #000; */
    width: calc(100% + 2px);
    display: block;
    padding: 10px 0px 5px;
    box-sizing: border-box;
    margin: 7px -1px;
    letter-spacing: 1px;
}
#sec2 .js-sticky .item .txt {
    position: absolute;
    color: #fff;
    right: 7%;
    bottom: 21vh;
    z-index: 5;
    letter-spacing: 2px;
}
#sec2 .js-sticky .item .img {
    height: 100%;
    min-height: 173vw;
}
#sec2 .js-sticky .item .img img {
    height: 173vw;
    object-position: bottom;
}
#sec2 .set1 {
    position: relative;
    padding: 17vw 5% 2vw;
}
#sec2 .set1::before {
    content: "";
    background: url("../img/index/sec2_deco1.png") no-repeat right top;
    position: absolute;
    top: 15vw;
    right: 0;
    width: 81%;
    height: 150vw;
    background-size: 100%;
    z-index: -1;
}
#sec2 .set1 .photo {
    margin-bottom: 9vw;
}
#sec2 .set1 .col h3 {
    font-size: 8vw;
    text-align: right;
    white-space: nowrap;
    margin-bottom: 9vw;
    line-height: 1.4;
    letter-spacing: 0.15em;
}
#sec2 .set1 .col h3 .big {
    font-size: 12vw;
}
#sec2 .set1 .col h3 .medium {
    font-size: 10vw;
}
#sec2 .set1 .col .txt li {
    margin-bottom: 8vw;
}
#sec2 .set2 {
    position: relative;
}
#sec2 .set2 .group {
    box-shadow: 0px 7px 6px #bebebe;
    background: url(../img/shared/bd_bg.jpg) repeat;
    padding-bottom: 13vw;
    margin-bottom: 15vw;
}
#sec2 .set2 .group .deco {
    position: absolute;
    left: -9%;
    top: -3vw;
    width: 88%;
}
#sec2 .set2 .group .photo {
    height: 88vw;
    margin-bottom: 0vw;
    margin-left: -7.6%;
    margin-right: -7.6%;
}
#sec2 .set2 .group .photo img {
    object-position: right top;
}
#sec2 .set2 .group h3 {
    font-size: 8vw;
    margin-bottom: 6vw;
    line-height: 1.4;
    letter-spacing: 0.15em;
    white-space: nowrap;
}
#sec2 .set2 .group h3 span {
    font-size: 12vw;
}
#sec2 .set2 .group h3 span small {
    font-size: 9vw;
}
#sec2 .set2 .group h3 > small {
    font-size: 5.6vw;
}
#sec2 .set2 .group .txt {
    margin-bottom: 5vw;
}
#sec2 .set2 .group2 {
    position: relative;
}
#sec2 .set2 .group2::after {
    content: "";
    background: url("../img/index/sec3_deco1.png") no-repeat right top;
    position: absolute;
    top: -51vw;
    right: 0;
    width: 140%;
    height: 170vw;
    background-size: 100%;
    z-index: -2;
}
#sec2 .set2 .group2 .btn-cus {
    margin-bottom: 10vw;
}
#sec2 .set2 .group2 .bnr a {
    padding: 8vw 0 10vw;
    border: 1px solid #fff;
    border-radius: 10px;
    background: url(../img/shared/btn_bg.jpg) repeat;
    text-align: center;
    display: block;
    position: relative;
    font-size: 4.4vw;
    letter-spacing: 0.25em;
    line-height: 1.7;
    color: #fff;
}
#sec2 .set2 .group2 .bnr a::after {
    content: "";
    background: url("../img/shared/line_arrow-w.png") no-repeat;
    position: absolute;
    bottom: 3vw;
    left: 0;
    right: 0;
    background-size: 100%;
    height: 5vw;
    width: 85%;
    margin: 0 auto;
}
@media only screen and (min-width: 768px) {
    #sec2 .js-sticky .item {
        min-height: 100vh;
    }
    #sec2 .js-sticky .item .title {
        font-size: 58px;
        width: 268px;
        height: 480px;
        left: auto;
        right: 215px;
        top: 200px;
        letter-spacing: -1px;
        line-height: 74px;
    }
    #sec2 .js-sticky .item .title .big {
        font-size: 113px;
    }
    #sec2 .js-sticky .item .title .medium {
        font-size: 48px;
        margin-top: 86px;
        letter-spacing: -2px;
        display: inline-block;
        margin-right: 48px;
    }
    #sec2 .js-sticky .item .title .medium::after {
        left: 40px;
        margin-top: 15px;
        height: 100px;
    }
    #sec2 .js-sticky .item .title .medium span {
        font-size: 78px;
    }
    #sec2 .js-sticky .item .title small {
        font-size: 40px;
        margin-top: 189px;
        letter-spacing: 7px;
    }
    #sec2 .js-sticky .item .title-sub {
        font-size: 21px;
        bottom: 21vh;
        top: auto;
        height: 133px;
        width: 21px;
        left: 83px;
    }
    #sec2 .js-sticky .item .title-sub span {
        padding: 10px 2px;
    }
    #sec2 .js-sticky .item .txt {
        font-size: 26px;
        right: calc(50% - -199px);
        bottom: 22vh;
        letter-spacing: 3px;
    }
    #sec2 .js-sticky .item .img {
        height: 100vh;
        min-height: 100vh;
    }
    #sec2 .js-sticky .item .img img {
        height: 100vh;
		object-position: center;
    }
    #sec2 .set1 {
        padding: 145px 0 20px;
    }
    #sec2 .set1::before {
        top: -590px;
        width: 713px;
        height: 915px;
    }
    #sec2 .set1 .photo {
        margin-bottom: 20px;
        position: absolute;
        left: 0;
        top: 135px;
        height: 609px;
        width: calc(100% - 730px);
    }
    #sec2 .set1 .col {
        width: 630px;
        margin-left: auto;
        margin-right: 110px;
    }
    #sec2 .set1 .col h3 {
        font-size: 48px;
        margin-bottom: 55px;
        letter-spacing: 6px;
    }
    #sec2 .set1 .col h3 .big {
        font-size: 78px;
    }
    #sec2 .set1 .col h3 .medium {
        font-size: 58px;
    }
    #sec2 .set1 .col .txt li {
        margin-bottom: 36px;
    }
    #sec2 .set1 .col .txt {
        margin-left: 100px;
    }
    #sec2 .set2 {
        padding: 256px 0 0;
        margin-bottom: -129px;
    }
    #sec2 .set2 .group {
        padding-bottom: 240px;
        margin-bottom: -4px;
        box-shadow: none;
    }
    #sec2 .set2 .group .deco {
        top: -30px;
        width: auto;
        left: 0;
    }
    #sec2 .set2 .group .photo {
        height: 853px;
        margin-bottom: 20px;
        right: calc(50% - 50vw);
        margin-top: -75px;
        left: -70px;
        position: absolute;
        top: -247px;
        z-index: 5;
        margin-right: 9px;
    }
    #sec2 .set2 .group .photo img {
        object-position: right top;
    }
    #sec2 .set2 .group h3 {
        font-size: 48px;
        margin-bottom: 34px;
        color: #fff;
        z-index: 10;
        position: relative;
        letter-spacing: 6px;
        line-height: 70px;
    }
    #sec2 .set2 .group h3 span {
        font-size: 78px;
    }
    #sec2 .set2 .group h3 span small {
        font-size: 58px;
    }
    #sec2 .set2 .group h3 > small {
        font-size: 33px;
    }
    #sec2 .set2 .group .txt {
        margin-bottom: 20px;
        position: relative;
        z-index: 5;
        color: #fff;
        width: 460px;
    }
    #sec2 .set2 .group2 .wrap {
        z-index: 8;
    }
    #sec2 .set2 .group2::after {
        width: 971px;
        height: 1217px;
        top: -350px;
        z-index: 0;
    }
    #sec2 .set2 .group2 .btn-cus {
        margin-bottom: 50px;
        margin-left: auto;
        margin-right: -37px;
        width: 475px;
    }
    #sec2 .set2 .group2 .btn-cus a {
        padding-left: 160px;
    }
    #sec2 .set2 .group2 .bnr {
        width: 473px;
        margin-left: auto;
        margin-right: -36px;
        z-index: 105;
        position: relative;
    }
    #sec2 .set2 .group2 .bnr:hover {
        opacity: 0.8
    }
    #sec2 .set2 .group2 .bnr a {
        padding: 37px 0;
        font-size: 20px;
        letter-spacing: 6px;
    }
    #sec2 .set2 .group2 .bnr a::after {
        bottom: -33px;
        width: 350px;
        height: 73px;
    }
}
@media only screen and (min-width: 768px) and (max-width: 1300px) {
    #sec2 .set1 .photo {
        max-width: 43%;
    }
}

@media only screen and (min-width: 768px) and (max-height: 800px) {
	#sec2 .js-sticky .item .title{
		top: 110px;
	}
	#sec2 .js-sticky .item .title{
		font-size: 48px;
		line-height: 74px;
	}
	#sec2 .js-sticky .item .title .big{
		font-size: 103px;
	}
	#sec2 .js-sticky .item .title .medium{
		font-size: 38px;
	}
	#sec2 .js-sticky .item .title .medium span{
		font-size: 68px;
	}
	#sec2 .js-sticky .item .title small{
		font-size: 30px;
	}
}


/* sec 3 */
#sec3 {
    position: relative;
    padding: 143vw 0 22vw;
    color: #fff;
    margin-top: 25vw;
}
#sec3 h2 {
    right: 5%;
    top: -119vw;
    z-index: 5;
    color: #fff;
    font-size: 7vw;
    white-space: nowrap;
    width: 29vw;
    height: 120vw;
    margin-top: -23vw;
    margin-left: auto;
    line-height: 1.4;
    position: absolute;
    letter-spacing: 0.15em;
}
#sec3 h2 .black {
    font-size: 10vw;
    color: #000;
}
#sec3 h2 .num {
    font-size: 13vw;
}
#sec3 h2 > small {
    font-size: 10vw;
}
#sec3 h2 .small {
    font-size: 8.4vw;
    margin-top: 36vw;
}
#sec3 .ttl-sub {
    position: absolute;
    text-transform: uppercase;
    font-size: 3.6vw;
    border-bottom: 1px solid #fff;
    padding: 2vw 4% 1vw 28%;
    top: -79vw;
    right: 40%;
    letter-spacing: 0.15em;
}
#sec3 .col h3 {
    font-size: 5.7vw;
    line-height: 1.7;
    margin-bottom: 7vw;
    color: #fff;
    letter-spacing: 0.2em;
    position: relative;
    z-index: 6;
}
#sec3 .col .txt {
    margin-bottom: 14vw;
    position: relative;
    z-index: 5;
}
#sec3 .col .txt li {
    margin-bottom: 2vw;
}
#sec3 .col .txt li.line {
    position: relative;
    margin-top: 9vw;
}
#sec3 .col .txt li.line span {
    display: inline-block;
    position: relative;
    z-index: 0;
}
#sec3 .col .txt li.line span::after {
    content: "";
    background: rgba(142, 36, 40, 0.6);
    position: absolute;
    top: 16px;
    left: 0;
    right: 0;
    height: 13px;
    z-index: -1;
}
#sec3 .bg {
    height: 100%;
    position: absolute;
    top: 9vw;
    left: 0;
    width: 100%;
    z-index: -1;
}
#sec3 .bg img {
    object-position: top
}
#sec3 .slideParent {
    margin-bottom: 12vw;
}
#sec3 .slideParent .slide-fade {
    height: 55vw;
}
#sec3 .slideParent .slide-page {
    margin: 1vw auto;
}
#sec3 .col .map {
    margin-bottom: 9vw;
}
#sec3 .btn-cus a {
    border: 1px solid;
}
#sec3 .deco {
    position: absolute;
    top: 112vw;
    left: -7%;
}
@media only screen and (min-width: 768px) {
    #sec3 {
        padding: 463px 0 120px;
        margin-top: 20px;
        z-index: 6;
    }
    #sec3 .wrap {
        width: 1230px;
        padding: 0 20px;
    }
    #sec3 h2 {
		 font-size: 48px;
		top: -420px;
		left: 208px;
		right: auto;
		line-height: 99px;
		width: 220px;
		height: 750px;
		margin-top: 0;
    }
    #sec3 h2 .black {
        font-size: 58px;
    }
    #sec3 h2 .num {
        font-size: 73px;
    }
    #sec3 h2 > small {
        font-size: 48px;
    }
    #sec3 h2 .small {
        font-size: 48px;
        margin-top: 215px;
        letter-spacing: 5px;
    }
    #sec3 .ttl-sub {
        font-size: 21px;
        top: -20px;
        width: 267px;
        padding: 20px 31px 7px 154px;
        left: -40px;
        box-sizing: border-box;
        letter-spacing: 2px;
    }
    #sec3 .col {
        width: 542px;
        margin-left: auto;
    }
    #sec3 .col h3 {
        font-size: 33px;
        margin-bottom: 43px;
    }
    #sec3 .col .txt {
        margin-bottom: 93px;
    }
    #sec3 .col .txt li {
        margin-bottom: 37px;
    }
    #sec3 .col .txt li.line {
        margin-top: 20px;
    }
    #sec3 .col .txt li.line span::after {
        height: 20px;
    }
    #sec3 .slideParent {
        margin-bottom: 30px;
        position: absolute;
        left: -28px;
        bottom: 121px;
        width: 621px;
    }
    #sec3 .slideParent .slide-fade {
        height: 414px;
    }
    #sec3 .slideParent .slide-page {
        margin-top: 7px;
    }
    #sec3 .col .map {
        margin-bottom: 41px;
        margin-left: 10px;
        width: 538px;
    }
    #sec3 .btn-cus {
        margin-left: -292px;
        width: 478px;
    }
    #sec3 .btn-cus a {
        border: 1px solid;
        background: no-repeat;
        padding-left: 136px;
    }
    #sec3 .btn-cus a:hover {
        background: url(../img/shared/btn_bg.jpg) repeat;
        transition: all 0.5s;
    }
    #sec3 .deco {
        top: 130px;
        left: auto;
        right: 0px;
    }
    #sec3 .bg{
        top: 70px;
    }
}
@media only screen and (min-width: 768px) and (max-width: 1500px) {
	 #sec3 h2 {
            margin-top: -0.5vw;
    }
}
@media only screen and (min-width: 1800px) {
      #sec3 h2 {
    	top: -392px;
    }
}
@media only screen and (min-width: 768px) and (max-width: 1300px) {
  
}

/* sec 4 */
#sec4 {
    position: relative;
    padding: 23vw 0 13vw;
}
#sec4 .group {
    flex-direction: column;
}
#sec4 .group .left .logo {
    width: 32%;
    margin: 0 auto 4vw;
}
#sec4 .group .left .ttl {
    text-align: center;
    margin-bottom: 8vw;
    line-height: 20px;
}
#sec4 .group .left .btn-web {
    margin: 0 auto 6vw;
}
#sec4 .group .left .tel {
    text-align: center;
    margin-bottom: 6vw;
    line-height: 1.5;
}
#sec4 .group .left .tel dt {
    font-size: 3.5vw;
}
#sec4 .group .left .tel dt .tel-icon {
    font-size: 6vw;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: flex;
    align-items: center;
    justify-content: center;
    letter-spacing: 0.05em;
}
#sec4 .group .left .tel dt .tel-icon span {
    width: 6%;
    margin-right: 2%;
    align-self: flex-start;
    margin-top: -0.2vw;
}
#sec4 .group .left .tel dd {
    font-size: 10px;
    line-height: 20px;
}
#sec4 .group .left .box {
    padding: 6% 3%;
    text-align: center;
    margin: 0 auto 13vw;
    width: 84%;
    box-sizing: border-box;
}
#sec4 .group .left .box .ttl2 dt {
    font-size: 4vw;
    margin-bottom: 1vw;
}
#sec4 .group .left .box .ttl2 dd {
    font-size: 12px;
    line-height: 22px;
}
#sec4 .group .right dl {
    border-bottom: 1px solid #D6D5D5;
    padding-bottom: 4vw;
    margin-bottom: 4vw;
    line-height: 22px;
}
#sec4 .group .right dl dd .link {
}
#sec4 .group .right dl dd .link {
	position: relative;
}
#sec4 .group .right dl dd .link::after{
	    content: "";
    position: absolute;
    left: 8px;
    right: 8px;
    bottom: 0;
    margin: 0 auto;
    height: 1px;
    background: #000;	
}
#sec4 .group .right dl dd .link:hover::after{
	display: none;
}
#sec4 .group .right dl dd .note {
    margin-left: 10px;
    border-left: 1px solid #000;
    display: block;
    padding-left: 2%;
    margin-top: 1vw;
}
#sec4 .deco1 {
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
}
#sec4 .deco2 {
    position: absolute;
    bottom: -33vw;
    right: 0;
    z-index: -1;
    width: 55%;
    opacity: 0.8;
}
@media only screen and (min-width: 768px) {
    #sec4 {
        padding: 152px 0 20px;
    }
    #sec4 .group {
        display: -webkit-flex;
        display: -moz-flex;
        display: -ms-flex;
        display: -o-flex;
        display: flex;
        justify-content: space-between;
        flex-direction: row;
        margin-bottom: 60px;
    }
    #sec4 .group .left {
        width: 354px;
    }
    #sec4 .group .left .logo {
        margin: 0 auto 21px;
        width: 119px;
    }
    #sec4 .group .left .ttl {
        font-size: 15px;
        margin-bottom: 41px;
        line-height: 22px;
    }
    #sec4 .group .left .btn-web {
        margin: 0 auto 25px;
    }
    #sec4 .group .left .tel {
        margin-bottom: 31px;
    }
    #sec4 .group .left .tel dt {
        font-size: 17px;
        margin-bottom: 4px;
    }
    #sec4 .group .left .tel dt .tel-icon {
        font-size: 28px;
        letter-spacing: 1px;
    }
    #sec4 .group .left .tel dt .tel-icon span {
        width: 22px;
        margin-right: 5px;
    }
    #sec4 .group .left .tel dd {
        font-size: 13px;
        line-height: 18px;
    }
    #sec4 .group .left .box {
        padding: 20px;
        margin: 0 8px;
        width: 338px;
    }
    #sec4 .group .left .box .ttl2 dt {
        font-size: 18px;
        margin-bottom: 20px;
    }
    #sec4 .group .left .box .ttl2 dd {
        font-size: 15px;
        line-height: 25px;
        letter-spacing: 0px;
    }
    #sec4 .group .right {
        width: 540px;
        margin-top: 10px;
    }
    #sec4 .group .right dl {
        padding-bottom: 19px;
        margin-bottom: 20px;
        line-height: 25px;
        display: flex;
    }
    #sec4 .group .right dl dt {
        width: 163px;
    }
    #sec4 .group .right dl dd {
        width: calc(100% - 160px);
    }
    #sec4 .group .right dl dd .link:hover {
        border-bottom: 0;
    }
    #sec4 .group .right dl dd .note {
        margin-top: 14px;
        padding-left: 13px;
        line-height: 29px;
    }
    #sec4 .deco2 {
        width: auto;
        opacity: 1;
        bottom: -560px;
    }
}

/* gmap */
#gmap {
    position: relative;
    padding-bottom: 25vw;
}
#gmap .deco1 {
    position: absolute;
    bottom: 1vw;
    left: 0;
    z-index: -1;
    width: 90%;
}
#gmap .map {
    margin: 0 -4% 6vw;
}
#gmap .map iframe {
    width: 100%;
    height: 100vw;
}
@media only screen and (max-width: 767px) {
    #gmap .g-btn .btn-cus {
        margin: 0 4%;
        width: 88%;
    }
}
@media only screen and (min-width: 768px) {
    #gmap {
        padding-bottom: 142px;
    }
    #gmap .wrap {
        width: 1380px;
        padding: 0 20px;
    }
    #gmap .deco1 {
        width: auto;
        bottom: 0;
    }
    #gmap .map {
        margin: 0 auto 10px;
    }
    #gmap .map iframe {
        height: 540px;
    }
    #gmap .g-btn {
        display: flex;
        justify-content: flex-end;
        margin-right: 30px;
    }
    #gmap .g-btn .btn2 {
        margin-right: 48px;
        letter-spacing: 3px;
        margin-top: 19px;
        position: relative;
    }
    #gmap .g-btn .btn2 a {
        padding-right: 27px;
    }
    #gmap .g-btn .btn2 a:hover {
        border-bottom: 1px solid
    }
    #gmap .g-btn .btn2 a::after {
        content: "";
        position: absolute;
        right: 0;
        background: url(../img/shared/icon_windows.png) no-repeat;
        width: 20px;
        height: 20px;
        right: -5px;
        top: 14px;
    }
    #gmap .g-btn .btn-cus {
        width: 343px;
    }
    #gmap .g-btn .btn-cus a {
        padding-left: 110px;
    }
}
