html {
    background: #fff;
    color: #343434;
    width: 100vw;
    overflow-x: hidden
}

body {
    line-height: 180%;
    font-feature-settings: "palt";
}

.mv {
    width: 100vw;
    height: 100vh;
    background-image: url(/assets/img/mv-bg.jpg);
    /* background-image: url('https://images.unsplash.com/photo-1461749280684-dccba630e2f6?auto=format&fit=crop&w=1500&q=80'); */
    background-size: cover
}

.mv__logo {
    position: absolute;
    transform: translate(-50%, -50%);
    top: 50%;
    left: 50%;
}

.mv__logo img {
    width: 41.66666666666667vw
}

.header {
    position: -webkit-sticky;
    box-shadow: 0 4px 4px 0 rgba(0, 0, 0, .1);
    position: sticky;
    top: 0;
    background-color: #fff;
    color: #fff;
    padding: 1.66667vw 2.77778vw;
    display: flex;
    justify-content: space-between;
    align-items: center;
    z-index: 1000
}

.header .logo {
    width: 10.98264vw;
    display: block
}

.header .logo img {
    width: 100%
}

.header nav {
    display: flex;
    gap: 2.08333vw;
    opacity: 1;
    transition: opacity .3s ease
}

.header nav a::after {
    position: absolute;
    bottom: -.20833vw;
    left: 0;
    content: '';
    width: 100%;
    height: 1px;
    background: #da2c38;
    transform: scale(0, 1);
    transform-origin: left top;
    transition: transform .3s
}

.header nav a:hover::after {
    transform: scale(1, 1)
}

.header nav.pc-only {
    display: flex
}

.header nav.sp-only {
    display: none;
    box-shadow: 0 4px 4px 0 rgba(0, 0, 0, .1);
    position: absolute;
    top: 100%;
    left: 0;
    background-color: #fff;
    width: 100%;
    padding: 6.4vw 0;
    flex-direction: column;
    gap: 4.26667vw
}

.header nav.sp-only.active {
    display: flex;
    gap: 6.4vw
}

.header nav a {
    color: #00527f;
    text-decoration: none;
    position: relative;
    font-size: 1.11111vw
}

/* .header nav a:last-child {
    font-weight: 700
} */

.hamburger {
    display: none;
    font-size: 1.5em;
    cursor: pointer
}

.hamburger i {
    color: #333;
    transition: transform .3s ease, opacity .3s ease
}

.hamburger.active i {
    transform: rotate(90deg);
    opacity: 0
}

.message {
    display: flex;
    flex-direction: column;
    gap: 3.33333vw;
    align-items: center;
    padding: 6.94444vw 0
}

.message img {
    width: 48.45556vw
}

.message p {
    font-family: 'Noto Sans JP', 'ヒラギノ角ゴ ProN', 'Hiragino Kaku Gothic ProN', 'メイリオ', Meiryo, sans-serif;
    font-size: 1.66667vw;
    text-align: center;
    font-style: normal;
    font-weight: 800;
    line-height: 180%;
    letter-spacing: 1.2px
}

.section {
    position: relative
}

.section__inner {
    padding: 11.11111vw 15.41667vw
}

.section__inner.--side120 {
    padding: 11.11111vw 8.33333vw
}

.section__tit {
    margin: 0 auto 3.33333vw
}

.section__tit h2 {
    display: block;
    position: relative;
    width: -moz-fit-content;
    width: fit-content;
    margin: 0 auto;
    font-family: 'Noto Sans JP', 'ヒラギノ角ゴ ProN', 'Hiragino Kaku Gothic ProN', 'メイリオ', Meiryo, sans-serif;
    font-size: 2.5vw;
    font-weight: 700;
    line-height: 100%;
    padding-bottom: 1.77083vw
}

h2 {
    color: #00527f;
}

.section__tit h2.--big {
    font-size: 2.5vw;
}

/* .section__tit h2.--big::after {
    background: #00527f
} */

.section__tit h2.--white {
    color: #fff
}

