@charset "utf-8";

/* ========== 変数 ========== */
:root {
    --_color-text: #141212;
    /* --font-family: "Helvetica", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif; */
    --_global--background-color: #F4F4F4;
    --_global--transition-duration: .25s;
    /* カスタマイズ */
    --font-family_en: "Orbitron", sans-serif;
    --font-size_xl: clamp(2.75rem, calc(0.670212765957447rem + 4.25531914893617vw), 4.5rem);
    --font-size_l: clamp(2.125rem, calc(0.045212765957447054rem + 4.25531914893617vw), 3.875rem);
    --font-size_m: clamp(1.5rem, calc(0.9057750759878419rem + 1.21580547112462vw), 2rem);
    --font-size_s: clamp(1.25rem, calc(0.952887537993921rem + 0.60790273556231vw), 1.5rem);
    --section-padding: 80px;
    --section-padding_l: 96px;
    --global-border-radius: 5px;
    --spacing_base: 32px;
    --spacing_s: 16px;
    --spacing_m: 48px;
    --spacing_l: 96px;
    --gap-col: min(64px, 4.444vw);
}

/* ========== 基本設定 ========== */
ul {
    padding-left: 0;
}

li {
    list-style: none;
}

.d_flex li {
    margin-top: 0;
}

.p_rel {
    position: relative;
}

.inline_b {
    display: inline-block;
}

.d_flex {
    display: flex;
}

.d_grid {
    display: grid;
}

.pc_none {
    display: none;
}

.mincho {
    font-family: var(--font-family_serif);
}

.tate {
    writing-mode: vertical-rl;
}

/* ========== 共通設定 ========== */
body {
    font-weight: 500;
    font-size: clamp(0.9375rem, calc(0.8632218844984803rem + 0.1519756838905775vw), 1rem);
}

.smb-section {
    --smb-section--padding: 80px;
}

/* 見出し */
.section-heading {
    gap: 0;
}

.section-heading__en {
    color: var(--accent-color);
    font-family: var(--font-family_en);
    font-size: clamp(4.25rem, calc(0.9817629179331311rem + 6.68693009118541vw), 7rem);
    font-weight: 800;
    line-height: 1;
    opacity: 0;
    overflow: hidden;
}

.is-active .section-heading__en {
    opacity: 1;
}

.section-heading__en .word {
    display: inline-flex;
    white-space: nowrap
}

.section-heading__en .word span {
    display: inline-block;
    transform: translateY(100%);
    transition: transform .8s cubic-bezier(0.7, 0.2, 0.1, 1);
    transition-delay: calc(var(--i) * 0.04s);
}


.is-active .section-heading__en span {
    transform: translateY(0);
    opacity: 1;
}

.--white .section-heading__en {
    color: white;
}

.section-heading__ja {
    color: white;
    font-size: 1.125rem;
    line-height: 1.35;
    background-color: var(--accent-color);
    padding-inline: 2px;
}

.--white .section-heading__ja {
    color: var(--accent-color);
    background-color: white;
}

.section-heading+* {
    margin-top: calc(var(--spacing_base) * 2);
}

/* ボタン */
.smb-btn:is(:active, :focus, :hover) {
    filter: brightness(1.0);
}

.smb-btn {
    background-color: var(--_color-text);
    border-radius: 0;
}

.btn-wrapper {
    display: flex;
    margin-top: var(--spacing_m);
}

.btn-wrapper.--center {
    justify-content: center;
}

.btn-wrapper.--right {
    justify-content: flex-end;
}

.btn-wrapper.--left {
    justify-content: flex-start;
}

.btn-wrapper.--col {
    flex-direction: column;
    gap: 1rem;
}

.btn__link {
    display: flex;
    align-items: stretch;
    text-decoration: none;
    color: white;
    font-weight: 700;
    font-size: 1.125em;
    border: solid 1px var(--_color-text);
}

.--white.btn__link {
    border-color: var(--accent-color);
}

.btn__label {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.5rem;
    padding-inline: 2rem;
    padding-block: 0.75rem;
    border-right: solid 1px currentColor;
    background-color: var(--_color-text);
    min-width: calc(18em - 3.5rem);
}

.--accent .btn__label {
    background-color: var(--accent-color);
}

.--white .btn__label {
    color: var(--accent-color);
    background-color: white;
    flex-grow: 1;
}

.btn__arrow {
    display: grid;
    place-items: center;
    width: 3.5rem;
    overflow: hidden;
    background-color: var(--_color-text);
}

.--accent .btn__arrow {
    background-color: var(--accent-color);
}

.--white .btn__arrow {
    background-color: white;
}

.--white .btn__arrow>svg>path {
    fill: var(--accent-color);
}

.line-btn__link {
    text-decoration: none;
    color: inherit;
    display: flex;
    align-items: center;
    gap: 1.5rem;
    border-bottom: solid 2px currentColor;
    padding-inline: 2px;
}

