@charset "UTF-8";
*,
*::before,
*::after {
    box-sizing: border-box;
}

html,
body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
a,
ul,
li,
figure,
dl,
dd,
dt,
hr,
ol,
ul {
    margin: 0;
    padding: 0;
}

.open {
    overflow: hidden;
}

.container {
    margin: 0;
    padding: 0;
}

a {
    text-decoration: none;
}

li {
    list-style: none;
}

html {
    font-size: 62.5%;
}

body:not(.top) {
    font-feature-settings: "palt";
    letter-spacing: 0.07em;
    font-weight: 200;
    text-align: justify;
    background-color: #4a4a4a;
}

@font-face {
    font-family: "Noto Sans JP";
    font-style: normal;
    font-weight: 500;
    src: url("../fonts/Noto Sans JP Medium.woff") format("woff");
    font-display: swap;
}

@font-face {
    font-family: "Noto Sans JP";
    font-style: normal;
    font-weight: 400;
    src: url("../fonts/Noto Sans JP Regular.woff") format("woff");
    font-display: swap;
}

@font-face {
    font-family: "Noto Serif JP";
    font-style: normal;
    font-weight: 300;
    src: url("../fonts/Noto Serif JP Light.woff") format("woff");
    font-display: swap;
}

body,
a {
    color: #4A4A4A;
    font: 400 1.6rem/28px "Noto Sans JP", sans-serif;
    /* 		font-family: YakuHanJPs_Noto; */
}

@media screen and (max-width: 768px) {
    body,
    a {
        font-size: 1.4rem;
    }
}

a {
    word-wrap: break-word;
}

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

.b {
    font-weight: bold;
}

.pankuz {
    background-color: #F5F5F5;
    height: 40px;
    margin: 0 auto;
    width: 100vw;
    position: relative;
    z-index: 2;
}

.pankuz__item {
    margin: 0 20px;
    font-weight: 500;
    font-family: "Josefin sans";
    line-height: 46px;
}

.pankuz__item:hover {
    border-bottom: 1px solid #4a4a4a;
}

.pankuz .home .pankuz__item {
    margin-left: 0;
}

.pankuz__bottom {
    background-color: #F5F5F5;
}

@media screen and (max-width: 768px) {
    .pankuz__bottom {
        overflow-x: scroll;
        padding-left: 20px;
    }
}

.pankuz__bottom-inner {
    max-width: 1024px;
    width: 100%;
    margin: 0 auto;
    white-space: nowrap;
    line-height: 40px;
}

.pankuz__bottom-inner .current-item:hover {
    border-bottom: none;
}

.pankuz__bottom-inner a {
    font-weight: 500;
}

.en {
    font-family: "Josefin Sans";
}

.jp {
    font-family: "Noto Serif JP", serif;
}

.back {
    color: #ddd;
}

.btn {
    position: relative;
    overflow: hidden;
    z-index: 9000;
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
}

.btn:before,
.btn:after {
    position: absolute;
    display: block;
    content: "";
    width: 100%;
    height: 100%;
    background-color: #4a4a4a;
    top: 0;
    left: -100%;
    z-index: -1;
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
}

.btn:hover {
    opacity: 1;
    color: #fff !important;
}

.btn:hover::after {
    top: 0;
    left: 0;
}

.TopBtn {
    border: 1px solid #4A4A4A;
    text-align: center;
    width: 280px;
    height: 64px;
    letter-spacing: 2px;
    position: relative;
}

@media screen and (max-width: 768px) {
    .TopBtn {
        width: 100%;
    }
}

.TopBtn a {
    font: 2rem/100px "Josefin Sans", "sans-serif";
    line-height: 69px;
    display: block;
}

.TopBtn a:hover {
    color: #fff !important;
}

.TopBtn i {
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
}

.forPC {
    display: inline-block;
}

@media screen and (max-width: 768px) {
    .forPC {
        display: none;
    }
}

.forSP {
    display: none;
}

@media screen and (max-width: 768px) {
    .forSP {
        display: inline-block;
    }
}

.c_orderlist li {
    counter-increment: number 1;
}

.c_orderlist li:before {
    content: counter(number) ".";
    font-family: "Josefin Sans";
    display: inline-block;
    font-size: 2.4rem;
    color: #acacac;
    font-weight: 500;
}

.c_orderlist-zero li {
    counter-increment: number 1;
}

.c_orderlist-zero li:before {
    content: counter(number, decimal-leading-zero);
    font-family: "Josefin Sans";
    display: inline-block;
    font-size: 2.4rem;
    color: #acacac;
    font-weight: 500;
}

time {
    /* 日付共通スタイル */
    color: #acacac;
    letter-spacing: 0.15em;
    font-family: "Josefin Sans", sans-serif;
    font-weight: 400;
}


/* リンクのホバーアニメ */

a {
    text-decoration: none;
    transition: all 0.3s ease 0s;
}

a:hover {
    opacity: 0.6;
}

.page__ttl {
    font: 500 6.4rem "Josefin Sans", "sans-serif";
    font-size: 6.4rem;
    letter-spacing: 0.1em;
    font-weight: 500;
}

@media screen and (max-width: 768px) {
    .page__ttl {
        font-size: 3.2rem;
        font-weight: bold;
    }
}

.page__ttl-jp {
    font: 400 4rem/80px "Noto Serif JP", serif;
    font-weight: 300;
}

@media screen and (max-width: 768px) {
    .page__ttl-jp {
        font-size: 2rem;
        line-height: 1;
    }
}

.jp__ttl {
    font: 6.4rem/100px "Noto Serif JP", serif;
    font-size: 2.8rem;
    letter-spacing: 0.12em;
    font-weight: 300;
}

@media screen and (max-width: 768px) {
    .jp__ttl {
        font-size: 2rem;
        line-height: 2;
        letter-spacing: 0.25em;
        margin-bottom: 32px;
    }
}

a.link {
    color: #1a0dab;
}

a.link:hover {
    border-bottom: 1px solid #1a0dab;
}

a.link:visited {
    color: #660099;
}

.Company__container {
    padding-bottom: 200px;
}

@media screen and (max-width: 768px) {
    .Company__container {
        padding-bottom: 80px;
    }
}

.Company__sub-top {
    background-size: cover;
    background-repeat: no-repeat;
    height: 400px;
    width: 100%;
    text-align: center;
    display: table;
    position: relative;
    position: sticky;
    top: 104px;
    left: 0;
    z-index: 1;
}

@media screen and (max-width: 768px) {
    .Company__sub-top {
        height: 200px;
        background-position: top right;
        top: 128px;
    }
}

.Company__sub-top .back {
    max-width: 1024px;
    width: 100%;
    margin: 0 auto;
    text-align: left;
    padding-top: 56px;
    text-align: left;
}

@media screen and (max-width: 768px) {
    .Company__sub-top .back {
        padding-top: 0;
        position: relative;
        bottom: 44px;
        padding-left: 20px;
    }
}

.Company__sub-top .back a {
    padding-left: 24px;
    letter-spacing: 0.1em;
    font-weight: 500;
    background-position: top 29% left;
    background-image: url(../images/ico-arrowl-bk.svg);
    background-repeat: no-repeat;
    background-size: 12px 8px;
}

@media screen and (max-width: 768px) {
    .Company__sub-top .back {
        top: -50px;
    }
    .Company__sub-top .back a {
        font-size: 1.4rem;
        line-height: 1;
    }
}

.Company__sub-heading {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    letter-spacing: 16px;
    line-height: initial;
    width: 100%;
}

.Company__sub-heading .Company__sub-ttl {
    font: 500 6.4rem "Josefin Sans", "sans-serif";
    letter-spacing: 0.1em;
    line-height: 1;
    margin-bottom: 30px;
}

@media screen and (max-width: 768px) {
    .Company__sub-heading .Company__sub-ttl {
        font-size: 3.2rem;
        margin-bottom: 5px;
    }
}

.Company__sub-heading .Company__sub-jpttl {
    font: 2.8rem/48px "Noto Serif JP", serif;
    font-size: 2.8rem;
    letter-spacing: 0.12em;
    line-height: 1;
}

@media screen and (max-width: 768px) {
    .Company__sub-heading .Company__sub-jpttl {
        font-size: 1.6rem;
    }
}

.Company__sub-cover {
    margin-top: 80px;
    padding-top: 80px;
    position: relative;
    z-index: 1;
    background-color: #fff;
}

@media screen and (max-width: 768px) {
    .Company__sub-cover {
        margin-top: 150px;
        padding-top: 40px;
    }
}

.Company__child {
    background-color: #F5F5F5;
    position: relative;
    z-index: 2;
}

.Company__child .company__list {
    max-width: 1024px;
    margin: 0 auto;
    padding-top: 80px;
    padding-bottom: 40px;
}

.Company__back {
    position: absolute;
    top: 40px;
    left: 278px;
}

.Company__back a {
    font: 2rem/100px "Josefin Sans", "sans-serif";
}

.company__list-item.is-empty {
    height: 0;
    padding-top: 0;
    padding-bottom: 0;
    margin-top: 0;
    margin-bottom: 0;
}

.Media__header {
    background-image: url("../images/media_top@2x.jpg");
    background-repeat: no-repeat;
    width: 100%;
    height: 400px;
    background-size: cover;
    position: sticky;
    top: 104px;
    left: 0;
    width: 100%;
    z-index: 1;
}

@media screen and (max-width: 768px) {
    .Media__header {
        height: 200px;
        margin-top: 120px;
    }
}

.Media__header-inner {
    text-align: center;
    width: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.Media__header-inner h2 {
    font: 500 6.4rem "Josefin Sans", "sans-serif";
    letter-spacing: 10px;
}

.Media__header-inner span {
    font: 2.8rem/48px "Noto Serif JP", serif;
}

@media screen and (max-width: 768px) {
    .Media__header-inner span {
        font-size: 4vw;
    }
}

.Media__header .back {
    max-width: 1024px;
    width: 100%;
    margin: 0 auto;
    text-align: left;
    padding-top: 56px;
}

.Media__header .back a {
    letter-spacing: 0.1em;
    font-weight: 500;
    padding-left: 24px;
    background-position: center left;
    background-image: url(../images/ico-arrowl-bk.svg);
    background-repeat: no-repeat;
    background-size: 12px 8px;
}

@media screen and (max-width: 768px) {
    .Media__header .back {
        padding-top: 0;
        position: relative;
        bottom: 44px;
        padding-left: 20px;
    }
    .Media__header .back a {
        font-size: 1.4rem;
        line-height: 1;
    }
}

#bg.-visible {
    transform: translate(0, 0);
}

#bg {
    transform: translate(0, 100%);
    transition: transform cubic-bezier(0.41, 0.57, 0.5, 0.53) 0.6s;
}

#bg .bg__ttl {
    opacity: 0;
    transition: transform cubic-bezier(0.215, 0.61, 0.355, 1) 1s, opacity linear 0.7s;
    transform: translate(0, 40px);
    transition-delay: 0.25s;
}

#bg .bg__jpttl {
    opacity: 0;
    transition: transform cubic-bezier(0.215, 0.61, 0.355, 1) 1s, opacity linear 0.7s;
    transform: translate(0, 30px);
    transition-delay: 0.45s;
}

#bg.-visible .bg__ttl,
#bg.-visible .bg__jpttl {
    opacity: 1;
    transform: translate(0, 0);
}


/*========= ローディング画面のためのCSS ===============*/

#splash {
    position: fixed;
    width: 100%;
    height: 100%;
    background: #333;
    z-index: 9999999;
    text-align: center;
    color: #fff;
}

#splash-logo {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

#splash-logo img {
    width: 40%;
    margin: 0 auto;
    animation: logofadeIN 2s forwards;
}

@keyframes logofadeIN {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}


/*========= 画面遷移のためのCSS ===============*/

body.appear {
    background: #fff;
    /*画面を開いた後の背景色を指定*/
}


/*画面遷移アニメーション*/

.splashbg1,
.splashbg2 {
    display: none;
}


/*bodyにappearクラスがついたら出現*/

body.appear .splashbg1,
body.appear .splashbg2 {
    display: block;
}


/*上に消えるエリア*/

body.appear .splashbg1 {
    animation-name: PageAnime;
    animation-duration: 0.7s;
    animation-timing-function: ease-in-out;
    animation-fill-mode: forwards;
    content: "";
    position: fixed;
    z-index: 999;
    width: 100%;
    height: 100vh;
    bottom: 50%;
    left: 0;
    transform: scaleY(1);
    background-color: #333;
    /*伸びる背景色の設定*/
}

@keyframes PageAnime {
    0% {
        transform-origin: top;
        transform: scaleY(1);
    }
    100% {
        transform-origin: top;
        transform: scaleY(0);
    }
}


/*下に消えるエリア*/

body.appear .splashbg2 {
    animation-name: PageAnime2;
    animation-duration: 0.7s;
    animation-timing-function: ease-in-out;
    animation-fill-mode: forwards;
    content: "";
    position: fixed;
    z-index: 999;
    width: 100%;
    height: 100vh;
    top: 50%;
    left: 0;
    transform: scaleY(1);
    background-color: #333;
    /*伸びる背景色の設定*/
}

@keyframes PageAnime2 {
    0% {
        transform-origin: bottom;
        transform: scaleY(1);
    }
    100% {
        transform-origin: bottom;
        transform: scaleY(0);
    }
}


/*画面遷移の後現れるコンテンツ設定*/

body:not(.top) .container {
    opacity: 0;
    /*はじめは透過0に*/
}


/*bodyにappearクラスがついたら出現*/

body.appear .container {
    animation-name: PageAnimeAppear;
    animation-duration: 1s;
    animation-delay: 0.2s;
    animation-fill-mode: forwards;
    opacity: 0;
}

@keyframes PageAnimeAppear {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}

