@charset "UTF-8";

:root {
    --bl: #000;
    --gray-02: #ccc;
    --grad-01: linear-gradient(60deg, var(--MAIN) 0%, var(--MAIN) 40%, var(--ACC) 100%);
    --grad-02: linear-gradient(90deg, var(--MAIN) 0%, var(--ACC) 100%);
    --transition: all 0.3s ease-in-out;
    --oversize: calc((100% - 100vw) / 2);
}


/* ==================================
リセット・調整
===================================== */
:where(img) {
    /* max-width: 100%; */
    height: auto;
    vertical-align: bottom;
}

/*---------- アクセシビリティ ----------*/
i,
[class*="material-icons"],
[class*="material-symbols"] {
    speak: none;
}

/*---------- パンくず ----------*/
.lib-breadcrumb__list {
    column-gap: 0.5em;
}
.lib-breadcrumb__list a {
    text-decoration: unset;
}

/*---------- ボタンのアイコン変更 ----------*/
/* :where(.lib-link__btn):not([class*="ico-after-"]):not([class*="ico-before-"]) > .txt:after {
content: "\ea03";
font-size: 1em;
} */

/*---------- tableの調整 ----------*/
/* :where(table) > thead th:first-child {
border-left-color: var(--LGRY);
}
:where(table) > thead th {
border-top-color: var(--LGRY);
}
:where(table) > thead th:last-child {
border-right-color: var(--LGRY);
}
:where(table) th,
:where(table) > thead {
border: var(--WHT) 1px solid;
background-color: var(--LGRY);
color: var(--DEF);
}
:where(table) tbody > tr > th:first-child {
border-left-color: var(--LGRY);
}
:where(table) td {
border: var(--LGRY) 1px solid;
} */
@media print,
screen and (min-width: 768px) {
    :where(table.lib-table__01) th {
        width: 25%;
    }
    .lib-scroll__outer :where(table.lib-table__02) tbody>tr>th {
        width: 25%;
    }
}


/* ==================================
タイポ
===================================== */
/* ゴシックとか */
.ff-notosans {
    font-family: "Noto Sans JP", serif;
}
.ff-lato {
    font-family: "Lato", sans-serif;
    /* letter-spacing: 0.05rem; */
}
.ff-oswald {
    font-family: "Oswald", sans-serif;
}
.ff-poppins {
    font-family: "Poppins", sans-serif;
}
.ff-zenmarugo {
    font-family: "Staatliches", sans-serif;
}
.ff-montserrat {
    font-family: "Montserrat", sans-serif;
}
.ff-staatliches {
    font-family: "Zen Maru Gothic", sans-serif;
}
.ff-m-plus-rounded-1c {
    font-family: "M PLUS Rounded 1c", sans-serif;
    transform: rotate(0.07deg);
}
/* 明朝とか */
.ff-notoserif {
    font-family: "Noto Serif JP", serif;
}
.ff-yumincho {
    font-family: "Yu Mincho", "YuMincho", serif;
}

.fw-600 {
    font-weight: 600 !important;
}
.fw-800 {
    font-weight: 800 !important;
}
.fw-900 {
    font-weight: 900 !important;
}


/* ==================================
ユーティリティー
===================================== */
/*---------- 画像の比率 ----------*/
.u-aspect img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.u-aspect.--contain img {
    object-fit: contain;
}
.u-aspect.--16x9 img {
    aspect-ratio: 16 / 9;
}
.u-aspect.--4x3 img {
    aspect-ratio: 4 / 3;
}
.u-aspect.--21x9 img {
    aspect-ratio: 21 / 9;
}
.u-aspect.--2x1 img {
    aspect-ratio: 2 / 1;
}
.u-aspect.--3x1 img {
    aspect-ratio: 3 / 1;
}
.u-aspect.--1x1 img {
    aspect-ratio: 1 / 1;
}
.u-aspect.--7x8 img {
    aspect-ratio: 7 / 8;
}
.u-aspect.--9x16 img {
    aspect-ratio: 9 / 16;
}
.u-aspect.--3x4 img {
    aspect-ratio: 3 / 4;
}

@media print,
screen and (min-width: 768px) {
    .u-aspect img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    .u-aspect.--contain img {
        object-fit: contain;
    }

    .u-md-aspect.--4x3 img {
        aspect-ratio: 4 / 3;
    }
}

/*---------- 角丸 ----------*/
[class*="u-rounded-"] {
    overflow: hidden;
}
.u-rounded-_25 {
    border-radius: 0.25rem !important;
}
.u-rounded-_5 {
    border-radius: 0.5rem !important;
}
.u-rounded-_75 {
    border-radius: 0.75rem !important;
}
.u-rounded-1 {
    border-radius: 1rem !important;
}
.u-rounded-1_5 {
    border-radius: 1.5rem !important;
}
.u-rounded-1_25 {
    border-radius: 1.25rem !important;
}
.u-rounded-2 {
    border-radius: 2rem !important;
}
.u-rounded-3 {
    border-radius: 3rem !important;
}
.u-rounded-14 {
    border-radius: 14rem !important;
}

.--t-only {
    border-bottom-right-radius: unset !important;
    border-bottom-left-radius: unset !important;
}
.--b-only {
    border-top-right-radius: unset !important;
    border-top-left-radius: unset !important;
}
.--r-only {
    border-top-left-radius: unset !important;
    border-bottom-left-radius: unset !important;
}
.--l-only {
    border-top-right-radius: unset !important;
    border-bottom-right-radius: unset !important;
}

/*---------- はみ出させる ----------*/
.u-over {
    margin-inline: var(--oversize);
}
/* 右に */
.u-r-over {
    margin-right: var(--oversize);
}
@media print,
screen and (min-width: 768px) {
    .u-r-md-over {
        margin-right: var(--oversize);
    }
}
@media print,
screen and (min-width: 992px) {
    .u-r-lg-over {
        margin-right: var(--oversize);
    }
}
/* 左に */
.u-l-over {
    margin-left: var(--oversize);
}
@media print,
screen and (min-width: 768px) {
    .u-l-md-over {
        margin-left: var(--oversize);
    }
}
@media print,
screen and (min-width: 992px) {
    .u-l-lg-over {
        margin-left: var(--oversize);
    }
}

