@charset "UTF-8";

/* =========================================
   ページタイトルエリア (Hero)
   ========================================= */

.page-title-area {
    background-color: #ffffff;
    padding: 4.5rem 2rem;
    text-align: center;
}

.page-title-area__title {
    font-family: "Noto Serif JP", serif;
    font-size: 4.5rem;
    font-weight: 600;
    line-height: 1.2;
    color: #282828;
    margin: 0;
}

.page-title-area__border {
    width: 8rem;
    height: 0.5rem;
    background-color: #3b4165;
    margin: 1.5rem auto;
}

.page-title-area__subtitle {
    font-family: "Roboto", "Noto Sans JP", sans-serif;
    font-size: 2rem;
    font-weight: 400;
    line-height: 1.5;
    color: #282828;
    letter-spacing: 0.1em;
    margin: 0;
}

@media (max-width: 1024px) {
    .page-title-area {
        padding: 3.5rem 1.5rem;
    }

    .page-title-area__title {
        font-size: 3.2rem;
    }

    .page-title-area__border {
        width: 6rem;
        height: 0.4rem;
        margin: 1.2rem auto;
    }

    .page-title-area__subtitle {
        font-size: 1.6rem;
    }
}

/* =========================================
   ABOUT US セクション
   ========================================= */

.sec-company-about {
    position: relative;
    background-color: #ffffff;
}

.sec-company-about::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 32rem;
    background-color: #3b4165;
    z-index: 0;
}

.about__bg-title {
    position: relative;
    z-index: 1;
    display: block;
    width: 58rem;
    height: auto;
    max-width: 60%;
    padding-top: 3.7rem;
    margin-left: max(11.5rem, calc((100vw - 120rem) / 2 + 11.5rem));
    object-fit: contain;
    object-position: left center;
}

.about__container {
    position: relative;
    z-index: 1;
    max-width: 120rem;
    margin: 0 auto;
    margin-top: 4.7rem;
    padding-left: 11.5rem;
    padding-right: 11.5rem;
    padding-bottom: 8.3rem;
    display: flex;
    flex-direction: row;
    gap: 5.5rem;
    align-items: flex-start;
}

.about__text-column {
    flex: 1;
    min-width: 0;
}

.about__message {
    font-family: "Noto Sans JP", sans-serif;
    font-size: 1.5rem;
    line-height: 2;
    color: #000000;
    text-shadow:
        0.1rem 0.1rem 0 #ffffff,
        -0.1rem -0.1rem 0 #ffffff,
        0.1rem -0.1rem 0 #ffffff,
        -0.1rem 0.1rem 0 #ffffff,
        0.1rem 0 0 #ffffff,
        -0.1rem 0 0 #ffffff,
        0 0.1rem 0 #ffffff,
        0 -0.1rem 0 #ffffff;
}

.about__message p {
    margin: 0 0 1em 0;
}

.about__message p:last-child {
    margin-bottom: 0;
}

.about__message-title {
    font-size: 3.2rem;
    font-weight: 700;
    color: #ffffff;
    text-shadow: none;
    margin-bottom: 0.2em !important;
}

.about__message-subtitle {
    font-size: 2.1rem;
    font-weight: 500;
    color: #ffffff;
    text-shadow: none;
    margin-bottom: 2.5em !important;
}

.about__message-business {
    padding-left: 1em;
    border-left: 0.3rem solid #3b4165;
    margin: 1.5em 0 !important;
}

.about__message-business strong {
    color: #3b4165;
}

.about__message-sign {
    margin-top: 2em !important;
    text-align: right;
}

.about__message-name {
    font-size: 2.4rem;
    font-weight: 700;
}

.about__image-column {
    flex-shrink: 0;
    width: 46.4rem;
}

.about__president-image {
    width: 100%;
    height: auto;
    border-radius: 2rem;
    display: block;
}

@media (max-width: 1024px) {
    .sec-company-about::before {
        height: 18rem;
    }

    .about__bg-title {
        width: 28rem;
        max-width: 70%;
        margin-left: 2rem;
        padding-top: 3rem;
    }

    .about__container {
        margin-top: 3rem;
        padding: 0 2rem 5rem 2rem;
        flex-direction: column;
        gap: 3rem;
        align-items: center;
    }

    .about__image-column {
        order: -1;
        width: 100%;
        max-width: 35rem;
    }

    .about__president-image {
        border-radius: 1.5rem;
    }

    .about__text-column {
        width: 100%;
    }

    .about__message {
        font-size: 1.4rem;
        line-height: 1.8;
        text-shadow: none;
        color: #282828;
    }

    .about__message-title {
        font-size: 2.4rem;
        color: #3b4165;
        text-shadow: none;
    }

    .about__message-subtitle {
        font-size: 1.8rem;
        color: #3b4165;
        margin-bottom: 2em !important;
    }

    .about__message-name {
        font-size: 2rem;
    }
}

/* =========================================
   VISION セクション
   ========================================= */

.sec-company-vision {
    background-color: #3b4165;
    padding-top: 8.5rem;
    padding-bottom: 10.2rem;
    text-align: center;
}