.randomAnime,
.randomAnime01,
.randomAnime02 {
    visibility: hidden;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

.blur {
    animation-name: blurAnime;
    animation-duration: 1s;
    animation-fill-mode: forwards;
}

@keyframes blurAnime {
    from {
        filter: blur(10px);
        transform: scale(1.02);
        opacity: 0;
    }
    to {
        filter: blur(0);
        transform: scale(1);
        opacity: 1;
    }
}

.blurTrigger {
    opacity: 0;
    will-change: opacity;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

.delay-time02 {
    animation-delay: 0.2s;
}

.delay-time04 {
    animation-delay: 0.4s;
}

.delay-time06 {
    animation-delay: 0.6s;
}

.delay-time08 {
    animation-delay: 0.8s;
}

.delay-time09 {
    animation-delay: 0.9s;
}

.delay-time10 {
    animation-delay: 1s;
}

.delay-time11 {
    animation-delay: 1.1s;
}

.delay-time12 {
    animation-delay: 1.2s;
}

.delay-time14 {
    animation-delay: 1.4s;
}

.delay-time22 {
    animation-delay: 2.2s;
}

.fadeUp {
    will-change: opacity;
    animation-name: fadeUpAnime;
    animation-duration: 0.5s;
    animation-fill-mode: forwards;
    opacity: 0;
}

@keyframes fadeUpAnime {
    from {
        opacity: 0;
        transform: translateY(100px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}


/* スクロールをしたら出現する要素にはじめに透過0を指定　*/

.fadeUpTrigger {
    opacity: 0;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}


/*背景色が伸びて出現 共通*/

.bgextend {
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    animation-name: bgextendAnimeBase;
    animation-duration: 1s;
    animation-fill-mode: forwards;
    position: relative;
    opacity: 0;
}

@keyframes bgextendAnimeBase {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}


/*中の要素*/

.bgappear {
    animation-name: bgextendAnimeSecond;
    animation-duration: 1s;
    animation-delay: 0.6s;
    animation-fill-mode: forwards;
    opacity: 0;
}

@keyframes bgextendAnimeSecond {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}


/*--------- 左から --------*/

.bgLRextend::before {
    animation-name: bgLRextendAnime;
    animation-duration: 1s;
    animation-fill-mode: forwards;
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    background-color: #4a4a4a;
    /*伸びる背景色の設定*/
}

@keyframes bgLRextendAnime {
    0% {
        transform-origin: left;
        transform: scaleX(0);
    }
    50% {
        transform-origin: left;
        transform: scaleX(1);
    }
    51% {
        transform-origin: right;
    }
    100% {
        transform-origin: right;
        transform: scaleX(0);
    }
}

[data-aos=fade-up] {
    transition-duration: 0.8s !important;
    transition-timing-function: ease-out;
}

[data-aos=fade-up]:first-of-type {
    transition: 0.1s;
}

[data-aos=fade-up]:nth-of-type(2) {
    transition-duration: 1s !important;
}

[data-aos=fade-up]:last-of-type {
    transition-duration: 1.2s !important;
}

[data-aos=fade-up] {
    transform: translate3d(0, 1000px, 0) !important;
}

[data-aos^=fade][data-aos^=fade].aos-animate {
    opacity: 1;
    transform: translateZ(0) !important;
}


/*==================================================
ボンッ
===================================*/


/* 拡大 */

.zoomIn {
    animation-name: zoomInAnime;
    animation-duration: 0.5s;
    animation-fill-mode: forwards;
}

@keyframes zoomInAnime {
    0% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.2);
    }
    100% {
        transform: scale(1);
    }
}

@keyframes animate-panel {
    0% {
        transform-origin: left top;
        transform: scale(0, 1);
    }
    49% {
        transform-origin: left top;
        transform: scale(1, 1);
    }
    50% {
        transform-origin: right top;
        transform: scale(1, 1);
    }
    100% {
        transform-origin: right top;
        transform: scale(0, 1);
    }
}

@keyframes animate-content {
    0% {
        visibility: hidden;
    }
    49% {
        visibility: hidden;
    }
    50% {
        visibility: visible;
    }
    100% {
        visibility: visible;
    }
}

.mask-wrap {
    display: inline-block;
    margin: 0 30px 30px 30px;
}

.mask-wrap .mask-inner {
    position: relative;
    visibility: hidden;
}

.mask-wrap .mask-inner::after {
    content: "";
    background: #4a4a4a;
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    transform-origin: left top;
    transform: scale(0, 1);
    transition: all 0.3s ease 0s;
    visibility: visible;
}

.mask-wrap .mask-inner.start {
    animation-name: animate-content;
    animation-duration: 1.5s;
    animation-timing-function: ease;
    animation-delay: 0s;
    animation-iteration-count: 1;
    animation-direction: normal;
    animation-fill-mode: both;
    animation-play-state: running;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

.mask-wrap .mask-inner.start::after {
    animation-name: animate-panel;
    animation-duration: 1.5s;
    animation-timing-function: ease;
    animation-delay: 0s;
    animation-iteration-count: 1;
    animation-direction: normal;
    animation-fill-mode: both;
    animation-play-state: running;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

@keyframes animateimg-panel {
    0% {
        transform-origin: left top;
        transform: scale(0, 1);
    }
    49% {
        transform-origin: left top;
        transform: scale(1, 1);
    }
    52% {
        transform-origin: right top;
        transform: scale(1, 1);
        transform: skewX(45deg) scale(1, 1);
    }
    100% {
        transform-origin: right top;
        transform: scale(0, 1);
        transform: skewX(45deg) scale(0, 1);
    }
}

@keyframes animateimg-content {
    0% {
        visibility: hidden;
    }
    49% {
        visibility: hidden;
    }
    50% {
        visibility: hidden;
    }
    52% {
        visibility: visible;
    }
    100% {
        visibility: visible;
    }
}

.maskimg-wrap {
    display: inline-block;
    position: relative;
    z-index: 1;
}

.maskimg-wrap .maskimg-inner {
    position: relative;
    visibility: hidden;
    overflow: hidden;
}

.maskimg-wrap .maskimg-inner::after {
    content: "";
    background: #f1f1f1;
    width: 100vw;
    height: 100vh;
    position: absolute;
    left: 0;
    top: 0;
    transform-origin: left bottom;
    transform: scale(0, 1);
    transition: all 0.2s cubic-bezier(0.55, 0.055, 0.675, 0.19) 0s;
    visibility: visible;
}

.maskimg-wrap .maskimg-inner.start {
    animation-name: animateimg-content;
    animation-duration: 1.5s;
    animation-timing-function: ease;
    animation-delay: 0s;
    animation-iteration-count: 1;
    animation-direction: normal;
    animation-fill-mode: both;
    animation-play-state: running;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

.maskimg-wrap .maskimg-inner.start::after {
    animation-name: animateimg-panel;
    animation-duration: 1.5s;
    animation-timing-function: ease;
    animation-delay: 0s;
    animation-iteration-count: 1;
    animation-direction: normal;
    animation-fill-mode: both;
    animation-play-state: running;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    transform: skewX(60deg);
}

.masktext-wrap {
    display: inline-block;
}

.masktext-wrap .masktext-inner {
    position: relative;
    visibility: hidden;
}

.masktext-wrap .masktext-inner::after {
    content: "";
    background: #4a4a4a;
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    transform-origin: left top;
    transform: scale(0, 1);
    transition: all 0.3s ease 0s;
    visibility: visible;
}

.masktext-wrap .masktext-inner.start {
    animation-name: animate-content;
    animation-duration: 1.5s;
    animation-timing-function: ease;
    animation-delay: 0s;
    animation-iteration-count: 1;
    animation-direction: normal;
    animation-fill-mode: both;
    animation-play-state: running;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

.masktext-wrap .masktext-inner.start::after {
    animation-name: animate-panel;
    animation-duration: 1.5s;
    animation-timing-function: ease;
    animation-delay: 0s;
    animation-iteration-count: 1;
    animation-direction: normal;
    animation-fill-mode: both;
    animation-play-state: running;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

.sa {
    will-change: opacity;
    opacity: 0;
    transition: opacity 1s;
}

.sa.show {
    opacity: 1;
    /* transform: none; */
}

.sa--up {
    /* transform: translate(0, 100px); */
}

.header {
    position: fixed;
    top: 0;
    z-index: 3;
    height: 104px;
    width: 100%;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

@media screen and (max-width: 1023px) {
    .header {
        padding: 20px 0;
        height: 64px;
    }
}

.header__inner {
    max-width: 1024px;
    width: 100%;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

@media screen and (max-width: 1023px) {
    .header__inner {
        align-items: unset;
    }
}

.header__logo {
    width: 164px;
}

.header__logo:hover {
    opacity: 0.6;
}

.header__list {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 780px;
    max-width: 100%;
}

.header__list-item a {
    font: 400 1.9rem/23px "Josefin Sans", serif;
    font-size: 1.6rem;
    font-weight: 500;
    letter-spacing: 0.08em;
    display: block;
    position: relative;
    box-sizing: border-box;
    transition: transform 0.3s;
    color: #4a4a4a;
    position: relative;
}

.header__list-item a:hover {
    color: #4a4a4a;
    opacity: 1;
    height: 103px;
}

.header__list-item a:hover:before {
    transform: rotateX(0) scaleY(1);
    font-family: "Noto Sans JP";
}

.header__list-item a:before {
    content: attr(data-ja);
    white-space: pre;
    display: -ms-flexbox;
    display: flex;
    align-items: center;
    justify-content: center;
    transform-origin: center;
    transform: rotateX(-90deg) scaleY(0);
    transition: transform 0.3s;
    transform-style: preserve-3d;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    box-sizing: border-box;
    z-index: 3;
}

.header__list-item a:after {
    position: absolute;
    left: 0;
    content: "";
    width: 100%;
    height: 4px;
    border-bottom: 2px solid #4a4a4a;
    transform: scale(0, 1);
    transform-origin: left top;
    transition: transform 0.3s;
    z-index: -1;
}

.header__list-item a:hover:after {
    transform: scale(1, 1);
    bottom: -1px;
}

@media screen and (min-width: 1024px) {
    .header__list-item+li {
        margin-left: 30px;
    }
}

.header__list-item span.en {
    display: block;
    transform-origin: 50% 0;
    transform-style: preserve-3d;
    transition: transform 0.3s;
    padding: 40px 0;
}

.header__list-item span.spjp {
    display: none;
}

.header__list-item.onhover {
    opacity: 1;
}

.header__list-item.onhover .en {
    color: #fff;
    opacity: 0;
}

.header__list .recruit__item {
    width: 180px;
    font-size: 1.6rem;
    border: 1px solid #4a4a4a;
    text-align: center;
    height: 50px;
    cursor: pointer;
    overflow: hidden;
}

.header__list .recruit__item a {
    letter-spacing: 0.04em;
    line-height: 52px;
    transition: all 0.3s;
    overflow: hidden;
    position: relative;
}

.header__list .recruit__item a:before,
.header__list .recruit__item a:after {
    position: absolute;
    display: block;
    content: "";
    width: 100%;
    height: 100%;
    background-color: #4a4a4a;
    top: 0;
    left: -100%;
    z-index: -1;
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
}

.header__list .recruit__item a:hover {
    opacity: 1;
    color: #fff !important;
    border-bottom: none !important;
}

.header__list .recruit__item a:hover::after {
    top: 0;
    left: 0;
}

@media screen and (max-width: 1023px) {
    .header__list .recruit__item a {
        line-height: initial;
        display: table;
        width: 100%;
        height: 100%;
    }
    .header__list .recruit__item a .en {
        display: table-cell;
        vertical-align: middle;
    }
}

.header__list .recruit__item a .en {
    padding: 0;
    opacity: 1;
}

.header__toggle {
    display: none;
}

.header .current {
    text-align: center;
    font-family: "Noto Sans JP";
    font-weight: initial;
}

.header .current:before {
    content: attr(data-ja);
    transform: initial;
    opacity: 0.5;
}

.header .current:hover:before {
    transform: rotateX(0) scaleY(1);
}

.header .current:hover:after {
    transform: rotate(45deg);
    bottom: 20px;
}

.header .current .en {
    opacity: 0 !important;
}

.header .current:after {
    content: "";
    width: 10px;
    height: 10px;
    background-color: #4a4a4a;
    display: block;
    text-align: center;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    transform: rotate(45deg);
    bottom: 20px;
    border-radius: 2px;
}

.header__list-item:not(.company) a.current {
    pointer-events: none;
}

@-moz-document url-prefix() {
    header {
        background-color: rgba(255, 255, 255, 0.7);
    }
}

.recruit__link:hover {
    color: #fff;
    display: block;
}

@media screen and (max-width: 1023px) {
    .header__logo {
        position: relative;
        width: 130px;
        z-index: 9999;
    }
    .header__nav {
        background-color: #fff;
        position: absolute;
        top: 0;
        left: -100%;
        width: 100vw;
        height: 100vh;
        padding-top: 64px;
        padding-bottom: 170px;
        transition: all ease 0.4s;
        margin-left: calc(((100vw - 100%) / 2) * -1);
        margin-right: calc(((100vw - 100%) / 2) * -1);
        z-index: -1;
        opacity: 0;
    }
    .header__nav.on {
        opacity: 1;
        left: 0;
        z-index: 9998;
    }
    .header__nav.on .header__list-item {
        transform: translate3d(0, 0, 0);
        transition: transform 500ms ease-out;
    }
    .header__nav.on .header__list-item:first-of-type {
        transition-delay: 0.2s;
    }
    .header__nav.on .header__list-item:nth-of-type(2) {
        transition-delay: 0.3s;
    }
    .header__nav.on .header__list-item:nth-of-type(3) {
        transition-delay: 0.4s;
    }
    .header__nav.on .header__list-item:nth-of-type(4) {
        transition-delay: 0.5s;
    }
    .header__nav.on .header__list-item:nth-of-type(5) {
        transition-delay: 0.6s;
    }
    .header__list {
        margin-top: 10%;
        margin-right: auto;
        margin-left: auto;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-align: center;
    }
    .header__list-item {
        margin-bottom: 56px;
        overflow: hidden;
        width: 100%;
        transform: translate3d(-100vw, 0, 0);
        transition: transform 0.15s ease-in;
    }
    .header__list-item .spjp {
        display: block !important;
        font-size: 1.2rem;
        font-weight: 500;
        text-align: center;
        letter-spacing: 0.1em;
    }
    .header__list-item:last-of-type {
        margin-bottom: 0;
        width: 80%;
    }
    .header__list-item span.en {
        padding: 0;
    }
    .header__toggle span {
        display: block;
        width: 28px;
        height: 2px;
        background-color: #707070;
        position: relative;
        transition: all ease 0.3s;
    }
    .header__toggle span:nth-of-type(2) {
        top: 8px;
    }
    .header__toggle span:last-of-type {
        top: 16px;
    }
    .header .recruit__item {
        height: 70px;
    }
    .header .current:after {
        content: none;
    }
    .header__togglearea {
        display: block;
        width: 64px;
        height: 64px;
        position: relative;
        text-align: center;
        transition: all ease 0.3s;
        position: absolute;
        top: 0;
        right: 0;
    }
    .header__toggle {
        display: block;
        position: relative;
        z-index: 9999;
        width: 28px;
        height: 16px;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
    }
    .header__toggle span {
        display: inline-block;
        position: absolute;
        background-color: #707070;
        left: 0;
        width: 28px;
        height: 2px;
        margin: 0 auto;
        transition: all 0.4s;
    }
    .header__toggle span:first-child {
        top: 0;
        animation: menu-bar01 0.75s forwards;
    }
    @keyframes menu-bar01 {
        0% {
            transform: translateY(8px) rotate(45deg);
        }
        50% {
            transform: translateY(8px) rotate(0);
        }
        100% {
            transform: translateY(0) rotate(0);
        }
    }
    .header__toggle span:first-child.open {
        animation: active-menu-bar01 0.75s forwards;
        top: -1px;
    }
    @keyframes active-menu-bar01 {
        0% {
            transform: translateY(0) rotate(0);
        }
        50% {
            transform: translateY(8px) rotate(0);
        }
        100% {
            transform: translateY(8px) rotate(45deg);
        }
    }
    .header__toggle span:nth-child(2) {
        top: 8px;
        transition: all 0.25s 0.25s;
    }
    .header__toggle span:nth-child(2).open {
        display: none;
    }
    .header__toggle span:last-of-type {
        animation: menu-bar02 0.75s forwards;
        bottom: 0;
    }
    @keyframes menu-bar02 {
        0% {
            transform: translateY(-8px) rotate(-45deg);
        }
        50% {
            transform: translateY(-8px) rotate(0);
        }
        100% {
            transform: translateY(0) rotate(0);
        }
    }
    .header__toggle span:last-child.open {
        animation: active-menu-bar03 0.75s forwards;
    }
    @keyframes active-menu-bar03 {
        0% {
            transform: translateY(0) rotate(0);
        }
        50% {
            transform: translateY(-8px) rotate(0);
        }
        100% {
            transform: translateY(-8px) rotate(-45deg);
        }
    }
    .header__list-item a:hover:after {
        content: none;
    }
    .header__list-item a:hover:before {
        content: none;
    }
    .header__list-item.onhover .en {
        opacity: 1;
        color: #4a4a4a;
    }
    .header__list-item:not(.recruit__item) a:hover {
        height: initial;
    }
}

@media screen and (max-width: 768px) {
    .header {
        padding-right: 20px;
        padding-left: 20px;
    }
}

.footer * {
    letter-spacing: 0.04em;
}

.footer * a:hover {
    opacity: 0.5;
}

.footer {
    position: relative;
}
.footer__cont {
    width: 100%;
    display: flex;
    justify-content: space-between;
}
.footer .pagetop {
    position: absolute;
    z-index: 2;
    top: -60px;
    right: 0;
    background-image: url(../images/pagetop.png);
    background-repeat: no-repeat;
    width: 120px;
    height: 120px;
    background-size: contain;
    text-align: center;
    cursor: pointer;
}

@media screen and (max-width: 1023px) {
    .footer .pagetop {
        display: none;
    }
}

.diamond {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.diamond p {
    text-align: center;
    font-weight: 500;
    color: #4a4a4a;
    z-index: 1;
    letter-spacing: 0;
    font-size: 14px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    line-height: 20px;
}

.diamond p:before {
    content: "";
    display: block;
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    position: relative;
    top: -3px;
    background-image: url(../images/common/ico_arrow_cm.svg);
}

.footer__upper {
    background-color: #6c6c6c;
}

.footer__upper-inner {
    display: flex;
    justify-content: space-between;
    max-width: 1024px;
    width: 100%;
    margin: 0 auto;
    position: relative;
}

.footer__list-item {
    width: 24%;
    line-height: 1;
}

.footer__upper a {
    color: #fff;
}

@media screen and (min-width: 1024px) {
    .corp__list {
        border-right: 1px solid #4a4a4a;
    }
}

@media screen and (max-width: 1023px) {
    .corp__list .footer__list-item:last-of-type {
        margin-bottom: 0;
    }
}

.corp__list,
.recruit__list {
    width: 50%;
    padding-top: 80px;
    padding-bottom: 64px;
}

@media screen and (max-width: 1023px) {
    .corp__list,
    .recruit__list {
        padding: 0;
        width: 100%;
    }
}

.corp__list .title,
.recruit__list .title {
    margin-bottom: 40px;
    display: block;
    font: 2rem/100px "Josefin Sans", "sans-serif";
    line-height: 20px;
    height: 22px;
    letter-spacing: 1.6px;
    font-size: 1.6rem;
    display: inline-block;
    color: #acacac;
    position: relative;
}

.corp__list .title:after,
.recruit__list .title:after {
    content: "";
    display: block;
    width: 0;
    height: 1px;
    position: absolute;
    bottom: -2px;
    left: 0;
    background-color: none;
    -webkit-transition: all 0.3s;
    -moz-transition: all 0.3s;
    -o-transition: all 0.3s;
    -ms-transition: all 0.3s;
    transition: all 0.3s;
    background-color: #acacac;
}

.corp__list .title:hover,
.recruit__list .title:hover {
    opacity: initial;
}

.corp__list .title:hover:after,
.recruit__list .title:hover:after {
    width: 100%;
}

@media screen and (min-width: 1024px) {
    .recruit__list {
        padding-left: 40px;
    }
}

.recruit__list ul .footer__list-item {
    width: initial;
}

.recruit__list-bottom {
    justify-content: unset !important;
    margin-top: -100px;
}

@media screen and (min-width: 1024px) {
    .recruit__list-bottom li:last-of-type {
        margin-left: 50px;
    }
}

.corp__list-ttl,
.recruit__list-ttl {
    font: 2rem/100px "Josefin Sans", "sans-serif";
    font-size: 1.6rem;
    line-height: initial;
    font-weight: 500;
}

.corp__list ul:not(.corp__list-sub),
.recruit__list ul:not(.recruit__list-sub) {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}

.corp__list-sub,
.recruit__list-sub {
    margin-top: 20px;
}

.corp__list-sub a,
.recruit__list-sub a {
    font-size: 1.4rem;
    font-weight: 300;
    letter-spacing: 0;
}

.footer .border {
    width: 240px;
    height: 1px;
    background-color: #a2a2a2;
    margin: 32px 0 44px;
}

@media screen and (min-width: 1024px) {
    .footer .border {
        display: none;
    }
}

.footer__jp {
    font-size: 1.2rem;
    font-family: "Hiragino Kaku Gothic ProN";
    font-weight: 300;
}

.footer__bottom {
    background-color: #4a4a4a;
    padding-bottom: 40px;
}

.footer__inner {
    max-width: 1024px;
    margin: 0 auto;
    color: #fff;
    padding-top: 42px;
}

.footer__inner a {
    color: #fff;
}

.footer__inner img {
    width: 92px;
}

@media screen and (max-width: 768px) {
    .footer__inner img {
        width: 72px;
    }
}

.footer__wrap {
    display: flex;
    justify-content: space-between;
    padding-bottom: 24px;
    border-bottom: 1px solid #fff;
    flex-wrap: wrap;
}

.footer__block {
    display: flex;
    align-items: center;
}

.footer__logo {
    padding-right: 43px;
}

.privacy__link {
    font: 2rem/100px "Josefin Sans", "sans-serif";
    font-size: 1.4rem;
    letter-spacing: 0.64px;
    display: flex;
    width: 100%;
    line-height: 1.4;
    justify-content: center;
}

.footer__contact {
    display: flex;
    font-size: 1.4rem;
}

img.privacy__pc {
    margin-right: 14px;
}

img.privacy__pc,
img.engage__pc {
    display: block;
    width: 90px;
    height: 86px;
	background: #fff;
    padding: 10px;
}

.privacy__sp,
.engage__sp {
    display: none;
}

.footer__copy {
    margin-top: 20px;
    text-align: center;
    color: #fff;
    display: inherit;
}
.footer__logo-sp {
    display: none;
}


@media screen and (max-width: 1023px) {
    .footer__upper {
        width: calc(100vw - 50px);
    }
    .footer__upper-inner {
        flex-direction: column;
        width: calc(100vw - 40px);
        margin-left: 20px;
        padding: 64px 0;
    }
    .footer__upper .footer__list-item {
        width: 100%;
        margin-bottom: 32px;
    }
    .footer__upper .corp__list ul:not(.corp__list-sub),
    .footer__upper .recruit__list ul:not(.recruit__list-sub) {
        flex-direction: column;
    }
    .footer__upper .corp__list-ttl,
    .footer__upper .recruit__list-ttl {
        display: flex;
        align-items: center;
        width: 200px;
        position: relative;
    }
    .footer__upper .toggle {
        position: relative;
        transition: all ease 0.3s;
    }
    .footer__upper .toggle:before {
        content: "";
        display: block;
        position: absolute;
        right: 60px;
        background-image: url(../images/ico_plus.svg);
        background-repeat: no-repeat;
        background-size: 16px;
        width: 16px;
        height: 16px;
    }
    .footer__upper .toggle .corp__list-sub,
    .footer__upper .toggle .recruit__list-sub {
        display: none;
    }
    .footer__upper .toggle.open:before {
        background-image: url(../images/ico-minus-gl.svg);
        height: 3px;
        top: 5px;
    }
    .footer__upper .toggle.open .corp__list-sub,
    .footer__upper .toggle.open .recruit__list-sub {
        display: block;
    }
    .footer__upper .corp__list-sub,
    .footer__upper .recruit__list-sub {
        padding-left: 34px;
    }
    .footer__upper .corp__list-sub a,
    .footer__upper .recruit__list-sub a {
        letter-spacing: 0.1em;
        line-height: 3;
    }
    .footer__upper .recruit__list-bottom {
        margin-top: 0;
    }
    .footer__upper .recruit__list-bottom .footer__list-item:last-of-type {
        margin-bottom: 0;
    }
    .footer__upper .footer__jp {
        margin-left: 16px;
    }
    .footer__upper .top__link {
        position: absolute;
        top: 100px;
        right: -30px;
        transform: rotate(90deg);
        display: block;
        color: #4a4a4a;
        letter-spacing: 0.064em;
        padding-left: 24px;
        background-image: url(../images/ico-arrowl-bk.svg);
        background-position: left top 37%;
        background-repeat: no-repeat;
    }
    .footer__bottom {
        height: 1000px;
        position: absolute;
        top: 325px;
        z-index: -1;
        padding-top: 440px;
        width: 100%;
    }
    @media screen and (max-width: 768px) {
        .footer__bottom {
           
        }
        
    }
    .footer__inner {
        width: calc(100vw - 40px);
        margin-right: 20px;
        margin-left: 20px;
        padding-top: 0;
        margin-top: 30px;
    }
    .footer__wrap {
        border-bottom: none;
        display: block;
        padding-bottom: 24px;
    }
    .footer__wrap-sp {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        font-size: 1.2rem;
    }
    .footer__logo {
        padding-right: 0;
        width: 100%;
        margin-bottom: 2.4rem;
    }
    .footer__logo img {
        margin: 20px auto;
    }
    .footer__address {
        font-size: 1.2rem;
        line-height: 1.5;
        margin-bottom: 2rem;
    }
    .footer__contact {
        font-size: 1.2rem;
    }
    .footer__copy {
        font-size: 10px;
        margin-top: 0;
        line-height: 1;
    }
    img.privacy__pc,
    img.engage__pc {
        display: none;
    }
    img.privacy__sp,
    img.engage__sp {
        display: block;
        width: 68px;
        height: 68px;
        background-color: #fff;
    }
    img.privacy__sp {
        margin-right: 8px;
    }
    .privacy__link {
        line-height: 1;
        font-size: 1.2rem;
        margin-top: 3rem;
        top: initial;
        left: initial;
    }
    .footer__logo-sp {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 100%;
    }
    .footer__wrap-pc {
        display: none;
    }
}

@media screen and (max-width: 416px) {
    .footer__bottom {
        
    }
}

.loading {
    display: none;
    width: 100vw;
    height: 100vh;
    background-color: #fff;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9999;
}

.loading video {
    width: 80%;
    margin: 0 auto;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

@media screen and (max-width: 768px) {
    .loading video {
        width: 80%;
    }
}

.TopPage,
.top .footer {
    display: none;
}

.TopContainer {
    position: relative;
}

.TopMv {
    position: sticky;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

@media screen and (max-width: 600px) {
    .TopMv {
        padding-top: 64px;
    }
}

.TopMv__inner {
    position: relative;
}

.TopMv__main {
    max-width: 100%;
    margin: 0 auto;
    text-align: center;
}

.TopMv__main video {
    width: 100vw;
    height: 100vh;
}

@media screen and (max-width: 600px) {
    .TopMv__main video {
        height: calc(90vh - 64px);
        object-fit: cover;
        object-position: center;
    }
}

.TopMv__main img {
    width: auto;
    margin: 0 auto;
}

.TopMv__scroll {
    position: relative;
    top: -80px;
}

.TopMv__scroll.forPC {
    margin: 0 auto;
    display: block;
}

@media screen and (max-width: 768px) {
    .TopMv__scroll.forPC {
        display: none;
    }
}

.TopMv__arrow {
    width: 7px;
    height: 67px;
    position: relative;
    display: table;
    margin: 0 auto;
    z-index: 2;
}

.TopMv__arrow:after {
    content: "SCROLL";
    z-index: 9999;
    background: #fff;
    letter-spacing: 0.08em;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.TopMv__arrow img {
    width: auto;
}

.TopMv .top_img {
    width: 100vw;
    position: relative;
}

@media screen and (max-width: 768px) {
    .TopMv .top_img {
        margin-bottom: 54px;
    }
}

.TopCover {
    position: relative;
    z-index: 2;
    background-color: #fff;
    padding-bottom: 183px;
}

@media screen and (max-width: 768px) {
    .TopCover {
        padding-top: 50px;
        width: 100vw;
        padding-right: 20px;
        padding-left: 20px;
    }
}

@media screen and (min-width: 769px) {
    .Topheading {
        display: flex;
        align-items: center;
    }
    .Topheading .jp__ttl {
        position: relative;
        bottom: 10px;
    }
}

.TopAbout {
    margin-bottom: 133px;
    background-color: #fff;
    margin-bottom: 280px;
}

@media screen and (max-width: 768px) {
    .TopAbout {
        margin-bottom: 100px;
    }
}

.TopAbout__inner {
    max-width: 1024px;
    width: 100%;
    position: relative;
    margin: 0 auto;
}

@media screen and (min-width: 769px) {
    .TopAbout__inner {
        padding-top: 160px;
    }
}

.TopAbout__inner .word2 .char1,
.TopAbout__inner .word2 .char2 {
    color: #dddddd;
}

.TopAbout__wrap {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

@media screen and (max-width: 1023px) {
    .TopAbout__wrap {
        flex-direction: column;
        justify-content: center;
        margin-top: 47px;
    }
}

.TopAbout__block-ttl {
    writing-mode: vertical-rl;
    -webkit-writing-mode: vertical-rl;
    -moz-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    -ms-writing-mode: vertical-rl;
    writing-mode: vertical-rl;
    text-orientation: upright;
    letter-spacing: 2px;
    margin: 144px auto 0;
    font-weight: 400;
    width: 100%;
    min-height: 100px;
    max-width: 200px;
    height: 360px;
}

@media screen and (max-width: 1023px) {
    .TopAbout__block-ttl {
        font-size: 3.2rem;
        line-height: 2.5 !important;
        height: auto;
        margin-top: 0;
        max-width: 300px;
    }
}

@media screen and (max-width: 768px) {
    .TopAbout__block-ttl {
        font-size: 2rem;
        max-width: 200px;
    }
}

.TopAbout__block-txt {
    letter-spacing: 0.04em;
    margin-top: 120px;
    line-height: 2.7;
}

@media screen and (max-width: 768px) {
    .TopAbout__block-txt {
        margin: 40px 0;
        font-size: 1.4rem;
    }
}

.TopAbout__block-btn {
    margin-top: 40px;
}

@media screen and (max-width: 768px) {
    .TopAbout__block-btn {
        margin-top: 40px;
    }
}

.TopAbout__block:first-of-type {
    width: 513px;
    max-width: 100%;
}

.TopAbout__img {
    position: absolute;
    right: -160px;
    top: 220px;
    width: 639px;
    height: 1308px;
}

@media screen and (max-width: 1280px) {
    .TopAbout__img {
        right: 0;
        top: 128px;
    }
}

@media screen and (max-width: 1023px) {
    .TopAbout__img {
        position: relative;
        top: unset;
        right: unset;
        margin-left: calc(((100vw - 100%) / 2) * -1);
        margin-right: calc(((100vw - 100%) / 2) * -1);
        margin-top: 50px;
    }
}

@media screen and (max-width: 768px) {
    .TopAbout__img {
        width: 375px;
        height: 767px;
    }
}

.TopAbout__img a {
    width: 405px;
    position: absolute;
}

@media screen and (max-width: 768px) {
    .TopAbout__img a {
        width: 237px;
    }
}

.TopAbout__img a:first-of-type {
    top: 0;
}

.TopAbout__img a:nth-of-type(2) {
    right: 0;
    top: 242px;
}

@media screen and (max-width: 768px) {
    .TopAbout__img a:nth-of-type(2) {
        top: 140px;
    }
}

.TopAbout__img a:nth-of-type(3) {
    top: 479px;
}

@media screen and (max-width: 768px) {
    .TopAbout__img a:nth-of-type(3) {
        top: 280px;
    }
}

.TopAbout__img a:last-of-type {
    bottom: 0px;
}

.TopNews {
    background-color: #fff;
    margin-bottom: 146px;
}

.TopNews__inner {
    max-width: 1024px;
    margin: 0 auto;
}

.TopNews .page__ttl {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
}

@media screen and (max-width: 768px) {
    .TopNews .page__ttl {
        display: block;
    }
}

.TopNews .jp__ttl {
    position: relative;
    display: flex;
    align-items: center;
}

@media screen and (min-width: 769px) {
    .TopNews .jp__ttl {
        margin-left: 40px;
    }
}

@media screen and (max-width: 768px) {
    .TopNews .jp__ttl {
        line-height: 1;
        margin-top: 8px;
    }
}

.TopNews .jp__ttl:before {
    content: "";
    display: block;
    width: 64px;
    height: 1px;
    background-color: #707070;
    margin-right: 16px;
}

@media screen and (max-width: 768px) {
    .TopNews .jp__ttl:before {
        display: none;
    }
}

.TopNews__item {
    padding: 22px 0;
    border-bottom: 1px solid #707070;
    position: relative;
}

@media screen and (min-width: 769px) {
    .TopNews__item a {
        display: flex;
gap: 100px;
    }
}

.TopNews__item time {
    color: #acacac;
    min-width: 110px;
}

@media screen and (min-width: 769px) {
    .TopNews__item time {
        position: relative;
        top: 3px;
    }
}

.TopNews__item .newicon {
    position: absolute;
    left: 162px;
    font-weight: bold;
}

.TopNews__btn {
    margin: 40px auto 0 auto;
}

.TopBusiness {
    position: relative;
    max-width: 1212px;
    width: 100%;
    margin: 0 auto 168px;
    background-color: #fff;
}

@media screen and (min-width: 1024px) {
    .TopBusiness {
        right: 94px;
    }
}

@media screen and (max-width: 1280px) {
    .TopBusiness {
        right: 0;
    }
}

@media screen and (min-width: 769px) {
    .TopBusiness .Topheading {
        top: -40px;
        left: 188px;
        position: absolute;
        z-index: 2;
    }
}

@media screen and (max-width: 1023px) {
    .TopBusiness .Topheading {
        left: 0;
    }
}

.TopBusiness .page__ttl {
    letter-spacing: 0.1em;
}

.TopBusiness .jp__ttl {
    position: relative;
    display: flex;
    align-items: center;
}

@media screen and (min-width: 1024px) {
    .TopBusiness .jp__ttl {
        margin-left: 40px;
    }
}

@media screen and (max-width: 1023px) {
    .TopBusiness .jp__ttl {
        line-height: 2;
    }
}

.TopBusiness .jp__ttl:before {
    content: "";
    display: block;
    width: 64px;
    height: 1px;
    background-color: #707070;
    margin-right: 16px;
}

@media screen and (max-width: 768px) {
    .TopBusiness .jp__ttl:before {
        content: none;
    }
}

@media screen and (min-width: 1024px) {
    .TopBusiness__wrap {
        display: flex;
        justify-content: space-between;
        align-items: flex-end;
    }
}

.TopBusiness__block {
    width: 720px;
    max-width: 100%;
}

@media screen and (max-width: 1280px) {
    .TopBusiness__block {
        max-width: 700px;
        width: 65vw;
    }
}

@media screen and (max-width: 1023px) {
    .TopBusiness__block {
        margin-bottom: 32px;
        margin-left: calc(((100vw - 100%) / 2) * -1);
        margin-right: calc(((100vw - 100%) / 2) * -1);
        max-width: 100vw;
        width: 100vw;
    }
    .TopBusiness__block img {
        width: 100vw;
    }
}

.TopBusiness__block:last-of-type {
    width: 418px;
}

@media screen and (max-width: 1023px) {
    .TopBusiness__block:last-of-type {
        width: initial;
    }
}

@media screen and (max-width: 768px) {
    .TopBusiness__block:last-of-type {
        width: 100%;
        margin: 0 auto;
    }
}

.TopBusiness__block:last-of-type .border {
    border-bottom: 1px solid #707070;
    display: block;
    margin-top: 37px;
}

@media screen and (max-width: 768px) {
    .TopBusiness__block:last-of-type .border {
        display: none;
    }
}

.TopBusiness__block:last-of-type p {
    margin-top: 40px;
    padding-bottom: 40px;
    font: 400 1.6rem/44px "Noto Sans JP", sans-serif;
}

@media screen and (max-width: 1023px) {
    .TopBusiness__block:last-of-type p {
        font-size: 1.4rem;
        margin-top: 24px;
        line-height: 1.8;
    }
}

.TopBusiness__block-ttl {
    font-size: 1.8rem;
}

@media screen and (max-width: 1023px) {
    .TopBusiness__block-ttl {
        font-size: 1.6rem;
    }
}

.TopJoin {
    max-width: 1212px;
    background-color: #fff;
    width: 100%;
    margin: 0 auto;
    position: relative;
}

@media screen and (min-width: 1024px) {
    .TopJoin {
        left: 94px;
    }
}

@media screen and (max-width: 1280px) {
    .TopJoin {
        left: 0;
    }
}

.TopJoin__inner .page__ttl {
    align-items: center;
    letter-spacing: 0.1em;
    flex-wrap: wrap;
}

@media screen and (min-width: 769px) {
    .TopJoin__inner .page__ttl {
        display: flex;
    }
}

.TopJoin__inner .word2 .char1,
.TopJoin__inner .word2 .char2 {
    color: #dddddd;
}

.TopJoin__inner .jp__ttl {
    position: relative;
    display: flex;
    align-items: center;
}

@media screen and (min-width: 769px) {
    .TopJoin__inner .jp__ttl {
        margin-left: 40px;
    }
}

@media screen and (max-width: 768px) {
    .TopJoin__inner .jp__ttl {
        line-height: 2;
    }
}

.TopJoin__inner .jp__ttl:before {
    content: "";
    display: block;
    width: 64px;
    height: 1px;
    background-color: #707070;
    margin-right: 16px;
}

@media screen and (max-width: 768px) {
    .TopJoin__inner .jp__ttl:before {
        content: none;
    }
}

.TopJoin__wrap {
    display: flex;
}

@media screen and (min-width: 769px) {
    .TopJoin__wrap {
        justify-content: space-between;
        align-items: flex-end;
    }
}

@media screen and (max-width: 1280px) {
    .TopJoin__wrap {
        align-items: flex-start;
    }
}

@media screen and (max-width: 1023px) {
    .TopJoin__wrap {
        flex-direction: column-reverse;
    }
}

.TopJoin__block {
    width: 463px;
    max-width: 100%;
}

@media screen and (max-width: 1023px) {
    .TopJoin__block {
        width: 100vw;
    }
}

.TopJoin__block h3 {
    font: 6.4rem/100px "Noto Serif JP", serif;
    font-size: 4rem;
    line-height: 1.6;
    letter-spacing: 0.16em;
    font-weight: 200;
    margin-bottom: 57px;
}

@media screen and (max-width: 1023px) {
    .TopJoin__block h3 {
        font-size: 2.8rem;
        line-height: 1.5;
        margin: 24px 0;
        text-align: justify;
    }
}

.TopJoin__block p {
    font: 400 1.6rem/44px "Noto Sans JP", sans-serif;
    letter-spacing: 0.04em;
}

@media screen and (max-width: 1023px) {
    .TopJoin__block p {
        font-size: 1.4rem;
        line-height: 1.8;
    }
}

.TopJoin__block:last-of-type {
    width: 720px;
}

@media screen and (max-width: 1023px) {
    .TopJoin__block:last-of-type {
        margin-left: calc(((100vw - 100%) / 2) * -1);
        margin-right: calc(((100vw - 100%) / 2) * -1);
        margin-bottom: 2.4rem;
        width: 100%;
    }
    .TopJoin__block:last-of-type img {
        width: 100vw;
    }
}

.TopJoin_btn {
    margin-top: 40px;
}

.company__inner {
    max-width: 1024px;
    width: 100%;
    margin: 0 auto;
    padding-top: 224px;
    padding-bottom: 165px;
}

@media screen and (max-width: 768px) {
    .company__inner {
        width: calc(100vw - 40px);
        margin-right: 20px;
        margin-left: 20px;
        padding-bottom: 80px;
        padding-top: 108px;
    }
}

.company__txt {
    margin-top: 4rem;
}

@media screen and (max-width: 768px) {
    .company__pagelist {
        display: none;
    }
}

.company__list {
    display: flex;
    flex-flow: row wrap;
    justify-content: space-between;
    margin-top: 82px;
}

@media screen and (max-width: 768px) {
    .company__list {
        justify-content: center;
    }
}

.company__list-item {
    margin-bottom: 40px;
    width: 304px;
}

.company__list-item:nth-child(5) .company__list-ttl {
    letter-spacing: normal;
}

@media screen and (max-width: 768px) {
    .company__list-item {
        width: 100%;
    }
}

.company__list-item a {
    display: flex;
    align-items: center;
    position: relative;
}

@media screen and (min-width: 769px) {
    .company__list-item a {
        flex-direction: column;
        align-items: unset;
    }
}

.company__list-item a.current {
    opacity: 0.2;
}

.company__list figure {
    box-shadow: 0px 0px 16px rgba(0, 0, 0, 0.1);
    border-radius: 6px;
    height: 216px;
    min-width: 144px;
    width: 100%;
}

@media screen and (max-width: 768px) {
    .company__list figure {
        width: 144px;
        margin-right: 16px;
        height: 112px;
    }
    .company__list figure img {
        width: 144px;
        height: 100%;
    }
}

.company__list .masktext_animation {
    margin-top: 24px;
}

.company__list .masktext_animation.jp-title {
    margin-top: 0;
}

.company__list-ttl {
    font: 500 6.4rem "Josefin Sans", "sans-serif";
    font-size: 2.4rem;
    font-weight: 500;
    line-height: initial;
}

.company__list-subttl {
    letter-spacing: 1px;
}

.credo .Company__sub-heading,
.profile .Company__sub-heading {
    color: #fff;
}

@media screen and (min-width: 769px) {
    .credo .back a,
    .profile .back a {
        color: #fff;
        background-image: url(../images/ico-arrowl-wh.svg);
    }
}

.Company__container .pagination__ttl {
    color: #acacac;
    font-size: 1.4rem;
    margin-bottom: 32px;
    letter-spacing: 0.1em;
    line-height: 1;
    background-image: url(../images/ico-pagearrow.svg);
    background-repeat: no-repeat;
    background-size: 41px 4px;
    background-position: top 30% left 100px;
    font-weight: 500;
}

.Company__container .pagination__item {
    background-color: #F5F5F5;
    width: 100vw;
    padding: 40px 20px;
    margin-bottom: 32px;
}

.Company__container .pagination__item-img {
    width: 144px;
    margin-right: 16px;
    box-shadow: 4px 4px 8px 0 rgba(0, 0, 0, 0.16);
}

.Company__container .pagination__item-ttl .en {
    font-size: 2rem;
    font-weight: bold;
}

.Company__container .pagination__item-ttl span {
    font-size: 1.4rem;
}

.Company__container .pagination__item .previous {
    display: flex;
    align-items: center;
}

@media screen and (max-width: 768px) {
    .Company__container .pagination.forSP {
        display: block;
        position: relative;
        z-index: 2;
    }
}

.Company__container .pagination__link {
    display: table;
    margin: 0 auto;
    text-align: center;
    background-image: url(../images/ico-arrowl-bk.svg);
    background-repeat: no-repeat;
    background-size: 12px 8px;
    background-position: top 40% left;
    padding-left: 24px;
    letter-spacing: 0.1em;
    font-weight: 500;
}

.philosophy {
    margin-bottom: 200px;
}

@media screen and (max-width: 768px) {
    .philosophy {
        margin-bottom: 80px;
    }
}

.philosophy__header {
    background-image: url("../images/philosophy_img.png");
}

.philosophy__ttl-area {
    max-width: 1024px;
    width: 100%;
    margin: 0 auto;
}

@media screen and (max-width: 768px) {
    .philosophy__ttl-area {
        padding: 0 20px;
    }
}

.philosophy__cnt {
    max-width: 1024px;
    width: 100%;
    margin: 0 auto 187px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

@media screen and (max-width: 768px) {
    .philosophy__cnt {
        flex-direction: column;
        align-items: center;
        width: calc(100vw - 40px);
        margin-right: 20px;
        margin-left: 0;
        margin-bottom: 80px;
    }
}

.philosophy__block {
    width: 50%;
}

@media screen and (max-width: 768px) {
    .philosophy__block {
        width: 100%;
    }
}

.philosophy__ttl {
    font-size: 6.4rem;
    line-height: 1.5;
    font-weight: 200;
    white-space: nowrap;
    max-width: 1024px;
    margin: 0 auto 24px;
}

@media screen and (min-width: 769px) {
    .philosophy__ttl .sm {
        font-size: 6rem;
    }
}

@media screen and (max-width: 768px) {
    .philosophy__ttl {
        font-size: 2.8rem;
        width: calc(100vw - 40px);
    }
}

.philosophy__ttl-en {
    font: 2rem/100px "Josefin Sans", "sans-serif";
    font-size: 1.8rem;
    line-height: 48px;
    letter-spacing: 0.02em;
    font-weight: 500;
    margin-bottom: 40px;
}

@media screen and (max-width: 768px) {
    .philosophy__ttl-en {
        font-size: 1.8rem;
    }
}

.philosophy__ttl-sub {
    font: 2rem/36px "Noto Sans JP", sans-serif;
    letter-spacing: 1.2px;
    font-size: 2.8rem;
    line-height: 48px;
    margin-bottom: 61px;
}

.philosophy__ttl-txtmain {
    font-size: 2.8rem;
    letter-spacing: 0.12em;
    line-height: 1.7;
    margin-bottom: 2.4rem;
}

@media screen and (max-width: 768px) {
    .philosophy__ttl-txtmain {
        font-size: 2rem;
    }
}

.philosophy__ttl-txt {
    letter-spacing: 0.1em;
    line-height: 2.2;
}

.philosophy__img {
    width: 100%;
    max-width: 578px;
    margin: 0 auto;
    position: relative;
    z-index: -1;
}

@media screen and (min-width: 769px) {
    .philosophy__img {
        bottom: 60px;
    }
}

@media screen and (max-width: 768px) {
    .philosophy__img {
        margin-bottom: 4rem;
    }
}

.philosophy .border {
    display: block;
    border-bottom: 1px solid #707070;
    width: 122px;
    margin-bottom: 40px;
}

@media screen and (max-width: 768px) {
    .philosophy .border {
        display: none;
    }
}

.philosophy .ci {
    background-color: #F5F5F5;
    max-width: 1400px;
    margin: 0 auto;
    width: 100%;
    padding-bottom: 73px;
}

@media screen and (max-width: 768px) {
    .philosophy .ci {
        padding: 0 20px 63px;
    }
}

.philosophy .ci__ttl {
    text-align: center;
    padding-top: 120px;
    font-size: 2rem;
    font-weight: 400;
    line-height: 250%;
    margin-bottom: 57px;
}

.philosophy .ci__ttl::first-line {
    font-size: 5.6rem;
}

.philosophy .ci__wrap {
    display: flex;
    justify-content: space-between;
    max-width: 1024px;
    width: 100%;
    margin: 0 auto;
}

@media screen and (max-width: 768px) {
    .philosophy .ci__wrap {
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }
}

@media screen and (max-width: 768px) {
    .philosophy .ci__wrap .ci__img:not(:last-of-type) {
        margin-bottom: 40px;
    }
}

@media screen and (min-width: 769px) {
    .philosophy .ci__wrap:first-of-type {
        margin-bottom: 82px;
    }
}

.philosophy .ci__wrap:first-of-type .ci__img {
    width: 48%;
    max-width: 100%;
}

@media screen and (max-width: 768px) {
    .philosophy .ci__wrap:first-of-type .ci__img {
        width: 100%;
    }
}

.philosophy .ci__wrap:first-of-type .ci__txt {
    width: 48%;
    max-width: 100%;
}

.philosophy .ci__wrap:last-of-type .ci__img:first-of-type {
    max-width: 100%;
}

@media screen and (min-width: 769px) {
    .philosophy .ci__wrap:last-of-type .ci__img:first-of-type {
        width: 40%;
    }
}

.philosophy .ci__wrap:last-of-type .ci__img:last-of-type {
    max-width: 100%;
}

@media screen and (min-width: 769px) {
    .philosophy .ci__wrap:last-of-type .ci__img:last-of-type {
        width: 50%;
    }
}

.philosophy .ci__link {
    text-decoration: underline;
}

.style {
    margin-bottom: 200px;
}

@media screen and (max-width: 768px) {
    .style {
        margin-bottom: 80px;
    }
}

.style__top {
    max-width: 1024px;
    margin: 0 auto;
    width: 100%;
    padding-bottom: 115px;
}

@media screen and (max-width: 768px) {
    .style__top {
        width: calc(100vw - 40px);
        margin: 0 auto;
    }
}

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

@media screen and (max-width: 768px) {
    .style__top-wrap {
        flex-direction: column-reverse;
        align-items: center;
    }
    .style__top-wrap img {
        margin-bottom: 40px;
    }
}

.style__top-wrap video {
    width: 45%;
    position: relative;
}

@media screen and (min-width: 769px) {
    .style__top-wrap video {
        bottom: 80px;
    }
}

@media screen and (max-width: 768px) {
    .style__top-wrap video {
        width: 100%;
        margin-bottom: 32px;
        bottom: 40px;
    }
}

.style__top-ttl {
    font-size: 28px;
    margin-bottom: 40px;
    letter-spacing: 0.12em;
    line-height: 1.5;
}

@media screen and (max-width: 768px) {
    .style__top-ttl {
        font-size: 20px;
    }
}

.style__top-desc {
    line-height: 2.75;
    width: 90%;
}

@media screen and (max-width: 768px) {
    .style__top-desc {
        width: 100%;
        line-height: 2.2;
    }
}

.style__block {
    max-width: 1024px;
    width: 100%;
    margin: 0 auto 187px;
    display: flex;
    justify-content: space-between;
}

@media screen and (max-width: 768px) {
    .style__block {
        flex-direction: column;
        align-items: center;
        width: calc(100vw - 40px);
        margin-right: 20px;
        margin-left: 20px;
    }
}

.style__cnt {
    width: 50%;
}

@media screen and (max-width: 768px) {
    .style__cnt {
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
    }
}

.style__cnt .border {
    display: block;
    border-bottom: 1px solid #707070;
    width: 122px;
    margin-bottom: 40px;
}

@media screen and (max-width: 768px) {
    .style__cnt .border {
        display: none;
    }
}

.style__ttl {
    font-size: 6.8rem;
    line-height: 1.5;
    font-weight: 200;
    white-space: nowrap;
    margin-bottom: 40px;
    max-width: 1024px;
    margin: 0 auto 40px;
}

@media screen and (min-width: 769px) {
    .style__ttl.forPC {
        display: block;
    }
}

@media screen and (max-width: 768px) {
    .style__ttl {
        font-size: 2.8rem;
        width: calc(100vw - 40px);
    }
    .style__ttl.forSP {
        display: block;
    }
}

.style__ttl-en {
    font: 2rem/100px "Josefin Sans", "sans-serif";
    font-size: 1.8rem;
    line-height: 48px;
    letter-spacing: 0.02em;
    font-weight: 500;
    margin-bottom: 40px;
}

@media screen and (max-width: 768px) {
    .style__ttl-en {
        width: 100%;
        font-size: 1.4rem;
    }
}

.style__ttl-txt {
    font: 400 1.6rem/44px "Noto Sans JP", sans-serif;
    letter-spacing: 0.1em;
}

@media screen and (max-width: 768px) {
    .style__ttl-txt {
        font-size: 1.4rem;
        line-height: 2.2;
    }
}

.style__img {
    width: 100%;
    max-width: 276px;
    position: relative;
}

@media screen and (min-width: 769px) {
    .style__img {
        bottom: 100px;
    }
}

@media screen and (max-width: 768px) {
    .style__img {
        width: 128px;
        margin: 0 auto 4rem;
        left: 12px;
    }
}

.style__img img.img__p {
    opacity: 0;
    animation: fadein-anim 2s linear forwards;
    width: auto;
}

@keyframes fadein-anim {
    50% {
        opacity: 0.5;
    }
    100% {
        opacity: 1;
    }
}

@media screen and (max-width: 768px) {
    .style__img img.img__p {
        width: 128px;
        margin: 0 auto;
    }
}

.style__img img.img__parts {
    position: absolute;
    left: 13px;
    width: auto;
}

.style__img img.img__parts:nth-child(2) {
    top: 0;
}

.style__img img.img__parts:nth-child(3) {
    top: 175px;
}

.style__img img.img__parts:nth-child(4) {
    top: 350px;
}

@media screen and (max-width: 768px) {
    .style__img img.img__parts {
        width: 84px;
        left: 3px;
    }
    .style__img img.img__parts:nth-child(3) {
        top: 80px;
    }
    .style__img img.img__parts:nth-child(4) {
        top: 162px;
    }
}

.style .value {
    max-width: 1400px;
    margin: 0 auto;
    width: 100%;
    padding: 0px 72px;
}

@media screen and (max-width: 768px) {
    .style .value {
        padding: 0 40px 63px;
    }
}

.style .value__ttl {
    text-align: center;
    padding-top: 120px;
    font-size: 2rem;
    font-weight: 400;
    line-height: 250%;
    margin-bottom: 57px;
}

@media screen and (max-width: 768px) {
    .style .value__ttl {
        font-size: 1.6rem;
        margin-bottom: 36px;
        line-height: 190%;
    }
}

.style .value__ttl .jp {
    font-weight: 300;
}

.style .value__ttl::first-line {
    font-size: 5.6rem;
}

@media screen and (max-width: 768px) {
    .style .value__ttl::first-line {
        font-weight: bold;
        font-size: 2.8rem;
    }
}

@media screen and (max-width: 768px) {
    .style .value__img {
        width: auto;
        margin: 0 auto 50px;
    }
    .style .value__img.forSP {
        display: block;
    }
}

@media screen and (max-width: 768px) {
    .style .value video {
        margin-left: calc(((100vw - 100%) / 2) * -1);
        margin-right: calc(((100vw - 100%) / 2) * -1);
        width: 100vw;
    }
}

@media screen and (max-width: 768px) {
    .style .value__txt {
        margin: 0 auto;
        font-weight: bold;
        font-size: 1.6rem;
    }
    .style .value__txt.forSP {
        display: table;
    }
    .style .value__txt .num {
        color: #acacac;
        font-size: 2.4rem;
        margin-right: 16px;
        font-weight: 500;
        letter-spacing: 0.1em;
    }
}

.style .ourstyle__titlearea {
    margin-bottom: 96px;
    text-align: center;
}

@media screen and (max-width: 768px) {
    .style .ourstyle__titlearea {
        margin-bottom: 40px;
    }
}

.style .ourstyle__titlearea .ourstyle__title {
    display: block;
    text-align: center;
    font-size: 64px;
    font-weight: 500;
    margin-bottom: 36px;
    letter-spacing: 0.16em;
}

@media screen and (max-width: 768px) {
    .style .ourstyle__titlearea .ourstyle__title {
        font-size: 28px;
        margin-bottom: 8px;
    }
}

.style .ourstyle__titlearea .jp {
    font-size: 28px;
    font-weight: 300;
    letter-spacing: 0.1em;
    display: block;
}

@media screen and (max-width: 768px) {
    .style .ourstyle__titlearea .jp {
        font-size: 16px;
    }
}

@media screen and (max-width: 768px) {
    .credo {
        padding-bottom: 80px;
    }
}

.credo__catch {
    margin-bottom: 80px;
    line-height: 2.7;
}

@media screen and (min-width: 769px) {
    .credo__catch {
        text-align: center;
    }
}

@media screen and (max-width: 768px) {
    .credo__catch {
        width: calc(100vw - 40px);
        margin-right: 20px;
        margin-left: 20px;
    }
}

.credo__imgarea {
    max-width: 1400px;
    width: 100%;
    margin: 0 auto;
}

.credo__img {
    max-width: 1088px;
    margin: 0 auto;
    text-align: center;
}

.credo__img-sp {
    width: 80%;
    margin: 0 auto;
}

@media screen and (min-width: 769px) {
    .credo__img.forPC {
        display: block !important;
    }
}

@media screen and (max-width: 768px) {
    .credo__img.forSP {
        padding: 0 20px;
        display: inline-block;
        background-color: #f5f5f5;
        padding: 50px 0;
    }
}

.credo__item {
    text-align: center;
    margin-bottom: 73px;
}

.credo__item:first-of-type {
    margin-top: 4rem;
}

.credo__item:before {
    content: "";
    display: block;
    width: 40px;
    height: 1px;
    background: #707070;
    margin: 0 auto 28px;
}

.credo__item-ttl {
    font-size: 2.4rem;
    font-weight: 500;
    line-height: 1.3;
    margin-bottom: 2rem;
}

@media screen and (max-width: 768px) {
    .credo__item-ttl {
        font-weight: 100;
    }
}

.ceo {
    position: relative;
    padding-bottom: 280px;
    z-index: 2;
    background-color: #fff;
    /* 今井社長 ceo */
}

@media screen and (max-width: 768px) {
    .ceo {
        padding-bottom: 40px;
    }
}

.ceo__inner {
    max-width: 1400px;
    width: 100%;
    margin: 0 auto;
}

@media screen and (max-width: 768px) {
    .ceo__inner {
        width: calc(100vw - 40px);
        margin-right: 20px;
        margin-left: 20px;
    }
}

.ceo__ttl {
    max-width: 1024px;
    margin: 0 auto 37px;
    width: 100%;
}

.ceo__ttl img {
    margin: 0 auto;
}

.ceo__ttl-en {
    font: 2rem/100px "Josefin Sans", "sans-serif";
    font-size: 1.8rem;
    font-weight: 500;
    letter-spacing: 0.02em;
    width: 1024px;
    margin: 0 auto 37px;
    max-width: 100%;
    line-height: 1;
}

.ceo__img {
    position: relative;
    z-index: 1;
}

@media screen and (max-width: 768px) {
    .ceo__img {
        margin-left: calc(((100vw - 100%) / 2) * -1);
        margin-right: calc(((100vw - 100%) / 2) * -1);
        margin-bottom: 4rem;
    }
    .ceo__img img {
        width: 100vw;
    }
}

.ceo__message {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: flex-end;
    margin-top: -430px;
    margin-right: auto;
    margin-left: auto;
    max-width: 1217px;
}

@media screen and (max-width: 768px) {
    .ceo__message {
        flex-direction: column;
        align-items: center;
        margin-top: 0;
    }
}

.ceo__message-txt {
    white-space: pre-line;
    background-color: rgba(255, 255, 255, 0.9);
    width: 632px;
    padding: 68px 60px 56px 60px;
    max-width: 100%;
    box-shadow: 8px 8px 24px rgba(0, 0, 0, 0.16);
}

@media screen and (max-width: 768px) {
    .ceo__message-txt {
        box-shadow: none;
        padding: 0;
        margin-bottom: 4rem;
        font-size: 1.4rem;
    }
}

.ceo__message-info {
    width: 36.6%;
    margin-left: 73px;
    position: relative;
}

@media screen and (max-width: 768px) {
    .ceo__message-info {
        width: 100%;
        margin-left: 0;
        bottom: unset;
    }
}

.ceo__sign {
    display: flex;
    align-items: center;
    letter-spacing: 0;
    white-space: nowrap;
}

@media screen and (max-width: 768px) {
    .ceo__sign {
        flex-direction: column;
        align-items: flex-end;
    }
}

.ceo__sign .name {
    margin-left: 36px;
}

@media screen and (max-width: 768px) {
    .ceo__sign .name {
        width: 190px;
    }
}

.ceo__profile {
    margin-top: 36px;
}

.ceo__profile-ttl {
    font-family: 500 6.4rem "Josefin Sans", "sans-serif";
    font-size: 2.4rem;
    font-weight: 500;
}

.ceo__profile-txt {
    margin-top: 28px;
    border-left: 1px solid #707070;
    padding-left: 30px;
    font-size: 1.2rem;
}

.ceo .border {
    display: block;
    border-bottom: 1px solid #707070;
    width: 122px;
    margin-top: 40px;
}

.ceo .svgall.name .st0 {
    fill: #4a4a4a;
}

.ceo .svgall.name .st1 {
    fill: none;
    stroke: #ffffff;
    stroke-width: 18;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-miterlimit: 10;
}

.ceo .svgall.name .st2 {
    fill: none;
    stroke: #ffffff;
    stroke-width: 19;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-miterlimit: 10;
}

.ceo .svgall.name .st3 {
    fill: none;
    stroke: #ffffff;
    stroke-width: 12;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-miterlimit: 10;
}

.ceo .svgall.name .st4 {
    fill: none;
    stroke: #ffffff;
    stroke-width: 17;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-miterlimit: 10;
}

.ceo .svgall.name .st5 {
    fill: none;
    stroke: #ffffff;
    stroke-width: 20;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-miterlimit: 10;
}

.ceo .svgall.name svg {
    margin-top: 10px;
    height: 62px;
}

@media screen and (max-width: 768px) {
    .ceo .svgall.name svg {
        width: 190px;
    }
}

.profile {
/*     padding-bottom: 200px; */
}

@media screen and (max-width: 768px) {
    .profile {
        padding-bottom: 80px;
    }
}

.profile__upper {
    display: flex;
    justify-content: space-between;
    max-width: 1024px;
    width: 100%;
    margin: 0 auto 0;
}

@media screen and (max-width: 768px) {
    .profile__upper {
        flex-direction: column;
        justify-content: center;
        align-items: center;
        max-width: calc(100vw - 40px);
        margin-right: 20px;
        margin-left: 20px;
    }
}

.profile__upper .profileTable {
    max-width: 560px;
    position: relative;
    bottom: 50px;
}

.profile__upper .profileTable table {
    border-collapse: collapse;
    width: 100%;
}

.profile__upper .profileTable tr {
    border-bottom: 1px solid #707070;
}

.profile__upper .profileTable tr:first-of-type th,
.profile__upper .profileTable tr:first-of-type td {
    padding-top: 0;
}

.profile__upper .profileTable th,
.profile__upper .profileTable td {
    padding: 20px 0;
    text-align: left;
    font-weight: normal;
    font-size: 1.4rem;
}

.profile__upper .profileTable th {
    width: 85px;
    vertical-align: top;
    color: #acacac;
    font-size: 1.4rem;
}

.profile__upper .profileTable td {
    padding-left: 1rem;
    display: block;
}

.profile__upper .profileTable td.address a {
    text-decoration: none;
    border-bottom: none;
}

.profile__upper .profileTable td.fax a {
    text-decoration: none;
    border-bottom: none;
}

.profile__upper .profileTable td.tel a {
    border-color: #4a4a4a;
    margin-left: 0;
}

.profile__upper .profileTable a {
    border-bottom: 1px solid #1a0dab;
    font-size: 1.4rem;
    margin-left: 10px;
}

.profile__upper .profileTable .company td {
    padding-bottom: 5px;
    padding-top: 5px;
}

.profile__upper .profileTable .company td:first-of-type {
    padding-top: 20px;
}

.profile__upper .profileTable .company td:last-of-type {
    padding-bottom: 22px;
}

.profile__upper .profileTable .partner td a {
    border-bottom: none;
    font-size: 1.6rem;
}

.profile__upper .profileTable .partner td img {
    width: 200px;
    margin-right: 30px;
}

.profile__upper .profileImg {
    max-width: 400px;
    width: 100%;
}

@media screen and (max-width: 768px) {
    .profile__upper .profileImg {
        display: flex;
        flex-direction: column;
        align-items: center;
    }
}

.profile__upper .profileImg .map {
    margin-top: 25px;
}

.profile__upper .profileImg #gmap {
    width: 400px;
    height: 429px;
}


@media screen and (max-width: 768px) {
    .profile__upper .profileImg #gmap iframe{
        width: 100vw;
		  margin-left: calc(((100vw - 100%) / 2) * -1);
        margin-right: calc(((100vw - 100%) / 2) * -1);
    }
	.profile__upper .profileImg #gmap {
		
	}
}

.profile__upper .profile__building {
    margin-bottom: 40px;
}

@media screen and (max-width: 768px) {
    .profile__upper .profile__map {
        margin-bottom: 103px;
    }
    .profile__upper .profile__building {
        margin-bottom: 10px;
    }
    .profile__upper .profile__building img {
        width: 100vw;
        margin-left: calc(((100vw - 100%) / 2) * -1);
        margin-right: calc(((100vw - 100%) / 2) * -1);
    }
}

.profile__bottom {
    margin-top: 80px;
    max-width: 1400px;
    margin: 0 auto;
    width: 100%;
}

.profile__bottom img {
    display: block;
    margin-bottom: 20px;
}

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

.profile__bottom-wrap img {
    width: 49.5%;
}

@media screen and (max-width: 768px) {
    .activities {
        padding-bottom: 120px;
    }
}

.activities__header {
    background-image: url("../images/activities__img.png");
    background-repeat: no-repeat;
}

.activities__inner {
    max-width: 1024px;
    margin: 0 auto;
}

@media screen and (max-width: 768px) {
    .activities__inner {
        width: calc(100vw - 40px);
        margin-right: 20px;
        margin-left: 20px;
    }
}

.activities__catch {
    margin-bottom: 120px;
    line-height: 2.7;
    text-align: center;
}

@media screen and (max-width: 768px) {
    .activities__catch {
        margin-bottom: 2.4rem;
        text-align: left;
    }
}

.activities__list {
    display: flex;
    flex-flow: row wrap;
    align-items: center;
    justify-content: space-between;
}

@media screen and (max-width: 768px) {
    .activities__list {
        align-items: unset;
    }
}

.activities__list-bottom {
    max-width: 1090px;
    width: 100%;
    margin: 80px auto 0;
}

.activities__item {
    max-width: 310px;
    width: 100%;
    border-right: 1px solid #707070;
    border-bottom: 1px solid #707070;
    margin-top: 20px;
    padding: 32px 34px 36px 20px;
    position: relative;
}

@media screen and (max-width: 768px) {
    .activities__item {
        border-right: none;
        max-width: 100%;
        padding-right: 0;
        padding-left: 0;
    }
}

.activities__item:first-of-type figure img {
    width: 72px;
}

.activities__item figure {
    margin: 0 auto 10px;
    height: 66px;
}

.activities__item figure img {
    width: auto;
    max-width: 80%;
    margin: 0 auto;
}

@media screen and (max-width: 768px) {
    .activities__item figure {
        width: 75%;
        height: auto;
    }
}

.activities__item-ttl {
    text-align: center;
    margin-top: 24px;
    margin-bottom: 22px;
    font-weight: bold;
    font-size: 1.4rem;
    position: relative;
    height: 20px;
    line-height: 1;
}

.activities__item-ttl:before {
    content: "";
    display: block;
    width: 8px;
    height: 12px;
    position: absolute;
    right: 0;
    top: 41%;
    transform: translateY(-50%);
    background-image: url(../images/ico-arrow-bk.svg);
    background-size: 8px 12px;
    background-repeat: no-repeat;
}

.activities__item-txt {
    margin-top: 22px;
    letter-spacing: 0;
}

.activities__item a {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
}

.activities__menu {
    width: 320px;
    margin-bottom: 100px;
    text-align: center;
    display: flex;
    flex-direction: column;
    position: relative;
}

@media screen and (max-width: 768px) {
    .activities__menu {
        width: 47%;
        height: auto;
        margin-bottom: 36px;
        margin-top: 0;
        justify-content: start;
    }
    .activities__menu:first-of-type {
        margin-top: 0;
    }
}

.activities__menu figure {
    margin: 0 auto 32px;
    position: relative;
    height: 156px;
}

@media screen and (max-width: 768px) {
    .activities__menu figure {
        border: 1px solid #acacac;
        width: 100%;
        height: 80px;
        margin-bottom: 12px;
    }
}

.activities__menu figure img {
    width: auto;
    margin: 0 auto;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

@media screen and (max-width: 768px) {
    .activities__menu figure img {
        width: calc(100% - 10px);
        height: 80%;
        object-fit: contain;
    }
}

.activities__menu a {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    cursor: pointer;
}

.activities__menu-ttl {
    margin-top: auto;
    text-align: center;
}

@media screen and (max-width: 768px) {
    .activities__menu-ttl {
        font-size: 10px;
        margin-top: 0;
    }
}

.activities__menu:hover img {
    opacity: 0.6;
}

.actchild .Company__sub {
    position: sticky;
    top: 104px;
    left: 0;
    width: 100%;
}

.actchild .Company__sub-top {
    margin-bottom: 80px;
    background-image: url(../images/actchild_top@2x.png);
    height: 400px;
    background-repeat: no-repeat;
    background-size: cover;
    z-index: 1;
}

@media screen and (max-width: 768px) {
    .actchild .Company__sub-heading {
        height: 200px;
    }
}

.actchild .Company__sub-ttl {
    position: relative;
    height: 100%;
}

.actchild__cover {
    position: relative;
    background-color: #fff;
    padding-top: 80px;
}

.actchild * p {
    line-height: 2.2;
}

.actchild__img {
    width: auto;
    margin: 0 auto;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.actchild__ttl {
    font-size: 4rem;
    letter-spacing: 0.16rem;
    font-weight: 100;
    text-align: center;
    margin-bottom: 80px;
    line-height: 2;
}

@media screen and (max-width: 768px) {
    .actchild__ttl {
        font-size: 2rem;
    }
}

.actchild__list {
    padding-bottom: 96px;
    border-bottom: 1px solid #707070;
    margin-bottom: 28px;
}

.actchild__list li {
    margin-bottom: 80px;
}

.actchild__list li:last-of-type {
    margin-bottom: 0;
}

.actchild__list a {
    color: #1a0dab;
}

.actchild__list a:hover {
    text-decoration: underline;
}

.actchild__list a:visited {
    color: #660099;
}

.actchild__list-ttl {
    display: inline-block;
    font-weight: bold;
    font-size: 2rem;
    margin-left: 26px;
    margin-bottom: 40px;
}

.actchild__listchild {
    padding-left: 0;
}

.actchild__listchild-ttl {
    display: inline-block;
    font-weight: bold;
    margin-left: 14px;
}

.actchild__listchild li {
    counter-increment: numberchild 1 !important;
    margin-bottom: 40px;
}

.actchild__listchild li:before {
    content: counter(numberchild) "." !important;
}

.actchild__date {
    text-align: right;
}

.actchild__inner {
    max-width: 1024px;
    width: 100%;
    margin: 0 auto;
}

@media screen and (max-width: 768px) {
    .actchild__inner {
        width: calc(100vw - 40px);
    }
}

.actchild__inner a {
    text-decoration: underline;
    color: #1a0dab;
    word-break: break-all;
}

.actchild__inner a:before {
    content: "▶";
    margin-right: 1rem;
    color: #6c6c6c;
    font-size: 1.2rem;
    line-height: 1.6rem;
    position: relative;
    top: -1px;
    display: inline-block;
    text-decoration: none;
}

.actchild__inner h3 {
    font-size: 2rem;
    font-weight: 500;
    line-height: 1.5em;
    letter-spacing: 0.1em;
    margin-top: 8rem;
    padding: 1rem 2rem;
    border-left: 4px solid #4a4a4a;
}

.actchild__inner h4 {
    font-size: 1.8rem;
    line-height: 1.25em;
    letter-spacing: 0.1em;
    margin-top: 4rem;
    padding: 1rem 2rem;
    border-left: 4px solid #ddd;
}

.actchild__inner p {
    margin-top: 1.6rem;
    line-height: 1.9;
}

.actchild__inner .b {
    font-weight: bolder;
    letter-spacing: 0.08em;
}

.actchild__inner img {
    margin: 20px auto;
    text-align: center;
    width: 100%;
    height: auto;
}

.actchild__inner blockquote {
    margin: 0;
    font-style: italic;
    padding: 0.5rem 2rem 2rem;
    background-color: #f5f5f5;
}

.actchild__inner cite {
    font-size: 1.2rem;
    color: #6c6c6c;
}

.actchild__inner cite a {
    text-decoration: underline;
    font-size: 1.2rem;
    color: #6c6c6c;
}

#act19 img {
    width: 170px;
}

.business .st0 {
    fill: none;
    stroke: #4a4a4a;
    stroke-width: 6;
    stroke-miterlimit: 10;
}

.business .st1 {
    fill: none;
}

.business .st2 {
    fill: #4a4a4a;
}

.business .st3 {
    enable-background: new;
}

.business .st4 {
    fill: none;
    stroke: #4a4a4a;
    stroke-width: 5;
}

.business .st5 {
    fill: none;
    stroke: #fff;
    stroke-width: 28;
    stroke-miterlimit: 10;
}

.business .st6 {
    fill: none;
    stroke: #fff;
    stroke-width: 32;
    stroke-miterlimit: 10;
}

.business .st7 {
    fill: none;
    stroke: #fff;
    stroke-width: 11;
    stroke-miterlimit: 10;
}

.business .st8 {
    fill: none;
    stroke: #fff;
    stroke-width: 30;
    stroke-miterlimit: 10;
}

.business .svgall {
    width: 90%;
}

.business .mask_animation {
    position: absolute;
    right: 0;
    bottom: 58px;
    width: 240px;
    margin: 0 0 0 auto;
}

@media screen and (max-width: 768px) {
    .business .mask_animation {
        display: none;
    }
}

.business .img__wrap {
    display: flex;
    max-width: 1024px;
    position: relative;
    margin: 0 auto;
}

.business .img__wrap img {
    width: auto;
    position: absolute;
}

.business .img__wrap img:nth-of-type(1) {
    left: 0;
}

.business .img__wrap img:nth-of-type(2) {
    left: 260px;
}

@media screen and (max-width: 768px) {
    .business .img__wrap {
        display: none;
    }
}

.business__heading {
    text-align: center;
    margin-bottom: 4rem;
}

.business__heading h3 {
    font-size: 5.6rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    line-height: 1.5;
}

@media screen and (max-width: 768px) {
    .business__heading h3 {
        font-size: 28px;
        font-weight: bold;
    }
}

.business__heading span {
    display: inline-block;
    font-size: 2.8rem;
    letter-spacing: 0.1em;
    font-weight: 300;
    line-height: 1.5;
}

@media screen and (max-width: 768px) {
    .business__heading span {
        font-size: 1.6rem;
        line-height: 1.5;
    }
}

.business__ttl {
    max-width: 1024px;
    width: 100%;
    margin: 0 auto;
    padding-bottom: 80px;
    padding-top: 228px;
}

@media screen and (max-width: 768px) {
    .business__ttl {
        padding-bottom: 40px;
        padding-left: 20px;
        padding-top: 110px;
    }
}

.business__ttl .page__ttl-jp {
    font-weight: 300;
}

.business__top {
    background-image: url("../images/business_top.png");
    background-size: cover;
    background-repeat: no-repeat;
    padding: 120px 0;
    margin-bottom: 120px;
}

@media screen and (max-width: 768px) {
    .business__top {
        padding: 4rem 0 5.4rem;
    }
}

.business__top-inner {
    max-width: 1024px;
    width: 100%;
    margin: 0 auto;
}

@media screen and (max-width: 768px) {
    .business__top-inner {
        width: calc(100vw - 40px);
        margin-right: 20px;
        margin-left: 20px;
    }
}

.business__top-heading {
    text-align: center;
    letter-spacing: 16px;
    margin-bottom: 120px;
}

@media screen and (max-width: 768px) {
    .business__top-heading {
        margin-bottom: 4rem;
    }
}

.business__top-ttl {
    font: bold 6.4rem/120px "Josefin Sans", "sans-serif";
    font-size: 5.6rem;
    font-weight: 500;
    letter-spacing: 0.16em;
    line-height: 1;
    margin-bottom: 16px;
}

@media screen and (max-width: 768px) {
    .business__top-ttl {
        font-size: 3.2rem;
        font-weight: bold;
    }
}

.business__top-ttl .color {
    color: #dddddd;
    font-size: inherit;
    font-family: inherit;
    font-weight: 500;
}

.business__top-txt {
    font: 2.8rem/48px "Noto Serif JP", serif;
    letter-spacing: 0.1em;
}

@media screen and (max-width: 768px) {
    .business__top-txt {
        font-size: 1.6rem;
    }
}

.business__top-img {
    margin-bottom: 120px;
    position: relative;
}

@media screen and (max-width: 768px) {
    .business__top-img {
        margin-bottom: 4rem;
    }
}

.business__top-box {
    font: 400 1.6rem/44px "Noto Sans JP", sans-serif;
    width: 100%;
    margin: 0 auto;
}

@media screen and (min-width: 1024px) {
    .business__top-box {
        text-align: center;
    }
}

@media screen and (max-width: 768px) {
    .business__top-box {
        font-size: 1.4rem;
        line-height: 2.2;
    }
}

.business__contents {
    max-width: 1024px;
    margin: 0 auto 200px;
}

@media screen and (max-width: 768px) {
    .business__contents {
        width: 100vw- 40px;
        margin-left: 20px;
        margin-right: 20px;
        margin-bottom: 120px;
    }
}

.business__contents-heading {
    text-align: center;
    margin-bottom: 80px;
}

@media screen and (max-width: 768px) {
    .business__contents-heading {
        margin-bottom: 40px;
    }
}

.business__contents-heading h3 {
    font-size: 5.6rem;
    font-weight: 500;
    letter-spacing: 0.16em;
    margin-bottom: 16px;
    line-height: 1.4;
}

@media screen and (max-width: 768px) {
    .business__contents-heading h3 {
        font-size: 2.8rem;
        letter-spacing: 0.04em;
        font-weight: bold;
    }
}

.business__contents-heading span {
    font-size: 2.8rem;
    letter-spacing: 0.12em;
}

@media screen and (max-width: 768px) {
    .business__contents-heading span {
        font-size: 1.6rem;
        letter-spacing: 0.04em;
    }
}

.business__contents-desc {
    line-height: 2.7;
    margin-bottom: 80px;
    display: inline-block;
    width: 100%;
}

@media screen and (min-width: 769px) {
    .business__contents-desc {
        text-align: center;
    }
}

@media screen and (max-width: 768px) {
    .business__contents-desc {
        margin-bottom: 4rem;
        line-height: 2.2;
    }
}

.business__contents-imgwrap {
    display: flex;
    justify-content: center;
    border: 1px solid #dddddd;
    padding: 68px 0 34px;
    align-items: center;
}

@media screen and (max-width: 768px) {
    .business__contents-imgwrap {
        flex-direction: column;
        align-items: unset;
        max-width: 300px;
        padding: 40px 0 40px 20px;
        margin: 0 auto;
        width: 100%;
    }
}

.business__contents-imgwrap img {
    width: fit-content;
    width: -moz-fit-content;
    margin-bottom: 32px;
    opacity: 0;
}

@media screen and (min-width: 1024px) {
    .business__contents-imgwrap img+img {
        margin-left: 71px;
    }
}

.business__media {
    margin-bottom: 200px;
}

@media screen and (max-width: 768px) {
    .business__media {
        width: calc(100vw - 40px);
        margin-right: 20px;
        margin-left: 20px;
    }
}

.business__media-heading {
    text-align: center;
    margin-bottom: 80px;
}

@media screen and (max-width: 768px) {
    .business__media-heading {
        margin-bottom: 4rem;
    }
}

.business__media-heading h3 {
    font: bold 6.4rem/120px "Josefin Sans", "sans-serif";
    letter-spacing: 0.16em;
    font-weight: 500;
    font-size: 5.6rem;
    line-height: 1.4;
}

@media screen and (max-width: 768px) {
    .business__media-heading h3 {
        font-size: 2.8rem;
        letter-spacing: 0.04em;
        font-weight: bold;
    }
}

.business__media-heading span {
    font: 2.8rem/48px "Noto Serif JP", serif;
    letter-spacing: 0.12em;
}

@media screen and (max-width: 768px) {
    .business__media-heading span {
        font-size: 1.6rem;
        letter-spacing: 0.04em;
    }
}

.business__media-txt {
    text-align: center;
    line-height: 1.8;
}

.business__media-wrapper {
    max-width: 1226px;
    width: 100%;
    margin: 120px auto 0;
}

@media screen and (max-width: 768px) {
    .business__media-wrapper {
        margin: 40px auto 0;
    }
}

.business__media-block {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

@media screen and (max-width: 768px) {
    .business__media-block {
        flex-direction: column;
        align-items: center;
        margin-bottom: 8rem;
    }
    .business__media-block#lifit img.ttl {
        width: 40%;
    }
}

.business__media-block-img {
    text-align: center;
    background-image: url("../images/media__back.png");
    background-size: cover;
    background-repeat: no-repeat;
    max-width: 100%;
    width: 668px;
    height: 668px;
    padding-top: 100px;
}

@media screen and (max-width: 768px) {
    .business__media-block-img {
        width: 335px;
        height: 335px;
        padding-top: 4rem;
    }
}

.business__media-block-img .ttl {
    margin-top: 28px;
    margin-right: auto;
    margin-left: auto;
    margin-bottom: 40px;
    width: auto;
}

@media screen and (max-width: 768px) {
    .business__media-block-img .ttl {
        margin-top: 8px;
        width: 50%;
        margin-bottom: 20px;
    }
}

.business__media-block-img .img {
    margin-right: auto;
    margin-left: auto;
    max-width: 515px;
}

@media screen and (max-width: 768px) {
    .business__media-block-img .img {
        margin-right: 30px;
        margin-left: 30px;
    }
}

.business__media-block-img p {
    white-space: nowrap;
}

.business__media-block-txt {
    width: 35%;
}

@media screen and (max-width: 768px) {
    .business__media-block-txt {
        width: 100%;
    }
}

.business__media-block-txt .ttl {
    font-size: 18px;
    font-weight: 400;
}

.business__media-block-txt .txt {
    margin-top: 18px;
    font-weight: 300;
    margin-bottom: 40px;
}

.business__media-block-txt .border {
    width: 40px;
    display: inline-block;
    border-bottom: 1px solid #707070;
}

.business__media-block:nth-child(even) {
    margin-left: 50px;
    flex-direction: row-reverse;
}

@media screen and (max-width: 768px) {
    .business__media-block:nth-child(even) {
        flex-direction: column;
        margin-left: 0;
    }
}

@media screen and (min-width: 769px) {
    .business__media-block:nth-of-type(4) .business__media-block-img .ttl {
        width: 260px;
    }
}

.business__business {
    margin-bottom: 200px;
}

.business__business-heading {
    background-image: url("../images/business__back@2x.jpg");
    background-size: cover;
    background-repeat: no-repeat;
    text-align: center;
    margin-bottom: 120px;
    max-width: 1400px;
    width: 100%;
    margin-right: auto;
    margin-left: auto;
    height: 400px;
    display: table;
}

@media screen and (max-width: 768px) {
    .business__business-heading {
        height: 200px;
    }
}

.business__business-heading-cnt {
    display: table-cell;
    vertical-align: middle;
}

.business__business-wrapper {
    max-width: 1400px;
    width: 100%;
    margin: 0 auto;
}

@media screen and (max-width: 768px) {
    .business__business-wrapper {
        width: calc(100vw - 40px);
        margin-right: 20px;
        margin-left: 20px;
    }
}

.business__business-block {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 160px;
}

.business__business-block:last-of-type {
    margin-bottom: 0;
}

@media screen and (max-width: 768px) {
    .business__business-block {
        flex-direction: column;
        align-items: center;
        margin-bottom: 8rem;
    }
}

.business__business-txt {
    max-width: 480px;
    width: 100%;
}

@media screen and (min-width: 1024px) {
    .business__business-txt {
        margin-left: 188px;
    }
}

@media screen and (max-width: 768px) {
    .business__business-txt {
        max-width: 100%;
    }
}

.business__business-txt .ttl {
    font: bold 6.4rem/120px "Josefin Sans", "sans-serif";
    letter-spacing: 0.16em;
    font-size: 4.8rem;
    font-weight: 500;
    line-height: 1;
    margin-bottom: 24px;
}

@media screen and (max-width: 768px) {
    .business__business-txt .ttl {
        font-size: 2.4rem;
        font-weight: bold;
        letter-spacing: 0.01em;
        margin-bottom: 8px;
    }
}

.business__business-txt span {
    display: inline-block;
    border-bottom: 1px solid #4A4A4A;
    padding-bottom: 40px;
    width: 100%;
    font-size: 2.8rem;
    letter-spacing: 0.08em;
}

@media screen and (max-width: 768px) {
    .business__business-txt span {
        font-size: 1.6rem;
        padding-bottom: 2.4rem;
    }
}

.business__business-txt .txt {
    margin-top: 40px;
    line-height: 2.75;
}

@media screen and (max-width: 768px) {
    .business__business-txt .txt {
        margin-bottom: 2.4rem;
        margin-top: 24px;
        line-height: 2.2;
    }
}

.business__business-img {
    max-width: 640px;
    width: 100%;
}

@media screen and (min-width: 1280px) {
    .business__business-img {
        min-width: 640px;
    }
}

.business__business .marketing .ttl,
.business__business .marketing .jp,
.business__business .planning .ttl,
.business__business .planning .jp {
    white-space: nowrap;
    position: relative;
    z-index: 2;
}

.business__btn {
    border: 1px solid #4A4A4A;
    display: inline-block;
    text-align: center;
    margin-top: 40px;
    font: 2rem/100px "Josefin Sans", "sans-serif";
    line-height: 64px;
    letter-spacing: 1px;
    width: 280px;
    height: 68px;
    position: relative;
}

.business__btn .fa-angle-right {
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
}

.business__btn span {
    line-height: 70px;
}

@media screen and (max-width: 768px) {
    .business__btn {
        width: 100%;
    }
}

.media__cover {
    position: relative;
    z-index: 2;
    padding-top: 80px;
    background-color: #fff;
    padding-bottom: 160px;
}

@media screen and (min-width: 769px) {
    .media__cover {
        margin-top: 80px;
    }
}

.media__inner {
    max-width: 1024px;
    width: 100%;
    margin: 0 auto;
}

@media screen and (max-width: 768px) {
    .media__inner {
        max-width: calc(100vw - 40px);
        margin-right: 20px;
        margin-left: 20px;
    }
}

.media__heading {
    display: flex;
    justify-content: space-between;
    border-bottom: 1px solid #4A4A4A;
    padding-bottom: 20px;
    margin-bottom: 80px;
}

.media__heading-ttl {
    font: bold 3.6rem/120px "Josefin Sans", "sans-serif";
    letter-spacing: 0.04em;
    line-height: initial;
    font-weight: 500;
    font-size: 3.2rem;
    margin-bottom: 17px;
    line-height: 1;
}

.media__heading time {
    letter-spacing: 0.04em;
}

.media__heading-sns {
    display: flex;
}

.media__heading-sns:last-of-type img {
    padding-left: 20px;
}

.media__article a {
    text-decoration: underline;
    color: #1a0dab;
    word-break: break-all;
}

.media__article a:before {
    content: "▶";
    margin-right: 1rem;
    color: #6c6c6c;
    font-size: 1.2rem;
    line-height: 1.6rem;
    position: relative;
    top: -1px;
    display: inline-block;
    text-decoration: none;
}

.media__article h3:not(.media__about-ttl) {
    font-size: 2rem;
    font-weight: 500;
    line-height: 1.5em;
    letter-spacing: 0.1em;
    margin-top: 8rem;
    padding: 1rem 2rem;
    border-left: 4px solid #4a4a4a;
}

.media__article h4 {
    font-size: 1.8rem;
    line-height: 1.25em;
    letter-spacing: 0.1em;
    margin-top: 4rem;
    padding: 1rem 2rem;
    border-left: 4px solid #ddd;
}

.media__article p {
    margin-top: 1.6rem;
    line-height: 1.9;
}

.media__article .b {
    font-weight: bolder;
    letter-spacing: 0.08em;
}

.media__article img {
    margin: 20px auto;
    text-align: center;
    width: 100%;
    height: auto;
}

.media__article blockquote {
    margin: 0;
    font-style: italic;
    padding: 0.5rem 2rem 2rem;
    background-color: #f5f5f5;
}

.media__article cite {
    font-size: 1.2rem;
    color: #6c6c6c;
}

.media__article cite a {
    text-decoration: underline;
    font-size: 1.2rem;
    color: #6c6c6c;
}

.media__cnt {
    margin-bottom: 90px;
    text-align: center;
}

.media__cnt-thumb {
    margin-bottom: 80px;
}

.media__cnt-html {
    margin-bottom: 40px;
}

.media__cnt-catch {
    font-size: 2rem;
    line-height: 1.8;
}

@media screen and (max-width: 768px) {
    .media__cnt-catch {
        font-size: 1.4rem;
        text-align: left;
    }
}

.media__cnt a {
    color: #1a0dab;
    display: inline-block;
}

.media__cnt a:hover {
    border-bottom: 1px solid #1a0dab;
}

.media__cnt a:visited {
    color: #660099;
}

.media__cnt-txt {
    white-space: pre-line;
    font: 2rem/36px "Noto Sans JP", sans-serif;
}

.media__about {
    margin-bottom: 76px;
}

.media__about-ttl {
    font: bold 3.6rem/120px "Josefin Sans", "sans-serif";
    font-weight: 500;
    line-height: 1;
    margin-bottom: 41px;
}

@media screen and (max-width: 768px) {
    .media__about-ttl {
        font-size: 2.8rem;
        font-weight: bold;
        margin-bottom: 16px;
    }
}

.media__about-heading {
    border-left: 8px solid #4A4A4A;
    font: 400 1.6rem/44px "Noto Sans JP", sans-serif;
    font-size: 2.8rem;
    padding-left: 27px;
}

@media screen and (max-width: 768px) {
    .media__about-heading {
        font-size: 2rem;
        line-height: 1.5;
    }
}

.media__about-txt {
    white-space: pre-line;
    margin-bottom: 90px;
}

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

@media screen and (max-width: 768px) {
    .media__about-wrap {
        flex-wrap: wrap;
        align-items: flex-start;
    }
}

.media__about p {
    font-weight: 400;
}

.media__btn {
    width: 320px;
    height: 120px;
    text-align: center;
    border: 1px solid #4A4A4A;
    margin: 0 auto;
    position: relative;
    display: block;
}

.media__btn img {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 184px;
}

.media__btn:after {
    content: "";
    background-image: url(../images/ico_arrow_cm.svg);
    background-repeat: no-repeat;
    background-size: contain;
    width: 8px;
    height: 12px;
    position: absolute;
    right: 30px;
    top: 48%;
}

.media__list {
    margin-bottom: 200px;
    background-color: #F5F5F5;
    padding-top: 64px;
    padding-bottom: 56px;
    position: relative;
    z-index: 2;
}

@media screen and (max-width: 768px) {
    .media__list {
        margin-bottom: 80px;
    }
}

.media__list-ttl {
    text-align: center;
    font: bold 3.6rem/120px "Josefin Sans", "sans-serif";
    font-weight: 500;
    line-height: 1;
    margin-bottom: 41px;
}

.media__list-wrapper {
    display: flex;
    justify-content: space-between;
    max-width: 768px;
    width: 100%;
    margin: 0 auto;
    flex-wrap: wrap;
}

.media__list-wrapper a:hover {
    opacity: 0.6;
}

.media__item {
    margin-bottom: 18px;
    position: relative;
    width: 184px;
}

.media__item.is-empty {
    height: 0;
    padding-top: 0;
    padding-bottom: 0;
    margin-top: 0;
    margin-bottom: 0;
}

.media__item .current:after {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background-color: rgba(74, 74, 74, 0.3);
}

@media screen and (max-width: 768px) {
    .media__item {
        width: 49vw;
    }
}

.posts {
    padding-bottom: 134px;
}

.posts__inner {
    max-width: 1024px;
    width: 100%;
    margin: 0 auto;
    padding-top: 224px;
}

@media screen and (max-width: 768px) {
    .posts__inner {
        width: calc(100vw - 40px);
        margin-right: 20px;
        margin-left: 20px;
        padding-top: 110px;
    }
}

.posts__wrapper {
    margin-top: 80px;
}

@media screen and (max-width: 768px) {
    .posts__wrapper {
        margin-top: 40px;
    }
}

.posts__item {
    padding-bottom: 16px;
}

.posts__item:last-of-type {
    padding-bottom: 0;
}

.posts__item-img {
    width: 240px;
    height: 240px;
    box-sizing: border-box;
    border: 2px #f5f5f5 solid;
    background-color: #fff;
}

@media screen and (max-width: 768px) {
    .posts__item-img {
        width: 120px;
        height: 120px;
        margin-right: 14px;
    }
}

.posts__item-img img {
    display: block;
    width: 235px;
    height: 100%;
    object-fit: contain;
    padding: 8%;
}

@media screen and (max-width: 768px) {
    .posts__item-img img {
        width: 90%;
        margin: 0 auto;
        padding: 4%;
    }
}

.posts__item-info {
    width: 100%;
    font: medium 2.4rem/44px "Noto Sans JP", sans-serif;
    font-size: 1.8rem;
    padding-left: 40px;
    padding-right: 40px;
    line-height: 1.5;
}

@media screen and (min-width: 769px) {
    .posts__item-info {
        background-image: url(../images/ico-arrow-bk.svg);
        background-repeat: no-repeat;
        background-size: 8px 12px;
        background-position: center right 40px;
    }
}

@media screen and (max-width: 768px) {
    .posts__item-info {
        font-size: 1.4rem;
        -webkit-box-orient: vertical;
        display: -webkit-box;
        -webkit-line-clamp: 3;
        overflow: hidden;
        width: 65%;
        padding-left: 0;
        padding-right: 12px;
    }
}

.posts__item-info time {
    margin-bottom: 32px;
    display: inline-block;
    font-size: 1.6rem;
}

@media screen and (max-width: 768px) {
    .posts__item-info time {
        font-size: 1rem;
        margin-bottom: 10px;
    }
}

.posts__item-info .title {
    margin-right: 24px;
}

.posts__item a {
    display: flex;
    background-color: #F5F5F5;
    position: relative;
    align-items: center;
}

.posts .pagination {
    margin-top: 92px;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
}

.posts .pagination-item {
    font: 400 1.6rem/28px "Noto Sans JP", sans-serif;
    display: inline-block;
    width: 64px;
    height: 64px;
    background-color: #4A4A4A;
    border: 1px solid #4A4A4A;
    background-color: #fff;
    text-align: center;
    line-height: 60px;
}

.posts .pagination-item+.pagination-item {
    margin-left: 20px;
}

@media screen and (max-width: 768px) {
    .posts .pagination-item:not(.arrow) {
        display: none;
    }
}

.posts .pagination-item.isactive {
    background-color: #4A4A4A;
    color: #fff;
}

.posts .arrow {
    background: none;
    color: #4A4A4A;
    border: none;
    float: right;
    font: 2rem/100px "Josefin Sans", "sans-serif";
    font: 1.6rem;
    position: absolute;
    width: initial;
    height: initial;
}

@media screen and (max-width: 768px) {
    .posts .arrow {
        font-size: 1.4rem;
    }
}

.posts .next {
    right: 0;
}

.posts .back {
    left: 0;
}

.post__heading {
    margin-bottom: 80px;
    height: 400px;
    background-image: url(../images/news__img@2x.jpg);
    background-size: cover;
    background-repeat: no-repeat;
    position: sticky;
    text-align: center;
    top: 104px;
    left: 0;
    width: 100%;
}

@media screen and (max-width: 768px) {
    .post__heading {
        background-image: url(../images/news__img-sp@2x.jpg);
        height: 200px;
        margin-top: 24px;
        z-index: 1;
    }
}

.post__heading .back {
    max-width: 1024px;
    width: 100%;
    margin: 0 auto;
    text-align: left;
    padding-top: 56px;
}

.post__heading .back a {
    letter-spacing: 0.1em;
    font-weight: 500;
    position: relative;
}

.post__heading .back a:before {
    content: "";
    background-position: top 29% left;
    background-image: url(../images/ico_arrow_cm.svg);
    transform: rotate(-180deg);
    background-repeat: no-repeat;
    background-size: 12px 8px;
    width: 12px;
    height: 8px;
    display: inline-block;
    margin-right: 24px;
    position: relative;
    top: -2px;
}

@media screen and (max-width: 768px) {
    .post__heading .back {
        padding-top: 0;
        position: relative;
        bottom: 44px;
        padding-left: 20px;
    }
    .post__heading .back a {
        font-size: 1.4rem;
        line-height: 1;
    }
}

.post__heading .page__ttl-jp {
    font-size: 2.8rem;
}

@media screen and (max-width: 768px) {
    .post__heading .page__ttl-jp {
        font-size: 1.6rem;
    }
}

.post__heading-inner {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.post .article {
    max-width: 100%;
    padding-bottom: 120px;
    z-index: 2;
    position: relative;
    padding-top: 80px;
    background-color: #fff;
}

.post .article__heading {
    border-bottom: 1px solid #707070;
    padding-bottom: 24px;
    margin-bottom: 40px;
}

.post .article__ttl {
    font: 400 1.6rem/44px "Noto Sans JP", sans-serif;
    font-size: 2.8rem;
    margin-bottom: 32px;
}

.post .article__thumb {
    height: auto;
    text-align: center;
    margin: 0 auto;
}

.post .article__thumb #news-img {
    width: auto;
    max-width: 100%;
    margin-bottom: 80px;
}

.post .article__thumb #news-img.large {
    width: 1024px;
}

.post .article a:not(.bottom_back) {
    text-decoration: underline;
    color: #1a0dab;
    word-break: break-all;
}

.post .article a:not(.bottom_back):before {
    content: "▶";
    margin-right: 1rem;
    color: #6c6c6c;
    font-size: 1.2rem;
    line-height: 1.6rem;
    position: relative;
    top: -1px;
    display: inline-block;
    text-decoration: none;
}

.post .article h3 {
    font-size: 2rem;
    font-weight: 500;
    line-height: 1.5em;
    letter-spacing: 0.1em;
    margin-top: 8rem;
    padding: 1rem 2rem;
    border-left: 4px solid #4a4a4a;
}

.post .article h4 {
    font-size: 1.8rem;
    line-height: 1.25em;
    letter-spacing: 0.1em;
    margin-top: 4rem;
    padding: 1rem 2rem;
    border-left: 4px solid #ddd;
}

.post .article p {
    margin-top: 1.6rem;
    line-height: 1.9;
}

.post .article .b {
    font-weight: bolder;
    letter-spacing: 0.08em;
}

.post .article img {
    margin: 20px auto;
    text-align: center;
    width: auto;
    height: auto;
	max-width: 100%;
}

.post .article blockquote {
    margin: 0;
    font-style: italic;
    padding: 0.5rem 2rem 2rem;
    background-color: #f5f5f5;
}

.post .article cite {
    font-size: 1.2rem;
    color: #6c6c6c;
}

.post .article cite a {
    text-decoration: underline;
    font-size: 1.2rem;
    color: #6c6c6c;
}

.post__inner {
    max-width: 1024px;
    width: 100%;
    margin: 0 auto 120px;
}

@media screen and (max-width: 768px) {
    .post__inner {
        width: calc(100vw - 40px);
        margin-left: 20px;
        margin-right: 20px;
    }
}

.post .nav-links {
    padding-bottom: 200px;
}

.post .screen-reader-text {
    display: none;
}

.post .bottom_back {
    display: block;
    text-align: center;
    color: #4a4a4a;
    font-weight: 500;
    font-size: 1.4rem;
}

.contact__inner {
    width: 100%;
    margin: 0 auto;
    padding-top: 224px;
    max-width: 1024px;
}

@media screen and (max-width: 768px) {
    .contact__inner {
        width: calc(100vw - 40px);
        margin-right: 20px;
        margin-left: 20px;
        padding-top: 108px;
    }
}

.contact__top {
    padding-bottom: 80px;
    border-bottom: 1px solid #ACACAC;
}

.contact__sitelist {
    display: flex;
    justify-content: space-between;
    max-width: 900px;
    width: 100%;
    margin: 0 auto;
}

@media screen and (max-width: 768px) {
    .contact__sitelist {
        flex-wrap: wrap;
        justify-content: center;
        margin-left: 12px;
    }
}

@media screen and (max-width: 768px) {
    .contact__sitelist li {
        margin-right: 24px;
        margin-bottom: 16px;
    }
}

.contact__sitelist a {
    text-decoration: underline;
    color: #1A0DAB;
    position: relative;
    display: flex;
    align-items: center;
    line-height: 1;
    font-weight: 500;
}

.contact__sitelist a:after {
    content: "";
    display: block;
    width: 8px;
    height: 8px;
    border: 3px solid;
    transform: rotate(45deg);
    background-repeat: no-repeat;
    background-size: contain;
    margin-left: 16px;
    border-left: none;
    border-bottom: none;
}

.contact__sitelist a:after:visited {
    background-image: url(../images/ico_arrow_linkvisited.svg);
}

.contact__sitelist a:visited,
.contact__sitelist a:active {
    color: #551b8c;
}

@media screen and (max-width: 768px) {
    .contact__sitelist a:after {
        width: 6px;
        height: 6px;
        border-right: 2.5px solid;
        border-top: 2.5px solid;
        margin-left: 8px;
    }
}

.contact__txt {
    margin-top: 90px;
    text-align: center;
    font: 400 1.6rem/44px "Noto Sans JP", sans-serif;
    letter-spacing: 0.4px;
    margin-bottom: 24px;
}

@media screen and (max-width: 768px) {
    .contact__txt {
        margin-top: 44px;
    }
}

.contact__table {
    margin: 0 auto;
    border-collapse: collapse;
}

@media screen and (max-width: 768px) {
    .contact__item-01 {
        display: flex;
        flex-direction: column;
    }
    .contact__item-01 .horizontal-item+.horizontal-item {
        margin-left: 0;
        margin-top: 16px;
    }
}

.contact ::placeholder {
    color: #acacac;
    letter-spacing: 0.1em;
    line-height: 1.5;
}

.contact input:focus,
.contact textarea:focus {
    outline: none;
    border: 2px solid #4a4a4a;
}

.contact input,
.contact textarea,
.contact select {
    padding: 1rem;
    border: 1px solid #acacac;
    letter-spacing: 0.1em;
    width: 500px;
    max-width: 100%;
}

.contact select {
    height: 50px;
    outline: none;
}

.contact .contact td input[type=radio] {
    appearance: none;
    display: none;
}

.contact input[type=radio]+span {
    box-sizing: border-box;
    cursor: pointer;
    display: inline-block;
    padding: 0px 30px;
    position: relative;
    width: auto;
}

.contact input[type=radio]+span:before {
    background: #fff;
    border: 1px solid #4a4a4a;
    border-radius: 50%;
    content: "";
    display: block;
    height: 24px;
    width: 24px;
    left: 0px;
    margin-top: -12px;
    margin-right: 16px;
    position: absolute;
    top: 50%;
}

.contact input[type=radio]+span:after {
    background: #4a4a4a;
    border-radius: 50%;
    content: "";
    display: block;
    height: 12px;
    width: 12px;
    left: 6px;
    opacity: 0;
    position: absolute;
    margin-top: -6px;
    top: 50%;
    transform: scale3d(0.3, 0.3, 1);
    transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;
}

.contact input[type=radio]:checked+span:before {
    border-color: #666;
}

.contact input[type=radio]:checked+span:after {
    opacity: 1;
    transform: scale3d(1, 1, 1);
}

.contact .mwform-checkbox-field-text {
    position: relative;
    padding-left: 40px;
}

.contact .privacy_date input[type=checkbox] {
    display: none;
}

.contact .privacy_date input[type=checkbox]+span:before {
    content: "";
    display: block;
    position: absolute;
    left: 5px;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 24px;
    height: 24px;
    border-radius: 3px;
    border: 1px solid #acacac;
    -webkit-transition: all 0.8s;
    -moz-transition: all 0.8s;
    -o-transition: all 0.8s;
    -ms-transition: all 0.8s;
    transition: all 0.8s;
}

.contact .privacy_date input[type=checkbox]:checked+span:after {
    content: "";
    display: block;
    position: absolute;
    top: -8px;
    left: 35%;
    width: 10px;
    height: 25px;
    transform: rotate(45deg) translate3d(0, 2px, 0) scale3d(0.7, 0.7, 1);
    transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;
    border-bottom: 4px solid #4a4a4a;
    border-right: 4px solid #4a4a4a;
}

.contact .privacy_date input[type=checkbox]:checked+ :before {
    border-color: #4a4a4a;
}

.contact .privacy_date input[type=checkbox]:checked+ :after {
    opacity: 1;
    transform: rotate(45deg) scale3d(1, 1, 1);
}

.contact .privacy_date {
    text-align: center;
    margin-bottom: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.contact .page__ttl {
    max-width: 1024px;
    width: 100%;
    margin: 0 auto;
    flex-wrap: wrap;
}

.contact form {
    margin-top: 90px;
    padding-bottom: 200px;
    position: relative;
}

@media screen and (max-width: 768px) {
    .contact form {
        padding-bottom: 120px;
    }
}

.contact tr {
    display: flex;
    margin-bottom: 4rem;
}

@media screen and (max-width: 768px) {
    .contact tr {
        display: block;
        margin-bottom: 0;
    }
}

.contact th,
.contact td {
    padding-bottom: 40px;
}

.contact th {
    text-align: left;
    min-width: 173px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-weight: initial;
}

@media screen and (max-width: 768px) {
    .contact th {
        justify-content: inherit;
        min-width: initial;
        padding-bottom: 16px;
    }
}

.contact td {
    height: 50px;
}

@media screen and (min-width: 769px) {
    .contact td {
        padding-left: 40px;
    }
}

.contact td input {
    height: 50px;
}

@media screen and (max-width: 768px) {
    .contact td input {
        width: calc(100vw - 40px);
    }
}

@media screen and (max-width: 768px) {
    .contact td textarea {
        width: calc(100vw - 40px);
    }
}

@media screen and (max-width: 768px) {
    .contact td select {
        width: calc(100vw - 40px);
    }
}

.contact td input[type=radio] {
    height: initial;
    display: none;
}

.contact .required {
    min-width: 48px;
    background: #e1344c;
    color: #fff;
    height: 18px;
    line-height: 18px;
    font-size: 1.2rem;
    font-weight: normal;
    display: inline-block;
    text-align: center;
}

@media screen and (max-width: 768px) {
    .contact .required {
        margin-left: 1rem;
    }
}

.contact .contact_privacy {
    margin-top: 80px;
}

@media screen and (max-width: 768px) {
    .contact .contact_privacy {
        margin-top: 0;
    }
}

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

.contact .privacy_date,
.contact .btn {
    text-align: center;
    position: relative;
    cursor: pointer;
}

.contact .privacy_date .error {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    top: 80%;
}

.contact .submit__btn,
.contact .confirm__btn {
    width: 280px;
    margin: 0 auto;
    z-index: 2;
    cursor: pointer;
    overflow: hidden;
    background: none;
    border-radius: 0;
    height: 64px;
    border: 1px solid #4A4A4A;
    color: #4A4A4A;
    letter-spacing: 0.1em;
    position: relative;
    font-size: 16px;
}

@media screen and (max-width: 768px) {
    .contact .submit__btn,
    .contact .confirm__btn {
        width: calc(100vw - 40px);
    }
}

.contact .submit__btn:before,
.contact .confirm__btn:before {
    content: "";
    display: block;
    position: absolute;
    width: 8px;
    height: 12px;
    right: 24px;
    background-image: url(../images/ico-arrow-bk.svg);
    background-repeat: no-repeat;
    background-size: contain;
    top: 50%;
    transform: translateY(-50%);
}

.contact .submit__btn:hover,
.contact .confirm__btn:hover {
    color: #fff;
}

.contact .submit__btn:hover:before,
.contact .confirm__btn:hover:before {
    background-image: url(../images/ico-arrow-wh.svg);
}

.contact .submit__btn .submit,
.contact .confirm__btn .submit {
    position: relative;
}

.contact__btn {
    display: flex;
    align-items: center;
    margin: 0 auto;
    width: 812px;
    max-width: 100%;
    justify-content: center;
    position: relative;
}

.contact .privacy_link {
    text-decoration: underline;
}

#page-check .required {
    display: none;
}

#page-check .contact__table {
    max-width: 812px;
    width: 100%;
    margin-right: auto;
    margin-left: auto;
    margin-bottom: 80px;
}

#page-check .privacy_date {
    display: none;
}

#page-check tr {
    border-bottom: 1px solid #4A4A4A;
    margin-bottom: 0;
}

@media screen and (max-width: 768px) {
    #page-check tr {
        margin-bottom: 16px;
    }
}

#page-check td,
#page-check th {
    padding-top: 25px;
    padding-bottom: 23px;
    min-width: initial;
}

@media screen and (max-width: 768px) {
    #page-check td,
    #page-check th {
        padding-top: 0;
        padding-bottom: 0;
    }
}

#page-check td {
    max-width: 536px;
    padding-left: 0;
    height: initial;
}

#page-check th {
    color: #acacac;
    width: 132px;
    margin-right: 144px;
    white-space: nowrap;
}

#page-check .privacy_date {
    display: none;
}

#page-check .back {
    position: absolute;
    left: 0;
    width: 100px;
    height: 16px;
}

@media screen and (max-width: 768px) {
    #page-check .back {
        top: 100px;
        left: 50%;
        transform: translateX(-50%);
    }
}

#page-check .back:before,
#page-check .back:after {
    content: none;
}

