@charset "utf-8";

/* opilsol-N1 */
.opilsol-N1 {
    width: 100%;
    min-height: 6rem;
    background: rgba(0, 0, 0, 0.7);
    will-change: background, height;
    transition: background 0.3s, min-height 0.3s;
    position: fixed !important;
    top: 0;
    left: 0;
    z-index: 99
}

.opilsol-N1::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    opacity: 0;
    visibility: hidden;
    width: 100%;
    height: 100%;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.12) 60%, rgba(0, 0, 0, 0) 100%);
    transition: opacity 0.3s, visibility 0.3s
}

.opilsol-N1.top-menu-active {
    padding-top: 6.7rem
}

.opilsol-N1.header-top-active {
    background: transparent
}

.opilsol-N1.header-top-active::after {
    opacity: 1;
    visibility: visible
}

.opilsol-N1.header-top-active:hover {
    background: rgba(0, 0, 0, 0.7)
}

.opilsol-N1.header-top-active:hover::after {
    opacity: 0;
    visibility: hidden
}

.opilsol-N1.header-top-active:hover .header-title img,
.opilsol-N1.header-top-active:hover .header-utils img {
    filter: invert(0)
}

.opilsol-N1.gnb-active {
    min-height: 28rem
}

.opilsol-N1.top-menu-active.gnb-active {
    min-height: calc(28rem + 6.6rem)
}

.opilsol-N1.block-active {
    background: #000 !important
}

.opilsol-N1 .header-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 8rem;
    box-sizing: border-box
}

.opilsol-N1.top-menu-active .header-container {
    padding-top: 6.7rem
}

.opilsol-N1 .header-top {
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background: #111
}

.opilsol-N1 .user-menu {
    width: 100%;
    max-width: 1440px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: 0 8rem;
    margin: 0 auto
}

.opilsol-N1 .user-menu li {
    position: relative
}

.opilsol-N1 .user-menu li:not(:first-child)::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    width: 1px;
    height: 1.2rem;
    background: #767676
}

.opilsol-N1 .user-menu li a {
    padding: 2rem 1.2rem;
    color: #e5e5e5;
    text-align: center;
    white-space: nowrap
}

.opilsol-N1 .user-menu li:last-child a {
    padding: 2rem 0 2rem 1.2rem
}

.opilsol-N1 .header-left {
    display: flex;
    align-items: center;
    gap: 3rem
}

.opilsol-N1 .header-title {
    margin-bottom: 0
}

.opilsol-N1 .header-title a {
    height: 3.3rem
}

.opilsol-N1 .header-title img {
    height: 100%;
    object-fit: contain;
    vertical-align: top
}

.opilsol-N1 .header-gnb {
    position: relative
}

.opilsol-N1 .header-gnblist {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100%
}

.opilsol-N1 .header-gnbitem {
    position: relative
}

.opilsol-N1 .header-gnblink {
    height: 100%;
    padding: 2.8rem 3rem;
    color: #fff;
    text-align: center;
    white-space: nowrap;
    font-weight: var(--fw-medium)
}

.opilsol-N1 .header-gnblink span {
    position: relative
}

.opilsol-N1 .header-gnblink span::after {
    content: "";
    height: 0.2rem;
    width: 100%;
    transition: 0.3s;
    transform: scaleX(0);
    position: absolute;
    bottom: -100%;
    left: 0
}

.opilsol-N1 .header-sublist {
    width: 100%;
    position: absolute;
    top: 100%;
    opacity: 0;
    overflow: hidden;
    pointer-events: none;
    z-index: 1
}

.opilsol-N1.gnb-active .header-sublist {
    opacity: 1;
    overflow: hidden;
    pointer-events: auto;
    transition: opacity 0.3s 0.1s
}

.opilsol-N1 .header-gnbitem:hover .header-sublist {
    opacity: 1;
    overflow: hidden;
    pointer-events: auto;
    transition: opacity 0.3s 0.1s
}

.opilsol-N1 .header-gnbitem:hover .header-gnblink span::after {
    background: #fff;
    transform: scaleX(1)
}

.opilsol-N1 .header-subitem {
    width: 100%;
    text-align: center;
    overflow: hidden
}

.opilsol-N1 .header-subitem:hover {
    color: #fff
}

.opilsol-N1 .header-sublink {
    width: 100%;
    padding: 1rem;
    color: rgba(255, 255, 255, 0.7);
    transition: color 0.2s, background 0.2s;
    will-change: color, background
}

.opilsol-N1 .header-sublink:hover {
    color: #fff
}

.opilsol-N1 .header-right {
    display: flex;
    align-items: center
}

.opilsol-N1 .header-right .header-gnb {
    margin-right: 1.8rem
}

.opilsol-N1 .header-lang {
    position: relative
}

.opilsol-N1 .header-langbtn {
    position: relative;
    border: none;
    background: none
}

.opilsol-N1 .header-langlist {
    position: absolute;
    top: 100%;
    left: -50%;
    z-index: 200;
    background: #111111
}

.opilsol-N1 .header-langitem {
    max-height: 0;
    transition: all 0.5s;
    overflow: hidden
}

.opilsol-N1 .header-langitem a {
    padding: 0.6rem 1.6rem;
    color: var(--white);
    opacity: 0.7
}

.opilsol-N1 .header-langitem a:hover {
    opacity: 1
}

.opilsol-N1 .header-lang:hover .header-langbtn::after {
    transform: translateY(-50%) rotate(180deg)
}

.opilsol-N1 .header-lang:hover .header-langitem {
    max-height: 6.8rem
}

.opilsol-N1 .header-utils>ul {
    display: flex;
    align-items: center
}

.opilsol-N1 .header-utils>ul>li {
    margin-left: 1.2rem
}

.opilsol-N1 .header-utils>ul>li>img {
    width: auto;
    height: 100%;
    object-fit: cover;
    vertical-align: top
}

.opilsol-N1 .header-right button {
    max-width: 3.2rem;
    background: none;
    border: none
}

.opilsol-N1 .header-right button img {
    width: auto;
    max-height: 100%;
    object-fit: cover;
    vertical-align: top
}

.opilsol-N1 .header-utils .member a {
    width: 3.2rem;
    height: 3.2rem;
    font-size: 0;
    display: block
}

.opilsol-N1 .header-utils .member img {
    max-width: 100%;
    max-height: 100%;
    object-fit: cover;
    vertical-align: top
}

.opilsol-N1 .header-utils .btn-allmenu {
    display: flex;
    flex-direction: column;
    gap: 0.6rem
}

.opilsol-N1 .header-utils .btn-allmenu:hover .ico-hamburger:nth-child(2) {
    width: 2.4rem
}

.opilsol-N1 .header-utils .btn-allmenu .ico-hamburger,
.opilsol-N1 .btn-momenu .ico-hamburger {
    width: 2.4rem;
    height: 0.2rem;
    background: #fff;
    border-radius: 1rem;
    transition: width 0.3s, transform 0.3s, opacity 0.3s;
    will-change: width, transform, opacity
}

.opilsol-N1 .header-utils .btn-allmenu .ico-hamburger:nth-child(even),
.opilsol-N1 .btn-momenu .ico-hamburger:nth-child(2) {
    width: 1.4rem
}

.opilsol-N1 .btn-momenu {
    display: none
}

.opilsol-N1 .btn-moclose {
    display: none
}

.opilsol-N1 .header-fullmenu {
    position: fixed;
    z-index: 99999;
    padding: 0 2.4rem;
    background: #000;
    transition: 0.3s;
    opacity: 0;
    visibility: hidden;
    overflow: hidden
}

.opilsol-N1 .header-fullmenu.fullmenu-right {
    width: 0;
    height: 100%;
    top: 0;
    right: 0
}

.opilsol-N1 .header-fullmenu.fullmenu-left {
    width: 0;
    height: 100%;
    top: 0;
    left: 0
}

.opilsol-N1 .header-fullmenu.fullmenu-top {
    top: 0;
    left: 0;
    width: 100%;
    height: 0
}

.opilsol-N1 .header-fullmenu.fullmenu-bottom {
    bottom: 0;
    left: 0;
    width: 100%;
    height: 0
}

.opilsol-N1 .header-fullmenu.fullmenu-active {
    width: 100%;
    height: 100vh;
    opacity: 1;
    visibility: visible
}

.opilsol-N1 .fullmenu-wrapper {
    position: relative;
    top: 50%;
    transform: translateY(-50%);
    width: 100%;
    max-width: 128rem;
    margin: 0 auto
}

.opilsol-N1 .fullmenu-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10rem
}

.opilsol-N1 .fullmenu-title {
    margin-bottom: 0
}

.opilsol-N1 .fullmenu-title a {
    height: 4.3rem
}

.opilsol-N1 .fullmenu-title img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.opilsol-N1 .fullmenu-gnblist {
    display: flex;
    justify-content: center
}

.opilsol-N1 .fullmenu-gnbitem {
    width: 20%
}

