/* Re-start 2026: common design for lower pages. */
:root {
    --color_navy: #202620;
    --color_navy_mid: #293229;
    --color_navy_light: #384638;
    --color_blue: #009841;
    --color_blue_bright: #009841;
    --color_off_white: #f5f7f2;
    --color_gray_light: #dfe5df;
    --color_gray_text: #748074;
    --color_text: #202620;
    --color_text_sub: #606960
}

body:not(.home) {
    color: #202620;
    background: #fff
}

body:not(.home)::before,
body:not(.home)::after {
    content: '';
    position: fixed;
    left: -8vw;
    width: 116vw;
    height: 25vh;
    bottom: -9vh;
    border: 1px solid rgba(0, 152, 65, .15);
    border-radius: 43% 57% 34% 66%;
    transform: rotate(-4deg);
    z-index: -1;
    pointer-events: none
}

body:not(.home)::after {
    bottom: -14vh;
    height: 31vh;
    border-color: rgba(194, 39, 53, .16);
    border-radius: 62% 38% 58% 42%;
    transform: rotate(5deg)
}

body:not(.home) .site_header {
    height: 8.2rem;
    padding: 0 4.5%;
    background: rgba(255, 255, 255, .96);
    border-bottom: 1px solid #edf0eb;
    backdrop-filter: blur(14px)
}

body:not(.home) .header_logo svg {
    width: 14.8rem;
    height: auto;
    display: block
}

body:not(.home) .header_nav {
    gap: 0
}

body:not(.home) .nav_item>a,
body:not(.home) .nav_link {
    color: #424b42;
    font-size: 1.2rem;
    padding: 1rem .9rem;
    letter-spacing: 0
}

body:not(.home) .nav_item>a:hover,
body:not(.home) .nav_link:hover {
    color: #008039;
    background: #f3f7f1
}

body:not(.home) .nav_cta {
    background: #c22735;
    border-radius: 4rem;
    padding: 1.4rem 2rem;
    font-size: 1.2rem
}

body:not(.home) .nav_cta:hover {
    background: #a71929
}

body:not(.home) .nav_dropdown {
    background: #fff;
    border: 1px solid #dfe5df;
    box-shadow: 0 1.2rem 3rem rgba(36, 50, 36, .08)
}

body:not(.home) .nav_dropdown a {
    color: #384438
}

body:not(.home) .nav_dropdown a:hover {
    color: #008039;
    background: #f2f6f0
}

body:not(.home) .page_hero,
body:not(.home) .page_hero_light {
    position: relative;
    min-height: 39rem;
    height: auto;
    padding: 12.5rem 6% 7rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    overflow: hidden;
    background: #fff;
    border-bottom: 1px solid #dfe5df;
    isolation: isolate
}

body:not(.home) .page_hero::before,
body:not(.home) .page_hero_light::before {
    content: '';
    position: absolute;
    z-index: -1;
    width: 112%;
    height: 23rem;
    left: -6%;
    bottom: -1rem;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    transform: none;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 300' preserveAspectRatio='none'%3E%3Cpath d='M-40 272 C260 260 430 292 680 210 S1040 188 1220 201 C1340 210 1430 155 1490 112' fill='none' stroke='%23c22735' stroke-opacity='.42'/%3E%3Cpath d='M-40 296 C250 282 445 162 690 206 S1030 226 1220 201 C1360 181 1430 238 1490 272' fill='none' stroke='%23009841' stroke-opacity='.30'/%3E%3Cpath d='M-40 250 C240 224 430 286 690 234 S1020 134 1220 201 C1360 246 1430 260 1490 245' fill='none' stroke='%23009841' stroke-opacity='.20'/%3E%3Cpath d='M-40 310 C280 300 480 265 720 174 S1030 226 1220 224 C1350 222 1440 192 1490 164' fill='none' stroke='%23009841' stroke-opacity='.25'/%3E%3Cpath d='M-40 232 C280 196 490 238 735 260 S1035 218 1220 248 C1350 270 1430 310 1490 326' fill='none' stroke='%23009841' stroke-opacity='.16'/%3E%3C/svg%3E") center bottom/100% 100% no-repeat
}

