@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;500;700&display=swap');
@import url("https://use.typekit.net/vxt0gvy.css");
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300..700;1,300..700&family=LINE+Seed+JP&family=Plus+Jakarta+Sans:ital,wght@0,200..800;1,200..800&display=swap');

/*
Theme Name: It Solution Group
Theme URI: null
Description: Description
Author: 81bridge - SGX
Version: 1.0
*/

:root {
    --color-main: #668e4c;
    --color-bg: #f5f5f5;
    --font-en01: "Plus Jakarta Sans", sans-serif;
    --font-en02: "Cormorant Garamond", serif;
    --font-jp: "LINE Seed JP", sans-serif;
}

.aligncenter {
    display: block;
    margin: 0 auto;
}

.alignright {
    float: right;
}

.alignleft {
    float: left;
}

img[class*="wp-image-"],
img[class*="attachment-"] {
    height: auto;
    max-width: 100%;
}

.wp-block-image figure,
.wp-block-image figcaption {
    display: block;
}

a.nolink,
a.nolink:hover {
    opacity: 1;
    cursor: default;
    pointer-events: none;
}

/*------------------------------------------------------------
	デフォルトスタイル
------------------------------------------------------------*/
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
font,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td {
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    outline: 0;
    font-size: 1em;
}

html {
    font-size: 62.5%;
    scroll-padding-top: 100px;
}

body,
table,
input,
textarea,
select,
option {
    font-family: 'Noto Sans JP', sans-serif;
}

article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary {
    display: block;
}

section {
    scroll-margin-top: -80px;
}

ol,
ul {
    list-style: none;
}

blockquote,
q {
    quotes: none;
}

:focus {
    outline: 0;
}

ins {
    text-decoration: none;
}

del {
    text-decoration: line-through;
}

img {
    vertical-align: top;
    max-width: 100%;
    height: auto;
}

a,
a:link {
    color: #212836;
    text-decoration: none;
    transition: .3s;
    -webkit-transition: .3s;
}

a:visited {
    color: #212836;
}

a:hover {
    color: #212836;
}

a:active {
    color: #212836;
}

/*------------------------------------------------------------
	汎用スタイル
------------------------------------------------------------*/
/* clearfix */
.clearfix:after {
    content: "";
    display: block;
    clear: both;
}

/* flex */
.flex,
.flexA,
.flexB,
.flexC {
    display: flex;
    flex-wrap: wrap;
}

.flexA {
    justify-content: space-around;
}

.flexB {
    justify-content: space-between;
}

.flexC {
    justify-content: center;
}

.is-pc {
    display: block !important;

    @media (width < 1440px) {
        display: none !important;
    }
}

.is-sp {
    display: none !important;

    @media (width < 1440px) {
        display: block !important;
    }
}

/*------------------------------------------------------------
	レイアウト
------------------------------------------------------------*/
body {
    color: #fff;
    font-weight: 400;
    font-size: 1.6rem;
    font-family: var(--font-jp);
    line-height: 1.5;
    text-size-adjust: none;
    -webkit-text-size-adjust: none;
    background-color: #000;
}

body.fixed {
    position: fixed;
    width: 100%;
    height: 100%;
}

#container {
    /* padding-top: 70px; */
    overflow-x: clip;
    overflow-y: visible;
    text-align: left;
}

@media all and (max-width: 1440px) {
    #container {
        padding-top: 50px;
    }
}

.special #container {
    padding: 0;
}

#main {
    /* margin-top: 70px; */
    display: block;
}

a[href^="tel:"] {
    cursor: default;
    pointer-events: none;
}

@media all and (min-width: 897px) {
    .sp {
        display: none !important;
    }
}

@media all and (max-width: 896px) {
    body {
        min-width: inherit;
        font-size: 1.4rem;
    }

    a:hover,
    a:hover img {
        opacity: 1 !important;
    }

    .pc {
        display: none !important;
    }

    a[href^="tel:"] {
        cursor: pointer;
        pointer-events: auto;
    }

    #main {
        /* margin-bottom: 50px; */
        margin-top: 0;
    }

    /* #container {
        padding-top: 60px;
    } */
}

/*------------------------------------------------------------
	comMore
------------------------------------------------------------*/
.comMore {
    display: inline-block;
    overflow: hidden;
    border-bottom: 2px solid #fff;
}

.comMore a {
    position: relative;
    padding: 0 40px 6px 2px;
    font-size: 2.2rem;
    font-family: var(--font-en01);
    text-align: left;
    border-bottom: 2px solid #fff;
    color: transparent;
    text-shadow: 0 -1.5em 0 #fff, 0 0 0 #fff;
    transition: text-shadow 0.3s;
}

.comMore a::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 2px;
    transform: translateY(-50%);
    width: 15px;
    height: 15px;
    background: url("img/index/arrow.png") no-repeat center / contain;
    transition: all 0.25s ease;
}

.comMore a:hover {
    text-shadow: 0 0 0 #fff, 0 1.5em 0 #fff;
}

.comMore a:hover::after {
    background: url("img/index/arrow02.png") no-repeat center / contain;
}


@media all and (max-width: 896px) {
    .comMore a {
        padding: 0 40px 6px 2px;
        font-size: 1.8rem;
    }
}



/*------------------------------------------------------------
	cursor
------------------------------------------------------------*/
.cursor-ring {
    position: fixed;
    top: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 25px;
    height: 25px;
    border: 1px solid #fff;
    transform: translate(-50%, -50%) rotate(45deg);
    pointer-events: none;
    z-index: 999999;
    mix-blend-mode: normal;
    transition: width 0.2s, height 0.2s, background 0.2s;
}

.cursor-text {
    /* padding-bottom: 20px; */
    font-size: 1.4rem;
    font-family: var(--font-en01);
    color: #fff;
    letter-spacing: 0;
    opacity: 0;
    transform: rotate(-45deg);
    transition: opacity .2s;
}

.cursor-ring.is-service .cursor-text,
.cursor-ring.is-news .cursor-text,
.cursor-ring.is-default .cursor-text {
    opacity: 1;
}

.cursor-ring.is-difference {
    mix-blend-mode: difference;
}

.cursor-ring.is-default {
    width: 60px;
    height: 60px;
    background: rgba(255, 255, 255, .18);
    border-radius: 50%;
    mix-blend-mode: difference;
}

.cursor-ring.is-service {
    width: 120px;
    height: 120px;
    border: unset;
    /* background: #668e4ca7; */
    background: var(--color-main);
    backdrop-filter: blur(3px);
    border-radius: 50%;
    mix-blend-mode: unset;
}

.cursor-ring.is-news {
    width: 120px;
    height: 120px;
    background: var(--color-main);
    border: 1px solid var(--color-main);
    mix-blend-mode: unset;
    border-radius: 50%;
}

.cursor-ring.is-policy {
    border-color: transparent;
    background: transparent;
    transform: translate(-50%, -50%) rotate(0deg);
}

.cursor-ring.is-policy .cursor-text {
    opacity: 0;
}

.cursor-ring.is-policy .cursor-card {
    opacity: 1;
    visibility: visible;
    /* transform: translate(30px, -50%) scale(1); */

    transition:
        opacity .25s,
        transform .25s;
}

.cursor-card {
    position: absolute;
    top: 50%;
    left: 50%;

    width: 360px;
    padding: 30px 40px;

    background: #4a474773;
    backdrop-filter: blur(5px);
    /* border: 2px solid #fff; */

    pointer-events: none;

    opacity: 0;
    visibility: hidden;

    transform: translate(30px, -50%) scale(.95);

    transition:
        opacity .25s ease,
        transform .25s ease,
        visibility 0s;
}

.cursor-ring.is-policy .cursor-card {
    opacity: 1;
    visibility: visible;
}

/* 右側（デフォルト） */
.cursor-ring.card-right .cursor-card {
    transform: translate(30px, -50%) scale(1);
}

/* 左側 */
.cursor-ring.card-left .cursor-card {
    transform: translate(calc(-100% - 30px), -50%) scale(1);
}

.cursor-card h3 {
    font-size: 2.5rem;
    color: #fff;
    font-weight: 500;
    font-family: var(--font-en01);
}

.cursor-card h4 {
    margin: 2px 0 20px;
    padding-bottom: 12px;
    font-size: 1.3rem;
    color: #fff;
    font-weight: 500;
    border-bottom: 1px solid #fff;
}

.cursor-card span {
    color: var(--color-main);
    font-size: 1.0rem;
    font-weight: 700;
}

.cursor-card ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.cursor-card li {
    position: relative;
    padding-left: 15px;
    margin-bottom: 8px;
    color: #fff;
    font-size: 1.4rem;
    font-weight: 400;
}

.cursor-card li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 6px;
    height: 2px;
    background: #fff;
}



/*------------------------------------------------------------
	ヘッダー
------------------------------------------------------------*/
#gHeader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: #000;
    overflow: hidden;
    z-index: 100;
    transition: height 0.8s ease, background 0.8s ease;
}

/* ===== ロゴ（中央固定） ===== */
#gHeader .logo {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

#gHeader h1 img {
    width: 120px;
    padding-left: 20px;
}

/* ===== メニュー（中央右） ===== */
#gHeader .rBox .linkList {
    position: absolute;
    top: 50%;
    right: 30px;
    transform: translateY(-50%);
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 30px;
    overflow: hidden;
}

#gHeader .rBox .linkList li {
    opacity: 0;
    transform: translateY(20px);
}

#gHeader .rBox .linkList li a {
    overflow: hidden;
    color: transparent;
    font-family: var(--font-en01);
    font-weight: 300;
    text-shadow: 0 -1.5em 0 #fff, 0 0 0 #fff;
    mix-blend-mode: difference;
    transition: text-shadow 0.3s;
}

#gHeader .rBox .linkList li a:hover {
    text-shadow: 0 0 0 #fff, 0 1.5em 0 #fff;
}

/* 白背景 */
#gHeader.is-darkText .rBox .linkList li a {
    text-shadow: 0 -1.5em 0 #000, 0 0 0 #000;
    mix-blend-mode: normal;
}

#gHeader.is-darkText .rBox .linkList li a:hover {
    text-shadow: 0 0 0 #000, 0 1.5em 0 #000;
}

#gHeader.is-darkText h1 img {
    filter: invert(100%);
}

/* 完了状態  */
#gHeader.is-loaded {
    height: 70px;
    background: transparent;
    transition: height 0.8s ease, background 0.8s ease;
}

#gHeader.is-loaded .animLine {
    opacity: 0;
}

.special01 #gHeader {
    background: none;
}

/* 2回目以降は最初からローディング後の状態 */

.loading-played #gHeader {
    height: 70px;
    background: transparent;
}

.loading-played #gHeader .logo {
    transform: translate(-50%, -50%) translateX(-45vw) !important;
}

.loading-played #gHeader .animLine {
    width: 100%;
    opacity: 0;
}

.loading-played #gHeader .linkList li {
    opacity: 1;
    transform: translateY(0);
}


/* #gHeader h1 {
    padding: 0 0 0 30px;
    float: left;
}

#gHeader h1 img {
    width: 120px;
}

#gHeader .rBox {
    padding: 0 30px 0 0;
    float: right;
}

#gHeader .rBox .linkList {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 30px;
    overflow: hidden;
}

#gHeader .rBox .linkList li a {
    overflow: hidden;
    color: transparent;
    font-family: var(--font-en01);
    font-weight: 300;
    text-shadow: 0 -1.5em 0 #fff, 0 0 0 #fff;
    transition: text-shadow 0.3s;
}

#gHeader .rBox .linkList li a:hover {
    text-shadow: 0 0 0 #fff, 0 1.5em 0 #fff;
}

#gHeader .rBox .btn {
    float: left;
    margin-right: 35px;
}

#gHeader .rBox .btn a {
    color: #fff;
    height: 77px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 500;
    width: 243px;
    text-align: center;
    background: #EA751F;
    letter-spacing: 0.06em;
    box-sizing: border-box;
    border-radius: 38px;
}

#gHeader .rBox .btn .img {
    margin: 0 12px 0 0;
    display: inline-block;
    vertical-align: middle;
    position: relative;
}

#gHeader .rBox .btn a:hover {
    opacity: 0.7;
}*/

#gHeader .menu-btn {
    float: right;
    width: 77px;
    height: 77px;
    display: flex;
    cursor: pointer;
    align-items: center;
    justify-content: center;
    border-radius: 39px;
    position: relative;
    box-sizing: border-box;
}

.menu-btn span {
    transition: all .4s;
    box-sizing: border-box;
    position: absolute;
    left: calc(50% - 14px);
    width: 28px;
    height: 3px;
    border-radius: 2px;
    background-color: #fff;
}

/* 白背景 */
.menu-btn span.is-darkText {
    background-color: #000;
}

.menu-btn span:nth-of-type(1) {
    top: 27px;
}

.menu-btn span:nth-of-type(2) {
    top: 38px;
}

.menu-btn span:nth-of-type(3) {
    top: 49px;
}

.menu-btn.on span {
    top: 35px !important;
    opacity: 0;
}

.menu-btn.on span:nth-of-type(1) {
    transform: rotate(45deg);
    opacity: 1;
}

.menu-btn.on span:nth-of-type(3) {
    transform: rotate(-45deg);
    opacity: 1;
}

.menuBox {
    display: none;
    position: fixed;
    right: 50px;
    top: 149px;
    width: 550px;
    background: #000000db;
    backdrop-filter: blur(5px);
    z-index: 1000;
    height: calc(100% - 149px);
    overflow-y: auto;
    box-sizing: border-box;
}

.menuBox .naviUl {
    padding: 0 50px 100px 60px;
}