.vision__container {
    max-width: 80rem;
    margin: 0 auto;
    padding: 0 2rem;
}

.vision__title-image {
    display: block;
    width: 16.4rem;
    height: 4.4rem;
    margin: 0 auto;
}

.vision__subtitle {
    font-family: "Noto Sans JP", sans-serif;
    font-size: 2rem;
    font-weight: 400;
    line-height: 1.5;
    color: #ffffff;
    margin: 1.7rem 0 0 0;
}

.vision__slogan {
    font-family: "Noto Serif JP", serif;
    font-size: 4rem;
    font-weight: 600;
    line-height: 1.4;
    color: #ffffff;
    margin: 4.2rem 0 0 0;
}

.vision__box {
    background-color: #ffffff;
    border-radius: 1.5rem;
    padding: 4rem 5rem;
    margin-top: 5rem;
    margin-left: auto;
    margin-right: auto;
    max-width: 80rem;
    text-align: left;
}

.vision__box p {
    font-family: "Noto Sans JP", sans-serif;
    font-size: 1.5rem;
    line-height: 2;
    color: #282828;
    margin: 0 0 1.5em 0;
}

.vision__box p:last-child {
    margin-bottom: 0;
}

@media (max-width: 1024px) {
    .sec-company-vision {
        padding-top: 5rem;
        padding-bottom: 6rem;
    }

    .vision__title-image {
        width: 12rem;
        height: auto;
    }

    .vision__subtitle {
        font-size: 1.6rem;
        margin-top: 1.2rem;
    }

    .vision__slogan {
        font-size: 1.8rem;
        margin-top: 3rem;
        line-height: 1.6;
    }

    .vision__box {
        padding: 2.5rem 2rem;
        margin-top: 3rem;
    }

    .vision__box p {
        font-size: 1.4rem;
        line-height: 1.8;
    }
}

/* =========================================
   経営理念セクション
   ========================================= */

.sec-company-philosophy {
    background-color: #ffffff;
    padding-top: 12rem;
    padding-bottom: 11.4rem;
}

.philosophy__container {
    max-width: 80rem;
    margin: 0 auto;
    padding: 0 2rem;
}

.philosophy__header {
    text-align: center;
}

.philosophy__title-image {
    display: block;
    width: 54.3rem;
    height: 3.5rem;
    margin: 0 auto;
}

.philosophy__subtitle {
    font-family: "Noto Sans JP", sans-serif;
    font-size: 2rem;
    font-weight: 400;
    line-height: 1.5;
    color: #282828;
    margin: 2.8rem 0 0 0;
}

.philosophy__slogan {
    font-family: "Noto Serif JP", serif;
    font-size: 4rem;
    font-weight: 600;
    line-height: 1.4;
    color: #282828;
    margin: 3.3rem 0 0 0;
}

.philosophy__box {
    background-color: #e5ded6;
    border-radius: 1.5rem;
    padding: 4rem 5rem;
    margin-top: 5rem;
    margin-left: auto;
    margin-right: auto;
    max-width: 80rem;
    text-align: left;
}

.philosophy__box p {
    font-family: "Noto Sans JP", sans-serif;
    font-size: 1.5rem;
    line-height: 2;
    color: #282828;
    margin: 0 0 1.5em 0;
}

.philosophy__box p:last-child {
    margin-bottom: 0;
}

@media (max-width: 1024px) {
    .sec-company-philosophy {
        padding-top: 6rem;
        padding-bottom: 6rem;
    }

    .philosophy__title-image {
        width: 90%;
        max-width: 40rem;
        height: auto;
    }

    .philosophy__subtitle {
        font-size: 1.6rem;
        margin-top: 2rem;
    }

    .philosophy__slogan {
        font-size: 2rem;
        margin-top: 2.5rem;
    }

    .philosophy__box {
        padding: 2.5rem 2rem;
        margin-top: 3rem;
    }

    .philosophy__box p {
        font-size: 1.4rem;
        line-height: 1.8;
    }
}

/* =========================================
   経営方針セクション
   ========================================= */

.sec-company-policy {
    background-color: #3b4165;
    padding-top: 8.5rem;
    padding-bottom: 10rem;
}

.policy__container {
    max-width: 80rem;
    margin: 0 auto;
    padding: 0 2rem;
}

.policy__header {
    text-align: center;
}

.policy__header--second {
    margin-top: 8rem;
}

.policy__title-image {
    display: block;
    width: 18.1rem;
    height: 4.3rem;
    margin: 0 auto;
}

.policy__subtitle {
    font-family: "Noto Serif JP", serif;
    font-size: 3.2rem;
    font-weight: 600;
    line-height: 1.5;
    color: #ffffff;
    margin: 2rem 0 0 0;
}