.opilsol-N1 .fullmenu-gnbitem+.fullmenu-gnbitem {
    margin-left: 4rem
}

.opilsol-N1 .fullmenu-gnblink {
    position: relative;
    width: 100%;
    padding-bottom: 4rem;
    color: var(--white);
    border-bottom: 1px solid rgba(255, 255, 255, 0.2)
}

.opilsol-N1 .fullmenu-gnblink::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    display: block;
    width: 0;
    height: 0.1rem;
    background: #ffffff;
    transition: 0.2s
}

.opilsol-N1 .fullmenu-gnblink.on::after {
    width: 18rem
}

.opilsol-N1 .fullmenu-sublist {
    padding-top: 4rem
}

.opilsol-N1 .fullmenu-subitem+.fullmenu-subitem {
    padding-top: 0.8rem
}

.opilsol-N1 .fullmenu-sublink {
    color: #a2a2a2;
    position: relative;
    padding-bottom: 5px;
    transition: 0.3s
}

.opilsol-N1 .fullmenu-sublink::before {
    content: "";
    width: 0;
    height: 1px;
    background-color: var(--white);
    position: absolute;
    top: 100%;
    right: 0;
    transition: width 0.7s cubic-bezier(0.22, 0.61, 0.36, 1)
}

.opilsol-N1 .fullmenu-sublink:hover {
    color: var(--white)
}

.opilsol-N1 .fullmenu-sublink:hover::before {
    width: 100%;
    right: auto;
    left: 0
}

.opilsol-N1 .fullmenu-close {
    position: fixed;
    right: 8rem;
    top: 2.4rem;
    width: 3.2rem;
    height: 3.2rem;
    padding: 0.5rem;
    background: transparent;
    border: none
}

.opilsol-N1 .fullmenu-close img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

@media (max-width: 992px) {
    .opilsol-N1 {
        padding-top: 0;
        padding-bottom: 0
    }

    .opilsol-N1.header-top-active:hover {
        background: transparent
    }

    .opilsol-N1.top-menu-active .header-container {
        padding-top: 0
    }

    .opilsol-N1.gnb-active,
    .opilsol-N1.top-menu-active.gnb-active {
        min-height: auto
    }

    .opilsol-N1.header-top-active:hover::after {
        opacity: 1;
        visibility: visible
    }

    .opilsol-N1 .header-gnb {
        width: 100%;
        height: 0;
        position: absolute;
        top: 100%;
        left: 0;
        background: #111;
        overflow: hidden;
        padding: 0 2.4rem;
        transition: height 0.3s;
        z-index: 9
    }

    .opilsol-N1.block-active .header-gnb {
        height: calc(100vh - 6rem);
        padding-bottom: 19rem;
        overflow-y: auto
    }

    .opilsol-N1 .header-container {
        min-height: 6rem
    }

    .opilsol-N1 .header-top {
        border: none;
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.3s 0.1s, visibilty 0.3s 0.1s;
        will-change: opacity, visibility;
        z-index: 10
    }

    .opilsol-N1.block-active .header-top {
        top: 100%;
        opacity: 1;
        visibility: visible
    }

    .opilsol-N1 .user-menu {
        padding: 0 2.2rem;
        justify-content: flex-start
    }

    .opilsol-N1 .user-menu li a,
    .opilsol-N1 .user-menu li:last-child a {
        padding: 2.4rem 1.2rem
    }

    .opilsol-N1 .user-menu li:first-child a {
        padding-left: 0
    }

    .opilsol-N1 .header-title a {
        width: 8.2rem;
        height: 2.6rem
    }

    .opilsol-N1 .header-center {
        width: 100%;
        height: 0;
        top: 100%;
        left: 0;
        transform: none
    }

    .opilsol-N1 .header-gnblist {
        display: block;
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.3s 0.1s
    }

    .opilsol-N1 .header-gnblink {
        display: flex;
        align-items: flex-end;
        width: 100%;
        padding: 1.8rem 0;
        text-align: left;
        transition: border 0.3s;
        will-change: border;
        border-bottom: 1px solid #707070
    }

    .opilsol-N1.top-menu-active .header-gnbitem:first-child .header-gnblink {
        padding-top: 6.8rem
    }

    .opilsol-N1 .header-gnbitem:hover .header-gnblink span {
        border: none
    }

    .opilsol-N1 .header-gnbitem:hover .header-gnblink span::after {
        content: none
    }

    .opilsol-N1 .header-sublist {
        display: none;
        height: auto;
        position: relative;
        opacity: 1;
        padding: 1.8rem 0 2rem 0
    }

    .opilsol-N1 .header-gnbitem.item-active .header-gnblink {
        border-bottom: 1px solid #fff
    }

    .opilsol-N1 .header-subitem {
        width: 100%;
        text-align: left
    }

    .opilsol-N1 .header-subitem+.header-subitem {
        padding-top: 0.8rem
    }

    .opilsol-N1 .header-sublink {
        padding: 0;
        color: var(--text-color3)
    }

    .opilsol-N1 .header-sublink:active {
        color: #111111
    }

    .opilsol-N1 .header-right button,
    .opilsol-N1 .header-utils .member a {
        width: 2.8rem;
        height: 2.8rem
    }

    .opilsol-N1 .header-lang:hover .header-langitem {
        max-height: 0
    }

    .opilsol-N1 .header-lang.lang-active .header-langitem {
        max-height: 6.8rem
    }

    .opilsol-N1 .header-lang:hover .header-langbtn::after {
        transform: translateY(-50%) rotate(0)
    }

    .opilsol-N1 .header-lang.lang-active .header-langbtn::after {
        transform: translateY(-50%) rotate(180deg)
    }

    .opilsol-N1 .header-utils>ul>li {
        margin-left: 0.6rem
    }

    .opilsol-N1 .header-utils .allmenu {
        display: none
    }

    .opilsol-N1 .btn-momenu {
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 0.6rem;
        margin-left: 0.6rem
    }

    .opilsol-N1 .btn-momenu .ico-hamburger {
        width: 2rem
    }

    .opilsol-N1 .btn-momenu .ico-hamburger:nth-child(2) {
        width: 1.2rem
    }

    .opilsol-N1.block-active .header-center {
        pointer-events: auto
    }

    .opilsol-N1.block-active .header-title {
        height: 6rem;
        display: flex;
        align-items: center
    }

    .opilsol-N1.block-active .header-gnblist {
        opacity: 1;
        visibility: visible
    }

    .opilsol-N1 .header-gnbitem:has(.header-subitem) .header-gnblink::after {
        content: "";
        display: flex;
        width: 1.6rem;
        height: 1.6rem;
        background-image: url(../icons/ico_downarrow_white.svg);
        background-repeat: no-repeat;
        background-position: center right;
        background-size: cover;
        transition: transform 0.3s;
        will-change: transform
    }

    .opilsol-N1.block-active .header-gnblink {
        align-items: center;
        justify-content: space-between
    }

    .opilsol-N1.block-active .header-gnbitem.item-active .header-gnblink::after {
        content: "";
        transform: rotate(180deg)
    }

    .opilsol-N1.block-active .btn-momenu .ico-hamburger:nth-child(1) {
        transform: translateY(0.8rem) rotate(45deg)
    }

    .opilsol-N1.block-active .btn-momenu .ico-hamburger:nth-child(3) {
        transform: translateY(-0.8rem) rotate(-45deg)
    }

    .opilsol-N1.block-active .btn-momenu .ico-hamburger:nth-child(2) {
        opacity: 0;
        visibility: hidden
    }

    .opilsol-N1 .header-fullmenu {
        display: none
    }
}
/* opilsol-N4 */
.opilsol-N4 {
    overflow: hidden;
    position: relative
}

.opilsol-N4 .contents-container {
    display: flex;
    justify-content: center;
    height: 80rem
}

.opilsol-N4 .slide-area {
    width: 100vw;
    height: 100%
}

.opilsol-N4 .swiper {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100vw;
    height: 100%
}

.opilsol-N4 .swiper-slide {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0 8rem;
    height: 100%
}

.opilsol-N4 picture {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%
}

.opilsol-N4 .swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.opilsol-N4 .visual-text-box {
    position: relative;
    width: 100%
}

.opilsol-N4 .container-lg .visual-text-box {
    max-width: 144rem
}

.opilsol-N4 .container-md .visual-text-box {
    max-width: 128rem
}

.opilsol-N4 .container-sm .visual-text-box {
    max-width: 102.4rem
}

.opilsol-N4 .visual-text-box strong {
    color: #fff
}

.opilsol-N4 .visual-text-box p {
    margin-top: 2rem;
    font-weight: var(--fw-regular);
    color: rgba(255, 255, 255, 0.8)
}

.opilsol-N4 .pagination_fraction {
    position: absolute;
    z-index: 1;
    transform: translateY(-13rem);
    width: calc(100% - 16rem)
}