.btn:hover .btn__arrow>svg {
    animation: arrowHover var(--_global--transition-duration) ease-in-out;
}

.line-btn:hover svg {
    animation: arrowHover var(--_global--transition-duration) ease-in-out;
}

@keyframes arrowHover {
    30% {
        translate: 1em 0;
        opacity: 0;
    }

    60% {
        translate: -1em 0;
        opacity: 0;
    }
}

/* テーブル */
table,
tbody {
    display: block;
    width: 100%;
}

.wp-block-table tr {
    display: flex;
    flex-wrap: wrap;
}

.wp-block-table tr:nth-child(n+2) {
    margin-top: 0.5rem;
}

.wp-block-table tr td {
    display: block;
    padding-block: 1rem;
    padding-inline: 1.5rem;
    border-color: var(--accent-color);
}

.wp-block-table tr td:first-child {
    width: 25%;
    vertical-align: middle;
    background-color: var(--accent-color);
    color: white;
}

.wp-block-table tr td:last-child {
    width: 75%;
}



.wp-block-table a[href^="tel:"] {
    color: inherit;
    text-decoration: none;
    pointer-events: none;
}

/* カラム */
.wp-block-columns {
    column-gap: var(--gap-col);
}

/* ボックス */
.smb-box {
    --smb-box--border-radius: 0;
    --smb-box--border-color: transparent;
}

.smb-box:has(.box-link-arrow):hover .box-link-arrow {
    animation: arrowHover var(--_global--transition-duration) ease-in-out;
}

/* スライダー */
.spider__dots:not([data-thumbnails=true]) {
    justify-content: flex-start;
    gap: 4px;
}

.spider__dots:not([data-thumbnails=true]) .spider__dot {
    width: 80px;
    height: 6px;
    border-radius: 0;
}

.spider__dots:not([data-thumbnails=true]) .spider__dot[aria-current=true] {
    background-color: var(--accent-color);
}

/* 投稿 */
.c-entry-summary__figure {
    background-color: #D9D9D9;
    transition: all var(--_global--transition-duration) ease-in-out;
}

.c-entry-summary:hover .c-entry-summary__figure {
    filter: brightness(0.8);
}

.c-entry-summary__term {
    font-size: 0.875rem !important;
}

.c-meta__item--author,
.c-meta__item--modified {
    display: none;
}

.c-entries--simple,
.c-entries--text,
.c-entries--text2 {
    border-color: #4D4646;
}

.c-entries--simple .c-entries__item,
.c-entries--text .c-entries__item,
.c-entries--text2 .c-entries__item {
    border-color: #4D4646;
}

.c-entries--text .c-entry-summary__title {
    color: var(--accent-color);
}

/* ヘッダー */
.p-drop-nav {
    background-color: var(--accent-color);
    border-bottom: solid 2px white;
    box-shadow: none;
}

.p-drop-nav .c-container {
    max-width: none;
    padding-left: 0;
}

.l-header .c-row--middle {
    align-items: stretch;
}

/* ロゴ */
header .l-1row-header__branding {
    padding-block: 0;
    height: 100%;
}

.p-drop-nav .c-site-branding {
    padding-block: 0;
}

.l-header__content .c-site-branding {
    height: 100%;
}

header .c-site-branding__title {
    line-height: 1;
    width: fit-content;
    height: 100%;
    background-color: white;
    padding-inline: 0.5rem;
    padding-block: 0.25rem;
}

.l-header__content .c-site-branding__title {
    margin-inline-start: 0.75rem;
    margin-block-start: 0.75rem;
}

header .c-site-branding__title>a.custom-logo-link {
    display: grid;
    place-items: center;
    width: clamp(172px, calc(146.85714285714286px + 7.857142857142857vw), 260px);
    height: 100%;
}

header .c-site-branding__title>a.custom-logo-link>img {
    width: 100%;
}

/* グローバルナビ */
.l-header .u-invisible-md-down {
    display: grid;
    place-items: center;
}

.l-1row-header .c-fluid-container {
    padding-left: 0;
}

.p-global-nav .c-navbar__item>a {
    padding-block: 1rem;
}

.p-drop-nav .p-global-nav .c-navbar__item>a {
    padding-block: 1rem;
}

.p-global-nav .c-navbar__item>a>span {
    flex-direction: column;
    line-height: 1.35;
}

.p-global-nav .c-navbar__item>a>span .en {
    font-family: var(--font-family_en);
    font-weight: 800;
    font-size: 1rem;
}

.p-global-nav .c-navbar__item>a>span .ja {
    font-size: 0.8125rem;
}

.p-global-nav .g-nav__recruit>a,
.p-global-nav .g-nav__contact>a {
    padding-inline: 0;
}

.p-global-nav .g-nav__recruit>a {
    margin-inline-start: var(--_padding-1);
}

