@charset "UTF-8";
main {
    background: #F2F2F2;
}

/* ========================================
  @media screen and (min-width: 768px), print
======================================== */
@media screen and (min-width: 768px),print {
.p-main__wrap {padding-block: 148px 30px;}
/* mv
-------------------------------------*/
.p-mv {
    background: url(../images/company/mv_bg.jpg)no-repeat center;
    background-size: cover;
    padding-block: 344px 116px;
}
.p-mv .l-mv__inner {
    width: min(95%, 1200px);
    margin-inline: auto;
    position: relative;
}
.p-mv .l-mv__inner::after {
    position: absolute;
    content: "";
    background: url(../images/company/mv_photo.jpg)no-repeat;
    background-size: contain;
    width: 260px;
    height: 200px;
    bottom: -262px;
    right: 0;
    z-index: 2;
}
.p-mv .p-mv__txt {
    font-weight: 400;
    font-size: 18px;
    line-height: 2;
    text-align: center;
    color: #fff;
    letter-spacing: 0;
}

/* 共通パーツ
-------------------------------------*/
.c-sec__enttl {
    margin-bottom: 24px;
    padding-left: 2px;
}
.c-sec__ttl {
    font-weight: 400;
    font-size: 15px;
    line-height: 1.6;
    position: relative;
    letter-spacing: 0;
    padding-left: 26px;
}
.c-sec__ttl::before {
    position: absolute;
    content: "";
    background: #2CA6E0;
    width: 10px;
    height: 10px;
    top: 50%;
    transform: translateY(-50%);
    left: 0;
}

/* slogan
-------------------------------------*/
.p-slogan .l-slogan__inner {
    width: min(95%, 1280px);
    margin-inline: auto;
    padding-block: 0 254px;
}
.p-slogan .p-slogan__inBox {
    display: grid;
    grid-template-columns: 40.625% 64.84375%;
    justify-content: flex-end;
}
.p-slogan .p-slogan__wrap {position: relative;left: 70px;z-index: 3;padding-block: 109px;}
.p-slogan .c-sec__enttl {margin-left: 91px;}
.p-slogan .c-sec__ttl {margin-left: 90px;}
.p-slogan .p-slogan__photo {margin-top: 66px;}
.p-slogan .p-slogan__content {
    background: #FFFFFF;
    padding-block: 220px 0;
    position: relative;
    margin-bottom: 35px;
}
.p-slogan .p-slogan__content::after {
    position: absolute;
    content: "";
    background: url(../images/company/slogan_photo02.jpg)no-repeat;
    background-size: contain;
    width: 350px;
    height: 240px;
    bottom: -150px;
    right: 90px;
}
.p-slogan .p-slogan__content .subt {
    font-weight: 400;
    font-size: 55px;
    letter-spacing: 0.05em;
    line-height: 1.61818;
    text-align: center;
    color: #2ca6e0;
    margin-bottom: -3px;
}
.p-slogan .p-slogan__content .en-subt {
    margin-bottom: 69px;
    text-align: center;
}
.p-slogan .p-slogan__content .mission {
    font-weight: bold;
    font-size: 15px;
    line-height: 1.6;
    letter-spacing: 0;
    margin-bottom: 16px;
    text-align: center;
}
.p-slogan .p-slogan__content .txt {
    font-weight: 400;
    font-size: 18px;
    line-height: 2.3333;
    letter-spacing: 0;
    text-align: center;
    margin-bottom: 40px;
}
.p-slogan .p-slogan__content .company {
    font-weight: bold;
    font-size: 15px;
    line-height: 1.6;
    letter-spacing: 0;
    text-align: center;
}

/* company
-------------------------------------*/
.p-company .l-company__inner {
    width: min(95%, 1100px);
    margin-inline: auto;
    padding-block: 0 125px;
}
.p-company__table {
    width: min(95%, 912px);
    margin-left: auto;
    padding-block: 50px;
}
.p-company__table table {
    width: 100%;
}
.p-company__table tr {
    border-bottom: 1px solid #C6C1C1;
    display: grid;
    grid-template-columns: 24.2% 1fr;
}
.p-company__table th,
.p-company__table td {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.5;
    letter-spacing: 0;
    text-align: left;
    padding-block: 24px 25px;
}


/* site-map
-------------------------------------*/
.p-site-map .l-site-map__inner {
    width: min(95%, 1100px);
    margin-inline: auto;
    padding-bottom: 180px;
}
.p-site-map .p-site-map__box {
    padding-block: 70px 0;
}
.p-site-map .p-site-map__box.about {padding-block: 67px 0;}
.c-site-map__box-ttl {
    font-weight: 400;
    font-size: 15px;
    line-height: 1.6;
    position: relative;
    letter-spacing: 0;
    padding-left: 26px;
    margin-bottom: 17px;
}
.c-site-map__box-ttl::before {
    position: absolute;
    content: "";
    background: #0F0F0F;
    width: 10px;
    height: 10px;
    top: 50%;
    transform: translateY(-50%);
    left: 0;
}
.p-site-map .p-site-map__item .img {
    position: relative;
}
.p-site-map .p-site-map__item .img img {
    width: 100%;
    height: auto;
}
.p-site-map .p-site-map__item .arrow {
    background: #ffffff;
    border-radius: 10px;
    bottom: 20px;
    position: absolute;
    right: 21px;
    transition: all 0.3s ease-in-out;
    width: 60px;
    height: 25px;
    place-content: center;
    display: grid;
}

@media (any-hover: hover) {
.p-site-map .p-site-map__item:hover .arrow {
    background: #2ca6e0;
}
.p-site-map .p-site-map__item:hover .arrow svg path {
    fill: #ffffff;
}
.p-site-map .p-site-map__item:hover img {
    opacity: 1;
}
.p-site-map .p-site-map__item:hover a {
    text-decoration: none;
}
}

/* domain */
.p-site-map .p-domain__items {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 60px 10px;
}
.p-site-map .p-domain__item .img {
}
.p-site-map .p-domain__item-top .wrap {
    align-items: center;
    bottom: 23px;
    display: flex;
    gap: 0 12px;
    position: absolute;
    right: 29px;
}
.p-site-map .p-domain__item-top .wrap img {
    vertical-align: middle;
}
.p-site-map .p-domain__item .arrow {
    background: #ffffff;
    border-radius: 10px;
    display: grid;
    width: 60px;
    height: 25px;
    place-content: center;
    transition: all 0.3s ease-in-out;
}
.p-site-map .p-domain__item-top {
    position: relative;
    display: block;
}
.p-site-map .p-domain__item-link {
    align-items: center;
    border-bottom: 1px solid #e6e6e6;
    border-right: 1px solid #e6e6e6;
    display: flex;
    justify-content: space-between;
    padding-block: 32px;
    padding-inline: 31px 40px;
    transition: all 0.3s ease-in-out;
}
.p-site-map .p-domain__item-link p {
    font-weight: 500;
    font-size: 14px;
    line-height: 1.71428;
    letter-spacing: 0;
}
.p-site-map .p-domain__item-link .arrow {
    background: #E6E6E6;
}

@media (any-hover: hover) {
.p-site-map .p-domain__item-top:hover .arrow {
    background: #2ca6e0;
}
.p-site-map .p-domain__item-top:hover .arrow svg path {
    fill: #ffffff;
}
.p-site-map .p-domain__item-top:hover img {
    opacity: 1;
}
.p-site-map .p-domain__item-top:hover a {
    text-decoration: none;
}

.p-site-map .p-domain__item-link:hover .arrow {
    background: #2ca6e0;
}
.p-site-map .p-domain__item-link:hover .arrow svg path {
    fill: #ffffff;
}
.p-site-map .p-domain__item-link:hover img {
    opacity: 1;
}
.p-site-map .p-domain__item:hover a {
    text-decoration: none;
}
}
/* wj */
.p-site-map .p-wj__items {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.p-site-map .p-wj__item .img {
    position: relative;
}
.p-site-map .p-wj__item .img img {
    width: 100%;
    height: auto;
}
.p-site-map .p-wj__item .arrow {
    background: #ffffff;
    border-radius: 10px;
    bottom: 12px;
    position: absolute;
    right: 22px;
    transition: all 0.3s ease-in-out;
    width: 55px;
    height: 22px;
    place-content: center;
    display: grid;
}
@media (any-hover: hover) {
.p-site-map .p-wj__item:hover .arrow {
    background: #2ca6e0;
}
.p-site-map .p-wj__item:hover .arrow svg path {
    fill: #ffffff;
}
.p-site-map .p-wj__item:hover img {
    opacity: 1;
}
.p-site-map .p-wj__item:hover a {
    text-decoration: none;
}
}
/* brand */
.p-site-map .p-brand__items {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px 25px;
}
.p-site-map .p-brand__item .img {
    position: relative;
}
.p-site-map .p-brand__item .img img {
    width: 100%;
    height: auto;
}
.p-site-map .p-brand__item .arrow {
    background: #E6E6E6;
    border-radius: 10px;
    bottom: 16px;
    position: absolute;
    right: 16px;
    transition: all 0.3s ease-in-out;
    width: 53px;
    height: 21px;
    place-content: center;
    display: grid;
}
@media (any-hover: hover) {
.p-site-map .p-brand__item:hover .arrow {
    background: #2ca6e0;
}
.p-site-map .p-brand__item:hover .arrow svg path {
    fill: #ffffff;
}
.p-site-map .p-brand__item:hover img {
    opacity: 1;
}
.p-site-map .p-brand__item:hover a {
    text-decoration: none;
}

}

/* btn */
.p-site-map .p-btn__items {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0px 43px;
}
.p-site-map .p-btn__item a {
    border-radius: 48px;
    background: #1d1f24;
    padding-block: 41px 44px;
    display: flex;
    padding-inline: 46px 40px;
    justify-content: space-between;
    transition: all 0.3s ease-in-out;
}
.p-site-map .p-btn__item a p {
    font-weight: 500;
    font-size: 15px;
    letter-spacing: 0.05em;
    color: #fff;
}

@media (any-hover: hover) {
.p-site-map .p-btn__item a:hover {
    background: #2ca6e0;
    text-decoration: none;
}
}

}


/* ========================================
  @media screen and (max-width: 767px)
======================================== */
@media screen and (max-width: 767px) {
.p-main__wrap {
    padding-block: 39.883vw 7.229vw;
}
.p-main__ttl .en.company img {
    width: 49.17vw;
}
/* mv
-------------------------------------*/
.p-mv {
    background: url(../images/company/mv_bg_sp.jpg)no-repeat center;
    background-size: cover;
    padding-block: 60.63vw 9.0vw;
    position: relative;
}
.p-mv::after {
    position: absolute;
    content: "";
    background: url(../images/company/mv_photo_sp.jpg)no-repeat;
    background-size: contain;
    width: 31.16vw;
    height: 31.40vw;
    bottom: -26.4vw;
    right: 0;
    z-index: 2;
}
.p-mv .l-mv__inner {
    width: min(95%, 83.33vw);
    margin-inline: auto;
}
.p-mv .p-mv__txt {
    font-weight: 400;
    font-size:3.623vw;
    line-height: 1.6;
    color: #fff;
    letter-spacing: 0;
}

/* 共通パーツ
-------------------------------------*/
.c-sec__enttl {
    margin-bottom: 2.92vw;
    width: 83.57vw;
    margin-inline: auto;
}
.c-sec__ttl {
    font-weight: 400;
    font-size:3.623vw;
    line-height: 1.6;
    position: relative;
    letter-spacing: 0;
    padding-left: 6.15vw;
}
.c-sec__ttl::before {
    position: absolute;
    content: "";
    background: #2CA6E0;
    width: 2.42vw;
    height: 2.42vw;
    top: 50%;
    transform: translateY(-50%);
    left: 0;
}

/* slogan
-------------------------------------*/
.p-slogan .l-slogan__inner {
  padding-block: 22.36vw 42.13vw;
}
.p-slogan .p-slogan__inBox {
    display: grid;
}
.p-slogan .p-slogan__wrap {
    margin-bottom: -43vw;
    position: relative;
    z-index: 2;
}
.p-slogan .c-sec__enttl {margin-left: 10vw;}
.p-slogan .c-sec__enttl img {width: 37.1vw;}
.p-slogan .c-sec__ttl {width: 83.57vw;margin-inline: auto;margin-left: 9vw;}
.p-slogan .p-slogan__photo {width: 77.29vw;margin-top: 6.4vw;}
.p-slogan .p-slogan__content {
    position: relative;
    padding-block: 49.82vw 30.43vw;
}
.p-slogan .p-slogan__content::before {
    position: absolute;
    content: "";
    background: #FFFFFF;
    width: 91.79vw;
    height: 181.16vw;
    top: 0;
    right: 0;
    z-index: 1;
}
.p-slogan .p-slogan__content::after {
    position: absolute;
    content: "";
    background: url(../images/company/slogan_photo02_sp.jpg)no-repeat;
    background-size: contain;
    width: 50.00vw;
    height: 34.3vw;
    bottom: -15vw;
    left: 0;
    z-index: 3;
}
.p-slogan .p-slogan__content .subt {
    font-weight: 400;
    font-size:9.179vw;
    letter-spacing: 0.05em;
    text-align: center;
    color: #2ca6e0;
    margin-bottom: -1.5vw;
    position: relative;
    z-index: 2;
}
.p-slogan .p-slogan__content .en-subt {
    margin-bottom: 12.32vw;
    text-align: center;
    position: relative;
    z-index: 2;
}
.p-slogan .p-slogan__content .en-subt img {
    width: 29.69vw;
}
.p-slogan .p-slogan__content .mission {
    font-weight: bold;
    font-size:3.623vw;
    line-height: 1.6;
    letter-spacing: 0;
    margin-bottom: 4.56vw;
    text-align: center;
    position: relative;
    z-index: 2;
}
.p-slogan .p-slogan__content .txt {
    font-weight: 400;
    font-size:3.865vw;
    line-height: 2.375;
    letter-spacing: 0;
    text-align: center;
    margin-bottom: 7.96vw;
    position: relative;
    z-index: 2;
}
.p-slogan .p-slogan__content .company {
    font-weight: bold;
    font-size:3.623vw;
    line-height: 1.6;
    letter-spacing: 0;
    text-align: center;
    position: relative;
    z-index: 2;
}

/* company
-------------------------------------*/
.p-company .l-company__inner {
    width: min(95%, 83.57vw);
    margin-inline: auto;
    padding-bottom: 17.36vw;
}
.p-company .c-sec__enttl img {
    width: 76.53vw;
}
.p-company__table {padding-block: 4.5vw;}
.p-company__table table {
    width: 100%;
}
.p-company__table tr {
    border-bottom: 0.2vw solid #C6C1C1;
    display: grid;
    grid-template-columns: 32.9% 1fr;
}
.p-company__table th,
.p-company__table td {
    font-weight: 400;
    font-size:3.382vw;
    line-height: 1.71428;
    letter-spacing: 0;
    text-align: left;
    padding-block: 6.76vw 5.59vw;
}

/* site-map
-------------------------------------*/
.p-site-map .l-site-map__inner {
    width: min(95%, 84.54vw);
    margin-inline: auto;
    padding-bottom: 28.99vw;
}
.p-site-map .c-sec__enttl img {
    width: 44.58vw;
}
.p-site-map .p-site-map__box {
   padding-block: 14.49vw 0;
}
.p-site-map .p-site-map__box.about {
    padding-block: 5.76vw 0;
    width: 83.57vw;
    margin-inline: auto;
}
.c-site-map__box-ttl {
    font-weight: 400;
    font-size:3.623vw;
    line-height: 1.6;
    position: relative;
    letter-spacing: 0;
    padding-left: 6.15vw;
    margin-bottom: 3.83vw;
}
.c-site-map__box-ttl::before {
    position: absolute;
    content: "";
    background: #0F0F0F;
    width: 2.42vw;
    height: 2.42vw;
    top: 50%;
    transform: translateY(-50%);
    left: 0;
}
.p-site-map .p-site-map__item .img {
    position: relative;
}
.p-site-map .p-site-map__item .img img {
    width: 100%;
    height: auto;
}
.p-site-map .p-site-map__item .arrow {
    background: #ffffff;
    border-radius: 2.42vw;
    bottom: 3.86vw;
    position: absolute;
    right: 3.86vw;
    transition: all 0.3s ease-in-out;
    width: 10.14vw;
    height: 4.35vw;
    place-content: center;
    display: grid;
}

/* domain */
.p-site-map .p-site-map__box.domain {
    width: 83.57vw;
    margin-inline: auto;
}
.p-site-map .p-domain__items {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
}
.p-site-map .p-domain__item .img {
    position: relative;
}
.p-site-map .p-domain__item .wrap {
    align-items: center;
    bottom: 3.86vw;
    display: flex;
    gap: 0 2.90vw;
    position: absolute;
    right: 3.86vw;
}
.p-site-map .p-domain__item .wrap img {
    vertical-align: middle;
}
.p-site-map .p-domain__item .arrow {
    background: #ffffff;
    border-radius: 2.42vw;
    display: grid;
    width: 12.80vw;
    height: 5.07vw;
    place-content: center;
    transition: all 0.3s ease-in-out;
}
.p-site-map .p-domain__item .arrow svg {
    width: 2.17vw;
    height: 1.93vw;
}
.p-site-map .p-domain__item-top {
    position: relative;
    display: block;
}
.p-site-map .p-domain__item-link {
    align-items: center;
    border-bottom: 0.2vw solid #e6e6e6;
    display: flex;
    justify-content: space-between;
    padding-block: 7.73vw 8.03vw;
    padding-inline: 4.19vw 3.66vw;
    transition: all 0.3s ease-in-out;
}
.p-site-map .p-domain__item-link p {
    font-weight: 500;
    font-size:3.382vw;
    line-height: 1.71428;
    letter-spacing: 0;
}
.p-site-map .p-domain__item-link .arrow {
    background: #E6E6E6;
}

/* wj */
.p-site-map .p-wj__items {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 4.83vw 0;
}
.p-site-map .p-wj__item .img {
    position: relative;
}
.p-site-map .p-wj__item .img img {
    width: 100%;
    height: auto;
}
.p-site-map .p-wj__item .arrow {
    background: #ffffff;
    border-radius: 2.42vw;
    bottom: 3.38vw;
    position: absolute;
    right: 3.38vw;
    transition: all 0.3s ease-in-out;
    width: 11.59vw;
    height: 4.83vw;
    place-content: center;
    display: grid;
}

/* brand */
.p-site-map .p-brand__items {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 4.83vw 0;
}
.p-site-map .p-brand__item .img {
    position: relative;
}
.p-site-map .p-brand__item .img img {
    width: 100%;
    height: auto;
}
.p-site-map .p-brand__item .arrow {
    background: #E6E6E6;
    border-radius: 2.42vw;
    bottom: 3.86vw;
    position: absolute;
    right: 3.86vw;
    transition: all 0.3s ease-in-out;
    width: 12.80vw;
    height: 5.07vw;
    place-content: center;
    display: grid;
}

/* btn */
.p-site-map .p-btn__items {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 4.83vw 0;
    width: 81.64vw;
    margin-inline: auto;
    margin-top: 4.2vw;
}
.p-site-map .p-btn__item a {
    border-radius: 11.59vw;
    background: #1d1f24;
    padding-block: 7.83vw 8.115vw;
    display: flex;
    padding-inline: 11.1vw 9.66vw;
    justify-content: space-between;
    transition: all 0.3s ease-in-out;
}
.p-site-map .p-btn__item a p {
    font-weight: 500;
    font-size:3.623vw;
    letter-spacing: 0.05em;
    color: #fff;
}
}    