.opilsol-N4 .container-lg .pagination_fraction {
    max-width: 144rem
}

.opilsol-N4 .container-md .pagination_fraction {
    max-width: 128rem
}

.opilsol-N4 .container-sm .pagination_fraction {
    max-width: 102.4rem
}

.opilsol-N4 .wrap {
    display: inline-flex;
    align-items: center;
    gap: 1.2rem;
    color: rgba(255, 255, 255, 0.5);
    font-family: var(--ff-en4)
}

.opilsol-N4 .pagination_fraction .current,
.opilsol-N4 .pagination_fraction .all {
    font-weight: var(--fw-bold)
}

.opilsol-N4 .pagination_fraction .current {
    color: #fff
}

.opilsol-N4 .control-bottom {
    display: flex;
    align-items: center;
    gap: 1.2rem;
    position: absolute;
    z-index: 1;
    transform: translateY(16.5rem);
    padding-left: 1rem;
    width: calc(100% - 16rem)
}

.opilsol-N4 .container-lg .control-bottom {
    max-width: 144rem
}

.opilsol-N4 .container-md .control-bottom {
    max-width: 128rem
}

.opilsol-N4 .container-sm .control-bottom {
    max-width: 102.4rem
}

.opilsol-N4 .swiper-pagination {
    gap: 1.3rem;
    position: static
}

.opilsol-N4 .swiper-pagination.swiper-pagination-bullets.swiper-pagination-horizontal {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    width: auto
}

.opilsol-N4 .swiper-pagination-bullet {
    opacity: 1;
    position: relative;
    margin: 0;
    width: 0.6rem;
    height: 0.6rem;
    background-color: var(--white);
    border-radius: 0.3rem
}

.opilsol-N4 .swiper-pagination-bullet:first-child {
    margin-left: 0
}

.opilsol-N4 .swiper-pagination-bullet::after {
    content: "";
    position: absolute;
    left: -0.9rem;
    top: -0.9rem;
    transform: scale(0);
    width: 2.4rem;
    height: 2.4rem;
    border: 1px solid var(--white);
    border-radius: 1.2rem
}

.opilsol-N4 .swiper-pagination-bullet-active::after {
    transform: scale(1);
    transition: transform 0.2s
}

.opilsol-N4 .swiper-button-play {
    display: none
}

.opilsol-N4 .swiper-button-play,
.opilsol-N4 .swiper-button-pause {
    flex-shrink: 0;
    width: 2rem;
    height: 2rem;
    opacity: 0.5;
    cursor: pointer;
    transition: opacity .3s
}

.opilsol-N4 .swiper-button-play img,
.opilsol-N4 .swiper-button-pause img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    vertical-align: top
}

.opilsol-N4 .swiper-button-play:hover,
.opilsol-N4 .swiper-button-pause:hover {
    opacity: 1
}

@media (max-width: 1200px) {
    .opilsol-N4 .slide-area {
        width: 100%
    }

    .opilsol-N4 .swiper {
        margin-left: -4rem;
        width: calc(100% + 8rem)
    }

    .opilsol-N4 .swiper-slide {
        padding: 0 4rem
    }

    .opilsol-N4 .pagination_fraction {
        width: calc(100% - 8rem)
    }

    .opilsol-N4 .control-bottom {
        width: calc(100% - 8rem)
    }
}

@media (max-width: 992px) {
    .opilsol-N4 .contents-container {
        height: 70rem
    }

    .opilsol-N4 .swiper {
        margin-left: -1.6rem;
        width: calc(100% + 3.2rem)
    }

    .opilsol-N4 .swiper-slide {
        padding: 0 1.6rem
    }

    .opilsol-N4 .visual-text-box p {
        margin-top: 1rem
    }

    .opilsol-N4 .pagination_fraction {
        transform: translateY(-10rem);
        width: calc(100% - 3.2rem)
    }

    .opilsol-N4 .control-bottom {
        transform: translateY(12rem);
        width: calc(100% - 3.2rem)
    }
}

@media (max-width: 768px) {
    .opilsol-N4 .pagination_fraction {
        transform: translateY(-14rem)
    }

    .opilsol-N4 .control-bottom {
        transform: translateY(16rem)
    }
}

@media (max-width: 375px) {
    .opilsol-N4 .pagination_fraction {
        transform: translateY(-20rem)
    }

    .opilsol-N4 .control-bottom {
        transform: translateY(22rem)
    }
}
/* opilsol-N5 */
.opilsol-N5 {
    overflow: hidden;
    position: relative;
    padding-top: 10rem;
    padding-bottom: 6rem
}

.opilsol-N5::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 46.4rem;
    background-color: #fafafa
}

.opilsol-N5 .contents-inner {
    width: 100%
}

.opilsol-N5 .textset {
    position: relative;
    margin-bottom: 6rem
}

.opilsol-N5 .textset .textset-tit+.textset-desc {
    margin-top: 1.6rem;
    color: #505050;
    font-weight: var(--fw-medium)
}

.opilsol-N5 .control-wrap {
    display: flex;
    align-items: center;
    gap: 1.2rem;
    position: absolute;
    right: 0;
    bottom: 0
}

.opilsol-N5 .control-wrap [class*="btn-"] {
    background: none
}

.opilsol-N5 [class*="btn-"] img {
    width: 3.2rem;
    height: 3.2rem;
    transition: filter 0.3s;
    filter: invert(0.5)
}

.opilsol-N5 .control-wrap [class*="btn-"]:hover img {
    filter: invert(0)
}

.opilsol-N5 .slide-area {
    width: 100vw;
    min-height: 54rem
}

.opilsol-N5 .swiper {
    padding-bottom: 1rem
}

.opilsol-N5 .swiper-slide {
    width: 100%;
    max-width: 40rem;
    min-height: 49.7rem
}

.opilsol-N5 .item {
    overflow: hidden;
    width: 100%;
    height: 44.3rem;
    background: #fff;
    transition: box-shadow 0.3s, height 0.3s
}

.opilsol-N5 .item:hover {
    height: auto;
    box-shadow: 0 0.2rem 1rem rgba(0, 0, 0, 0.1)
}

.opilsol-N5 .thumb {
    width: 100%
}

.opilsol-N5 .thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.opilsol-N5 .desc {
    padding: 3.2rem
}

.opilsol-N5 .desc strong {
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical
}

.opilsol-N5 .desc p {
    overflow: hidden;
    display: -webkit-box;
    margin: 2rem 0 2.4rem;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    color: #767676
}

.opilsol-N5 .btnset {
    opacity: 0;
    visibility: hidden
}

.opilsol-N5 .btnset-link {
    padding: 0;
    color: var(--primary);
    transition: none
}

.opilsol-N5 .item:hover .btnset {
    opacity: 1;
    visibility: visible;
    transition: opacity 0.3s, visibility 0.3s
}

@media (max-width: 996px) {
    .opilsol-N5 {
        padding-top: 6rem;
        padding-bottom: 4rem
    }

    .opilsol-N5::after {
        bottom: 0;
        height: 33.9rem
    }

    .opilsol-N5 .textset {
        margin-bottom: 4rem
    }

    .opilsol-N5 .textset .textset-tit+.textset-desc {
        margin-top: 0.8rem
    }

    .opilsol-N5 .control-wrap {
        display: none
    }

    .opilsol-N5 .slide-area {
        min-height: auto
    }

    .opilsol-N5 .swiper-slide {
        max-width: 29.8rem;
        min-height: auto
    }

    .opilsol-N5 .item {
        height: 100%;
        box-shadow: 0 0.2rem 1rem rgba(0, 0, 0, 0.1)
    }

    .opilsol-N5 .thumb {
        height: 20rem
    }

    .opilsol-N5 .desc {
        padding: 2.4rem
    }

    .opilsol-N5 .desc p {
        margin: 1.2rem 0 2rem
    }

    .opilsol-N5 .btnset,
    .opilsol-N5 .swiper-slide-next .btnset {
        opacity: 1;
        visibility: visible
    }
}
/* opilsol-N6 */
.opilsol-N6 {
    overflow: hidden;
    position: relative;
    padding-top: 10rem;
    padding-bottom: 10rem
}

.opilsol-N6 .contents-inner {
    width: 100%
}

.opilsol-N6 .textset.con-tit {
    margin-bottom: 8rem
}

.opilsol-N6 .textset.con-tit .textset-tit+.textset-desc {
    margin-top: 1.6rem;
    color: #505050
}

.opilsol-N6 .content-group {
    position: relative;
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    width: 100%;
    min-height: 56rem
}

.opilsol-N6 .content-group+.content-group {
    margin-top: 10rem
}

.opilsol-N6 .content-group.odd {
    gap: 10rem
}

.opilsol-N6 .content-group.even {
    gap: 14rem
}

.opilsol-N6 .content-group .img-box {
    position: absolute;
    margin: 0;
    height: 56rem
}