.p-global-nav .g-nav__recruit>a>span {
    height: 100%;
    justify-content: center;
    background-color: white;
    color: var(--accent-color);
    font-size: 1rem;
    font-weight: 700;
    padding-block: 0.5rem;
    padding-inline: 1.5rem;
}

.p-global-nav .g-nav__contact>a>span {
    height: 100%;
    justify-content: center;
    background-color: var(--_color-text);
    font-size: 1rem;
    font-weight: 700;
    padding-block: 0.5rem;
    padding-inline: 1.5rem;
}

/* フッター */
.l-footer {
    background-color: var(--accent-color);
    color: white;
}

.footer__logo {
    max-width: 332px;
}

.footer__logo a {
    display: block;
    padding: 0.25rem;
    background-color: white;
}

#menu-footer {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(144px, 1fr));
    gap: 1rem;
}

#menu-footer .menu-item {
    margin-top: 0;
}

#menu-footer .menu-item>a {
    display: flex;
    flex-direction: column;
    line-height: 1.5;
}

#menu-footer .menu-item>a .en {
    font-family: var(--font-family_en);
    font-weight: 700;
    font-size: 1.25rem;
}

#menu-footer .menu-item>a .ja {
    font-size: 0.875rem;
    font-weight: 700;
}

.footer__btn {
    font-size: 1.125em;
}

.footer__btn .btn__label {
    flex-grow: 1;
}

.footer__gotop>a {
    color: white;
    text-decoration: none;
    font-size: 1rem;
    font-family: var(--font-family_en);
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    border-bottom: solid 2px currentColor;
    width: fit-content;
    padding-inline: 2px;
}

.footer__gotop>a::after {
    content: "";
    display: block;
    background-color: currentColor;
    aspect-ratio: 1/cos(30deg);
    clip-path: polygon(50% 0, 100% 100%, 0 100%);
    width: 0.75rem;
}

.c-copyright--inverse {
    background-color: transparent;
}

/* ========== アニメーション ========== */
/* loopImage */
.loopImages {
    overflow: hidden;
}

.loopImages__item:first-child {
    animation: loopImage 30s -15s linear infinite;
}

.loopImages__item:nth-child(2) {
    animation: loopImage2 30s linear infinite;
}

@keyframes loopImage {
    0% {
        translate: 100% 0;
    }

    100% {
        translate: -100% 0;
    }
}

@keyframes loopImage2 {
    0% {
        translate: 0 0;
    }

    100% {
        translate: -200% 0;
    }
}

.loopImages__item figure {
    width: calc(100vw / 3.5);
}

/* loopImageY */
.loopImageY {
    position: absolute;
    top: 0;
    left: 0;
}

.loopImageY__item {
    width: 100%;
}

.loopImageY__item:nth-child(1) {
    animation: loopImageY 20s -10s linear infinite;
}

.loopImageY__item:nth-child(2) {
    animation: loopImageY2 20s linear infinite;
}

@keyframes loopImageY {
    0% {
        translate: 0 -100%;
    }

    100% {
        translate: 0 100%;
    }
}

@keyframes loopImageY2 {
    0% {
        translate: 0 -200%;
    }

    100% {
        translate: 0 0;
    }
}

/* ========== パターン ========== */
.pattern_message__copy {
    font-size: var(--font-size_m);
    font-weight: 700;
}

.pattern_message__name {
    font-weight: 700;
}

/* ========== Home ========== */
/* home_hero */
.home_hero__slider .smb-spider-slider__figure-wrapper {
    max-height: 100svh;
    min-height: 540px;
}

.home_hero__text {
    color: var(--accent-color);
    letter-spacing: -0.03em;
    line-height: 1;
    font-family: var(--font-family_en);
    font-weight: 800;
    font-size: clamp(2.75rem, calc(1.2142857142857142rem + 7.678571428571429vw), 8.125rem);
    position: absolute;
    bottom: 1.5rem;
    left: 50%;
    translate: -50% 0;
    box-sizing: initial;
    width: calc(100% - var(--_container-margin-left) * 2);
    max-width: 1440px;
    padding-left: var(--_container-margin-left);
    padding-right: var(--_container-margin-right);
    gap: 0.5rem 2rem;
}

.home_hero__text-item {
    opacity: 0;
    clip-path: inset(0 0 0 100%);
    animation: heroText 1s ease-in-out both;
}

@keyframes heroText {
    0% {
        opacity: 1;
        clip-path: inset(0 100% 0 0);
    }

    100% {
        clip-path: inset(0);
        opacity: 1;
    }
}

.home_hero__text-item .large {
    color: white;
    font-size: 1.354em;
}

/* home_top-recruit */
.home_top-recruit {
    color: white;
    background-color: var(--accent-color);
    padding-block: var(--spacing_l);
}

.home_top-recruit__wrapper {
    border: solid 2px white;
    border-radius: var(--global-border-radius);
}

.home_top-recruit__loop {
    position: absolute;
    inset: 0;
}