.policy__list {
    margin-top: 3.1rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.policy__item {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 2rem;
    background-color: #ffffff;
    border-radius: 1rem;
    padding: 2.5rem 3rem;
}

.policy__item-number {
    flex-shrink: 0;
    width: 3.8rem;
    height: auto;
    margin-top: 0.3rem;
}

.policy__item-content {
    flex: 1;
}

.policy__item-title {
    font-family: "Noto Sans JP", sans-serif;
    font-size: 1.8rem;
    font-weight: 700;
    line-height: 1.4;
    color: #282828;
    margin: 0 0 0.8rem 0;
}

.policy__item-text {
    font-family: "Noto Sans JP", sans-serif;
    font-size: 1.5rem;
    font-weight: 400;
    line-height: 1.6;
    color: #282828;
    margin: 0;
}

@media (max-width: 1024px) {
    .sec-company-policy {
        padding-top: 5rem;
        padding-bottom: 6rem;
    }

    .policy__container {
        padding: 0 2rem;
    }

    .policy__title-image {
        width: 14rem;
        height: auto;
    }

    .policy__subtitle {
        font-size: 2.4rem;
        margin-top: 1.5rem;
    }

    .policy__header--second {
        margin-top: 5rem;
    }

    .policy__list {
        margin-top: 2.5rem;
        gap: 0.8rem;
    }

    .policy__item {
        gap: 1.5rem;
        padding: 2rem 1.5rem;
    }

    .policy__item-number {
        width: 2.8rem;
    }

    .policy__item-title {
        font-size: 1.6rem;
        margin-bottom: 0.5rem;
    }

    .policy__item-text {
        font-size: 1.3rem;
    }
}

/* =========================================
   会社概要セクション
   ========================================= */

.sec-company-profile {
    background-color: #ffffff;
    padding-top: 14.9rem;
    padding-bottom: 16.3rem;
}

.profile__container {
    max-width: 60rem;
    margin: 0 auto;
    padding: 0 2rem;
}

.profile__header {
    text-align: center;
}

.profile__title-image {
    display: block;
    width: 46.9rem;
    height: 4.3rem;
    margin: 0 auto;
}

.profile__subtitle {
    font-family: "Noto Sans JP", sans-serif;
    font-size: 2rem;
    font-weight: 400;
    line-height: 1.5;
    color: #000000;
    margin: 2.8rem 0 0 0;
}

.profile__list {
    margin-top: 5.7rem;
}

.profile__row {
    display: flex;
    flex-direction: row;
    align-items: baseline;
    border-bottom: 0.1rem solid #aaaaaa;
    padding: 1.8rem 0;
}

.profile__term {
    flex-shrink: 0;
    width: 22rem;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.6;
    color: #000000;
}

.profile__desc {
    flex: 1;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 1.5rem;
    font-weight: 400;
    line-height: 1.6;
    color: #000000;
    margin: 0;
}

@media (max-width: 1024px) {
    .sec-company-profile {
        padding-top: 6rem;
        padding-bottom: 6rem;
    }

    .profile__container {
        padding: 0 2rem;
    }

    .profile__title-image {
        width: 100%;
        max-width: 35rem;
        height: auto;
    }

    .profile__subtitle {
        font-size: 1.8rem;
        margin-top: 2rem;
    }

    .profile__list {
        margin-top: 2rem;
    }

    .profile__row {
        flex-direction: column;
        gap: 0.8rem;
        padding: 1.5rem 0;
    }

    .profile__term {
        width: 100%;
        font-size: 1.4rem;
    }

    .profile__desc {
        font-size: 1.4rem;
    }
}

/* =========================================
   アクセスマップセクション
   ========================================= */

.sec-company-access {
    background-color: #e5ded6;
    padding-top: 9rem;
    padding-bottom: 10.2rem;
}

.access__container {
    max-width: 100rem;
    margin: 0 auto;
    padding: 0 2rem;
}

.access__header {
    text-align: center;
}

.access__title-image {
    display: block;
    width: 22.8rem;
    height: 4.4rem;
    margin: 0 auto;
}

.access__subtitle {
    font-family: "Noto Sans JP", sans-serif;
    font-size: 2rem;
    font-weight: 400;
    line-height: 1.5;
    color: #000000;
    margin: 1rem 0 0 0;
}

.access__map-area {
    margin-top: 2.4rem;
    width: 100%;
}

.access__map-iframe {
    width: 100%;
    height: 45rem;
    border: 0;
    display: block;
}

.access__map-image {
    width: 100%;
    height: auto;
    display: block;
}

.access__link-area {
    margin-top: 2.6rem;
    text-align: left;
}

.access__link {
    display: inline-block;
    transition: opacity 0.3s ease;
}

.access__link:hover {
    opacity: 0.7;
}

.access__link-image {
    display: block;
    width: 29.6rem;
    height: 3.8rem;
}

@media (max-width: 1024px) {
    .sec-company-access {
        padding-top: 5rem;
        padding-bottom: 6rem;
    }

    .access__container {
        padding: 0 2rem;
    }

    .access__title-image {
        width: 18rem;
        height: auto;
    }

    .access__subtitle {
        font-size: 1.6rem;
        margin-top: 0.8rem;
    }

    .access__map-area {
        margin-top: 2rem;
    }

    .access__map-iframe {
        height: 30rem;
    }

    .access__link-area {
        margin-top: 2rem;
        text-align: center;
    }

    .access__link-image {
        width: 24rem;
        height: auto;
    }
}

