@charset "UTF-8";

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

　CSS構成

　//絶対に変更しないCSS
　- reset.css           全てのブラウザ固有CSSをリセットするCSS。基本触らないこと。
　- bootstrap.min.css   Bootstrapコンポーネントを利用するためのCSS。基本触らないこと。
　- all.min.css         Font Awesome を利用するためのCSS。基本触らないこと。
　- aos.css             AOSを利用するためのCSS。基本触らないこと。

　//基本的には変更しないCSS
　- base.css            基本の文字設定や、Webフォントの読み込みなど。基本触らなくてもOK。

　//メインで利用しているCSS
　- common.css          ヘッダー、フッター、下層ページのタイトルなど、共通ページレイアウトを記載したCSS
　- stlye.css           各ページ固有のレイアウトを記載したCSS

　//補助的に利用しているCSS
　- module.css          見出しやリスト、テーブルなど、共通利用できるパーツをまとめたCSS
　- utility.css         マージンやパディング、文字サイズや文字色など、補助的に利用できるCSS

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

:root {
    /* デフォルトは普通のvh */
    --vh: 1vh;
}


/* iOS Safari 対策：アドレスバー込みで計算される 100vh を避ける */

@supports (-webkit-touch-callout: none) {
    :root {
        --vh: 1svh;
    }
}

html,
body {
    height: auto;
    min-height: 100%;
}

body {
    overscroll-behavior-y: none;
}

.site-wrapper {
    opacity: 0;
    visibility: hidden;
    transition: opacity .6s ease;
}

body.is-loaded .site-wrapper {
    opacity: 1;
    visibility: visible;
}


/*------------------------------------------------------------------
  fv
------------------------------------------------------------------*/

.fv {
    position: relative;
    overflow: hidden;
}

.fv-area {
    width: 100vw;
    height: auto;
    /* aspect-ratio: 5 / 2; */
    overflow: hidden;
    display: flex;
    position: relative;
}

.fv-area ::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    background-color: rgba(34, 34, 34, .15);
}

.fv-area div {
    width: 50%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
}

.fv-area div img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.catch {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
    color: var(--white-color);
    display: inline;
    width: fit-content;
}

.catch .wrap {
    width: 100%;
}

.catch .en {
    display: flex;
    flex-direction: column;
    font-size: 4rem;
    line-height: 1.5;
}

.catch .en span {
    width: fit-content;
    white-space: nowrap;
}

.catch .jp {
    font-size: 1.25rem;
    line-height: 4;
    width: fit-content;
    white-space: nowrap;
}

.fv-scroll {
    position: absolute;
    right: 3vw;
    bottom: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    z-index: 5;
    pointer-events: none;
}

.fv-scroll__text {
    font-family: var(--en-font);
    font-size: .8em;
    letter-spacing: .2em;
    color: var(--white-color);
    writing-mode: vertical-rl;
    margin-bottom: 0.75rem;
}

.fv-scroll__line {
    position: relative;
    width: 1px;
    height: 90px;
    background-color: rgba(255, 255, 255, 0.3);
    overflow: hidden;
}

.fv-scroll__line::after {
    content: "";
    position: absolute;
    top: -100%;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--white-color);
    animation: fvScrollLine 2.6s ease-in-out infinite;
}

@keyframes fvScrollLine {
    0% {
        top: -100%;
    }

    35% {
        top: 0;
    }

    65% {
        top: 0;
    }

    100% {
        top: 100%;
    }
}


@media screen and (max-width:1199px) {

    .fv-area div {
        aspect-ratio: 1 / 1;
    }

    .catch {
        position: absolute;
        bottom: 5vw;
        top: initial;
        left: 5vw;
        transform: inherit;
    }

    .catch .en {
        font-size: 2.5rem;
    }

    .catch .jp {
        font-size: 1rem;
        line-height: 2;
        margin-top: 1em;
    }
}

@media screen and (max-width:991px) {
    .catch .en {
        font-size: 2rem;
    }

    .catch .jp {
        font-size: 1rem;
        line-height: 2;
        margin-top: 1em;
    }

    .fv-area ::before {
        background-color: rgba(34, 34, 34, .3);
    }
}