.home_top-recruit__loop-item {
    height: 68px;
    width: 100%;
    background-size: 2285px;
    background-repeat: repeat-x;
    animation: 30s linear infinite;
    animation-name: textScroll;
}

.home_top-recruit__loop-item.--reverse {
    animation-name: textScrollReverce;
    background-size: 2354px;
}

.home_top-recruit__loop-item:nth-child(1) {
    background-image: url(images/recruit-loop_1.svg);
}

.home_top-recruit__loop-item:nth-child(2) {
    background-image: url(images/recruit-loop_2.svg);
}

.home_top-recruit__loop-item:nth-child(3) {
    background-image: url(images/recruit-loop_3.svg);
}

@keyframes textScroll {
    0% {
        background-position: 0 center;
    }

    100% {
        background-position: -2285px center;
    }
}

@keyframes textScrollReverce {
    0% {
        background-position: 0 center;
    }

    100% {
        background-position: 2354px center;
    }
}

.home_top-recruit__inner {
    gap: 0;
}

.home_top-recruit__content {
    flex-shrink: 0;
    padding-block: 72px;
}

.home_top-recruit__header {
    background-color: var(--accent-color);
}

.home_top-recruit__heading {
    font-size: var(--font-size_xl);
    font-weight: 900;
}

.home_top-recruit__text {
    text-align: center;
    font-size: var(--font-size_m);
    font-weight: 900;
}

.home_top-recruit__image {
    align-self: flex-end;
}

.home_top-recruit__image.--01 {
    width: 28%;
}

.home_top-recruit__image.--02 {
    width: 22.84%;
}

/* home_about */
.home_about__cards {
    gap: var(--spacing_base);
}

.home_about__card {
    color: white;
    background-color: var(--accent-color);
    padding-inline: calc(var(--spacing_base) / 2);
    padding-block: var(--spacing_base);
    grid-template-rows: subgrid;
    grid-row: span 3;
    gap: var(--spacing_base);
}

.home_about__image {
    width: 240px;
    max-width: 100%;
    justify-self: center;
}

.home_about__heading {
    font-size: 1.5rem;
    display: grid;
    align-items: center;
    border-bottom: solid 2px currentColor;
}

/* home_services */
.home_services {
    color: white;
}

.home_services__column {
    padding-block: calc(var(--spacing_base) * 2) var(--section-padding_l);
}

.home_services__column::before {
    content: "";
    display: block;
    width: 100vw;
    height: 100%;
    background: url("/wp-content/uploads/2025/08/service_bg-scaled.jpg") no-repeat center center /cover;
    position: absolute;
    top: 0;
    left: 50%;
    translate: -50% 0;
}

.home_services__heading {
    font-size: var(--font-size_l);
    font-weight: 900;
}

.home_services__text {
    font-size: 1.125em;
    font-weight: 700;
    line-height: 2;
}

.home_services__box {
    background: url("/wp-content/uploads/2025/08/service_tnf.jpg") no-repeat center center / cover;
    padding-inline: var(--spacing_base);
    padding-block: var(--spacing_m);
    margin-block-start: calc(var(--spacing_base) * 2);
    transition: all var(--_global--transition-duration) ease-in-out;
}

.home_services__box:hover {
    filter: brightness(0.8);
}

.home_services__box-title {
    font-size: var(--font-size_m);
}

/* home_recruit */
.home_recruit {
    color: white;
    font-weight: 700;
    background-color: var(--accent-color);
}

.home_recruit__column {
    z-index: 1;
}

.home_recruit__content {
    position: sticky;
    top: 84px;
    z-index: 1;
}

.home_recruit__copy-main {
    font-size: var(--font-size_l);
    font-weight: 900;
    line-height: 1.25;
    letter-spacing: -0.03em;
}

.home_recruit__copy-sub {
    font-size: var(--font-size_m);
    line-height: 1.5;
}

.home_recruit__card {
    padding: var(--spacing_base);
    border: solid 2px currentColor;
    border-radius: var(--global-border-radius);
}

.home_recruit__card-title {
    padding-left: 120px;
}

.home_recruit__card:nth-child(1) .home_recruit__card-title {
    background: url("/wp-content/uploads/2025/08/recruit_1.png") no-repeat left center / contain;
}

.home_recruit__card:nth-child(2) .home_recruit__card-title {
    background: url("/wp-content/uploads/2025/08/recruit_2.png") no-repeat left center / contain;
}

.home_recruit__title-sub {
    font-size: var(--font-size_s);
}

.home_recruit__title-main {
    font-size: var(--font-size_m);
}

.home_recruit__card-income {
    font-size: var(--font-size_s);
}

.home_recruit__card-list li {
    list-style-type: disc;
    margin-left: 1.5em;
}

.home_recruit__deco {
    color: var(--sub-accent-color);
    font-size: clamp(7.5rem, calc(4.52887537993921rem + 6.079027355623101vw), 10rem);
    font-family: var(--font-family_en);
    font-weight: 900;
    line-height: 1;
    position: absolute;
    left: var(--_container-margin-left);
    bottom: 0;
}

