/* ========== 変数 ========== */
:root {
    --_color-text: #3F4551;
    --_global--background-color: #FAFBFC;
    --_global--transition-duration: .4s;
    --_margin1: var(--spacing_md);
    --_container-margin-right: var(--spacing_md);
    --_container-margin-left: var(--spacing_md);
    /* カスタマイズ */
    --font-family_serif: "Shippori Mincho", "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
    --font-family_en: "Marcellus SC", "Helvetica", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
    --color_white: #ffffff;
    --spacing_basic: 64px;
    --spacing_xxl: 128px;
    --spacing_xl: 96px;
    --spacing_lg: 48px;
    --spacing_md: 32px;
    --spacing_sm: 16px;
    --font-size_lg: clamp(1.75rem, calc(1.5357142857142856rem + 1.0714285714285714vw), 2.5rem);
    --font-size_md: clamp(1.375rem, calc(1.1964285714285714rem + 0.8928571428571428vw), 2rem);
    --font-size_sm: clamp(1.125rem, calc(1.0892857142857142rem + 0.17857142857142858vw), 1.25rem);
    --section-padding: 96px;
    --section-padding_lg: 240px;
    --box-shadow: 4px 4px 0 var(--accent-color);
    --box-shadow_wide: 8px 8px 0 var(--accent-color);
}

/* ========== 基本設定 ========== */
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 {
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
}

:is(.is-layout-flow, .is-layout-constrained)>p+p {
    margin-top: 1rem;
}

/* ========== 共通設定 ========== */
.l-container::before,
.l-header::before {
    content: "";
    display: block;
    background: url(/wp-content/uploads/2025/05/bg.jpg) repeat top left;
    position: absolute;
    inset: 0;
    opacity: 0.3;
}

.home .grecaptcha-badge {
    visibility: hidden;
}

.smb-section {
    --smb-section--padding: var(--section-padding);
}

/* 見出し */
h2.wp-block-heading {
    font-family: var(--font-family_serif);
    font-size: var(--font-size_lg);
}

.section_heading+* {
    margin-top: var(--spacing_md);
}