@media screen and (max-width:767px) {
    .fv-area {
        display: flex;
        flex-direction: column;
    }

    .fv-area div {
        width: 100%;
        aspect-ratio: 2 / 1;
    }

    .catch {
        position: absolute;
        top: 50%;
        bottom: initial;
        transform: translateY(-50%);
        color: var(--white-color);
        display: inline;
        width: fit-content;
    }

    .fv-scroll__text {
        display: none;
    }
}

@media screen and (max-width:575px) {
    .fv-area div {
        width: 100%;
        aspect-ratio: 3 / 2;
    }

    .catch .en {
        line-height: 1.25;
    }
}

@media screen and (max-width:449px) {
    .catch {
        position: absolute;
        top: initial;
        bottom: 20vw;
        transform: initial;
        color: var(--white-color);
        display: inline;
        width: fit-content;
    }
}

/*------------------------------------------------------------------
  about
------------------------------------------------------------------*/

.pattern-1 {
    background-color: var(--bg-color);
    display: flex;
    color: var(--white-color);
    padding: 7rem 12rem;
    gap: 5rem;
}

.pattern-1 .txt-area {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    text-align: justify;
}

.pattern-1 .txt-area .txt-wrap {
    margin-bottom: 2rem;
}

.pattern-1 .txt-area .txt-wrap div {
    font-size: 1.5rem;
    line-height: 1.5;
    margin-bottom: 1.75rem;
}

#sec-about .pattern-1 {
    margin-bottom: 5rem;
}

#sec-about ul {
    display: flex;
    justify-content: space-between;
}

#sec-about ul li {
    position: relative;
    width: 48%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    background-color: rgba(255, 255, 255, .7);
    border: 1px solid var(--primary-light-1-color);
    padding: 4rem 5rem;
}

#sec-about ul li>* {
    z-index: 2;
}

#sec-about ul li::before {
    content: "";
    display: block;
    position: absolute;
    top: 1rem;
    bottom: 1rem;
    left: 1rem;
    right: 1rem;
    border: 1px solid var(--primary-light-1-color);
    z-index: 1;
}

#sec-about ul li .ttl {
    font-size: 2rem;
    font-weight: 600;
    margin-bottom: 1rem;
}

#sec-about ul li .txt {
    padding-top: 1.5rem;
    border-top: 1px solid var(--gray-light-color);
    text-align: justify;
    line-height: 1.5;
    letter-spacing: 0;
    margin-bottom: 2.5rem;
}

@media screen and (max-width:1399px) {
    .pattern-1 {
        padding: 7rem 5rem;
        gap: 3rem;
    }
}

@media screen and (max-width:1199px) {
    .pattern-1 {
        padding: 6rem 4rem;
    }

    #sec-about ul li .ttl {
        font-size: 1.5rem;
    }
}

@media screen and (max-width:991px) {
    .pattern-1 {
        flex-direction: column;
    }

    .pattern-1 .txt-area {
        align-items: flex-start;
    }

    .pattern-1 .txt-area .txt-wrap div {
        font-size: 1.25rem;
        margin-bottom: 1.5rem;
    }

    #sec-about ul li::before {
        content: "";
        display: block;
        position: absolute;
        top: .5rem;
        bottom: .5rem;
        left: .5rem;
        right: .5rem;
        border: 1px solid var(--primary-light-1-color);
        z-index: 1;
    }

    #sec-about ul li {
        padding: 3rem 2rem;
    }

    #sec-about ul li .ttl {
        font-size: 1.25rem;
        margin-bottom: 1rem;
    }
}

@media screen and (max-width:767px) {
    #sec-about .pattern-1 {
        margin-bottom: 3rem;
    }

    #sec-about ul {
        flex-direction: column;
        gap: 1rem;
    }

    #sec-about ul li {
        width: 100%;
    }
}

@media screen and (max-width:575px) {
    .pattern-1 {
        gap: 2.5rem;
        padding: 4rem 2rem;
    }
}

/*------------------------------------------------------------------
  achievements
------------------------------------------------------------------*/

#sec-achieve {
    background-color: var(--white-color);
}

#sec-achieve .title-english {
    margin: 0 auto 7.5rem;
}

#sec-achieve .linkbtn {
    margin: 0 auto;
}

@media screen and (max-width:1199px) {
    #sec-achieve .title-english {
        margin: 0 auto 4rem;
    }
}

@media screen and (max-width:767px) {
    #sec-achieve .title-english {
        margin: 0 auto 2.5rem;
    }
}

