/* Typography and Colors */
h2, h3, h4, .globalNav, .footerNav, .sub-title, .webFont {
    font-family: 'Zen Kaku Gothic New', sans-serif;
}

body {
    color: #000000;
}

a, a:hover {
    color: #76a1a6;
}

/* Navigation */
.globalNav a:hover, .mobileNav a:hover, #next .button, .fixed-menu, .content-faq dt:before, table.original-table th, .before-after-wrapper .bf-arrow:before, .blog-side-nav a, .breadcrumb a {
    background: #000000;
    color: #ffffff;
}

.mobileNav a:hover:after {
    border-color: #ffffff #ffffff transparent transparent;
}

/* Buttons */
.design_button_type1 .button {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    letter-spacing: 0.1em;
    background: #000;
    border: 1px solid #000;
    position: relative;
}

.design_button_type1 .button:hover {
    background: #e3e3e3;
    color: #000;
    border: 1px solid #e3e3e3;
}

.design_button_type1 .button::after {
    content: "→";
    position: absolute;
    right: 3%;
    color: #fff;
}

.design_button_type1 .button:hover::after {
    right: 2%;
    color: #000;
}

/* Miscellaneous */
.set_left.content-child-button {
    margin-left: 0;
}

.tC {
    text-align: center;
}

.section-wrapper:not(:last-child) {
    margin-bottom: 100px;
}

.page-contact footer {
    margin-top: 100px;
}

h3 {
    font-size: 1.6rem;
}

h3, h4 {
    font-weight: normal;
    letter-spacing: 0.2em;
    margin-bottom: 40px;
    line-height: 1.5;
}

h3 img {
    width: auto;
    max-width: 100%;
    height: auto;
}

.s28, .s29 {
    font-size: 175%;
}

.s29, .s30, .s31 {
    background-color: #ffffff;
    color: #000000;
}

@media screen and (min-width: 768px) {
    .vertical.mb50 .s29 {
        width: 250px; /* PC表示の幅を調整 */
        white-space: nowrap; /* 改行を防ぐ */
    }
    .vertical.mb50 .s30 {
        width: 125px; /* PC表示の幅を調整 */
        white-space: nowrap; /* 改行を防ぐ */
    }

    .mb40 .s30 {
        width: 355px; /* PC表示の幅をピクセルで調整 */
        display: inline-block; /* 改行を防ぐ */
    }
    .mb40 .s31 {
        width: 165px; /* PC表示の幅をピクセルで調整 */
        display: inline-block; /* 改行を防ぐ */
    }
}

@media screen and (max-width: 767px) {
    .vertical.mb50 .s29 {
        width: 60%; /* スマートフォン表示の幅を調整 */
        white-space: nowrap; /* 通常の改行 */
    }
    .vertical.mb50 .s30 {
        width: 25%; /* スマートフォン表示の幅を調整 */
        white-space: nowrap; /* 通常の改行 */
    }
    .mb40 .s30 {
        width: 90%; /* スマートフォン表示の幅を%で調整 */
        display: block; /* 通常の改行 */
    }
    .mb40 .s31 {
        width: 40%; /* スマートフォン表示の幅を%で調整 */
        display: block; /* 通常の改行 */
    }
}

.s30 {
    width: 8%;
}

.s22 {
    font-size: 137.5%;
}

.s20 {
    font-size: 125%;
}

.s14 {
    font-size: 87.5%;
}

.mb50 {
    margin-bottom: 50px !important;
}

.mb40 {
    margin-bottom: 40px !important;
}

.vertical > span {
    display: block;
}

.tablize {
    display: flex;
}

.bg_set {
    position: relative;
}

.bg_set::before, .bg_set::after {
    content: "";
    position: absolute;
    z-index: -1;
}

.bg_fill.section-wrapper {
    padding-top: 80px;
    padding-bottom: 80px;
}

.reset_width.section-wrapper {
    padding: 0;
}

.reset_width .content-wrapper {
    max-width: 100%;
}

#common_content {
    background: url(../images/index_10_bg.jpg) no-repeat center center / cover;
    padding-top: 80px;
    padding-bottom: 220px;
}

.common-contents li + li {
    margin-top: 20px;
}

