
body {
color: #4D4D4D;
}

main{
    margin-top: 5.5rem;
}

.page_inner{
    padding-left: 20px;
    padding-right: 20px;
}

.message{
    max-width: 1080px;
    margin: 80px auto 120px;
}

.message__container{
    display: flex;
    align-items: start;
    gap: 3.125rem;
    margin-top: 2.5rem;

}

.message__text p{
    margin-bottom: 1.5rem;
    line-height: 1.8;
    color: #4D4D4D;
    font-weight: 500;
}

.message__figcaption-title{
    font-weight: bold;
    font-size: 19.5008px;
    color: #4D4D4D;
    margin-top: 1rem;
}

.message__figcaption-name .small{
    font-size: 1.125rem;
    font-weight: bold;
    color: #4D4D4D;
    margin-left: .9375rem;
}

.message__figcaption-name .middle{
    color: #4D4D4D;
    font-size: 1rem;z
    font-weight: 500;
}

@media (max-width: 767px) {
    main{
        margin-top: 4.8125rem;
    }
    .message{
        margin-top: 5.9375rem;
    }
    .top_section_title h2 {
        font-size: 2rem;
        line-height: 1;
    }
    .message__container {
        display: flex;
        flex-direction: column-reverse;
        flex-wrap: wrap;
        gap: 1.5rem;
    }
    .message__text p:last-of-type{
        margin-bottom: 0;
    }
    .message__figure{
        text-align: center;
        margin: 0 auto;
        margin-bottom: 1.5rem;
    }
    .ceo__image{
        width: 14.125rem;
    }
    .message__figcaption {
        width: fit-content;
        margin: 0 auto;
        text-align: left;
    }
}


.strength{
    max-width: 1080px;
    margin: 0 auto;
    margin-bottom: 7.8125rem;
}

.descriptionList__number{
    color: #E8465A;
    font-weight: 500;
    font-size: 2.5rem;
    font-family: "Roboto", "Noto Sans JP", sans-serif;
}

.descriptionList__title{
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: .9375rem;
}

.descriptionList__titleText{
    font-size: 1.5rem;
    font-weight: bold;
    color: #333333;
}

.descriptionList__text{
    display: block;
    color: #4D4D4D;
    font-size: 1rem;
    font-weight: 500;
}

.descriptionList__content{
    margin-bottom: 4.0625rem;
    line-height: 1;
}

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

.strength__LinkWrap{
    margin-top: 1rem;
    display: flex;
    gap: 1rem
}

.strength__Link{
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1rem;

    width: 100%;
    max-width: 18.4375rem;
    height: fit-content;
    padding: .625rem 1rem;

    background: #595757;
    border: .0625rem solid #595757;
    border-radius: .25rem;

    color: #fff;
    font-size: 1rem;

    transition: .3s;
}

.strength__Link:hover{
    background: #fff;
    color: #595757;
    font-weight: bold;
}

.commonArrow{
    position: relative;
    display: inline-block;
    width: 1rem;
    height: 1rem;
}

.commonArrow__image{
    position: absolute;
    inset: 0;
    vertical-align: middle;
    transition: opacity .3s;
}

.commonArrow__image--hover{
    opacity: 0;
}

.strength__Link:hover .commonArrow__image:first-child{
    opacity: 0;
}

.strength__Link:hover .commonArrow__image--hover{
    opacity: 1;
}