body:not(.home) .page_hero::after,
body:not(.home) .page_hero_light::after {
    content: '';
    position: absolute;
    right: 9%;
    bottom: 2.8rem;
    width: 10rem;
    height: 13.8rem;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='140 205 160 233'%3E%3Cpath d='M220 438 C220 377 223 324 220 297 C220 286 220 284 220 270' fill='none' stroke='%23009841' stroke-width='3'/%3E%3Cpath d='M220 270 C216 233 183 212 150 215 C154 247 184 270 220 270Z' fill='%23009841'/%3E%3Cpath d='M220 270 C224 233 257 212 290 215 C286 247 256 270 220 270Z' fill='%23009841'/%3E%3C/svg%3E") center/contain no-repeat;
    transform: none
}

body:not(.home) .page_hero_bg {
    position: absolute;
    inset: 0;
    background: none
}

body:not(.home) .page_hero_glow {
    display: none
}

body:not(.home) .page_hero_inner,
body:not(.home) .breadcrumb,
body:not(.home) .breadcrumb_dark {
    width: min(120rem, 100%);
    max-width: 120rem;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    inset: auto;
    padding: 0;
    z-index: 2
}

body:not(.home) .breadcrumb {
    order: -1;
    display: flex;
    align-items: center;
    gap: .8rem;
    margin-bottom: 6rem
}

body:not(.home) .breadcrumb_item,
body:not(.home) .breadcrumb_current,
body:not(.home) .breadcrumb_sep,
body:not(.home) .breadcrumb_dark .breadcrumb_item,
body:not(.home) .breadcrumb_dark .breadcrumb_current {
    color: #718071;
    font: 400 1.1rem var(--Outfit)
}

body:not(.home) .breadcrumb_item:hover {
    color: #009841
}

body:not(.home) .page_hero_label {
    color: #008039;
    font: 500 1.2rem var(--Outfit);
    letter-spacing: .22em;
    margin-bottom: 1.8rem
}

body:not(.home) .page_hero_label::before {
    background: #009841
}

body:not(.home) .page_hero_title {
    color: #202620;
    font-size: clamp(3.6rem, 5vw, 6.2rem);
    font-weight: 600;
    letter-spacing: .01em;
    line-height: 1.25
}

/* News headlines can be much longer than a section title. Keep their hierarchy calm. */
body.single-post .page_hero_title {
    /* max-width: 22ch; */
    font-size: clamp(3rem, 3.2vw, 4.2rem);
    line-height: 1.48;
    letter-spacing: .02em;
    overflow-wrap: anywhere
}

body.single:not(.single-post) :is(.page_hero_title, .works_hero_title, .partner_hero_title) {
    max-width: 22ch;
    font-size: clamp(3rem, 3.2vw, 4.2rem);
    font-weight: 600;
    line-height: 1.48;
    letter-spacing: .02em;
    overflow-wrap: anywhere
}

@media(min-width:701px) {
    body.single-service .page_hero_title {
        width: max-content;
        max-width: 100%;
        white-space: nowrap;
        overflow-wrap: normal
    }
}

body:not(.home) .section_label,
body:not(.home) [class$="_label"] {
    color: #008039
}

body:not(.home) .section_label::before {
    background: #009841
}

body:not(.home) .section_title,
body:not(.home) [class$="_title"] {
    color: #202620
}

body:not(.home) .section_desc {
    color: #606960;
    line-height: 2
}

body:not(.home) .btn_primary,
body:not(.home) input[type="submit"],
body:not(.home) button[type="submit"] {
    background: #c22735;
    border-color: #c22735;
    border-radius: 999px;
    color: #fff
}

body:not(.home) .btn_primary:hover,
body:not(.home) input[type="submit"]:hover,
body:not(.home) button[type="submit"]:hover {
    background: #a71929
}

body:not(.home) .bg_navy {
    background: #263126
}

body:not(.home) .bg_off_white,
body:not(.home) .about_section.philosophy,
body:not(.home) .news_archive_page,
body:not(.home) .works_body,
body:not(.home) .partner_archive,
body:not(.home) .partner_detail,
body:not(.home) .faq_body,
body:not(.home) .contact_body,
body:not(.home) .service_archive {
    background: rgba(245, 247, 242, .88)
}

body:not(.home) :is(.works_card, .partner_card, .service_card, .svc_child_card, .feature_card, .faq_toc, .contact_form_card, .seminar_card, .news_item) {
    border-color: #dfe5df;
    border-radius: .3rem;
    box-shadow: none
}