.section_heading p {
    font-family: var(--font-family_en);
    font-size: 0.875rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.section_heading p::before {
    content: "";
    display: inline-block;
    width: 1rem;
    height: 1px;
    background-color: currentColor;
}

.section_heading h2 {
    font-family: var(--font-family_serif);
    font-size: var(--font-size_lg);
    font-weight: 600;
    line-height: 1.5;
    margin-top: 0;
}

/* ボタン */
.smb-btn:is(:active, :focus, :hover) {
    filter: brightness(1.0);
}

.smb-btn-wrapper {
    position: relative;
}

.smb-btn-wrapper:not(.is-style-ghost, .pattern_cta__btn, .footer_btn, .contact_intro__btn)::after {
    content: "";
    display: block;
    width: calc(100% - 6px);
    height: calc(100% - 6px);
    border-right: solid 1px var(--accent-color);
    border-bottom: solid 1px var(--accent-color);
    position: absolute;
    right: 0;
    bottom: 0;
    translate: 6px 6px;
    clip-path: polygon(10% 0, 100% 0, 100% 70%, 87% 100%, 0 100%, 0 20%);
    z-index: -1;
}

.smb-btn {
    --_global--transition-duration: .3s;
    border-radius: 0;
    padding-inline: 2rem;
    padding-block: 1rem;
    min-width: 264px;
}

.smb-btn-wrapper:not(.is-style-ghost, .pattern_cta__btn) .smb-btn {
    clip-path: polygon(10% 0, 100% 0, 100% 80%, 90% 100%, 0 100%, 0 20%);
}

.smb-btn-wrapper:not(.is-style-ghost, .pattern_cta__btn, .contact_intro__btn) .smb-btn:hover {
    translate: 6px 6px;
    opacity: 0.9;
}

.pattern_cta__btn {
    container-type: inline-size;
    font-family: var(--font-family_serif);
}

.pattern_cta__btn .smb-btn {
    font-weight: 600;
    font-size: min(6.5cqw, 2rem);
}

.smb-btn-wrapper:not(.contact_intro__btn) .smb-btn__label {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
}

.smb-btn-wrapper:not(.is-new-tab, .home_hero-visual__btn, .contact_intro__btn) .smb-btn__label::after {
    content: "";
    display: inline-block;
    width: min(0.5em, 0.75rem);
    height: min(0.5em, 0.75rem);
    border-top: solid 2px currentColor;
    border-right: solid 2px currentColor;
    rotate: 45deg;
    transition: translate var(--_global--transition-duration) ease-in-out;
}

.smb-btn-wrapper.--down .smb-btn__label::after {
    rotate: 135deg;
}

.smb-btn-wrapper:not(.is-new-tab) .smb-btn:hover .smb-btn__label::after {
    translate: 4px 0;
}

.smb-btn-wrapper.is-new-tab .smb-btn .svg-inline--fa {
    transition: translate var(--_global--transition-duration) ease-in-out;
}

.smb-btn-wrapper.is-new-tab .smb-btn:hover .svg-inline--fa {
    translate: 4px 0;
}

.smb-btn__label .--small {
    font-size: 0.75em;
}

/* テーブル */
table,
tbody {
    display: block;
    width: 100%;
}

tbody {
    border: solid 1px var(--accent-color);
}

tr {
    display: flex;
    flex-wrap: wrap;
}

.wp-block-table tr td:first-child {
    color: var(--color_white);
    width: 30%;
    text-align: center;
    vertical-align: middle;
    background-color: var(--accent-color);
    border: none;
}

.wp-block-table tr:not(:last-child) td:first-child {
    border-bottom: solid 1px var(--wp--preset--color--sm-lighter-gray)
}

.wp-block-table tr td:last-child {
    width: 70%;
    padding-left: 1.2rem;
    border: none;
}

.wp-block-table tr:not(:last-child) td:last-child {
    border-bottom: solid 1px var(--accent-color);
}

.wp-block-table tr td {
    display: block;
    padding-inline: 1rem;
    padding-block: 1.5rem;
}

.wp-block-table a[href^="tel:"] {
    color: inherit;
    text-decoration: none;
    pointer-events: none;
}

/* カラム */
.wp-block-columns {
    gap: var(--spacing_md) var(--spacing_basic);
}

/* パネル */
.smb-panels__item {
    background-color: transparent;
    box-shadow: none !important;
}

/* 投稿 */
.c-entries-carousel .c-entry-summary {
    display: flex;
    flex-direction: column-reverse;
}

.c-entries--simple {
    border-top: none;
}

.c-entries--simple .c-entries__item,
.c-entries--text .c-entries__item,
.c-entries--text2 .c-entries__item {
    border-color: var(--_color-text);
}

.c-entry-summary__figure {
    margin-bottom: 8px;
}

.c-entry-summary:hover .c-entry-summary__figure {
    transition: scale var(--_global--transition-duration) ease-in-out;
}

.c-entry-summary:hover .c-entry-summary__figure {
    scale: 1.025;
}

.c-entry-summary__title {
    font-family: var(--font-family_serif);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.25rem;
}

.c-entry-summary__title::after {
    content: "";
    display: inline-block;
    width: 0.5rem;
    height: 0.5rem;
    border-top: solid 2px currentColor;
    border-right: solid 2px currentColor;
    rotate: 45deg;
    translate: -50% 0;
}

.c-entries--text .c-entry-summary__title {
    font-weight: 700;
}

.c-entry-summary__term {
    font-size: 0.875rem !important;
}

.c-meta__item--author,
.c-meta__item--modified {
    display: none;
}

/* ヘッダー */
.l-header--left {
    border-right: solid 1px var(--accent-color);
}

.l-header__content {
    z-index: 1;
    position: relative;
}

/* ヘッダーロゴ */
.l-header--left .c-site-branding {
    padding-inline: 0;
}

.c-site-branding__title {
    padding-inline: 4px;
}

header .l-1row-header__branding {
    padding-block: 0;
}

header .c-site-branding__title {
    line-height: 1;
}

header .c-site-branding__title>a.custom-logo-link {
    display: block;
    width: clamp(172px, calc(129.71428571428572px + 13.214285714285715vw), 320px);
    max-width: 100%;
}

header .c-site-branding__title>a.custom-logo-link img {
    width: 100%;
}

/* グローバルナビ */
[data-header-layout=left] {
    --body-margin-left: max(11.111vw, 10rem);
}

.l-left-header .p-global-nav {
    width: 100%;
    position: absolute;
    left: 0;
    bottom: 24px;
}

.c-navbar {
    font-family: var(--font-family_serif);
    font-weight: 700;
}

.l-header--left .p-global-nav .c-navbar__item>a {
    font-size: 0.9375rem;
    padding-inline: var(--spacing_sm);
    padding-block: calc(var(--spacing_sm) / 2);
}

.p-global-nav .c-navbar__item>a>span {
    gap: 0.25rem;
}

/* ドロワー */
.c-hamburger-btn__bars {
    width: 24px;
    height: 20px;
}

.l-header--sticky-overlay-sm .c-hamburger-btn__bar {
    background-color: var(--accent-color);
    mask: url("/wp-content/uploads/2025/06/hamburger_1.png") no-repeat center center;
    mask-size: cover;
    height: 6px;
}

.c-hamburger-btn[aria-expanded=true]>.c-hamburger-btn__bars>.c-hamburger-btn__bar {
    mask: none;
    height: 1.5px;
}

.c-hamburger-btn__label {
    color: var(--accent-color);
    font-family: var(--font-family_serif);
    font-size: 0.625rem;
    font-weight: 700;
}

.c-drawer__inner {
    background-image: url(/wp-content/uploads/2025/05/footer_deco.png);
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
}

.c-drawer__item:not(.drawer_cta) {
    padding-block: 1rem;
    border-bottom: solid 1px currentColor;
}

.c-drawer__item.drawer_cta {
    color: var(--accent-color);
    background-color: var(--color_white);
    padding-inline: 0.5rem;
    padding-block: 1rem;
    margin-top: 1.5rem;
}

.c-drawer__item .svg-inline--fa {
    margin-right: 4px;
}

/* フッター */
.l-footer {
    color: var(--color_white);
    background-color: var(--accent-color);
    background-image: url(/wp-content/uploads/2025/05/footer_deco.png);
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    z-index: 1;
}

.l-footer--default .l-footer-widget-area {
    padding-block: var(--spacing_basic) 0;
}

.footer_inenr {
    justify-content: space-between;
}

.footer_inenr>.wp-block-column {
    flex-grow: 0 !important;
    flex-basis: auto !important;
    font-size: 1rem;
}

.footer_logo img {
    width: 352px;
}

#menu-footer {
    font-family: var(--font-family_serif);
    font-weight: 700;
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing_md);
}

#menu-footer .menu-item {
    margin-top: 0;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
}

.footer_btn .svg-inline--fa {
    margin-right: 0.5rem;
}

.footer_sns .wp-social-link {
    background-color: transparent;
}

.footer_go-top {
    font-size: var(--font-size_sm);
    text-transform: uppercase;
    position: absolute;
    right: 32px;
    bottom: 64px;
}

.footer_go-top a {
    color: var(--color_white);
    text-decoration: none;
    display: flex;
    flex-direction: column;
}

