


@charset "UTF-8";
/* 
======== CONTENTS ==========================================
	Site Name: トップページ
    2025.11.13
 =========================================================
*/

/* ページ用スタイル */

.hero {
    position: relative;
    padding: 0 5.3333333333vw;
    height: 98.6666666667vw
}
@media (min-width:768px) {
    .hero {
        padding: 0 45px;
        height: 600px
    }
}
.hero .hero__inner {
    position: absolute;
    z-index: 2;
    bottom: 18.1333333333vw;
    left: 0;
    padding: 0 5.3333333333vw;
    width: 100%;
    pointer-events: none
}
@media (min-width:768px) {
    .hero .hero__inner {
        display: flex;
        flex-direction: column;
        justify-content: center;
        top: 0;
        right: 0;
        bottom: 0;
        margin: auto;
        padding: 0 20px;
        max-width: 1150px;
        height: 100%
    }
}
@media (min-width:1100px) {
    .hero .hero__inner {
        padding: 0
    }
}
.hero .hero__heading {
    letter-spacing: 0;
    color: #fff;
    text-shadow: 0 0 10px rgba(0, 0, 0, .1);
    font-size: 6.9333333333vw
}
@media (min-width:768px) {
    .hero .hero__heading {
        font-size: 2.625rem;
        line-height: 1.2857142857
    }
}
.hero .hero__lead {
    margin-top: 4.2666666667vw;
    color: #fff;
    font-weight: 700
}
@media (min-width:768px) {
    .hero .hero__lead, .hero .hero__lead+.hero__link {
        margin-top: 36px
    }
}
.hero .hero__link {
    margin-top: 4vw;
    pointer-events: all
}
@media (min-width:768px) {
    .hero .hero__link {
        margin-top: 46px
    }
}
.hero .hero__slider {
    position: absolute;
    z-index: 1;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%
}
.hero .hero__slider:after, .hero .hero__slider:before {
    content: "";
    position: absolute;
    z-index: 10;
    bottom: 0;
    left: 0;
    width: 100%;
    pointer-events: none
}
.hero .hero__slider .hero__slider-list>.hero__slider-item:not(:first-child) {
    display: none
}
.hero .hero__slider .hero__slider-item {
    height: 98.6666666667vw
}
.hero .hero__slider .hero__slider-item img {
    width: 100%;
    height: 100%!important;
    -o-object-fit: cover;
    object-fit: cover
}
.hero .hero__slider .slick-dots {
    display: flex;
    justify-content: center;
    position: absolute;
    z-index: 11;
    right: 0;
    bottom: 6.9333333333vw;
    left: 0;
    gap: 0 4.2666666667vw
}
.hero .hero__slider .slick-dots>li>button {
    display: block;
    border: 0;
    border-radius: 1.3333333333vw;
    outline: none;
    width: 2.6666666667vw;
    height: 2.6666666667vw;
    cursor: pointer;
    transition: width .2s cubic-bezier(.39, .575, .565, 1), background-color .2s cubic-bezier(.39, .575, .565, 1);
    background: #fff;
    color: transparent;
    font-size: 0;
    line-height: 0
}
@media (hover:hover) {
    .hero .hero__slider .slick-dots>li>button:hover {
        background-color: #b1000e
    }
}
.hero .hero__slider .slick-dots>li.slick-active>button {
    width: 10.9333333333vw;
    background-color: #c02
}
@media (min-width:768px) {
    .hero .hero__slider {
        padding-right: 45px
    }
    .hero .hero__slider:after {
        height: 85px
    }
    .hero .hero__slider .hero__slider-item {
        height: 600px
    }
    .hero .hero__slider .slick-list {
        margin-right: -45px
    }
    .hero .hero__slider .slick-dots {
        justify-content: flex-end;
        bottom: 30px;
        margin-right: auto;
        margin-left: auto;
        max-width: 1060px;
        gap: 0 16px
    }
    .hero .hero__slider .slick-dots>li>button {
        border-radius: 5px;
        width: 10px;
        height: 10px
    }
    .hero .hero__slider .slick-dots>li.slick-active>button {
        width: 41px
    }
}