.opilsol-N6 .content-group.odd .img-box {
    left: -50%;
    width: calc(100% - 5rem)
}

.opilsol-N6 .content-group.even .img-box {
    right: -50%;
    width: calc(100% - 7rem)
}

.opilsol-N6 .content-group .img-box img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.opilsol-N6 .content-group.odd .text-link-box {
    grid-column: 2/3
}

.opilsol-N6 .text-link-box .textset-tit {
    color: #242424
}

.opilsol-N6 .text-link-box .textset-tit+.textset-desc {
    margin: 4rem 0;
    color: #767676
}

.opilsol-N6 .textset .btnset {
    margin-top: 0
}

@media (max-width: 996px) {
    .opilsol-N6 {
        padding-top: 6rem;
        padding-bottom: 6rem
    }

    .opilsol-N6 .textset.con-tit {
        margin-bottom: 4rem
    }

    .opilsol-N6 .textset.con-tit .textset-tit+.textset-desc {
        margin-top: 0.8rem
    }

    .opilsol-N6 .contents-inner .content-group {
        grid-template-columns: 1fr;
        min-height: auto;
        gap: 0
    }

    .opilsol-N6 .content-group+.content-group {
        margin-top: 4rem
    }

    .opilsol-N6 .contents-inner .content-group .img-box {
        position: static;
        width: calc(100% + 1.6rem);
        height: 28rem
    }

    .opilsol-N6 .content-group.odd .img-box {
        margin-left: -1.6rem
    }

    .opilsol-N6 .content-group.even .img-box {
        margin-right: -1.6rem
    }

    .opilsol-N6 .content-group .text-link-box {
        margin-top: 4rem
    }

    .opilsol-N6 .content-group.odd .text-link-box {
        grid-column: initial
    }

    .opilsol-N6 .text-link-box .textset-tit+.textset-desc {
        margin: 2rem 0
    }
}
/* opilsol-N7 */
.opilsol-N7 {
    overflow: hidden;
    position: relative;
    padding-top: 15.4rem;
    padding-bottom: 15.4rem;
    background: url(../images/sub-visual.jpg) no-repeat center/cover
}

.opilsol-N7 .contents-inner {
    width: 100%
}

.opilsol-N7 .contents-inner h2 {
    color: #fff
}

.opilsol-N7 .contents-inner p {
    margin-top: 2rem;
    color: rgba(255, 255, 255, 0.7);
    font-weight: var(--fw-regular)
}

@media (max-width: 992px) {
    .opilsol-N7 {
        padding-top: 9.5rem;
        padding-bottom: 9.5rem
    }

    .opilsol-N7 .contents-inner p {
        margin-top: 0.8rem
    }
}
/* opilsol-N8 */
.opilsol-N8 {
    overflow: hidden;
    position: relative;
    padding-top: 10rem;
    padding-bottom: 10rem
}

.board_blank {
    display: flex;
    justify-content: center;
    width: 100%;
    height: 300px;
    background: #ddd;
    flex-direction: column;
    font-size: 30px;
    line-height: 1.5;
    padding-left: 20px
}

.opilsol-N8 .contents-inner {
    display: grid;
    grid-template-columns: 35rem 1fr;
    gap: 10.8rem;
    align-items: center;
    width: 100%
}

.opilsol-N8 .textset .textset-desc {
    color: #505050;
    margin-top: 1.6rem
}

.opilsol-N8 .control-wrap {
    display: flex;
    align-items: center;
    gap: 1.2rem;
    position: relative;
    margin: 4rem 0
}

.opilsol-N8 .control-wrap [class*="btn-"] {
    background: none
}

.opilsol-N8 .control-wrap [class*="btn-"] img {
    width: 3.2rem;
    height: 3.2rem;
    transition: filter 0.3s;
    filter: invert(0.5)
}

.opilsol-N8 [class*="btn-"]:hover img {
    filter: invert(0)
}

.opilsol-N8 .right {
    height: 100%
}

.opilsol-N8 .swiper {
    width: 100vw;
    height: 100%;
    padding-bottom: 2rem
}

.opilsol-N8 .swiper-slide {
    max-width: 40rem;
    min-height: 46rem;
    box-shadow: 0 1rem 1rem rgba(0, 0, 0, 0.05);
    background: #fff
}

.opilsol-N8 .swiper a {
    display: block;
    width: 100%;
    height: 100%
}

.opilsol-N8 .cardset-figure {
    height: 28rem
}

.opilsol-N8 .right .swiper .cardset.cardset-border {
    border: none;
    height: 100%
}

.opilsol-N8 .right .swiper .cardset .cardset-body {
    padding: 3.2rem
}

.opilsol-N8 .right .swiper .cardset .cardset-tit {
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    margin-bottom: 2.4rem;
    font-weight: var(--fw-bold)
}

.opilsol-N8 .cardset-txt {
    color: #bbbbbb
}

.opilsol-N8 .mo-btn {
    display: none
}

@media (max-width: 996px) {
    .opilsol-N8 {
        padding-top: 6rem;
        padding-bottom: 6rem
    }

    .opilsol-N8 .contents-inner {
        display: block
    }

    .opilsol-N8 .left .textset .textset-desc {
        margin: 0.8rem 0 2rem
    }

    .opilsol-N8 .control-wrap {
        gap: 1.5rem;
        margin: 0
    }

    .opilsol-N8 .control-wrap [class*="btn-"] img {
        width: 2.8rem;
        height: 2.8rem
    }

    .opilsol-N8 .btnset.btnset-icon {
        gap: 2rem;
        padding-right: 1.6rem
    }

    .opilsol-N8 .left {
        margin-bottom: 4rem
    }

    .opilsol-N8 .swiper {
        width: 100%;
        overflow: visible;
        padding-bottom: 0
    }

    .opilsol-N8 .swiper-slide {
        max-width: 29.8rem;
        min-height: 34.6rem
    }

    .opilsol-N8 .cardset-figure {
        height: 20rem
    }

    .opilsol-N8 .right .swiper .cardset .cardset-body {
        padding: 2.4rem
    }

    .opilsol-N8 .pc-btn {
        display: none
    }

    .opilsol-N8 .mo-btn {
        display: inline-flex
    }

    .opilsol-N8 .btn-wrap {
        text-align: center
    }

    .opilsol-N8 .btnset {
        margin: 4rem 0 0;
        text-align: center
    }
}
/* opilsol-N3 */
.opilsol-N3 {
    background: #111;
    padding-top: 2.4rem;
    padding-bottom: 2.4rem
}

.opilsol-N3 .footer-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 2.4rem
}

.opilsol-N3 .footer-bottom {
    padding-top: 2.4rem;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    display: flex;
    justify-content: space-between;
    align-items: center
}

.opilsol-N3 .footer-logo {
    margin-bottom: 0
}

.opilsol-N3 .footer-logo img {
    height: 3.3rem;
    object-fit: contain
}

.opilsol-N3 .footer-menulist {
    display: flex;
    align-items: center;
    flex-wrap: wrap
}

.opilsol-N3 .footer-menulink a {
    color: #fff;
    padding-right: 1.2rem;
    font-size: var(--fs-p3)
}

.opilsol-N3 .footer-menulink+.footer-menulink a {
    padding-left: 1.2rem
}

.opilsol-N3 .footer-menulink {
    position: relative;
    display: flex;
    align-items: center
}

.opilsol-N3 .footer-menulink+.footer-menulink::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    width: 1px;
    height: 1.4rem;
    background: rgba(255, 255, 255, 0.1)
}

.opilsol-N3 .footer-snslist {
    display: flex;
    align-items: center
}

.opilsol-N3 .footer-snsitem+.footer-snsitem {
    margin-left: 0.8rem
}

.opilsol-N3 .footer-snslink {
    width: 3.6rem;
    height: 3.6rem;
    padding: 0.6rem;
    display: flex;
    align-items: center
}

.opilsol-N3 .footer-snslink img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.opilsol-N3 .selectset {
    width: auto
}

.opilsol-N3 .footer-txtgroup {
    margin-top: 2rem
}

.opilsol-N3 .footer-txtgroup p {
    font-size: 12px;
    color: rgba(255, 255, 255, 0.6)
}

.opilsol-N3 .footer-txt {
    display: flex
}

.opilsol-N3 .footer-txt+.footer-txt {
    margin-top: 0.3rem
}

.opilsol-N3 .footer-txt p,
.opilsol-N3 .footer-txt span {
    margin-bottom: 0;
    color: rgba(255, 255, 255, 0.6)
}

.opilsol-N3 .footer-txt p+p {
    margin-left: 0.8rem
}

.opilsol-N3 .footer-txt p span+span {
    margin-left: 0.8rem
}

.opilsol-N3 .selectset .btn {
    display: inline-flex;
    align-items: center
}

.opilsol-N3 .footer-modal {
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9999;
    transition: opacity 0.3s, visibility 0.3s;
    will-change: opacity;
    overflow-y: auto;
    background: rgba(0, 0, 0, 0.3);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2.4rem;
    opacity: 0;
    visibility: hidden
}

