@charset "UTF-8";

:root {
    --company-navy: #15344c;
    --company-blue: #1976a3;
    --company-sky: #eaf5f8;
    --company-orange: #e98928;
    --company-ink: #23313a;
    --company-gray: #66747d;
}

.company-page {
    overflow: hidden;
    color: var(--company-ink);
}

.company-inner {
    box-sizing: border-box;
    width: calc(100% - 60px);
    max-width: 1180px;
    margin-right: auto;
    margin-left: auto;
}

.company-page-title {
    background: linear-gradient(135deg, #15344c, #1976a3);
}


/* 見出し */
.company-heading {
    margin-bottom: 5rem;
    text-align: center;
}

.company-heading>p {
    margin: 0 0 1rem;
    color: var(--company-blue);
    font-family: var(--font-garamond);
    font-size: 1.4rem;
    font-weight: 700;
    letter-spacing: 0.18em;
}

.company-heading h2 {
    margin: 0;
    color: var(--company-navy);
    font-family: var(--font-serif);
    font-size: 3.5rem;
    font-weight: normal;
}


/* ==========================================================
   会社紹介
========================================================== */

.company-intro {
    position: relative;
    padding: 11rem 3rem;
    background:
        linear-gradient(135deg,
            #edf6f8,
            #fff 65%);
}

.company-intro::before {
    content: "SINCE 1909";
    position: absolute;
    right: -1rem;
    top: 2rem;
    color: rgba(21, 52, 76, 0.045);
    font-family: var(--font-garamond);
    font-size: 15rem;
    line-height: 1;
    white-space: nowrap;
}

.company-intro__layout {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(30rem, 0.7fr);
    gap: 7rem;
    align-items: center;
}

.company-kicker {
    margin: 0 0 2rem;
    color: var(--company-blue);
    font-family: var(--font-garamond);
    font-size: 1.4rem;
    font-weight: 700;
    letter-spacing: 0.18em;
}

.company-intro__message h2 {
    margin: 0;
    color: var(--company-navy);
    font-family: var(--font-serif);
    font-size: 4.5rem;
    font-weight: normal;
    line-height: 1.6;
    letter-spacing: 0.05em;
}

.company-intro__line {
    width: 8rem;
    height: 0.4rem;
    margin: 3rem 0;
    background: var(--company-orange);
}

.company-intro__message>p {
    max-width: 720px;
    margin: 0 0 2rem;
    color: var(--company-gray);
    font-size: 1.6rem;
    line-height: 2.1;
}

.company-intro__visual {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    min-height: 32rem;
    padding: 4rem 2rem;
    box-sizing: border-box;
    background:
        linear-gradient(135deg,
            var(--company-navy),
            #1b5b77);
    color: #fff;
    box-shadow: 0 2rem 5rem rgba(21, 52, 76, 0.2);
}

.company-intro__visual>span {
    color: var(--company-orange);
    font-family: var(--font-garamond);
    font-size: 11rem;
    line-height: 0.8;
}

.company-intro__visual strong {
    display: block;
    margin-bottom: 0.7rem;
    font-size: 2.2rem;
}

.company-intro__visual p {
    margin: 0;
    color: rgba(255, 255, 255, 0.72);
}


/* ==========================================================
   会社情報
========================================================== */

.company-profile {
    padding: 10rem 3rem;
    background: #fff;
}

.company-profile__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(30rem, 0.5fr);
    gap: 4rem;
    align-items: start;
}

.company-profile__table table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

.company-profile__table th,
.company-profile__table td {
    padding: 2.5rem 2.2rem;
    border-top: 1px solid #dce3e6;
    border-bottom: 1px solid #dce3e6;
    vertical-align: top;
    line-height: 1.8;
}

.company-profile__table th {
    width: 17rem;
    box-sizing: border-box;
    background: #edf4fa;
    color: var(--company-navy);
    font-weight: 700;
    text-align: left;
}

.company-profile__table td {
    color: #4f5d65;
}

.company-profile__table a {
    color: var(--company-blue);
    font-weight: 700;
    text-decoration: none;
}

.company-profile__side {
    position: sticky;
    top: 12rem;
    padding: 4rem 3rem;
    background:
        linear-gradient(135deg,
            var(--company-navy),
            #1b5872);
    color: #fff;
    box-shadow: 0 1.5rem 4rem rgba(21, 52, 76, 0.18);
}

.company-profile__side-label {
    margin: 0 0 2rem;
    color: #79c9e0;
    font-family: var(--font-garamond);
    font-size: 1.3rem;
    letter-spacing: 0.17em;
}

.company-profile__side h3 {
    margin: 0 0 2.5rem;
    font-family: var(--font-serif);
    font-size: 3rem;
    font-weight: normal;
    line-height: 1.6;
}

.company-profile__side>p {
    margin: 0;
    color: rgba(255, 255, 255, 0.74);
    line-height: 2;
}

.company-profile__side a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 3rem;
    padding: 1.8rem 0;
    border-top: 1px solid rgba(255, 255, 255, 0.24);
    border-bottom: 1px solid rgba(255, 255, 255, 0.24);
    color: #fff;
    font-weight: 700;
    text-decoration: none;
}


/* ==========================================================
   アクセス
========================================================== */

.company-access {
    padding: 10rem 3rem;
    background: var(--company-sky);
}

.company-access__layout {
    display: grid;
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
    min-height: 58rem;
    background: #fff;
    box-shadow: 0 2rem 5rem rgba(21, 52, 76, 0.12);
}

.company-access__information {
    padding: 5rem 4rem;
}

.company-access__information h3 {
    margin: 0 0 2rem;
    color: var(--company-navy);
    font-family: var(--font-serif);
    font-size: 2.7rem;
    font-weight: normal;
}

.company-access__address {
    margin: 0 0 3rem;
    color: var(--company-gray);
    line-height: 1.9;
}

.company-access__route {
    display: grid;
    grid-template-columns: 5rem minmax(0, 1fr);
    gap: 1.5rem;
    align-items: center;
    padding: 2rem 0;
    border-top: 1px solid #dce3e6;
}

.company-access__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 5rem;
    height: 5rem;
    border-radius: 50%;
    background: var(--company-navy);
    color: #fff;
    font-size: 1.8rem;
}

.company-access__route span {
    display: block;
    margin-bottom: 0.6rem;
    color: var(--company-blue);
    font-size: 1.3rem;
    font-weight: 700;
}

.company-access__route p {
    margin: 0;
    line-height: 1.8;
}

.company-access__route strong {
    color: var(--company-navy);
}

.company-access__note {
    margin: 2.5rem 0 0;
    color: #7b858b;
    font-size: 1.2rem;
    line-height: 1.8;
}

.company-access__map iframe {
    display: block;
    width: 100%;
    min-height: 58rem;
}

.company-access__buttons {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 1.5rem;
    margin-top: 3rem;
}

.company-access__map-button,
.company-access__phone {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 1.2rem;
    min-width: 28rem;
    padding: 1.8rem 2.5rem;
    box-sizing: border-box;
    text-decoration: none;
    font-weight: 700;
}

.company-access__map-button {
    background: var(--company-navy);
    color: #fff;
}

.company-access__phone {
    border: 1px solid var(--company-navy);
    background: #fff;
    color: var(--company-navy);
}


/* ==========================================================
   CTA
========================================================== */

.company-cta {
    position: relative;
    padding: 11rem 3rem;
    overflow: hidden;
    background:
        radial-gradient(circle at 85% 15%,
            rgba(25, 118, 163, 0.3),
            transparent 35%),
        linear-gradient(135deg,
            #0c2639,
            #15344c 55%,
            #0b2233);
    color: #fff;
    text-align: center;
}

.company-cta__background {
    position: absolute;
    left: 50%;
    bottom: -0.15em;
    transform: translateX(-50%);
    width: 100%;
    color: transparent;
    font-family: var(--font-garamond);
    font-size: 14rem;
    line-height: 0.8;
    white-space: nowrap;
    -webkit-text-stroke: 1px rgba(255, 255, 255, 0.06);
}

.company-cta__kicker {
    position: relative;
    margin: 0;
    color: #79c9e0;
    font-family: var(--font-garamond);
    font-size: 1.3rem;
    letter-spacing: 0.18em;
}

.company-cta h2 {
    position: relative;
    margin: 2rem 0 3rem;
    font-family: var(--font-serif);
    font-size: 5.5rem;
    font-weight: normal;
    line-height: 1.45;
}

.company-cta h2 span {
    position: relative;
    z-index: 1;
    display: inline-block;
}

.company-cta h2 span::after {
    content: "";
    position: absolute;
    z-index: -1;
    left: -0.08em;
    right: -0.08em;
    bottom: 0.14em;
    height: 0.22em;
    background: var(--company-orange);
}

.company-cta__lead {
    position: relative;
    color: rgba(255, 255, 255, 0.76);
    font-size: 1.7rem;
    line-height: 2;
}

.company-cta__actions {
    position: relative;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 1.5rem;
    margin-top: 4rem;
}

.company-cta__phone,
.company-cta__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 8rem;
    box-sizing: border-box;
    text-decoration: none;
}

.company-cta__phone {
    gap: 1.5rem;
    min-width: 32rem;
    padding: 1.2rem 3rem;
    background: var(--company-orange);
    color: #fff;
    font-size: 2.4rem;
    font-weight: 700;
}

.company-cta__phone small {
    display: block;
    font-size: 1.1rem;
    font-weight: normal;
}

.company-cta__button {
    gap: 2rem;
    min-width: 27rem;
    padding: 1.5rem 3rem;
    border: 1px solid rgba(255, 255, 255, 0.65);
    color: #fff;
    font-weight: 700;
}


/* ==========================================================
   タブレット・SP
========================================================== */

@media screen and (max-width: 1000px) {

    .company-intro__layout,
    .company-profile__layout,
    .company-access__layout {
        grid-template-columns: 1fr;
    }

    .company-intro__visual {
        min-height: 25rem;
    }

    .company-profile__side {
        position: static;
    }

    .company-access__map iframe {
        min-height: 45rem;
    }
}

@media screen and (max-width: 768px) {
    .company-inner {
        width: 100%;
    }

    .company-intro,
    .company-profile,
    .company-access,
    .company-cta {
        padding-right: 2rem;
        padding-left: 2rem;
    }

    .company-intro {
        padding-top: 8rem;
        padding-bottom: 8rem;
    }

    .company-intro::before {
        font-size: 7rem;
    }

    .company-intro__message h2 {
        font-size: 3.2rem;
    }

    .company-intro__message>p {
        font-size: 1.5rem;
    }

    .company-intro__visual>span {
        font-size: 8rem;
    }

    .company-heading h2 {
        font-size: 2.8rem;
    }

    .company-profile__table table,
    .company-profile__table tbody,
    .company-profile__table tr,
    .company-profile__table th,
    .company-profile__table td {
        display: block;
        width: 100%;
        box-sizing: border-box;
    }

    .company-profile__table th {
        padding: 1.3rem 1.5rem;
        border-bottom: 0;
    }

    .company-profile__table td {
        padding: 1.8rem 1.5rem;
    }

    .company-profile__side {
        padding: 3.5rem 2.5rem;
    }

    .company-access__information {
        padding: 4rem 2.3rem;
    }

    .company-access__route {
        grid-template-columns: 4.5rem minmax(0, 1fr);
    }

    .company-access__icon {
        width: 4.5rem;
        height: 4.5rem;
    }

    .company-access__map iframe {
        min-height: 38rem;
    }

    .company-access__buttons {
        display: grid;
        grid-template-columns: 1fr;
    }

    .company-access__map-button,
    .company-access__phone {
        width: 100%;
        min-width: 0;
    }

    .company-cta {
        padding-top: 8rem;
        padding-bottom: 8rem;
    }

    .company-cta h2 {
        font-size: 3.8rem;
    }

    .company-cta__lead br {
        display: none;
    }

    .company-cta__actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .company-cta__phone,
    .company-cta__button {
        width: 100%;
        min-width: 0;
    }

    .company-cta__background {
        font-size: 7rem;
        white-space: normal;
    }
}