/*------------------------------------------------------------------
  recruit
------------------------------------------------------------------*/

#sec-recruit {
    position: relative;
    background-image: url(../images/tp_recruit.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: left 40%;
}

#sec-recruit::before {
    position: absolute;
    content: "";
    display: block;
    top: 1rem;
    right: 1rem;
    bottom: 1rem;
    left: 1rem;
    border: 1px solid var(--white-color);
    z-index: -1;
}

#sec-recruit .container-wide {
    display: flex;
    flex-direction: column;
    align-items: center;
}

#sec-recruit .txt-area {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 2rem;
    color: var(--white-color);
    /* font-size: 1.125rem; */
    margin-bottom: 2rem;
}

#sec-recruit .txt-area div {
    font-size: 1.5rem;
    font-weight: 600;
}

@media screen and (max-width:991px) {
    #sec-recruit::before {
        position: absolute;
        content: "";
        display: block;
        top: .5rem;
        right: .5rem;
        bottom: .5rem;
        left: .5rem;
        border: 1px solid var(--white-color);
        z-index: -1;
    }

    #sec-recruit .title-english.ttl-center {
        margin-bottom: 3rem;
    }

}

@media screen and (max-width:575px) {
    #sec-recruit {
        background-position: 20% 10%;
    }

    #sec-recruit .txt-area div {
        font-size: 1.125rem;
        font-weight: 600;
    }
}


/*/////////////////////////////////////////////////////////////////
  company.html
/////////////////////////////////////////////////////////////////*/


/* sec-prof */

.sec-prof .container {
    position: relative;
    padding: 8rem;
    display: flex;
    flex-direction: column;
    gap: 9rem;
}

.sec-prof .container::before {
    content: "";
    position: absolute;
    top: 1rem;
    left: 1rem;
    bottom: 1rem;
    right: 1rem;
    border: 1px solid var(--white-color);
    z-index: -1;
}

.company-wrap {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.access-map .text-area {
    color: var(--white-color);
    display: flex;
    align-items: center;
    gap: 10rem;
}

.access-map .text-area .txt span {
    padding-bottom: .25rem;
    border-bottom: 1px solid var(--white-color);
}

.access-map .company-map {
    position: relative;
    width: 100%;
    height: auto;
    aspect-ratio: 6 / 2;
}

.company-map iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
    border: 0;
}

@media screen and (max-width:1499px) {
    .sec-prof .container {
        max-width: 90%;
    }
}

@media screen and (max-width:1199px) {
    .access-map .text-area {
        gap: 4rem;
    }

    .sec-prof .container {
        padding: 4rem;
        gap: 6rem;
    }

    .access-map .company-map {
        aspect-ratio: 4 / 2;
    }
}

@media screen and (max-width:991px) {
    .sec-prof .container::before {
        content: "";
        position: absolute;
        top: .5rem;
        left: .5rem;
        bottom: .5rem;
        right: .5rem;
        border: 1px solid var(--white-color);
        z-index: -1;
    }

    .access-map .text-area {
        flex-direction: column;
        align-items: flex-start;
        gap: 2rem;
    }

    .access-map .text-area .txt {
        font-size: 1.125rem;
    }
}

@media screen and (max-width:575px) {
    .sec-prof .container {
        padding: 4rem 2rem;
        gap: 4rem;
    }

    .access-map .company-map {
        aspect-ratio: 1 / 1;
    }

    .access-map .text-area .txt {
        font-size: 1rem;
    }
}


/*/////////////////////////////////////////////////////////////////
  silkscreen.html
/////////////////////////////////////////////////////////////////*/

.pattern-2 {
    background-color: rgba(163, 195, 255, .6);
    z-index: 1;
    position: relative;
    padding: 6rem !important;
    border: 1px solid var(--white-color);
    display: flex;
    flex-direction: column;
    gap: 5rem;
}

.pattern-2::before {
    content: "";
    position: absolute;
    top: 1rem;
    right: 1rem;
    bottom: 1rem;
    left: 1rem;
    z-index: -1;
    border: 1px solid var(--white-color);
}

.pattern-2 .inner {
    display: flex;
    gap: 4%;
    text-align: justify;
    align-items: center;
}

.pattern-2 .img-area,
.pattern-2 .txt-area {
    width: 48%;
}

.pattern-2 .img-area {
    height: 100%;
}

.pattern-2 .txt-area .ttl {
    margin-bottom: 2rem;
}

