@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/wj/mv_bg.jpg)no-repeat center;
    background-size: cover;
    padding-block: 328px 85px;
}
.p-mv .p-mv__ttl {
    font-weight: bold;
    font-size: 30px;
    letter-spacing: 0.05em;
    line-height: 1.3666;
    text-align: center;
    color: #fff;
    margin-bottom: 30px;
}
.p-mv .p-mv__txt {
    font-weight: 400;
    font-size: 15px;
    line-height: 1.6;
    text-align: center;
    color: #fff;
    letter-spacing: 0;
}

/* sec共通
-------------------------------------*/
.p-sec .l-sec__inner {
    width: min(95%, 1280px);
    margin-inline: auto;
}
.p-sec .c-sec__enttl {
    text-align: center;
    margin-bottom: 30px;
}
.p-sec .p-sec__content {
    background: #FFFFFF;
    padding-inline: 40px;
    padding-block: 71px;
}
.p-sec .p-sec__content-inBox {
    width: min(95%, 1000px);
    margin-inline: auto;
}
.p-sec .p-sec__content-inBox .ttl {
    font-weight: bold;
    font-size: 22px;
    letter-spacing: 0.05em;
    line-height: 1.863636;
    margin-bottom: 23px;
}
.p-sec .p-sec__content-inBox .txt {
    font-weight: 400;
    font-size: 15px;
    line-height: 1.6;
    letter-spacing: 0;
}


/* about
-------------------------------------*/
.p-about {
    padding-block: 83px 78px;
}
.p-about .p-about__content {
    position: relative;
}
.p-about .p-about__content::after {
    position: absolute;
    content: "";
    background: url(../images/wj/arrow.svg)no-repeat center;
    background-size: contain;
    width: 80px;
    height: 40px;
    bottom: -20px;
    left: 50%;
    transform: translateX(-50%);
}
.p-about .p-about__ttl {
    display: flex;
    gap: 20px;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    font-size: 26px;
    letter-spacing: 0.05em;
    line-height: 1.576923;
    border-bottom: 1px dotted #2CA6E0;
    padding-bottom: 40px;
    margin-bottom: 39px;
}
.p-about .p-about__answer {
    display: flex;
    gap: 20px;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    font-size: 30px;
    letter-spacing: 0.05em;
    line-height: 1.36666;
    color: #2ca6e0;
    margin-bottom: 40px;
    padding-right: 15px;
}
.p-about .p-about__content-inBox {
    display: grid;
    grid-template-columns: 52% 40%;
    justify-content: space-between;
    align-items: center;
}
.p-about .p-about__items {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    width: min(95%, 1000px);
    margin-inline: auto;
    justify-content: space-between;
    padding-block: 69px 20px;
    gap: 35px;
}
.p-about .p-about__item {
    display: grid;
    place-content: center;
    font-weight: bold;
    font-size: 20px;
    letter-spacing: 0.05em;
    line-height: 1.5;
    text-align: center;
    color: #2ca6e0;
    width: 222px;
    height: 222px;
    background: #fff;
    border: 1px solid #2ca6e0;
    border-radius: 50%;
}
.p-about .p-about__ex {
    padding-block: 95px;
}
.p-about .p-about__ex-ttl {
    font-weight: bold;
    font-size: 30px;
    letter-spacing: 0.05em;
    line-height: 1.3666;
    text-align: center;
    margin-bottom: 30px;
}
.p-about .p-about__ex-items {
    width: min(95%, 1180px);
    margin-inline: auto;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0 20px;
}
.p-about .p-about__ex-item {
    background: #fff;
    padding-block: 37px 25px;
    padding-inline: 25px;
    display: block grid;
    grid-template-rows: subgrid;
    grid-row: span 3;
}
.p-about .p-about__ex-item .ttl {
    font-weight: bold;
    font-size: 16px;
    line-height: 1.3125;
    letter-spacing: 0.05em;
    text-align: center;
    margin-bottom: 10px;
}
.p-about .p-about__ex-item:nth-child(3)  {
    padding-block: 27px 25px;
}
.p-about .p-about__ex-item .photo {
    margin-bottom: 12px;
}
.p-about .p-about__ex-item .list li {
    font-weight: 400;
    font-size: 15px;
    line-height: 1.4666;
    letter-spacing: 0;
}