.menuBox .naviUl li a {
    padding: 15px 30px 15px 5px;
    position: relative;
    font-size: 1.4rem;
    display: block;
    font-weight: 400;
    color: #fff;
    letter-spacing: 0.06em;
    border-bottom: 1px solid #ffffff71;
}

/* .menuBox .naviUl li a:before {
    position: absolute;
    right: 0;
    top: 50%;
    margin-top: -5px;
    width: 21px;
    height: 11px;
    background: url("img/common/icon05.png") no-repeat left top;
    background-size: 21px 11px;
    content: "";
    transition: .3s;
    -webkit-transition: .3s;
} */

.menuBox .naviUl li a:before {
    position: absolute;
    right: 10px;
    top: 50%;
    margin-top: -5px;
    width: 5px;
    height: 5px;
    border-top: 1px solid #fff;
    border-right: 1px solid #fff;
    transform: rotate(45deg);
    content: "";
    transition: .3s;
    -webkit-transition: .3s;
}

.menuBox .naviUl .blank a:before {
    margin-top: -8px;
    width: 17px;
    height: 17px;
    background: url("img/common/icon13.png") no-repeat left top;
    background-size: 17px 17px;
    content: "";
}

@media all and (max-width: 1500px) {
    .loading-played #gHeader {
        height: 50px;
    }
}

@media all and (min-width: 897px) {

    #gHeader .menu-btn:hover {
        opacity: 0.7;
    }

    .menuBox .naviUl li a:hover:before {
        right: -15px;
    }

    #gHeader.on .rBox .btn {
        margin-right: 16px;
        transition: .3s;
        -webkit-transition: .3s;
    }

    #gHeader.on .rBox .btn a {
        width: 215px;
        height: 52px;
        transition: .3s;
        -webkit-transition: .3s;
    }

    #gHeader.on .menu-btn {
        width: 52px;
        height: 52px;
        transition: .3s;
        -webkit-transition: .3s;
    }

    #gHeader.on .menu-btn span {
        width: 25px;
        left: calc(50% - 13px);
        transition: .3s;
        -webkit-transition: .3s;
    }

    #gHeader.on .menu-btn span:nth-of-type(1) {
        top: 13px;
    }

    #gHeader.on .menu-btn span:nth-of-type(2) {
        top: 22px;
    }

    #gHeader.on .menu-btn span:nth-of-type(3) {
        top: 31px;
    }

    #gHeader.on .menu-btn.on span {
        top: 23px !important;
    }
}

@media all and (max-width: 1440px) {
    #gHeader .rBox .linkList {
        right: 20px;
    }
}

@media all and (max-width: 896px) {
    #gHeader {
        height: 60px;
    }

    .loading-played #gHeader {
        height: 50px;
    }

    #gHeader h1 {
        float: left;
        padding-left: 20px;
    }

    #gHeader h1 img {
        width: 70px;
    }

    #gHeader .logo {
        left: 50%;
    }

    #gHeader .rBox {
        float: right;
    }

    #gHeader .rBox .btn {
        float: left;
        margin-right: 15px;
    }

    #gHeader .rBox .btn a {
        height: 35px;
        width: 96px;
        font-size: 1.2rem;
        letter-spacing: 0.03em;
    }

    #gHeader .rBox .btn .img {
        margin: 7px 6px 0 0;
    }

    #gHeader .menu-btn {
        float: right;
        width: 35px;
        height: 35px;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .menu-btn span {
        right: 20px;
        left: unset;
        width: 20px;
        height: 1px;
    }

    .menu-btn span:nth-of-type(1) {
        top: 17px;
    }

    .menu-btn span:nth-of-type(2) {
        top: 23px;
    }

    .menu-btn span:nth-of-type(3) {
        top: 29px;
    }

    .menu-btn.on span {
        top: 24px !important;
    }

    .menuBox {
        right: 0;
        top: 0;
        padding-top: 50px;
        width: 100%;
        height: calc(100% - 60px);
    }

    .menuBox .naviUl {
        padding: 0 27px 50px;
    }
}

/*------------------------------------------------------------
	pagePath
------------------------------------------------------------*/
#pagePath {
    padding: 0 20px;
}

#pagePath li {
    margin-right: 10px;
    display: inline;
    letter-spacing: 0.08em;
}

#pagePath li a {
    padding-right: 30px;
    display: inline-block;
    background: url("img/common/icon04.png") no-repeat right center;
    background-size: 9px auto;
}

#pagePath li img {
    width: 60%;
    margin: -3px 0 0;
    display: inline-block;
    vertical-align: middle;
}

#pagePath li a:hover {
    opacity: 0.7;
}

@media all and (max-width: 896px) {
    #pagePath {
        max-width: inherit;
        margin: 0 auto 42px;
        padding: 0 24px;
    }

    #pagePath li {
        margin-right: 9px;
    }

    #pagePath li a {
        padding-right: 26px;
        background: url("img/common/sp_icon03.png") no-repeat right center;
        background-size: 8px auto;
    }

    #pagePath li img {
        margin: -3px 0 0;
    }
}

/*------------------------------------------------------------
	フッター
------------------------------------------------------------*/
#gFooter {
    position: relative;
    padding: 20px 40px;
    overflow: hidden;
    border-top: 1px solid #fff;
}

/* #gFooter::after {
    content: "";
    position: absolute;
    top: 50%;
    right: -140px;
    transform: translateY(-50%);
    width: 400px;
    height: 400px;
    background: url("img/index/logo03.png") no-repeat center / contain;
    opacity: 0.2;
    pointer-events: none;
} */

#gFooter .linkWrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 40px 10%;
    padding: 40px 0 40px;
}

#gFooter .logobox {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 40px;
}

#gFooter .logobox img {
    width: 200px;
}

#gFooter .linkItem .itemBox {
    display: flex;
    flex-wrap: wrap;
    gap: 80px;
}

#gFooter .linkItem ul {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

#gFooter .linkItem li {
    overflow: hidden;
}

#gFooter .linkItem li a {
    color: transparent;
    font-size: 1.7rem;
    font-weight: 400;
    font-family: var(--font-en01);
    text-shadow: 0 -1.5em 0 #fff, 0 0 0 #fff;
    transition: text-shadow 0.3s;
}

#gFooter .linkItem .itemBox .submenu a {
    padding-left: 10px;
    color: transparent;
    font-size: 1.3rem;
    font-weight: 400;
    font-family: var(--font-en01);
    text-shadow: 0 -1.5em 0 #ffffffae, 0 0 0 #ffffffae;
    transition: text-shadow 0.3s;
}

#gFooter .linkItem li a:hover {
    text-shadow: 0 0 0 #fff, 0 1.5em 0 #fff;
}

#gFooter .linkItem .itemBox .submenu a:hover {
    text-shadow: 0 0 0 #ffffffae, 0 1.5em 0 #ffffffae;
}

#gFooter .linkItem p {
    font-size: 1.2rem;
    font-weight: 400;
    font-family: var(--font-jp);
    line-height: 2.0;
}

#gFooter address {
    font-size: 1.0rem;
    letter-spacing: 0.06em;
    font-style: normal;
    text-align: right;
}

.pageTop {
    position: fixed;
    right: 15px;
    bottom: 25px;
    opacity: 0;
    visibility: hidden;
    transition: 0.3s ease;
    z-index: 50;
}

.pageTop a {
    display: block;
    font-size: 1.3rem;
    font-family: var(--font-en01);
    writing-mode: vertical-rl;
    color: #fff;
}

.pageTop.is-darkText a {
    color: #000;
}

.pageTop.is-show {
    opacity: 1;
    visibility: visible;
}


@media all and (max-width: 896px) {
    #gFooter {
        padding: 10px 30px;
    }

    #gFooter::after {
        top: 80%;
        right: -150px;
        width: 400px;
        height: 400px;
        opacity: 0.2;
    }

    .special #gFooter {
        border-top: none;
    }

    #gFooter .linkWrap {
        flex-direction: column-reverse;
        gap: 40px 0px;
        padding-bottom: 20px;
    }

    #gFooter .linkItem ul {
        gap: 10px;
    }

    #gFooter .linkItem li {
        font-size: 1.5rem;
    }

    #gFooter .linkItem h3 {
        margin-bottom: 14px;
        font-size: 2.2rem;
    }

    #gFooter .linkItem p {
        font-size: 1.2rem;
    }

    #gFooter .linkItem .itemBox {
        gap: 20px;
    }

    #gFooter .logobox {
        gap: 20px;
    }

    #gFooter .logobox img {
        width: 160px;
    }

    #gFooter address {
        font-size: 1.0rem;
        text-align: left;
    }

    .pageTop {
        display: none;
    }
}

@media all and (max-width: 640px) {
    #gFooter {
        padding: 10px 20px;
    }

    #gFooter::after {
        top: 70%;
        right: -100px;
        width: 300px;
        height: 300px;
        opacity: 0.2;
    }

    #gFooter .linkItem p {
        font-size: 1.0rem;
    }
}

/*------------------------------------------------------------
	content
------------------------------------------------------------*/
.content {
    max-width: 1800px;
    margin: 0 auto;
    padding: 0 20px;
}

@media all and (max-width: 896px) {
    .content {
        max-width: inherit;
        padding: 0 12px;
    }
}

/*------------------------------------------------------------
	pageTitle
------------------------------------------------------------*/
.pageTitle {
    margin-bottom: 26px;
    padding: 93px 0 63px;
    text-align: center;
    border-bottom: 1px solid #D1CFCF;
}

.pageTitle .headLine01 .en {
    margin-bottom: 8px;
    display: block;
    font-size: 5.4rem;
    font-weight: 700;
    font-family: 'Roboto', sans-serif;
    letter-spacing: 0.08em;
}

.pageTitle .headLine01 .jp {
    display: block;
    font-size: 2.4rem;
    font-weight: 700;
    letter-spacing: 0.06em;
}

@media all and (max-width: 896px) {
    .pageTitle {
        margin-bottom: 13px;
        padding: 18px 0 30px;
    }

    .pageTitle .headLine01 .en {
        margin-bottom: 2px;
        font-size: 3rem;
    }

    .pageTitle .headLine01 .jp {
        font-size: 1.6rem;
    }
}

/*------------------------------------------------------------
	fadeInUp
------------------------------------------------------------*/
.fadeInUp {
    opacity: 0;
    -webkit-transform: translateY(60px);
    transform: translateY(60px);
    transition: transform 1s, opacity 1s;
}

.fadeInUp.on {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0);
}

/*------------------------------------------------------------
	Loader
------------------------------------------------------------*/
/* ローダー全体 */
#loader {
    position: fixed;
    inset: 0;
    background: #000;
    z-index: 9999;
}

/* ロゴ（初期：中央） */
.loaderLogo {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    will-change: transform;
}

/* 最終ヘッダー位置（左上） */
#loader.active .loaderLogo {
    top: 20px;
    left: 40px;
    transform: none;
}

/* 右側ライン（画面右側のみ） */
.loaderRightLine {
    position: absolute;
    top: 50%;
    right: 0;
    width: 0%;
    height: 1px;
    background: #fff;
}

/* メニュー（中央→右上へ） */
.loaderMenu {
    position: absolute;
    top: 50%;
    right: 80px;
    display: flex;
    gap: 30px;
    opacity: 0;
    transform: translateY(20px);
}

.loaderMenu li {
    transform: translateY(20px);
    opacity: 0;
}

/* 最終位置 */
#loader.active .loaderMenu {
    top: 20px;
    opacity: 1;
    transform: none;
}


/*------------------------------------------------------------
	indexPage
------------------------------------------------------------*/

.mainVisual {
    position: relative;
    width: 100%;
    height: 100vh;
}

.mainVisual::after {
    content: "";
    position: absolute;
    bottom: -50px;
    left: 0;
    width: 100%;
    height: 300px;
    background-image: linear-gradient(0deg, rgba(0, 0, 0, 1) 27%, rgba(0, 0, 0, 0.15) 80%);
    z-index: 3;
    pointer-events: none;
}

.kvNoise {
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: .55;
    mix-blend-mode: screen;
    background-image:
        radial-gradient(#fff 0.5px, transparent 0.5px);
    background-size: 4px 4px;
    animation: noiseMove .2s steps(4) infinite;
    z-index: 2;
}

@keyframes noiseMove {
    0% {
        transform: translate(0, 0);
    }

    20% {
        transform: translate(-2%, 1%);
    }

    40% {
        transform: translate(2%, -1%);
    }

    60% {
        transform: translate(-1%, 2%);
    }

    80% {
        transform: translate(1%, -2%);
    }

    100% {
        transform: translate(0, 0);
    }
}

.mainVisual video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.8;
    z-index: 1;
}

.kvScroll {
    position: absolute;
    left: 50%;
    bottom: -200px;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 40px;
    z-index: 10;
}

.kvScroll span {
    font-size: 2.2rem;
    font-family: var(--font-en02);
    letter-spacing: 0em;
    color: #fff;
    writing-mode: vertical-rl;
}

.kvScroll .line {
    position: relative;
    width: 1px;
    height: 350px;
    background: rgba(255, 255, 255, .2);
    overflow: hidden;
}

.kvScroll .line::after {
    content: "";
    position: absolute;
    top: -100%;
    left: 0;
    width: 100%;
    height: 100%;
    background: #fff;
    animation: scrollLine 2s ease-in-out infinite;
}

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

    100% {
        top: 100%;
    }
}

.kvttlBox {
    position: absolute;
    bottom: 20%;
    left: 85px;
}

.kvttlBox .kvttl {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-end;
    margin-bottom: 80px;
}