#page-check .back__btn {
    border: none;
    background: none;
    color: #4a4a4a;
    position: absolute;
    left: 0;
    min-width: 100px;
    line-height: 1;
    height: 16px;
    letter-spacing: 0.16em;
}

#page-check .back__btn:before {
    content: "";
    display: block;
    background-image: url(../images/ico-arrowl-bk.svg);
    width: 8px;
    height: 12px;
    background-repeat: no-repeat;
    background-size: cover;
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
}

#page-thanks {
    width: 100%;
    margin-top: 151px;
    margin-right: auto;
    margin-left: auto;
    padding-bottom: 200px;
}

#page-thanks .contact__inner {
    padding-top: 80px;
}

#page-thanks .contact__thanks {
    max-width: 530px;
    text-align: center;
    margin: 0 auto;
}

@media screen and (max-width: 768px) {
    #page-thanks .page__ttl {
        margin-left: 20px;
    }
}

#page-thanks img {
    width: 30%;
    padding-bottom: 40px;
    margin: 0 auto;
}

#page-thanks .txt {
    padding-bottom: 40px;
}

#page-thanks p {
    letter-spacing: 0.2px;
    line-height: 32px;
}

.privacy .page__heading {
    text-align: center;
    padding-top: 156px;
    padding-bottom: 77px;
}

