.slider {
    margin: 10vw -76vw 0 -28vw
}

.slider .company-list {
    display: flex;
    align-items: flex-end;
    gap: 5vw
}

.slider .company-item {
    position: relative;
    overflow: hidden;
    flex: 1;
    width: 35vw;
    margin-bottom: 3vw
}

.slider .company-item:nth-of-type(2) {
    flex: unset;
    margin-bottom: 0;
    width: 60vw
}

.slider .company-item-image {
    position: relative;
    display: block;
    opacity: 0;
    --duration: 1650ms;
    --delay: 0;
    --transform-x: 25%;
    --ease-inout-quart: cubic-bezier(0.77, 0, 0.175, 1)
}

.slider .company-item-image:not(:first-child) {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%
}

.slider .company-item-main a {
    position: relative;
    display: block
}

.slider .company-item-main a::before {
    content: "";
    position: absolute;
    z-index: 1;
    inset: 2vw 2vw 6.5vw;
    border: 1px solid #ccc
}

.slider .company-item-main a .arrow {
    position: relative;
    z-index: 2;
    width: 14vw;
    opacity: 0;
    margin: 5vw auto 0
}

.slider .company-item-image .photo {
    -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
    transition: opacity 0ms, transform .5s ease-in-out, -webkit-clip-path var(--duration) var(--ease-inout-quart);
    transition: clip-path var(--duration) var(--ease-inout-quart), opacity 0ms, transform .5s ease-in-out;
    transition: clip-path var(--duration) var(--ease-inout-quart), opacity 0ms, transform .5s ease-in-out, -webkit-clip-path var(--duration) var(--ease-inout-quart)
}

.slider .company-item-image .photo img {
    transform: translate3d(var(--transform-x), 0, 0);
    width: 100%
}

.slider .is-first .company-item-image {
    opacity: 1
}

.slider .is-first .company-item-image:last-of-type .photo img {
    transform: translate3d(0%, 0, 0);
    transition: transform var(--duration) var(--ease-inout-quart)
}

.slider .company-item-image.is-prev {
    z-index: 2;
    opacity: 1;
    pointer-events: none
}

.slider .company-item-image.is-prev .photo {
    -webkit-clip-path: polygon(0 0, 0 0, 0 100%, 0% 100%);
    clip-path: polygon(0 0, 0 0, 0 100%, 0% 100%)
}

.slider .company-item-image.is-prev .photo img {
    transition: transform var(--duration) var(--ease-inout-quart);
    transform: translate3d(calc(-1 * var(--transform-x)), 0, 0) !important
}

.slider .company-item-image.is-prev a .arrow {
    opacity: 1
}

.slider .company-item-image.is-active {
    z-index: 1;
    opacity: 1
}

.slider .company-item-image.is-active .photo img {
    opacity: 1;
    transition: transform var(--duration) var(--ease-inout-quart);
    transform: translate3d(0%, 0, 0) !important
}

.slider .company-item:nth-of-type(1) .company-item-image .photo {
    transition-delay: calc(var(--delay)*3)
}

.slider .company-item:nth-of-type(1) .company-item-image .photo img {
    transition-delay: calc(var(--delay)*3)
}

.slider .company-item:nth-of-type(2) .company-item-image .photo {
    transition-delay: calc(var(--delay)*2)
}

.slider .company-item:nth-of-type(2) .company-item-image .photo img {
    transition-delay: calc(var(--delay)*2)
}

.slider .company-item:nth-of-type(3) .company-item-image .photo {
    transition-delay: calc(var(--delay)*1)
}

.slider .company-item:nth-of-type(3) .company-item-image .photo img {
    transition-delay: calc(var(--delay)*1)
}

.slider .company-item:nth-of-type(4) .company-item-image .photo {
    transition-delay: 0ms
}

@media screen and (min-width: 768px) {
    .slider {
        max-width: 1500px;
        margin: -87px auto 0
    }

    .slider .company-list {
        margin: 0 -113px 0 -71px;
        gap: 74px
    }

    .slider .company-item {
        position: relative;
        flex: unset;
        width: 320px;
        margin: 0 0 57px
    }

    .slider .company-item:nth-of-type(2) {
        width: 500px;
        margin: 0
    }

    .slider .company-item-main a {
        overflow: hidden
    }

    .slider .company-item-main a::before {
        inset: 24px 24px 64px
    }

    .slider .company-item-main a .photo {
        overflow: hidden;
        height: 670px
    }

    .slider .company-item-main a .arrow {
        width: 130px;
        margin: 18px auto 0
    }

    .slider .company-item-main:hover a .photo img {
        transform: translate3d(0, 0, 0) scale(1.15) !important
    }
}