/* home_cta */
.home_cta {
    color: white;
}

.home_cta__inner>* {
    width: 100%;
}

.home_cta-contact__lead {
    margin-top: var(--spacing_base);
}

.home_cta__btn .btn__link {
    font-size: 1.25em;
}

.home_cta__btn .btn__label {
    padding-block: 1.25rem;
}

.home_cta__btn .btn__arrow {
    width: 4.2em;
}

.home_cta-contact {
    background: url("/wp-content/uploads/2025/08/contact_bg.jpg") no-repeat center center / cover;
    display: grid;
    place-items: center;
    padding-block: var(--spacing_m);
    padding-inline: 5%;
}

.home_cta-recruit {
    background-color: var(--_color-text);
    transition: all var(--_global--transition-duration) ease-in-out;
    display: grid;
    place-items: center;
}

.home_cta-recruit:hover {
    background-color: var(--sub-accent-color);
}

.home_cta-recruit__box {
    width: 100%;
    height: 100%;
    padding-block: var(--spacing_m);
    padding-inline: 5%;
}

.home_cta-recruit__box .smb-box__body {
    height: 100%;
}

.home_cta-recruit__arrow {
    display: grid;
    place-items: center;
    width: 4.2rem;
    aspect-ratio: 1;
    background: white;
    position: absolute;
    right: 0;
    bottom: 0;
    margin-top: 0;
}

.home_cta-recruit__arrow>svg>path {
    fill: var(--accent-color);
}

/* ========== 下層ページ ========== */
body.page .l-contents__inner {
    padding-bottom: 0;
    margin-top: 0;
}

/* 下層ページヘッダー */
.c-page-header {
    color: white;
    background-color: var(--accent-color);
    padding-top: 12rem;
}

.c-page-header[data-has-image=true] {
    height: unset;
}

.c-page-header[data-has-image=true] .c-page-header__content {
    color: unset;
}

.c-page-header__bgimage>img,
.c-page-header__bgimage>picture>img {
    display: none;
}

.c-page-header__title {
    z-index: 1;
    position: relative;
    font-size: clamp(1.125rem, calc(0.875rem + 1.25vw), 2rem);
}

.c-page-header__title::before {
    font-family: var(--font-family_en);
    color: var(--sub-accent-color);
    font-size: clamp(3.5rem, calc(2.1428571428571432rem + 6.785714285714286vw), 8.25rem);
    font-weight: 700;
    line-height: 1;
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: -1;
}

/* ページヘッダー（事業内容） */
.page-id-21 .c-page-header__title::before {
    content: "Services";
}

/* ページヘッダー（会社概要） */
.page-id-19 .c-page-header__title::before {
    content: "Company";
}

/* ページヘッダー（施工実績） */
:is(.post-type-archive-works, .single-works) .c-page-header__title::before {
    content: "Works";
}

/* ページヘッダー（お知らせ） */
:is(.blog, .single-post, .category) .c-page-header__title::before {
    content: "News";
}

/* ページヘッダー（採用情報） */
.page-id-153 .c-page-header__title::before {
    content: "Recruit";
}

/* ページヘッダー（お知らせ） */
.page-id-23 .c-page-header__title::before {
    content: "Contact";
}

/* ページヘッダー（プライバシーポリシー） */
.privacy-policy .c-page-header__title::before {
    content: "Privacy Policy";
}

/* パンくず */
.p-breadcrumbs-wrapper {
    color: white;
    background-color: var(--_color-text);
    max-width: none;
    margin-inline: calc(50% - 50vw);
}

.c-breadcrumbs {
    box-sizing: initial;
    max-width: var(--wp--custom--content-width);
    padding-left: var(--_container-margin-left);
    padding-right: var(--_container-margin-right);
    margin-inline: auto;
}

/* ========== 会社概要 ========== */
.company_message__column {
    color: white;
    background-color: var(--accent-color);
}

.company_message__column-box {
    padding-inline: calc(var(--gap-col) / 2);
    padding-block: var(--spacing_base);
}

.company_message__column-item {
    gap: 1rem;
}

.company_message__title {
    font-family: var(--font-family_en);
    font-weight: 700;
    font-size: 1.125em;
}

/* company_overview */
.company_overview__column {
    gap: 16px;
}

.company_overview__map-wrap>div {
    height: 100%;
}

.company_links {
    margin-top: calc(var(--spacing_base) * 2);
}

.company_links__box {
    color: white;
    font-size: var(--font-size_m);
    font-weight: 700;
    aspect-ratio: 9/4;
    width: 100%;
    max-width: 100%;
    height: 30svh;
    transition: all var(--_global--transition-duration) ease-in-out;
}

.company_links__box:hover {
    filter: brightness(0.8);
}

.company_links__box::before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.4);
    mix-blend-mode: multiply;
}

