@charset "utf-8";
/* CSS Document */


/* ========================================================

　.heading

=========================================================== */

/* トップページ大見出し */
.home .heading {
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    width: 100%;
    min-height: 16.0rem;
    padding-left: min(2.0vw, 2.0rem);
    margin-bottom: min(10.0vw, 10.0rem);
    background: rgba(25, 55, 95, 1.00);
    background: url("../img/bg_heading.png"), linear-gradient(90deg, rgba(25, 55, 95, 1.00) 0%, rgba(80, 115, 145, 1.00) 100%);
    color: var(--gray-color-03);
}

.home .heading h2 {
    margin-bottom: 3.0rem;
    font-size: 1.8rem;
    font-weight: 500;
}

.home .heading h2::after {
    margin-left: 0.25rem;
    content: "／";
}

.home .heading h3 {
    position: relative;
    font-family: var(--heading-font);
    font-size: min(9.5vw, 3.6rem);
}

.home .heading h3::before {
    position: absolute;
    inset: 50% auto auto -2.5rem;
    transform: translateY(-50%);
    margin-right: 0.5rem;
    color: var(--yellow-color-01);
    font-size: 50%;
    content: "●";
}

.home .heading h3 span {
    margin: 0 0.25rem;
    color: var(--blue-color-03);
    font-size: 66.66666%;
}

/* コンテンツ領域の大見出し */
.home section > .container h2 {
    font-size: min(5.0vw, 1.8rem);
    font-weight: 400;
    text-align: justify;
    line-height: 160%;
}

/* 下層ページ #hero 内大見出し */
body:not(.home) #hero h2 {
    display: inline-block;
    position: absolute;
    inset: 50% auto auto 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    padding: min(4.0vw, 2.0rem) 0;
    color: var(--black-color);
    font-size: min(7.0vw, 5.0rem);
    text-align: center;
    letter-spacing: min(1.0vw, 0.5rem);
}

/* 下層ページ大見出し */
body:not(.home) .heading {
    margin-bottom: min(14.0vw, 7.0rem);
}

body:not(.home) .heading h2 {
    position: relative;
    color: var(--black-color);
    font-size: min(7.0vw, 3.0rem);
}

body:not(.home) .heading h2::after {
    position: absolute;
    inset: auto auto -1.5rem 0;
    width: min(20.0vw, 10.0rem);
    height: 0.3rem;
    border-radius: 0.15rem;
    background-color: var(--blue-color-03);
    content: "";
}

@media (min-width: 768px) {

    .home .heading {
        padding-left: 0;
    }

    .home .heading h2 {
        margin-bottom: 1.0rem;
        font-size: min(2.4vw, 2.4rem);
    }

    .home .heading h3 {
        font-size: min(6.0vw, 7.2rem);
    }

    body:not(.home) #hero h2 {
        font-size: min(5.0vw, 5.0rem);
    }

    .home section > .container h2 {
        font-size: min(2.4vw, 2.4rem);
    }

}

@media (min-width: 992px) {

    .home .heading {
        position: relative;
        min-height: 20.0rem;
    }

    .home .heading::after {
        display: inline-block;
        position: absolute;
        inset: -1.0rem 0 0 auto;
        width: min(10.0vw, 10.0rem);
        min-height: 22.0rem;
        content: "";
        background-color: var(--white-color);
    }

    .home .heading h3::before {
        left: -4.0rem;
        font-size: 40%;
    }

}

@media (min-width: 1900px) {

    .home .heading::after {
        width: 16.14583vw;
    }

}

/*　Hero Section
----------------------------------------------------------- */
#hero {
    position: relative;
    height: 30.0vw;
}

#hero img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.home #hero {
    width: auto;
    height: calc(100vh + 10.0vw); /* 下辺のラウンド画像の分をプラス */
}

/* 左上のグラデーション */
.home #hero::before {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, rgba(255, 255, 255, 1.00) 0%, rgba(255, 255, 255, 1.00) 10%, rgba(255, 255, 255, 0.60) 20%, rgba(255, 255, 255, 0.00) 35%, rgba(255, 255, 255, 0.00) 100%);
    content: "";
}

/* メインビジュアル */
.home #hero picture img {
    position: absolute;
    inset: 0 auto auto 0;
    z-index: -1;
}

/* 下辺のラウンド画像 */
.home #hero > div:first-of-type {
    position: absolute;
    inset: auto auto 0 0;
}

/* キャッチコピー領域 */
.home #hero .container {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    padding-top: 12.0rem;
}

/* 欧文キャッチ */
.home #hero h3 {
    color: var(--blue-color-01);
    font-size: min(12.0vw, 4.2rem);
    font-weight: 400;
    text-shadow: 0 -1.0rem 2.0rem rgba(255, 255, 255, 1.00),
        1.0rem 0 2.0rem rgba(255, 255, 255, 1.00),
        0 1.0rem 2.0rem rgba(255, 255, 255, 1.00),
        -1.0rem 0 2.0rem rgba(255, 255, 255, 1.00);
}

.home #hero h3 span {
    display: block;
    line-height: 160%;
}

.home #hero h3 span:nth-of-type(2) {
    margin-left: 1.2em;
}

.home #hero h3 span:nth-of-type(3) {
    margin-left: 2.4em;
}

.home #hero h3 span:first-letter {
    color: var(--accent-color);
    font-size: 140.0%;
    font-weight: 700;
}