.footer_go-top a::before {
    content: "";
    display: inline-block;
    width: 1.5rem;
    height: 1.5rem;
    border-top: solid 2px currentColor;
    border-left: solid 2px currentColor;
    rotate: 45deg;
    translate: 30% 10px;
}

.footer_banner {
    transition: filter var(--_global--transition-duration) ease-in-out;
}

.footer_banner:hover {
    filter: brightness(0.85);
}

.wp-block-social-link {
    transition-duration: var(--_global--transition-duration);
}

.c-copyright--inverse {
    background-color: transparent;
}

/* ========== アニメーション ========== */
/* fadeText */
.fadeText {
    visibility: hidden;
}

.fadeText span {
    opacity: 0;
    display: inline-block;
}

/* loopImage */
.loop-image {
    --loopImage-duration: 20s;
    border-top: solid 1px var(--accent-color);
    border-bottom: solid 1px var(--accent-color);
    z-index: 1;
}

.loop-image__item {
    will-change: translate;
    animation: loopImage var(--loopImage-duration) infinite linear both;
}

.loop-image__item figure {
    width: 27.778vw;
    border-right: solid 1px var(--accent-color);
}

@keyframes loopImage {
    0% {
        translate: 0 0;
    }

    100% {
        translate: -100% 0;
    }
}


/* loopimageY */
.loop-imageY {
    --loopImage-duration: 25s;
    display: flex;
    flex-direction: column;
    position: absolute;
    top: 0;
    left: 0;
}

.loop-imageY__item {
    display: flex;
    flex-direction: column;
    width: 100%;
}

.loop-imageY__item:first-child {
    animation: loopImageY var(--loopImage-duration) calc(var(--loopImage-duration) / 2 * -1) linear infinite;
}

.loop-imageY__item:nth-child(2) {
    animation: loopImageY2 var(--loopImage-duration) linear infinite;
}

.loop-imageY__item figure {
    width: 100%;
    height: calc(100% / 3);
}

@keyframes loopImageY {
    0% {
        translate: 0 -100%;
    }

    100% {
        translate: 0 100%;
    }
}

@keyframes loopImageY2 {
    0% {
        translate: 0 -200%;
    }

    100% {
        translate: 0% 0;
    }
}


/* bgLoop */
@keyframes bgLoop {
    0% {
        background-position: 0 0;
    }

    100% {
        background-position: 100% 0;
    }
}

@keyframes bgLoop2 {
    0% {
        background-position: 100% 0;
    }

    100% {
        background-position: 0 0;
    }
}

/* maskImage */
.maskImage {
    mask-image: linear-gradient(135deg, rgba(0, 0, 0, 1) 30%, rgba(0, 0, 0, 0.4) 45%, rgba(0, 0, 0, 0) 55%, rgba(0, 0, 0, 0) 100%);
    mask-size: 250% 250%;
    mask-repeat: no-repeat;
    mask-position: 130% 130%;
    transition: mask-position 1.5s linear;
}

.maskImage.is-active {
    mask-position: 0 0;
}

/* ========== パターン ========== */
/* pattern_cta */
.pattern_cta {
    color: var(--_global--background-color);
    background-color: var(--accent-color);
    padding-block: var(--spacing_basic);
    padding-inline: var(--spacing_md);
    clip-path: polygon(10% 0, 100% 0, 100% 85%, 90% 100%, 0 100%, 0 15%);
}

.pattern_cta__haeding {
    line-height: 1.25;
}

.pattern_cta__haeding-main {
    font-size: var(--font-size_lg);
    font-family: var(--font-family_serif);
}

.pattern_cta__haeding-sub {
    font-size: var(--font-size_sm);
}

.pattern_cta__body {
    width: max(80%, 778px);
    justify-content: center;
    row-gap: var(--spacing_lg);
    margin-top: var(--spacing_lg);
}

.pattern_cta__title {
    font-size: var(--font-size_sm);
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding-bottom: 0.25rem;
    border-bottom: solid 1px currentColor;
}


.pattern_cta__text {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    margin-top: calc(var(--spacing_sm) / 2);
}

/* pattern_contact */
.pattern_contact::before {
    content: "";
    display: block;
    width: 100%;
    height: 66%;
    background: url("/wp-content/uploads/2025/05/cta_bg.jpg") no-repeat center top / cover;
    position: absolute;
    left: 0;
    bottom: 0;
}

/* pattern_message */
.pattern_message__copy {
    font-size: var(--font-size_md);
    font-family: var(--font-family_serif);
    font-weight: 700;
}

.pattern_message__image {
    border: solid 1px var(--accent-color);
}

.pattern_message__name {
    font-size: 1.125rem;
    font-family: var(--font-family_serif);
    font-weight: 600;
}

.pattern_message-license {
    color: var(--accent-color);
    background-color: var(--sub-accent-color);
    background-image: url("/wp-content/uploads/2025/05/pattern_bk.png");
    background-size: cover;
    background-position: center;
    padding-inline: var(--spacing_md);
    padding-block: var(--spacing_lg);
}

.pattern_message-license__title {
    font-family: var(--font-family_serif);
    font-size: var(--font-size_md);
}

.pattern_message-license__list {
    flex-wrap: wrap;
    gap: calc(var(--spacing_md) / 2) var(--spacing_md);
}

.pattern_message-license__list li {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.pattern_message-license__list li::before {
    content: "";
    display: inline-block;
    width: 0.25rem;
    height: 0.25rem;
    background-color: currentColor;
}

/* ========== オープニング ========== */
#block-12 {
    padding: 0;
}

.opening {
    background: url("/wp-content/uploads/2025/05/mainvisul.jpg") no-repeat center center / cover;
    position: fixed;
    inset: 0;
    opacity: 0;
    display: none;
    pointer-events: none;
}