#header {
    background: url("../img/index/hd_deco.png") no-repeat right top/60%, url("../img/index/hd_deco2.png") no-repeat left top 94vw/60%, url("../img/index/hd_deco3.png") no-repeat center bottom/200%;
    padding-bottom: 10vw
}

#header h1 {
    position: absolute;
    top: 2vw;
    left: 4%;
    right: calc(60px + 4%);
    z-index: 1;
    font-size: 11px;
    font-weight: 500;
    line-height: 18px;
    letter-spacing: .1em
}

#header .row h2 {
    padding: 30vw 7% 0
}

#header .row h2 span {
    display: flex;
    align-items: flex-end;
    line-height: 1.43;
    letter-spacing: .1em
}

#header .row h2 span small {
    letter-spacing: .1em
}

#header .row h2 span:nth-child(1) i {
    position: relative;
    padding-top: 2vw
}

#header .row h2 span:nth-child(1) i::before {
    content: "";
    position: absolute;
    inset: 0 0 0 calc(-50vw + 50%);
    z-index: -1;
    background: #fffaf0
}

#header .row h2 span:nth-child(2) {
    justify-content: flex-end
}

#header .row .txt-img {
    width: 50%;
    margin: 5vw auto 0
}

@media screen and (min-width: 768px) {
    #header {
        background: url("../img/index/hd_deco.png") no-repeat right top/auto, url("../img/index/hd_deco2.png") no-repeat left top 337px/auto, url("../img/index/hd_deco3.png") no-repeat center bottom/100%;
        padding-bottom: 169px
    }

    #header h1 {
        top: 23px;
        left: 27px;
        right: auto;
        font-size: 13px
    }

    #header .hd-pc {
        position: absolute;
        top: 0;
        right: 142px;
        z-index: 1
    }

    #header .hd-pc .nav-list {
        display: flex;
        align-items: flex-start;
        flex-direction: column-reverse;
        width: 170px;
        gap: 37px
    }

    #header .hd-pc .nav-list li a {
        position: relative;
        display: block;
        padding: 88px 6px 0 0;
        font-size: 26px;
        line-height: 1;
        letter-spacing: .1em
    }

    #header .hd-pc .nav-list li a::before {
        content: "";
        position: absolute;
        background: #999184;
        width: 1px;
        top: 0;
        bottom: 0;
        right: 0;
        opacity: 0
    }

    #header .hd-pc .nav-list li a:hover::before,
    #header .hd-pc .nav-list li a.active::before {
        opacity: 1
    }

    #header .row {
        display: flex;
        max-width: 1260px;
        padding: 0 30px;
        margin: 0 auto;
        padding-top: 150px
    }

    #header .row h2 {
        padding: 0
    }

    #header .row h2 span:nth-child(1) i {
        padding-top: 3px
    }

    #header .row h2 span:nth-child(1) i::before {
        bottom: 9px
    }

    #header .row h2 span:nth-child(2) {
        justify-content: flex-start;
        margin-left: 289px
    }

    #header .row .txt-img {
        width: auto;
        margin: 15px 0 0 16px
    }
}

#sec1 {
    background: url("../img/index/sec1_deco.png") no-repeat left bottom/100%;
    padding: 15vw 0
}

#sec1 h2 {
    width: -moz-fit-content;
    width: fit-content;
    margin: 0 auto;
    padding: 0 5vw;
    background: url("../img/index/sec1_deco_ttl.png") no-repeat center bottom/100%;
    text-align: center;
    line-height: 1.4492753623;
    letter-spacing: .1em
}

#sec1 h2 span {
    letter-spacing: .1em
}

#sec1 .txt {
    margin-top: 8vw
}

@media screen and (max-width: 767px) {
    #sec1 .fs69 {
        font-size: 8.8vw
    }

    #sec1 .fs52 {
        font-size: 6.53vw
    }

    #sec1 .fs44 {
        font-size: 5.47vw
    }
}

@media screen and (min-width: 768px) {
    #sec1 {
        background-size: auto;
        padding: 113px 0 130px
    }

    #sec1 h2 {
        width: auto;
        padding: 0;
        background-position: center bottom 6px;
        background-size: auto
    }

    #sec1 .txt {
        text-align: center;
        margin-top: 36px
    }
}

#sec2 .set1 {
    position: relative
}

#sec2 .set1 .bg {
    height: 80vw
}

#sec2 .set1 .bg img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover
}

#sec2 .set1 .bg-deco {
    position: absolute;
    bottom: -3px;
    left: -20%;
    right: -20%;
    z-index: 1
}

#sec2 .set .sec2-js {
    position: relative;
    z-index: 1;
    margin-left: -6%
}

#sec2 .set .sec2-js::before {
    content: "";
    position: absolute;
    inset: -2vw 30% 0 0;
    z-index: -1;
    background: url("../img/shared/bg2.jpg") repeat center
}