/* 和文キャッチ */
.home #hero h2 {
    margin-top: 3.0rem;
    color: var(--accent-color);
    font-family: var(--serif-font);
    font-size: min(7.7vw, 3.0rem);
    font-weight: 500;
    text-align: justify;
    line-height: 160%;
}

/* スクロールを促すアニメーション */
.home #hero > div:last-of-type {
    position: absolute;
    inset: auto min(3.0vw, 5.0rem) calc(12.0rem + 10.0vw) auto;
    color: rgba(239, 95, 0, 1.00);
    writing-mode: vertical-rl;
}

.home #hero > div:last-of-type::before {
    position: absolute;
    inset: auto 0.25rem -11.0rem 0;
    background-color: rgba(239, 95, 0, 1.00);
    width: 0.1rem;
    height: 10.0rem;
    margin: auto;
    content: "";
    animation: scrollLine 2s infinite;
}

@media (min-width: 768px) {

    .home #hero .container {
        display: block;
        padding-top: 14.0rem;
    }

    .home #hero h3 {
        font-size: 6.0rem;
    }

    .home #hero h2 {
        margin-top: 5.5rem;
        font-size: 3.9rem;
    }

}

@media (min-width: 992px) {

    #hero {
        height: 15.0vw;
    }

    .home #hero {
        height: calc(100vh + 10.5vw);
    }

    .home #hero .container {
        padding-top: min(18.0vw, 24.0rem);
    }

    .home #hero h3 span {
        display: inline-block;
    }

    .home #hero h3 span:nth-of-type(2),
    .home #hero h3 span:nth-of-type(3) {
        margin-left: 0;
    }

    .home #hero h3 span:nth-of-type(2) {
        margin: 0 1.0rem;
    }

    .home #hero > div:last-of-type {
        bottom: calc(12.0rem + 10.5vw);
    }

}

@media (min-width: 1200px) {

    .home #hero h3 {
        font-size: min(5.0vw, 8.0rem);
    }

    .home #hero h2 {
        margin-top: 7.0rem;
        font-size: min(3.0vw, 6.0rem);
    }

}

/*　News Section
----------------------------------------------------------- */
/* 年月日 */
.home #news dt {
    padding: 2.0rem 0 0.5rem;
    border-top: 0.1rem solid var(--gray-color-03);
    font-weight: 500;
}

/* 内容 */
.home #news dd {
    padding-bottom: 2.0rem;
    text-align: justify;
}

.home #news dd:last-of-type {
    border-bottom: 0.1rem solid var(--gray-color-03);
}

/* ホップアップ設定 */
.home #news button {
    display: inline-block;
    align-items: center;
    justify-content: center;
    width: 12.0rem;
    height: 3.0rem;
    border-radius: 0.6rem;
    background-color: var(--blue-color-02);
    color: var(--white-color);
    font-size: 1.4rem;
    line-height: 1;
    transition: 0.3s;
}

/* 矢印アイコン */
.home #news button i {
    margin-left: 0.25rem;
}

/* ポップアップ領域 */
.popover {
    max-width: min(90%, 64.0rem);
    padding: min(4.0vw, 4.0rem);
    border-radius: min(2.0vw, 1.0rem);
    font-family: var(--sans-font);
    font-size: 1.4rem;
    text-align: justify;
    line-height: 160%;
    box-shadow: 0.5rem 0.5rem 0.5rem 0 rgba(0, 0, 0, 0.50);
    z-index: 5;
}

.popover span {
    color: rgba(255, 0, 0, 1.00);
}

/* クローズボタン */
.popover span.close {
    cursor: pointer;
    font-size: 1.8rem;
    color: var(--text-color);
    transition: 0.3s;
}

@media (min-width: 768px) {

    /* 横並びに */
    .home #news dl {
        display: flex;
        flex-wrap: wrap;
    }

    .home #news dt,
    .home #news dd {
        padding: min(3.0vw, 3.0rem) 0;
    }

    .home #news dt {
        width: 14.0rem;
    }

    .home #news dt:last-of-type {
        border-bottom: 0.1rem solid var(--gray-color-03);
    }

    .home #news dd {
        width: calc(100% - 14.0rem);
        border-top: 0.1rem solid var(--gray-color-03);
    }

}

@media (min-width: 992px) {

    .home #news .heading::after {
        background-color: var(--white-color);
    }

    /* マウスオーバー時 */
    .home #news button:hover {
        opacity: 0.7;
    }

    .popover span.close:hover {
        color: var(--orange-color);
    }

}

/*　Philosophy Section
----------------------------------------------------------- */
.home #philosophy {
    padding: min(10.0vw, 10.0rem) 0;
    border-radius: min(10.0vw, 10.0rem);
    background-color: var(--contrast-color);
}

/* 大見出し */
.home #philosophy .heading {
    min-height: inherit;
    margin-bottom: min(10.0vw, 10.0rem);
    background: none;
    color: var(--blue-color-01);
}

.home #philosophy .heading h3::before {
    color: var(--blue-color-03);
}

/* コンテンツ領域の見出し */
.home #philosophy .container h2,
.home #philosophy .container h3,
.home #philosophy p {
    text-align: justify;
}

/* ２番目以降のブロック */
.home .philosophy > div:nth-of-type(n+2) {
    margin-top: 5.0rem;
}

/* 理念領域 */
.home .philosophy {
    margin-top: min(8.0vw, 8.0rem);
}

/* 画像領域 */
.home .philosophy > div > div:first-of-type {
    width: 86.15384%;
    aspect-ratio: 2 / 1;
    overflow: hidden;
}