.opilsol-N3 .footer-modal.block-active {
    opacity: 1;
    visibility: visible
}

.opilsol-N3 .modal-area {
    width: 100%;
    max-width: 92rem;
    background: var(--white);
    border-radius: 0.6rem
}

.opilsol-N3 .info-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 2.4rem;
    border-bottom: 1px solid #e5e5e5
}

.opilsol-N3 .modal-close {
    cursor: pointer
}

.opilsol-N3 .info-area {
    overflow-y: auto
}

.opilsol-N3 .modal-email .info-area {
    max-height: 17rem
}

.opilsol-N3 .modal-privacy .info-area {
    max-height: 70.3rem
}

.opilsol-N3 .info-group+.info-group {
    margin-top: 2.4rem
}

.opilsol-N3 .info-group strong {
    padding-bottom: 1.2rem;
    display: block
}

.opilsol-N3 .info-desc {
    max-height: 20.7rem;
    padding: 1.6rem;
    background: #f8f8fa;
    border-radius: 1.6rem;
    overflow-y: auto;
    scrollbar-width: none
}

.opilsol-N3 .info-desc p.fw-medium {
    font-weight: var(--fw-medium)
}

.opilsol-N3 .info-desc .mtb {
    margin: 2.4rem 0
}

.opilsol-N3 .info-desc em {
    font-style: normal;
    font-weight: 600;
    margin: 2.4rem 0 1rem;
    position: relative;
    display: flex;
    align-items: center
}

.opilsol-N3 .info-list em::before {
    content: "";
    width: 0.4rem;
    height: 0.4rem;
    background: var(--black);
    border-radius: 50%;
    margin-right: 0.8rem
}

.opilsol-N3 .info-list p {
    padding-left: 1.2rem
}

@media (max-width: 992px) {
    .opilsol-N3 {
        padding-top: 4rem;
        padding-bottom: 4rem
    }

    .opilsol-N3 .footer-top {
        margin-bottom: 0;
        flex-direction: column;
        justify-content: center;
        align-items: flex-start
    }

    .opilsol-N3 .footer-menulist {
        position: relative;
        left: 0;
        transform: translate(0);
        margin-top: 2.4rem
    }

    .opilsol-N3 .footer-menulink a {
        padding: 0 0.8rem
    }

    .opilsol-N3 .footer-snslist {
        margin: 1.2rem 0 2.4rem 0;
        justify-content: center
    }

    .opilsol-N3 .footer-txt {
        flex-direction: column
    }

    .opilsol-N3 .footer-txt p+p {
        margin-left: 0
    }

    .opilsol-N3 .footer-txt+.footer-txt {
        margin-top: 0.6rem
    }

    .opilsol-N3 .selectset {
        display: none
    }
}
/* opilsol-N9 */
.opilsol-N9 {
    overflow: hidden;
    position: relative
}

.opilsol-N9 .contents-container {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 54rem
}

.opilsol-N9 .contents-inner {
    width: 100%;
    text-align: center
}

.opilsol-N9 .contents-container h2 {
    color: #fff
}

.opilsol-N9 .contents-inner p {
    margin-top: 2rem;
    color: rgba(255, 255, 255, 0.7)
}

@media (max-width: 996px) {
    .opilsol-N9 .contents-container {
        height: 50rem;
        justify-content: flex-start
    }

    .opilsol-N9 .contents-inner {
        text-align: left
    }

    .opilsol-N9 .contents-inner p {
        margin-top: 0.8rem
    }
}
/* opilsol-N9 [cym88Fwo18] */
.opilsol-N9[id='cym88Fwo18'] {
    background: url(../images/about-visual.jpg) no-repeat center/cover
}

@media (max-width: 996px) {
    .opilsol-N9[id='cym88Fwo18'] {
        background: url(../images/about-m-visual.jpg) no-repeat center/cover !important
    }
}
/* opilsol-N9 [cym88Fwo18] */
.opilsol-N9[id='cym88Fwo18'] {
    background: url(../images/about-visual.jpg) no-repeat center/cover
}

@media (max-width: 996px) {
    .opilsol-N9[id='cym88Fwo18'] {
        background: url(../images/about-m-visual.jpg) no-repeat center/cover !important
    }
}
/* opilsol-N9 [cym88Fwo18] */
.opilsol-N9[id='cym88Fwo18'] {
    background: url(../images/about-visual.jpg) no-repeat center/cover
}

@media (max-width: 996px) {
    .opilsol-N9[id='cym88Fwo18'] {
        background: url(../images/about-m-visual.jpg) no-repeat center/cover !important
    }
}
/* opilsol-N9 [cym88Fwo18] */
.opilsol-N9[id='cym88Fwo18'] {
    background: url(../images/about-visual.jpg) no-repeat center/cover
}

@media (max-width: 996px) {
    .opilsol-N9[id='cym88Fwo18'] {
        background: url(../images/about-m-visual.jpg) no-repeat center/cover !important
    }
}
/* opilsol-N9 [cym88Fwo18] */
.opilsol-N9[id='cym88Fwo18'] {
    background: url(../images/img_subvisual_02.png) no-repeat center / cover !important
}

@media (max-width: 996px) {
    .opilsol-N9[id='cym88Fwo18'] {
        background: url(../images/img_subvisual_02_m.png) no-repeat center / cover !important
    }
}
/* opilsol-N9 [cym88Fwo18] */
.opilsol-N9[id='cym88Fwo18'] {
    background: url(../images/img_subvisual_03.png) no-repeat center / cover !important
}

@media (max-width: 996px) {
    .opilsol-N9[id='cym88Fwo18'] {
        background: url(../images/img_subvisual_03_m.png) no-repeat center / cover !important
    }
}
/* opilsol-N9 [cym88Fwo18] */
.opilsol-N9[id='cym88Fwo18'] {
    background: url(../images/img_subvisual_04.png) no-repeat center / cover !important
}

@media (max-width: 996px) {
    .opilsol-N9[id='cym88Fwo18'] {
        background: url(../images/img_subvisual_04_m.png) no-repeat center / cover !important
    }
}
/* opilsol-N9 [cym88Fwo18] */
.opilsol-N9[id='cym88Fwo18'] {
    background: url(../images/img_subvisual_04.png) no-repeat center / cover !important
}

@media (max-width: 996px) {
    .opilsol-N9[id='cym88Fwo18'] {
        background: url(../images/img_subvisual_04_m.png) no-repeat center / cover !important
    }
}
/* opilsol-N9 [cym88Fwo18] */
.opilsol-N9[id='cym88Fwo18'] {
    background: url(../images/img_subvisual_05.png) no-repeat center / cover !important
}

@media (max-width: 996px) {
    .opilsol-N9[id='cym88Fwo18'] {
        background: url(../images/img_subvisual_05_m.png) no-repeat center / cover !important
    }
}
/* basic-N55 */
.basic-N55 {
    border-bottom: 1px solid var(--border-color)
}
/* opilsol-N28 */
.opilsol-N28 {
    overflow: hidden;
    position: relative;
    padding-top: 10rem;
    padding-bottom: 6rem
}

.opilsol-N28 .title-area {
    width: 100%;
    text-align: center
}

.opilsol-N28 .title-area h2 {
    color: #999999;
    margin-bottom: 0.8rem
}

@media (max-width: 992px) {
    .opilsol-N28 .title-area h2 {
        margin-bottom: 0.4rem
    }

    .opilsol-N28 {
        padding-top: 6rem;
        padding-bottom: 4rem
    }
}
/* opilsol-N10 */
.opilsol-N10 {
    overflow: hidden;
    position: relative;
    padding-top: 0rem;
    padding-bottom: 5rem
}

.opilsol-N10 .content-group {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8.6rem;
    width: 100%
}

.opilsol-N10 .title-area {
    width: 50%
}

.opilsol-N10 .title-area p {
    margin-top: 4rem;
    color: #767676
}

.opilsol-N10 .thumb-area {
    width: calc(50% + 20.7rem);
    height: 70rem
}

.opilsol-N10 .thumb-area img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

@media (max-width: 992px) {
    .opilsol-N10 {
        padding-top: 0rem;
        padding-bottom: 3rem
    }

    .opilsol-N10 .content-group {
        flex-direction: column-reverse;
        gap: 4rem
    }

    .opilsol-N10 .title-area,
    .opilsol-N10 .thumb-area {
        width: 100%
    }

    .opilsol-N10 .title-area p {
        margin-top: 2rem
    }

    .opilsol-N10 .thumb-area {
        height: 32rem
    }
}
/* opilsol-N11 */
.opilsol-N11 {
    overflow: hidden;
    position: relative;
    padding-top: 5rem;
    padding-bottom: 5rem
}

.opilsol-N11 .content-group {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10rem;
    width: 100%
}