.company_links__box.--service {
    background: url("/wp-content/uploads/2025/09/link_services.jpg") no-repeat center center / cover;
}

.company_links__box.--recruit {
    background: url("/wp-content/uploads/2025/09/link_recruit.jpg") no-repeat center center / cover;
}

.company_links__box .smb-box__body {
    height: 100%;
}

.company_links__arrow {
    display: grid;
    place-items: center;
    width: 3rem;
    aspect-ratio: 1;
    background: white;
    position: absolute;
    right: 0;
    bottom: 0;
    margin-top: 0;
}

.company_links__arrow>svg>path {
    fill: var(--accent-color);
}

/* ========== 事業内容 ========== */
.service_copy {
    font-size: var(--font-size_l);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.35;
}

/* service_intro */
.service_intro__image-cover {
    margin-right: calc(50% - 50vw) !important;
}

.service_intro__image {
    height: 100%;
}

.service_intro__image>img {
    object-fit: cover;
    height: 100%;
}

.service_intro__body {
    padding-block: calc(var(--spacing_base) * 2);
}

.service_intro__text {
    font-size: 1.125em;
    line-height: 2;
}

/* service_main */
.service_main {
    color: white;
}

.service_main::before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    inset: 0;
    background: url("/wp-content/uploads/2025/08/service_bg-scaled.jpg") no-repeat center center / cover;
}

.service_main__text {
    font-size: 1.125em;
    line-height: 2;
}

/* service_tnf */
.service_tnf {
    color: white;
    background-color: var(--accent-color);
}

.service_tnf__text {
    font-size: 1.125em;
    font-weight: 700;
    line-height: 2;
}

.service_tnf__card {
    color: var(--accent-color);
    background-color: white;
}

.service_tnf__merit {
    margin-top: calc(var(--spacing_base) * 2);
}

.service_tnf__merit-title {
    font-size: var(--font-size_l);
}

/* service_area */
.service_area {
    padding-bottom: 128px;
}

.service_area__text {
    font-size: 1.125em;
    line-height: 2;
}

.service_area__list {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    width: max(33.33333%, 304px);
    margin-left: 0 !important;
    margin-top: var(--spacing_s);
}

.service_area__list li {
    color: white;
    text-align: center;
    flex: 1;
    display: grid;
    place-items: center;
    background-color: var(--_color-text);
    padding: 0.5rem;
    margin-top: 0;
    border: solid 1px var(--_global--background-color);
}

.service_area__map-cover {
    margin-top: -118px;
}

.service_area__map-pin {
    position: absolute;
    inset: 0;
}

.service_area__works {
    margin-top: 64px;
}

.service_area__works-title {
    font-size: var(--font-size_l);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.35;
}

.service_area__works-table tr:first-child {
    border-bottom: solid 2px var(--_color-text);
}

.service_area__works-table tr:first-child>td {
    color: white;
    background-color: var(--accent-color);
}

.service_area__works-table td {
    flex: 1;
}

.service_area__works-table tr td:last-child {
    border-left: none;
}

/* ========== 採用情報 ========== */
/* recruit_itnro */
.recruit_intro {
    color: white;
    background-color: var(--accent-color);
}

.recruit_intro__text {
    font-size: 1.125rem;
    line-height: 2;
}

/* recruit_person */
.recruit_person {
    color: white;
    font-weight: 700;
}

.recruit_person::before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background: url("/wp-content/uploads/2025/09/recruit_bg.jpg") no-repeat center center / cover;
    position: absolute;
    inset: 0;
}

.recruit_person__list li {
    list-style: disc;
    margin-left: 1.5em;
}

/* recruit_posting */
.recruit_posting-pc__content {
    color: white;
    background-color: var(--accent-color);
    padding-inline: var(--spacing_base);
    padding-block: var(--spacing_base);
}

.recruit_posting__tab.smb-tabs[data-orientation=horizontal]>.smb-tabs__tabs .smb-tabs__tab {
    border-radius: 0;
}

.recruit_posting__tab .smb-tabs__tab[aria-selected=true] {
    color: white;
    border: none;
    background-color: var(--_color-text);
}

.recruit_posting__tab .smb-tabs__body {
    margin-top: var(--spacing_base);
}

.recruit_posting__tab .smb-tab-panel {
    color: white;
    background-color: var(--accent-color);
    border: none;
}

.recruit_posting__title {
    font-weight: 700;
    padding-left: 120px;
}

.recruit_posting__title.--staff {
    background: url(/wp-content/uploads/2025/08/recruit_1.png) no-repeat left center / contain;
}

.recruit_posting__title.--kantoku {
    background: url(/wp-content/uploads/2025/08/recruit_2.png) no-repeat left center / contain;
}

.recruit_posting__table {
    margin-top: var((--spacing_m));
}

.recruit_posting__table tr td:first-child {
    border: solid 1px var(--_global--background-color);
}