.kvttlBox .line {
    overflow: hidden;
}

.kvttlBox h2,
.kvttlBox p {
    opacity: 1;
    will-change: transform;
}

.kvttlBox .kvttl h2 {
    display: block;
    font-size: 4.8vw;
    font-weight: 500;
    font-family: var(--font-en01);
    line-height: 1.2;
}

.kvttlBox .kvttl h2 span {
    padding-right: 10px;
    font-size: 5.5vw;
    font-family: var(--font-en02);
    font-style: italic;
}

.kvttlBox p {
    font-size: 1.4vw;
    font-weight: 400;
}

.kvtxt {
    position: absolute;
    left: 30px;
    bottom: 30px;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 30px;
    z-index: 10;
}

.kvtxt a {
    overflow: hidden;
    font-size: 1.4rem;
    font-family: var(--font-en01);
    color: transparent;
    text-shadow: 0 -1.5em 0 #ffffffbd, 0 0 0 #ffffffbd;
    transition: text-shadow 0.3s;
}

.kvtxt a:hover {
    text-shadow: 0 0 0 #ffffffbd, 0 1.5em 0 #ffffffbd;
}


@media all and (max-width: 1440px) {
    .kvNoise {
        opacity: .4;
    }

    .kvScroll {
        bottom: -80px;
        gap: 30px;
    }

    .kvScroll span {
        font-size: 2.0rem;
    }

    .kvScroll .line {
        height: 200px;
    }

    .kvtxt {
        left: 20px;
        bottom: 15px;
        gap: 20px;
    }

    .kvttlBox {
        bottom: 26%;
        left: 45px;
    }

    .kvttlBox .kvttl {
        margin-bottom: 40px;
    }

}

@media all and (max-width: 896px) {
    .kvScroll {
        bottom: -100px;
        gap: 20px;
    }

    .kvScroll span {
        font-size: 1.8rem;
    }

    .kvScroll .line {
        height: 250px;
    }

    .kvtxt {
        left: 15px;
        bottom: 15px;
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }

    .kvtxt a {
        font-size: 1.2rem;
    }

    .kvttlBox {
        bottom: 40%;
        left: 15px;
    }

    .kvttlBox .kvttl {
        align-items: flex-start;
        margin-bottom: 40px;
    }

    .kvttlBox .kvttl h2 {
        font-size: 10vw;
        line-height: 1.2;
    }

    .kvttlBox .kvttl h2 span {
        font-size: 12vw;
    }

    .kvttlBox p {
        font-size: 4.0vw;
    }
}


/*------------------------------------------------------------
	comVisual
------------------------------------------------------------*/
.comVisual {
    padding: 20px;
    margin-bottom: 120px;
    color: #fff;
    /* height: 60vh; */
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}

.comVisual .kv_inner {
    width: 100%;
    position: relative;
    padding: 20px;
    /* border-left: 2px solid #ffffffba;
    border-right: 2px solid #ffffffba; */
}

.comVisual .kv_inner::after {
    content: "";
    position: absolute;
    inset: 0;
    background: url("img/index/fbg.png") repeat 50% 0/20px auto;
    opacity: 0.15;
    pointer-events: none;
    z-index: -1;
}

.comVisual .headLine05 {
    padding: 0 20px;
    font-size: 6.5vw;
    font-weight: 500;
    font-family: var(--font-en01);
    letter-spacing: 0em;
    visibility: hidden;
    overflow: hidden;
}

.comVisual .headLine05 .char {
    display: inline-block;
    white-space: pre;
    opacity: 0;
    transform: translateY(80px);
}

.kv_main {
    margin: 12px auto 0;
    padding: 0 20px;
    display: flex;
    flex-direction: column;
}

.kv_main .kv_txt {
    padding: 0px 0 20px;
    display: flex;
    gap: 30px;
    box-sizing: border-box;
    opacity: 0;
    transform: translateY(40px);
}

.kv_main .kv_txt a {
    overflow: hidden;
    font-size: 1.4rem;
    font-weight: 300;
    font-family: var(--font-en01);
    color: transparent;
    text-shadow: 0 -1.5em 0 #ffffffbd, 0 0 0 #ffffffbd;
    transition: text-shadow 0.3s;
}

.kv_main .kv_txt a:hover {
    text-shadow: 0 0 0 #ffffffbd, 0 1.5em 0 #ffffffbd;
}

.kv_main .kvFigure {
    position: relative;
    overflow: hidden;
    flex: 1;
    min-height: 0;
    max-height: 400px;
}

.kv_main img {
    width: 100%;
    height: auto;
    object-fit: cover;
    object-position: center !important;
    filter: grayscale(100%);

    opacity: 0;
    transform: scale(1.04);
}

.fillter {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.glitch-noise {
    position: absolute;
    inset: 0;
    z-index: 10;
    pointer-events: none;
    opacity: 0.2;
    background-image:
        repeating-linear-gradient(0deg,
            rgba(255, 255, 255, .8) 0px,
            rgba(255, 255, 255, .8) 1px,
            rgba(0, 0, 0, .8) 2px,
            rgba(0, 0, 0, .8) 4px);

    background-size: 100% 8px;
    mix-blend-mode: screen;
    filter: contrast(250%) brightness(150%) grayscale(100%);
}

.glitch-noise.is-show {
    opacity: 1;
}

@media all and (max-width: 1440px) {
    .comVisual {
        padding: 0;
    }

    .comVisual .kv_inner {
        padding: 0px;
    }
}

@media all and (max-width: 896px) {
    .comVisual {
        padding: 6px;
        margin-bottom: 60px;
        gap: 10px;
    }

    .comVisual .headLine05 {
        padding: 0 15px;
        font-size: 5rem;
        line-height: 1.5;
    }

    .kv_main {
        padding: 0 15px;
    }

    .comVisual .kv_inner {
        padding: 0px;
    }

    .kv_main .kv_txt {
        flex-direction: column;
        gap: 5px;
    }

    .kv_main .kv_txt a {
        font-size: 1.2rem;
    }

    .kv_main .kvFigure {
        max-height: 140px;
    }
}

/*------------------------------------------------------------
	comVisual_sub
------------------------------------------------------------*/
.comVisual_sub {
    padding: 20px;
    /* margin-top: 70px; */
    margin-bottom: 120px;
    color: #fff;
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}

.comVisual_sub .kv_inner {
    width: 100%;
    position: relative;
    padding: 20px;
    /* border-left: 2px solid #ffffffba;
    border-right: 2px solid #ffffffba; */
}

.comVisual_sub .kv_inner::after {
    content: "";
    position: absolute;
    inset: 0;
    background: url("img/index/fbg.png") repeat 50% 0/20px auto;
    opacity: 0.15;
    pointer-events: none;
    z-index: -1;
}

.comVisual_sub .headLine06 {
    padding: 0 20px;
    font-size: 6.5vw;
    font-weight: 500;
    font-family: var(--font-en01);
    letter-spacing: 0em;
    /* line-height: 1; */
    visibility: hidden;
    overflow: hidden;
}

.comVisual_sub .headLine06 .char {
    display: inline-block;
    white-space: pre;
    opacity: 0;
    transform: translateY(80px);
}

@media all and (max-width: 1440px) {
    .comVisual_sub {
        padding: 20px 0;
        margin-bottom: 60px;
    }

    .comVisual_sub .headLine06 {
        padding: 0;
    }
}

@media all and (max-width: 896px) {
    .comVisual_sub {
        padding: 0px;
        margin-bottom: 60px;
        gap: 10px;
    }

    .comVisual_sub .kv_inner {
        padding: 10px;
    }

    .comVisual_sub .headLine06 {
        padding: 0;
        font-size: 4.8rem;
        line-height: 1.5;
    }
}


/*------------------------------------------------------------
	top-topSec
------------------------------------------------------------*/
.topSec {
    position: relative;
    min-height: 300vh;
    isolation: isolate;
}

.topSec::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 300px;
    background-image: linear-gradient(0deg, rgba(0, 0, 0, 1) 27%, rgba(0, 0, 0, 0.15) 80%);
    transform: scaleY(-1);
    z-index: 3;
    pointer-events: none;
}

.topSec::after {
    content: "";
    position: absolute;
    inset: 0;
    background: url("img/index/fbg.png") repeat 50% 0/20px auto;
    opacity: 0.15;
    pointer-events: none;
    z-index: -1;
}

/* .topSec::after {
    content: "";
    position: absolute;
    bottom: 0px;
    left: 0;
    width: 100%;
    height: 200px;
    background-image: linear-gradient(0deg, rgba(0, 0, 0, 1) 27%, rgba(0, 0, 0, 0.15) 80%);
    z-index: 3;
    pointer-events: none;
} */

.topSec .content {
    min-height: 100vh;
    position: relative;
    z-index: 1;
}

.topSec .toptxtWrap {
    position: sticky;
    top: 0;
    width: 100%;
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 10;
    pointer-events: none;
}

.topSec .toptxt {
    pointer-events: auto;
}

.topSec .toptxt h3 {
    margin-bottom: 40px;
    font-size: 5.0rem;
    font-weight: 400;
    font-family: var(--font-en01);
    text-align: center;
}

.topSec .toptxt h3 .font {
    font-family: var(--font-en02);
}

.topSec .toptxt h3 .stagia {
    color: #fff;
    font-size: 3.8rem;
    transition:
        color .5s ease,
        text-shadow .5s ease;
}

.topSec .toptxt h3 .stagia.on {
    color: var(--color-main);
    font-weight: 400;
    text-shadow: 0 0 20px rgba(0, 0, 0, .15);
}

.topSec .toptxt h2 {
    position: relative;
    color: #fff;
    color: var(--color-main);
    font-size: 7vw;
    font-weight: 600;
    font-family: var(--font-en01);
    line-height: 1.2;
    text-align: end;
}

.topSec .toptxt h2 .x {
    width: 5vw;
    height: 5vw;
    display: inline-block;
    background: url("img/index/x.png") no-repeat center / contain;
    opacity: 0.9;
}

.topSec .toptxt h2 .font {
    font-family: var(--font-en02);
    font-style: italic;
    font-size: 9vw;
}

/* .toptxt h2::before {
    content: "";
    position: absolute;
    top: -45px;
    left: 50%;
    transform: translateX(-50%);
    width: 24px;
    height: 24px;
    background: url("img/index/plus.png") no-repeat center / contain;
} */

.glitch {
    display: inline-block;
}

.glitchTitle {
    position: relative;
}

.glitchTitle .char {
    display: inline-block;
    opacity: 0;
    will-change: transform, opacity;
}

.topSec .toptxt .abouttxt {
    margin: 60px 0 10px;
    /* padding-left: 40px; */
    display: flex;
    justify-content: flex-start;
}

.topSec .toptxt .abouttxt p {
    line-height: 2.0;
    font-size: 1.6rem;
}

/* .topSec .toptxt .comMore {
    margin-left: 40px;
} */

.topImgBox {
    position: relative;
    z-index: 1;
    max-width: 1600px;
    width: 100%;
    margin: 0 auto;
    perspective: 1600px;
    transform-style: preserve-3d;
}

.topImgBox figure {
    position: relative;
    overflow: hidden;
    transition: transform 5s cubic-bezier(.22, 1, .36, 1);
    will-change: transform;
}

.glitch-noise {
    position: absolute;
    inset: 0;
    z-index: 10;
    pointer-events: none;
    opacity: 0.2;
    background-image:
        repeating-linear-gradient(0deg,
            rgba(255, 255, 255, .8) 0px,
            rgba(255, 255, 255, .8) 1px,
            rgba(0, 0, 0, .8) 2px,
            rgba(0, 0, 0, .8) 4px);

    background-size: 100% 8px;
    mix-blend-mode: screen;
    filter: contrast(250%) brightness(150%);
}

.glitch-noise.is-show {
    opacity: 1;
}

.topImgBox figure .fillter {
    position: relative;
    width: 400px;
    display: block;
    box-shadow: 0 40px 80px rgba(0, 0, 0, .25);
    overflow: hidden;
}

.topImgBox figure .fillter::after {
    content: "";
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    background: #00000047;
}

/* img 1枚目 */
.topImgBox .one {
    display: flex;
    justify-content: flex-end;
    transform: translateZ(-100px) scale(.82);
}

.topImgBox .one .fillter {
    width: 600px;
}

/* img 2.3枚目 */
.topImgBox .topinner {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
}

/* img 2枚目 */
.topImgBox .topinner .two {
    transform: translateY(-100px);
    transform: translateZ(-120px) scale(.92);
}

.topImgBox .topinner .two .fillter {
    width: 440px;
}

/* img 3枚目 */
.topImgBox .topinner .three {
    margin-top: 150px;
    transform: translateZ(0);
}

.topImgBox .topinner .three .fillter {
    width: 350px;
}

/* img 4枚目 */
.topImgBox .four .fillter {
    width: 500px;
    margin-left: 330px;
    transform: translateZ(30px);
}

/* img 5.6枚目 */
.topImgBox .btminner {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
}

/* img 5枚目 */
.topImgBox .btminner .five {
    transform: translateY(-100px);
    transform: translateY(-100px) translateZ(180px) scale(1.08);
}

.topImgBox .btminner .five .fillter {
    width: 350px;
}

/* img 6枚目 */
.topImgBox .btminner .six {
    margin-top: 150px;
    transform: translateZ(-180px) scale(.88);
}

.topImgBox .btminner .six .fillter {
    margin-left: 100px;
}

/* img 7枚目 */
.topImgBox .seven {
    margin: 150px 200px 0 0;
    display: flex;
    justify-content: flex-end;
    transform: translateZ(100px) scale(1.12);
}