.opilsol-N11 .thumb-area {
    width: calc(50% + 23rem);
    height: 70rem
}

.opilsol-N11 .thumb-area img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.opilsol-N11 .title-area {
    width: 50%
}

.opilsol-N11 .title-area p {
    margin-top: 4rem;
    color: #767676
}

@media (max-width: 992px) {
    .opilsol-N11 {
        padding-top: 3rem;
        padding-bottom: 3rem
    }

    .opilsol-N11 .content-group {
        flex-direction: column;
        gap: 4rem
    }

    .opilsol-N11 .title-area,
    .opilsol-N11 .thumb-area {
        width: 100%
    }

    .opilsol-N11 .title-area p {
        margin-top: 2rem
    }

    .opilsol-N11 .thumb-area {
        height: 32rem
    }
}
/* opilsol-N10-b */
.opilsol-N10-b {
    overflow: hidden;
    position: relative;
    padding-top: 5rem;
    padding-bottom: 10rem
}

.opilsol-N10-b .content-group {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8.6rem;
    width: 100%
}

.opilsol-N10-b .title-area {
    width: 50%
}

.opilsol-N10-b .title-area p {
    margin-top: 4rem;
    color: #767676
}

.opilsol-N10-b .thumb-area {
    width: calc(50% + 20.7rem);
    height: 70rem
}

.opilsol-N10-b .thumb-area img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

@media (max-width: 992px) {
    .opilsol-N10-b {
        padding-top: 3rem;
        padding-bottom: 6rem
    }

    .opilsol-N10-b .content-group {
        flex-direction: column-reverse;
        gap: 4rem
    }

    .opilsol-N10-b .title-area,
    .opilsol-N10-b .thumb-area {
        width: 100%
    }

    .opilsol-N10-b .title-area p {
        margin-top: 2rem
    }

    .opilsol-N10-b .thumb-area {
        height: 32rem
    }
}
/* opilsol-N12 */
.opilsol-N12 {
    overflow: hidden;
    position: relative;
    padding-top: 6rem;
    padding-bottom: 6rem;
    background-color: #fafafa
}

.opilsol-N12 .contents-inner {
    width: 100%
}

.opilsol-N12 .content-tit {
    margin-bottom: 4rem
}

.opilsol-N12 .content-tit .textset-tit {
    text-align: center
}

.opilsol-N12 .col-group {
    display: flex;
    align-items: stretch;
    justify-content: center;
    gap: 4rem;
    width: 100%
}

.opilsol-N12 .col-group .col-item {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2rem;
    padding: 6rem 3.2rem;
    background-color: #fff;
    border: 1px solid #e5e5e5;
    text-align: center
}

.opilsol-N12 .col-item img {
    width: 8rem;
    height: 8rem
}

.opilsol-N12 .col-item h3 {
    font-weight: var(--fw-bold)
}

.opilsol-N12 .col-item p {
    color: #767676;
    font-weight: var(--fw-regular)
}

@media (max-width: 992px) {
    .opilsol-N12 .content-tit {
        margin-bottom: 2rem
    }

    .opilsol-N12 .col-group {
        flex-direction: column;
        gap: 2rem
    }

    .opilsol-N12 .col-group .col-item {
        gap: 1.6rem;
        padding: 4rem 1.4rem
    }

    .opilsol-N12 .col-item img {
        width: 6rem;
        height: 6rem
    }

    .opilsol-N12 {
        padding-top: 4rem;
        padding-bottom: 4rem
    }
}
/* opilsol-N13 */
.opilsol-N13 {
    overflow: hidden;
    position: relative;
    padding-top: 0rem;
    padding-bottom: 10rem
}

.opilsol-N13 .contents-inner {
    width: 100%
}

.opilsol-N13 .img-box {
    width: calc(50% + 16rem);
    height: 81.3rem
}

.opilsol-N13 .img-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top
}

.opilsol-N13 .txt-box {
    position: absolute;
    right: 0;
    bottom: 0;
    padding: 8rem;
    width: calc(50% + 12rem);
    min-height: 71.3rem;
    background-color: var(--white)
}

.opilsol-N13 .desc {
    margin-top: 6rem
}

.opilsol-N13 .desc p {
    color: #767676;
    margin-bottom: 2rem
}

.opilsol-N13 .desc em {
    display: block;
    margin-top: 4rem;
    font-weight: var(--fw-bold);
    font-style: normal
}

@media (max-width: 996px) {
    .opilsol-N13 {
        padding-top: 0rem;
        padding-bottom: 6rem
    }

    .opilsol-N13 .img-box {
        width: 100%;
        height: 38rem
    }

    .opilsol-N13 .txt-box {
        position: static;
        padding: 1.6rem;
        width: 100%;
        min-height: auto
    }

    .opilsol-N13 .desc {
        margin-top: 4rem
    }

    .opilsol-N13 .desc p {
        color: #767676;
        margin-bottom: 1.6rem
    }

    .opilsol-N13 .desc p:last-child {
        margin-bottom: 2rem
    }
}
/* opilsol-N14 */
.opilsol-N14 {
    overflow: hidden;
    position: relative;
    padding-top: 0rem;
    padding-bottom: 10rem
}

.opilsol-N14 .col-group {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    width: 100%
}

.opilsol-N14 .col-group .left,
.opilsol-N14 .col-group .right {
    flex: 1
}

.opilsol-N14 .col-group .history-list li {
    position: relative;
    padding-left: 4.35rem;
    padding-bottom: 6rem;
    border-left: 1px solid var(--line-color1);
    transition: border-color 0.3s
}

.opilsol-N14 .col-group .history-list li::before {
    content: url(../icons/ico_gray_circle.svg);
    position: absolute;
    left: -1.4rem;
    top: 0
}

.opilsol-N14 .col-group .history-list li.active {
    position: relative;
    border-color: var(--primary)
}

.opilsol-N14 .col-group .history-list li.active::before {
    content: url(../icons/ico_red_circle.svg);
    position: absolute
}

.opilsol-N14 .col-group .history-list li.active+li::before {
    content: url(../icons/ico_red_circle.svg);
    position: absolute
}

.opilsol-N14 .col-group .history-list li .year {
    position: absolute;
    left: -8.5rem;
    top: 0;
    max-width: 4rem;
    text-align: right;
    font-weight: var(--fw-bold)
}

.opilsol-N14 .inner-list {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 2.2rem 3rem
}

.opilsol-N14 .inner-list+.inner-list {
    margin-top: 4.2rem
}

.opilsol-N14 .inner-list dt {
    text-align: right;
    font-weight: var(--fw-bold)
}

.opilsol-N14 .inner-list dd {
    margin: 0;
    color: #767676
}

@media (max-width: 992px) {
    .opilsol-N14 {
        padding-top: 0rem;
        padding-bottom: 6rem
    }

    .opilsol-N14 .col-group {
        flex-direction: column
    }

    .opilsol-N14 .col-group .history-tit {
        margin-bottom: 4rem
    }

    .opilsol-N14 .col-group .right {
        padding-left: 6.6rem
    }

    .opilsol-N14 .col-group .history-list li {
        padding-left: 2.75rem;
        padding-bottom: 4rem
    }

    .opilsol-N14 .col-group .history-list li .year {
        left: -6.5rem;
        top: 0
    }

    .opilsol-N14 .inner-list {
        gap: 2.3rem 2rem
    }

    .opilsol-N14 .inner-list+.inner-list {
        margin-top: 2rem
    }
}
/* opilsol-N15 */
.opilsol-N15 {
    overflow: hidden;
    position: relative;
    padding-top: 0rem;
    padding-bottom: 10rem
}

.opilsol-N15 .col-group {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    width: 100%
}

.opilsol-N15 .col-group .left,
.opilsol-N15 .col-group .right {
    flex: 1
}

.opilsol-N15 .col-group .history-list li {
    position: relative;
    padding-left: 4.35rem;
    padding-bottom: 6rem;
    border-left: 1px solid var(--line-color1);
    transition: border-color 0.3s
}

.opilsol-N15 .col-group .history-list li::before {
    content: url(../icons/ico_gray_circle.svg);
    position: absolute;
    left: -1.4rem;
    top: 0
}

.opilsol-N15 .col-group .history-list li.active {
    position: relative;
    border-color: var(--primary)
}

.opilsol-N15 .col-group .history-list li.active::before {
    content: url(../icons/ico_red_circle.svg);
    position: absolute
}

.opilsol-N15 .col-group .history-list li.active+li::before {
    content: url(../icons/ico_red_circle.svg);
    position: absolute
}

.opilsol-N15 .col-group .history-list li .year {
    position: absolute;
    left: -8.5rem;
    top: 0;
    max-width: 4rem;
    text-align: right;
    font-weight: var(--fw-bold)
}

.opilsol-N15 .inner-list {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 2.2rem 3rem
}

.opilsol-N15 .inner-list+.inner-list {
    margin-top: 4.2rem
}