/* 偶数番ブロック右寄せ */
.home .philosophy > div:nth-of-type(even) {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}

/* 角丸 */
.home .philosophy > div:nth-of-type(odd) > div:first-of-type {
    border-radius: 0 min(4.0vw, 4.0rem) min(4.0vw, 4.0rem) 0;
}

.home .philosophy > div:nth-of-type(even) > div:first-of-type {
    border-radius: min(4.0vw, 4.0rem) 0 0 min(4.0vw, 4.0rem);
}

.home .philosophy img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* テキスト領域 */
.home .philosophy h3 {
    position: relative;
    margin-top: 5.0rem;
    padding-bottom: 1.0rem;
    color: var(--accent-color);
    font-size: min(6.4vw, 2.4rem);
    font-weight: 500;
}

.home .philosophy h3::after {
    display: inline-block;
    position: absolute;
    inset: auto auto auto 0;
    bottom: -1.0rem;
    width: 12.0rem;
    height: 0.3rem;
    background-color: var(--blue-color-01);
    content: "";
}

.home .philosophy p {
    margin-top: 4.0rem;
}

/* 末尾の小見出し */
.home #philosophy > div:last-of-type h3 {
    margin-top: min(8.0vw, 8.0rem);
    color: var(--blue-color-02);
    font-size: min(6.0vw, 3.0rem);
    font-weight: 500;
    text-align: justify;
    line-height: 160%;
}

@media (min-width: 768px) {

    .home .philosophy > div:nth-of-type(odd) > div:first-of-type {
        border-radius: 0 min(2.0vw, 4.0rem) min(2.0vw, 4.0rem) 0;
    }

    .home .philosophy > div:nth-of-type(even) > div:first-of-type {
        border-radius: min(2.0vw, 4.0rem) 0 0 min(2.0vw, 4.0rem);
    }

}

@media (max-width: 991.98px) {

    /* 区切りのボーダーライン */
    .home .philosophy > div:nth-of-type(n+2) {
        margin-top: 5.0rem;
        padding-top: 5.0rem;
        border-top: 0.1rem solid var(--blue-color-03);
    }

}

@media (min-width: 992px) {

    .home #philosophy .heading {
        position: inherit;
    }

    .home .heading::after {
        background-color: transparent;
    }

    /* 区切りのボーダーライン非表示 */
    .home .philosophy span {
        display: none;
    }

    .home .philosophy > div:nth-of-type(n+2) {
        margin-top: 0;
    }

    /* コンテンツ領域を横並びに */
    .home .philosophy > div:nth-of-type(odd) {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: repeat(1, 1fr);
        grid-row-gap: 0;
    }

    .home .philosophy > div:nth-of-type(even) {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: repeat(1, 1fr);
        grid-row-gap: 0;
        align-items: center;
    }

    /* 偶数番ブロックの表示順 */
    .home .philosophy > div:nth-of-type(even) > div:first-of-type {
        order: 2;
    }

    .home .philosophy > div:nth-of-type(even) > div:last-of-type {
        order: 1;
    }

    /* 画像領域 */
    .home .philosophy > div > div:first-of-type {
        width: 100%;
    }

    /* テキスト領域上下中央揃え */
    .home .philosophy .container {
        display: flex;
        align-items: center;
        padding-left: min(6.0vw, 12.0rem);
    }

    /* テキスト領域余白 */
    .home .philosophy div[class^="col-"] {
        padding-right: 2.5vw;
    }

    /* テキスト最大幅 */
    .home .philosophy h3,
    .home .philosophy p {
        max-width: 52.0rem;
    }

    .home .philosophy h3 {
        margin-top: 0;
        font-size: min(2.0vw, 3.0rem);
    }

    .home .philosophy p {
        margin-top: 5.0rem;
        font-size: min(1.5vw, 1.8rem);
    }

}

/*　Works Section
----------------------------------------------------------- */
.home .works > div {
    position: relative;
    width: 100%;
    text-align: center;
}

/* 画像領域 */
.home .works > div > div:first-of-type {
    aspect-ratio: 1 / 1;
    overflow: hidden;
}

.home .works img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    animation: zoomIn 15.0s ease-out 0s infinite normal forwards;
}

.home .works > div:nth-of-type(2) img {
    animation-delay: 1.0s;
}

.home .works > div:nth-of-type(3) img {
    animation-delay: 2.0s;
}

/* テキスト領域*/
.home .works > div > div:last-of-type {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: absolute;
    inset: 50% 0 auto 0;
    transform: translateY(-50%);
    padding: min(4.0vw, 2.0rem);
    background-color: color-mix(in srgb, var(--black-color), transparent 50%);
    color: var(--white-color);
}

/* 見出し */
.home .works h3,
.home .works ul {
    width: min(100%, 30.0rem);
}

.home .works h3 {
    padding-bottom: 1.0rem;
    border-bottom: 0.1rem dashed var(--white-color);
    font-size: min(6.04vw, 2.2rem);
    font-weight: 500;
    line-height: 160%;
}

/* 実績 */
.home .works ul {
    margin-top: 1.0rem;
    margin-left: 2.0rem;
    list-style: disc;
}

.home .works li {
    margin: 0 1.0rem;
    font-size: min(5.0vw, 1.4rem);
    text-align: justify;
}

@media (min-width: 576px) {

    .home .works > div {
        width: min(100%, 46.0rem);
    }

}