.topImgBox .seven .fillter {
    width: 440px;
}

@media all and (max-width: 1440px) {
    .topSec {
        padding-top: 80px;
    }
}

@media all and (max-width: 896px) {
    .topSec {
        padding-top: 40px;
    }

    .topSec .toptxt h3 {
        margin-bottom: 20px;
        font-size: 2.8rem;
    }

    .topSec .toptxt h3 .stagia {
        font-size: 2.4rem;
    }

    .topSec .toptxt h2 {
        margin-bottom: 80px;
        font-size: 4.8rem;
        text-align: center;
    }

    .topSec .toptxt h2 .x {
        width: 35px;
        height: 35px;
    }

    .topSec .toptxt h2 .font {
        font-size: 5.8rem;
    }

    .topSec .topImgBox figure .fillter {
        width: 200px;
    }

    /* img 1枚目 */
    .topImgBox .one .fillter {
        width: 180px;
    }

    /* img 2枚目 */
    .topImgBox .topinner .two .fillter {
        width: 180px;
    }

    /* img 3枚目 */
    .topImgBox .topinner .three {
        margin-top: 150px;
    }

    .topImgBox .topinner .three .fillter {
        width: 150px;
    }

    /* img 4枚目 */
    .topImgBox .four .fillter {
        width: 160px;
        margin-left: 30px;
        margin-top: 50px;
    }

    /* img 5枚目 */
    .topImgBox .btminner .five .fillter {
        width: 160px;
        margin-left: 50px;
    }

    /* img 6枚目 */
    .topImgBox .btminner .six {
        margin-top: 80px;
    }

    .topImgBox .btminner .six .fillter {
        margin-left: 150px;
    }

    /* img 7枚目 */
    .topImgBox .seven {
        margin: 180px 45px 0 0;
    }

    .topImgBox .seven .fillter {
        width: 160px;
    }

}

.lastImgArea {
    position: relative;
}

.lastImgArea::before {
    content: "";
    position: absolute;
    inset: 0;
    background: url("img/index/fbg.png") repeat 50% 0/20px auto;
    opacity: 0.2;
    pointer-events: none;
    z-index: -1;
}

.lastImgBox {
    position: relative;
    width: min(800px, 90%);
    margin: 0 auto;
}


.lastImgBox img {
    width: 100%;
    height: auto;
    display: block;
}

@media all and (max-width: 896px) {
    .lastImgBox {
        width: 200px;
    }
}



/*------------------------------------------------------------
	top-service
------------------------------------------------------------*/

.serviceSec {
    padding: 120px 0;
    background: #fff;
    color: #000;
    position: relative;
}

.serWrap {
    display: flex;
    flex-wrap: wrap;
}

.serttl {
    width: 100%;
    position: sticky;
    top: 70px;
    display: flex;
    gap: 20px;
    align-self: flex-start;
    margin-bottom: 40px;
    z-index: 100;
}

.serttl h2 {
    font-size: 3.0rem;
    font-weight: 500;
    font-family: var(--font-en02);
    text-align: center;
    /* writing-mode: vertical-rl; */
}

.serttl .comMore {
    display: block;
    width: fit-content;
    border-bottom: 2px solid #000;
    /* writing-mode: vertical-rl; */
    /* transform: rotate(90deg); */
}

.serttl .comMore a {
    border-bottom: 2px solid #000;
    text-shadow: 0 -1.5em 0 #000, 0 0 0 #000;
}

.serttl .comMore a:hover {
    text-shadow: 0 0 0 #000, 0 1.5em 0 #000;
}

.serttl .comMore a::after {
    filter: invert(100%);
}

.serList {
    position: relative;
    width: 100%;
}

.js-stacking__item {
    position: sticky;
    top: 8em;
    z-index: 1;
}

.serInner {
    padding: 20px 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 20px;
    background: #ffffff;
    border-top: 2px solid #000;
    box-sizing: unset;
}

.serItem .txtBox {
    width: 55%;
    padding: 0px;
}

.serItem .txtBox h3 {
    margin-bottom: 40px;
    font-size: 7.0rem;
    font-weight: 500;
    font-family: var(--font-en01);
}

.serItem .txtBox h3 .subttl {
    display: block;
    font-size: 1.8rem;
    font-weight: 800;
    font-family: var(--font-en02);
    color: var(--color-main);
}

.serItem .txtBox h3 .jp {
    position: relative;
    display: block;
    padding: 5px;
    padding-left: 60px;
    font-size: 1.8rem;
    font-weight: 400;
}

.serItem .txtBox h3 .jp::after {
    position: absolute;
    content: "";
    top: 50%;
    left: 2px;
    transform: translateY(-50%);
    width: 50px;
    height: 1px;
    background-color: #000;
}

.serItem .txtBox p {
    font-size: 1.6rem;
    letter-spacing: 0.06em;
    line-height: 1.8;
}

.serItem figure {
    width: calc(100% - 60% - 20px);
    position: relative;
    overflow: hidden;
    clip-path: inset(0 100% 0 0);
}

.serItem figure img {
    display: block;
    width: 100%;
    aspect-ratio: 1 / 0.4;
    object-fit: cover;
    filter: grayscale(100%) brightness(.9);
    transform: scale(1);
    transition:
        filter .45s ease,
        transform .45s cubic-bezier(.25, 1, .5, 1);
}


/*ノイズオーバーレイ */
.serItem figure::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0;
    background-image:
        radial-gradient(rgba(255, 255, 255, .08) 1px, transparent 1px),
        radial-gradient(rgba(255, 255, 255, .04) 1px, transparent 1px);
    background-size: 3px 3px, 5px 5px;
    background-position: 0 0, 2px 2px;
    mix-blend-mode: overlay;
    transition: opacity .25s;
}

/* スキャンライン */
.serItem figure::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0;
    background:
        repeating-linear-gradient(180deg,
            transparent 0px,
            transparent 3px,
            rgba(255, 255, 255, .08) 4px,
            transparent 5px);

    transform: translateY(-100%);
}

/*Hover*/

.serItem:hover figure img {
    filter: grayscale(0%) brightness(1.08);
    transform: scale(1.05);
}

.serItem:hover figure::after {
    opacity: 1;
    animation: noise .18s steps(3) infinite;
}

.serItem:hover figure::before {
    opacity: .5;
    animation: scan .6s linear infinite;
}

/* Glitch */

@keyframes glitch {

    0% {
        transform: scale(1.05) translate(0);
    }

    20% {
        transform: scale(1.05) translate(-4px, 2px);
    }

    40% {
        transform: scale(1.05) translate(4px, -2px);
    }

    60% {
        transform: scale(1.05) translate(-2px, 1px);
    }

    80% {
        transform: scale(1.05) translate(2px, -1px);
    }

    100% {
        transform: scale(1.05) translate(0);
    }

}

/*Noise*/

@keyframes noise {

    0% {
        background-position: 0 0, 2px 2px;
    }

    25% {
        background-position: -8px 5px, 3px -4px;
    }

    50% {
        background-position: 6px -6px, -4px 3px;
    }

    75% {
        background-position: -4px -2px, 5px 4px;
    }

    100% {
        background-position: 0 0, 2px 2px;
    }

}

/* Scan Line */

@keyframes scan {

    from {
        transform: translateY(-100%);
    }

    to {
        transform: translateY(100%);
    }

}

@media all and (max-width: 1440px) {
    .serInner {
        padding: 10px 0;
    }

    .serttl h2 {
        font-size: 2.5rem;
    }

    .serItem .txtBox h3 {
        margin-bottom: 30px;
        font-size: 5.0rem;
        line-height: 1.3;
    }

    .serItem .txtBox h3 .subttl {
        font-size: 1.2rem;
    }

    .serItem figure img {
        aspect-ratio: 1 / 0.5;
    }
}


@media all and (max-width: 896px) {
    .serWrap {
        gap: 3%;
    }

    .serttl h2 {
        font-size: 1.9rem;
    }

    .serItem .txtBox {
        width: 100%;
    }

    .serItem .txtBox h3 {
        margin-bottom: 20px;
        font-size: 4.5rem;
        line-height: 1.2;
    }

    .serItem .txtBox h3 .subttl {
        font-size: 1.3rem;
    }

    .serItem .txtBox h3 .jp {
        font-size: 1.5rem;
    }

    .serItem .txtBox p {
        font-size: 1.3rem;
    }


    .serItem figure {
        width: 100%;
    }

    .serItem figure img {
        aspect-ratio: 1 / 0.5;
    }
}

@media all and (max-width: 640px) {

    .serItem .txtBox h3 {
        margin-bottom: 15px;
        font-size: 2.7rem;
    }

    .serItem .txtBox p {
        font-size: 1.1rem;
    }
}




/*------------------------------------------------------------
	top-topics
------------------------------------------------------------*/
.topicSec {
    padding: 120px 0;
    background: #fff;
    color: #000;
}

.topicBox {
    display: flex;
}

.topicBox .topicttl {
    width: 30%;
}

.topicBox .topicttl h2 {
    margin-bottom: 40px;
    font-size: 3.0rem;
    font-weight: 500;
    font-family: var(--font-en02);
    text-align: left;
}

.topicBox .topicContent {
    width: calc(100% - 30%);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 40px;
}

.topicWrap {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 80px;
}

.topicWrap .topicInner {
    clip-path: inset(0 100% 0 0);
}

.topicWrap .topicInner h3 {
    position: relative;
    padding-left: 24px;
    font-weight: 400;
    font-size: 1.8rem;
}

.topicWrap .topicInner h3::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 2px;
    transform: translateY(-50%) rotate(45deg);
    width: 13px;
    height: 13px;
    background: var(--color-main);
}

.topicList .topicItem {
    position: relative;
    box-sizing: border-box;
    border-bottom: 1px solid #000;
    overflow: hidden;
}

.topicList .topicItem a {
    position: relative;
    z-index: 1;
    display: block;
    color: #000;
    transition: color .3s ease;
}

.topicList .topicItem a:hover {
    color: #fff;
}

.topicList .topicItem a::before {
    content: "";
    position: absolute;
    inset: 0;
    background: #000;
    transform: translateY(101%);
    transition: transform .2s cubic-bezier(.77, 0, .18, 1);
    z-index: 0;
}

.topicList .topicItem a:hover::before {
    transform: translateY(0);
}

.topicList .topicItem a .txtBox {
    position: relative;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 5%;
    padding: 30px 20px;
    z-index: 2;
}

.topicList .topicItem a .txtBox .time {
    font-size: 1.2rem;
}

.topicList .topicItem a .txtBox .ttl {
    width: 100%;
    max-width: 200px;
}

.topicList .topicItem .txtBox {
    padding: 30px 20px;
}

.topicContent .comMore {
    margin: 40px 0 0;
}

.topicContent .comMore {
    display: inline-block;
    border-bottom: 2px solid #000;
}

.topicContent .comMore a {
    color: transparent;
    text-shadow: 0 -1.5em 0 #000, 0 0 0 #000;
}

.topicContent .comMore a::after {
    filter: invert(100%);
}

.topicContent .comMore a:hover {
    text-shadow: 0 0 0 #000, 0 1.5em 0 #000;
}

.comMore a:hover::after {
    filter: unset;
}


@media all and (max-width: 1440px) {
    .topicBox .topicttl h2 {
        font-size: 2.5rem;
    }

    .topicBox .topicttl {
        width: 20%;
    }

    .topicBox .topicContent {
        width: calc(100% - 20%);
    }
}

@media all and (max-width: 896px) {
    .topicBox {
        flex-wrap: wrap;
        gap: 20px;
    }

    .topicBox .topicttl {
        width: 100%;
    }

    .topicBox .topicttl h2 {
        margin-bottom: 0px;
        font-size: 3.0rem;
    }

    .topicBox .topicContent {
        width: 100%;
        gap: 40px;
    }

    .topicList .topicItem a .txtBox {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
        padding: 20px 12px;
    }

    .topicList .topicItem a .txtBox .time {
        font-size: 1.2rem;
    }

    .topicList .topicItem a .txtBox .ttl {
        width: 100%;
        max-width: unset;
    }

    .topicList .topicItem .txtBox {
        padding: 20px 12px;
    }
}

@media all and (max-width: 640px) {
    .topicBox .topicttl h2 {
        font-size: 2.0rem;
    }

    .topicBox .topicContent {
        gap: 40px;
    }

    .topicWrap .topicInner h3 {
        padding-left: 24px;
        font-size: 1.6rem;
    }

    .topicWrap .topicInner h3::before {
        width: 10px;
        height: 10px;
    }

    .topicList .topicItem a .txtBox {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
        padding: 20px 12px;
    }

    .topicList .topicItem a .txtBox .time {
        font-size: 1.1rem;
    }

    .topicList .topicItem a .txtBox .ttl {
        width: 100%;
        max-width: unset;
    }

    .topicList .topicItem .txtBox {
        padding: 20px 12px;
    }
}



/*------------------------------------------------------------
	top-contact/recruit
------------------------------------------------------------*/
.btmcontact {
    padding: 120px 20px 20px;
    background: #fff;
    color: #000;
}

.contactWrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 20px 2%;
}

.contactBox,
.recruitBox,
.emptyBox {
    position: relative;
    width: calc(100% / 3 - 1.5%);
    height: 240px;
    padding: 20px;
    display: flex;
    align-items: flex-end;
    border: 2px solid #000;
    background: #fff;
    transition: all 0.2s ease;
    clip-path: inset(0 100% 0 0);
    box-sizing: border-box;
}

.emptyBox {
    position: relative;
    clip-path: unset;
    overflow: hidden;
    background: var(--color-bg);
}