.opilsol-N15 .inner-list dt {
    text-align: right;
    font-weight: var(--fw-bold)
}

.opilsol-N15 .inner-list dd {
    margin: 0;
    color: #767676
}

@media (max-width: 992px) {
    .opilsol-N15 {
        padding-top: 0rem;
        padding-bottom: 5rem
    }

    .opilsol-N15 .col-group {
        flex-direction: column
    }

    .opilsol-N15 .col-group .history-tit {
        margin-bottom: 4rem
    }

    .opilsol-N15 .col-group .right {
        padding-left: 6.6rem
    }

    .opilsol-N15 .col-group .history-list li {
        padding-left: 2.75rem;
        padding-bottom: 4rem
    }

    .opilsol-N15 .col-group .history-list li .year {
        left: -6.5rem;
        top: 0
    }

    .opilsol-N15 .inner-list {
        gap: 2.3rem 2rem
    }

    .opilsol-N15 .inner-list+.inner-list {
        margin-top: 2rem
    }
}
/* opilsol-N16 */
.opilsol-N16 {
    overflow: hidden;
    position: relative;
    padding-top: 0rem;
    padding-bottom: 20rem
}

.opilsol-N16 .contents-inner {
    width: 100%;
    display: flex;
    justify-content: center
}

.opilsol-N16 .wrap {
    display: flex;
    justify-content: center;
    width: 100%
}

.opilsol-N16 .map-area {
    width: 100vw
}

.opilsol-N16 .map-area iframe {
    width: 100vw;
    height: 57rem
}

.opilsol-N16 .contents-info-wrap {
    display: flex;
    align-items: center;
    position: absolute;
    bottom: 0;
    transform: translateY(50%);
    padding: 4rem;
    width: calc(100% - 16rem);
    height: 18rem;
    background-color: var(--primary)
}

.opilsol-N16 .contents-info-wrap .info-tit {
    flex: 1 1 0;
    max-width: 53.2rem
}

.opilsol-N16 .contents-info-wrap .info-tit img {
    width: auto;
    height: 4.5rem
}

.opilsol-N16 .addr {
    width: 50%
}

.opilsol-N16 .addr .wrap {
    display: flex;
    gap: 4rem
}

.opilsol-N16 .addr .wrap+.wrap {
    margin-top: 2rem
}

.opilsol-N16 .item {
    flex: 1;
    display: flex;
    gap: 0.4rem
}

.opilsol-N16 .icons {
    display: block;
    flex-shrink: 0;
    width: 2.4rem;
    height: 2.4rem
}

.opilsol-N16 .icons img {
    width: 100%;
    height: 100%
}

.opilsol-N16 .item dl {
    display: grid;
    grid-template-columns: auto auto;
    gap: 0.8rem 1.6rem
}

.opilsol-N16 .item dd,
.opilsol-N16 .item dt {
    margin: 0;
    color: #fff
}

@media (max-width: 1200px) {
    .opilsol-N16 .contents-info-wrap {
        width: calc(100% - 8rem)
    }
}

@media (max-width: 992px) {
    .opilsol-N16 {
        padding-top: 0rem;
        padding-bottom: 30rem
    }

    .opilsol-N16 .map-area {
        width: calc(100% + 3.2rem)
    }

    .opilsol-N16 .addr {
        width: 100%
    }

    .opilsol-N16 .contents-info-wrap {
        width: calc(100% - 3.2rem);
        max-width: 76.7rem;
        gap: 2.6rem
    }

    .opilsol-N16 .contents-info-wrap .info-tit {
        flex: none
    }
}

@media (max-width: 576px) {
    .opilsol-N16 .contents-info-wrap {
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        gap: 2rem;
        bottom: -23rem;
        transform: none;
        padding: 1.6rem;
        max-width: 32.8rem;
        height: auto;
        min-height: 32.1rem
    }

    .opilsol-N16 .contents-info-wrap .info-tit {
        flex: none;
        max-width: 100%
    }

    .opilsol-N16 .addr .wrap {
        flex-direction: column;
        gap: 2rem
    }

    .opilsol-N16 .item dl {
        grid-template-columns: auto
    }

    .opilsol-N16 .addr .tel dt:nth-of-type(1) {
        grid-column: 1
    }

    .opilsol-N16 .addr .tel dd:nth-of-type(1) {
        grid-column: 1
    }

    .opilsol-N16 .addr .tel dt:nth-of-type(2) {
        grid-column: 2;
        grid-row: 1
    }

    .opilsol-N16 .addr .tel dd:nth-of-type(2) {
        grid-column: 2
    }
}
/* opilsol-N17 */
.opilsol-N17 {
    overflow: hidden;
    position: relative;
    padding-top: 0rem;
    padding-bottom: 10rem
}

.opilsol-N17 .contents-inner {
    width: 100%
}

.opilsol-N17 .thumb-area {
    display: flex;
    justify-content: center;
    width: 100%
}

.opilsol-N17 .thumb-area img {
    width: 100vw;
    height: 48rem;
    object-fit: cover
}

.opilsol-N17 .title-area {
    margin-top: 4rem;
    text-align: center
}

.opilsol-N17 .title-area p {
    margin-top: 2rem;
    color: #777;
    font-weight: var(--fw-regular)
}

@media (max-width: 992px) {
    .opilsol-N17 {
        padding-top: 0rem;
        padding-bottom: 6rem
    }

    .opilsol-N17 .title-area {
        margin-top: 2rem
    }

    .opilsol-N17 .title-area p {
        margin-top: 1.6rem
    }
}
/* opilsol-N18 */
.opilsol-N18 {
    overflow: hidden;
    position: relative;
    padding-top: 0rem;
    padding-bottom: 5rem
}

.opilsol-N18 .contents-inner {
    width: 100%
}

.opilsol-N18 .title-area {
    margin-bottom: 6rem
}

.opilsol-N18 .title-area h2 {
    margin-bottom: 1.6rem;
    color: var(--primary);
    font-weight: var(--fw-bold)
}

.opilsol-N18 .list-area {
    display: flex;
    gap: 4rem
}

.opilsol-N18 .item {
    flex: 1
}

.opilsol-N18 .thumb {
    width: 100%;
    height: 46rem
}

.opilsol-N18 .thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.opilsol-N18 .desc strong {
    display: block;
    margin: 2rem 0 1.6rem;
    font-weight: var(--fw-bold)
}

.opilsol-N18 .desc p {
    color: #767676
}

@media (max-width: 992px) {
    .opilsol-N18 {
        padding-top: 0rem;
        padding-bottom: 3rem
    }

    .opilsol-N18 .title-area {
        margin-bottom: 4rem
    }

    .opilsol-N18 .title-area h2 {
        margin-bottom: 0.8rem
    }

    .opilsol-N18 .list-area {
        flex-direction: column;
        gap: 2rem
    }

    .opilsol-N18 .thumb {
        height: 42rem
    }

    .opilsol-N18 .desc strong {
        margin: 1.6rem 0 0.8rem
    }
}
/* opilsol-N19 */
.opilsol-N19 {
    overflow: hidden;
    position: relative;
    padding-top: 5rem;
    padding-bottom: 10rem
}

.opilsol-N19 .contents-inner {
    width: 100%
}

.opilsol-N19 .title-area {
    margin-bottom: 6rem
}

.opilsol-N19 .list-area {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 4rem
}

.opilsol-N19 .item {
    padding: 3.2rem;
    border: 1px solid #e5e5e5
}

.opilsol-N19 .thumb {
    width: 8rem;
    height: 8rem
}

.opilsol-N19 .thumb img {
    width: 100%;
    height: 100%
}

.opilsol-N19 .desc,
.opilsol-N19 .list {
    margin-top: 2rem
}

.opilsol-N19 .list li {
    display: flex;
    gap: 0.8rem;
    color: #767676
}

.opilsol-N19 .list li::before {
    content: "";
    flex-shrink: 0;
    margin-top: 1rem;
    width: 0.6rem;
    height: 0.6rem;
    border-radius: 50%;
    background: #505050
}

.opilsol-N19 .list li+li {
    margin-top: 1.6rem
}

@media (max-width: 992px) {
    .opilsol-N19 {
        padding-top: 3rem;
        padding-bottom: 6rem
    }

    .opilsol-N19 .title-area {
        margin-bottom: 4rem
    }

    .opilsol-N19 .title-area h2 {
        margin-bottom: 0.8rem
    }

    .opilsol-N19 .list-area {
        grid-template-columns: 1fr;
        gap: 2rem
    }

    .opilsol-N19 .item {
        padding: 1.6rem
    }

    .opilsol-N19 .thumb {
        width: 6rem;
        height: 6rem
    }

    .opilsol-N19 .desc,
    .opilsol-N19 .list {
        margin-top: 1.6rem
    }

    .opilsol-N19 .list li {
        gap: 0.4rem
    }

    .opilsol-N19 .list li::before {
        width: 0.4rem;
        height: 0.4rem
    }

    .opilsol-N19 .list li+li {
        margin-top: 0.8rem
    }
}
/* opilsol-N20 */
.opilsol-N20 {
    overflow: hidden;
    position: relative;
    padding-top: 0rem;
    padding-bottom: 10rem
}