/*--------------------
スライダー
--------------------*/
.slick-slider {
    box-sizing: border-box;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
    touch-action: pan-y;
    -webkit-tap-highlight-color: transparent
}
.slick-list, .slick-slider {
    display: block;
    position: relative
}
.slick-list {
    overflow: hidden;
    margin: 0;
    padding: 0
}
.slick-list:focus {
    outline: none
}
.slick-list.dragging {
    cursor: pointer;
    cursor: hand
}
.slick-slider .slick-list, .slick-slider .slick-track {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
}
.slick-track {
    display: block;
    position: relative;
    top: 0;
    left: 0;
    margin-right: auto;
    margin-left: auto
}
.slick-track:after, .slick-track:before {
    content: "";
    display: table
}
.slick-track:after {
    clear: both
}
.slick-loading .slick-track {
    visibility: hidden
}
.slick-slide {
    display: none;
    float: left;
    height: 100%;
    min-height: 1px
}
[dir=rtl] .slick-slide {
    float: right
}
.slick-slide img {
    display: block
}
.slick-slide.slick-loading img {
    display: none
}
.slick-slide.dragging img {
    pointer-events: none
}
.slick-initialized .slick-slide {
    display: block
}
.slick-loading .slick-slide {
    visibility: hidden
}
.slick-vertical .slick-slide {
    display: block;
    border: 1px solid transparent;
    height: auto
}
.slick-arrow.slick-hidden {
    display: none
}
@font-face {
    font-family: swiper-icons;
    font-weight: 400;
    font-style: normal;
    src: url("data:application/font-woff;charset=utf-8;base64, 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")
}