@media screen and (max-width: 768px) {
    .privacy .page__heading {
        padding-top: 64px;
        text-align: left;
        padding-left: 20px;
    }
}

.privacy .page__ttl {
    margin-bottom: 40px;
}

@media screen and (max-width: 768px) {
    .privacy .page__ttl {
        margin-bottom: 8px;
    }
}

@media screen and (max-width: 768px) {
    .privacy .page__subttl {
        font-size: 20px;
        font-weight: 400;
    }
}

.privacy .font {
    font: 2rem/100px "Josefin Sans", "sans-serif";
    font-size: 1.6rem;
    line-height: 1.8;
}

.privacy a {
    word-break: break-all;
}

.privacy .num,
.privacy .alpha {
    font: 2rem/100px "Josefin Sans", "sans-serif";
    color: #acacac;
    font-size: 2.4rem;
    letter-spacing: 1px;
    margin-right: 26px;
    line-height: 36px;
    position: relative;
    top: 4px;
}

.privacy .num-small,
.privacy .alpha-small {
    font-size: 1.6rem;
    font-weight: bold;
    width: 0;
}

.privacy .policy {
    background: #F5F5F5;
    max-width: 1440px;
    width: 100%;
    margin: 0 auto;
}

.privacy .policy__inner {
    max-width: 1024px;
    width: 100%;
    margin: 0 auto;
    padding: 80px 0;
}