.section__tit h2::after {
    content: '';
    transform: translate(-50%, 0);
    bottom: 0;
    left: 50%;
    position: absolute;
    display: block;
    width: 2.77778vw;
    height: .10417vw;
    background: var(--DA2C38, #da2c38)
}

.section.--blue {
    background-color: #00527f
}

.section.--lightblue {
    background-color: #f8faff
}

.section.--phi {
    background-image: url(/assets/img/phi-bg.jpg)
}

.section.--phi::after {
    content: '';
    position: absolute;
    background-size: cover;
    bottom: 0;
    right: 0;
    display: block;
    width: 19.58333vw;
    height: 19.58333vw;
    background-image: url(/assets/img/phi-abslute.png)
}

.business__inner {
    display: flex;
    gap: 2.77778vw;
    justify-content: space-between;
    padding-top: 2.22222vw
}

.business__child {
    color: #fff;
    display: flex;
    flex-direction: column;
    gap: 2.22222vw;
    width: 100%
}

.business__child img {
   max-width: 20.833333333333336vw;
    margin: 0 auto;
    border-radius: 4px;
}

.business__child .child-txt {
    display: flex;
    flex-direction: column;
    text-align: center;
    gap: .55556vw
}

.business__child .child-txt h3 {
    line-height: 180%;
    font-size: 1.38889vw;
    font-weight: 700
}

.business__child .child-txt p {
    line-height: 180%;
    font-size: 1.11111vw;
    font-weight: 400
}

.philosophy {
    padding-top: 1.11111vw;
    display: flex;
    flex-direction: column;
    gap: 4.16667vw;
    position: relative;
    z-index: 3
}

.philosophy__child {
    text-align: center
}

.philosophy__child h3 {
    font-family: 'Noto Sans JP', 'ヒラギノ角ゴ ProN', 'Hiragino Kaku Gothic ProN', 'メイリオ', Meiryo, sans-serif;
    line-height: 100%;
    font-weight: 700;
    font-size: 2.22222vw;
    margin-bottom: .83333vw
}

.philosophy__child p {
    line-height: 180%;
    font-size: 1.38889vw;
    font-weight: 400;
    letter-spacing: .06944vw
}

.topmessage__upper {
    margin-bottom: 8.33333vw
}

.topmessage__upper p {
    font-weight: 600;
    text-align: center;
    font-family: 'Noto Sans JP', 'ヒラギノ角ゴ ProN', 'Hiragino Kaku Gothic ProN', 'メイリオ', Meiryo, sans-serif;
    line-height: 170%;
    font-size: 1.66667vw;
    letter-spacing: 2px;
}

.topmessage__upper p span {
    font-weight: 700;
    color: #00527f
}

.topmessage__profile {
    max-width: 600px;
    margin: 0 auto;
}

.topmessage__profile .name {
    font-family: 'Noto Sans JP', 'ヒラギノ角ゴ ProN', 'Hiragino Kaku Gothic ProN', 'メイリオ', Meiryo, sans-serif;
    font-weight: 500;
    line-height: 100%;
    font-size: 1.66667vw;
    padding-left: 1.11111vw;
    margin-bottom: 1.66667vw;
    border-left: #da2c38 .10417vw solid
}

.topmessage__profile .name span {
    font-family: 'Noto Sans JP', 'ヒラギノ角ゴ ProN', 'Hiragino Kaku Gothic ProN', 'メイリオ', Meiryo, sans-serif;
    font-weight: 100;
    display: inline-block;
    font-size: 1.11111vw;
    padding-left: 1.25vw
}

.topmessage__profile .detail {
    display: flex;
    gap: 3.05556vw
}

.topmessage__profile .detail p {
    font-size: 1.11111vw;
    line-height: 180%;
    letter-spacing: .05556vw
}

.topmessage__profile .detail img {
    width: 14.16667vw;
    height: 100%
}

.company__inner {
    width: 40.69444vw;
    margin: 0 auto
}

.company__inner .company__child {
    display: flex;
    padding: 1.66667vw 1.66667vw 1.66667vw 0;
    text-align: left;
    border-bottom: 1px solid #d9d9d9;
    align-items: center
}

.company__inner .company__child i {
    line-height: 100%;
    font-style: normal;
    width: 10.97222vw;
    color: #686868;
    font-size: .97222vw
}

.company__inner .company__child p {
    line-height: 180%;
    font-size: 1.11111vw;
    max-width: 28.40278vw
}

.company__inner .company__child:last-child {
    border-bottom: none
}

.footer {
    background-color: #00527f;
    padding: 3.47222vw 2.77778vw
}

.footer__inner {
    display: flex;
    gap: 8.33333vw
}

.footer__inner .left {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    color: #fff
}

.footer__inner .left img {
    width: 19.72222vw;
    margin-bottom: .55556vw
}

.footer__inner .left p {
    font-size: 1.11111vw;
    font-weight: 500;
    line-height: 180%
}

.footer__inner .left .copy {
    font-size: .83333vw;
    font-weight: 500;
    line-height: 180%
}

.footer__inner .right iframe {
    width: 63.05556vw;
    height: 19.44444vw;
    filter: grayscale(100%)
}

footer {
    display: none
}

.contact__inner form {
    font-size: 1.11111vw;
    font-style: normal;
    font-weight: 400;
    line-height: 187.5%;
    letter-spacing: .8px;
    display: flex;
    flex-direction: column;
    max-width: 590px;
    width: 100%;
    margin: 0 auto
}

.contact__inner form input[type=email],
.contact__inner form input[type=text],
.contact__inner form textarea {
    width: 100%;
    padding: .69444vw;
    border-radius: 4px;
    border: 1px solid #bdbdbd;
    margin: 0 0 1.11111vw
}

.contact__inner form input[type=submit] {
    padding: .83333vw 3.19444vw;
    max-width: 13.33333vw;
    margin: 0 auto;
    display: block;
    cursor: pointer;
    border-radius: 4px;
    box-shadow: 0 4px 16px 0 rgba(0, 0, 0, .1);
    font-weight: 700;
    font-size: 1.66667vw;
    color: #fff;
    border: none
}

.contact__inner form .need {
    display: inline-block;
    border-radius: .13889vw;
    background: var(--DA2C38, #da2c38);
    padding: 2px 6px;
    color: #fff;
    margin-left: .27778vw;
    font-size: .83333vw
}

.contact__inner form .btnArea {
    margin-top: .83333vw
}

.contact__inner form .wpcf7-not-valid-tip {
    font-size: .83333vw
}

.contact__inner form .wpcf7-response-output {
    text-align: center
}

.contact__lead {
    text-align: center;
    font-size: 1.11111vw;
    font-style: normal;
    font-weight: 400;
    line-height: 180%
}

.submit-btn {
    background-color: transparent;
    border: none;
    cursor: pointer;
    outline: 0;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    color: #fff;
    padding: .55556vw 1.66667vw;
    background: var(--DA2C38, #da2c38);
    cursor: pointer
}

.submit-btn[disabled] {
    background-color: #ccc;
    cursor: not-allowed
}

.privacy {
    text-align: center;
    display: flex;
    justify-content: center
}

.openModal {
    display: inline;
    background: 0 0;
    border: none;
    color: #1232a0;
    text-decoration: underline
}

.modalArea {
    display: none;
    position: fixed;
    z-index: 10;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%
}

.modalBg {
    width: 100%;
    height: 100%;
    background-color: rgba(30, 30, 30, .9)
}

.modalWrapper {
    overflow-y: scroll;
    max-height: 70vh;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 70%;
    max-width: 34.72222vw;
    padding: .69444vw 2.08333vw;
    background-color: #fff
}

.closeModal {
    position: absolute;
    top: .5rem;
    right: 1rem;
    cursor: pointer
}

@media (max-width:768px) {
    .mv__logo {
        width: 74.66667vw
    }

    .mv__logo img {
        width: 100%
    }

    .header {
        padding: 3.2vw 4.26667vw
    }

    .header .logo {
        width: 42.17333vw
    }

    .header nav a {
        font-size: 4.26667vw;
        text-align: center
    }

    .header nav.pc-only {
        display: none
    }

    .header nav.sp-only {
        display: none
    }

    .hamburger {
        display: block
    }

    .message {
        padding: 18.13333vw 4.26667vw;
        gap: 8.53333vw
    }

    .message img {
        width: 89.06667vw
    }

    .message p {
        font-size: 5.33333vw
    }

    .section__inner {
        padding: 21.33333vw 4.26667vw
    }

    .section__inner.--side120 {
        padding: 21.33333vw 4.26667vw
    }

    .section__tit {
        margin: 0 auto 8.53333vw
    }

    .section__tit h2 {
        font-size: 6.4vw;
        padding-bottom: 4.26667vw
    }

    .section__tit h2.--big {
        font-size: 7.46667vw
    }

    .section__tit h2::after {
        width: 4.26667vw;
        height: .4vw
    }

    .section.--phi::after {
        width: 53.33333vw;
        height: 53.33333vw
    }

    .business__inner {
        flex-direction: column;
        gap: 10.66667vw;
        padding-top: 4.26667vw
    }

    .business__child {
        /* flex-direction: row; */
        gap: 4.26667vw;
        justify-content: start;
        align-items: center
    }

    .business__child img {
        max-width: 80vw
    }

    .business__child .child-txt {
        text-align: center;
        gap: 2.13333vw
    }

    .business__child .child-txt h3 {
        font-size: 4.8vw
    }

    .business__child .child-txt p {
        font-size: 3.73333vw
    }

    .philosophy {
        padding-top: 4.26667vw;
        gap: 13.86667vw
    }

    .philosophy__child h3 {
        font-size: 6.4vw;
        margin-bottom: 4.8vw
    }

    .philosophy__child p {
        font-size: 4.26667vw;
        letter-spacing: .26667vw
    }

    .topmessage__upper {
        margin-bottom: 16vw
    }

    .topmessage__upper p {
        font-size: 4.26667vw;
        text-align: center;
        word-break: auto-phrase
    }

    .topmessage__profile .name {
        font-size: 5.33333vw;
        padding-left: 3.2vw;
        margin-bottom: 3.2vw;
        border-left: #da2c38 .4vw solid
    }

    .topmessage__profile .name span {
        font-size: 3.2vw;
        padding-left: 2.13333vw
    }

    .topmessage__profile .detail {
        gap: 0
    }

    .topmessage__profile .detail p {
        font-size: 3.73333vw;
        letter-spacing: .21333vw
    }

    .company__inner {
        width: 89.33333vw
    }

    .company__inner .company__child {
        padding: 6.4vw 0 6.4vw 0
    }

    .company__inner .company__child i {
        width: 26.66667vw;
        font-size: 3.2vw
    }

    .company__inner .company__child p {
        font-size: 4.26667vw;
        max-width: 58.4vw
    }

    .footer {
        padding: 8.53333vw 4.26667vw
    }

    .footer__inner {
        gap: 8.53333vw;
        flex-direction: column
    }

    .footer__inner .left img {
        width: 48vw;
        margin-bottom: 2.13333vw
    }

    .footer__inner .left p {
        font-size: 3.73333vw
    }

    .footer__inner .left .copy {
        font-size: 3.2vw
    }

    .footer__inner .right iframe {
        width: 100%;
        height: 53.33333vw
    }

    .contact__inner form {
        font-size: 4.26667vw;
        max-width: unset;
        padding: 6.4vw 0 0
    }

    .contact__inner form input[type=email],
    .contact__inner form input[type=text],
    .contact__inner form textarea {
        margin: 0 0 4.26667vw
    }

    .contact__inner form input[type=submit] {
        padding: 3.2vw 12.26667vw;
        max-width: 51.2vw;
        font-size: 6.4vw
    }

    .contact__inner form .need {
        border-radius: .53333vw;
        margin-left: 1.06667vw;
        font-size: 3.2vw
    }

    .contact__inner form .btnArea {
        margin-top: 3.2vw
    }

    .contact__inner form .wpcf7-not-valid-tip {
        font-size: 3.2vw
    }

    .contact__lead {
        font-size: 4.26667vw
    }

    .modalWrapper {
        max-width: 89.33333vw;
        padding: 3.2vw 4.26667vw;
        width: 90%
    }
}

/*# sourceMappingURL=top.css.map */