@media (max-width: 767.98px) {

    /* スマホでは縦積み表示 */
    .home .works {
        display: flex;
        flex-direction: column;
        flex-wrap: wrap;
        align-items: center;
        margin-top: min(10.0vw, 10.0rem);
    }

    /* ２番目以降のブロック */
    .home .works > div:nth-of-type(n+2) {
        margin-top: 5.0rem;
    }

}

@media (min-width: 768px) {

    /* タブレット以上では横並び */
    .home .works {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        grid-template-rows: repeat(1, 1fr);
        grid-column-gap: min(2.0vw, 4.0rem);
        margin-top: min(8.0vw, 8.0rem);
    }

    .home .works > div {
        width: 100%;
    }

    /* 各ブロックの遅延表示 */
    .home .works > div:nth-of-type(1)[data-aos] {
        transition-delay: 0.5s !important;
    }

    .home .works > div:nth-of-type(2)[data-aos] {
        transition-delay: 1.0s !important;
    }

    .home .works > div:nth-of-type(3)[data-aos] {
        transition-delay: 1.5s !important;
    }

    .home .works > div > div:last-of-type {
        padding: 0 min(4.0vw, 2.0rem);
        min-height: 20.0rem;
    }

    .home .works h3 {
        font-size: min(2.4vw, 2.4rem);
    }

    /* 改行 */
    .home .works h3 span {
        display: block;
    }

}

@media (min-width: 992px) {

    .home #works .heading::after {
        background-color: var(--white-color);
    }

}

@media (min-width: 1200px) {

    .home .works > div > div:last-of-type {
        min-height: 18.0rem;
        padding: 0 min(2.0vw, 4.0rem);
    }

    .home .works h3,
    .home .works ul {
        width: min(100%, 40.0rem);
    }

    /* 改行オフ */
    .home .works h3 span {
        display: inline;
    }

    .home .works li {
        font-size: min(1.3vw, 1.8rem);
    }

}

/*　Technical Section
----------------------------------------------------------- */
.home #technical {
    background-color: var(--gray-color-04);
}

.home .technical > div {
    width: min(100%, 30.0rem);
    padding-bottom: 5.0rem;
    text-align: center;
}

.home .technical > div:last-of-type {
    padding-bottom: 0;
}

/* 画像領域 */
.home .technical div div {
    border-radius: 0.6rem;
    aspect-ratio: 1 / 1;
    overflow: hidden;
}

.home .technical img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.home .technical > div:nth-of-type(2) img {
    animation-delay: 1.0s;
}

.home .technical > div:nth-of-type(3) img {
    animation-delay: 2.0s;
}

/* 見出し */
.home .technical h3 {
    position: relative;
    margin-top: 3.0rem;
    padding-bottom: 2.0rem;
    color: var(--accent-color);
    font-size: min(6.4vw, 2.4rem);
    font-weight: 500;
}

.home .technical h3::after {
    display: inline-block;
    position: absolute;
    left: 50%;
    bottom: -0.3rem;
    width: 10.0rem;
    height: 0.3rem;
    transform: translateX(-50%);
    background-color: var(--blue-color-01);
    content: "";
}

/* 言語 */
.home .technical p {
    margin: min(8.0vw, 4.0rem) auto 0;
    font-size: min(5.0vw, 1.8rem);
}

@media (min-width: 576px) {

    .home .technical > div {
        width: min(100%, 46.0rem);
    }

}

@media (max-width: 767.98px) {

    /* スマホでは縦積み表示 */
    .home .technical {
        display: flex;
        flex-direction: column;
        flex-wrap: wrap;
        align-items: center;
        margin-top: min(10.0vw, 10.0rem);
    }

    /* ２番目以降のブロック */
    .home .technical > div:nth-of-type(n+2) {
        padding-top: 5.0rem;
        border-top: 0.1rem solid var(--gray-color-02); /* 区切りのボーダーライン */
    }

    /* ボーダーライン両端の● */
    .home .technical > div:nth-of-type(n+2)::before,
    .home .technical > div:nth-of-type(n+2)::after {
        position: absolute;
        transform: translateY(-50%);
        width: 0.6rem;
        height: 0.6rem;
        border-radius: 50%;
        background-color: var(--blue-color-03);
        content: "";
    }

    .home .technical > div:nth-of-type(n+2)::before {
        inset: -0.05rem auto auto 0;
    }

    .home .technical > div:nth-of-type(n+2)::after {
        inset: -0.05rem 0 auto auto;
    }

}

@media (min-width: 768px) {

    .home #technical {
        padding-bottom: 0;
    }

    /* タブレット以上では横並び */
    .home .technical {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        grid-template-rows: repeat(1, 1fr);
        grid-row-gap: 0;
        margin-top: min(8.0vw, 8.0rem);
        border-top: 0.1rem solid var(--gray-color-02); /* 上辺のライン */
    }

    .home .technical > div {
        width: 100%;
        padding: min(5.0vw, 10.0rem);
    }

    /* 各ブロックの遅延表示 */
    .home .technical > div:nth-of-type(1)[data-aos] {
        transition-delay: 0.5s !important;
    }

    .home .technical > div:nth-of-type(2)[data-aos] {
        transition-delay: 1.0s !important;
    }

    .home .technical > div:nth-of-type(3)[data-aos] {
        transition-delay: 1.5s !important;
    }

    /* 区切りのライン（左右） */
    .home .technical > div:nth-of-type(2) {
        border-left: 0.1rem solid var(--gray-color-02);
        border-right: 0.1rem solid var(--gray-color-02);
    }

    /* ボーダーライン上の● */
    .home .technical > div:nth-of-type(2)::before,
    .home .technical > div:nth-of-type(2)::after {
        position: absolute;
        width: 0.8rem;
        height: 0.8rem;
        border-radius: 50%;
        background-color: var(--blue-color-03);
        content: "";
    }

    .home .technical > div:nth-of-type(2)::before {
        inset: 0 auto auto -0.1rem;
        transform: translate(-50%, -50%);
    }

    .home .technical > div:nth-of-type(2)::after {
        inset: 0 0 auto auto;
        transform: translate(50%, -50%);
    }

    .home .technical h3 {
        margin-top: min(4.0vw, 4.0rem);
        font-size: min(3.0vw, 3.0rem);
    }

    .home .technical p {
        margin-top: min(10.0vw, 5.0rem);
        font-size: min(1.8vw, 2.4rem);
    }

}