.recruit_posting__table tr td:last-child {
    color: var(--accent-color);
    background-color: var(--_global--background-color);
    border: solid 1px var(--_global--background-color);
}

.recruit_posting__helllowork {
    gap: var(--spacing_s);
}

/* recruit_flow */
.recruit_flow__step {
    gap: calc(var(--spacing_base) * 2);
}

.recruit_flow__step-item {
    width: 100%;
}

.recruit_flow__step-head {
    gap: 1rem;
}

.recruit_flow__step-num {
    color: white;
    background-color: var(--_color-text);
    padding-block: 0.5rem;
    padding-inline: 0.75rem;
}

.recruit_flow__step-title {
    font-size: var(--font-size_m);
    font-weight: 700;
}

.recruit_flow__image-cover {
    position: relative;
    overflow: hidden;
}

.smb-step__item__title>span {
    font-size: var(--font-size_m);
}

.recruit_flow__helllowork {
    gap: var(--spacing_s);
}

/* ========== お問い合わせ ========== */
/* お問い合わせフォーム */
#autozip {
    display: none !important;
}

.smf-control-description a[href^="tel:"] {
    color: inherit;
    text-decoration: none;
    pointer-events: none;
}

.smf-form--business .smf-item {
    border: none;
}

.smf-form--business .smf-item:nth-child(n+2) {
    margin-top: 16px;
}

.smf-form--business .smf-item__col--label {
    color: white;
    background-color: var(--accent-color);
    border: none;
}

.smf-item__description {
    color: white;
}

.smf-form .smf-text-control__control {
    border-radius: 0;
}

.smf-form--business .smf-item__col {
    border: solid 1px var(--accent-color);
}

.form_input__address-item {
    max-width: 100%;
}

/* 送信ボタン */
.smf-action .smf-button-control__control {
    background-color: var(--_color-text);
    border: 2px solid var(--_color-text);
    font-family: inherit;
    color: white;
    width: 100%;
    max-width: 400px;
    padding-block: 1rem;
    background-image: none;
    border-radius: 0;
}

/* 戻るボタン */
.smf-action .smf-button-control__control[data-action="back"] {
    background-color: white;
    color: var(--_color-text);
}

.smf-button-control {
    margin-left: 0 !important;
}

.smf-action .smf-button-control__control {
    margin-top: 24px;
}

/* ========== プライバシーポリシー ========== */
.privacy-policy li {
    list-style: inherit;
}

/* ~~~~~~~~~~~~~~~~~~~~ large-size ~~~~~~~~~~~~~~~~~~~~ */
@media screen and (max-width: 1023px) {

    /* ========== 共通設定 ========== */
    /* ヘッダー */
    [data-scrolled=true] .l-header--sticky-overlay-colored-sm {
        background-color: var(--accent-color);
    }

    .l-header__content {
        padding-block: 0;
    }

    .l-header__content .c-site-branding__title {
        margin: 0;
    }

    .l-header__content .c-row__col:has(.c-hamburger-btn) {
        display: grid;
        place-items: center;
    }

    /* ドロワー */
    #drawer-nav {
        border: solid 1px var(--_color-text);
        margin: 8px;
    }

    .c-drawer__item>a {
        font-weight: 600;
    }

    .c-drawer__item>a:has(.en) {
        display: flex;
        flex-direction: column;
    }

    .c-drawer__item .en {
        font-size: 1.25rem;
        font-family: var(--font-family_en);
        font-weight: 700;
        line-height: 1;
    }

    .sp-nav__recruit>a {
        color: var(--accent-color);
        background-color: white;
        padding-inline: 0.5rem;
        padding-block: 0.75rem;
    }

    .sp-nav__contact>a {
        background-color: var(--_color-text);
        padding-block: 0.75rem;
        padding-inline: 0.5rem;
    }

    .sp-nav__line {
        font-size: 1.75rem;
    }

    /* ========== アニメーション ========== */
    .loopImageY {
        position: relative;
        flex-direction: row !important;
        flex-wrap: nowrap;
    }

    .loopImageY__item {
        flex-direction: row !important;
        flex-wrap: nowrap;
        width: auto;
    }

    .loopImageY__item:first-child {
        animation: loopImage 30s -15s linear infinite;
    }

    .loopImageY__item:nth-child(2) {
        animation: loopImage2 30s linear infinite;
    }

    .loopImageY__item figure {
        width: calc(100vw / 2.5);
    }

    /* ========== HOME ========== */
    .home_cta__col {
        flex-direction: column;
    }

    .home_cta__inner {
        width: 100%;
    }

    /* ========== 採用情報 ========== */
    .recruit_flow__column {
        flex-direction: column;
    }

    .recruit_flow__image-cover {
        max-width: 100%;
    }
}

/* ~~~~~~~~~~~~~~~~~~~~ large-size(portorait) ~~~~~~~~~~~~~~~~~~~~ */
@media screen and (orientation: portrait) and (max-width: 1023px) {
    .home_hero__slider .smb-spider-slider__figure-wrapper:before {
        padding-top: 177.778%;
    }
}