.release {
    overflow: hidden;
    background-color: #f2f2f2
}
@media (min-width:768px) {
    .release {
        padding-right: 45px;
        padding-left: 45px
    }
}
@media (min-width:768px) {
    .release .release__inner {
        position: relative;
        margin-right: auto;
        margin-left: auto;
        max-width: 1274px
    }
}
.release .release__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: relative;
    padding-right: 5.3333333333vw;
    padding-left: 5.3333333333vw;
    height: 8.5333333333vw
}
.release .release__header:before {
    content: "";
    position: absolute;
    z-index: 0;
    top: 0;
    right: 0;
    width: 100vw;
    height: 100%;
    background-color: #c02
}
.release .release__header .release__header-heading {
    position: relative;
    z-index: 1;
    letter-spacing: .04em;
    color: #fff;
    font-size: 3.2vw
}
@media (min-width:768px) {
    .release .release__header {
        justify-content: flex-start;
        padding-right: 0;
        padding-left: 0;
        width: 160px;
        height: 63px
    }
    .release .release__header .release__header-heading {
        font-size: .875rem
    }
}
.release .release__body .release__body-item {
    padding: 5.4666666667vw 5.3333333333vw 5.7333333333vw;
    width: 100%;
    font-size: 3.7333333333vw;
    line-height: 1.8
}
.release .release__body .release__body-item>a {
    overflow: hidden
}
@media (max-width:767px) {
    .release .release__body .release__body-item>a {
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2
    }
}
@media (min-width:768px) {
    .release .release__body {
        position: absolute;
        top: 0;
        right: 0;
        left: 160px;
        height: 63px
    }
    .release .release__body .release__body-item {
        display: flex;
        align-items: center;
        padding: 0 0 0 32px;
        width: auto;
        height: 63px;
        font-size: .875rem;
        line-height: 1.7142857143
    }
    .release .release__body .release__body-item>a {
        white-space: nowrap;
        text-overflow: ellipsis
    }
}
@media (min-width:768px) and (hover:hover) {
    .release .release__body .release__body-item>a {
        transition: color .2s cubic-bezier(.39, .575, .565, 1)
    }
    .release .release__body .release__body-item>a:hover {
        transition: color .2s cubic-bezier(.39, .575, .565, 1);
        text-decoration: underline;
        color: #b1000e
    }
}
.search {
    padding: 8vw 8vw 8.5333333333vw
}
@media (min-width:768px) {
    .search {
        padding: 40px 45px 52px
    }
}
@media (min-width:768px) {
    .search .search__inner {
        display: flex;
        justify-content: center;
        margin-right: auto;
        margin-left: auto;
        max-width: 1060px
    }
}
.closeup {
    padding: 21.3333333333vw 5.3333333333vw 24.5333333333vw;
    background-color: #333
}
@media (min-width:768px) {
    .closeup {
        padding: 100px 20px
    }
}
@media (min-width:1100px) {
    .closeup {
        padding: 100px 45px
    }
}
@media (min-width:768px) {
    .closeup .closeup__inner {
        margin-right: auto;
        margin-left: auto;
        max-width: 1276px
    }
}
.closeup .closeup__heading {
    color: #fff
}
@media (min-width:768px) {
    .closeup .closeup__heading {
        font-size: 2.625rem
    }
}
.closeup .closeup__list {
    margin-top: 7.7333333333vw
}
.closeup .closeup__list .closeup__list-item:not(:first-child) {
    margin-top: 5.3333333333vw
}
.closeup .closeup__list .closeup__list-link {
    display: block;
    background-color: #fff
}
.closeup .closeup__list .closeup__list-image {
    position: relative
}
.closeup .closeup__list .closeup__list-image>img {
    width: 100%
}
.closeup .closeup__list .closeup__list-image:before {
    content: "";
    opacity: 0;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    transition: opacity .3s cubic-bezier(.39, .575, .565, 1);
    background: hsla(0, 0%, 100%, .4)
}
.closeup .closeup__list .closeup__list-main {
    position: relative;
    padding: 9.6vw 5.6vw 8.1333333333vw
}
.closeup .closeup__list .closeup__list-heading {
    letter-spacing: .04em;
    font-size: 3.7333333333vw;
    line-height: 1.8
}
.closeup .closeup__list .closeup__list-category {
    display: flex;
    align-items: center;
    position: absolute;
    z-index: 1;
    top: -3.9333333333vw;
    left: 0;
    padding: 0 2.6666666667vw;
    height: 7.5333333333vw;
    background-color: transparent;
    letter-spacing: .05em;
    color: #fff;
    font-size: 2.9333333333vw;
    font-weight: 700
}
.closeup .closeup__list .closeup__list-category:after {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    width: 0;
    height: 100%;
    transition: width .3s cubic-bezier(.39, .575, .565, 1);
    background-color: #c02
}
.closeup .closeup__list .closeup__list-category:before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #333
}
@media (min-width:768px) {
    .closeup .closeup__list {
        display: grid;
        margin-top: 30px;
        word-break: break-word;
        grid-template-columns: repeat(4, 1fr);
        gap: 25px 25px
    }
}
@media (min-width:768px) and (max-width:1000px) {
    .closeup .closeup__list {
        grid-template-columns: repeat(2, 1fr)
    }
}
@media (min-width:768px) {
    .closeup .closeup__list .closeup__list-item:not(:first-child) {
        margin-top: 0
    }
}
@media (min-width:768px) {
    .closeup .closeup__list .closeup__list-link {
        height: 100%
    }
}
@media (min-width:768px) and (hover:hover) {
    .closeup .closeup__list .closeup__list-link:hover .closeup__list-image:before {
        opacity: 1
    }
    .closeup .closeup__list .closeup__list-link:hover .closeup__list-category:after {
        width: 100%
    }
}
@media (min-width:768px) {
    .closeup .closeup__list .closeup__list-main {
        padding: 30px 18px 36px
    }
}
@media (min-width:768px) {
    .closeup .closeup__list .closeup__list-heading {
        font-size: .875rem;
        font-weight: 400;
        line-height: 1.7142857143
    }
}
@media (min-width:768px) {
    .closeup .closeup__list .closeup__list-category {
        top: -14px;
        padding: 3px 10px;
        height: auto;
        height: 24px;
        font-size: .6875rem
    }
}
.closeup .closeup__lead {
    margin-top: 8vw;
    color: #fff;
    font-size: 3.7333333333vw;
    line-height: 2.1428571429
}
@media (min-width:768px) {
    .closeup .closeup__lead {
        margin: 50px auto 0;
        max-width: 952px;
        font-size: .875rem
    }
}
.closeup .closeup__alert {
    margin-top: 11.7333333333vw
}
@media (min-width:768px) {
    .closeup .closeup__alert {
        display: flex;
        justify-content: center;
        margin-top: 24px
    }
}
.closeup .closeup__alert .closeup__alert-link {
    display: block;
    position: relative;
    padding-left: 9.3333333333vw;
    text-decoration: none;
    color: #fff;
    font-size: 3.7333333333vw
}
.closeup .closeup__alert .closeup__alert-link[target=_blank]:after {
    content: "";
    display: inline-block;
    margin-left: 2.1333333333vw;
    width: 4.8vw;
    height: 3.4666666667vw;
    background-image: url(/r22res/image/common/icon_blank_white.svg);
    background-repeat: no-repeat;
    background-size: contain
}
@media (min-width:768px) {
    .closeup .closeup__alert .closeup__alert-link {
        padding-left: 35px;
        font-size: .875rem
    }
    .closeup .closeup__alert .closeup__alert-link[target=_blank]:after {
        display: block;
        position: absolute;
        top: calc(50% - 2px);
        right: -28px;
        width: 18px;
        height: 13px;
        -webkit-transform: translateY(-50%);
        transform: translateY(-50%)
    }
}
@media (min-width:768px) and (hover:hover) {
    .closeup .closeup__alert .closeup__alert-link:hover {
        text-decoration: underline
    }
}
.closeup .closeup__alert .closeup__alert-link:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 5.8666666667vw;
    height: 5.8666666667vw;
    background-image: url(/r22res/image/common/icon_alert.svg);
    background-repeat: no-repeat;
    background-position: 50%;
    background-size: cover
}
@media (min-width:768px) {
    .closeup .closeup__alert .closeup__alert-link:before {
        left: 0;
        width: 22px;
        height: 22px
    }
}
.solution {
    background-image: url(/-/media/Project/design2022/top/solution_bg_sm.jpg);
    background-repeat: no-repeat;
    background-position: 50%;
    background-size: cover
}
@media (min-width:768px) {
    .solution {
        background-image: url(/-/media/Project/design2022/top/solution_bg_lg.jpg)
    }
}
.solution .solution__inner {
    padding: 21.3333333333vw 5.3333333333vw;
    width: 100%
}
@media (min-width:768px) {
    .solution .solution__inner {
        margin: 0 auto;
        padding: 90px 20px 102px;
        max-width: 1060px
    }
}
@media (min-width:1100px) {
    .solution .solution__inner {
        padding: 90px 0 102px
    }
}
.solution .solution__heading {
    color: #fff
}
@media (min-width:768px) {
    .solution .solution__heading {
        font-size: 2.625rem
    }
}
.solution .solution__lead {
    margin-top: 8.2666666667vw;
    letter-spacing: .05em;
    color: #fff;
    font-size: 4.2666666667vw;
    font-weight: 700
}
@media (min-width:768px) {
    .solution .solution__lead {
        margin-top: 18px;
        font-size: 1.125rem;
        line-height: 1.7777777778
    }
}
.solution .solution__button1 .c-button, .solution .solution__button2 .c-button {
    justify-content: flex-start;
    width: 100%;
    font-size: 3.7333333333vw
}
@media (min-width:768px) {
    .solution .solution__button1 .c-button, .solution .solution__button2 .c-button {
        padding-right: 0;
        width: 273px;
        font-size: .875rem
    }
}
.solution .solution__button1 {
    margin-top: 9.6vw
}
@media (min-width:768px) {
    .solution .solution__button1 {
        margin-top: 40px
    }
}
.solution .solution__button2 {
    margin-top: 5.3333333333vw
}
.solution .solution__button2 .c-button {
    border-color: #fff;
    background-color: transparent
}
@media (min-width:768px) {
    .solution .solution__button2 {
        margin-top: 20px
    }
}