@media (min-width: 992px) {

    .home #technical .heading::after {
        background-color: var(--gray-color-04);
    }

}

/*　Recruitment Section
----------------------------------------------------------- */
.home #recruitment {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    position: relative;
    padding-top: 0;
    padding-bottom: 0;
}

/* 背景画像 */
.home #recruitment picture {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    height: min(160vw, 55.0rem);
    overflow: hidden;
}

.home #recruitment > img {
    object-fit: cover;
    z-index: -1;
}

.home #recruitment::after {
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.50);
    background: linear-gradient(0deg, rgba(255, 255, 255, 1.00) 0%, rgba(255, 255, 255, 0.50) 100%);
    content: "";
}

/* テキスト領域内包 */
.home #recruitment .inner {
    position: absolute;
    width: 100%;
    z-index: 1;
}

/* 大見出し */
.home #recruitment .heading {
    width: min(100%, 767.98rem);
    min-height: 6.0rem;
    margin-bottom: min(10.0vw, 5.0rem);
    padding: 0;
    border-radius: 3.0rem;
    text-align: center;
}

.home #recruitment .heading h2 {
    margin-bottom: 0;
    font-size: min(8.0vw, 2.4rem);
}

.home #recruitment .heading h2::after {
    content: none;
}

.home #recruitment ul {
    margin-left: 8.0vw;
}

.home #recruitment li {
    position: relative;
    font-weight: 500;
    text-align: justify;
}

.home #recruitment li::before {
    position: absolute;
    inset: 0.2rem auto auto -2.0rem;
    font-family: 'bootstrap-icons';
    font-weight: bold;
    content: "\f272";
}

.home #recruitment li:nth-of-type(n+2) {
    margin-top: 1.0rem;
}

/* 末尾の小見出し */
.home #recruitment h3 {
    margin: min(8.0vw, 8.0rem) 0;
    color: var(--accent-color);
    font-size: min(6.0vw, 3.0rem);
    font-weight: 500;
    text-align: justify;
    line-height: 160%;
}

/* 注意書き */
.home #recruitment p {
    font-size: 1.4rem;
    text-indent: 1.4rem;
}

@media (min-width: 768px) {

    .home #recruitment picture {
        justify-content: center;
        height: min(65vw, 50.0rem);
    }

    .home #recruitment .heading {
        width: min(100%, 30.0rem);
    }

    .home #recruitment ul {
        margin-left: 4.0rem;
    }

    .home #recruitment h3 {
        margin: min(4.0vw, 4.0rem) 0;
    }

}


/* ========================================================

　#lower

=========================================================== */

#lower .section {
    padding-bottom: 0;
}

#lower .section > .container {
    padding-bottom: min(12.0vw, 6.0rem);
    border-bottom: 0.1rem solid var(--gray-color-02);
}

#lower .section:last-of-type > .container {
    border-bottom: none;
}

/* 中見出し */
#lower section h3 {
    margin-bottom: min(8.0vw, 4.0rem);
    color: var(--blue-color-01);
    font-size: min(6.0vw, 2.4rem);
    line-height: 160%;
}

#lower h3::before {
    position: relative;
    top: min(0.75vw, 0.3rem);
    margin-right: 0.25rem;
    font-family: 'bootstrap-icons';
}

#lower section h3:nth-of-type(n+2) {
    margin-top: min(16.0vw, 8.0rem); /* ２番目以降の中見出し余白 */
}

#lower section p,
#lower section li,
#lower section dt,
#lower section dd,
#lower section th,
#lower section td {
    text-align: justify; /* 均等割り付け */
}

#lower section ul {
    margin-left: 2.6rem;
    list-style: disc;
}

/* 画像 */
#lower section .pic {
    margin: min(8.0vw, 4.0rem) 0;
    text-align: center;
}

#lower section .pic img {
    width: min(100%, 80.0rem);
    margin: 0 auto;
}

/* 画像キャプション */
#lower section figcaption {
    margin-top: 0.5rem;
    font-size: 1.4rem;
    text-align: left;
    line-height: 140%;
}

@media (min-width: 576px) {

    #lower section figcaption {
        text-align: center;
    }

}


/* ========================================================

　.about

=========================================================== */

/* 表組み */
.about main section dt,
.about main section dd,
.about main section th,
.about main section td {
    padding: min(2.0vw, 1.0rem) min(4.0vw, 2.0rem);
}

/* dl */
.about main section dt {
    margin-bottom: 1.0rem;
    color: var(--black-color);
    font-size: 110%;
    font-weight: 500;
    background-color: color-mix(in srgb, var(--surface-color), transparent 70%);
}