/* ========== HOME========== */
/* home_hero */
.home_hero {
    --font-size_hero-copy: clamp(2.625rem, calc(1.425rem + 3vw), 4.125rem);
}

.home_hero-visual {
    height: calc(100svh - var(--font-size_hero-copy) * 1.5);
    min-height: 400px;
}

.home_hero-visual__movie {
    position: absolute;
    inset: 0;
}

.home_hero-visual__movie::before {
    content: "";
    display: block;
    background-color: var(--_color-text);
    opacity: 0.2;
    position: absolute;
    inset: 0;
}

.home_hero-visual__movie video {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.home_hero-visual__inner {
    --home_hero-visual_pt: max(8svh, 72px);
    --home_hero-visual_pb: 32px;
    width: 100%;
    height: calc(100% - (var(--home_hero-visual_pt) + var(--home_hero-visual_pb)));
    box-sizing: initial;
    max-width: var(--_container-max-width);
    padding-left: var(--_container-margin-left);
    padding-right: var(--_container-margin-right);
    padding-block: var(--home_hero-visual_pt) var(--home_hero-visual_pb);
    position: absolute;
    inset: 0;
}

.home_hero-visual__copy {
    color: var(--color_white);
    font-size: clamp(1.75rem, calc(1.5rem + 1.25vw), 2.625rem);
    font-weight: 600;
    line-height: 1.5;
}

.home_hero-visual__copy span {
    -webkit-text-combine: horizontal;
    -ms-text-combine-horizontal: all;
    text-combine-upright: all;
}

.home_hero-visual__btn {
    font-family: var(--font-family_en);
}

.home_hero-visual__btn .smb-btn {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-width: auto;
    padding-inline: 1rem;
    padding-block: 0.5rem;
}

.home_hero-visual__btn .smb-btn::before {
    content: "";
    height: 0.625rem;
    aspect-ratio: cos(30deg);
    clip-path: polygon(0 0, 100% 50%, 0 100%);
    background-color: var(--color_white);
    transition: translate var(--_global--transition-duration) ease-in-out;
}

.home_hero-visual__btn:hover .smb-btn::before {
    translate: 4px 0;
}

.home_hero-copy {
    box-sizing: initial;
    max-width: var(--_container-max-width);
    padding-left: var(--_container-margin-left);
    padding-right: var(--_container-margin-right);
    margin-top: 0;
}

.home_hero-copy__copy {
    font-size: var(--font-size_hero-copy);
    font-weight: 600;
    line-height: 1.5;
}

.home_hero-copy__list {
    font-size: clamp(1.125rem, calc(0.9464285714285714rem + 0.8928571428571428vw), 1.75rem);
    font-weight: 500;
    gap: calc(var(--spacing_sm) / 2) var(--spacing_md);
    flex-wrap: wrap;
}

.home_hero-copy__list li {
    margin-top: 0;
}

.home_hero-wave {
    box-sizing: initial;
    margin-block: 0;
    padding-block: var(--spacing_basic);
    height: 72px;
    position: relative;
}

.home_hero-wave__wave1,
.home_hero-wave__wave2 {
    width: 100%;
    background-repeat: repeat-x;
    position: absolute;
    left: 0;
    top: 50%;
    translate: 0 -50%;
}

.home_hero-wave__wave1 {
    height: 48px;
    background-image: url("/wp-content/uploads/2025/05/wave01-scaled.png");
    background-size: 2560px 48px;
    animation: bgLoop 15s infinite linear;
}

.home_hero-wave__wave2 {
    height: 72px;
    background-image: url("/wp-content/uploads/2025/05/wave02-scaled.png");
    background-size: 2560px 72px;
    animation: bgLoop2 15s infinite linear;
}

/* home_services */
.home_services__body {
    gap: 0;
    flex-wrap: wrap;
}

.home_services__box.--main {
    flex: 0 0 100%;
    border-bottom: solid 1px var(--color_white);
}

.home_services__box.--sub {
    flex: 1 1 calc(100% / 2);
}

.home_services__box.--sub:nth-child(2),
.home_services__box.--sub:nth-child(4) {
    border-right: solid 1px var(--color_white);
}

.home_services__box.--sub:nth-child(2),
.home_services__box.--sub:nth-child(3) {
    border-bottom: solid 1px var(--color_white);
}



.home_services__heading {
    color: var(--color_white);
    padding-inline: var(--spacing_md);
    position: absolute;
    top: var(--spacing_md);
    left: 0;
}

.home_services__title {
    font-family: var(--font-family_serif);
    font-size: var(--font-size_sm);
}

.home_services__box.--main .home_services__title {
    font-size: var(--font-size_md);
}

.home_services__image>a {
    display: block;
}

.home_services__image {
    overflow: hidden;
}

.home_services__image>a:hover::before,
.home_services__image>a:hover::after {
    opacity: 0;
}

.home_services__image>a::before,
.home_services__image>a::after {
    content: "";
    display: block;
    background-color: var(--_color-text);
    position: absolute;
    inset: 0;
    transition: opacity var(--_global--transition-duration) ease-in-out;
}

.home_services__image>a::before {
    mix-blend-mode: saturation;
}

.home_services__image>a::after {
    mix-blend-mode: multiply;
    opacity: 0.65;
}

.home_services__image>a>img {
    transition: scale var(--_global--transition-duration) ease-in-out;
    object-fit: cover;
}

.home_services__image>a:hover>img {
    scale: 1.05;
}

.home_services__text {
    margin-top: calc(var(--spacing_sm) / 2);
}

/* home_works */
.home_works__posts {
    --entries--carousel--gap: 40px;
}

.home_works__posts .spider__canvas {
    padding-inline: 16px;
}

.home_works__posts .spider__slide:nth-child(even) {
    margin-top: var(--spacing_basic);
}

.home_works__posts .c-entry-summary__figure {
    background-color: transparent;
    filter: drop-shadow(var(--box-shadow_wide));
}

.home_works__posts .c-entry-summary__figure::after {
    content: "";
    display: block;
    background: url("/wp-content/uploads/2025/05/image-line.png") no-repeat center center / cover;
    position: absolute;
    inset: 0;
}

.home_works__posts .c-entry-summary__figure img {
    mask-image: url("/wp-content/uploads/2025/05/image-mask.png");
    mask-repeat: no-repeat;
    mask-size: cover;
}

.home_works__posts .spider__arrow {
    background-color: var(--_global--background-color);
    border: solid 1px var(--accent-color);
    width: 40px;
    height: 40px;
}

.home_works__posts .spider__arrow[data-direction=prev]:before,
.home_works__posts .spider__arrow[data-direction=next]:before {
    border-color: var(--accent-color);
    width: 12px;
    height: 12px;
}

.home_works__posts .c-entry-summary__title {
    font-size: 1rem;
}

/* home_areas */
.home_areas {
    padding-bottom: var(--section-padding_lg);
}

.home_areas__inner {
    padding-block: var(--spacing_md);
    background: url(/wp-content/uploads/2025/05/map.png) no-repeat right center / 57%;
}

.home_areas__text {
    font-size: var(--font-size_sm);
}

.home_areas__images {
    gap: var(--spacing_md);
    width: 61.4%;
    margin-left: 0 !important;
    margin-top: var(--spacing_basic);
}

.home_areas__image {
    border: solid 1px var(--accent-color);
    box-shadow: var(--box-shadow);
    max-width: 100%;
}

.home_areas__image:nth-child(1) {
    width: 29.7vw;
}

.home_areas__image:nth-child(2) {
    width: 38.611vw;
    align-self: flex-end;
}

/* home_reasons */
.home_reasons {
    padding-block: var(--section-padding_lg);
}

.home_reasons__inner {
    padding-block: 0 var(--spacing_xl);
    padding-inline: var(--spacing_basic);
}

.home_reasons__inner::before {
    content: "";
    display: block;
    width: 100%;
    height: var(--spacing_xl);
    background-color: #F5F5F5;
    clip-path: polygon(10% 0, 0% 100%, 100% 100%);
    position: absolute;
    top: 1px;
    left: 0;
    translate: 0 -100%;
}

.home_reasons__box:not(:first-child) {
    margin-top: var(--spacing_xl);
}

.home_reasons__header {
    position: relative;
}

.home_reasons__title {
    color: var(--accent-color);
    font-size: clamp(1.5rem, calc(0.26923076923076916rem + 1.9230769230769231vw), 2rem);
    font-family: var(--font-family_serif);
    line-height: 1.5;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    margin-bottom: 0;
    position: absolute;
    top: -3rem;
    z-index: 1;
}

.home_reasons__box:nth-of-type(odd) .home_reasons__title {
    right: var(--spacing_sm);
}

.home_reasons__box:nth-of-type(even) .home_reasons__title {
    left: var(--spacing_sm);
}

.home_reasons__title .home_reasons__title-bg {
    background-color: var(--color_white);
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
    padding-block: 0.25rem;
    padding-inline: 0.75rem;
}

.home_reasons__image {
    border: solid 1px var(--accent-color);
}

.home_reasons__body {
    line-height: 2;
    padding-block: var(--spacing_md);
}

/* home_trouble */
.home_trouble__header {
    padding-block: var(--spacing_xl) var(--spacing_basic);
    padding-inline: 0;
    margin-bottom: calc(var(--spacing_basic) + var(--spacing_lg));
}

.home_trouble__header::after {
    content: "";
    display: block;
    width: 100%;
    height: var(--spacing_basic);
    background-color: var(--sub-accent-color);
    clip-path: polygon(50% 100%, 0 0, 100% 0);
    position: absolute;
    left: 0;
    bottom: 0;
    translate: 0 100%;
}

.home_trouble__header-inner {
    box-sizing: initial;
    max-width: var(--_container-max-width);
    padding-left: var(--_container-margin-left);
    padding-right: var(--_container-margin-right);
    padding-block: var(--home_hero-visual_pt) var(--home_hero-visual_pb);
}

.home_trouble__heading {
    font-family: var(--font-family_serif);
    font-size: var(--font-size_md);
}

.home_trouble__list {
    justify-content: center;
    gap: var(--spacing_sm) var(--spacing_md);
    flex-wrap: wrap;
    margin-top: var(--spacing_md);
}

.home_trouble__list li {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing_sm);
    padding: var(--spacing_md);
    background-color: var(--_global--background-color);
    border: solid 1px var(--accent-color);
    border-radius: 1000px 1000px 1000px 0;
    min-width: 300px;
}