/*--------------------
検索窓
--------------------*/
.c-form-search {
    display: flex;
    align-items: center;
    position: relative;
    width: 100%
}
@media (min-width:768px) {
    .c-form-search {
        max-width: 844px
    }
}
.c-form-search .c-form-search__input {
    padding: 4vw 14.6666666667vw 4vw 5.3333333333vw;
    border: 2px solid #ddd;
    border-radius: 35px;
    width: 100%;
    font-size: 3.7333333333vw;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none
}
@media (min-width:768px) {
    .c-form-search .c-form-search__input {
        padding: 15px 70px 15px 20px;
        letter-spacing: .0625rem;
        font-size: 1rem
    }
}
.c-form-search .c-form-search__input::-webkit-input-placeholder {
    opacity: .8
}
.c-form-search .c-form-search__input::-moz-placeholder {
    opacity: .8
}
.c-form-search .c-form-search__input::placeholder {
    opacity: .8
}
.c-form-search .c-form-search__button {
    position: absolute;
    top: 50%;
    right: 4vw;
    width: 9.6vw;
    height: 9.6vw;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    background-image: url(/r22res/image/common/icon_search.svg);
    background-repeat: no-repeat;
    background-position: 50%;
    background-size: 8vw 8vw
}
@media (min-width:768px) {
    .c-form-search .c-form-search__button {
        right: 20px;
        width: 48px;
        height: 48px;
        background-size: 34px 34px
    }
}

/*メガメニュー用
/cres/common/css/style_css から移植
*/
.hs-ml20 {
    margin-left: 1.25rem !important;
}

/* ユーティリティ */
.u-noevents {
    pointer-events: none;
}