.page-home .gallery_list_outer, .index_8.section-wrapper, .page-service .gallery_list_outer, .service_main.section-wrapper, .service_sub .content-wrapper, .service_sub .contents-num0, .service_sub .contents-num1 {
    margin-bottom: 40px;
}

#index_5 {
    margin-bottom: 0;
}

.index_block .txt_box {
    background: url(../images/index_05_bg.jpg) no-repeat center center / cover;
    padding: 4%;
}

#index_7 .contents-slider-wrap {
    padding-top: 64.24%;
}

#index_7 .section-child-num1 .contents-num1 {
    margin-bottom: 15px;
}

#reason_5 {
    background: #f0f0f0;
}

#reason_5 .content-repeat-wrapper {
    background: #fff;
    border: 1px solid #000;
    padding: 60px 95px;
}

.service_head.section-wrapper {
    margin-bottom: 50px;
    padding-top: 180px;
    padding-bottom: 180px;
}

#service_2, #service_5 {
    background: url(../images/service_02_bg.jpg) no-repeat center center / cover;
}

.service_head .vertical span span {
    background: #fff;
    padding: 0 5px;
}

/* Contact Section */
#contact_1 {
    background: url(../images/contact_01_bg.jpg) no-repeat center center / cover;
    padding-top: 100px;
    padding-bottom: 100px;
}

#contact_2 {
    margin-bottom: 40px;
}

/* Responsive Styles */
@media screen and (min-width: 768px) {
    body {
        font-size: 1.6rem;
    }
    
    .adjust_size_two .content-repeat-box {
        width: 48.7%;
        max-width: 535px;
    }
    
    .adjust_size_three .content-repeat-box {
        width: 31.9%;
        max-width: 350px;
    }
    
    #common_content .common-contents > p {
        width: 31.9%;
    }
    
    #index_1 {
        background: url(../images/index_01_bg.png) no-repeat center center;
        padding-top: 80px;
        padding-bottom: 120px;
        margin-bottom: 50px;
    }
    
    .index_block .content-repeat-box {
        width: 25%;
        margin-top: 0 !important;
    }
    
    #index_7 .section-child-num0 {
        width: 51.36%;
    }
    
    #index_7 .section-child-num1 {
        width: 44.72%;
        align-self: center;
    }
    
    .reason_block:not(#reason_4) {
        margin-bottom: 70px;
    }
    
    .reason_block .img_box {
        width: 45.63%;
        align-self: center;
    }
    
    .reason_block .txt_box {
        width: 48.18%;
        align-self: center;
    }
    
    #reason_5 .content-repeat-box {
        width: 48.4%;
        max-width: 440px;
    }
    
    .service_main .img_box {
        width: 35.81%;
    }
    
    .service_main .txt_box {
        width: 59%;
        align-self: center;
    }
    
    .service_sub .content-repeat-box {
        width: 32%;
    }
}

@media screen and (max-width: 767px) {
    .sp_disp {
        margin-top: 0 !important;
    }
    
    .section-parallax {
        margin-bottom: 0 !important;
    }
    
    .sp_rev .section-child-num0 {
        order: 2;
        margin-top: 25px;
    }
    
    .sp_rev .section-child-num1 {
        margin-top: 0;
    }
    
    .body_wrapper .single-main .content-child-button {
        width: 100%;
    }
    
    .section-wrapper:not(:last-child), .page-contact footer {
        margin-bottom: 50px;
    }
    
    h3, h4 {
        font-size: 1.2rem;
    }
    
    #common_content {
        padding-bottom: 20%;
        background-position: calc(45%);
    }
    
    .index_block .content-repeat-box {
        margin-top: 0;
    }
    
    #index_6 .section-child-num1 {
        order: 1;
    }
    
    #index_6 .section-child-num0 {
        order: 2;
    }
    
    #index_6 .section-child-num3 {
        order: 3;
    }
    
    #index_6 .section-child-num2 {
        order: 4;
    }
    
    #reason_5 .content-repeat-wrapper {
        padding: 40px;
    }
    
    .service_head.section-wrapper {
        padding-top: 60px;
        padding-bottom: 60px;
    }
    
    .service_sub .content-wrapper {
        padding: 50px 35px;
    }
}