.pattern-2 .txt-area .ttl span {
    position: relative;
    font-size: 1.25rem;
    font-weight: 600;
    display: block;
    padding-inline: .75rem;
    color: var(--white-color);
    width: fit-content;
}

.pattern-2 .txt-area .ttl span::before {
    content: "";
    display: block;
    position: absolute;
    inset: 0;
    background-color: var(--primary-color);
    width: 100%;
    z-index: -1;
}

.pattern-2 .txt-area .txt .sub-ttl {
    display: flex;
    align-items: center;
    font-size: 1.2rem;
    margin-bottom: .5rem;
}

.pattern-2 .txt-area .txt .sub-ttl span {
    display: inline-block;
    background-color: var(--primary-color);
    width: .25rem;
    height: 1.6rem;
    margin-right: .4rem;
}

.pattern-2 .info-sub {
    display: flex;
    justify-content: space-between;
    gap: 4%;
}

.pattern-2 .inner-2 {
    display: flex;
    gap: 3rem;
    align-items: center;
    justify-content: center;
    padding-top: 5rem;
    border-top: 1px solid var(--white-color);
}

.pattern-2 .inner-2 .wrap {
    background-color: var(--white-color);
    padding: 2rem 1rem 2rem 2rem;
}

.pattern-2 .inner-2 ul {
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 1rem 2rem;
}

.pattern-2 .inner-2 ul li {
    display: flex;
    align-items: center;
    gap: .5rem;
}

.pattern-2 .inner-2 ul li span {
    color: var(--accent-color);
}

.sec-reason ul.reason {
    display: flex;
    flex-direction: column;
    gap: 6rem;
}

.sec-reason ul.reason li {
    display: flex;
    gap: 3rem;
    align-items: center;
}

.sec-reason ul.reason li:nth-of-type(2) {
    flex-direction: row-reverse;
}

.sec-reason ul.reason li .img-area {
    width: 25rem;
}

.sec-reason ul.reason li .txt-area {
    width: calc(100% - 27rem);
    color: var(--white-color);
    text-align: justify;
}

.sec-reason ul.reason li .txt-area .ttl {
    position: relative;
    display: flex;
    margin-bottom: 1rem;
    gap: 1rem;
    align-items: center;
}

.sec-reason ul.reason li .txt-area .ttl span {
    position: relative;
}

.sec-reason ul.reason li .txt-area .ttl span:first-of-type {
    font-size: 3rem;
    font-weight: 700;
    line-height: 1;
    color: var(--bg-color);
    padding-inline: .5rem;
    width: fit-content;
    height: fit-content;
    display: inline-block;
    padding-bottom: .25rem;
}

.sec-reason ul.reason li .txt-area .ttl span:last-of-type {
    display: inline-block;
    font-weight: 700;
    font-size: 1.25rem;
    width: fit-content;
    height: fit-content;
}

.sec-reason ul.reason li .txt-area .ttl span:first-of-type::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background-color: var(--white-color);
}

.sec-reason ul.reason li .txt-area .txt {
    border-top: 1px solid var(--white-color);
    padding-top: .5rem;
}