.cross {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

.cross line {
    stroke: #000;
    stroke-width: 0.5;
}

.contactBox h2,
.recruitBox h2 {
    font-size: 4rem;
    font-weight: 500;
    font-family: var(--font-en01);
    line-height: 1;
}

.contactBox::before {
    position: absolute;
    content: "";
    inset: 0;
    opacity: 0.4;
    background: url("img/index/bg_01.png") no-repeat center top / cover;
    pointer-events: none;
    transition: all 0.3s ease;
}

.recruitBox::before {
    position: absolute;
    content: "";
    inset: 0;
    opacity: 0.4;
    background: url("img/index/bg_02.png") no-repeat center top / cover;
    pointer-events: none;
    transition: all 0.3s ease;
}

.contactBox:hover,
.recruitBox:hover {
    color: #fff;
    background: #000;
}

.contactBox:hover::before {
    opacity: 0.4;
    background: url("img/index/bg_03.png") no-repeat center top / cover;
}

.recruitBox:hover::before {
    opacity: 0.4;
    background: url("img/index/bg_04.png") no-repeat center top / cover;
}

@media all and (max-width: 1440px) {

    .contactWrap {
        gap: 15px;
    }

    .contactBox,
    .recruitBox,
    .emptyBox {
        width: calc(100% / 3 - 10px);
        height: 200px;
    }

    .contactBox h2,
    .recruitBox h2 {
        font-size: 3rem;
    }
}

@media all and (max-width: 896px) {

    .btmcontact {
        padding: 12px;
    }

    .contactWrap {
        gap: 15px;
    }

    .contactBox,
    .recruitBox,
    .emptyBox {
        width: 100%;
        height: 120px;
        padding: 15px;
    }

    .contactBox h2,
    .recruitBox h2 {
        font-size: 3rem;
    }
}


/*------------------------------------------------------------
	topics
------------------------------------------------------------*/
.archivePage .base_width {
    padding: 0 0 120px;
}

.category-tabs {
    margin-bottom: 20px;
}

.category-tabs .tab-nav {
    list-style: none;
    padding: 0;
    margin: 0 0 40px;
    display: flex;
    flex-wrap: wrap;
}

.category-tabs .tab-nav li {
    margin-right: 10px;
    margin-bottom: -1px;
    padding: 10px 15px;
    border: 1px solid #ccc;
}

.category-tabs .tab-nav a {
    display: block;
    font-family: var(--font-en01);
    text-decoration: none;
    color: transparent;
    text-shadow: 0 -1.5em 0 #fff, 0 0 0 #fff;
    overflow: hidden;
    transition: text-shadow 0.3s;
}

.category-tabs .tab-nav a:hover {
    text-shadow: 0 0 0 #fff, 0 1.5em 0 #fff;
}

.category-tabs .tab-nav li.active {
    border-color: var(--color-main);
    background: #668e4c3d;
}

.category-tabs .tab-nav li.active a {
    text-shadow: 0 -1.5em 0 var(--color-main), 0 0 0 var(--color-main);
}

.category-tabs .tab-pane {
    display: none;
}

.category-tabs .tab-pane.active {
    display: block;
}

.post-cards {
    display: flex;
    flex-wrap: wrap;
}

.post-card {
    width: calc(100% / 4);
    overflow: hidden;
    margin-right: -1px;
    margin-bottom: -1px;
}

.post-content {
    position: relative;
    z-index: 1;
    display: block;
    height: 300px;

    padding: 40px 20px;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    gap: 20px;
    color: #fff;
    border: 1px solid #fff;
    box-sizing: border-box;
    overflow: hidden;
}

.post-content::after {
    content: "";
    position: absolute;
    bottom: 20px;
    left: 20px;
    width: 20px;
    height: 20px;
    background: url("img/index/arrow.png") no-repeat center / contain;
    transition: all 0.25s ease;
}

.post-content:hover::after {
    background: url("img/index/arrow02.png") no-repeat center / contain;
}

.post-content::before {
    content: "";
    position: absolute;
    inset: 0;
    background: #fff;
    transform: translateY(101%);
    transition: transform .2s cubic-bezier(.77, 0, .18, 1);
    z-index: 0;
}

.post-content:hover::before {
    transform: translateY(0);
}

.post-meta {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}

.post-date {
    font-size: 1.3rem;
    color: #ffffff8f;
    z-index: 1;
    transition: color .3s ease;
}

.post-category {
    padding: 0 8px;
    font-size: 1.3rem;
    font-family: var(--font-en01);
    color: var(--color-main);
    border: 1px solid var(--color-main);
    z-index: 1;
}

.post-title {
    /* width: 300px; */
    line-height: 1.3;
    max-height: 2.6em;
    color: #fff;
    /* 2行分の高さ */
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    z-index: 1;
    transition: color .3s ease;
}

.post-excerpt {
    padding-top: 40px;
    font-size: 0.9em;
    color: #fff;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    flex-grow: 1;
    z-index: 1;
    transition: color .3s ease;
}

.post-content:hover .post-date,
.post-content:hover .post-title,
.post-content:hover .post-excerpt {
    color: #000;
}

.no-post {
    padding: 40px 0;
}

@media all and (max-width: 1440px) {
    .post-content {
        height: 300px;
        padding: 30px 15px;
    }

    .post-content::after {
        bottom: 15px;
        left: 15px;
        width: 16px;
        height: 16px;
    }

    .post-excerpt {
        padding-top: 30px;
    }
}

@media all and (max-width: 896px) {
    .archivePage .base_width {
        padding: 0 0 60px;
    }

    .category-tabs .tab-nav li {
        padding: 0;
    }

    .category-tabs .tab-nav a {
        padding: 5px 20px;
    }

    .post-card {
        width: 100%;
        margin-right: 0;
    }

    .post-content {
        height: 250px;
        padding: 20px 10px;
        flex-direction: column;
        gap: 20px;
    }

    .post-title {
        width: 100%;
        padding: 0;
    }
}


/*------------------------------------------------------------
	topics-single
------------------------------------------------------------*/
.news {
    padding-bottom: 120px;
}

.dateBox {
    margin-bottom: 40px;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}

.news_date {
    font-size: 1.5rem;
    color: #ffffff8f;
}

.dateBox .txtSpan {
    padding: 0 12px;
    font-size: 1.5rem;
    font-family: var(--font-en01);
    color: var(--color-main);
    border: 1px solid var(--color-main);
}

.single_txt {
    padding-bottom: 120px;
}

.single_txt h3 {
    margin-bottom: 40px;
    font-size: 2.0rem;
}

.single_txt p {
    line-height: 2.2;
}

.pageNavi {
    margin-top: 20px;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}

.pageNavi li a {
    color: #fff;
    font-size: 2.0rem;
    font-family: var(--font-en02);
    transition: all .2s ease;
}

.pageNavi li a:hover {
    color: var(--color-main);
}

.news .comMore {
    margin-top: 20px;
}

@media all and (max-width: 896px) {
    .news_date {
        font-size: 1.3rem;
    }

    .dateBox .txtSpan {
        font-size: 1.3rem;
    }

    .pageNavi li a {
        font-size: 1.6rem;
    }

}

/*------------------------------------------------------------
	contact
------------------------------------------------------------*/
.contactPage {
    padding-bottom: 120px;
}

.contactPage .topTxt {
    margin: 0 0 68px 3px;
    letter-spacing: 0.06em;
}

.contactPage table {
    margin-bottom: 158px;
    width: 100%;
    border-collapse: collapse;
    word-break: break-all;
}

.contactPage th,
.contactPage td {
    padding: 28px 0 28px 58px;
    text-align: left;
    vertical-align: middle;
    border-bottom: 1px solid #D1CFCF;
}

.contactPage th {
    padding: 20px 50px 20px 0;
    width: 29%;
    font-weight: 500;
}

.contactPage td {
    font-size: 1.3rem;
    position: relative;
}

.contactPage th .must {
    float: right;
    width: 44px;
    color: var(--color-main);
    height: 23px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    font-weight: 500;
    /* background: #212836; */
    border: 1px solid var(--color-main);
    text-align: center;
}

.contactPage td:before {
    position: absolute;
    left: 0;
    top: 27px;
    width: 1px;
    bottom: 27px;
    background: #D1CFCF;
    content: "";
    display: none;
}

.contactPage td input[type="text"],
.contactPage td input[type="email"],
.contactPage td input[type="number"],
.contactPage td input[type="tel"],
.contactPage td select,
.contactPage td textarea {
    width: 100%;
    height: 58px;
    color: #fff;
    font-size: 1.3rem;
    padding: 5px 10px 5px 23px;
    -webkit-appearance: none;
    box-sizing: border-box;
    background: #292929;
    border: 1px solid #F4F4F4;
}

.contactPage td .wid01 {
    width: 98px !important;
}

.contactPage td .ico {
    display: inline-block;
    margin-right: 10px;
    font-size: 1.6rem;
}

.contactPage td .add {
    margin-bottom: 20px;
}

.contactPage td textarea {
    height: 265px;
    resize: vertical;
    padding: 20px 10px 20px 23px;
}

.contactPage .txtP {
    margin-bottom: 45px;
    line-height: 1.9;
    text-align: center;
}

.contactPage .txtP a {
    text-decoration: underline;
    color: var(--color-main);
}

.contactPage .txtP a:hover {
    opacity: 0.7;
}

.contactPage .agreeTxt {
    width: 460px;
    margin: 0 auto 100px;
    padding: 12px 10px 16px 80px;
    box-sizing: border-box;
    border: 1px solid #CCC;
}

.contactPage .agreeTxt input[type="checkbox"] {
    display: none;
}

.contactPage .agreeTxt input[type="checkbox"]~span {
    background: url("img/common/check_box_bg02.png") no-repeat left top 9px;
    background-size: 16px 16px;
    display: block;
    min-height: 16px;
    padding: 4px 0 6px 26px;
}

.contactPage .agreeTxt input[type="checkbox"]:checked~span {
    background: url("img/common/check_box_bg01.png") no-repeat left top 9px;
    background-size: 16px 16px;
}

.contactPage .submit {
    text-align: center
}

.contactPage .submit li {
    margin: 0 6px;
    display: inline-block;
    vertical-align: top;
}

.ajax-loader {
    display: none !important;
}

.contactPage .submit li .info01 {
    display: block;
    position: relative;
    /* background: #212836;
    border: 1px solid #212836; */
}

.contactPage .submit li .info02 {
    position: relative;
    z-index: 2;
}

.contactPage .submit li .info01:before {
    margin-top: -5px;
    position: absolute;
    right: 10px;
    top: 50%;
    width: 21px;
    height: 11px;
    background: url("img/common/icon05.png") no-repeat left center;
    background-size: 21px 11px;
    content: "";
    z-index: 3;
    transition: .3s;
    -webkit-transition: .3s;
}

.contactPage .submit li .info01:after {
    content: " ";
    position: absolute;
    top: 0;
    height: 100%;
    width: 0;
    left: auto;
    right: 0;
    background-color: #fff;
    transition-duration: 0.5s;
    transition-timing-function: cubic-bezier(0.075, 0.82, 0.165, 1);
    -ms-transition-duration: 0.5s;
    -ms-transition-timing-function: cubic-bezier(0.075, 0.82, 0.165, 1);
    -webkit-transition-duration: 0.5s;
    -webkit-transition-timing-function: cubic-bezier(0.075, 0.82, 0.165, 1);
    -moz-transition-duration: 0.5s;
    -moz-transition-timing-function: cubic-bezier(0.075, 0.82, 0.165, 1);
}

.contactPage .submit .back .info01:before {
    margin-top: -5px;
    position: absolute;
    right: auto;
    left: 10px;
    top: 50%;
    width: 21px;
    height: 11px;
    background: url("img/common/icon07.png") no-repeat left center;
    background-size: 21px 11px;
    content: "";
}

.contactPage .submit li input {
    color: #fff;
    width: 258px;
    height: 48px;
    font-size: 1.6rem;
    border: 0;
    -webkit-appearance: none;
    cursor: pointer;
    background: none;
}

.contactPage .submit li input:disabled {
    cursor: default;
    pointer-events: none;
}

.contactPage .submit .back .info01 {
    /* background: #919191; */
    border-color: #919191;
}

.contactPage .submit li.disabled .info01 {
    /* background: #CECECE; */
    border-bottom: 1px solid #CECECE;
}

.contactPage .submit li.disabled .info01:after {
    display: none;
}

.contactPage .errTop {
    margin-bottom: 16px;
    padding: 18px 10px;
    color: #C1272D;
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    border: 3px solid #C1272D;
    background: #FCDEDD;
    text-align: center;
}

.contactPage .errTop img {
    margin: -3px 10px 0 0;
    display: inline-block;
    vertical-align: middle;
}

.contactPage .error td input,
.contactPage .error td select,
.contactPage .error td textarea {
    background: #FCDEDD;
    border: 1px solid #C1272D;
}

.contactPage .error td .errorTxt {
    margin: 2px 0 -22px;
    display: block;
    color: #DE2B2B;
    font-weight: 500;
    letter-spacing: 0.03em;
    font-size: 1.4rem;
}

.contactPage .confirmTab th,
.contactPage .confirmTab td {
    height: 60px;
}

.contactPage .confirmTab td .add {
    margin-bottom: 4px;
}

.thanks .title {
    margin-bottom: 32px;
    font-size: 3rem;
    font-weight: 700;
    text-align: center;
    letter-spacing: 0.06em;
}

.thanks .thanksTxt {
    margin-bottom: 180px;
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.06em;
    text-align: center;
}

.thanks .linkBtn a {
    margin: 0 auto;
    display: flex;
    height: 50px;
    justify-content: center;
    align-items: center;
    width: 256px;
    color: #fff;
    text-align: center;
    position: relative;
    background: #212836;
    border: 1px solid #212836;
    box-sizing: border-box;
}

.thanks .linkBtn a:before {
    margin-top: -4px;
    position: absolute;
    left: 11px;
    top: 50%;
    width: 21px;
    height: 11px;
    background: url("img/common/icon07.png") no-repeat left center;
    background-size: 21px auto;
    content: "";
    z-index: 3;
    transition: .3s;
    -webkit-transition: .3s;
}

.thanks .linkBtn .info {
    position: relative;
    z-index: 2;
}

.thanks .linkBtn a:after {
    content: " ";
    position: absolute;
    top: 0;
    height: 100%;
    width: 0;
    left: auto;
    right: 0;
    background-color: #fff;
    transition-duration: 0.5s;
    transition-timing-function: cubic-bezier(0.075, 0.82, 0.165, 1);
    -ms-transition-duration: 0.5s;
    -ms-transition-timing-function: cubic-bezier(0.075, 0.82, 0.165, 1);
    -webkit-transition-duration: 0.5s;
    -webkit-transition-timing-function: cubic-bezier(0.075, 0.82, 0.165, 1);
    -moz-transition-duration: 0.5s;
    -moz-transition-timing-function: cubic-bezier(0.075, 0.82, 0.165, 1);
}

@media all and (min-width: 897px) {
    .contactPage .submit li:hover .info01:after {
        width: 100%;
        right: auto;
        left: 0;
    }

    .contactPage .submit li:hover .info01:before {
        right: -21px;
        background-image: url("img/common/icon08.png");
    }

    .contactPage .submit li.disabled:hover .info01:before {
        right: 10px;
        background-image: url("img/common/icon05.png");
    }

    .contactPage .submit li:hover input {
        color: #212836;
    }

    .contactPage .submit li.disabled:hover input {
        color: #fff;
    }

    .contactPage .submit li.back:hover .info01:before {
        left: -21px;
        background-image: url("img/common/icon14.png");
    }

    .thanks .linkBtn a:hover {
        color: #212836;
    }

    .thanks .linkBtn a:hover:before {
        background-image: url("img/common/icon14.png");
        left: -21px;
    }

    .thanks .linkBtn a:hover:after {
        width: 100%;
        right: auto;
        left: 0;
    }
}

@media all and (max-width: 896px) {
    .contactPage .topTxt {
        margin: 0 0 17px;
        line-height: 1.9;
        text-align: center;
    }

    .contactPage table {
        margin-bottom: 48px;
    }

    .contactPage th,
    .contactPage td {
        float: left;
        width: 100%;
        padding: 0 0 25px;
        box-sizing: border-box;
    }

    .contactPage th {
        padding: 22px 0 10px;
        width: 100%;
        border: none;
    }

    .contactPage td:before {
        display: none;
    }

    .contactPage td input[type="text"],
    .contactPage td input[type="email"],
    .contactPage td input[type="tel"],
    .contactPage td textarea {
        height: 58px;
        font-size: 1.2rem;
        padding: 5px 10px 5px 25px;
    }

    .contactPage td {
        font-size: 1.4rem;
    }

    .contactPage td .wid01 {
        width: 124px !important;
    }

    .contactPage td .ico {
        margin-right: 7px;
    }

    .contactPage td .add {
        margin-bottom: 20px;
    }

    .contactPage td textarea {
        height: 180px;
        padding: 20px 10px 20px 25px;
    }

    .contactPage .txtP {
        margin-bottom: 23px;
        line-height: 1.85;
    }

    .contactPage .agreeTxt {
        width: auto;
        margin: 0 auto 51px;
        padding: 14px 10px 14px 30px;
    }

    .contactPage .agreeTxt span.wpcf7-list-item {
        margin: 0 !important;
    }

    .contactPage .submit li {
        margin: 0 0 15px;
        display: block;
    }

    .contactPage .submit li:last-child {
        margin-bottom: 0;
    }

    .contactPage .submit li span:before {
        right: 17px;
    }

    .contactPage .submit li input {
        width: 100%;
        height: 60px;
    }

    .contactPage .errTop {
        margin-bottom: 18px;
        padding: 23px 10px 20px;
        font-size: 1.6rem;
        border-width: 2px;
        line-height: 1.9;
    }

    .contactPage .errTop img {
        margin: 0 auto 5px;
        display: block;
    }

    .contactPage .error td .errorTxt {
        margin: 3px 0 -19px;
        font-size: 1.1rem;
    }

    .contactPage .confirmTab th,
    .contactPage .confirmTab td {
        padding: 21px 0 7px;
        height: auto;
        line-height: 2;
    }

    .contactPage .confirmTab td {
        padding: 0 0 20px;
    }

    .contactPage .confirmTab td .add {
        margin-bottom: 4px;
    }

    .thanks .title {
        margin-bottom: 22px;
        font-size: 2.4rem;
    }

    .thanks .thanksTxt {
        margin-bottom: 37px;
        font-size: 1.6rem;
        font-weight: 500;
        line-height: 1.9;
    }

    .thanks .linkBtn a {
        margin: 0 auto;
        height: 60px;
        width: 100%;
        font-size: 1.6rem;
        max-width: 450px;
        letter-spacing: 0.06em;
    }

    .thanks .linkBtn a:before {
        left: 16px;
    }
}

@media all and (max-width: 374px) {
    .contactPage .txtP {
        margin: 0 -17px 23px;
    }

    .contactPage .agreeTxt {
        padding: 14px 5px 14px 10px;
        font-size: 1.3rem;
    }
}

/*------------------------------------------------------------
	privacy
------------------------------------------------------------*/
.privacy {
    margin-bottom: 240px;
}

.privacy h3 {
    display: inline-block;
    margin-bottom: 40px;
    font-size: 2.0rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    border-bottom: 1px solid;
}

.privacy p {
    margin-bottom: 4px;
    line-height: 2.3;
    letter-spacing: 0.06em;
}

.privacy h5 {
    margin-bottom: 6px;
    font-weight: 700;
    letter-spacing: 0.06em;
}

.privacy .txt01 {
    margin-bottom: 65px;
}

.privacy .txt02 {
    margin-bottom: 72px;
}

.privacy .txt03 {
    margin-bottom: 35px;
}

.privacy .txt04 {
    margin-bottom: 0;
}

@media all and (max-width: 896px) {
    .privacy {
        margin-bottom: 110px;
    }

    .privacy .pageTitle {
        padding: 28px 0 30px;
    }

    .privacy .pageTitle .headLine01 .en {
        margin-bottom: 8px;
        font-size: 3.2rem;
    }

    .privacy .pageTitle .headLine01 .jp {
        font-size: 2rem;
    }

    .privacy #pagePath {
        margin-bottom: 56px;
    }

    .privacy p {
        margin-bottom: 3px;
        line-height: 1.85;
        letter-spacing: 0.01em;
    }

    .privacy h5 {
        margin-bottom: 3px;
        letter-spacing: 0.01em;
    }

    .privacy .txt01 {
        margin-bottom: 57px;
    }

    .privacy .txt02 {
        margin-bottom: 60px;
    }

    .privacy .txt03 {
        margin-bottom: 27px;
    }

    .privacy .txt04 {
        margin-bottom: 0;
    }
}