@media screen and (max-width: 768px) {
    .privacy .policy__inner {
        width: calc(100vw - 40px);
        margin-right: 20px;
        margin-left: 20px;
    }
}

.privacy .policy__inner ul {
    margin-top: 84px;
}

.privacy .policy__inner li {
    display: flex;
    line-height: 36px;
}

.privacy .policy__inner li+li {
    margin-top: 64px;
}

.privacy .policy__box {
    margin-top: 80px;
    border-left: 1px solid #acacac;
    padding-left: 32px;
}

.privacy .policy__box-ttl {
    font-size: 2rem;
    padding-bottom: 25px;
}

.privacy .policy__sign {
    text-align: right;
    letter-spacing: 0.4px;
    line-height: 36px;
}

.privacy .policy .border {
    border-bottom: 1px solid #acacac;
    display: block;
    margin-top: 80px;
    margin-bottom: 31px;
}

.privacy .state {
    padding-top: 163px;
}

.privacy .state__subtitle {
    padding: 16px 0;
    border-top: 1px solid #707070;
    border-bottom: 1px solid #707070;
    margin-bottom: 40px;
}

.privacy .state__subtitle:not(:first-of-type) {
    margin-top: 40px;
}

.privacy .state__inner {
    max-width: 1024px;
    width: 100%;
    margin: 0 auto;
    padding-bottom: 200px;
}