/*---------- 中央配置 ----------*/
.l-v-center {
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.l-center {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

/*---------- Swiper ----------*/
/* 滑らかに */
.u-swiper-liner .swiper-wrapper {
    transition-timing-function: linear;
}


/* ========================================
パーツ
======================================== */
/*---------- アイコン（アイコンフォント想定。大きさはp-*やfs-、個別にwidth・height指定して調整。） ----------*/
.c-icon {
    aspect-ratio: 1 / 1;
    speak: none;
}
.c-icon img {
    aspect-ratio: 1 / 1;
    width: 100%;
    height: 100%;
    object-fit: contain;
    speak: none;
}

/*---------- アイコンとテキスト（ボタンによく使う） ----------*/
.c-icon-text {
    display: grid !important;
    grid-template-columns: repeat(2, auto);
    column-gap: 0.5em;
    justify-content: center;
    align-items: center;
}
/* アイコンだけ右寄せ */
.c-icon-text.--r {
    grid-template-columns: 1fr auto;
}
/* アイコンだけ左寄せ */
.c-icon-text.--l {
    grid-template-columns: auto 1fr;
}
@media print,
screen and (min-width: 992px) {
    .c-icon-text {
        column-gap: 1em;
    }
}

/*---------- 背景のベース ----------*/
.p-bg {
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    position: relative;
    z-index: 1;
}
/* 疑似要素のファンデーション */
.p-bg::before,
.p-bg::after {
    content: "";
    display: block;
    position: absolute;
    z-index: -1;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    pointer-events: none;
    speak: none;
}
/* 黒透明フィルター */
.p-bg.--bl::before {
    inset: 0;
    width: 100%;
    height: 100%;
    background-color: var(--bl);
    opacity: 0.3;
}

.p-bg.--bbl::before {
    inset: 0;
    width: 100%;
    height: 100%;
    background-color: var(--bl);
    opacity: 0.8;
}

/* 白透明フィルター */
.p-bg.--wh::before {
    inset: 0;
    width: 100%;
    height: 100%;
    background-color: var(--WHT);
    opacity: 0.3;
}
/* メインカラーフィルター */
.p-bg.--main::before {
    inset: 0;
    width: 100%;
    height: 100%;
    background-color: var(--MAIN);
    opacity: 0.3;
}
/* アクセントカラーフィルター */
.p-bg.--accent::before {
    inset: 0;
    width: 100%;
    height: 100%;
    background-color: var(--ACC);
    opacity: 0.3;
}
.p-bg.--md::before {
    opacity: 0.5;
}
.p-bg.--strong::before {
    opacity: 0.7;
}
.p-bg.--strongest::before {
    opacity: 0.9;
}

/*---------- ホバーアクション ----------*/
.c-hover {
    transition: var(--transition);
    color: inherit;
    text-decoration: none;
}
.c-hover:hover {
    text-decoration: none;
}
.c-hover.--underline:hover {
    text-decoration: underline;
}
.c-hover.--bg-lmain:hover {
    background-color: var(--LMAIN);
}
.c-hover.--bg-gry:hover {
    background-color: var(--GRY);
}
.c-hover.--text-main:hover {
    color: var(--MAIN) !important;
}
.c-hover.--opacity:hover {
    opacity: 0.8;
}
.c-hover.--up:hover {
    transform: translateY(-0.125rem);
}
.c-hover.--scale-up img {
    transition: var(--transition);
}
.c-hover.--scale-up:hover img {
    transform: scale(1.1);
}

/*---------- アコーディオンボタン（ヘッダー以外にも汎用可能） ----------*/
.c-btn-accordion {
    top: 0;
    right: 0;
    /* height: 2.5em;
	width: 2.5em; */
    background-color: transparent;
    border: none;
}
.c-accordion-icon {
    display: block;
    width: 100%;
    height: 100%;
}
.c-accordion-icon::before,
.c-accordion-icon::after {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    right: 50%;
    transform: translate(50%, -50%);
    background-color: currentColor;
    transition: all 0.3s ease-in-out;
}
.c-accordion-icon::before {
    width: 1em;
    height: 2px;
}
.c-accordion-icon::after {
    width: 2px;
    height: 1em;
}
.c-accordion-icon.is-active::after {
    opacity: 0;
}

/* ==================================
ヘッダー
===================================== */
@media print,
screen and (min-width: 992px) {
    .co-header .lib-header__inner {
        width: 100%;
    }

    .co-header .lib-nav__panel:has(.lib-induce__outer) {
        padding-right: 420px;
    }

    .co-header.lib-header__outer.lib-header-BS02 .lib-induce__outer {
        width: 400px;
    }

    .is-scroll .co-header.lib-header__outer.lib-header-BS02 .lib-induce__btn {
        flex-direction: row;
    }

    .co-header.lib-header__outer.lib-header-BS02 .lib-induce__btn {
        border-radius: 0.5rem !important;
    }

    .co-header .lib-nav__panel {
        width: calc(100% - 180px);
    }
}

.header-after01 {
    position: relative;
}

.header-after01::after {
    content: "→";
    font-family: sans-serif;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 25px;
    border: 1px solid var(--WHT);
    border-radius: 50%;
    color: var(--MAIN);
    font-size: 0.8em;
    flex-direction: column-reverse;
    background: var(--WHT);
}

.header-after01:hover::after {
    border: 1px solid var(--MAIN);
    color: var(--MAIN);
    background-color: var(--WHT);
}

.co-header.lib-header__outer {
    background-color: transparent;
}

.co-header .lib-header__bar {
    position: relative;
}

.co-header .lib-header__bar::before {
    content: '';
    position: absolute;
    width: 124px;
    height: 60px;
    background-color: var(--WHT);
    z-index: -1;
    left: 0;
    border-radius: 0;
    border-top-right-radius: unset !important;
    border-top-left-radius: unset !important;
}

/* .is-scroll .co-header .lib-menu__btn {
    background-color: var(--MAIN);
} */
.co-header .lib-menu__btn {
    background-color: var(--MAIN);
}

@media print,
screen and (max-width: 992px) {
    .co-header .lib-menu__btn {
        background-color: var(--MAIN);
        border: none;
    }
}

.co-header .lib-menu__btn>.line:nth-of-type(1) {
    top: calc(50% - 1px - 18px);
}

.co-header .lib-menu__btn>.line:nth-of-type(2) {
    top: calc(50% - 1px - 8px);
    width: 40%;
}

.co-header .lib-menu__btn>.line:nth-of-type(3) {
    bottom: calc(50% - 1px - 2px);
}

.lib-menu__btn:hover {
    background-color: transparent;
}

.co-header .lib-menu__btn>.line {
    background-color: #fff;
}

@media print,
screen and (min-width: 992px) {
    .lib-header__outer.lib-header-BS02 .lib-header__bar {
        width: 220px;
    }
}

@media print,
screen and (min-width: 1100px) {
    .lib-header__outer.lib-header-BS02 .lib-nav__list>li~li {
        margin-left: 20px;
    }
}

/*---MV---*/
.co-mv a {
    height: 132px
}

@media print,
screen and (min-width: 500px) {
    .co-mv a {
        height: 200px
    }
}

@media print,
screen and (min-width: 576px) {
    .co-mv .lib-fv__thumb {
        height: 800px;
    }
}

/* ==================================
CTA
===================================== */
.corporate.lib-cta__outer .lib-link__btn {
    min-height: 215px;
}

.ico-co-title03 {
    position: relative;
}

.ico-co-title03::before {
    content: '';
    position: absolute;
    background-image: url(http://xs386194.xsrv.jp/tmp/wp-content/uploads/co-top12.png);
    width: 9%;
    height: 63%;
    left: -8%;
    top: 24%;
    background-repeat: no-repeat;
    background-size: contain;
}

.ico-co-title04 {
    position: relative;
}

.ico-co-title04::before {
    content: '';
    position: absolute;
    background-image: url(http://xs386194.xsrv.jp/tmp/wp-content/uploads/co-top12.png);
    width: 12%;
    height: 75%;
    left: -15%;
    top: 21%;
    background-repeat: no-repeat;
    background-size: contain;
}

/* ==================================
フッター
===================================== */

.co-footer .lib-induce__outer>li {
    width: 100%;
}

.sp-item .lib-footer__sns {
    justify-content: space-evenly;
}

/* ==================================
TOP
===================================== */
/*－－－－－－ボタン－－－－－－*/
:where(.lib-link__btn):hover {
    background-color: var(--MAIN);
    color: var(--WHT);
}

.ico-co-title {
    position: relative;
}

.ico-co-title::before {
    content: '';
    position: absolute;
    background-image: url(http://xs386194.xsrv.jp/tmp/wp-content/uploads/co-top03.png);
    width: 24%;
    height: 75%;
    left: -31%;
    top: 21%;
    background-repeat: no-repeat;
    background-size: contain;
}

@media print,
screen and (min-width: 992px) {
    .co-mt-9 {
        margin-top: 6rem;
    }

    .co-mt-17 {
        margin-top: 10rem;
    }
}

.lib-link__btn.rounded-pill::after {
    content: "→";
    font-family: sans-serif;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border: 2px solid #fff;
    border-radius: 50%;
    color: #fff;
    font-size: 1.2em;
    margin-left: 10px;
}

.co-after02 {
    position: relative;
}

.co-after02::after {
    content: "→";
    font-family: sans-serif;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border: 1px solid #fff;
    border-radius: 50%;
    color: #fff;
    font-size: 1.2em;
    margin-left: 10px;
    flex-direction: column-reverse;
}

@media print,
screen and (min-width: 992px) {
    .co-top03 li {
        min-height: 453px;
    }
}

.co-top03 .thumb {
    position: relative;
}

.co-top03 .thumb::before {
    content: '';
    position: absolute;
    /* z-index: 2; */
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: -moz-linear-gradient(top right, transparent 50%, #00428D);
    background: -webkit-linear-gradient(top right, transparent 50%, #00428D);
    background: linear-gradient(to bottom left, transparent 50%, #000);
}

.co-after03 {
    position: relative;
}

.co-after03::after {
    content: "→";
    font-family: sans-serif;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border: 1px solid var(--MAIN);
    border-radius: 50%;
    color: var(--MAIN);
    font-size: 0.8em;
    margin-left: 10px;
    flex-direction: column-reverse;
}

.co-after03:hover::after {
    color: var(--WHT);
    background-color: var(--MAIN);
    transition: 0.3s;
}


@media print,
screen and (min-width: 992px) {
    .co-top04 {
        margin-top: 277px;
    }
}

.co-top05 .lib-swiper__outer {
    position: relative;
}

.co-top05 .lib-swiper__btn:after {
    font-size: 3rem;
    font-family: icons !important;
    speak: none;
    font-style: inherit;
    font-weight: 400;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    position: static;
    content: "\ea01";
    color: var(--MAIN);
}

.co-after04 {
    position: relative;
}

.co-after04::after {
    content: "→";
    font-family: sans-serif;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border: 1px solid var(--WHT);
    border-radius: 50%;
    color: var(--WHT);
    font-size: 0.8em;
    margin-left: 10px;
    flex-direction: column-reverse;
}

@media print,
screen and (max-width: 768px) {
    .co-after04::after {
        width: 27px;
        height: 27px;
        border: 1px solid var(--WHT);
        border-radius: 50%;
        color: var(--WHT);
        font-size: 0.6em;
        margin-left: 10px;
        flex-direction: column-reverse;
    }
}

.co-after04:hover::after {
    color: var(--DEF);
    background-color: var(--WHT);
    transition: 0.3s;
}

.co-top06 .co-after04 {
    justify-content: start;
}

.co-top06 .lib-horizon__row {
    position: relative;
}

.co-top06 .co-after05 {
    position: absolute;
    width: 49%;
    top: 53%;
    left: 52%;
}

.co-after06 {
    position: relative;
}

.co-after06::after {
    content: "→";
    font-family: sans-serif;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border: 1px solid var(--ACC);
    border-radius: 50%;
    color: var(--ACC);
    font-size: 0.8em;
    margin-left: 10px;
    flex-direction: column-reverse;
}

.co-after06:hover::after {
    color: var(--WHT);
    background-color: var(--ACC);
    transition: 0.3s;
}

.co-top06 .border-other {
    border: 3px solid var(--OTH);
}

.co-top06 a.lib-card__item:hover .lib-card__title {
    color: var(--WHT);
    text-decoration: none;
}

.co-top06 .lib-fv__thumb {
    height: 100%;
}

.co-top06 .lib-fv__thumb {
    background-image: url(http://xs386194.xsrv.jp/tmp/wp-content/uploads/co-top24.png);
}

@media print,
screen and (min-width: 768px) {
    .co-top06 .lib-fv__thumb {
        background-image: url(http://xs386194.xsrv.jp/tmp/wp-content/uploads/co-top11.png);
    }
}

.ico-co-title02 {
    position: relative;
}

.ico-co-title02::before {
    content: '';
    position: absolute;
    background-image: url(http://xs386194.xsrv.jp/tmp/wp-content/uploads/co-top12.png);
    width: 24%;
    height: 75%;
    left: -31%;
    top: 21%;
    background-repeat: no-repeat;
    background-size: contain;
}

.co-top07 .lib-card__item:hover {
    background-color: var(--MAIN);
}

.co-top07 .lib-card__title {
    color: var(--MAIN);
}

.co-top07 .lib-card__item:hover .lib-card__title {
    text-decoration: none;
}

.co-top07 .lib-card__item:hover .lib-card__title span {
    color: var(--WHT);
}

.co-after07 {
    position: relative;
}

.co-after07::after {
    content: "→";
    font-family: sans-serif;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 47px;
    height: 42px;
    border: 1px solid var(--MAIN);
    border-radius: 50%;
    color: var(--MAIN);
    font-size: 0.8em;
    margin-left: 10px;
    flex-direction: column-reverse;
}

@media print,
screen and (max-width: 768px) {
    .co-after07::after {
        width: 30px;
        height: 27px;
        font-size: 0.6em;
    }
}

.co-after07:hover::after {
    color: var(--WHT);
    border: 1px solid var(--WHT);
    background-color: var(--MAIN);
    transition: 0.3s;
}

.co-top07 .lib-link__btn {
    justify-content: end;
}

.co-after08 {
    position: relative;
}

.co-after08::after {
    content: "→";
    font-family: sans-serif;
    display: flex;
    align-items: center;
    justify-content: center;
    /* width: 1px; */
    /* height: 42px; */
    color: var(--WHT);
    font-size: 1em;
    margin-left: 2px;
    flex-direction: column-reverse;
}

/* メインのコンテナのスタイル */
.angled-border-container {
    position: relative;
    display: inline-block;
    padding: 20px 40px;
    /* background-color: #3f477e; */
    color: #fff;
    font-size: 24px;
    font-weight: bold;
    border: none;
}

/* 1本目の斜めの白い枠線（::before） */
.angled-border-container::before {
    content: '';
    /* 疑似要素にはcontentプロパティが必要 */
    position: absolute;
    /* 親要素を基準に配置 */
    top: -10px;
    /* 上からの位置調整 */
    left: 0;
    width: 100%;
    height: 100%;
    border: 2px solid #fff;
    /* 白い枠線を作成 */
    transform: skewX(-20deg);
    /* 要素を斜めに変形 */
}

/* 2本目の斜めの白い枠線（::after） */
.angled-border-container::after {
    content: '';
    position: absolute;
    top: 10px;
    /* 上からの位置調整 */
    left: 0;
    width: 100%;
    height: 100%;
    border: 2px solid #fff;
    transform: skewX(-20deg);
}




/*------フォントサイズ-------*/
.fs-co-title {
    font-size: clamp( 1.75rem, calc( 1.125rem + 2.5vw ), 3rem ) !important;
}

/* ==================================
採用ヘッダー
===================================== */
/*---------- アコーディオンボタン（ヘッダー以外にも汎用可能） ----------*/
.c-btn-accordion {
    top: 0;
    right: 0;
    height: 2.5em;
    width: 2.5em;
    background-color: transparent;
    border: none;
}
.c-accordion-icon {
    display: block;
    width: 100%;
    height: 100%;
}
.c-accordion-icon::before,
.c-accordion-icon::after {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    right: 50%;
    transform: translate(50%, -50%);
    background-color: currentColor;
    transition: all 0.3s ease-in-out;
}
.c-accordion-icon::before {
    width: 1em;
    height: 2px;
}
.c-accordion-icon::after {
    width: 2px;
    height: 1em;
}
.c-accordion-icon.is-active::after {
    opacity: 0;
}


/* ハンバーガーボタン調整 */
/* .p-header .lib-menu__btn::after {
content: "Menu";
display: block;
position: absolute;
right: 0;
bottom: 0.5em;
left: 0;
line-height: 1;
font-family: "Oswald";
text-transform: uppercase;
color: var(--WHT);
}
.p-header .lib-menu__btn > .line:nth-of-type(1) {
top: calc(50% - 1px - 1em);
}
.p-header .lib-menu__btn > .line:nth-of-type(2) {
top: calc(50% - 1px - 0.5em);
}
.p-header .lib-menu__btn > .line:nth-of-type(3) {
top: calc(50% - 1px);
bottom: unset;
}
.p-header .lib-menu__btn.is-open::after {
content: "Close";
}
.p-header .lib-menu__btn[aria-expanded="true"] > .line:nth-of-type(1) {
-webkit-transform: translateY(calc(50% - 1px + 0.5em)) rotate(-45deg);
transform: translateY(calc(50% - 1px + 0.5em)) rotate(-45deg);
}
.p-header .lib-menu__btn[aria-expanded="true"] > .line:nth-of-type(3) {
-webkit-transform: translateY(calc(50% - 1px - 0.5em)) rotate(45deg);
transform: translateY(calc(50% - 1px - 0.5em)) rotate(45deg);
} */


@media print,
screen and (min-width: 576px) {
    .re-mv .lib-fv__thumb {
        height: auto;
    }
}

.lib-fv-002 h1 {
    font-style: italic;
}

@media print,
screen and (min-width: 768px) {
    .lib-fv-002 .lib-fv__txtarea {
        align-items: end;
    }
}

.mvfs-75 {
    font-size: clamp(2.4375rem, calc(1.525337837837838rem + 3.8918918918918917vw), 4.6875rem);
}

.mvfs-75 {
    font-size: clamp(2.4375rem, calc(1.525337837837838rem + 3.8918918918918917vw), 4.6875rem);
}

.mvfs-55 {
    font-size: clamp(1.75rem, calc(1.0658783783783785rem + 2.918918918918919vw), 3.4375rem);
}

@media print,
screen and (min-width: 992px) {
    .lib-header__outer.lib-header-BS02 .lib-induce__outer {
        top: 50%;
        height: auto;
        transform: translateY(-50%);
        right: 1%;
    }
}

@media print,
screen and (min-width: 992px) {
    .lib-utility__item~li:before {
        display: none;
    }
}

@media print,
screen and (min-width: 992px) {
    .lib-header__inner {
        width: 95%;
    }
}

@media print,
screen and (min-width: 992px) {
    .is-scroll .lib-header__outer.lib-header-BS02 .lib-induce__outer {
        height: 50px;
    }
}

/*header-sp*/
@media print,
screen and (max-width: 992px) {
    .lib-header__bar,
    .lib-header__inner {
        background-color: transparent;
        box-shadow: none;
        border-radius: unset !important;
    }

    .lib-menu__btn {
        background-color: transparent;
        border: none;
    }

    .lib-header__bar {
        position: relative;
    }

    .lib-header__bar::before {
        content: '';
        position: absolute;
        width: 100px;
        height: 60px;
        background-color: var(--WHT);
        z-index: -1;
        left: 1%;
        border-radius: 7%;
        border-top-right-radius: unset !important;
        border-top-left-radius: unset !important;
    }
}

.lib-menu__btn>.line {
    background-color: #000;
}

.is-open .lib-nav__panel {
    top: 0;
    background-color: #fff;
    padding-top: 6rem;
}

.is-open .lib-nav__item {
    border-top: none;
}

.is-open .lib-nav__list {
    border-bottom: none;
    box-shadow: none;

}

@media print,
screen and (max-width: 991.8px) {
    .is-open .lib-utility__item:nth-child(even) {
        margin-right: 0;
    }
}

.is-open .lib-utility__item a:not([class*=__btn])>.txt {
    justify-content: center;
}

@media print,
screen and (max-width: 991.8px) {
    .is-open .lib-utility__item:nth-child(odd) {
        margin-left: 0;
    }
}

.is-open .lib-utility__item {
    width: 100%;
    border-bottom: none;
}

.is-open .lib-utility__item:nth-child(odd) {
    border-right: none;
}

.is-open .lib-nav__outer {
    padding: 0 40px 30px;
}

@media print,
screen and (min-width: 576px) and (max-width: 991.8px) {
    .is-open .lib-nav__panel {
        max-width: 100%;
    }
}

@media print,
screen and (max-width: 991.8px) {
    .is-open .lib-utility__list:not(:has(.lib-induce__btn)):after {
        background: none;
    }
}

/*251201追記*/
/* @media print, screen and (min-width: 992px) {
    .lib-header__outer.lib-header-BS02 .lib-nav__list>li~li {
margin-left: 10px !important;
}
}

@media print, screen and (min-width: 1100px) {
.lib-header__outer.lib-header-BS02 .lib-nav__list>li~li {
margin-left: 20px;
} */

/* ========================================
採用フッター
======================================== */
.recruit.lib-cta__outer .lib-link__btn {
    min-height: 215px;
}

.ctafs-48 {
    font-size: clamp(1.375rem, calc(0.7162162162162162rem + 2.810810810810811vw), 3rem);
}
.ctafs-74 {
    font-size: clamp(2.125rem, calc(1.1114864864864864rem + 4.324324324324325vw), 4.625rem);
}
.ctafs-101 {
    font-size: clamp(2.875rem, calc(1.4814189189189189rem + 5.9459459459459465vw), 6.3125rem);
}

.ctafs-80 {
    font-size: clamp(3rem, calc(2.189189189189189rem + 3.4594594594594597vw), 5rem);
}

.recruit.lib-cta__outer h2 {
    font-style: italic;
}

.lib-cta__outer .lib-link__btn {
    position: relative;
}

.lib-cta__outer .lib-link__btn.cta01::after {
    content: "→";
    position: absolute;
    font-family: sans-serif;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border: 2px solid var(--LACC);
    border-radius: 50%;
    color: var(--LACC);
    font-size: 1.2em;
    margin-left: 10px;
    bottom: 7%;
    right: 7%;
}

.lib-cta__outer .lib-link__btn.cta02::after {
    content: "→";
    position: absolute;
    font-family: sans-serif;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border: 2px solid var(--MAIN);
    border-radius: 50%;
    color: var(--MAIN);
    font-size: 1.2em;
    margin-left: 10px;
    bottom: 7%;
    right: 7%;
}

.text-shadow-wh {
    text-shadow: 0 0 10px rgba(255, 255, 255, 1);
}

.lib-cta__outer .bg-wht[class*=__btn]:hover {
    background-color: var(--WHT);
}

.cta01 .txt {
    background: radial-gradient(circle at center, #ffffff 0%, transparent 100%);
    box-shadow: 0 0 50px rgba(255, 255, 255, 0.7);
}

/*------footer------*/
.lib-footer__copyright {
    text-align: end;
}

@media print,
screen and (max-width: 768px) {
    .lib-footer__copyright {
        text-align: center;
    }
}

@media print,
screen and (min-width: 768px) {
    .lib-footer__info {
        position: relative;
        padding-bottom: 8px;
        border-right: var(--LGRY) 3px solid;
    }

    .lib-footer__info::before {
        content: "";
        -ms-flex-negative: 0;
        flex-shrink: 0;
        width: 3px;
        height: 4rem;
        background-color: var(--MAIN);
        display: block;
        position: absolute;
        right: -3px;
        bottom: 0;
    }
}

@media print,
screen and (max-width: 767px) {
    .lib-footer__gnav {
        position: relative;
        padding-bottom: 8px;
        border-top: var(--LGRY) 3px solid;
    }

    .lib-footer__gnav::before {
        content: "";
        -ms-flex-negative: 0;
        flex-shrink: 0;
        width: 4rem;
        height: 3px;
        background-color: var(--DEF);
        display: block;
        position: absolute;
        top: -3px;
        left: 0;
    }
}

@media print,
screen and (min-width: 992px) {
    .lib-footer__title:not(:has(.lib-footer__list)) {
        margin-top: 30px;
    }
}

.lib-footer__title>a {
    border-top: none;
    border-bottom: none;
    background-color: transparent;
}

.lib-footer__list {
    display: block;
}

@media print,
screen and (max-width: 768px) {
    .sp-cols-2>* {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
        flex: 0 0 auto;
        width: 50%
    }
}

.lib-header__logo img {
    width: 77px;
}

@media print,
screen and (min-width: 992px) {
    .lib-header__logo img {
        width: 147px;
    }
}

.lib-footer__guidance>li~li:before {
    background-color: var(--DGRY);
}



/* ========================================
採用TOP
======================================== */
body {
    overflow-x: clip;
}

.ff-kosugimaru {
    font-family: "Kosugi Maru", sans-serif;
}

.top-hover:hover {
    box-shadow: 0 6px 10px rgba(0, 0, 0, 0.2);
    transform: translateY(-2px);
}

.lib-fixed__bnr {
    display: none;
}

.lib-rss__001 .lib-rss__list>li {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap
}

.lib-rss__001 .lib-rss__date {
    display: block;
    width: 8em
}

.lib-rss__001 .lib-rss__title {
    width: calc(100% - 8em);
    margin-top: 0;
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start
}

.lib-rss__001 .lib-rss__title .chip {
    position: static;
    margin-right: 10px;
    display: inline-block;
    margin-top: .1rem
}

.lib-rss__001 .lib-rss__title a {
    text-decoration: none;
    padding-right: 30px;
    position: relative
}

.lib-rss__001 .lib-rss__title a:not([target=_blank]):after {
    content: "\ea01";
    font-family: icons !important;
    speak: none;
    font-style: normal;
    font-weight: 400;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-size: .75rem;
    position: absolute;
    right: 0;
    top: calc(50% - 3px)
}

.lib-rss__001 .lib-rss__title a {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start
}

.lib-rss__001 .lib-rss__contents {
    width: 100%
}

:where(a):where(:not([class*=lib-])):where(:not([class*=hover-])) {
    text-decoration: none;
    color: var(--DEF);
    -webkit-transition: .3s;
    transition: .3s;
}

html:has(.re-mv) {
    #wrapper {
        padding-top: 0;
    }
}

/*-----------リンクボタン-----------*/
/* ボタン全体のスタイル */
.rec.lib-link__btn.rounded-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-image: linear-gradient(to right, #63cce8, #62ead8);
    padding: 15px 30px;
    color: #fff;
    font-size: 1.2em;
    font-weight: bold;
    transition: all 0.3s ease;
    /*     border: 2px solid var(--ACC) !important; */
}

.rec.lib-link__btn.rounded-pill:hover {
    background-image: none;
    padding: 15px 30px;
    color: var(--ACC);
    font-size: 1.2em;
    font-weight: bold;
    transition: all 0.3s ease;
    border: ;
}

/* テキストのスタイル */
.lib-link__btn .txt {
    margin-right: 0px;
    /* テキストとアイコンの間にスペース */
}

/* ホバー時のスタイル */
/* .lib-link__btn.rounded-pill:hover {
    box-shadow: 0 6px 10px rgba(0, 0, 0, 0.2);
    transform: translateY(-2px);
} */

/* アイコン（矢印）のスタイル */
.lib-link__btn.rounded-pill::after {
    content: "→";
    font-family: sans-serif;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border: 2px solid var(--MAIN);
    border-radius: 50%;
    color: var(--MAIN);
    font-size: 1em;
    margin-left: 0px;
    font-weight: 500;
    background: var(--WHT);
}

.lib-link__btn.rounded-pill:hover {
    background-color: var(--WHT);
    color: var(--MAIN);
}

@media print and (hover: hover) and (pointer: fine),
screen and (min-width: 992px) and (hover: hover) and (pointer: fine) {
    .lib-utility__item a:not([class*=__btn]):hover .txt {
        text-decoration: none;
        background-color: var(--ACC);
        color: var(--WHT) !important;
        transition: 0.3s;
    }
}

.lib-rss__list>li .chip {
    position: unset;
}

.top01 .lib-title__outer h2 {
    position: relative;
}

.top01 .lib-title__outer h2::before {
    content: '';
    position: absolute;
    background-image: url(http://xs386194.xsrv.jp/tmp/wp-content/uploads/News.png);
    background-repeat: no-repeat;
    width: 49%;
    height: 261%;
    top: -31%;
    left: 16%;
    background-size: contain;
    z-index: 3;
}

@media print,
screen and (max-width: 768px) {
    .top01 .lib-title__outer h2::before {
        left: 46%;
    }
}

.top02 h2 {
    font-size: clamp(2.0625rem, calc(1.3783783783783785rem + 2.918918918918919vw), 3.75rem);
}

.top02 .lib-card__txtarea.justify-content-end {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 15px 30px;
    color: #fff;
    font-size: 1.2em;
    font-weight: bold;
    transition: all 0.3s ease;
    border: none;
}

.top02 .lib-card__txtarea.justify-content-end::after {
    content: "→";
    font-family: sans-serif;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 57px;
    height: 57px;
    border: 2px solid #fff;
    border-radius: 50%;
    color: #fff;
    font-size: 1.7rem;
    margin-left: 20px;
}

@media print,
screen and (max-width: 768px) {
    .top02 .lib-card__txtarea.justify-content-end::after {
        width: 30px;
        height: 30px;
        font-size: 1.2rem;
    }
}

.top02 .lib-card__txtarea {
    flex-direction: row;
}

.top02 .p-bg {
    background-repeat: no-repeat;
    background-size: 80%;
    background-position: left center;
    position: relative;
    z-index: 1;
}

.top02-01 .lib-card__item {
    position: relative;
}

.top02-01 .lib-card__item::before {
    position: absolute;
    background-image: linear-gradient(to left, #53cdc0, transparent);
    width: 100%;
    height: 100%;
}

@media print,
screen and (min-width: 768px) {
    .lib-cnt-ride__outer .lib-card__item {
        margin-top: 0;
        max-width: 780px;
        min-height: 300px;
        margin-right: auto;
    }
}

.top03 h2 {
    font-style: italic;
    background-image: linear-gradient(to right, #63cce8, #62ead8);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

.top-title {
    display: inline-flex;
    align-items: center;
    background-image: linear-gradient(to right, #63cce8, #62ead8);
    padding: 15px 40px;
    transition: all 0.3s ease;
    border: none;
}

.fs-48 {
    font-size: 3rem;
}

@media print,
screen and (max-width: 992px) {
    .fs-48 {
        font-size: 1.6rem
    }
}

.w-80 {
    width: 80% !important;
}

@media print,
screen and (min-width: 768px) {
    .w-md-50 {
        width: 50% !important;
    }

    .w-md-60 {
        width: 60% !important;
    }
}

@media print,
screen and (min-width: 1100px) {
    .w-xxl-60 {
        width: 60% !important;
    }
}

.contentfs-68 {
    font-size: clamp(2.0625rem, calc(1.1756756756756757rem + 3.783783783783784vw), 4.25rem);
}

.top04 .lib-title__outer h2 {
    position: relative;
}

.top04 .lib-title__outer h2::before {
    content: '';
    position: absolute;
    background-image: url(http://xs386194.xsrv.jp/tmp/wp-content/uploads/2025/07/recruit04.png);
    background-repeat: no-repeat;
    width: 100%;
    height: 153%;
    top: -83%;
    left: -25%;
    background-size: contain;
    z-index: -1;
}

@media print,
screen and (max-width: 768px) {
    .top04 .lib-title__outer h2::before {
        top: -93%;
        left: -39%;
    }
}

.gradient-text {
    background: linear-gradient(to right, #63cce8, #62ead8);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

.top05 .lib-title__outer h2 {
    position: relative;
}

.top05 .lib-title__outer h2::before {
    content: '';
    position: absolute;
    background-image: url(http://xs386194.xsrv.jp/tmp/wp-content/uploads/recruit06.png);
    background-repeat: no-repeat;
    width: 100%;
    height: 153%;
    top: -143%;
    left: 67%;
    background-size: contain;
    z-index: -1;
}

.mt-15 {
    margin-top: 15rem !important;
}

.top06 .lib-title__outer h2 {
    position: relative;
}

.top06 .lib-title__outer h2::before {
    content: '';
    position: absolute;
    background-image: url(http://xs386194.xsrv.jp/tmp/wp-content/uploads/recruit07.png);
    background-repeat: no-repeat;
    width: 100%;
    height: 153%;
    top: -99%;
    left: -44%;
    background-size: contain;
    z-index: -1;
}

.top06 .swiper-slide {
    margin-right: 50px;
}

/*-----------あしらい-----------*/
.top02-bg {
    position: relative;
}

.top02-bg::before {
    content: '';
    position: absolute;
    background-image: url(http://xs386194.xsrv.jp/tmp/wp-content/uploads/recruit-design01.png);
    background-repeat: no-repeat;
    width: 50%;
    height: 86%;
    top: -29%;
    left: 0%;
    background-size: contain;
    z-index: -1;
}

.top02-bg::after {
    content: '';
    position: absolute;
    background-image: url(http://xs386194.xsrv.jp/tmp/wp-content/uploads/recruit-design02.png);
    background-repeat: no-repeat;
    width: 24%;
    height: 106%;
    top: -5%;
    right: -6%;
    background-size: contain;
    z-index: -1;
}

@media print,
screen and (max-width: 768px) {
    .top02-bg::after {
        width: 45%;
        height: 50%;
        top: 71%;
        z-index: 1;
    }
}

.top03 .lib-cnt-009__txtarea {
    position: relative;
}

.top03 .lib-cnt-009__txtarea::before {
    content: '';
    position: absolute;
    background-image: url(http://xs386194.xsrv.jp/tmp/wp-content/uploads/recruit-design10.png);
    background-repeat: no-repeat;
    width: 100%;
    height: 150%;
    top: 0%;
    right: -41%;
    background-size: contain;
    z-index: 0;
}

@media print,
screen and (max-width: 768px) {
    .top03 .lib-cnt-009__txtarea::before {
        top: -150%;
    }
}

.top05 .lib-card__thumb {
    position: relative;
}

.top05 .lib-card__thumb::before {
    content: '';
    position: absolute;
    background-image: url(http://xs386194.xsrv.jp/tmp/wp-content/uploads/recruit-design11.png);
    background-repeat: no-repeat;
    width: 50%;
    height: 50%;
    top: -10%;
    right: 51%;
    background-size: contain;
    z-index: -1;
}

.top05-bg {
    position: relative;
}

.top05-bg::before {
    content: '';
    position: absolute;
    background-image: url(http://xs386194.xsrv.jp/tmp/wp-content/uploads/recruit-design06.png);
    background-repeat: no-repeat;
    width: 20%;
    height: 61%;
    top: 60%;
    left: 0;
    background-size: contain;
    z-index: -1;
}

.top05-bg::after {
    content: '';
    position: absolute;
    background-image: url(http://xs386194.xsrv.jp/tmp/wp-content/uploads/recruit-design07.png);
    background-repeat: no-repeat;
    width: 11%;
    height: 43%;
    top: 56%;
    right: 0%;
    background-size: contain;
    z-index: 0;
}

@media print,
screen and (max-width: 768px) {
    .top05-bg::before {
        width: 20%;
        height: 16%;
        top: 90%;
    }

    .top05-bg::after {
        width: 30%;
        height: 34%;
        top: 29%;
    }
}

.top06-bg {
    position: relative;
}

.top06-bg::before {
    content: '';
    position: absolute;
    background-image: url(http://xs386194.xsrv.jp/tmp/wp-content/uploads/recruit-design08.png);
    background-repeat: no-repeat;
    width: 45%;
    height: 79%;
    top: -12%;
    left: 0;
    background-size: contain;
    z-index: -2;
}

.top06-bg::after {
    content: '';
    position: absolute;
    background-image: url(http://xs386194.xsrv.jp/tmp/wp-content/uploads/recruit-design09.png);
    background-repeat: no-repeat;
    width: 14%;
    height: 46%;
    top: 57%;
    right: 0;
    background-size: contain;
    z-index: -1;
}

@media print,
screen and (max-width: 768px) {
    .top06-bg::before {
        width: 58%;
        height: 32%;
        top: -6%;
    }

    .top06-bg::after {
        width: 48%;
    }
}

.lib-swiper__control {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: space-between;
    margin-top: 30px;
    position: absolute;
    top: 50%;
    width: 107%;
    left: 0;
    z-index: 2;
}


.lib-swiper__btn:after {
    font-size: 3rem;
    font-family: icons !important;
    speak: none;
    font-style: normal;
    font-weight: 400;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    position: static;
    content: "\ea01";
    color: var(--LACC);
}

.lib-swiper__btn {
    width: 60px;
    height: 60px;
    background-color: transparent;
    border: none;
    z-index: 0;
    -webkit-transition: .3s;
    transition: .3s;
}






/* ========================================
下層
======================================== */
/*--------タイトル----------*/
.fs-title {
    font-size: clamp(1.875rem, calc(0.9881756756756757rem + 3.783783783783784vw), 4.0625rem);
}

.text-title {
    color: #0080D4;
}

/* ========================================
インフォグラフィック
======================================== */
.bg-graphic {
    background-image: linear-gradient(to right, #63cce8, #62ead8);
    padding: 10px 20px;
}

.ff-nunitosans {
    font-family: "Nunito Sans", sans-serif;
}

.fs-80 {
    font-size: clamp(2.5rem, calc(1.4864864864864864rem + 4.324324324324325vw), 5rem);
}

.fs-161 {
    font-size: clamp(6.25rem, calc(4.704391891891891rem + 6.594594594594596vw), 10.0625rem);
}

.fs-93 {
    font-size: clamp(4.6875rem, calc(4.231418918918919rem + 1.9459459459459458vw), 5.8125rem);
}

.fs-63 {
    font-size: clamp(2.875rem, calc(2.4442567567567566rem + 1.8378378378378377vw), 3.9375rem);
}

.fs-46 {
    font-size: clamp(2rem, calc(1.6452702702702702rem + 1.5135135135135136vw), 2.875rem);
}

.fs-116 {
    font-size: clamp(5.625rem, calc(4.966216216216216rem + 2.810810810810811vw), 7.25rem);
}

.fs-143 {
    font-size: clamp(6.875rem, calc(6.038851351351351rem + 3.567567567567568vw), 8.9375rem);
}

.fs-50 {
    font-size: clamp(2.25rem, calc(1.8952702702702702rem + 1.5135135135135136vw), 3.125rem);
}

.fs-88 {
    font-size: 80px;
}

.fs-72 {
    font-size: clamp(3.4375rem, calc(3.0067567567567566rem + 1.8378378378378377vw), 4.5rem);
}

.le-space-n5 {
    letter-spacing: -5px;
}

@media print,
screen and (max-width: 768px) {
    .max-min-100 {
        max-width: 100px;
    }
}

.ff-montserrat {
    font-family: "Montserrat", sans-serif;
}

.text-gradient {
    background: linear-gradient(45deg, #63cce8, #62ead8);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

.vertical-text {
    writing-mode: vertical-rl;
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: vertical-rl;
    text-orientation: upright;
}

.max-80 {
    max-width: 80px;
}

@media print,
screen and (min-width: 768px) {
    .max-md-100 {
        max-width: 100px;
    }
}

.pa-text01 {
    position: absolute;
    top: 90%;
    left: 38%;
}

.pa-text02 {
    position: absolute;
    top: 90%;
    left: 71%;
}

@media print,
screen and (max-width: 992px) {
    .pa-text01 {
        top: 82%;
        left: 41%;
    }

    .pa-text02 {
        top: 82%;
        left: 65%;
    }
}

@media print,
screen and (max-width: 500px) {
    .pa-text01 {
        top: 82%;
        left: 39%;
    }

    .pa-text02 {
        top: 82%;
        left: 68%;
    }
}

.pa-text03 {
    position: absolute;
    top: -34%;
    right: 0%;
}

.graphic01 {
    position: relative;
}

.graphic01::after {
    content: '';
    position: absolute;
    width: 70%;
    height: 70%;
    background-image: url(http://xs386194.xsrv.jp/tmp/wp-content/uploads/graphic01.png);
    background-repeat: no-repeat;
    top: -30%;
    left: 18%;
    background-size: contain;
}

.graphic02 {
    position: relative;
}

.graphic02::after {
    content: '';
    position: absolute;
    width: 50%;
    height: 50%;
    background-image: url(http://xs386194.xsrv.jp/tmp/wp-content/uploads/graphic02.png);
    background-repeat: no-repeat;
    top: -40%;
    left: 25%;
    background-size: contain;
}

.graphic04 {
    position: relative;
}

.graphic04::after {
    content: '';
    position: absolute;
    width: 50%;
    height: 50%;
    background-image: url(http://xs386194.xsrv.jp/tmp/wp-content/uploads/graphic04.png);
    background-repeat: no-repeat;
    top: 75%;
    left: 64%;
    background-size: contain;
}

.graphic05 {
    position: relative;
}

.graphic05::after {
    content: '';
    position: absolute;
    width: 50%;
    height: 50%;
    background-image: url(http://xs386194.xsrv.jp/tmp/wp-content/uploads/graphic05.png);
    background-repeat: no-repeat;
    top: 60%;
    left: 80%;
    background-size: contain;
}

.graphic013 {
    position: relative;
}

.graphic013::before {
    content: '';
    position: absolute;
    top: 0%;
    left: 79%;
    width: 60%;
    height: 60%;
    background-image: url('http://xs386194.xsrv.jp/tmp/wp-content/uploads/graphic013.png');
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    z-index: 0;
}

.graphic012 {
    position: relative;
}

.graphic012::before {
    content: '';
    position: absolute;
    top: 20%;
    left: -35%;
    width: 50%;
    height: 70%;
    background-image: url('http://xs386194.xsrv.jp/tmp/wp-content/uploads/graphic012.png');
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    z-index: 0;
}

/* ========================================
コーポ下層
======================================== */
/* 疑似要素の削除 */
.no-before::before,
.no-after::after {
    content: unset !important;
}

/* .lib-txt__outer>p {
	line-height: 1.5rem;
} */

/* .lib-card__txt {
	line-height: 1.5rem;
} */
.corp-title {
    font-size: clamp(2rem, calc(1.1638513513513513rem + 3.567567567567568vw), 3.4625rem);
}

.corp-subtitle {
    font-size: clamp(1.25rem, calc(0.8699324324324325rem + 1.6216216216216217vw), 2.1875rem);
}

@media print,
screen and (max-width: 992px) {
    .js-page-main {
        padding-top: 60px;
    }
}

/*会社概要*/
.fs-24-50 {
    font-size: clamp(1.5rem, calc(0.8412162162162162rem + 2.810810810810811vw), 3.125rem) !important;
}

/* .lib-card__title {
    font-size: 3.2rem;
} */

/* .fs-18 {
	font-size: 18px !important;
} */

.flow01 .lib-flow-002__step>p .num {
    font-size: 1.3rem;
}

.corp-table th,
.corp-table thead {
    border: var(--WHT) 1px solid;
    background-color: transparent;
    color: var(--DEF);
    text-align: start;
    border-bottom: 1px solid var(--GRY);
}

.corp-table td {
    border: none;
    border-bottom: 1px solid var(--GRY);
    font-weight: bold;
}

.corp-table tbody>tr>th:first-child {
    border-left-color: transparent;
}

.lib-flow-002__step>p {
    width: 90px;
    height: 90px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    line-height: 1;
    border-radius: 50%;
    font-weight: 700;
}

@media print,
screen and (min-width: 992px) {
    .lib-flow-002__step>p {
        width: 150px;
        height: 150px;
        line-height: 1.5;
    }
}

/*FYFの強み*/
.c-head-num::before,
.c-head-num::after {
    content: "";
    display: block;
    height: 2px;
    /* width: 5em; */
    flex-grow: 1;
    background-color: var(--MAIN);
}

/*ITコンサルティング*/
.lib-indent__list.--check>li {
    position: relative;
    padding-left: 1.5em;
}

.lib-indent__list.--check>li::before {
    content: "✓";
    /* チェックマークの文字 */
    position: absolute;
    top: 50%;
    /* 垂直方向の中央に移動 */
    left: 0;
    /* 左端に配置 */

    /* 垂直方向の微調整 */
    transform: translateY(-50%);

    /* フォントと色の設定 */
    font-size: 1.2em;
    /* チェックマークを大きくする */
    color: var(--MAIN);
    /* チェックマークの色（青を想定。必要に応じて変更） */
    font-weight: bold;

    /* 不要なプロパティを削除または修正 */
    width: auto;
    /* width/heightは文字サイズに依存させる */
    height: auto;
    border-radius: 0;
    display: block;
}

.after-darr {
    width: 100%;
    position: relative;
    margin-bottom: 6rem;
}

.after-darr:after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -80px;
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-style: solid;
    border-color: transparent;
    border-width: 66px 67px 0 67px;
    border-top-color: var(--GRY)
}

/*ITインフラ*/
.page-id-430 .fs-16 {
    font-size: 16px !important;
}
.page-id-430 .fs-18 {
    font-size: 18px !important;
}
.page-id-430 .fs-20 {
    font-size: 20px !important;
}

/*新着情報*/
.js-page-main {
    background-color: transparent;
}

.information .c-under-mv-text-en {
    font-size: clamp(2rem, calc(1.1638513513513513rem + 3.567567567567568vw), 4.0625rem);
    color: var(--MAIN);
    font-weight: 900;
    text-transform: uppercase;
}

.information .lib-hero__title {
    /* font-size: clamp(1.25rem, calc(0.8952702702702703rem + 1.5135135135135136vw), 2.125rem);
    margin-top: 1.2rem; */
    color: var(--MAIN);
}

/*新着情報詳細*/
:where(.lib-indent__list).--bigdots>li {
    position: relative;
    padding-left: 1rem;
}

:where(.lib-indent__list).--bigdots>li::before {
    content: "";
    width: 10px;
    height: 10px;
    border-radius: 5px;
    top: .5em;
    left: 0;
    position: absolute;
    display: block;
    background-color: var(--MAIN);
}

/*ESMO*/
.after-arr {
    position: relative;
}

/* セレクタの修正：スペースを削除し、疑似要素セレクタを正しく記述 */
.after-arr::after {
    content: '';
    /* 疑似要素を表示するために必須 */
    position: absolute;
    /* 位置指定のために必須 */

    /* 矢印の形状と色 */
    width: 0;
    height: 0;
    border-style: solid;
    border-color: transparent;
    border-width: 20px 22px 0 22px;
    border-top-color: var(--MAIN);
    /* 矢印の色 */

    /* 位置の調整 */
    right: -25px;
    top: 50%;

    /* 垂直方向の中央揃えと回転 */
    -webkit-transform: translateY(-50%) rotate(-90deg);
    transform: translateY(-50%) rotate(-90deg);
}

@media print,
screen and (max-width: 992px) {
    .after-arr::after {
        content: '';
        /* 疑似要素を表示するために必須 */
        position: absolute;
        /* 位置指定のために必須 */

        /* 矢印の形状と色 */
        width: 0;
        height: 0;
        border-style: solid;
        border-color: transparent;
        border-width: 25px 30px 0 30px;
        border-top-color: var(--MAIN);
        /* 矢印の色 */

        /* 位置の調整 */
        right: 50%;
        top: 102%;

        /* 垂直方向の中央揃えと回転 */
        -webkit-transform: translateY(-50%) rotate(-90deg);
        transform: translateX(50%) rotate(-0deg);
    }
}

.corp-faq .lib-cnt-021__btn:before,
.corp-faq .lib-cnt-021__panel:before {
    position: absolute;
    content: "Q";
    font-weight: 700;
    left: 0;
    color: #1F3863;
    width: 30px;
    height: 30px;
    background-color: transparent;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    font-size: 1.125rem;
}

.corp-faq .lib-cnt-021__panel:before {
    content: "A";
    background-color: transparent;
    top: 0;
    color: #EF2324;
}

.bg-esmo {
    background-color: var(--LGRY);
}

/* ========================================
投稿
======================================== */
/*---------- ページネーション ----------*/
.p-navi {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    /* align-items: baseline; */
    align-items: center;
    gap: 0.5em;
}
.p-navi .page-numbers {
    min-width: 2em;
    min-height: 2em;
    text-align: center;
    line-height: 1;
    display: inline-flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    /* border: 1px solid var(--DEF); */
    border-radius: 50em;
    text-decoration: none;
    font-size: .875em;
}
@media print,
screen and (min-width: 768px) {
    .p-navi .page-numbers {
        font-size: 1em;
    }
}
@media print,
screen and (min-width: 1400px) {
    .p-navi .page-numbers {
        font-size: 1.25em;
    }
}
.p-navi .page-numbers.current,
.p-navi a.page-numbers:hover {
    background-color: var(--DEF);
    color: var(--WHT);
}
.p-navi .page-numbers.prev,
.p-navi .page-numbers.next {
    border: 1px solid var(--DEF);
}

.bg-esmo {
    background-color: var(--);
}

.lib-link__btn.rounded-pill.corp-darr::after {
    content: "→";
    /* 矢印の文字 */
    font-family: sans-serif;
    /* 矢印のフォントを汎用的なものにする */
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    /* アイコンの幅 */
    height: 30px;
    /* アイコンの高さ */
    border: 2px solid #fff;
    /* 白い円の枠線 */
    border-radius: 50%;
    /* 円形にする */
    color: var(--MAIN);
    /* 矢印の色 */
    font-size: 1em;
    /* 矢印のサイズ */
    font-weight: 500;
    margin-left: 10px;
    /* テキストからの間隔 */
    transform: rotate(90deg);
    border: 1px solid var(--MAIN);
}


/* ========================================
Contactform - お問い合わせフォーム
======================================== */
.wpcf7-spinner {
    display: none;
}

/*LP*/
/* .elementor-widget-text-editor {
    color: var(--DEF);
}

.page-id-815>p,
.page-id-815>li,
.page-id-815>div {
	  color: var(--DEF) !important;
} */

.fs-normal {
    font-style: normal !important;
}

.bg-noman {
    background-image: url(/tmp/wp-content/uploads/11-480x290-1-e1694482555586.png);
    min-height: 400px;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    background-color: var(--LMAIN);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}

.bg-doray {
    /* background-image: url(/tmp/wp-content/uploads/e2efef7ad9ade6cb0001648430040568.jpg); */
    min-height: 400px;
    background-repeat: no-repeat;
    background-position: center -15%;
    background-size: cover;
    background-color: var(--LMAIN);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}

@media print,
screen and (min-width: 992px) {
    .bg-noman {
        min-height: 500px;
        padding-top: 0px;
    }
    .bg-doray {
        min-height: 600px;
        padding-top: 120px;
    }
}

.lp-after-arr {
    position: relative;
}

.lp-after-arr::after {
    content: '';
    position: absolute;
    width: 0;
    height: 0;
    border-style: solid;
    border-color: transparent;
    border-width: 20px 22px 0 22px;
    border-top-color: var(--MAIN);
    left: 50%;
    bottom: -6%;
    /* -webkit-transform: translateY(-50%) rotate(-90deg); */
    transform: translateX(-50%);
}

@media print,
screen and (min-width: 992px) {
    .lp-after-arr::after {
        bottom: -20%;
    }
}

.lp-iframe {
    width: 100%;
    aspect-ratio: 16/9;
    margin-left: auto;
    margin-right: auto;
}

/*-----------1111-12修正-------------*/
.le-1 {
    letter-spacing: 1px;
}

/*採用ヘッダー*/
@media print,
screen and (min-width: 992px) {
    .p-header.--recruit .lib-nav__panel {
        width: calc(100% - 200px);
        margin-left: auto;
    }
}

@media print,
screen and (min-width: 992px) {
    .top05 .recruit-top-r {
        margin-top: -2rem;
    }
}

.u-rounded-16 {
    border-radius: 16rem !important;
    border-top-right-radius: unset !important;
    border-bottom-right-radius: unset !important;
}

.graphic012.top-info::before {
    content: '';
    position: absolute;
    top: 20%;
    left: -22%;
    width: 50%;
    height: 70%;
    background-image: url('http://xs386194.xsrv.jp/tmp/wp-content/uploads/graphic012.png');
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    z-index: 0;
}

@media print,
screen and (min-width: 495px) {
    .graphic012.top-info::before {
        left: -10%;
    }
}

/* 追加CSS */

:where(h1, h2, h3, h4, h5, h6, p, li, dt, dd, th, td, figcaption, button, sub, sup, a, div) {
    letter-spacing: 0.1em;
}
.lib-nav__btn {
    font-feature-settings: "palt";
    letter-spacing: 0.1em;
}
.lib-title__outer :where(.title) {
    line-height: 1.5;
}
table.lib-table__01 td {
    line-height: 2 !important;
}
:where(.lib-link__btn) {
    padding-left: 0 !important;
}
.lib-induce__btn {
    padding-left: 0 !important;
}
.max-250 {
    max-width: 270px !important;
}
@media print,
screen and (min-width: 1400px) {
    .fs-xxl-30 {
        font-size: 1.875rem;
    }
}
@media print,
screen and (min-width: 992px) {
    .fs-lg-30 {
        font-size: 1.875rem;
    }
}

/*---251201追記---*/
.lh-17 {
    line-height: 1.7 !important;
}
.dataTable .c-label-03 {
    background: #3c91cc;
}
.dataTable .c-label {
    align-items: center;
    border: none;
    border-radius: 4px;
    color: #fff;
    display: inline-flex;
    font-size: 0.8rem;
    font-weight: normal;
    height: 24px;
    line-height: 1;
    padding: 1px 8px !important;
    white-space: nowrap;
}
.dataTable ul li {
    padding-left: 0;
    margin-top: 0;
}
.dataTable ul li:before {
    display: none;
}
.dataTable .c-label-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0.5em 0;
}
ul.listIcon01 {
    list-style: disc;
    padding-left: 2em;
    /* line-height: 2; */
}
ul.listIcon01 li {
    line-height: 2;
}
.br-sp {
    display: none;
}
a.no-mark::after {
    display: none;
}
.img-w50 {
    width: 50%;
    margin: auto;
}
@media screen and (max-width: 1080px) {
    .br-pc {
        display: none;
    }
    .br-sp {
        display: inline-block;
    }
    .img-w50 {
        width: 100%;
    }
}
.elementor-page {
    scroll-behavior: auto !important;
}
/* 親要素（ul）への指定 */
.lib-indent__list.-list50 {
    display: grid;
    /* 2カラムにするための指定 */
    grid-template-columns: 1fr 1fr;
    /* 1:1の割合で2列 */
    gap: 10px;
    /* 余白 */
    width: 100%;
    /* ★ここを追加（横幅いっぱいにする） */
}
.lib-indent__list.-list50 li {
    margin-top: 0;
}

/* もしスマホでは1列に戻したい場合（メディアクエリ） */
@media (max-width: 768px) {
    .lib-indent__list.-list50 {
        grid-template-columns: 1fr;
    }
}
/* @media print,
screen and (min-width: 992px) {
    .lib-header__outer.lib-header-BS02 .lib-nav__outer:not(:has(.lib-search__outer)):not(:has(.lib-lang__outer)):not(:has(.lib-utility__outer)) .lib-nav__list {
        gap: 1em;
    }
} */

/* ==================================
サイトマップ
===================================== */
.lib-sitemap__outer.container {
    display: none;
}
.sitemap-block ul.wsp-pages-list {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap !important;
    flex-wrap: wrap !important;
    -ms-flex-pack: justify !important;
    justify-content: space-between !important;
}
.sitemap-block ul li:before {
    display: none;
}
.sitemap-block .wsp-pages-title {
    display: none;
}
.sitemap-block ul.wsp-pages-list li {
    list-style: none;
    width: calc(33% - 20px);
    border-top: 1px solid #ccc;
    margin-bottom: 30px;
    margin-top: .5rem;
}
.sitemap-block ul.wsp-pages-list li a {
    display: block;
    padding: 20px 10px;
    position: relative;
    font-size: 20px;
    font-weight: bold;
    text-decoration: none;
    padding-right: 50px;
}
.sitemap-block ul.wsp-pages-list li a:hover {
    background-color: #f5f5f5;
}
.sitemap-block ul.wsp-pages-list li a::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 14px;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    z-index: 1;
    background: url(/tmp/wp-content/uploads/arrow.png) no-repeat 90% / 16px auto;
    -webkit-transition: all 0.4s;
    -o-transition: all 0.4s;
    transition: all 0.4s;
}
.sitemap-block ul.wsp-pages-list li a::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 5px;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    background: -webkit-linear-gradient(130deg, #0a52a0 0%, #46b1d1 100%);
    background: linear-gradient(130deg, #707070 0%, #989898 100%);
    z-index: 0;
    padding: 20px;
    border-radius: 100px;
    -webkit-transition: all 0.4s;
    -o-transition: all 0.4s;
    transition: all 0.4s;
}
.sitemap-block ul li.page_item_has_children a {
    border-bottom: 1px solid #ccc;
}
.sitemap-block ul.children li {
    width: 100%;
    border: none;
    margin-bottom: 0;
}
.sitemap-block ul.children li a {
    font-size: 16px;
    padding: 10px;
    padding-right: 50px;
}
.sitemap-block ul.children li a::after {
    display: none;
}

.sitemap-block ul.children li a::before {
    background: url(/tmp/wp-content/uploads/arrow-on.png) no-repeat 90% / 16px auto;
}
@media only screen and (max-width: 690px) {
    .sitemap-block ul.wsp-pages-list li {
        width: 100%;
    }
    .sitemap-block ul.wsp-pages-list li {
        margin-bottom: 0px;
    }
    .sitemap-block ul.children {
        margin-bottom: 30px;
    }
}

/*20251225追記*/
/*mv調整*/
@media only screen and (min-width: 992px) {
#top-video {
	height: calc(100svh - 120px);
}
}

@media only screen and (max-width: 991px) {
.co-topimg {
	max-width: 300px;
}
}