/* ~~~~~~~~~~~~~~~~~~~~ medium-size ~~~~~~~~~~~~~~~~~~~~ */
@media screen and (max-width: 781px) {
    :root {
        --font-size_xl: clamp(2.125rem, calc(0.8262987012987013rem + 6.493506493506493vw), 4rem);
        --font-size_l: clamp(1.75rem, calc(0.7976190476190477rem + 4.761904761904762vw), 3.125rem);
        --font-size_m: clamp(1.25rem, calc(0.9036796536796536rem + 1.7316017316017316vw), 1.75rem);
    }

    /* ========== 共通設定 ========== */
    body {
        font-size: clamp(0.9375rem, calc(0.8942099567099567rem + 0.21645021645021645vw), 1rem);
    }

    .md-none {
        display: none;
    }

    /* 見出し */
    .section-heading__en {
        font-size: clamp(3.25rem, calc(1.6915584415584415rem + 7.792207792207792vw), 5.5rem);
    }

    .section-heading+* {
        margin-top: var(--spacing_m);
    }

    /* ボタン */
    .btn__label {
        padding-inline: 1.25rem;
        min-width: calc(16em - 3.5rem);
    }

    /* フッター */
    .footer__btn .btn__label {
        font-size: 1rem;
        padding-inline: 1rem;
    }

    /* ========== アニメーション ========== */
    /* loopIMage */
    .loopImages__item figure {
        width: calc(100vw / 1.5);
    }

    /* ========== HOME ========== */
    /* home_top-recruit */
    .home_top-recruit::before,
    .home_top-recruit::after {
        content: "";
        display: block;
        position: absolute;
        bottom: 0;
        z-index: 1;
    }

    .home_top-recruit::before {
        background: url("/wp-content/uploads/2025/08/join-us_1.png") no-repeat center center / cover;
        width: min(50%, 244px);
        aspect-ratio: 720 / 511;
        left: 0;
    }

    .home_top-recruit::after {
        background: url("/wp-content/uploads/2025/09/join-us_2.png") no-repeat center center / cover;
        width: min(41%, 202px);
        aspect-ratio: 550 / 480;
        right: 0;
    }

    .home_top-recruit__inner {
        flex-wrap: wrap !important;
        justify-content: center !important;
    }

    .home_top-recruit__content {
        flex-shrink: inherit;
    }

    .home_top-recruit__image:is(.--01, .--02) {
        display: none;
    }

    /* home_recruit */
    .home_recruit__card {
        padding: calc(var(--spacing_base) / 2);
    }

    .home_recruit__card-title {
        padding-left: 84px;
    }

    .home_recruit__deco {
        font-size: clamp(3.875rem, calc(3.095779220779221rem + 3.896103896103896vw), 5rem);
        left: 0;
        translate: 0 100%;
    }

    /* home_cta */
    .home_cta__btn .btn__label {
        padding: 1rem;
        font-size: 1rem;
    }

    .home_cta__btn .btn__arrow {
        width: 3.75rem;
    }

    .home_cta-recruit__arrow {
        width: 3.75rem;
    }

    /* ========== 下層ページ ========== */
    /* ========== 事業内容 ========== */
    /* service_intro */
    .service_intro__body {
        padding-bottom: 0;
    }

    /* service_area */
    .service_area {
        padding-bottom: calc(155 / 375 * 100%);
    }

    .service_area__list {
        width: 100%;
        margin-block: var(--spacing_base);
    }

    .service_area__map-cover {
        margin-top: var(--spacing_base);
        scale: 1.1;
    }

    /* ========== 会社概要 ========== */
    /* company_overview */
    .company_overview__map {
        min-height: 50svh;
    }
}

/* ~~~~~~~~~~~~~~~~~~~~ small-size ~~~~~~~~~~~~~~~~~~~~ */
@media screen and (max-width: 639px) {

    /* ========== 共通設定 ========== */
    /* セクション */
    .smb-section {
        --smb-section--padding: 64px;
    }

    /* テーブル */
    .wp-block-table tr td:is(:first-child, :last-child) {
        box-sizing: border-box;
        width: 100%;
    }

    .wp-block-table tr td:first-child {
        text-align: left;
        padding-block: 0.75rem;
    }


    /* 投稿(シンプル)*/
    .c-entries--simple .c-entry-summary__content {
        display: block;
    }

    .c-entries--simple .c-entry-summary__figure {
        float: inherit;
        width: 100%;
        margin-bottom: 20px;
    }

    /* ========== HOME ========== */
    .home_top-recruit__loop-item {
        background-size: 1142.5px;
        height: 34px;
    }

    .home_top-recruit__loop-item.--reverse {
        background-size: 1177px;
    }

    .service_area__works tr td {
        padding-inline: 0.5rem;
    }

}