body:not(.home) :is(.works_card, .partner_card, .service_card, .svc_child_card, .feature_card, .news_item):hover {
    border-color: rgba(0, 152, 65, .38);
    box-shadow: 0 1.5rem 4rem rgba(38, 55, 38, .08)
}

body:not(.home) :is(.feature_card, .svc_block)::before {
    background: #009841
}

body:not(.home) :is(.work_tag, .works_card_tag, .partner_card_type, .faq_toc_item, .seminar_tag, .seminar_status) {
    border-radius: 999px
}

body:not(.home) .filter_item.is_active,
body:not(.home) .faq_toc_item {
    color: #008039;
    background: rgba(0, 152, 65, .07);
    border-color: rgba(0, 152, 65, .2)
}

body:not(.home) .faq_toc_item:hover {
    color: #fff;
    background: #009841
}

body:not(.home) .faq_group_head {
    border-bottom-color: #009841
}

body:not(.home) .faq_q_icon {
    color: #008039;
    background: rgba(0, 152, 65, .09)
}

body:not(.home) .seminar_date_block {
    background: #263126;
    border-radius: .3rem
}

body:not(.home) .seminar_month {
    color: #a8d7ad
}

body:not(.home) .seminar_btn {
    background: #c22735;
    border-radius: 999px
}

body:not(.home) .svc_num,
body:not(.home) .feature_num,
body:not(.home) .filter_count_num {
    color: #009841
}

body:not(.home) .intro_img,
body:not(.home) .svc_img,
body:not(.home) .works_card_img,
body:not(.home) .partner_main_img,
body:not(.home) .article_eyecatch img {
    border-radius: 0;
    box-shadow: none
}

body:not(.home) :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], select, textarea) {
    border: 1px solid #cfd8cf;
    border-radius: .3rem;
    background: #fff
}

body:not(.home) :is(input, select, textarea):focus {
    outline: 2px solid rgba(0, 152, 65, .25);
    border-color: #009841
}

body:not(.home) :is(.article_content, .post_content, .svc_sec_text, .works_detail_content) h2 {
    border-left-color: #009841;
    color: #202620
}

body:not(.home) :is(.article_content, .post_content, .svc_sec_text, .works_detail_content) a {
    color: #008039;
    text-decoration-color: rgba(0, 152, 65, .35)
}

body:not(.home) .site_footer {
    background: rgba(255, 255, 255, .96);
    padding: 7.5rem 6% 3rem;
    border-top: 1px solid #dfe5df
}

body:not(.home) .footer_inner {
    max-width: 120rem
}

body:not(.home) .footer_top {
    grid-template-columns: 23rem 1fr;
    gap: 6rem;
    border-bottom-color: #dfe5df
}

body:not(.home) .footer_logo svg {
    width: 14rem;
    height: auto
}

body:not(.home) .footer_logo path[fill="rgb(255, 255, 255)"] {
    fill: #231815
}

body:not(.home) .footer_tagline,
body:not(.home) .footer_nav_group a {
    color: #606960
}

body:not(.home) .footer_nav_group h4 {
    color: #008039
}

body:not(.home) .footer_nav_group a:hover {
    color: #008039
}

body:not(.home) .footer_copy {
    color: #748074
}

body:not(.home) .notfound {
    background: rgba(245, 247, 242, .88)
}

body:not(.home) .notfound_code {
    color: #009841
}

/* Works detail uses its photograph as a restrained half-width visual. */
body:not(.home) .works_hero {
    height: auto;
    min-height: 50rem;
    max-height: none;
    padding: 12rem 6% 6rem;
    background: #fff;
    align-items: flex-end;
    border-bottom: 1px solid #dfe5df;
    isolation: isolate
}

body:not(.home) .works_hero_bg {
    left: auto;
    right: 0;
    width: 52%;
    transform: none;
    background-position: center;
    border-radius: 0 0 0 8rem
}

body:not(.home) .works_hero_bg:hover {
    transform: none
}