@media screen and (max-width: 768px) {
    .privacy .state__inner {
        padding-bottom: 120px;
        width: calc(100vw - 40px);
        margin-right: 20px;
        margin-left: 20px;
    }
}

.privacy .state .b:not(:first-of-type) {
    margin-top: 32px;
}

.privacy .state h3 {
    text-align: center;
    font-size: 28px;
    font-weight: 300;
    margin-bottom: 80px;
}

@media screen and (max-width: 768px) {
    .privacy .state h3 {
        font-size: 20px;
    }
}

.privacy .state__list-item {
    line-height: 1.9;
}

.privacy .state__list-item-ttl {
    font-weight: bold;
    font-size: 2rem;
    padding-bottom: 40px;
}

@media screen and (max-width: 768px) {
    .privacy .state__list-item-ttl {
        padding-bottom: 1rem;
    }
}

.privacy .state__list-item-block:last-of-type {
    margin-top: 50px;
}

.privacy .state__list-item+li {
    margin-top: 80px;
}

.privacy .state__list .num {
    top: 0;
}

.privacy .state__box {
    margin-top: 92px;
    border-left: 1px solid #aeaeae;
    padding-left: 32px;
}

@media screen and (max-width: 768px) {
    .privacy .state__box {
        margin-top: 32px;
    }
}