ul.process {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

ul.process li {
    display: flex;
    align-items: center;
    gap: 3rem;
    border: 1px solid var(--primary-light-1-color);
    padding: 2rem;
}

ul.process li .img-area {
    width: 25rem;
}

ul.process li .txt-area {
    text-align: justify;
}

ul.process li .txt-area .ttl {
    position: relative;
    font-size: 1.25rem;
    margin-bottom: 1rem;
    color: var(--white-color);
    display: inline-block;
    padding-inline: 1rem;
}

ul.process li .txt-area .ttl::before {
    content: "";
    display: block;
    position: absolute;
    inset: 0;
    z-index: -1;
    background-color: var(--accent-color);
}

ul.process>li:not(:last-child) {
    margin-bottom: 40px;
    position: relative;
}

ul.process>li:not(:last-child)::after {
    content: '';
    position: absolute;
    border: 40px solid transparent;
    width: 0;
    height: 0;
    bottom: -6.25rem;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    border-top-color: var(--primary-light-2-color);
}

@media screen and (max-width:1499px) {
    .container-wide.pattern-2 {
        max-width: 90%;
    }
}

@media screen and (max-width:1199px) {
    .pattern-2 {
        padding: 3rem !important;
        gap: 2rem;
    }

    .pattern-2 .inner {
        display: flex;
        gap: 2%;
        align-items: flex-start;
    }

    .pattern-2 .txt-area {
        width: 50%;
    }

    .pattern-2 .txt-area .ttl span {
        font-size: 1.125rem;
    }

    .pattern-2 .txt-area .txt .sub-ttl {
        font-size: 1.125rem;
        margin-bottom: .5rem;
    }

    .pattern-2 .inner-2 {
        display: flex;
        flex-direction: column;
        gap: 2.5rem;
        align-items: flex-start;
        padding-top: 2rem;
    }

    .sec-reason ul.reason li .txt-area .ttl {
        gap: .75rem;
    }

    .sec-reason ul.reason li .txt-area .ttl span:first-of-type {
        font-size: 2rem;
        line-height: 1;
        color: var(--bg-color);
        padding-inline: .5rem;
        width: fit-content;
        height: fit-content;
        display: inline-block;
        padding-bottom: .25rem;
    }

    .sec-reason ul.reason li .txt-area .ttl span:last-of-type {
        display: inline-block;
        font-weight: 700;
        font-size: 1.125rem;
        width: fit-content;
        height: fit-content;
    }

    ul.process li .txt-area .ttl {
        font-size: 1.125rem;
        margin-bottom: .75rem;
    }
}

@media screen and (max-width:991px) {
    .pattern-2 {
        padding: 2rem !important;
        gap: 2rem;
    }

    .pattern-2 .inner {
        flex-direction: column;
        gap: 2rem;
    }

    .pattern-2 .img-area,
    .pattern-2 .txt-area {
        width: 100%;
    }

    .pattern-2 .img-area {
        width: 100%;
        aspect-ratio: 2 / 1;
    }

    .pattern-2 .img-area img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .pattern-2::before {
        content: "";
        position: absolute;
        top: .5rem;
        right: .5rem;
        bottom: .5rem;
        left: .5rem;
        z-index: -1;
        border: 1px solid var(--white-color);
    }

    .sec-reason ul.reason {
        display: flex;
        flex-direction: column;
        gap: 4rem;
    }

    .sec-reason ul.reason li,
    .sec-reason ul.reason li:nth-of-type(2) {
        display: flex;
        flex-direction: column-reverse;
        gap: 2rem;
        align-items: center;
    }

    .sec-reason ul.reason li .img-area,
    .sec-reason ul.reason li .txt-area {
        width: 100%;
    }

    .sec-reason ul.reason li .img-area {
        width: 100%;
        aspect-ratio: 3/1;
        display: block;
        overflow: hidden;
    }

    .sec-reason ul.reason li .img-area img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    ul.process li {
        flex-direction: column;
        padding: 3rem 0;
        gap: 1.5rem;
    }

    ul.process>li:not(:last-child)::after {
        bottom: -6.5rem;
    }

    ul.process li .txt-area,
    ul.process li .img-area {
        width: 70%;
    }
}

@media screen and (max-width:575px) {
    .pattern-2 .txt-area .ttl {
        text-align: center;
    }

    .pattern-2 .txt-area .ttl span {
        font-size: .975rem;
        margin: 0 auto;
        padding-inline: .2rem;
    }

    .pattern-2 .txt-area .txt .sub-ttl {
        font-size: .975rem;
        margin-bottom: 1rem;
    }

    .pattern-2 .inner-2 .wrap {
        background-color: var(--white-color);
        padding: 1rem;
        width: 100%;
    }

    .pattern-2 .inner-2 ul {
        display: flex;
        flex-direction: column;
        flex-wrap: nowrap;
        gap: .25rem;
    }

    .sec-reason ul.reason li .img-area {
        width: 100%;
        aspect-ratio: 2/1;
        display: block;
        overflow: hidden;
    }

    .sec-reason ul.reason li .txt-area .ttl {
        display: flex;
        /* flex-direction: column; */
        width: fit-content;
    }

    .sec-reason ul.reason li .txt-area .ttl span:first-of-type {
        height: 100%;
        display: block;
        padding: 1rem;
    }

    ul.process li .txt-area,
    ul.process li .img-area {
        width: 100%;
    }

    ul.process li {
        padding: 2rem 1.5rem;
        gap: 1rem;
    }

    ul.process>li:not(:last-child)::after {
        content: '';
        position: absolute;
        border: 30px solid transparent;
        width: 0;
        height: 0;
        bottom: -5.75rem;
        left: 50%;
        transform: translateX(-50%);
        -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
        border-top-color: var(--primary-light-2-color);
    }
}


/*/////////////////////////////////////////////////////////////////
  inkjet.html
/////////////////////////////////////////////////////////////////*/

.pattern-2 .inner-3 {
    display: flex;
    flex-direction: column;
    gap: 3rem;
    justify-content: center;
    padding-top: 4rem;
    border-top: 1px solid var(--white-color);
}

.pattern-2 .inner-3 .wrap {
    background-color: var(--white-color);
    padding: 2rem;
}

.pattern-2 .inner-3 ul {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2rem;
}

.pattern-2 .inner-3 ul li:not(:last-of-type) {
    padding-bottom: 2rem;
    border-bottom: 1px solid var(--gray-light-color);
}

.pattern-2 .inner-3 ul li {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .25rem;
    text-align: justify;
    width: 100%;
}

.pattern-2 .inner-3 ul li .ttl {
    display: flex;
    align-items: center;
    margin-bottom: .25rem;
    font-weight: 700;
}

.pattern-2 .inner-3 ul li span {
    color: var(--accent-color);
    margin-right: .5rem;
}

.sec-equip .txt-area {
    color: var(--white-color);
}

.equipSlider__prev,
.equipSlider__next {
    display: none;
}

.swiper-button-next:after, .swiper-button-prev:after {
    content: none !important;
}

.equipCard {
    text-align: center;
    padding: 1.25rem;
    background-color: var(--white-color);
}

.equipCard__media {
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
}

.equipCard__media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.equipCard__name {
    margin-top: 1rem;
    color: var(--accent-color);
    font-weight: 700;
    font-size: 1.25rem;
    padding-bottom: .75rem;
    border-bottom: 1px solid var(--gray-light-color);
}

.equipCard__desc {
    margin-block: .75rem;
    text-align: justify;
}


.equipSlider:not(.swiper-initialized) .swiper-wrapper {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 3rem;
}

.equipSlider:not(.swiper-initialized) .swiper-slide {
    width: auto !important;
    margin: 0 !important;
}

.equipSlider:not(.swiper-initialized) .swiper-slide:nth-child(1) {
    grid-column: 1 / 4;
    grid-row: 1;
    max-width: 45vw; /* 好きな幅に調整 */
    justify-self: center;
}

.equipSlider:not(.swiper-initialized) .swiper-slide:nth-child(2) {
    grid-column: 1;
    grid-row: 2;
}

.equipSlider:not(.swiper-initialized) .swiper-slide:nth-child(3) {
    grid-column: 2;
    grid-row: 2;
}

.equipSlider:not(.swiper-initialized) .swiper-slide:nth-child(4) {
    grid-column: 3;
    grid-row: 2;
}

.swiper-button-next,
.swiper-button-prev {
    display: none !important;
}

@media (max-width: 1199px) {
    .sec-equip .txt-area {
        text-align: justify;
    }

    .swiper-button-next,
    .swiper-button-prev {
        width: 3rem !important;
        height: 3rem !important;
        background: var(--black-color);
        border-radius: 50%;
        display: flex !important;
        align-items: center;
        justify-content: center;
        opacity: 1;
        transition: all .3s ease;
    }

    .equipSlider__prev:hover,
    .equipSlider__next:hover {
        opacity: .8;
    }

    .swiper-button-next.swiper-button-disabled, .swiper-button-prev.swiper-button-disabled {
        opacity: 0 !important;
        cursor: auto;
        pointer-events: none;
    }

    .swiper-button-next .material-symbols-rounded,
    .swiper-button-prev .material-symbols-rounded {
        font-size: 32px;
        color: var(--white-color);
    }

    .equipSlider__slide {
        width: auto;
    }

    .equipSlider .swiper-slide {
        width: 330px;
    }

    .equipCard__name {
        font-size: 1.25rem;
    }
}

@media (max-width: 767px) {
    .equipCard__name {
        font-size: 1rem;
        letter-spacing: 0;
    }

    .equipSlider .swiper-slide {
        width: 280px;
    }

    .equipSlider.swiper {
        /* padding: 0 1.75rem; */
    }
}


/*/////////////////////////////////////////////////////////////////
  achievements.html
/////////////////////////////////////////////////////////////////*/


/* const-cate */

.section-medium.const-cate {
    padding-inline: 0;
}

.const-cate .l-flex-row-xs>div a {
    text-align: center;
    font-size: 1.25rem;
    line-height: 3;
    opacity: 1;
    transition: opacity .3s ease;
    border-radius: 6rem;
}

@media screen and (max-width:991px) {
    .const-cate .l-flex-row-xs>div {
        width: 100%;
    }

    .const-cate .l-flex-row-xs>div a {
        line-height: 2.5;
    }

    .const-cate .l-flex-row-xs>div {
        font-size: 1.125rem;
    }
}

@media screen and (max-width:767px) {
    .const-cate .l-flex-row-xs>div {
        font-size: 1rem;
    }
}

@media screen and (max-width:374px) {
    .const-cate .l-flex-row-xs>div {
        font-size: 0.875rem;
    }
}

.const-cate .l-flex-row-xs>div a:hover {
    opacity: .8;
}

.const-cate .l-flex-row-xs>div a {
    color: var(--white-color);
    display: block;
    position: relative;
    overflow: hidden;
}

.const-cate .l-flex-row-xs>div a::before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: var(--black-color);
    transform: scaleY(0);
    transform-origin: top;
    transition: transform 0.35s ease;
    z-index: -1;
}