body:not(.home) .works_hero_overlay {
    background: linear-gradient(90deg, #fff 0%, #fff 42%, rgba(255, 255, 255, .88) 54%, rgba(255, 255, 255, .06) 76%)
}

body:not(.home) .works_hero::before {
    content: '';
    position: absolute;
    left: -10%;
    bottom: -20rem;
    width: 120%;
    height: 28rem;
    border: 1px solid rgba(194, 39, 53, .3);
    border-radius: 50%;
    box-shadow: 0 -1.7rem 0 -1.6rem rgba(0, 152, 65, .24);
    z-index: 1;
    pointer-events: none
}

body:not(.home) .works_hero .breadcrumb {
    position: absolute;
    top: 12rem;
    left: 6%;
    right: 6%;
    width: auto;
    max-width: none;
    margin: 0;
    padding: 0;
    color: #718071
}

body:not(.home) .works_hero_inner {
    position: relative;
    z-index: 2;
    width: min(120rem, 100%);
    max-width: 120rem;
    margin: 0 auto;
    padding: 0 52% 0 0
}

body:not(.home) .works_hero_tag {
    color: #008039;
    border-color: rgba(0, 152, 65, .28);
    background: rgba(255, 255, 255, .78)
}

body:not(.home) .works_hero_tag.tag_industry {
    color: #606960;
    border-color: #dfe5df
}

body:not(.home) .works_hero_title {
    color: #202620;
    font-weight: 600;
    line-height: 1.3
}

body:not(.home) .works_hero_client {
    color: #606960
}

@media(max-width:1199px) {
    body:not(.home) .header_nav {
        display: none
    }

    body:not(.home) .hamburger {
        display: flex
    }

    body:not(.home) .sp_drawer {
        top: 8.2rem;
        background: #f7f9f5
    }

    body:not(.home) .sp_drawer_link,
    body:not(.home) .sp_drawer_sub {
        color: #384438;
        border-color: #dfe5df
    }

    body:not(.home) .sp_drawer_cta {
        background: #c22735;
        border-radius: 999px
    }
}

@media(max-width:700px) {
    body:not(.home) .site_header {
        height: 7.2rem;
        padding: 0 7%
    }

    body:not(.home) .header_logo svg {
        width: 128px
    }

    body:not(.home) .sp_drawer {
        top: 7.2rem
    }

    body:not(.home) .page_hero,
    body:not(.home) .page_hero_light {
        min-height: 32rem;
        padding: 10.5rem 7% 5rem
    }

    body:not(.home) .breadcrumb {
        margin-bottom: 4rem
    }

    body:not(.home) .page_hero_title {
        font-size: 3.6rem
    }

    body.single-post .page_hero {
        min-height: 34rem;
        padding-bottom: 4.5rem
    }

    body.single-post .page_hero_title {
        max-width: 100%;
        font-size: 2.7rem;
        line-height: 1.55;
        letter-spacing: .01em
    }

    body:not(.home) .page_hero::after,
    body:not(.home) .page_hero_light::after {
        right: 8%;
        bottom: 1.8rem;
        width: 6.5rem;
        height: 9rem
    }

    body:not(.home) :is(.about_section, .svc_section, .seminar, .news_archive_page, .works_body, .partner_archive, .partner_detail, .faq_body, .contact_body, .service_archive) {
        padding-left: 7%;
        padding-right: 7%
    }

    body:not(.home) .footer_top {
        grid-template-columns: 1fr;
        gap: 3.5rem
    }

    body:not(.home) .footer_nav {
        grid-template-columns: 1fr 1fr
    }

    body:not(.home) .works_hero {
        min-height: 56rem;
        padding: 10rem 7% 4rem;
        align-items: flex-end
    }

    body:not(.home) .works_hero_bg {
        top: 7.2rem;
        width: 100%;
        height: 24rem;
        border-radius: 0 0 0 5rem
    }

    body:not(.home) .works_hero_overlay {
        background: linear-gradient(180deg, rgba(255, 255, 255, .05) 7.2rem, rgba(255, 255, 255, .12) 24rem, #fff 31rem)
    }

    body:not(.home) .works_hero .breadcrumb {
        top: 9rem;
        left: 7%;
        right: 7%
    }

    body:not(.home) .works_hero .breadcrumb_item,
    body:not(.home) .works_hero .breadcrumb_current,
    body:not(.home) .works_hero .breadcrumb_sep {
        color: #fff;
        text-shadow: 0 1px 5px rgba(0, 0, 0, .4)
    }

    body:not(.home) .works_hero_inner {
        padding: 0;
        width: 100%
    }
}

@media(max-width:700px) {
    body.single:not(.single-post) :is(.page_hero_title, .works_hero_title, .partner_hero_title) {
        max-width: 100%;
        font-size: 2.7rem;
        line-height: 1.55;
        letter-spacing: .01em
    }

    body.single-service .page_hero,
    body.single-partner .page_hero_light {
        min-height: 34rem
    }
}