#sec2 .set .sec2-js .slick-dots {
    position: absolute;
    bottom: 2vw;
    right: 2vw;
    z-index: 1
}

#sec2 .set .block {
    margin-top: 12vw
}

#sec2 .set .block .logo {
    width: 25%;
    margin: 0 auto
}

#sec2 .set .block .txt {
    margin-top: 10vw
}

#sec2 .set .group-link {
    margin-top: 10vw
}

#sec2 .set .group-link li+li {
    margin-top: 5vw
}

#sec2 .set .sns {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 26px;
    margin-top: 10vw
}

#sec2 .set .sns li a {
    display: block
}

#sec2 .set .sns li a img {
    display: block
}

#sec2 .set .sns li:nth-child(1) {
    width: 21px
}

#sec2 .set .sns li:nth-child(2) {
    width: 30px
}

#sec2 .set3 {
    position: relative;
    margin-top: 15vw
}

#sec2 .set3 .deco {
    position: absolute;
    top: -60vw;
    right: 0;
    z-index: -1;
    width: 60%
}

#sec2 .set3 .block .logo {
    width: 28%
}

@media screen and (min-width: 768px) {
    #sec2 .set1 .bg {
        height: 813px
    }

    #sec2 .set1 .bg-deco {
        left: 0;
        right: 0
    }

    #sec2 .set .wrap {
        max-width: 1260px;
        padding: 0 30px
    }

    #sec2 .set .sec2-js {
        position: absolute;
        top: 108px;
        left: calc(-50vw + 50%);
        right: 513px;
        margin-left: 0
    }

    #sec2 .set .sec2-js::before {
        inset: -18px 309px 0 0
    }

    #sec2 .set .sec2-js .slick-dots {
        bottom: 23px;
        right: 38px
    }

    #sec2 .set .sec2-js .item {
        height: 590px
    }

    #sec2 .set .block {
        position: relative;
        z-index: 2;
        width: 422px;
        margin: -42px 0 0 auto
    }

    #sec2 .set .block .logo {
        width: 147px
    }

    #sec2 .set .block .txt {
        margin-top: 53px
    }

    #sec2 .set .group-link {
        display: flex;
        justify-content: center;
        gap: 37px;
        margin-top: 72px
    }

    #sec2 .set .group-link li+li {
        margin-top: 0
    }

    #sec2 .set .sns {
        margin-top: 43px
    }

    #sec2 .set3 {
        margin-top: 144px
    }

    #sec2 .set3 .deco {
        width: auto;
        top: -669px
    }

    #sec2 .set3 .sec2-js {
        margin-top: -104px
    }

    #sec2 .set3 .block .logo {
        width: 163px;
        margin: 0 auto 0
    }
}

#sec3 {
    position: relative;
    padding-top: 15vw
}

#sec3 .deco {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 1;
    width: 30%
}

#sec3 .wrap {
    border: 1px solid #bfaa83;
    border-bottom: none;
    border-radius: 25px;
    margin: 0 3%;
    padding: 12vw 5%
}

#sec3 .wrap::before {
    content: "";
    position: absolute;
    inset: 2px;
    border: 2px solid #bfaa83;
    border-radius: 22.5px
}

#sec3 h2 {
    width: -moz-fit-content;
    width: fit-content;
    margin: 0 auto;
    background: #fffaf0;
    padding: 3vw 3vw 0;
    line-height: 1;
    letter-spacing: .1em
}

#sec3 .info {
    margin-top: 10vw
}

#sec3 .info dl {
    display: flex;
    justify-content: space-between;
    border-bottom: 1px solid #999184;
    padding: 10px 0
}

#sec3 .info dl dt {
    max-width: 30vw;
    width: 100%;
    padding-left: 2vw
}

#sec3 .info dl dd {
    flex: 1
}

@media screen and (min-width: 768px) {
    #sec3 {
        padding-top: 149px
    }

    #sec3 .deco {
        width: auto
    }

    #sec3 .wrap {
        max-width: 1400px;
        border-radius: 50px;
        margin: 0 auto;
        padding: 95px 0 88px
    }

    #sec3 .wrap::before {
        inset: 4px;
        border-width: 3px;
        border-radius: 45px
    }

    #sec3 h2 {
        text-align: center;
        width: 260px;
        padding: 14px 0 2px 6px
    }

    #sec3 .info {
        max-width: 780px;
        margin: 34px auto 0
    }

    #sec3 .info dl {
        font-size: 20px;
        padding: 19.5px 0
    }

    #sec3 .info dl dt {
        max-width: 324px;
        padding-left: 18px
    }
}

#sec4 {
    padding-top: 15vw
}

#sec4 .wrap {
    padding: 0
}

#sec4 .photo {
    margin-right: 10%;
    height: 50vw
}