.about main section dt:nth-of-type(n+2) {
    margin-top: min(8.0vw, 4.0rem);
}

@media (min-width: 768px) {

    /* 横並びに */
    .about main section dl {
        display: flex;
        flex-wrap: wrap;
        width: 100%;
    }

    .about main section dt,
    .about main section dd {
        display: flex;
        align-items: flex-start;
        margin-bottom: 1.0rem;
        padding: min(4.0vw, 2.0rem);
        line-height: 160%;
    }

    .about main section dt {
        width: min(35.0%, 24.0rem);
        border-bottom: 0.1rem solid var(--surface-color);
        background-color: transparent;
    }

    .about main section dt:first-of-type {
        border-top: 0.1rem solid var(--surface-color);
    }

    .about main section dt:nth-of-type(n+2) {
        margin-top: 0;
    }

    .about main section dd {
        width: calc(100% - min(35.0%, 24.0rem));
        border-bottom: 0.1rem dashed color-mix(in srgb, var(--surface-color), transparent 70%);
    }

    .about main section dd:first-of-type {
        border-top: 0.1rem dashed color-mix(in srgb, var(--surface-color), transparent 70%);
    }

}

/*　ごあいさつ
----------------------------------------------------------- */
.about #greeting h3 {
    color: var(--red-color-01);
}

.about #greeting h3::before {
    content: "\f7bf";
}

/* 写真領域 */
.about #greeting .row .row div[class^="col-"]:first-of-type {
    margin-bottom: min(8.0vw, 4.0rem);
    text-align: center;
}

.about .photo {
    width: min(100%, 24.0rem);
    margin: 0 auto;
}

.about #greeting .photo img {
    width: 100%;
}

/* テキスト領域 */
.about #greeting p:nth-of-type(n+2) {
    margin-top: min(4.0vw, 2.0rem); /* テキスト段落余白 */
}

.about #greeting ul {
    margin: 2.0rem 0 2.0rem 2.5rem;
    color: var(--black-color);
    font-size: 1.8rem;
}

/* 署名 */
.about #greeting .sign {
    display: flex;
    justify-content: flex-end;
    margin-top: min(8.0vw, 4.0rem);
    text-align: right;
}

.about #greeting .sign img {
    width: min(100%, 20.0rem);
    margin-top: 2.0rem;
}

@media (min-width: 376px) {

    .about #greeting .row .row div[class^="col-"]:first-of-type {
        text-align: left; /* 写真領域左寄せ */
    }

    .about .photo {
        margin: 0;
    }

}

@media (min-width: 768px) {

    .about #greeting .row .row div[class^="col-"]:last-of-type {
        padding-left: min(4.0vw, 4.0rem); /* テキスト領域左余白 */
    }

}

@media (min-width: 1400px) {

    .about #greeting .row .row div[class^="col-"]:last-of-type {
        padding-left: 0;
    }

}

/*　会社案内
----------------------------------------------------------- */
/* 中見出しのアイコン */
.about #outline h3:nth-of-type(1)::before {
    content: "\f3fb";
}

.about #outline h3:nth-of-type(2)::before {
    content: "\f876";
}

.about #outline h3:nth-of-type(3)::before {
    content: "\f8a2";
}

.about #outline h3:nth-of-type(4)::before {
    content: "\f4c7";
}

/* 社名の由来 */
.about #outline h5 {
    margin-top: min(4.0vw, 2.0rem);
    color: var(--blue-color-03);
    font-family: var(--serif-font);
    font-size: min(6.4vw, 2.2rem);
    line-height: 160%;
}

.about #outline h5 span {
    position: relative;
    margin-right: 0.25rem;
    color: var(--blue-color-01);
    font-size: 120%;
    font-weight: 700;
}

.about #outline h5 span::after {
    position: absolute;
    inset: auto auto 0 0;
    width: 100%;
    height: 0.1rem;
    content: "";
    background-color: var(--orange-color);
}

/* 住所の折り返し */
.about #outline dd span {
    display: block; /* 改行 */
    line-height: 160%;
}

/* 技術者構成 */
.about #outline table {
    width: min(100%, 46.0rem);
    border: 0.3rem solid var(--surface-color);
}

.about #outline th,
.about #outline td {
    border: 0.1rem solid var(--surface-color);
    text-align: center;
}

.about #outline th {
    width: 50.0%;
    color: var(--black-color);
    font-size: 110%;
    font-weight: 500;
    background-color: color-mix(in srgb, var(--surface-color), transparent 85%);
}

/* 企業ポリシー */
.about #outline a[href*="company-policy"] {
    display: inline-block;
    margin-top: 1.0rem;
    font-size: 1.8rem;
}

@media (min-width: 576px) {

    .about #outline dd span {
        display: inline; /* 改行オフ */
    }

}

@media (min-width: 768px) {

    .about #outline h5 {
        font-size: min(2.6vw, 2.2rem);
    }

    /* サンライズ東陽ビル405（MAP）部分 */
    .about #outline dd br + span {
        display: inline-block;
        padding-left: 10.6rem;
    }

}

/*　主要取引企業
----------------------------------------------------------- */
.about #partners li {
    line-height: 200%;
}

.about #partners p {
	margin-left: 2.6rem;
}

/*　アクセス
----------------------------------------------------------- */
.about #access .map {
    position: relative;
    width: 100%;
    height: 0;
    margin-top: min(4.0vw, 2.0rem);
    padding-top: 75.0%; /* 4:3 */
}