.home_trouble__list li::before {
    content: "";
    width: 0.75rem;
    height: 0.5rem;
    border-left: solid 2px currentColor;
    border-bottom: solid 2px currentColor;
    rotate: -45deg;
}

.home_trouble-cta {
    box-sizing: initial;
    max-width: var(--_container-max-width);
    padding-left: var(--_container-margin-left);
    padding-right: var(--_container-margin-right);
    padding-block: var(--home_hero-visual_pt) var(--home_hero-visual_pb);
}

/* home_recruit */
.home_recruit__header-image {
    max-width: none;
    border: solid 1px var(--accent-color);
    border-right: none;
    box-shadow: var(--box-shadow_wide);
    margin-right: calc(50% - 50vw) !important;
}

.home_recruit__header-image img {
    width: 100%;
}

.home_recruit__header-copy {
    color: var(--accent-color);
    font-size: var(--font-size_md);
    font-family: var(--font-family_serif);
    font-weight: 600;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    white-space: nowrap;
    position: absolute;
    right: 0;
    top: -96px;
    z-index: 1;
}

.home_recruit__header-copy span {
    display: inline-block;
    background-color: var(--color_white);
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
    padding-inline: 0.5rem;
}

.home_recruit__header-copy span:nth-of-type(2) {
    margin-top: 1em;
    margin-right: 0.25em;
}