.wpcf7-response-output {
    display: none !important;
}




/* 新規下層ページ */
.mainttl {
    margin-bottom: 40px;
    font-size: 3.0rem;
    font-family: var(--font-en02);
}

section+section {
    padding: 120px 0;
}

@media all and (max-width: 896px) {
    .mainttl {
        margin-bottom: 30px;
        font-size: 2.0rem;
    }
}


/* ----- 下層ページ移行 ------ */
.pageTransition {
    position: fixed;
    inset: 0;
    display: flex;
    flex-direction: column;
    z-index: 99999;
    pointer-events: none;
}

.pageTransition span {
    flex: 1;
    background: #fff;
    /* border-bottom: 1px solid #ffffff86; */
    transform: scaleX(1);
    transform-origin: right;
}

/* .pageTransition span:nth-child(even) {
    background: #202020;
} */


/* ----- 黒→白背景 ------ */
.transition {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: #000;
    /* overflow:hidden; */
    z-index: 20;
}

.veil {
    position: absolute;
    top: -100%;
    left: 0;
    width: 100%;
    height: 100%;

    background: transparent;
}

/*------------------------------------------------------------
	company
------------------------------------------------------------*/
/* ----- policy ------ */
.policySec {
    position: relative;
    padding-bottom: 120px;
}

.policySec .toptxt {
    width: fit-content;
    margin: 0 auto 40px;
}

.policySec .toptxt p {
    font-size: 2.4vw;
    font-family: var(--font-en01);
    text-align: center;
}

.policySec .toptxt p span {
    font-size: 2.6vw;
    font-style: italic;
    font-family: var(--font-en02);
}

.policySec .toptxt .jp {
    margin-top: 40px;
    font-size: 1.2vw;
    font-family: var(--font-jp);
}

.policySec h2 {
    margin-bottom: 60px;
    text-align: center;
}

.policyWrap {
    display: flex;
    justify-content: center;
    align-items: center;
}

.policyItem {
    width: 500px;
    aspect-ratio: 1 / 1;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #fff;
}

.circleBorder {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    transform: rotate(-90deg);
}

/* 共通 */
.circleBorder circle {
    fill: none;
    stroke-width: 0.3;
    stroke-linecap: round;
}

/* 白線 */
.circleWhite {
    fill: none;
    stroke: #fff;
    stroke-width: 0.3;
    stroke-dasharray: 100;
    stroke-dashoffset: 100;
    transition: stroke-dashoffset 2s ease;
}

.policyItem.on .circleWhite {
    stroke-dashoffset: 0;
}

/* 緑線 */
.circleGreen {
    fill: none;
    stroke: var(--color-main);
    stroke-width: 0.2;
    stroke-dasharray: 100;
    stroke-dashoffset: 100;
}

.policyItem+.policyItem {
    margin-left: -50px;
}

.policyItem p {
    margin: 0;
    font-size: 2.4rem;
    font-style: normal;
    font-family: var(--font-en01);
    letter-spacing: 0.08em;
    transition: all 0.3s ease
}

.policyItem:hover p {
    color: var(--color-main);
    font-size: 3.8rem;
    font-weight: 600;
    font-family: var(--font-en02);
}

.policy_sp {
    display: none;
}

@media all and (max-width: 1440px) {
    .policyItem {
        width: 450px;
    }
}

@media all and (max-width: 896px) {
    .policySec {
        padding-bottom: 60px;
    }

    .policySec .toptxt {
        margin: 0 auto 50px;
    }

    .policySec .toptxt p {
        font-size: 5.4vw;
    }

    .policySec .toptxt p span {
        font-size: 6.6vw;
    }

    .policySec .toptxt .jp {
        margin-top: 20px;
        font-size: 1.4rem;
    }

    .policySec h2 {
        margin-bottom: 40px;
    }

    .policyWrap {
        flex-direction: column;
    }

    .policyItem {
        width: 280px;
    }

    .policyItem+.policyItem {
        margin-left: 0px;
        margin-top: -40px;
    }

    .policyItem p {
        font-size: 2.0rem;
    }

    .policy_sp {
        display: block;
        margin-top: 50px;
    }

    .policy_sp ul {
        display: flex;
        flex-direction: column;
        gap: 40px;
    }

    .policy_sp ul li {
        padding: 25px;
        background: #4a474773;
        backdrop-filter: blur(5px);
        box-sizing: border-box;
    }

    .policy_sp ul li .number {
        margin-bottom: 4px;
        font-size: 1.0rem;
        font-weight: 700;
        font-family: var(--font-en01);
        color: var(--color-main);
    }

    .policy_sp ul li h3 {
        font-size: 2.0rem;
        font-weight: 300;
        font-family: var(--font-en01);
    }

    .policy_sp ul li h4 {
        padding-bottom: 8px;
        margin-bottom: 16px;
        font-size: 1.3rem;
        font-weight: 300;
        font-family: var(--font-en01);
        border-bottom: 1px solid #fff;
    }

    .policy_sp ul li p {
        font-weight: 300;
        font-size: 1.3rem;
    }

    .policy_sp ul li p span {
        position: relative;
        display: block;
        padding-bottom: 5px;
        padding-left: 15px;
    }

    .policy_sp ul li p span::before {
        position: absolute;
        content: "";
        top: 50%;
        left: 3px;
        transform: translateY(-50%);
        width: 5px;
        height: 2px;
        background: #fff;
    }
}


/* ----- message ------ */
.messageWrap {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 40px 3%;
}

.messageWrap .txtBox {
    width: 53%;
}

.messageWrap figure {
    width: calc(100% - 53% - 3%);
    padding: 20px;
    box-sizing: border-box;
}

.messageWrap figure img {
    /* aspect-ratio: 1;
    object-fit: cover;
    object-position: 70% 50%; */
    filter: grayscale(100%);
}

.messageItem h3 {
    font-size: 2.4rem;
    padding-bottom: 20px;
    margin-bottom: 40px;
    border-bottom: 1px solid #fff;
}

.messageItem p {
    line-height: 1.8;
}

.messageSec .name {
    margin-top: 40px;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 8px;
}

.messageSec .name p {
    font-size: 1.4rem;
}

.messageSec .name img {
    width: 130px;
    height: auto;
}

.messageItem h3,
.messageItem p,
.name,
.messageImg {
    clip-path: inset(0 100% 0 0);
}

@media all and (max-width: 1440px) {
    .messageSec .name img {
        width: 100px;
    }
}