.privacy .state__box-ttl {
    font-size: 2rem;
    padding-bottom: 29px;
}

.privacy .state .alpha__block {
    padding-bottom: 44px;
}

@media screen and (min-width: 769px) {
    .privacy .state .alpha__block-wrap {
        margin-top: 44px;
        margin-left: 80px;
    }
}

.modal {
    display: none;
    height: 100vh;
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    z-index: 9999;
}

.modal__bg {
    background-color: #969696;
    height: 100vh;
    position: absolute;
    width: 100%;
}

@media screen and (max-width: 768px) {
    .modal__bg {
        background-color: #e4e4e4;
    }
}

.modal__content {
    background: #fff;
    left: 50%;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 1364px;
    max-width: 100%;
    height: 90%;
    overflow-y: scroll;
    padding-bottom: 80px;
}

@media screen and (max-width: 768px) {
    .modal__content {
        width: calc(100vw - 40px);
        margin: 0 auto;
    }
}

.modal__content .state {
    padding-top: 80px;
}

@media screen and (max-width: 768px) {
    .modal__content .state {
        padding-right: 25px;
        padding-left: 25px;
    }
}

.modal__content .state__inner {
    padding-bottom: 80px;
}

@media screen and (max-width: 768px) {
    .modal__content .state__inner {
        width: 100%;
        margin: 0;
    }
}