.home_recruit__body-copy {
    color: var(--accent-color);
    font-size: clamp(1.125rem, calc(1.0178571428571428rem + 0.5357142857142857vw), 1.5rem);
    line-height: 1.5;
}

.home_recruit__list {
    color: var(--accent-color);
    flex-wrap: wrap;
    gap: var(--spacing_sm);
}

.home_recruit__list li {
    padding: var(--spacing_sm);
    border: solid 1px currentColor;
}

/* home_news */
.home_news__header {
    flex-shrink: 0;
}

.home_news__posts {
    border: solid 1px var(--_color-text);
    border-bottom: none;
}

.home_news__posts .c-entries__item>a {
    padding-inline: var(--spacing_sm);
    padding-block: var(--spacing_md);
}

/* home_instagram */
.home_instagram__header {
    flex-shrink: 0;
}

.sbi_feedtheme_header_text>h3 {
    font-size: 1rem;
    font-family: var(--font-family_serif);
}

/* home_partners */
.home_partners {
    padding-block: var(--spacing_lg);
}

/* ========== 下層ページ ========== */
body.page .l-contents__inner {
    padding-bottom: 0;
    margin-top: 0;
}

.p-breadcrumbs-wrapper {
    position: relative;
    z-index: 1;
}

/* 下層ページヘッダー */
.c-page-header {
    background-color: transparent;
    padding-block: var(--spacing_xl) 0;
    flex-direction: column;
}

body.single .c-page-header {
    padding-bottom: var(--spacing_basic);
}

body:not(.single) .c-page-header::after {
    content: "";
    display: block;
    width: 100%;
    height: 50svh;
    background: url("/wp-content/uploads/2025/05/header.jpg") no-repeat center center / cover;
}

body.single-works .c-page-header::before {
    content: "";
    display: block;
    background-color: var(--_color-text);
    opacity: 0.5;
    position: absolute;
    inset: 0;
    z-index: 1;
}

body:not(.single) .c-page-header>.c-container {
    margin-bottom: var(--spacing_md);
}

.c-page-header[data-has-image=true] {
    height: unset;
}

.c-page-header[data-has-image=true] .c-page-header__content {
    color: unset;
}

body:not(.single-works) .c-page-header__bgimage>img,
body:not(.single-works) .c-page-header__bgimage>picture>img {
    display: none;
}

.c-page-header__title {
    font-family: var(--font-family_serif);
    z-index: 1;
}

body:not(.single) .c-page-header__title {
    font-size: 2.375rem;
    letter-spacing: 0.2em;
}

body.single .c-page-header__title {
    font-size: clamp(1.5rem, calc(1.2142857142857144rem + 1.4285714285714286vw), 2.5rem);
}

body.single-works .c-page-header__title {
    color: var(--color_white);
}

/* ========== 会社概要 ========== */
.company_message__career {
    margin-top: var(--spacing_lg);
}

.company_message__career-title {
    font-family: var(--font-family_serif);
}

.company_message__career-text {
    padding-block: var(--spacing_sm);
    margin-top: var(--spacing_sm);
    border-top: solid 1px var(--accent-color);
    border-bottom: solid 1px var(--accent-color);
}

/* ========== 事業内容 ========== */
/* business_services */
.business_services__body {
    margin-top: var(--spacing_xl);
}

.business_services__block:not(:first-child) {
    padding-top: var(--spacing_xxl);
}

.business_services__heading {
    font-family: var(--font-family_serif);
    font-weight: 600;
}

.business_services__title {
    font-size: var(--font-size_md);
}

.business_services__block:nth-child(odd) .business_services__image-cover {
    margin-right: calc(50% - 50vw);
}

.business_services__block:nth-child(even) .business_services__image-cover {
    margin-left: calc(50% - 50vw);
    border-left: none;
}

.business_services__image {
    border: solid 1px var(--accent-color);
    box-shadow: var(--box-shadow_wide);
}

.business_services__block:nth-child(odd) .business_services__image {
    border-right: none;
}

.business_services__block:nth-child(even) .business_services__image {
    border-left: none;
}

.business_services__aside {
    margin-top: calc(var(--spacing_basic) + 8px);
    border-top: solid 1px var(--accent-color);
    border-bottom: solid 1px var(--accent-color);
}

.business_services__about {
    border-bottom: solid 1px var(--accent-color);
}

.business_services__about-content {
    padding-block: var(--spacing_basic);
}

.business_services__about-image {
    position: relative;
    overflow: hidden;
    /* min-height: 50svh; */
}

.business_services__merit {
    padding-block: var(--spacing_basic);
}

.business_services__sub-title {
    font-size: var(--font-size_sm);
    font-family: var(--font-family_serif);
}

.business_services__images {
    gap: var(--spacing_sm);
}

.business_services__images-item {
    width: calc(100% / 3 - var(--spacing_sm));
}

.business_services__list li {
    position: relative;
    padding-left: 1rem;
}

.business_services__list li::before {
    content: "";
    display: inline-block;
    width: 0.25rem;
    height: 0.25rem;
    background-color: currentColor;
    position: absolute;
    left: 0;
    top: calc(1em * 1.75 / 2);
    translate: 0 -50%;
}

/* business_trouble */
.business_trouble__panels {
    margin-top: var(--spacing_basic);
}