/* construction
-------------------------------------*/
.p-construction .p-construction__content {
    padding-block: 71px 115px;
}
.p-construction .p-construction__ttl {
    font-weight: bold;
    font-size: 30px;
    letter-spacing: 0.05em;
    line-height: 1.3666;
    text-align: center;
    border-bottom: 1px dotted #2CA6E0;
    padding-bottom: 50px;
    margin-bottom: 72px;
}
.p-construction .p-construction__content-inBox {
    display: grid;
    grid-template-columns: 44.4% 46%;
    justify-content: space-between;
    align-items: center;
    gap: 105px;
}
.p-construction .p-construction__content-inBox.--01 {
    padding-bottom: 95px;
}
.p-construction .p-construction__content-inBox .ttl {
    margin-bottom: 0;
}
.p-construction .p-construction__content-inBox .subt {
    font-weight: bold;
    font-size: 16px;
    letter-spacing: 0.05em;
    color: #2ca6e0;
    margin-bottom: 18px;
}

/* menu
-------------------------------------*/
.p-menu {
    padding-block: 157px 0;
}
.p-menu .p-menu__subt {
    font-weight: 400;
    font-size: 22px;
    text-align: center;
    margin-bottom: 40px;
    letter-spacing: 0;
}
.p-menu .p-menu__ttl {
    font-weight: bold;
    font-size: 30px;
    letter-spacing: 0.05em;
    line-height: 1.3666;
    text-align: center;
    text-indent: 32px;
    margin-bottom: 62px;
}
.p-menu .p-menu__ttl .blue {
    color: #2CA6E0;
    position: relative;
    left: -13px;
}
.p-menu .p-menu__ttl .blue .annotation {
    font-weight: 400;
    font-size: 12px;
    letter-spacing: 0.05em;
    color: #2ca6e0;
    top: 5px;
    position: absolute;
    right: -68px;
}

.p-menu .p-menu__photo {position: relative;}
.p-menu .p-menu__photo img {
    width: 100vw;
    max-width: 1920px;
    margin-inline: auto;
}
.p-menu .p-menu__items {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0 25px;
    width: min(95%, 1280px);
    margin-inline: auto;
    padding-inline: 90px;
    padding-block: 50px 48px;
    position: relative;
    top: -51px;
    background: #F2F2F2;
}
.p-menu .p-menu__item .img {
    margin-bottom: 20px;
    position: relative;
}
.p-menu .p-menu__item .img img {
    width: 100%;
    height: auto;
}
.p-menu .p-menu__item .arrow {
    background: #ffffff;
    border-radius: 10px;
    transition: all 0.3s ease-in-out;
    width: 48px;
    height: 20px;
    place-content: center;
    display: grid;
    bottom: 14px;
    position: absolute;
    right: 14px;
}
.p-menu .p-menu__item .arrow-gray {
    background: #E6E6E6;
}
.p-menu .p-menu__item .txt {
    font-weight: 400;
    font-size: 15px;
    line-height: 1.6;
    letter-spacing: 0;
}
.p-menu .p-menu__item .wrap {
    align-items: center;
    bottom: 11px;
    display: flex;
    gap: 0 12px;
    position: absolute;
    right: 14px;
}
.p-menu .p-menu__item .wrap img {
    vertical-align: middle;
}
.p-menu .p-menu__item .wrap .arrow {
    position: static;
    width: 53px;
    height: 21px;
}