/* Googleマップ タグ部分 */
.about #access .map iframe {
    position: absolute;
    inset: 0 auto auto 0;
    width: 100%;
    height: 100%;
    border-radius: min(4.0vw, 2.0rem);
}

/* 住所の折り返し */
.about #access p span {
    display: block; /* 改行 */
    line-height: 160%;
}

@media (min-width: 576px) {

    .about #access p span {
        display: inline; /* 改行オフ */
    }

}

@media (min-width: 768px) {

    .about #access .map {
        padding-top: 56.25%; /* 16:9 */
    }

}


/* ========================================================

　.company-policy

=========================================================== */
/* 中見出しのアイコン */
.company-policy #about h3::before {
    content: "\f4ea";
}

/* テキスト領域 */
.company-policy #about p:nth-of-type(n+2) {
    margin-top: min(4.0vw, 2.0rem); /* テキスト段落余白 */
}

.company-policy #about strong {
    color: var(--orange-color);
    font-weight: 600;
}

.company-policy #about em {
    color: var(--black-color);
    font-weight: 500;
}

/* 画像 */
.company-policy #about .pic img[src*="about"] {
    width: min(100%, 70.0rem);
}

@media (min-width: 768px) {

    .company-policy #about .pic img[src*="about"] {
        width: min(90%, 70.0rem);
    }

}


/* ========================================================

　.works

=========================================================== */

/* dl */
.works main section dt {
    margin-bottom: min(4.0vw, 2.0rem);
    color: var(--blue-color-03);
    font-size: min(5.4vw, 2.0rem);
    font-weight: 500;
    line-height: 160%;
}

.works main section dt:nth-of-type(n+2) {
    margin-top: min(8.0vw, 4.0rem); /* ２番目以降の小見出し余白 */
}

/*　シーソフトの業務理念
----------------------------------------------------------- */
/* 画像 */
.works #policy .pic img[src*="concept"] {
    width: min(100%, 46.0rem);
}

.works #policy dt::before {
    position: relative;
    top: min(0.75vw, 0.3rem);
    font-family: 'bootstrap-icons';
    content: "\f199";
}

@media (min-width: 1200px) {

    .works #policy .row > div[class^="col-"]:nth-of-type(2) > p {
        text-align: center;
    }

    .works #policy .pic img[src*="concept"] {
        width: min(90%, 50.0rem);
    }

}

/*　システム開発
----------------------------------------------------------- */
.works #systemDevelopment h3::before {
    content: "\f4ea";
}

/* こんなかたちで～ */
.works #systemDevelopment div[class^="col-"] > p:first-of-type + h3 {
    margin-top: min(8.0vw, 4.0rem);
}

.works #systemDevelopment dl {
    margin-top: min(8.0vw, 4.0rem);
    margin-left: min(6.0vw, 3.0rem);
}

.works #systemDevelopment dt::before {
    content: "◉";
}

/* 業務分野｜技術分野 */
.works #systemDevelopment .row .row {
    margin-top: min(8.0vw, 4.0rem);
}

.works #systemDevelopment .row .row > div[class^="col-"]:nth-of-type(n+2) {
    margin-top: min(8.0vw, 4.0rem);
}

.works #systemDevelopment .row .row h4 {
    margin-bottom: min(4.0vw, 2.0rem);
    padding: 2.0rem;
    background-color: var(--blue-color-01);
    color: var(--white-color);
    font-size: 1.8rem;
    text-align: center;
}

/* 業務分野 */
.works #systemDevelopment .work ul {
    font-size: 1.4rem;
}

/* 技術分野 */
.works #systemDevelopment .tech p {
    text-align: left;
}

/* 開発・サービスの実績 */
.works #systemDevelopment .carousel {
    margin-top: min(8.0vw, 4.0rem);
}

/* Case n */
.works #systemDevelopment .carousel h4 {
    margin-bottom: min(4.0vw, 2.0rem);
    font-size: 1.8rem;
}

.works #systemDevelopment .carousel h4 span {
    margin-right: 1.0rem;
    color: var(--red-color-02);
    font-weight: 700;
    line-height: 160%;
}

/* table */
.works #systemDevelopment th,
.works #systemDevelopment td {
    padding: 1.0rem;
    text-align: left;
}

.works #systemDevelopment th {
    color: var(--black-color);
    font-size: 110%;
    font-weight: 500;
    background-color: color-mix(in srgb, var(--surface-color), transparent 85%);
}

.works #systemDevelopment tr:last-of-type td {
    border-top: 0.1rem solid var(--gray-color-02);
}

/* 画像 */
.works #systemDevelopment td figure {
    margin-top: min(4.0vw, 2.0rem);
    text-align: center;
}

.works #systemDevelopment td figcaption {
    text-align: center;
}

.works #systemDevelopment td img {
    width: min(100%, 36.0rem);
    margin: 0 auto;
}

/* カルーセル */
.works .carousel {
    padding-top: 6.0rem;
}

/* カルーセル　前・後へ移動の矢印 */
.works .carousel-button {
    position: absolute;
    inset: 0 0 auto auto;
    width: 7.0rem;
    height: 3.0rem;
    z-index: 10;
}

.works button[class*="carousel-control"] {
    height: 3.0rem;
    width: 3.0rem;
    border-radius: 50%;
    background-color: var(--orange-color);
    opacity: 1.0;
    transition: 0.3s;
}

.works button[class*="carousel-control"]:hover {
    background-color: color-mix(in srgb, var(--orange-color), transparent 30%);
}