.business_trouble__panels>.c-row {
    row-gap: var(--spacing_sm);
}

.business_trouble__panels .smb-panels__item__body {
    padding: 0;
}

.business_trouble__panels .wp-block-snow-monkey-blocks-panels-item-free {
    container-type: inline-size;
}

.business_trouble__image {
    width: max(20vw, 144px);
    border: solid 1px var(--accent-color);
}

.business_trouble__title {
    font-size: max(4.05cqw, 0.875rem);
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    margin-top: var(--spacing_sm) !important;
}

.business_trouble__title::before {
    content: "";
    width: 0.75em;
    height: 0.5em;
    border-left: solid 2px currentColor;
    border-bottom: solid 2px currentColor;
    rotate: -45deg;
}

.business_trouble .pattern_cta {
    margin-top: var(--spacing_basic);
}

/* ========== 採用情報 ========== */
/* recruit_intro */
.recruit_intro__header {
    flex-basis: auto !important;
    flex-grow: 0 !important;
    flex-shrink: 0;
}

/* recruit_job */
.recruit_job__inner {
    border-top: solid 1px var(--accent-color);
}

.recruit_job__box {
    justify-content: space-between;
    padding-block: var(--spacing_md);
    border-bottom: solid 1px var(--accent-color);
}

.recruit_job__title {
    font-size: var(--font-size_sm);
    font-family: var(--font-family_serif);
}

.recruit_job__image-cover {
    flex-basis: auto !important;
    flex-grow: 0 !important;
    padding-right: 8px;
}

.recruit_job__image {
    width: max(22.222vw, 280px);
    border: solid 1px var(--accent-color);
    box-shadow: var(--box-shadow_wide);
    margin-right: 0;
}

/* ========== お問い合わせ ========== */
/* contact_intro */
.contact_intro__lead {
    font-size: 1.125rem;
}

.contact_intro__tel {
    padding-block: var(--spacing_md);
    border-top: solid 1px var(--accent-color);
    border-bottom: solid 1px var(--accent-color);
}

.contact_intro__btn {
    font-size: var(--font-size_md);
    font-family: var(--font-family_serif);
}

h2.contact_intro__heading {
    font-size: var(--font-size_sm);
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

/* contact_form */
h2.contact_form__heding {
    font-size: var(--font-size_sm);
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.5rem;
}

.contact_form .snow-monkey-form {
    margin-top: var(--spacing_lg);
}

/* お問い合わせフォーム */
.smf-form--letter .smf-item {
    padding-block: var(--spacing_md);
    border-bottom: solid 1px var(--accent-color);
}

.smf-form--letter .smf-item:first-child {
    border-top: solid 1px var(--accent-color);
}

.smf-item__col--label {
    display: flex;
    gap: 0.5rem 1rem;
    flex-wrap: wrap;
}

.smf-item__label {
    font-size: 1.125rem;
    font-family: var(--font-family_serif);
    font-weight: 700;
}

.smf-item__description {
    margin-top: 0;
    color: #5b0707;
}

#autozip {
    display: none !important;
}

.smf-control-description a[href^="tel:"] {
    color: inherit;
    text-decoration: none;
    pointer-events: none;
}

/* プログレスバー */
[data-screen=back] .smf-progress-tracker__item--input .smf-progress-tracker__item__number,
[data-screen=complete] .smf-progress-tracker__item--complete .smf-progress-tracker__item__number,
[data-screen=confirm] .smf-progress-tracker__item--confirm .smf-progress-tracker__item__number,
[data-screen=input] .smf-progress-tracker__item--input .smf-progress-tracker__item__number,
[data-screen=invalid] .smf-progress-tracker__item--input .smf-progress-tracker__item__number {
    background-color: var(--accent-color);
}

/* 送信ボタン */
.smf-button-control {
    display: block;
}

.smf-action .smf-button-control__control {
    background-color: var(--accent-color);
    border: 2px solid var(--accent-color);
    font-family: inherit;
    color: var(--color_white);
    width: 100%;
    max-width: 400px;
    padding-block: 1rem;
    background-image: none;
    border-radius: 0;
    clip-path: polygon(10% 0, 100% 0, 100% 80%, 90% 100%, 0 100%, 0 20%);
    transition: opacity var(--_global--transition-duration) ease-in-out;
}

.smf-action .smf-button-control__control:hover {
    opacity: 0.9;
}

/* 戻るボタン */
.smf-action .smf-button-control__control[data-action="back"] {
    background-color: var(--sub-accent-color);
    border: none;
    color: var(--accent-color);
}

.smf-button-control {
    margin-left: 0 !important;
}

.smf-action .smf-button-control__control {
    margin-top: 24px;
}

.form-recaptcha {
    font-size: 0.75rem;
}

/* ========== お知らせ ========== */
.c-page-header__meta {
    font-weight: 500;
}

/* ~~~~~~~~~~~~~~~~~~~~ large-size ~~~~~~~~~~~~~~~~~~~~ */
@media screen and (max-width: 1023px) {

    /* ========== 共通設定 ========== */
    /* ヘッダー */
    .l-header::before {
        content: none;
    }

    .l-header--left {
        border-right: none;
    }

    .c-site-branding__title {
        padding-inline: 0;
    }

    /* ========== HOME ========== */
    .home_reasons__title {
        font-size: clamp(1.375rem, calc(1.3181818181818181rem + 0.2840909090909091vw), 1.5rem);
    }

}