.opilsol-N20 .contents-inner {
    width: 100%
}

.opilsol-N20 .list-area {
    overflow: hidden;
    display: flex;
    flex-direction: column;
    gap: 6rem;
    opacity: 0;
    visibility: hidden;
    height: 0
}

.opilsol-N20 .list-area.active {
    opacity: 1;
    visibility: visible;
    margin-top: 6rem;
    height: auto;
    transition: opacity 0.3s, visibility 0.3s
}

.opilsol-N20 .item {
    display: flex;
    align-items: center;
    gap: 10rem
}

.opilsol-N20 .desc {
    width: 50%
}

.opilsol-N20 .desc p {
    margin-top: 2rem;
    padding-bottom: 2rem;
    border-bottom: 1px solid var(--border-color);
    font-weight: var(--fw-regular);
    color: #767676
}

.opilsol-N20 .desc dl {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 1.6rem 2rem;
    margin-top: 2rem
}

.opilsol-N20 .desc dt {
    font-weight: var(--fw-bold)
}

.opilsol-N20 .desc dd {
    margin: 0;
    color: #767676
}

.opilsol-N20 .thumb {
    width: calc(50% + 14.5rem);
    height: 48rem
}

.opilsol-N20 .thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

@media (max-width: 992px) {
    .opilsol-N20 {
        padding-top: 0px;
        padding-bottom: 6rem
    }

    .opilsol-N20 .tabset.tabset-brick .tabset-list {
        overflow: hidden;
        display: grid;
        grid-template-columns: 1fr 1fr
    }

    .opilsol-N20 .tabset.tabset-brick .tabset-item {
        width: 100%;
        border: none;
        margin: 0;
        text-align: center
    }

    .opilsol-N20 .tabset.tabset-brick .tabset-item:nth-child(3) a {
        border-left: 1px solid var(--border-color)
    }

    .opilsol-N20 .list-area {
        gap: 4rem
    }

    .opilsol-N20 .list-area.active {
        margin-top: 4rem
    }

    .opilsol-N20 .item {
        flex-direction: column;
        gap: 2rem
    }

    .opilsol-N20 .item:nth-child(odd) {
        flex-direction: column-reverse
    }

    .opilsol-N20 .desc,
    .opilsol-N20 .thumb {
        width: 100%
    }

    .opilsol-N20 .desc p {
        margin-top: 1.6rem;
        padding-bottom: 1.6rem
    }

    .opilsol-N20 .desc dl {
        grid-template-columns: 1fr;
        margin-top: 1.6rem;
        gap: 0
    }

    .opilsol-N20 .desc dt {
        margin-bottom: 0.8rem
    }

    .opilsol-N20 .desc dd:nth-of-type(1) {
        margin-bottom: 1.6rem
    }

    .opilsol-N20 .thumb {
        height: 28rem
    }
}
/* opilsol-N21 */
.opilsol-N21 {
    overflow: hidden;
    position: relative;
    padding-top: 0rem;
    padding-bottom: 10rem
}

.opilsol-N21 .contents-inner {
    width: 100%
}

.opilsol-N21 .title-area {
    margin-bottom: 6rem
}

.opilsol-N21 .title-area h2 {
    color: var(--primary);
    margin-bottom: 1.6rem
}

.opilsol-N21 .list-area {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10rem 20rem
}

.opilsol-N21 .item:nth-child(even) {
    transform: translateY(30rem)
}

.opilsol-N21 .thumb {
    width: 100%;
    height: 60rem
}

.opilsol-N21 .thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.opilsol-N21 .desc {
    margin-top: 4rem
}

.opilsol-N21 .desc p {
    margin-top: 2rem;
    color: #777;
    font-weight: var(--fw-regular)
}

@media (max-width: 992px) {
    .opilsol-N21 {
        padding-top: 0rem;
        padding-bottom: 6rem
    }

    .opilsol-N21 .title-area {
        margin-bottom: 4rem
    }

    .opilsol-N21 .title-area h2 {
        margin-bottom: 0.8rem
    }

    .opilsol-N21 .list-area {
        grid-template-columns: 1fr;
        gap: 4rem
    }

    .opilsol-N21 .item:nth-child(even) {
        transform: none
    }

    .opilsol-N21 .thumb {
        height: 34rem
    }

    .opilsol-N21 .desc {
        margin-top: 2rem
    }

    .opilsol-N21 .desc p {
        margin-top: 1.6rem
    }
}
/* opilsol-N22 */
.opilsol-N22 {
    overflow: hidden;
    position: relative;
    padding-top: 6rem;
    padding-bottom: 6rem;
    background-color: #fafafa
}

.opilsol-N22 .contents-inner {
    width: 100%
}

.opilsol-N22 .title-area {
    margin-bottom: 8rem
}

.opilsol-N22 .title-area h2 {
    margin-bottom: 1.6rem;
    color: var(--primary);
    font-weight: var(--fw-bold)
}

.opilsol-N22 .list-area {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 4rem
}

.opilsol-N22 .thumb {
    width: 100%;
    height: 28rem
}

.opilsol-N22 .thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.opilsol-N22 .desc strong {
    display: block;
    margin: 2rem 0 1.6rem;
    font-weight: var(--fw-bold)
}

.opilsol-N22 .desc p {
    color: #767676
}

@media (max-width: 992px) {
    .opilsol-N22 {
        padding-top: 4rem;
        padding-bottom: 4rem
    }

    .opilsol-N22 .title-area {
        margin-bottom: 4rem
    }

    .opilsol-N22 .title-area h2 {
        margin-bottom: 0.8rem
    }

    .opilsol-N22 .list-area {
        grid-template-columns: 1fr;
        gap: 2rem
    }

    .opilsol-N22 .thumb {
        height: 20rem
    }

    .opilsol-N22 .desc strong {
        margin: 1.6rem 0 0.8rem
    }
}
/* opilsol-N23 */
.opilsol-N23 {
    overflow: hidden;
    position: relative;
    padding-top: 0rem;
    padding-bottom: 10rem
}

.opilsol-N23 .list-area {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 4rem;
    width: 100%
}

.opilsol-N23 .item {
    padding: 3.2rem;
    background-color: #fafafa
}

.opilsol-N23 .thumb {
    width: 6rem;
    height: 6rem
}

.opilsol-N23 .thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.opilsol-N23 .desc strong {
    display: block;
    margin: 2rem 0 0.8rem;
    font-weight: var(--fw-bold)
}

.opilsol-N23 .desc p {
    color: #767676
}

@media (max-width: 992px) {
    .opilsol-N23 {
        padding-top: 0rem;
        padding-bottom: 6rem
    }

    .opilsol-N23 .list-area {
        grid-template-columns: 1fr;
        gap: 2rem
    }

    .opilsol-N23 .item {
        display: flex;
        gap: 1.6rem;
        align-items: center;
        padding: 2.6rem 1.6rem
    }

    .opilsol-N23 .thumb {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 6rem;
        height: 6rem;
        background-color: #fff;
        border-radius: 50%
    }

    .opilsol-N23 .thumb img {
        width: 3.6rem;
        height: 3.6rem
    }

    .opilsol-N23 .desc strong {
        margin: 0 0 0.4rem 0
    }
}
/* basic-N24 */
.board_blank {
    display: flex;
    justify-content: center;
    height: 300px;
    background: #ddd;
    align-items: center;
    flex-direction: column
}

.basic-N24 {
    position: relative;
    padding-top: 0rem;
    padding-bottom: 10rem;
    overflow: hidden
}

.basic-N24 .contents-inner {
    width: 100%;
    padding: 10rem 4rem;
    border-radius: 2rem;
    background: #f7f7fb
}

.basic-N24 .textset {
    margin-bottom: 4rem;
    text-align: center
}

.basic-N24 .form-box,
.basic-N24 .contents-agree {
    max-width: 96rem;
    margin: 0 auto
}

.basic-N24 .form-box+.form-box {
    margin-top: 2.4rem
}

.basic-N24 .form-tit {
    margin-bottom: 1.2rem
}

.basic-N24 .form-btn {
    margin-top: 4rem;
    text-align: center
}

.basic-N24 .form-btn .btnset {
    min-width: 18rem;
    padding: 0 2rem
}

.basic-N24 .contents-agree {
    display: flex;
    align-items: center;
    justify-content: space-between;
    line-height: 1
}

@media (max-width: 992px) {
    .basic-N24 {
        padding-top: 0rem;
        padding-bottom: 6rem
    }

    .basic-N24 .contents-inner {
        padding: 8rem 2.4rem
    }

    .basic-N24 .form-btn .btnset {
        min-width: 16rem;
        padding: 0 1.6rem
    }
}