.fixed {
    overflow-y: hidden;
}

.close__btn {
    width: 280px;
    border: 1px solid #4a4a4a;
    display: block;
    text-align: center;
    margin: 0 auto;
}

.close__btn a {
    padding: 20px 0;
    display: block;
    text-align: center;
}

.page-common .Company__sub-heading {
    display: table;
    width: 100%;
}

.page-common .Company__sub-ttl {
    display: table-cell;
    vertical-align: middle;
}

.page-common .page__heading {
    height: 400px;
    position: relative;
}

@media screen and (max-width: 768px) {
    .page-common .page__heading {
        height: 200px;
    }
}

.page-common .page__heading-inner {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    text-align: center;
}

@media screen and (max-width: 768px) {
    .page-common .page__heading-inner {
        text-align: left;
        padding-left: 20px;
    }
}

.page-common .page__heading-ttl {
    font-size: 6.4rem;
    letter-spacing: 0.1em;
    line-height: 1.8;
    font-weight: 500;
}

@media screen and (max-width: 768px) {
    .page-common .page__heading-ttl {
        font-weight: bold;
        font-size: 3.6rem;
        letter-spacing: 0.02em;
    }
}

.page-common .page__heading-jpttl {
    font-size: 2rem;
    line-height: 1.8;
}

.page-common h2 {
    font-size: 4rem;
    letter-spacing: 0.16em;
    font-weight: 100;
    text-align: center;
    padding-bottom: 80px;
}

@media screen and (max-width: 768px) {
    .page-common h2 {
        font-size: 2.4rem;
    }
}

.notfound {
    padding-bottom: 80px;
}

.notfound__inner {
    max-width: 1024px;
    width: 100%;
    margin: 0 auto;
    padding-top: 152px;
    text-align: center;
}

@media screen and (max-width: 768px) {
    .notfound__inner {
        max-width: calc(100vw - 40px);
        padding-top: 108px;
    }
}

.notfound__heading {
    font-size: 64px;
    font-weight: 500;
    margin-bottom: 28px;
    line-height: 1;
    text-align: left;
}

@media screen and (max-width: 768px) {
    .notfound__heading {
        font-size: 12vw;
    }
}

.notfound__subheading {
    font-size: 40px;
    font-weight: 100;
    line-height: 1;
    text-align: left;
    margin-bottom: 80px;
}

@media screen and (max-width: 768px) {
    .notfound__subheading {
        font-size: 5vw;
        line-height: 1.2;
    }
}

.notfound img {
    width: auto;
    margin: 0 auto 80px;
}

@media screen and (max-width: 768px) {
    .notfound img {
        width: 80%;
    }
}

.notfound__desc {
    line-height: 2;
}

.company__pagelist .company__list-ttl {
    margin-top: 24px;
}

.activities__menu.is-empty {
    height: 0;
    padding-top: 0;
    padding-bottom: 0;
    margin-top: 0;
    margin-bottom: 0;
}


/*# sourceMappingURL=style.css.map */

/* 7/11 */
.cm__flex {
    display: flex;
}
.footer__sns {
    margin-top: 10px;
    margin-right: 10px;
    position: relative;
    
}
.footer__sns img {
    width: 52px;
}



.address__name {
display: block;
font-size: 12px;
	text-align: right;
}

.profile__img iframe {
max-width: 100%;
}


.profile__upper .profileImg #gmap2 {
    width: 400px;
    height: 429px;
}

@media screen and (max-width: 768px) {
	.profile__img iframe {
		max-width: 100vw;
	}
	#gmap,Ggmap2 {
	width: 100vw!important;
	}
}
.privacy-table {
    border: 1px solid #000;
    border-collapse: collapse;
    margin-top: 8px;
  }
 .privacy-table tr {
    border-bottom: 1px solid #000;
  }
  .privacy-table th,.privacy-table td {
    padding:8px;
	  font-size: 14px;
	  line-height: 1.4;
  }
  .privacy-table th {
    border-right: 1px solid #000;
	  text-align: left;
	  width: 200px;
    max-width: 30%;
  }
@media screen and (max-width: 768px ) {
	.privacy-table th, .privacy-table td {
		font-size: 13px;
	}
	.privacy-table th {
		 width: 110px;
	}
}


/* 3/10 */
.google_logo {
    margin-right: 10px;
}
.yahoo_logo {
    width: auto!important;
    height: 130px;
}
@media screen and (max-width: 1023px ) { 
    .yahoo_logo {
        height: 95px;
    }
}