/* ~~~~~~~~~~~~~~~~~~~~ medium-size ~~~~~~~~~~~~~~~~~~~~ */
@media screen and (max-width: 959px) {
    .wp-block-columns {
        flex-direction: column;
    }

    /* ========== アニメーション ========== */
    /* loopimageY */
    .loop-imageY {
        --loopImage-duration: 25s;
        position: relative;
        top: initial;
        left: initial;
        flex-direction: row;
    }

    .loop-imageY__item {
        flex-direction: row;
    }

    .loop-imageY__item figure {
        width: calc(100vw / 3);
        height: auto;
    }

    @keyframes loopImageY {
        0% {
            transform: translateX(100%);
        }

        100% {
            transform: translateX(-100%);
        }
    }

    @keyframes loopImageY2 {
        0% {
            transform: translateX(0%);
        }

        100% {
            transform: translateX(-200%);
        }
    }


    /* ========== HOME ========== */
    .home_services__box.--sub {
        flex: 1 1 100%;
        border-right: none !important;
        border-bottom: solid 1px var(--color_white);
    }

    .home_services__image>a>img {
        aspect-ratio: 2 / 1;
    }

    .home_reasons__box:nth-child(odd) {
        flex-direction: column-reverse;
    }

    .home_reasons__box:nth-of-type(odd) .home_reasons__title {
        left: auto;
        right: var(--spacing_sm);
    }

    .home_reasons__heading {
        padding-inline: var(--spacing_md);
    }

    .home_reasons__body {
        padding-block: 0;
    }

    /* ========== 事業内容 ========== */
    .business_services__image-cover {
        order: 1;
    }

    .business_services__content {
        order: 2;
    }

    .business_services__about-content {
        padding-block: 0;
    }

    .business_services__about {
        padding-block: var(--spacing_basic);
    }

    .business_services__about-image {
        max-width: 100%;
    }

    /* ========== お問い合わせ ========== */
    .contact_intro__tel {
        flex-direction: column;
        row-gap: calc(var(--spacing_sm) / 2);
    }

}

/* ~~~~~~~~~~~~~~~~~~~~ small-size ~~~~~~~~~~~~~~~~~~~~ */
@media screen and (max-width: 639px) {

    :root {
        --spacing_xxl: 112px;
        --spacing_xl: 80px;
        --spacing_lg: 40px;
        --spacing_md: 24px;
        --section-padding: 64px;
        --section-padding_lg: 144px;
    }

    /* ========== 共通設定 ========== */
    /* ボタン */
    .smb-btn {
        padding-inline: 1.5rem;
        padding-block: 0.75rem;
        min-width: 224px;
    }

    .pattern_cta__btn .smb-btn {
        padding-inline: 1.25rem;
    }

    .smb-btn-wrapper:not(.contact_intro__btn) .smb-btn__label {
        gap: 1rem;
    }

    /* テーブル */
    .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;
    }

    /* フッター */
    #menu-footer {
        padding-right: 40px;
        column-gap: var(--spacing_sm);
    }

    .footer_go-top {
        right: 16px;
    }

    /* 投稿(シンプル)*/
    .c-entries--simple .c-entry-summary__content {
        display: block;
    }

    .c-entries--simple .c-entry-summary__figure {
        float: inherit;
        width: 100%;
        margin-bottom: var(--spacing_sm);
    }

    /* ========== アニメーション ========== */
    .loop-image {
        --loopImage-duration: 8s;
    }

    .loop-image__item figure {
        width: 50vw;
    }

    /* ========== パターン ========== */
    /* pattern_cta */
    .pattern_cta__body {
        width: 100%;
    }


    /* ========== HOME ========== */
    .home_hero {
        --font-size_hero-copy: clamp(2.375rem, calc(2rem + 1.875vw), 2.75rem);
    }

    .home_hero-visual {
        height: calc(100svh - var(--font-size_hero-copy) *2 * 1.5);
    }

    .home_hero-copy__copy {
        display: grid;
        place-items: center;
    }

    .home_hero-copy__list {
        justify-content: center;
        margin-top: var(--spacing_sm);
    }

    .home_services__image>a>img {
        aspect-ratio: 4 / 3;
    }

    .home_services__heading {
        top: var(--spacing_sm);
        padding-inline-start: var(--spacing_sm);
    }

    .home_works__posts .spider__arrow {
        width: 32px;
        height: 32px;
    }

    .home_works__posts .spider__arrow[data-direction=prev]:before,
    .home_works__posts .spider__arrow[data-direction=next]:before {
        width: 8px;
        height: 8px;
    }

    .home_areas__inner {
        background: none;
    }

    .home_areas__images {
        width: 100%;
        margin-top: var(--spacing_md);
    }

    .home_areas__image:nth-child(1) {
        width: 85%;
    }

    .home_areas__image:nth-child(2) {
        width: 90%;
    }

    .home_reasons .c-container {
        padding-inline: 0;
    }

    .home_reasons__inner {
        padding-inline: var(--spacing_md);
    }

    .home_reasons__title .home_reasons__title-bg {
        padding-block: 0.25rem;
    }

    .home_trouble__list li {
        min-width: 280px;
    }

    .home_recruit__list li {
        padding: calc(var(--spacing_sm) / 2);
    }

    /* ========== 採用情報 ========== */
    .recruit_job__box {
        padding-block: var(--spacing_lg);
    }

    .recruit_job__image {
        width: 100%;
    }

    /* ========== 事業内容 ========== */
    .business_services__btns .smb-btn-wrapper {
        flex: 1 1 auto;
    }

    .business_services__btns .smb-btn {
        width: 100%;
    }

    .business_trouble__title {
        flex-direction: column;
    }

    /* ========== お問い合わせ ========== */
    .contact_intro__lead {
        align-items: flex-start !important;
    }

    .smf-item__label {
        font-size: 1rem;
    }

    .form_thanks__text p {
        text-align: left;
    }

    .c-entry-aside .c-entries__item {
        --entries--item-width: 100%;
    }
}