@charset "UTF-8";

/* 下層共通 */
#title {
    padding: 40px 10px;
}

.page-title {
    font-size: clamp(24px, 3.34vw, 48px);
}

#message {
    width: 100%;
    min-height: 700px;
    background-size: cover;
    background-repeat: no-repeat;
    display: flex;
    align-items: center;
}

.message__inner {
    padding: 90px 10px;
    width: 100vw;
    text-align: center;
    background-color: rgba(51, 51, 51, .7);
    margin-inline: calc(50% - 50vw);
}

.message__title {
    color: #fff;
    font-size: clamp(20px, 2.23vw, 32px);
}

.message__title strong {
    font-size: 1.5em;
}

@media screen and (max-width: 1439px) {
    #message {
        min-height: initial;
    }

    .message__inner {
        padding: 45px 10px;
    }
}

.core-value__wrapper {
    width: 100%;
    min-height: 442px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 100px 30px;
    background-image: linear-gradient(rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7)), url(/img/core-value-bg.webp);
    background-repeat: no-repeat;
    background-size: cover;
    border-radius: 50px;
}

.core-value__desc {
    font-size: clamp(20px, 2.23vw, 32px);
}

@media screen and (max-width: 1439px) {
    .core-value__wrapper {
        padding: 50px 10px;
        min-height: initial;
    }
}

#contents {
    overflow: hidden;
}

.contents__list-item {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 64px;
    padding: 100px 0;
}
.contents__list-item:has(.contents__list-title--right) {
    align-items: flex-end;
}

.contents__list-title {
    position: relative;
    display: inline-flex;
    width: fit-content;
    min-width: 720px;
    height: 144px;
    color: #fff;
    font-size: clamp(20px, 2.23vw, 36px);
    padding: 10px 24px; 
    align-items: center;
    gap: 64px;
}
.contents__list-title--red {
    background-color: #BF1A20;
}
.contents__list-title--black {
    background-color: #333;
}

.contents__list-title::before {
    content: "";
    position: absolute;
    width: 100vw;
    height: 100%;
    top: 0;
    /* z-index: -1; */
}
.contents__list-title--left::before {
    right: 100%;
}
.contents__list-title--right::before {
    left: 100%;
}
.contents__list-title--red::before {
    background-color: #BF1A20;
}
.contents__list-title--black::before {
    background-color: #333;
}

.contents__list-title::after {
    position: absolute;
    content: "";
    width: 0;
    height: 0;
    border-style: solid;
    top: 0;
}
.contents__list-title--red::after {
    border-color: #BF1A20 transparent transparent transparent;
}
.contents__list-title--black::after {
    border-color: #333 transparent transparent transparent;
}
.contents__list-title--left::after {
    left: 100%;
    border-width: 144px 132px 0px 0px;
}
.contents__list-title--right::after {
    right: 100%;
    border-width: 144px 0px 0px 132px;
}


.contents__list-num {
    font-size: 2.67em;
    line-height: 1;
    font-family: "Noto Serif JP", serif;
}

.contents__list-title-box {
    display: flex;
    justify-content: center;
    flex-grow: 1;
}

.contents__list-bg {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: -1;
    height: 100%;
}

.contents__list-bg img {
    height: 100%;
    object-fit: cover;
    max-width: 932px;
}

.contents__list-bg--right {
    right: calc((100vw - 1200px) / -2) ;
}