@media (hover: hover) and (pointer: fine) {
    .const-cate .l-flex-row-xs>div a:hover::before {
        transform: scaleY(1);
        transform-origin: bottom;
    }
}

@media (hover: none), (pointer: coarse) {
    .const-cate .l-flex-row-xs>div a:hover {
        transform: unset;
        transform-origin: unset;
        opacity: unset;
    }
}

/*/////////////////////////////////////////////////////////////////
  recruit.html
/////////////////////////////////////////////////////////////////*/

.sec-merit ul {
    display: flex;
    justify-content: space-between;
}

.sec-merit ul li {
    position: relative;
    width: 31%;
    display: flex;
    flex-direction: column;
    align-items: center;
    background-color: rgba(255, 255, 255, .7);
    border: 1px solid var(--primary-light-1-color);
    padding: 3rem 1rem;
}

.sec-merit ul li>* {
    z-index: 2;
}

.sec-merit ul li::before {
    content: "";
    display: block;
    position: absolute;
    top: 1rem;
    bottom: 1rem;
    left: 1rem;
    right: 1rem;
    border: 1px solid var(--primary-light-1-color);
    z-index: 1;
}

.sec-merit ul li .img-area {
    width: 7.5rem;
    height: 7.5rem;
    margin: 0 auto 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sec-merit ul li .img-area img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.sec-merit ul li .txt {
    padding-top: 1.5rem;
    text-align: center;
    line-height: 1.5;
}

.tape-swiper {
    pointer-events: none;
    user-select: none;
}

.tape-swiper .swiper-wrapper {
    transition-timing-function: linear;
}

.tape-swiper .swiper-slide {
    width: 240px;
}

.tape-swiper .swiper-slide img {
    width: 100%;
    aspect-ratio: 1/1;
    object-fit: cover;
    display: block;
}

.tape-swiper .swiper-wrapper {
    transition-timing-function: linear;
}

@media screen and (max-width:1199px) {
    .pattern-2.recruit .inner {
        align-items: center;
    }
}

@media screen and (max-width:991px) {
    .sec-merit ul li::before {
        content: "";
        display: block;
        position: absolute;
        top: .5rem;
        bottom: .5rem;
        left: .5rem;
        right: .5rem;
        border: 1px solid var(--primary-light-1-color);
        z-index: 1;
    }

    .sec-merit ul li {
        padding: 3rem 1rem;
    }

    .tape-swiper .swiper-slide {
        width: 180px;
    }
}

@media screen and (max-width:767px) {
    .sec-merit ul {
        flex-direction: column;
        gap: 1rem;
    }

    .sec-merit ul li {
        width: 100%;
        flex-direction: row;
    }

    .sec-merit ul li .img-area {
        width: 25%;
        aspect-ratio: 1;
        height: auto;
        margin-bottom: 0;
    }

    .sec-merit ul li .txt {
        width: 70%;
        padding: 0;
    }

    .tape-swiper .swiper-slide {
        width: 160px;
    }
}

@media screen and (max-width:575px) {
    .tape-swiper .swiper-slide {
        width: 120px;
    }
}


/*/////////////////////////////////////////////////////////////////
  contact.html
/////////////////////////////////////////////////////////////////*/

.sec-tel-fax .container-wide {
    position: relative;
    padding: 8rem;
    border: 1px solid var(--white-color);
}

.sec-tel-fax .container-wide::before {
    content: "";
    position: absolute;
    display: block;
    top: 1rem;
    left: 1rem;
    bottom: 1rem;
    right: 1rem;
    border: 1px solid var(--white-color);
    z-index: -1;
}

.tel-fax .contact-list {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 2.75rem;
}

.tel-fax .contact-list .contact-item {
    border-right: 1px solid var(--primary-color);
    width: calc(100% / 2);
    display: flex;
    align-items: center;
    justify-content: center;
}

.tel-fax .contact-list .contact-item:last-of-type {
    border: none;
}

.tel-fax .contact-list .contact-item .ttl {
    display: flex;
    flex-direction: column;
    gap: .25rem;
    color: var(--primary-color);
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: 1.25rem;
    letter-spacing: 0;
}

.tel-fax .contact-list .contact-item .ttl .blue {
    background-color: var(--primary-color);
    color: var(--white-color);
    width: fit-content;
    padding-inline: .5rem;
    /* font-size: 1rem; */
    letter-spacing: .1em;
    text-align: center;
}

.tel-fax .contact-list .num-area {
    display: flex;
    flex-direction: column;
    gap: .75rem;
    font-weight: 700;
}

.tel-fax .contact-list .contact-item .fax :nth-of-type(2),
.tel-fax .contact-list .contact-item .fax a,
.tel-fax .contact-list .contact-item .tel :nth-of-type(2),
.tel-fax .contact-list .contact-item .tel a {
    font-size: 2.5rem;
    font-weight: 700;
    letter-spacing: 0;
    width: fit-content;
    white-space: nowrap;
    line-height: 1;
}

.tel-fax .contact-list .num-area .small {
    font-weight: 450;
    font-size: .9rem;
}

.sec-mail .container {
    position: relative;
    padding: 8rem;
}


@media screen and (max-width:1499px) {
    .sec-prof .container {
        max-width: 90%;
    }
}


@media screen and (max-width:1499px) {
    .sec-tel-fax .container-wide {
        max-width: 90%;
    }
}

@media screen and (max-width:1199px) {
    .sec-tel-fax .container-wide {
        position: relative;
        padding: 8%;
        border: 1px solid var(--white-color);
    }

    .tel-fax .contact-list {
        padding: 4%;
    }

    .sec-mail .container {
        position: relative;
        padding: 6rem 3rem;
    }
}

@media screen and (max-width:991px) {

    .sec-tel-fax .container-wide {
        position: relative;
        padding: 3rem 1.5rem;
        border: 1px solid var(--white-color);
    }

    .sec-tel-fax .tel-fax {
        background-color: transparent;
    }

    .sec-tel-fax .container-wide::before {
        content: "";
        position: absolute;
        display: block;
        top: .5rem;
        left: .5rem;
        bottom: .5rem;
        right: .5rem;
        border: 1px solid var(--white-color);
        z-index: -1;
    }

    .tel-fax .contact-list {
        gap: 1rem;
        padding: 0;
    }

    .tel-fax .contact-list .contact-item {
        border: none;
        background-color: rgba(255, 255, 255, 0.8);
        width: 100%;
        padding: 4%;
    }

    .tel-fax .contact-list .contact-item .fax :nth-of-type(2),
    .tel-fax .contact-list .contact-item .fax a,
    .tel-fax .contact-list .contact-item .tel :nth-of-type(2),
    .tel-fax .contact-list .contact-item .tel a {
        font-size: 1.75rem;
        font-weight: 700;
        letter-spacing: 0;
        width: fit-content;
        white-space: nowrap;
        line-height: 1;
    }

    .tel-fax .contact-list .contact-item .ttl {
        font-size: .825rem;
    }
}

@media screen and (max-width:767px) {
    .tel-fax .contact-list {
        flex-direction: column;
    }

    .tel-fax .contact-list .contact-item .ttl {
        margin-bottom: .75rem;
    }

    .sec-mail .container {
        position: relative;
        padding: 4rem 2rem;
    }
}