@media all and (max-width: 896px) {
    /* .messageSec {
        padding: 0 10px;
    } */

    .messageWrap .txtBox {
        width: 100%;
    }

    .messageWrap figure {
        width: 100%;
        padding: 0;
    }

    .messageItem h3 {
        font-size: 2.0rem;
        padding-bottom: 15px;
        margin-bottom: 20px;
    }

    .messageSec .name {
        padding-top: 30px;
    }

    .messageSec .name p {
        font-size: 1.2rem;
    }

    .messageSec .name img {
        width: 100px;
    }

}

/* ----- compliance ------ */
.complianceWrap {
    display: block;
    clip-path: inset(0 100% 0 0);
}

.complianceWrap_sp {
    display: none;
}

@media all and (max-width: 896px) {
    .complianceWrap {
        display: none;
    }

    .complianceWrap_sp {
        display: block;
    }
}

/* ----- company ------ */
.companySec {
    position: relative;
    padding: 20px;
    padding-bottom: 0;
    background: #fff;
    color: #000;
}

.companyInner {
    display: flex;
    flex-wrap: wrap;
    border: 2px solid #000;
}

.companyInner .ttlWrap {
    padding: 20px;
    width: calc(100% - 85% - 1px);
    border-right: 2px solid #000;
    box-sizing: border-box;
}

.companyInner .ttlWrap h2 {
    text-align: center;
}

.companySec table {
    padding: 20px;
    width: 85%;
    border-collapse: collapse;
    box-sizing: border-box;
    clip-path: inset(0 100% 0 0);
}

.companySec table tr {
    width: 100%;
}

.companySec table th,
.companySec table td {
    padding: 30px;
    font-size: 1.4rem;
    border-bottom: 2px solid #000;
}

.companySec table tr:last-child th,
.companySec table tr:last-child td {
    border-bottom: unset;
}

.companySec table th {
    width: 20%;
    color: var(--color-main);
}

.companySec table td img {
    width: 105px;
}

@media all and (max-width: 896px) {
    .companySec {
        padding: 12px;
        padding-bottom: 0;
    }

    .companyInner .ttlWrap {
        padding: 20px;
        width: 100%;
        border-right: unset;
        border-bottom: 2px solid #000;
    }

    .companyInner .ttlWrap h2 {
        margin-bottom: 0;
    }

    .companySec table {
        padding: 20px;
        width: 100%;
    }

    .companySec table tr {
        display: flex;
        flex-direction: column;
    }

    .companySec table th,
    .companySec table td {
        padding: 20px;
    }


    .companySec table th {
        width: 100%;
        padding-bottom: 0px;
        border-bottom: unset;
    }

    .companySec table td img {
        width: 95px;
    }
}

/* ----- office ------ */
.officeSec {
    padding: 20px;
    /* padding-top: 0; */
    background: #fff;
    color: #000;
}

.officeInner {
    border: 2px solid #000;
    /* border-top: unset; */
}

.officeWrap {
    display: flex;
    flex-wrap: wrap;
}

.adressBox {
    width: 60%;
    box-sizing: border-box;
}

.adressBox h2 {
    padding: 20px;
    padding-bottom: 0;
    margin-bottom: 0;
}

.adressItem {
    padding: 60px 30px;
    display: flex;
    flex-wrap: wrap;
    clip-path: inset(0 100% 0 0);
}

.adressItem:first-of-type {
    border-bottom: 2px solid #000;
}

.adressItem .txtBox {
    width: 70%;
}

.adressItem .txtBox h3 {
    margin-bottom: 30px;
    font-size: 2.2rem;
    font-family: var(--font-en01);
    transition: all 0.2s ease;
}

.adressItem:hover .txtBox h3 {
    color: var(--color-main);
}

.adressItem .txtBox h3 span {
    font-family: var(--font-en02);
}

.adressItem .txtBox p {
    font-size: 1.4rem;
}

.adressItem .txtBox .top {
    margin-bottom: 20px;
}

.adressItem .linkBox {
    width: 30%;
    display: flex;
    align-items: flex-end;
}

.adressItem .comMore {
    margin: 20px 0 0;
    border-bottom: 2px solid #000;
}

.adressItem .comMore a {
    color: transparent;
    text-shadow: 0 -1.5em 0 #000, 0 0 0 #000;
}

.adressItem .comMore a::after {
    filter: invert(100%);
}

.adressItem .comMore a:hover {
    text-shadow: 0 0 0 #000, 0 1.5em 0 #000;
}

.adressItem .comMore a:hover::after {
    filter: unset;
}

.officeSec .imgBox {
    width: calc(100% - 60%);
    padding: 0px;
    border-right: 2px solid #000;
    box-sizing: border-box;
    background: var(--color-bg);
}

.officeSec .imgBox img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@media all and (max-width: 896px) {

    .officeSec {
        padding: 12px;
    }

    .adressBox {
        width: 100%;
    }

    .adressItem {
        padding: 20px;
    }

    .adressItem .txtBox {
        width: 100%;
    }

    .adressItem .txtBox h3 {
        margin-bottom: 20px;
        font-size: 2.0rem;
    }

    .adressItem .txtBox p {
        font-size: 1.3rem;
    }

    .adressItem .txtBox .top {
        margin-bottom: 10px;
    }

    .adressItem .linkBox {
        width: 100%;
    }

    .officeSec .imgBox {
        width: 100%;
        border-right: unset;
        border-bottom: 2px solid #000;
    }
}

/* ----- contact ------ */
.companyPage .btmcontact {
    padding-top: 0;
}






/*------------------------------------------------------------
	service
------------------------------------------------------------*/
.policySec .service {
    width: fit-content;
    margin: 0 auto;
    line-height: 2.0;
    text-align: center;
}

@media all and (max-width: 896px) {
    .policySec .service {
        font-size: 1.4rem;
        text-align: center;
    }

    .servicePage .policySec {
        padding-bottom: 0;
    }
}

/* ----- content ------ */
.contentSec {
    position: relative;
}

.contentSec .kvScroll {
    top: -60px;
    bottom: unset;
}

.contentSec .kvScroll .line {
    height: 160px;
}

.stickyArea {
    height: 100vh;
    position: sticky;
    top: 0;
    display: flex;
    align-items: center;
    gap: 5%;
    background: #000;
    z-index: 2;
}

.stickyArea .ttlBox {
    width: 30%;
    padding: 0 12px 0 30px;
    display: flex;
    justify-content: center;
}

.stickyArea .ttlBox h2 {
    color: #fff;
    font-size: 5.0rem;
    font-weight: 400;
    font-family: var(--font-en01);
    line-height: 1.3;
}

.stickyArea .ttlBox h2 span {
    display: block;
    color: var(--color-main);
    font-size: 2.4rem;
    font-weight: 700;
    font-family: var(--font-en02);
}

.stickyArea .ttlBox h2 .jp {
    position: relative;
    display: block;
    margin-top: 5px;
    padding: 5px;
    padding-left: 60px;
    color: #fff;
    font-size: 1.6rem;
    font-weight: 400;
    font-family: var(--font-jp);
}

.stickyArea .ttlBox h2 .jp::after {
    position: absolute;
    content: "";
    top: 50%;
    left: 2px;
    transform: translateY(-50%);
    width: 50px;
    height: 1px;
    background-color: #fff;
}

.stickyArea .ttlBox .txtBox_sp {
    display: none;
}

.stickyArea .imgBox {
    width: 30%;
    overflow: hidden;
}

.stickyArea .imgBox img {
    width: 100%;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    filter: grayscale(100%) brightness(.9);
}

.stickyArea .txtBox {
    width: 30%;
    padding: 0 30px;
    display: flex;
    justify-content: center;
    box-sizing: border-box;
}

.stickyArea .txtBox p {
    font-size: 1.5rem;
    line-height: 2.2;
    color: #fff;
}



.contentSec ul {
    margin-top: -100vh;
    display: flex;
    flex-direction: column;
    gap: 60px;
}

.contentSec ul li>* {
    opacity: 0;
    pointer-events: none;
}

.contentSec ul li {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 5%;
    height: 100vh;
    position: relative;
    visibility: hidden;
}

.contentSec ul li .ttlBox {
    width: 30%;
}

.contentSec ul li .ttlBox h2 {
    font-size: 4.0rem;
    font-family: var(--font-en01);
}

.contentSec ul li .ttlBox h2 span {
    display: block;
    font-size: 1.2rem;
    font-family: var(--font-en02);
}

.contentSec ul li .imgBox {
    width: 30%;
    overflow: hidden;
}

.contentSec ul li .imgBox img {
    aspect-ratio: 9 / 16;
    object-fit: cover;
}

.contentSec ul li .txtBox {
    width: 30%;
}

@media all and (max-width: 1440px) {
    .contentSec .kvScroll {
        top: -60px;
        bottom: unset;
    }

    .stickyArea {
        gap: 3%;
    }

    .stickyArea .ttlBox,
    .stickyArea .imgBox,
    .stickyArea .txtBox {
        width: calc(100% / 3 - 3%);
    }

    .stickyArea .ttlBox {
        padding: 0 0 0 20px;
        justify-content: flex-start;
    }

    .stickyArea .ttlBox h2 {
        font-size: 4.5rem;
    }


    .stickyArea .ttlBox h2 .jp {
        font-size: 1.5rem;
    }

    .stickyArea .txtBox {
        padding: 0 20px 0 0;
    }
}

@media all and (max-width: 896px) {
    .contentSec .kvScroll {
        top: 30px;
        bottom: unset;
    }

    .contentSec .kvScroll .line {
        height: 100px;
    }

    .stickyArea {
        height: 100%;
        flex-wrap: wrap;
        gap: 20px;
    }

    .stickyArea .ttlBox {
        width: 100%;
        padding-top: 50px;
        justify-content: flex-start;
    }

    .stickyArea .ttlBox h2 {
        font-size: 3.1rem;
    }

    .stickyArea .ttlBox h2 .jp {
        font-size: 1.4rem;
        font-weight: 400;
    }

    .stickyArea .ttlBox .txtBox_sp {
        display: block;
    }

    .stickyArea .txtBox {
        display: none;
    }

    .stickyArea .imgBox {
        width: 100%;
        padding: 12px;
        padding-top: 0;
    }

    .stickyArea .imgBox img {
        aspect-ratio: 3 / 4;
    }
}


/* ----- network ------ */
.netSec {
    position: relative;
    padding: 200px 0 120px;
    /* overflow: hidden; */
    background: #fff;
    color: #000;
}

.netSec .kvScroll {
    top: -100px;
    bottom: unset;
    left: 50%;
    transform: translateX(-50%);
    mix-blend-mode: difference;
}

.netSec .kvScroll .line {
    height: 200px;
}

.netSec .content {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 40px;
}

.netSec .txtBox {
    position: relative;
    /* width: calc(100% - 820px); */
    width: fit-content;
    box-sizing: border-box;
    text-align: center;
    z-index: 2;
}

.netSec .txtBox {
    clip-path: inset(0 100% 0 0);
}

.netSec .txtBox h2 {
    margin-bottom: 20px;
    font-size: 7.0rem;
    font-weight: 400;
    font-family: var(--font-en01);
    line-height: 1.2;
}

.netSec .txtBox h3 {
    margin-bottom: 80px;
    font-weight: 400;
}

.netSec .txtBox h3 span {
    display: block;
    margin-top: 50px;
    font-size: 2.0rem;
    font-weight: 800;
    font-family: var(--font-en02);
    color: var(--color-main);
}

.netSec .txtBox .txtinner {
    width: fit-content;
    position: relative;
    border-left: 2px solid;
    border-right: 2px solid;
}

.netSec .txtBox .txtinner::before,
.netSec .txtBox .txtinner::after {
    content: "";
    position: absolute;
    top: 0;
    width: 20px;
    height: 2px;
    background: #000;
}

.netSec .txtBox .txtinner::before {
    left: 0;
}

.netSec .txtBox .txtinner::after {
    right: 0;
}

.netSec .txtBox .txtinner p {
    padding: 30px;
    line-height: 2.0;
}

.netSec .txtBox .txtinner p::before,
.netSec .txtBox .txtinner p::after {
    content: "";
    position: absolute;
    bottom: 0;
    width: 20px;
    height: 2px;
    background: #000;
}

.netSec .txtBox .txtinner p::before {
    left: 0;
}

.netSec .txtBox .txtinner p::after {
    right: 0;
}


/* 背景地図 */
.japanMap {
    position: absolute;
    left: 50%;
    top: 10%;
    transform: translateX(-50%);
    width: 600px;
    opacity: 0.5;
}

.netSec svg {
    width: 770px;
    height: auto;
}