.contents__list-bg--right::after {
    position: absolute;
    content: "";
    width: 100%;
    height: 101%;
    top: 0px;
    left: -1px;
    background: linear-gradient(90deg, #F9F9F9 0%, rgba(249, 249, 249, 0) 100%);
}

.contents__list-bg--left {
    left: calc((100vw - 1200px) / -2) ;
}
.contents__list-bg--left::after {
    position: absolute;
    content: "";
    width: 100%;
    height: 101%;
    top: 0px;
    left: 1px;
    background: linear-gradient(270deg, #F9F9F9 0%, rgba(249, 249, 249, 0) 100%), url(image.png);
}


@media screen and (max-width: 1200px) {
    .contents__list-item {
        gap: 32px;
        padding: 50px 0 ;
    }

    .contents__list-title {
        min-width: initial;
        max-width: 80%;
        height: 90px;
        align-items: center;
        gap: 16px;
        padding: 10px 0;
    }

    .contents__list-title--left::after {
        border-width: 90px 60px 0px 0px;
    }

    .contents__list-title--right::after {
        border-width: 90px 0px 0px 60px;
    }

    .contents__list-num {
        font-size: 1em;
    }

    .contents__list-bg--right {
        right: -10px;
    }

    .contents__list-bg--left {
        left: -10px;
    }
}
@media screen and (max-width: 768px) {
    .contents__list-bg--right::after {
        left: 0px;
        background: rgba(249, 249, 249, 0.8);
    }    
    .contents__list-bg--left::after {
        background: rgba(249, 249, 249, 0.8);
    }
    
    .contents__list-bg img {
        width: 100vw;
        max-width: initial;
        object-fit: cover;
    }
    .contents__list-bg--right img {
        object-position: right;
    }
    .contents__list-bg--left img {
        object-position: left;
    }
    
}


.contents__body {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.contents__lead {
    font-size: clamp(20px, 1.67vw, 24px);
}

.contents__list-desc dt {
    position: relative;
    padding-left: 1em;
}
.contents__list-desc dt::before {
    position: absolute;
    content: "・";
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    display: inline-block;
}
.contents__list-desc dd {
    position: relative;
    padding-left: 1em;
}
.contents__list-desc dd::before {
    position: absolute;
    content: "-";
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    display: inline-block;
}

h3.c-page-h3 {
    font-size: clamp(18px, 1.67vw, 24px);
}
/* 下層共通 */


/* #scope */
.scope__desc, .structure__desc {
    font-size: 20px;
    font-weight: normal;
}

 .marketing__desc {
    font-size: clamp(20px, 1.67vw, 24px);
    font-weight: normal;
 }
/* #scope */

/* #approach */
.approach__lists {
    display: flex;
    gap: 20px;
    justify-content: center;
}

.approach__list-item {
    width: calc((100% - 20px) / 2);
    background-color: #fff;
    padding: 60px 10px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    border-radius: 10px;
    gap: 55px;
}

.approach__list-inner {
    display: flex;
    flex-direction: column;
    gap: 40px;
    align-items: center;
}

.approach__list-title {
    font-size: clamp(20px, 2.23vw, 36px);
}

.approach__sub-lists {
    list-style: disc;
    font-size: clamp(20px, 1.67vw, 24px);
    padding-left: 1.5em;
}


@media screen and (max-width: 1439px) {
    .approach__lists {
        flex-direction: column;
    }

    .approach__list-item {
        width: 100%;
    }
}
/* #approach */


/* companyページ */
.company__message__content {
    display: flex;
    gap: 68px;
}

.company__message__head {
    max-width: 270px;
}

.company__message__body {
    display: flex;
    flex-direction: column;
    gap: 26px;
}

.company__message__foot dl{
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 10px;
}

.company__profile__table {
    border-collapse: collapse;
    width: 100%;
}

.company__profile__table tr {
    display: flex;
    background: #fff;
    border-top: 1px solid #929292;
    border-bottom: 1px solid #929292;
}

.company__profile__table tr th {
    display: flex;
    justify-content: flex-start;
    text-align: left;
    align-items: center;
    padding: 11px 10px;
    flex: 306px 1 0;
    background: #f3e3e3;
}

.company__profile__table tr td {
    display: flex;
    justify-content: flex-start;
    text-align: left;
    align-items: center;
    padding: 11px 10px;
    flex: 100% 1 1;
    background: #fff;
    word-break: auto-phrase;
}

.company__profile__table tr td li {
    word-break: auto-phrase;
}


.company__access__content {
    display: flex;
    gap: 100px;
    line-height: 1.5;
}

.company__access__body {
    background: #fff;
    padding: 60px 47px;
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.company__access__profile {
    display: flex;
    flex-direction: column;
    gap: 20px;  
}

.company__access__info {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.company__access__info dl {
    display: flex;
    gap: 10px;
}

@media screen and (max-width: 1439px) {
  .company__message__content {
    flex-direction: column;
    align-items: center;
  }
  
  .company__profile__table tr {
    flex-direction: column;
    border: none;
  }
  
  .company__profile__table tr th {
    flex: 0;
  }

  .company__access__content {
    flex-direction: column;
    gap: 50px;
  }

  .company__access__head {
    order: 2;
  }

  .company__access__body {
    padding: 11px 10px;
    order: 1;
  }
}
/* companyページ */