#sec4 .photo img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover
}

#sec4 .bg {
    position: absolute;
    top: 0;
    right: 0;
    width: 7%;
    height: 50vw
}

#sec4 .bg img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover
}

#sec4 .group-txt .sub-txt {
    position: relative;
    background: url("../img/shared/bg2.jpg") repeat center;
    color: #fff;
    width: -moz-fit-content;
    width: fit-content;
    margin: -5vw auto 0;
    padding: 0 1vw 0 2vw;
    line-height: 1.25;
    letter-spacing: .1em
}

#sec4 .group-txt h2 {
    width: -moz-fit-content;
    width: fit-content;
    margin: 6vw auto 0;
    line-height: 1.5192307692;
    letter-spacing: .1em
}

#sec4 .group-txt h2 span {
    display: block
}

#sec4 .group-txt h2 span:nth-child(2) {
    margin-left: 14vw
}

#sec4 .group-txt h2 span:nth-child(3) {
    margin-left: 41vw
}

#sec4 .group-txt h2 small {
    letter-spacing: .1em
}

#sec4 .group-txt .txt {
    margin: 6vw 5.33% 0
}

#sec4 .group-txt .btn-shared {
    margin: 7vw 8% 0
}

@media screen and (min-width: 768px) {
    #sec4 {
        padding-top: 86px
    }

    #sec4 .wrap {
        max-width: 1500px;
        padding: 0
    }

    #sec4 .photo {
        top: 106px;
        margin-right: 0;
        left: calc(-50vw + 50%);
        right: 624px;
        height: 715px
    }

    #sec4 .bg {
        top: 106px;
        right: calc(-50vw + 50%);
        width: auto;
        height: auto
    }

    #sec4 .group-txt {
        position: relative;
        z-index: 1;
        width: -moz-fit-content;
        width: fit-content;
        margin: 0 0 0 auto;
        padding: 110px 147px 0 0
    }

    #sec4 .group-txt .sub-txt {
        position: absolute;
        top: 0;
        left: -104px;
        width: auto;
        margin: 0;
        padding: 29px 0 15px
    }

    #sec4 .group-txt h2 {
        margin: 0
    }

    #sec4 .group-txt h2 span:nth-child(2) {
        margin-left: 81px
    }

    #sec4 .group-txt h2 span:nth-child(3) {
        margin-left: 240px
    }

    #sec4 .group-txt .txt {
        margin: 27px 0 0
    }

    #sec4 .group-txt .btn-shared {
        margin: 50px 0 0
    }
}

#rss {
    padding: 10vw 0 21vw
}

#rss .lead {
    border-bottom: 1px solid #917f62;
    padding: 0 3% 3vw
}

#rss .lead .inner {
    display: flex;
    align-items: flex-end;
    justify-content: space-between
}

#rss .lead h2 {
    font-size: 6.91vw;
    line-height: 1;
    letter-spacing: .1em
}

#rss .lead .more a {
    position: relative;
    display: flex;
    align-items: center;
    gap: 2.67vw;
    font-size: 4.67vw;
    line-height: 1;
    letter-spacing: .16em
}

#rss .lead .more a img {
    width: 3vw
}

#rss #feed {
    margin-top: 7vw
}

#rss #feed .item {
    display: flex;
    align-items: center;
    gap: 4.5%
}

#rss #feed .item .rss-img {
    width: 43%;
    height: 27.5vw
}

#rss #feed .item .rss-img span {
    width: 100% !important;
    height: 100% !important
}

#rss #feed .item .desc {
    flex: 1;
    line-height: 35px
}

#rss #feed .item+.item {
    margin-top: 2vw
}

@media screen and (min-width: 768px) {
    #rss {
        padding: 163px 0 153px
    }

    #rss .wrap {
        max-width: 1200px
    }

    #rss .lead {
        padding: 0 0 14px
    }

    #rss .lead .inner {
        max-width: 1000px;
        margin: 0 auto
    }

    #rss .lead h2 {
        font-size: 37px
    }

    #rss .lead .more a {
        gap: 13px;
        font-size: 20px
    }

    #rss .lead .more a img {
        width: 13px
    }

    #rss .lead .more a:hover {
        opacity: .8
    }

    #rss #feed {
        display: flex;
        justify-content: space-between;
        max-width: 1000px;
        margin: 30px auto 0
    }

    #rss #feed .item {
        width: 50%;
        gap: 20px
    }

    #rss #feed .item .rss-img {
        width: 250px;
        height: 180px
    }

    #rss #feed .item .desc {
        line-height: 40px
    }

    #rss #feed .item .desc dd a:hover {
        text-decoration: underline
    }

    #rss #feed .item+.item {
        margin-top: 0;
        padding-left: 27px
    }
}