.works .carousel-control-prev-icon,
.works .carousel-control-next-icon {
    height: 2.0rem;
    width: 2.0rem;
}

.works .carousel-control-prev-icon {
    margin-right: 0.25rem;
}

.works .carousel-control-next-icon {
    margin-left: 0.25rem;
}

.works #systemDevelopment .carousel-control-prev-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='rgba(255, 255, 255, 1.00)'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e");
}

.works #systemDevelopment .carousel-control-next-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='rgba(255, 255, 255, 1.00)'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
}

/* カルーセル　インジケーター */
.works #systemDevelopment .carousel-indicators {
    display: flex;
    justify-content: flex-end;
    top: 0.45rem;
    width: 100%;
    margin: 0;
    padding-right: 9.0rem;
    z-index: 5;
}

.works #systemDevelopment .carousel-indicators button[data-bs-target="#carousel"] {
    background-color: rgba(0, 0, 0, 0.50);
    transform: 0.3s;
}

.works #systemDevelopment .carousel-indicators button:hover {
    background-color: color-mix(in srgb, var(--blue-color-01), transparent 30%);
    opacity: 1.0;
}

.works #systemDevelopment .carousel-indicators button.active {
    background-color: var(--orange-color);
}

@media (max-width: 767.98px) {

    .works #systemDevelopment th,
    .works #systemDevelopment td {
        display: block;
    }

}

@media (min-width: 768px) {

    .works #systemDevelopment .row .row > div[class^="col-"]:nth-of-type(n+2) {
        margin-top: 0;
    }

    .works #systemDevelopment .row .row > div[class^="col-"]:nth-of-type(n+3) {
        margin-top: min(8.0vw, 4.0rem);
    }

    .works #systemDevelopment th,
    .works #systemDevelopment td {
        padding: 1.0rem 2.0rem;
        border: 0.1rem solid var(--surface-color);
    }

    .works #systemDevelopment th {
        width: 16.0rem;
        border-left: 0.3rem solid var(--surface-color);
        text-align: center;
    }

    .works #systemDevelopment td {
        border-right: 0.3rem solid var(--surface-color);
    }

    .works #systemDevelopment tr:first-of-type th,
    .works #systemDevelopment tr:first-of-type td {
        border-top: 0.3rem solid var(--surface-color);
    }

    .works #systemDevelopment tr:last-of-type td {
        border: none;
        border-top: 0.3rem solid var(--surface-color);
    }

}

@media (min-width: 1200px) {

    .works #systemDevelopment .row .row > div[class^="col-"]:nth-of-type(n+3) {
        margin-top: 0;
    }

    .works #systemDevelopment .carousel-indicators {
        top: 0.9rem;
        padding-right: 11.0rem;
    }

    .works .carousel-button {
        width: 9.0rem;
        height: 4.0rem;
    }

    .works button[class*="carousel-control"] {
        height: 4.0rem;
        width: 4.0rem;
    }

    .works .carousel-control-prev-icon,
    .works .carousel-control-next-icon {
        height: 3.0rem;
        width: 3.0rem;
    }

}


/* ========================================================

　.privacy-policy

=========================================================== */

/* 条項 */
.privacy-policy main dl {
    margin-top: min(14.0vw, 7.0rem);
    margin-bottom: min(20.0vw, 10.0rem);
}

.privacy-policy main dt {
    margin-bottom: 1.0rem;
    font-size: 120%;
    font-weight: 500;
    line-height: 150%;
}

.privacy-policy main dd,
.privacy-policy main li {
    text-align: justify;
}

.privacy-policy main dt:nth-of-type(n+2) {
    margin-top: min(14.0vw, 7.0rem);
}

.privacy-policy main dl ol {
    margin: min(5.0vw, 2.0rem) 0 min(5.0vw, 2.0rem) 2.0rem;
}

.privacy-policy main dl ul {
    margin: min(5.0vw, 2.0rem) 0 min(5.0vw, 2.0rem) 2.4rem;
}

/* お問い合わせ窓口 */
.privacy-policy main div[class^="col-"] > div:last-of-type {
    display: flex;
    justify-content: flex-end;
    margin-right: 0;
}

.privacy-policy main h3 {
    margin-bottom: 1.0rem;
    font-size: 120%;
}

.privacy-policy #lower section h3 + ul {
    list-style: none;
}


/* ========================================================

　.contact

=========================================================== */

/* リード文 */
.contact form > p {
    text-align: justify;
    line-height: 160%;
}

.contact form > p span {
    color: var(--red-color-02);
	font-size: 130%;
	vertical-align: middle;
}

/*　送信完了
/*-------------------------------------------*/
.thanks main section h2 {
    margin-bottom: min(4.0vw, 2.0rem);
	color: var(--blue-color-01);
    font-size: min(6.4vw, 2.4rem);
}

.thanks main section h2,
.thanks main section p,
.thanks main section li {
    text-align: justify;
    line-height: 160%;
}

/* 受付番号 */
.thanks main section #mfp_thanks {
    margin-bottom: 2.4rem;
    color: var(--black-color);
    font-size: 1.8rem;
    font-weight: 500;
}

.thanks main section #mfp_thanks strong {
	position: relative;
	top: 0.2rem;
    color: var(--orange-color);
    font-size: min(6.0vw, 2.4rem);
    font-weight: 700;
}

/* メールが届いていない場合 */
.thanks main section ul {
    margin: 2.4rem 0 2.4rem 3.2rem;
    color: var(--red-color-02);
    list-style: disc;
}


/* ---- End of file --------------------------------------- */