.netSec circle {
    fill: var(--color-main);
    opacity: .2;
    filter: drop-shadow(0 0 2px #668e4c77);
    animation: twinkle 4s ease-in-out infinite;
}

.netSec circle:nth-child(2n) {
    animation-delay: -.5s;
}

.netSec circle:nth-child(3n) {
    animation-delay: -1.3s;
}

.netSec circle:nth-child(5n) {
    animation-delay: -2.2s;
}

.netSec circle:nth-child(7n) {
    animation-duration: 4s;
}

.netSec circle:nth-child(11n) {
    animation-duration: 2.5s;
}

@keyframes twinkle {

    0%,
    100% {
        opacity: .15;
    }

    50% {
        opacity: .8;
    }
}

@media all and (max-width: 896px) {
    .netSec {
        padding: 120px 0 80px;
    }

    .netSec .kvScroll {
        top: -75px;
    }

    .netSec .kvScroll .line {
        height: 150px;
    }

    .netSec .txtBox h2 {
        margin-bottom: 30px;
        font-size: 4.0rem;
    }

    .netSec .txtBox h3 {
        margin-bottom: 60px;
    }

    .netSec .txtBox .txtinner p {
        padding: 20px;
    }

    .japanMap {
        top: 15%;
        width: 370px;
    }

    .netSec svg {
        width: 370px;
    }
}


/*------------------------------------------------------------
	system maintenance
------------------------------------------------------------*/
.servicesubSec {
    position: relative;
    margin-top: -83px;
    height: 500vh;
    background-color: #fff;
    color: #000;
}

.servicesubSec .content {
    height: 100%;
}

.servicesubSec .wrap {
    position: sticky;
    top: 0;
    height: 100vh;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 2%;
    box-sizing: border-box;
}

.servicesubSec .wrap .txtBox {
    width: 55%;
    height: 90%;
    padding: 30px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-start;

    /* border-top: 2px solid;
    border-bottom: 2px solid; */
    border: 2px solid;
    background: var(--color-bg);
    box-sizing: border-box;
}

.servicesubSec .wrap .txtBox h2 {
    margin-bottom: 40px;
    font-size: 3vw;
    font-weight: 500;
    font-family: var(--font-en01);
}

.servicesubSec .wrap .txtBox h2 span {
    display: block;
    color: var(--color-main);
    font-size: 1.4vw;
    font-weight: 700;
    font-family: var(--font-en02);
}

.servicesubSec .wrap .txtBox h2 .jp {
    position: relative;
    display: block;
    padding: 5px;
    padding-left: 60px;
    font-size: 1.5rem;
    font-weight: 600;
    font-family: var(--font-jp);
    color: #000;
}

.servicesubSec .wrap .txtBox h2 .jp::after {
    position: absolute;
    content: "";
    top: 50%;
    left: 2px;
    transform: translateY(-50%);
    width: 50px;
    height: 1px;
    background-color: #000;
}

.servicesubSec .wrap .txtBox h3 {
    font-size: 1vw;
    font-weight: 600;
    color: var(--color-main);
}

.servicesubSec .wrap .txtBox p {
    margin: 20px 0 40px;
    font-size: 1.5rem;
    line-height: 2.0;
}

.servicesubSec .wrap .txtBox .innertxt {
    margin-top: 18px;
}

.servicesubSec .wrap .txtBox .innertxt h4 {
    position: relative;
    padding-left: 17px;
}

.servicesubSec .wrap .txtBox .innertxt h4::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 1px;
    transform: translateY(-50%) rotate(45deg);
    width: 10px;
    height: 10px;
    background: var(--color-main);
}

.servicesubSec .wrap .txtBox .innertxt p {
    margin: 5px 0 0;
}

.servicesubSec .wrap .txtBox .comMore {
    margin: 40px 0 0;
}

.servicesubSec .wrap .txtBox .comMore {
    display: inline-block;
    border-bottom: 2px solid #000;
}

.servicesubSec .wrap .txtBox .comMore a {
    color: transparent;
    text-shadow: 0 -1.5em 0 #000, 0 0 0 #000;
}

.servicesubSec .wrap .txtBox .comMore a::after {
    filter: invert(100%);
}

.servicesubSec .wrap .txtBox .comMore a:hover {
    text-shadow: 0 0 0 #000, 0 1.5em 0 #000;
}

.servicesubSec .wrap .txtBox .comMore a:hover::after {
    filter: unset;
}


.servicesubSec .wrap .imgBox {
    position: relative;
    width: 40%;
    height: 90%;
    box-sizing: border-box;
}

.servicesubSec .wrap .imgBox .img {
    position: absolute;
    inset: 0;
    opacity: 0;
    pointer-events: none;
}


.servicesubSec .wrap .imgBox .img.active {
    opacity: 1;
    pointer-events: auto;
}

.servicesubSec .wrap .imgBox .img img {
    width: 100%;
    height: 100%;
    aspect-ratio: 9 / 16;
    object-fit: cover;
}

.servicesubSec .wrap .imgBox .img.svg img {
    object-fit: contain;
    background: #fff;
}

.imageGauge {
    position: absolute;
    top: 50%;
    right: 0px;
    transform: translateY(-50%);
    width: 2%;

    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 18px;
    z-index: 10;
}

.imageGauge span {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #668e4c29;
    border: 1.5px solid #668e4cc9;
    transition: .3s;
}

.imageGauge span.active {
    background: var(--color-main);
    transform: scale(1.3);
}

@media all and (max-width: 1440px) {
    .imageGauge span {
        width: 6px;
        height: 6px;
    }

    .servicesubSec .wrap .txtBox .comMore {
        margin-top: 20px;
    }

    .servicesubSec .wrap .txtBox .comMore a {
        font-size: 1.8rem;
    }

    .servicesubSec .wrap .txtBox .comMore a::after {
        width: 13px;
        height: 13px;
    }
}

@media all and (max-width: 1440px) {
    .servicesubSec .wrap {
        padding-top: 20px;
    }

    .servicesubSec .wrap .txtBox {
        padding: 20px;
    }

    .servicesubSec .wrap .txtBox h2 {
        margin-bottom: 20px;
    }

    .servicesubSec .wrap .txtBox h3 {
        font-size: 1.8rem;
    }

    .servicesubSec .wrap .txtBox p {
        margin: 10px 0 0;
        line-height: 1.4;
        font-size: 1.3rem;
    }
}

@media all and (max-width: 896px) {

    .servicesubSec {
        padding-top: 70px;
        height: auto;
    }

    .servicesubSec .content {
        height: auto;
    }

    .servicesubSec .wrap {
        position: relative;
        height: auto;
        gap: 40px;
    }

    .servicesubSec .wrap .txtBox {
        width: 100%;
    }

    .servicesubSec .wrap .txtBox h2 {
        margin-bottom: 30px;
        font-size: 3.3rem;
    }

    .servicesubSec .wrap .txtBox h3 {
        font-size: 1.8rem;
    }

    .servicesubSec .wrap .txtBox p {
        margin: 30px 0 10px;
        font-size: 1.4rem;
    }

    .servicesubSec .wrap .imgBox {
        width: 100%;
        height: auto;
    }

    .servicesubSec .wrap .imgBox .img {
        position: relative;
        inset: auto;
        width: 100%;
        height: auto;
        display: block;
        opacity: 1 !important;
        visibility: visible;
        transform: none !important;
        margin-bottom: 20px;
    }

    .servicesubSec .wrap .imgBox .img:nth-child(even) {
        display: flex;
        justify-content: flex-end;
    }

    .servicesubSec .wrap .imgBox .img img {
        display: block;
        width: 70%;
        height: auto;
        aspect-ratio: 3 / 4;
        object-fit: cover;
    }

    .imageGauge {
        display: none;
    }
}



/*------------------------------------------------------------
	recruit
------------------------------------------------------------*/
/* .recruitSec {
    padding: 20px 0 120px;
} */

.recruitWrap .txtBox,
.recruitWrap figure {
    clip-path: inset(0 100% 0 0);
}

.recruitWrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 5%;
}

.recruitWrap .txtBox {
    width: calc(100% / 2 - 5%);
}

.recruitWrap .txtBox p {
    padding-bottom: 30px;
    margin-bottom: 30px;
    display: flex;
    gap: 20px;
    border-bottom: 1px solid #fff;
}

.recruitWrap .txtBox p span {
    padding: 3px 16px;
    color: var(--color-main);
    border: 1px solid var(--color-main);
}

.recruitWrap .txtBox .maintxt {
    line-height: 2.2;
    border-bottom: unset;
}

.recruitWrap .txtBox h3 {
    margin-bottom: 40px;
    font-size: 2.8rem;
}

.recruitWrap figure {
    width: calc(100% / 2 - 5%);
}

.recruitWrap figure img {
    filter: grayscale(100%);
}

.contentWrap {
    margin-top: 80px;
    padding-bottom: 80px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.contentBox {
    max-height: 0;
    opacity: 0;
    overflow: hidden;

    margin: 0 auto;
    padding: 0 60px;

    width: fit-content;

    border: 2px solid #fff;
    background: #292929;

    transition:
        max-height .8s ease,
        opacity .4s ease,
        margin-top .8s ease,
        padding-top .8s ease,
        padding-bottom .8s ease;
}

.contentBox.open {
    max-height: 3000px;
    opacity: 1;

    margin-top: 40px;
    padding-top: 20px;
    padding-bottom: 20px;
}

.accordionBtn {
    position: relative;
    cursor: pointer;
    padding-bottom: 6px;
    background: transparent;
    border: none;
    outline: none;
    border-bottom: 1px solid #fff;
    overflow: hidden;
}

.accordionBtn span {
    color: transparent;
    text-shadow: 0 -1.5em 0 #fff, 0 0 0 #fff;
    transition: text-shadow 0.3s;
    font-size: 1.8rem;
}

.accordionBtn:hover span {
    text-shadow: 0 0 0 #fff, 0 1.5em 0 #fff;
}

.icon {
    position: relative;
    display: inline-block;
    width: 20px;
    height: 20px;
}

.icon::before,
.icon::after {
    content: "";
    position: absolute;
    background: #fff;
    transition: .3s;
}

.icon::before {
    width: 20px;
    height: 2px;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
}

.icon::after {
    width: 2px;
    height: 20px;
    left: 50%;
    transform: translateX(-50%);
}

.accordionBtn.active .icon::after {
    opacity: 0;
    transform: translateX(-50%) rotate(90deg);
}

.contentBox {
    margin: 40px auto 0;
    padding: 20px 60px;
    width: fit-content;
    border: 1px solid #fff;
    background: #292929;
}

.contentBox table {
    width: fit-content;
    border-collapse: collapse;
}

.contentBox table th,
.contentBox table td {
    padding: 24px 50px;
    border-bottom: 1px solid #fff;
}

.contentBox table tr:last-child th,
.contentBox table tr:last-child td {
    border-bottom: unset;
}

.contentBox table td small {
    font-size: 1.4rem;
    color: var(--color-main);
}

.contentBox .comMore {
    margin: 40px 0;
    border-bottom: unset;
    display: flex;
    justify-content: center;
}

@media all and (max-width: 896px) {
    .recruitWrap .txtBox {
        width: 100%;
    }

    .recruitWrap .txtBox p {
        padding-bottom: 20px;
        margin-bottom: 20px;
        gap: 12px;
    }

    .recruitWrap .txtBox p span {
        padding: 3px 12px;
        font-size: 1.3rem;
    }

    .recruitWrap .txtBox h3 {
        margin-bottom: 20px;
        font-size: 2.2rem;
    }

    .recruitWrap figure {
        width: 100%;
    }

    .contentBox {
        padding: 20px;
    }

    .contentBox table tr {
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .contentBox table th,
    .contentBox table td {
        width: 100%;
        padding: 16px 20px;
        width: 100%;
    }

    .contentBox table th {
        padding-bottom: 0;
        border-bottom: unset;
        font-size: 1.6rem;
    }

    .contentBox table td {
        padding-top: 8px;
    }
}


/* ----- company policies ------ */
.policiesSec {
    position: relative;
    padding: 0px 20px;
    background: #fff;
}

.stickyInner {
    clip-path: inset(0 100% 0 0);
}

.stickyInner {
    height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    overflow: hidden;
}

.policiesSec h2 {
    color: #000;
}

.policiesSec .sptxt {
    display: unset;
}

.policiesWrap {
    width: 100%;
    overflow: hidden;
}

.policiesList {
    display: flex;
    gap: 30px;

    width: max-content;
    transform: translateX(0);
}

.policiesList li {
    width: 515px;
    flex-shrink: 0;
    padding: 30px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    color: #000;
    border: 1px solid #000;
    background: var(--color-bg);
}

.policiesList li h3 {
    padding-bottom: 20px;
    margin-bottom: 20px;
    border-bottom: 1px solid #000;
    font-size: 2.2rem;
}

.policiesList li h3 span {
    display: block;
    margin-bottom: 12px;
    color: var(--color-main);
    font-size: 1.8rem;
    font-family: var(--font-en02);
}

.policiesList li p {
    line-height: 2.2;
}

.policiesList figure {
    margin: 20px 0 0;
}

.policiesList img {
    width: 100%;
    display: block;
    filter: grayscale(100%);
    aspect-ratio: 3 / 2;
    object-fit: cover;
    transition: all 0.2s ease;
}

.policiesList li:hover figure img {
    filter: unset;
}

@media all and (max-width: 1440px) {
    .policiesList {
        gap: 20px;
    }

    .policiesSec h2 {
        margin-bottom: 20px;
    }

    .policiesList li {
        width: 500px;
        padding: 20px;
    }

    .policiesList li h3 {
        padding-bottom: 10px;
        margin-bottom: 10px;
    }

    .policiesList li h3 span {
        margin-bottom: 2px;
    }

    .policiesList li p {
        line-height: 1.8;
        font-size: 1.4rem;
    }

    .policiesList img {
        aspect-ratio: 2 / 1;
    }
}

@media all and (max-width: 896px) {
    .stickyInner {
        height: 100vh;
        /* padding: 50px 0px 0; */
    }

    .policiesSec h2 {
        margin-bottom: 15px;
    }

    .policiesSec .sptxt {
        display: block;
        margin-bottom: 5px;
        color: #000;
        font-family: var(--font-en01);
        font-size: 1.3rem;
    }

    .policiesList li {
        width: 250px;
        padding: 20px;
    }

    .policiesList li h3 {
        padding-bottom: 12px;
        margin-bottom: 12px;
        font-size: 2.0rem;
    }

    .policiesList li h3 span {
        font-size: 1.6rem;
    }
}