.strength__banner{
    position: relative;
    z-index: 1;
    margin: 2.5rem 0;
    overflow: hidden;
    border-radius: 0.5rem;
    border: .0625rem solid #EDEDED;
    background: linear-gradient(90deg, #F2F2F2 0%, #FAFAFA 45%, #FFFFFF 70%);
    height: 25rem;
    background: #F4F4F4;
}

.strength__banner__image {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 55%;
    height: 100%;
    object-fit: cover;
    -webkit-mask-image: linear-gradient(90deg, #000 30%, rgba(0,0,0,0.5) 55%, transparent 80%);
        mask-image: linear-gradient(90deg, #000 30%, rgba(0,0,0,0.5) 55%, transparent 80%);
}

.strength__banner__content {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateY(-50%);
    color: #000;
    z-index: 2;
}

.strength__banner__title {
    margin-bottom: 1rem;
    font-size: 2rem;
    font-weight: bold;
    color: #E8465A;
    padding:  .875rem 1.25rem;
    border: 2px solid #E8465A;
    border-radius: 6.25rem;
    letter-spacing: 0.1em;
    text-align: center;
    line-height: 1;
    width: min(512px, 100%);
    font-size: clamp(1rem, 2vw, 2rem);
    background: #fff;

}

.strength__banner__text{
    font-weight: bold;
    font-size: clamp(1.5rem, 4vw, 2.5rem);
    text-align: center;
    line-height: 1.3;
    letter-spacing: 0.05em;
}

.strength__banner__numberHighlight{
    color: #E8465A;
    font-size: clamp(2rem, 5vw, 3.75rem);
    font-family: "Roboto", "Noto Sans JP", sans-serif;
    font-weight: 500;
    letter-spacing: 0;
}

.strength__banner__textHighlight{
    color: #E8465A;
    font-size: clamp(1.2rem, 3vw, 2.5rem);
    font-family: "Roboto", "Noto Sans JP", sans-serif;
    font-weight: 600;
}

.strength__banner__LinkWrap{
    margin-top: 1rem;
    display: flex;
    gap: .625rem
}

.strength__banner__Link{
    background: #E8465A;
    color: #fff;
    border-radius: .25rem;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: clamp(.75rem, 1.5vw, 1rem);
    font-weight: 500;
    gap: 1rem;
    height: fit-content;
    padding: .625rem 1rem;
    max-width: 18.4375rem;
    width: 100%;
    transition: 0.3s;
    padding-left: 1.875rem;
    letter-spacing: 0.08em;
    white-space: nowrap;
}

.strength__banner__Link:hover{
    background: #EEAAB3;
    color: #333333;
    font-weight: bold;

}

a:hover .commonArrow__image:first-child{
    opacity: 0;
}

a:hover .commonArrow__image--hover{
    opacity: 1;
}

@media (max-width: 767px) {
    .strength__banner{
        height: auto;
        border-radius: 20px;
        padding: 10px;
    }

    .descriptionList__content:first-of-type {
        padding-top: .8125rem;
    }

    .strength__banner__image{
        position: static;
        width: 100%;
        height: 12.5rem;
        -webkit-mask-image: none;
        mask-image: none;
    }

    .strength__banner__content {
        position: relative;
        top: 0;
        left: 0;
        transform: translateY(0%);
        display: flex;
        flex-direction: column;
        align-items: center;
        padding-top: 30px;
    }

    .strength__banner__title {
        font-size: 20px;
        width: 100%;
    }

    .strength__banner__text{
        font-size: clamp(18px, 5vw, 24px);
        letter-spacing: 0.1em;
    }

    .strength__LinkWrap {
        flex-direction: column;
        align-items: center;
    }
    .strength__banner__LinkWrap{
        flex-direction: column;
        align-items: center;
        width: 100%;
    }
    .strength__banner__Link {
        justify-content: center;
        font-size: 16px;
        max-width: 315px;
        gap: 1rem;
    }
    .strength__banner__image{
        position: static;
        width: 100%;
        height: 12.5rem;
        -webkit-mask-image: linear-gradient(180deg, #000 50%, transparent 100%);
        mask-image: linear-gradient(180deg, #000 50%, transparent 100%);
    }
    .descriptionList__number {
        font-size: 2rem;
        line-height: 1.5;
    }
    .descriptionList__title{
        margin-bottom: .625rem;
        align-items: flex-start;
        gap: .625rem;
    }
    .descriptionList__title{
        line-height: 1.8;
    }
}

.philosophy{
    max-width: 1080px;
    margin: 0 auto;
    margin-bottom: 7.8125rem;
}

.philosophy__banner{
    position: relative;
    z-index: 1;
    margin-bottom: 2.5rem;
}

.philosophy__banner__content{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    text-align: center;
    z-index: 2;
    white-space: nowrap;
}

.philosophy__banner__text{
    font-size: clamp(1.5rem, 4vw, 2.5rem);
    font-weight: bold;
}

.philosophy__banner__textHighlight{
    color: #E8465A;
    font-size: 40px;
    font-weight: bold;
    font-size: clamp(1.5rem, 4vw, 2.5rem);
}

.philosophy__plus{
    position: absolute;
    top: -9%;
    right: 13%;
    width: 4.5%;
    height: auto;
}

.philosophy__text{
    margin-bottom: 2.5rem;
}

.philosophy_mission{
    display: flex;
    gap: 20px;
    align-items: stretch;
    justify-content: center;
    margin-bottom: 2.5rem;
}

.figureTitle__small{
    font-size: 1.125rem;
}

.philosophy__figure{
    margin-top: 2.5rem;
}

.philosophy__figureInner{
    display: flex;
    gap: 20px;
    align-items: stretch;
    justify-content: center;
}

.philosophy__left__content{
    display: flex;
    flex-direction: column;
    width: 23.6875rem;
}

.philosophy__figure__box{
    border-radius: .9375rem;
    position: relative;
    display: flex;
    flex-direction: column;
    flex: 1;
    border: 1px solid #333;
}

.philosophy__figureTitle{
    background: #595757;
    color: #fff;
    font-size: clamp(1.25rem, 2vw, 1.5rem);
    border-radius: .9375rem .9375rem 0 0 !important;
    font-weight: bold;
    text-align: center;
    padding: .5rem 1rem;

}

.philosophy__figureList{
    padding: 1rem;
    color: #4D4D4D;
    /* border: solid 1px #595757; */
    flex: 1;
    border-radius: 0 0rem 10px .625rem;
    margin: 0 auto;
}

.philosophy__figureItem{
    padding: .5625rem 0;
    border-bottom: dotted 1px #E5E5E5;
    display: flex;
    align-items: center;
    color: #4D4D4D;
    font-size: 1.125rem;
    font-weight: 500;
}

.philosophy__figureItem:last-of-type{
    border: none;
}

.check__icon{
    margin-right: .75rem;
    display: block;
}

.philosophy__figure__left{
    position: absolute;
    bottom: 3%;
    right: 4%;
}

.philosophy__right__content{
    width: 42.5625rem;
    display: flex;
    flex-direction: column;
    border: 1px solid #333;
    border-radius: .9375rem;
}

.philosophy__figureTitle{
    padding: .625rem 1rem;
}

.philosophy__figure__flame{
    padding: 3.75rem 2.5rem;
    color: #4D4D4D;
    position: relative;
    position: relative;
    flex: 1;
    display: flex;
    align-items: center;
}

.philosophy__rightText{
    font-size: clamp(16px, 2vw, 20px);
    text-align: left;
    font-weight: 500;
    color: #4D4D4D;
    line-height: 1.8;
}

.philosophy__figure__right01{
    padding: 0 12px  12px;
    vertical-align: bottom;
}

.philosophy__figure__right02 {
    width: 8.4375rem;
    height: auto;
    flex-shrink: 1;
}

.philosophy__rightText--red{
    color: #E8465A;
    font-size: clamp(1rem, 2vw, 1.5rem);
    font-weight: bold;
    margin: .625rem 0;
    line-height: 2.5;
}

.philosophy__rightText--middle{
    color: #4D4D4D;
    font-size: clamp(1rem, 2vw, 1.5rem);
    font-weight: bold;
    margin-bottom: .625rem;
}

.philosophy__figureInner02{
    display: flex;
    align-items: flex-end;
    gap: 15px;
}

.philosophy__highlight{
    font-size: 1.5rem;
    color: #E8465A;
    line-height: 1.6;
    font-weight: bold;
    text-align: center;
    margin-bottom: 1.25rem;
}

.for-sp {
    display: none;
}

.philosophy__visionItem{
    padding: .625rem 0;
    border-bottom: dotted .0625rem #E5E5E5;
    display: flex;
    align-items: center;
    color: #333;
    font-size: 1rem;
    gap: .75rem;
    justify-content: left;
    font-weight: bold;
}

.philosophy__visionItem:last-child{
    border-bottom: none;
}

.vision__number{
    font-size: 3rem;
    font-weight: bold;
    color: #000;
    font-family: "Roboto", "Noto Sans JP", sans-serif;
}

.philosophy__valueItem{
    padding: .625rem 0;
    border-bottom: dotted 1px #E5E5E5;
    display: flex;
    align-items: center;
    justify-content: left;
    gap: .9375rem;
    color: #4D4D4D;
    font-size: 1.125rem;
}
.philosophy__valueItem:first-child{
    padding-top: 0;
}

.philosophy__valueItem:last-child{
    border-bottom: none;
}

.figureList_left{
    margin: 0;
}

.value__textGroup{
    text-align: center;
    width: 11rem;
}

.value__textRed{
    font-size: 1.5rem;
    color: #E8465A;
    font-weight: 700;
}

.value__text{
    font-size: .9375rem;
    font-weight: 500;
    text-align: left;
}

.textRed__small{
    font-size: 1.25rem;
    color: #E8465A;
    font-weight: 700;
}

.benefit__text{
    font-size: .9375rem;
    font-weight: 500;
    text-align: center;
}

@media (max-width: 767px) {
    .for-sp {
        display: block;
    }
    .philosophy__figureInner {
        flex-direction: column;
    }
    .philosophy__figure__box{
        width: 100%;
    }
    .philosophy__left__content,
    .philosophy__right__content{
        width: 100%;
    }
    .philosophy__plus{
        top: 53%;
        right: 42%;
        width: 7%;
    }
    .philosophy__figureInner02{
        flex-direction: column;
        align-items: center;
    }
    .philosophy__figure__flame {
        padding: 1.25rem 1rem;
        justify-content: center;
    }
    .philosophy__figure__right01 {
        padding-bottom: .4375rem;
        padding-left: 0;
        padding-right: 0;
        width: 11.625rem;
    }
    .philosophy__figureTitle{
        font-size: 1.5rem;
        padding: .75rem 0;
        line-height: 1;
    }
    .philosophy__figureItem{
        font-size: 1rem;
    }
    .philosophy__rightText--middle{
        margin: 1rem 0;
    }
}

.company{
    max-width: 1080px;
    margin: 0 auto;
    margin-bottom: 6.25rem;
}

.mySwiper{
    width: 100%;
    max-width: 67.5rem;
    margin: 0 auto;
}

.swiper-slide img{
    width: 100%;
    display: block;
    border-radius: .5rem;
}

.swiper-pagination{
    position: static !important;
    margin-top: 1.25rem;
    text-align: center;
}

.mySwiper .swiper-pagination-bullet {
    width: 1rem !important;
    height: 1rem !important;
    background: #d4d4d4 !important;
    opacity: 1 !important;
}

.mySwiper .swiper-pagination-bullet-active {
    background: #333333 !important;
}

.mySwiper .swiper-pagination-bullet {
    margin: 0 .625rem !important;
}

@media (max-width: 767px) {
    .mySwiper .swiper-pagination-bullet {
        width: 10px !important;
        height: 10px !important;
        opacity: 1 !important;
    }
    .swiper-pagination{
        position: static !important;
        margin-top: .625rem;
        text-align: center;
    }
}

.company__contents {
    flex: 0 0 74.5%;
}

.companyList {
    border-bottom: .0625rem dotted #D2D2D2;
    display: flex;
    align-items: center;
    padding-block: 1.875rem;
}

.companyList:first-of-type {
    margin-top: 5rem;
    padding-top: 0;
}

.companyList__label {
    flex: 0 0 155px;
    font-weight: 700;
    color: #333333;
    font-weight: bold;
    font-size: 16px;
}

.companyList__content {
    flex: 1;
    padding-left: .625rem;
    font-size: 1rem;
    color: #4D4D4D;
    font-weight: 500;

}

.companyList:last-of-type {
    border-bottom: none;
}

.companyList__label::before{
    content: "●";
    margin-right: 15px;
    color: #E8465A;
}

.company__map{
    display: inline-flex;
    align-items: center;
    border-bottom: .0625rem solid #4D4D4D;
    transition: opacity 0.3s;
    margin-top: .625rem;
    color: #4D4D4D;
    font-weight: 500;
}

.company__map:hover {
    opacity: 0.7;
    cursor: pointer;
}

.map__icon{
    margin-left: 5px;
}

.company__mapIframe{
    display: block;
    width: 905px;
    height: 333px;
    margin-top: 10px;
    border: .0625rem solid #A1A1A1 !important;
}

.companyList__businessList {
    flex: 1;
    margin: 0;
    padding: 0;
    list-style: none;
}

.companyList__businessList li {
    position: relative;
    padding-left: 1em;
    font-size: 1rem;
    font-weight: 500;
    color: #4D4D4D;
    line-height: 1.8;
}

.companyList__businessList li::before {
    content: "・";
    position: absolute;
    left: 0;
}

@media (max-width: 767px) {
    .label-block {
        display: block;
    }
    .company__mapIframe{
        height: 185px;
    }
    .label__sp{
        margin-bottom: 1.25rem;
    }
    .companyList__label {
        flex: 0 0 7.875rem;
    }
    .companyList {
        padding-block: 1.25rem;
    }
}