@media (any-hover: hover) {
.p-menu .p-menu__item:hover .arrow {
    background: #2ca6e0;
}
.p-menu .p-menu__item:hover .arrow svg path {
    fill: #ffffff;
}
.p-menu .p-menu__item:hover img {
    opacity: 1;
}
.p-menu .p-menu__item:hover a {
    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.wj img {
    width: 49.89vw;
}
/* mv
-------------------------------------*/
.p-mv {
    background: url(../images/wj/mv_bg_sp.jpg)no-repeat center;
    background-size: cover;
    padding-block: 46.68vw 8.66vw;
}
.p-mv .p-mv__ttl {
    font-weight: bold;
    font-size:4.831vw;
    letter-spacing: 0.05em;
    line-height: 1.4;
    text-align: center;
    color: #fff;
    margin-bottom: 7.25vw;
}
.p-mv .p-mv__txt {
    font-weight: 400;
    font-size:3.623vw;
    line-height: 1.6;
    color: #fff;
    letter-spacing: 0;
    width: 83.33vw;
    margin-inline: auto;
}


/* sec共通
-------------------------------------*/
.p-sec .l-sec__inner {
    width: min(95%, 91.79vw);
    margin-inline: auto;
}
.p-sec .c-sec__enttl {
    text-align: center;
    margin-bottom: 5.67vw;
}
.p-sec .p-sec__content {
    background: #FFFFFF;
    padding-inline: 4.11vw;
    padding-block: 10.54vw 10vw;
}
.p-sec .p-sec__content-inBox .ttl {
    font-weight: bold;
    font-size:3.865vw;
    letter-spacing: 0.05em;
    line-height: 1.75;
    margin-bottom: 4.8vw;
}
.p-sec .p-sec__content-inBox .txt {
    font-weight: 400;
    font-size:3.623vw;
    line-height: 1.6;
    letter-spacing: 0;
}

/* about
-------------------------------------*/
.p-about {
    padding-block: 16.67vw 15.9vw;
}
.p-about .c-sec__enttl img  {
   width: 44.8vw;
}
.p-about .p-about__content {
    position: relative;
}
.p-about .p-about__content::after {
    position: absolute;
    content: "";
    background: url(../images/wj/arrow.svg)no-repeat center;
    background-size: contain;
    width: 14.49vw;
    height: 7.25vw;
    bottom: -2.23vw;
    left: 50%;
    transform: translateX(-50%);
}
.p-about .p-about__ttl {
    display: flex;
    gap: 4.11vw;
    justify-content: center;
    font-weight: bold;
    font-size:4.348vw;
    letter-spacing: 0.05em;
    line-height: 1.5555;
    border-bottom: 0.2vw dotted #2CA6E0;
    padding-bottom: 6.8vw;
    margin-bottom: 6.96vw;
}
.p-about .p-about__answer {
    display: flex;
    gap: 4.11vw;
    justify-content: center;
    font-weight: bold;
    font-size:4.831vw;
    letter-spacing: 0.05em;
    line-height: 1.4;
    color: #2ca6e0;
    margin-bottom: 5.80vw;
}
.p-about .p-about__answer span img {
    width: 16.4vw;
}
.p-about .p-about__content-inBox {
    display: grid;
}
.p-about .p-about__content-inBox .txt-box {
    order: 2;
}
.p-about .p-about__content-inBox .photo {
    order: 1;
    margin-bottom: 5.80vw;
}
.p-about .p-about__items {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: min(95%, 77.29vw);
    margin-inline: auto;
    justify-content: space-between;
    gap: 2.42vw 4.83vw;
    padding-block: 6.98vw 0;
}
.p-about .p-about__item {
    display: grid;
    place-content: center;
    font-weight: bold;
    font-size:3.382vw;
    letter-spacing: 0.05em;
    line-height: 1.35714;
    text-align: center;
    color: #2ca6e0;
    width: 36.23vw;
    height: 36.23vw;
    background: #fff;
    border: 0.2vw solid #2ca6e0;
    border-radius: 50%;
}
.p-about .p-about__ex {
    padding-block: 13.49vw 0;
}
.p-about .p-about__ex-ttl {
    font-weight: bold;
    font-size:4.831vw;
    letter-spacing: 0.05em;
    line-height: 1.8;
    text-align: center;
    margin-bottom: 6.73vw;
}
.p-about .p-about__ex-items {
    width: 91.79vw;
    margin-inline: auto;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 3.86vw;
}
.p-about .p-about__ex-item {
    background: #fff;
    padding-block: 5.83vw 4vw;
    padding-inline: 3.86vw;
    display: block grid;
    grid-template-rows: subgrid;
    grid-row: span 3;
    margin-bottom: 3vw;
}
.p-about .p-about__ex-item .ttl {
    font-weight: bold;
    font-size:3.865vw;
    line-height: 1.25;
    letter-spacing: 0.05em;
    text-align: center;
    margin-bottom: 2.6vw;
}
.p-about .p-about__ex-item .photo {
    margin-bottom: 2.6vw;
}
.p-about .p-about__ex-item .list li {
    font-weight: 400;
    font-size:3.623vw;
    line-height: 1.4666;
    letter-spacing: 0;
}

/* construction
-------------------------------------*/
.p-construction .c-sec__enttl img  {
    width: 40.58vw;
 }
.p-construction .p-construction__content {
    padding-block: 10.54vw 9vw;
}
.p-construction .p-construction__ttl {
    font-weight: bold;
    font-size:4.348vw;
    letter-spacing: 0.05em;
    line-height: 1.5555;
    text-align: center;
    border-bottom: 0.2vw dotted #2CA6E0;
    padding-bottom: 6.95vw;
    margin-bottom: 7.25vw;
}
.p-construction .p-construction__content-inBox {
    display: grid;
}
.p-construction .p-construction__content-inBox.--01 {
    padding-bottom: 16.91vw;
}
.p-construction .p-construction__content-inBox .txt-box {
    order: 2;
}
.p-construction .p-construction__content-inBox .img {
    order: 1;
    margin-bottom: 6.5vw;
}
.p-construction .p-construction__content-inBox .ttl {
    font-size:4.348vw;
    font-weight: 700;
    letter-spacing: 0.05em;
    margin-bottom: 0;
}
.p-construction .p-construction__content-inBox .subt {
    font-weight: bold;
    font-size:3.623vw;
    letter-spacing: 0.05em;
    color: #2ca6e0;
    margin-bottom: 4.3vw;
}

/* menu
-------------------------------------*/
.p-menu {
    padding-block: 24.6vw 0;
}
.p-menu .p-menu__subt {
    font-weight: 400;
    font-size:4.348vw;
    line-height: 1.3333;
    margin-bottom: 4.83vw;
    letter-spacing: 0;
    width: 83.57vw;
    margin-inline: auto;
}
.p-menu .p-menu__ttl {
    font-weight: bold;
    font-size:4.831vw;
    letter-spacing: 0.05em;
    line-height: 1.6;
    margin-bottom: 14.19vw;
    width: 83.57vw;
    margin-inline: auto;
}
.p-menu .p-menu__ttl .blue {
    color: #2CA6E0;
    position: relative;
    left: -2vw;
}
.p-menu .p-menu__ttl .blue .annotation {
    font-weight: 400;
    font-size: 2.17vw;
    letter-spacing: 0.05em;
    color: #2ca6e0;
    top: 0;
    position: absolute;
    right: -11vw;
}

.p-menu .p-menu__photo {position: relative;}
.p-menu .p-menu__photo img {
    width: 100vw;
    max-width: 100vw;
    margin-inline: auto;
}
.p-menu .p-menu__items {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 9.06vw 0;
    width: min(95%, 91.79vw);
    margin-inline: auto;
    padding-inline: 3.62vw;
    background: #F2F2F2;
    padding-block: 12.08vw 11.48vw;
    position: relative;
    top: -4.9vw;
}
.p-menu .p-menu__item .img {
    margin-bottom: 2.3vw;
    position: relative;
}
.p-menu .p-menu__item .img img {
    width: 100%;
    height: auto;
}
.p-menu .p-menu__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;
}
.p-menu .p-menu__item .arrow-gray {
    background: #E6E6E6;
}
.p-menu .p-menu__item .txt {
    font-weight: 400;
    font-size:3.623vw;
    line-height: 1.6;
    letter-spacing: 0;
}
.p-menu .p-menu__item .wrap {
    align-items: center;
    bottom: 2.96vw;
    display: flex;
    gap: 0 2.90vw;
    position: absolute;
    right: 3.38vw;
}
.p-menu .p-menu__item .wrap img {
    vertical-align: middle;
}
.p-menu .p-menu__item .wrap .arrow {
    position: static;
    width: 12.80vw;
    height: 5.07vw;
}

}