@charset "utf-8";

/* ========== 変数 ========== */
:root {
    --_color-text: #201B1E;
    --_global--background-color: #fbfbfb;
    --font-family: "M PLUS 2", "Helvetica", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
    --_global--transition-duration: .3s;
    --_margin1: var(--spacing_base);
    /* カスタマイズ */
    --font-family_en: "Titillium Web", "Helvetica", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
    --color_white: #ffffff;
    --gradient_black: linear-gradient(75deg, #201B1E 0%, #666666 100%);
    --gradient_pink: linear-gradient(75deg, var(--_color-text) 0%, var(--accent-color) 100%);
    --spacing_base: 32px;
    --spacing_s: 16px;
    --spacing_m: 48px;
    --spacing_x: 64px;
    --spacing_xl: 96px;
    --gap_col: min(64px, 4.444svw);
    --section-padding: 72px;
    --section-padding_l: 144px;
    --font-size_m: clamp(1.125rem, calc(0.6793313069908815rem + 0.911854103343465vw), 1.5rem);
    --font-size_l: clamp(1.5rem, calc(0.9057750759878419rem + 1.21580547112462vw), 2rem);
    --font-size_xl: clamp(1.75rem, calc(0.2644376899696048rem + 3.0395136778115504vw), 3rem);
}

/* ========== 基本設定 ========== */
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);
}

.ff_en {
    font-family: var(--font-family_en);
    font-weight: 600;
}

.tate {
    writing-mode: vertical-rl;
}

/* ========== 共通設定 ========== */
body {
    font-weight: 500;
}

.l-contents::before {
    content: "";
    display: block;
    background: url("/wp-content/uploads/2025/07/noise.png") repeat top left / 10%;
    opacity: 0.1;
    position: absolute;
    inset: 0;
    z-index: -1;
}

.smb-section {
    --smb-section--padding: var(--section-padding);
}

a:not(.smb-btn)[href^="tel:"] {
    color: inherit;
    text-decoration: none;
    pointer-events: none;
}

/* 見出し */
.section_heading__ja {
    color: var(--accent-color);
    font-size: clamp(1.125rem, calc(1.0178571428571428rem + 0.5357142857142857vw), 1.5rem);
    line-height: 1.5;
    font-weight: 700;
}

.section_heading.--white .section_heading__ja {
    color: var(--color_white);
}

.section_heading+* {
    margin-top: var(--spacing_m);
}

.section_heading__en {
    font-size: clamp(4rem, calc(3.325301204819277rem + 3.3734939759036147vw), 7.5rem);
    font-family: var(--font-family_en);
    font-weight: 600;
    line-height: 0.9;
    letter-spacing: -0.01em;
    color: transparent;
    -webkit-text-stroke: 1px var(--accent-color);
    text-stroke: 1px var(--accent-color);
    text-transform: uppercase;
}

.section_heading.--white .section_heading__en {
    -webkit-text-stroke: 1px var(--color_white);
    text-stroke: 1px var(--color_white);
}

.--is-dot-heading {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.--is-dot-heading::before {
    content: "";
    display: inline-block;
    width: 0.5rem;
    aspect-ratio: 1;
    border-radius: 50%;
    background-color: var(--accent-color);
}

/* カラム */
.wp-block-columns {
    gap: var(--spacing_base) var(--gap_col);
}

/* ボタン */
.smb-btn:is(:active, :focus, :hover) {
    filter: brightness(1.0);
}

.smb-buttons {
    margin-top: var(--spacing_m);
}

.smb-btn {
    min-width: 17.5rem;
}

.smb-buttons:not(.footer_btns) .smb-btn {
    border-radius: 1000px;
    padding-inline: 3rem 0.5rem;
    padding-block: 0.5rem;
    align-items: center;
    gap: 1rem;
    justify-content: space-between;
    position: relative;
    border: solid 2px var(--accent-color);
}

.smb-btn-wrapper.is-white .smb-btn {
    color: var(--accent-color);
    background-color: var(--color_white);
}

.smb-buttons:not(.footer_btns) .smb-btn:hover  {
    animation: BtnScale .4s ease-in-out;
    background-color: var(--color_white);
    color: var(--accent-color);
}

.smb-btn-wrapper.is-white .smb-btn:hover {
    background-color: var(--accent-color);
    color: var(--color_white);
}

.smb-buttons:not(.footer_btns) .smb-btn::after {
    content: "";
    width: 3rem;
    aspect-ratio: 1;
    border-radius: 50%;
    background-color: var(--color_white);
    transition: background-color var(--_global--transition-duration) ease-in-out;
}

.smb-buttons:not(.footer_btns) .smb-btn:hover::after {
    background-color: var(--accent-color);
}

.smb-buttons:not(.footer_btns) .smb-btn-wrapper.is-white .smb-btn::after {
    background-color: var(--accent-color);
}

.smb-buttons:not(.footer_btns) .smb-btn__label {
    flex-grow: 1;
    display: grid;
    place-items: center;
}

.smb-buttons:not(.footer_btns) .smb-btn__label::before,
.smb-buttons:not(.footer_btns) .smb-btn__label::after {
    content: "";
    display: inline-block;
    width: 1rem;
    height: 2px;
    background-color: var(--accent-color);
    position: absolute;
    top: 50%;
    right: 0.5rem;
    translate: -100% -50%;
    border-radius: 1000px;
    transition: background-color var(--_global--transition-duration) ease-in-out;
}

.smb-buttons:not(.footer_btns) .smb-btn:hover .smb-btn__label::before,
.smb-buttons:not(.footer_btns) .smb-btn:hover .smb-btn__label::after {
    background-color: var(--color_white);
}

.smb-buttons:not(.footer_btns) .smb-btn-wrapper.is-white .smb-btn__label::before,
.smb-buttons:not(.footer_btns) .smb-btn-wrapper.is-white .smb-btn__label::after {
    background-color: var(--color_white);
}

.smb-buttons:not(.footer_btns) .smb-btn__label::after {
    rotate: 90deg;
    transition: all var(--_global--transition-duration) ease-in-out;
}

@keyframes BtnScale {
    0% {
        scale: 0.9;
    }

    100% {
        scale: 1;
    }
}

/* テーブル */
table,
tbody {
    display: block;
    width: 100%;
}

tr {
    display: flex;
    flex-wrap: wrap;
}

.wp-block-table tr {
    border-bottom: solid 1px var(--accent-color);
}

.wp-block-table tr td,
.wp-block-table tr th {
    border: none;
}

.wp-block-table tr td:first-child {
    color: var(--accent-color);
    width: 25%;
    vertical-align: middle;
}

.wp-block-table tr td:last-child {
    width: 75%;
    padding-left: 1.2rem;
}

.wp-block-table tr td {
    display: block;
    padding-block: 1.5rem;
    padding-inline: 1rem;
}

/* ボックス */
.smb-box {
    border-radius: 0;
}

.smb-box__background {
    border-radius: 0;
    border: none;
}

/* 投稿*/
.c-entries--simple,
.c-entries--text,
.c-entries--text2 {
    border-top: none;
}

.c-entries--simple .c-entries__item,
.c-entries--text .c-entries__item,
.c-entries--text2 .c-entries__item {
    border-color: var(--accent-color);
}

.c-entry-summary__figure {
    border: solid 1px var(--accent-color);
}

.c-entries--text .c-entry-summary__title,
.c-entries--text .c-entry-summary__meta {
    font-weight: 500;
}

.c-entry-summary__term {
    font-size: 0.875rem !important;
}

.c-meta__item--author,
.c-meta__item--modified {
    display: none;
}

/* ヘッダー */
/* ロゴ */
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(190px, calc(162.28571428571428px + 8.660714285714285vw), 287px);
}

header .c-site-branding__title>a.custom-logo-link>img {
    width: 100%;
}

/* グローバルナビ */
.l-1row-header {
    padding-block: 16px;
}

[data-scrolled=false] body:not(.home) .l-header--sticky-overlay-colored-lg {
    color: var(--_color-text);
}

.p-global-nav .c-navbar__item>a {
    font-size: inherit;
    padding-inline: 1rem;
    padding-block: 0.5rem;
}

.p-global-nav .c-navbar__item.header_cta {
    margin-left: 1rem;
}

.p-global-nav .c-navbar__item.header_cta>a {
    border: solid 1px currentColor;
    background-color: var(--_global--background-color);
    color: var(--accent-color);
}

.p-global-nav .c-navbar__item>a>span {
    gap: 0.5rem;
}

/* ハンバーガーメニュー */
[data-scrolled=false] .l-header--sticky-overlay-colored-sm .c-hamburger-btn__bar,
.l-header .c-hamburger-btn__bar {
    background-color: var(--accent-color);
    height: 2px;
}

.c-hamburger-btn__label {
    color: var(--accent-color);
    font-family: var(--font-family_en);
    font-weight: 600;
}

/* ドロワーメニュー */
#drawer-nav {
    color: var(--accent-color);
    border-right: solid 1px currentColor;
    background-color: var(--color_white);
}

.c-drawer__inner {
    padding-top: 64px;
}

.c-drawer__inner::before {
    content: "";
    display: block;
    width: 95%;
    aspect-ratio: 979 / 711;
    background: url("/wp-content/uploads/2025/07/reason.png") no-repeat center center / cover;
    position: absolute;
    left: 0;
    bottom: 0;
}

.c-drawer__item .svg-inline--fa {
    margin-right: 0.25rem;
}

.drawer_contact {
    color: var(--color_white);
    background-color: var(--accent-color);
    padding-inline: 1rem;
    margin-top: var(--spacing_s) !important;
}

/* フッター */
[data-is-slim-widget-area=true] .c-widget {
    font-size: inherit;
}

.l-footer {
    border-top: none;
}

.l-footer--footer-2 .l-footer__header {
    padding-block: var(--spacing_base);
}

.l-footer--footer-2 .l-footer__body {
    border-top: none;
}

.l-footer--footer-2 .l-footer__widget-area {
    padding-top: 0;
}

.l-footer-widget-area__item.c-row__col {
    margin-bottom: 0;
}

.footer_main {
    padding-bottom: var(--spacing_base);
    row-gap: var(--spacing_m);
}

#menu-footer {
    color: var(--accent-color);
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: var(--spacing_s) var(--gap_col);
}

#menu-footer .menu-item {
    margin-top: 0;
}

.footer_btns .smb-btn {
    color: var(--accent-color);
    border-radius: 0;
    padding: 1rem;
    background-color: var(--color_white);
    border: solid 1px currentColor;
}

.footer_btns .smb-btn:hover {
    color: var(--color_white);
    background-color: var(--accent-color);
}

.footer_btns .smb-btn__label {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.footer_aside {
    padding-top: var(--spacing_base);
    border-top: solid 1px var(--accent-color);
}

.wp-social-link-tiktok {
    background-color: transparent;
    color: var(--accent-color);
}

.l-footer--footer-2 .l-footer__footer {
    background-color: transparent;
    padding-block: var(--spacing_s);
}

.l-footer__footer>.c-container>.c-row {
    justify-content: center;
}

/* ========== アニメーション ========== */
/* LoopText */
.LoopText {
    --LoopText-duration: 15s;
    font-size: 4rem;
    line-height: 1.25;
}

.LoopText__inner {
    animation: LoopText var(--LoopText-duration) linear infinite;
}

.LoopText__item {
    display: inline-block;
    white-space: nowrap;
    color: transparent;
    -webkit-text-stroke: 1px var(--accent-color);
    text-stroke: 1px var(--accent-color);
}

@keyframes LoopText {
    0% {
        transform: translateX(0%);
    }

    100% {
        transform: translateX(-50%);
    }
}

/* LoopImage */
.LoopImage {
    overflow: hidden;
    --loopItem-space: var(--gap_col);
    --loopItem-number: 4;
    --loop-duration: 10s;
}

.LoopImage__inner {
    animation: LoopImage var(--loop-duration) infinite linear .5s both;
}

.LoopImage__item {
    flex: 0 0 auto;
    width: calc(100vw / var(--loopItem-number) - var(--loopItem-space));
    margin-right: var(--loopItem-space) !important;
}


@keyframes LoopImage {
    0% {
        translate: -100% 0;
    }

    100% {
        translate: 0 0;
    }
}

/* スライドテキスト */
.slideText {
    overflow: hidden;
}

.slideText > span {
    display: inline-block;
    opacity: 0;
    translate: -100% 0;
    transition: all .25s linear;
}

.slideText.is-active > span {
    opacity: 1;
    translate: 0 0;
}

/* ========== ローディングアニメーション ========== */
#block-15 {
    padding: 0;
}

#loading.loaded {
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
}

.loading__inner {
    display: flex;
    justify-content: center;
    align-items: center;
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999;
    mask-image: linear-gradient(#000, #000), radial-gradient(#000 0, #000 50%, transparent 50%, transparent 100%);
    mask-repeat: no-repeat;
    mask-position: 0 0, center center;
    mask-size: 100% 100%, 0 0;
    mask-composite: exclude;
    background-color: var(--accent-color);
    animation-delay: 1s;
    animation-duration: 1s;
    animation-name: LoadingMask;
    animation-fill-mode: forwards;
    animation-timing-function: cubic-bezier(0.25, 1, 0.5, 1);
}

.loading__image {
    width: 240px;
    height: 240px;
    overflow: hidden;
}

.loading__image img {
    animation: LoadingUp .25s linear;
}

@keyframes LoadingMask {
    0% {
        mask-size: 100% 100%, 0 0;
    }

    100% {
        mask-size: 100% 100%, 200vw 200vh;
    }
}

@keyframes LoadingUp {
    0% {
        translate: 0 100%;
    }
    100% {
        translate: 0 0;
    }
}



/* ========== パターン ========== */
/* pattern_cta */
.pattern_cta__inner {
    border: solid 1px var(--accent-color);
}

.pattern_cta__aside {
    color: var(--color_white);
    font-weight: 700;
    background: url("/wp-content/uploads/2025/07/contact_bg.jpg") no-repeat center center / cover;
    position: relative;
    display: grid;
    place-items: center;
    padding: var(--spacing_base);
}

.pattern_cta__aside::before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background: var(--gradient_pink);
    mix-blend-mode: multiply;
    opacity: 0.75;
    position: absolute;
    inset: 0;
}

.pattern_cta__text-cover {
    font-size: 1.125rem;
    gap: var(--spacing_s);
}

.pattern_cta__list li {
    position: relative;
    padding-left: 2rem;
}

.pattern_cta__list li::before {
    content: "";
    width: 1rem;
    height: 0.75rem;
    border-left: solid 3px currentColor;
    border-bottom: solid 3px currentColor;
    rotate: -45deg;
    position: absolute;
    top: calc(1em / 2);
    left: 0;
    translate: 0 -50%;
}

.pattern_cta__body {
    color: var(--accent-color);
}

.pattern_cta__box {
    background-color: var(--color_white);
    transition: all var(--_global--transition-duration) ease-in-out;
}

.pattern_cta__box:hover {
    color: var(--color_white);
    background-color: var(--accent-color);
}

.pattern_cta__box:not(:first-child) {
    border-top: solid 1px var(--accent-color);
}

.pattern_cta__title {
    font-size: var(--font-size_l);
    display: flex;
    align-items: center;
    gap: 0 1rem;
}

/* cta_sect */
.cta_sect {
    padding-block: var(--section-padding_l);
}

.cta_sect .section_heading__ja {
    color: var(--color_white);
}

.cta_sect .section_heading__en {
    -webkit-text-stroke: 1px var(--color_white);
    text-stroke: 1px var(--color_white);
}

.cta_sect .pattern_cta__inner {
    border-color: var(--color_white);
}

/* ========== トップページ ========== */
/* hoem_hero */
.home_hero {
    padding-top: 80px;
}

.home_hero .smb-section__inner::before {
    content: "";
    display: block;
    width: 100%;
    height: 52%;
    background-color: var(--accent-color);
    clip-path: polygon(0 0, 0% 100%, 100% 100%);
    position: absolute;
    bottom: 0;
}

.home_hero-copy__inner {
    font-size: clamp(2rem, calc(1.2289156626506024rem + 3.8554216867469884vw), 6rem);
    font-weight: 900;
    line-height: 1.1;
    letter-spacing: -0.05em;
    gap: 0.5rem;
    transform: rotate(-9deg) skew(-20deg);
    overflow: hidden;
}

.home_hero-copy__inner p {
    background: var(--gradient_black);
    color: transparent;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    text-fill-color: transparent;
    padding-inline: 0.25rem;
    translate: -100% 0;
    opacity: 0;
    animation-name: HeroText;
    animation-duration: .25s;
    animation-timing-function: linear;
    animation-fill-mode: forwards;
}

.home_hero-copy__inner p:first-child {
    animation-delay: 1.5s;
}

.home_hero-copy__inner p:nth-child(2) {
    font-size: clamp(1.75rem, calc(0.9307228915662651rem + 4.096385542168675vw), 6rem);
    animation-delay: 2s;
}

.home_hero-copy__inner p:nth-child(2) .--large {
    font-size: 1.714em;
    background: var(--gradient_pink);
    background-clip: text;
}

.home_hero-copy__inner p:nth-child(2) .--pink {
    background: var(--accent-color);
    background-clip: text;
}

.home_hero-copy__inner p:last-child {
    align-self: flex-end;
    animation-delay: 2.5s;
}

@keyframes HeroText {
    0% {
        opacity: 0;
        translate: -100% 0;
    }

    100% {
        opacity: 1;
        translate: 0 0;
    }
}

.home_hero-copy__logo {
    display: none;
}

.home_hero-appeal {
    margin-top: -32px;
    max-width: var(--_global--container-max-width);
}

.home_hero-appeal__inner {
    gap: 16px;
}

.home_hero-appeal__image {
    width: min(59.583svw, 1098px);
    margin-left: calc(50% - 50vw) !important;
}

.home_hero-appeal__text {
    flex-grow: 1;
    max-width: 530px;
}

.home_hero-appeal__item {
    color: var(--color_white);
    font-size: clamp(1.375rem, calc(0.6406510851419032rem + 1.5025041736227045vw), 2.5rem);
    font-weight: 700;
    background: var(--gradient_pink);
    width: fit-content;
    padding-inline: 0.75rem;
}

.home_hero-appeal__item:nth-child(2) {
    align-self: flex-end;
}

.home_hero__loop-text {
    position: absolute;
    bottom: 0;
}

.home_hero__loop-text .LoopText__inner {
    gap: 0.625em;
}

.home_hero__loop-text .LoopText__item {
    -webkit-text-stroke: 1px var(--color_white);
    text-stroke: 1px var(--color_white);
}

/* home_concept */
.home_concept {
    padding-top: var(--spacing_xl);
    padding-bottom: 0;
}

.home_concept__inner {
    flex-direction: row-reverse;
}

.home_concept__header {
    padding-top: var(--spacing_m);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.home_concept__image {
    margin-top: var(--spacing_m);
    width: 94%;
}

.home_concept__heading {
    font-size: var(--font-size_xl);
    margin-left: 0;
}

.home_concept__heading .--pink {
    color: var(--accent-color);
}

.home_concept__content {
    padding-bottom: 128px;
}

.home_concept__slider-cover::before {
    content: "";
    width: 50vw;
    height: 77.531%;
    background-color: var(--accent-color);
    position: absolute;
    bottom: -16px;
    right: 32px;
}

.home_concept__text {
    padding-inline: var(--spacing_s);
    margin-top: var(--spacing_m);
}

.home_concept__loop-text {
    --LoopText-duration: 20s;
    font-size: clamp( 2rem, calc( 0.6256590509666082rem + 2.8119507908611596vw ), 4rem );
    position: absolute;
    bottom: 12%;
    z-index: -1;
}

/* home_service */
.home_service__inner {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(3, 1fr);
}

.home_service__box {
    padding: 0;
    position: relative;
}

.home_service__box:nth-child(1) {
    grid-row: span 2 / span 2;
}

.home_service__box:nth-child(3) {
    grid-column-start: 2;
}

.home_service__box:nth-child(4) {
    grid-row-start: 3;
}

.home_service__box:nth-child(5) {
    grid-row-start: 3;
}

.home_service__box::before {
    content: "";
    display: inline-block;
    aspect-ratio: 1;
    border-radius: 50%;
    border: solid 2px var(--color_white);
    position: absolute;
    right: 16px;
    bottom: 16px;
    z-index: 1;
    transition: scale var(--_global--transition-duration) ease-in-out;
}

.home_service__box:nth-child(1)::before {
    width: 3.5rem;
}

.home_service__box:not(:nth-child(1))::before {
    width: 3rem;
}

.home_service__box:hover::before {
    scale: 0.9;
}

.home_service__box .smb-box__body {
    display: grid;
    place-items: center;
}

.home_service__box .smb-box__body::before,
.home_service__box .smb-box__body::after {
    content: "";
    display: inline-block;
    height: 2px;
    background-color: var(--color_white);
    border-radius: 100px;
    position: absolute;
    z-index: 1;
}

.home_service__box .smb-box__body::after {
    rotate: 90deg;
}

.home_service__box:nth-child(1) .smb-box__body::before,
.home_service__box:nth-child(1) .smb-box__body::after {
    width: 1.25rem;
    right: 2.125rem;
    bottom: 2.625rem;
}

.home_service__box:not(:nth-child(1)) .smb-box__body::before,
.home_service__box:not(:nth-child(1)) .smb-box__body::after {
    width: 1rem;
    right: 2rem;
    bottom: 2.5rem;
}

.home_service__box .smb-box__body>* {
    grid-area: 1 / -1 / 1 / -1;
}

.home_service__title {
    font-size: var(--font-size_m);
    text-align: center;
    color: var(--color_white);
    font-weight: 700;
    margin-top: 0;
}

.home_service__box:nth-child(1) .home_service__title {
    font-size: var(--font-size_l);
}

.home_service__image::before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background-color: #000000;
    opacity: 0.5;
    position: absolute;
    inset: 0;
    transition: opacity var(--_global--transition-duration) ease-in-out;
}

.home_service__box:hover .home_service__image::before {
    opacity: 0.2;
}

/* home_works */
.home_works__inner {
    gap: var(--gap_col);
}

.home_works__content {
    flex-grow: 1;
}

/* home_reason */
.home_reason {
    padding-bottom: 128px;
}

.home_reason::before {
    content: "";
    display: block;
    width: min(47.778svw, 770px);
    aspect-ratio: 688 / 500;
    background: url("/wp-content/uploads/2025/07/reason.png") no-repeat center center / cover;
    position: absolute;
    left: 0;
    bottom: 16px;
}

.home_reason__lead {
    color: var(--accent-color);
    font-size: var(--font-size_l);
    font-weight: 700;
}

.home_reason__lead>span {
    display: inline-block;
    padding-inline: 0.5rem;
    border: solid 1px currentColor;
}

.home_reason__lead>span:not(:first-child) {
    margin-top: 0.5rem;
}

.home_reason__box:not(:first-child) {
    margin-top: var(--spacing_xl);
}

.home_reason__content {
    gap: var(--spacing_s);
}

.home_reason__content.--right {
    padding-left: 16px;
}

.home_reason__content.--left {
    padding-right: 16px;
}

.home_reason__image {
    position: relative;
}

.home_reason__image::before {
    content: "";
    width: 50vw;
    height: 80%;
    background-color: var(--accent-color);
    position: absolute;
    bottom: -16px;
    z-index: -1;
}

.home_reason__image.--right::before {
    left: 16px;
}

.home_reason__image.--left::before {
    right: 16px;
}

.home_reason__title {
    color: var(--color_white);
    font-size: var(--font-size_m);
}

.home_reason__title>span {
    display: inline-block;
    padding-inline: 0.5rem;
    padding-block: 0.25rem;
    background: var(--gradient_pink);
}

/* home_message */
.home_message__inner {
    color: var(--color_white);
    gap: var(--spacing_m);
}

.home_message__copy {
    font-size: var(--font-size_l);
    font-weight: 700;
}

.home_message__text-cover {
    max-width: 40rem;
}

.home_message__btns {
    margin-top: 208px;
}

/* home_vehicles */
.home_vehicles__bg {
    position: absolute;
    inset: 0;
}

.home_vehicles__inner {
    padding-top: var(--spacing_x);
}

.home_vehicles__slider-cover {
    width: 62%;
    padding-top: var(--spacing_base);
    padding-left: 24px;
}

.home_vehicles__content {
    align-self: stretch;
    justify-content: space-between;
    padding-bottom: var(--spacing_x);
    padding-inline: var(--spacing_base);
}

.home_vehicles__kinds-cover {
    gap: 0.5rem;
}

.home_vehicles__kind {
    color: var(--color_white);
    font-size: var(--font-size_m);
    line-height: 1.5;
    padding-inline: 1rem;
    padding-block: 0.25rem;
    background-color: var(--_color-text);
    gap: var(--spacing_s);
    align-items: flex-end;
    justify-content: space-between;
    width: 100%;
}

.home_vehicles__num {
    font-size: 2em;
    line-height: 1.1;
}

/* home_loop */
.home_loop {
    padding-block: var(--section-padding);
}

.home_loop__loop-text {
    --LoopText-duration: 30s;
    font-size: 15rem;
    position: absolute;
    top: 50%;
    translate: 0 -50%;
}

.home_loop__loop-image .LoopImage__item>img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.home_loop__loop-image .LoopImage__item:nth-child(even) {
    margin-top: var(--spacing_x);
}

/* ========== 下層ページ ========== */
body.page .l-contents__inner {
    padding-bottom: 0;
    margin-top: 0;
}

/* 下層ページヘッダー */
.c-page-header {
    padding-top: 200px;
    background-color: var(--_global--background-color);
    border-bottom: solid 1px var(--accent-color);
}

.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 {
    color: var(--accent-color);
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 1rem;
}

.c-page-header__title::before {
    display: block;
    font-size: clamp(3.5rem, calc(3.0180722891566267rem + 2.4096385542168677vw), 6rem);
    line-height: 1;
    text-transform: uppercase;
}

body.page-id-19 .c-page-header__title::before {
    content: "Company";
}

body.page-id-21 .c-page-header__title::before {
    content: "Services";
}

body.post-type-archive-works .c-page-header__title::before {
    content: "Works";
}

body.page-id-140 .c-page-header__title::before {
    content: "Our Vehicles";
}

body:is(.blog, .category) .c-page-header__title::before {
    content: "News";
}

body.page-id-23 .c-page-header__title::before {
    content: "Contact";
}

body.privacy-policy li {
    list-style: inherit;
}

/* ========== 会社概要 ========== */
/* company_message */
.company_message__image {
    max-width: 370px;
}

/* company_safety */
.company_safety__item {
    gap: var(--spacing_s);
    width: 100%;
    padding-block: 1rem;
    padding-inline: 0.5rem;
    border-bottom: solid 1px var(--accent-color);
}

.company_safety__item:first-child {
    border-top: solid 1px var(--accent-color);
}

.company_safety__num {
    font-family: var(--font-family_en);
    font-size: var(--font-size_xl);
    color: transparent;
    -webkit-text-stroke: 1px var(--accent-color);
    text-stroke: 1px var(--accent-color);
    text-transform: uppercase;
    flex-shrink: 0;
}

/* company_overview */
.company_overview__table li {
    margin-left: 1rem;
    list-style: disc;
}

.company_overview__table li:not(:first-child) {
    margin-top: 0.5rem;
}

/* company_office */
.company_office {
    margin-top: var(--spacing_xl);
}

.company_office__content {
    gap: 0.5rem;
}

.company_office__text .--pink {
    display: inline-block;
    color: var(--color_white);
    background-color: var(--accent-color);
    padding-inline: 0.25rem;
    margin-right: 0.5rem;
}

.company_office__access {
    margin-top: var(--spacing_s);
}

.company_office__stockyard {
    width: 320px;
    max-width: 100%;
    margin-left: 0 !important;
}

/* ========== 事業内容 ========== */
/* service_intro */
.service_intro__box {
    color: var(--accent-color);
    width: 100%;
    border-bottom: solid 1px currentColor;
}

.service_intro__box::before {
    content: "";
    display: inline-block;
    width: 0.75rem;
    aspect-ratio: 1;
    border-bottom: solid 2px currentColor;
    border-right: solid 2px currentColor;
    rotate: 45deg;
    position: absolute;
    right: 0;
    top: 50%;
    translate: 0 -50%;
}

/* service_sect */
.service_sect {
    padding-top: 12.778svw;
}

.service_sect:not(:last-child) {
    padding-bottom: var(--section-padding_l);
}

.service_sect::before {
    content: "";
    width: 95vw;
    aspect-ratio: 3 / 1;
    filter: brightness(0.5);
    background-size: cover;
    background-position: center center;
    position: absolute;
    top: 0;
    right: 0;
}

.service_sect.--01::before {
    background-image: url("/wp-content/uploads/2025/07/services_1.jpg");
}

.service_sect.--02::before {
    background-image: url("/wp-content/uploads/2025/07/services_2.jpg");
}

.service_sect.--03::before {
    background-image: url("/wp-content/uploads/2025/07/services_3.jpg");
}

.service_sect.--04::before {
    background-image: url("/wp-content/uploads/2025/07/services_4.jpg");
}

.service_sect.--05::before {
    background-image: url("/wp-content/uploads/2025/07/services_5.jpg");
}

.service_sect__body {
    padding-inline: var(--spacing_base);
}

.service_sect__heading {
    color: var(--color_white);
    font-size: var(--font-size_l);
}

.service_sect__content {
    background-color: var(--color_white);
    padding: var(--spacing_base);
    margin-top: var(--spacing_m);
}

.service_sect__point {
    border: solid 1px var(--accent-color);
    padding: var(--spacing_base);
    margin-top: var(--spacing_m);
}

.service_sect__point-title {
    color: var(--accent-color);
    text-transform: uppercase;
    background-color: var(--color_white);
    position: absolute;
    top: 0;
    left: var(--spacing_base);
    translate: 0 -50%;
}

.service_sect__aside {
    padding-left: calc(var(--spacing_base) * 2);
}

.service_sect__stockyard-image {
    width: 50%;
    min-width: 280px;
    margin-top: var(--spacing_s);
    margin-left: 0 !important;
}

.service_sect__price-table {
    margin-top: var(--spacing_s);
}

/* service_area */
.service_area__copy {
    font-size: var(--font-size_l);
    color: var(--accent-color);
    border-bottom: solid 1px currentColor;
    padding-bottom: 0.5rem;
}

.service_area__list {
    gap: var(--spacing_s);
    flex-wrap: wrap;
    margin-top: var(--spacing_s);
}

.service_area__list li {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--color_white);
    background: var(--gradient_pink);
    padding-block: 0.25rem;
    padding-inline: 0.5rem;
}

/* service_flow */
.service_flow-steps {
    grid-template-columns: repeat(auto-fit, minmax(192px, 1fr));
    gap: var(--spacing_base) var(--gap_col);
}

.service_flow-steps__item {
    justify-items: center;
    gap: var(--spacing_s) 0;
    position: relative;
}

.service_flow-steps__item:not(:last-child)::after {
    content: "";
    display: block;
    width: 50%;
    height: 1px;
    background-color: var(--accent-color);
    position: absolute;
    right: 0;
    top: 30%;
    translate: 75% 0;
}

.service_flow-steps__num {
    font-family: var(--font-family_en);
    font-size: var(--font-size_m);
    color: transparent;
    -webkit-text-stroke: 1px var(--accent-color);
    text-stroke: 1px var(--accent-color);
}

.service_flow-steps__image {
    width: 45%;
}

.service_flow-steps__title {
    font-weight: 600;
    color: var(--color_white);
    background-color: var(--accent-color);
    padding-inline: 0.5rem;
    display: grid;
    place-items: center;
}

.service_flow-steps__text {
    margin-top: var(--spacing_s);
}

/* ========== 保有車輌 ========== */
.dumpcar_sect__container {
    max-width: var(--_container-max-width);
}

.dumpcar_sect__image-cover {
    position: relative;
}

.dumpcar_sect__image-cover::before {
    content: "";
    display: block;
    width: 100%;
    aspect-ratio: 3 / 1;
    position: absolute;
    top: 50%;
    left: 0;
    translate: 0 -50%;
}

.dumpcar_sect__image-cover.--dump::before {
    background: url(/wp-content/uploads/2025/07/vehicles_bg1.jpg) no-repeat center center / cover;
}

.dumpcar_sect__image-cover.--cement::before {
    background: url(/wp-content/uploads/2025/07/vehicles2_bg.jpg) no-repeat center center / cover;
}

.dumpcar_sect__image-cover.--yumbo::before {
    background: url(/wp-content/uploads/2025/07/vehicles3_bg.jpg) no-repeat center center / cover;
}

.dumpcar_sect__title {
    font-size: clamp(4.875rem, calc(2.464958158995816rem + 3.765690376569038vw), 7.125rem);
    font-family: var(--font-family_en);
    font-weight: 600;
    text-transform: uppercase;
    line-height: 0.9;
    letter-spacing: -0.025em;
    color: transparent;
    -webkit-text-stroke: 1px var(--accent-color);
    text-stroke: 1px var(--accent-color);
}

.dumpcar_sect.--reverce .dumpcar_sect__title {
    text-align: right;
}

.dumpcar_sect__image {
    margin-top: -56px;
}

.dumpcar_sect__text {
    gap: var(--spacing_s);
}

.dumpcar_sect__heading {
    color: var(--color_white);
    font-size: var(--font-size_xl);
    line-height: 1.5;
    background: var(--gradient_pink);
    padding-inline: 0.5rem;
}

/* ========== お問い合わせ ========== */
/* contact_tel */
.contact_tel__wrap {
    padding-block: var(--spacing_m);
}

.contact_tel__box {
    max-width: 1080px;
}

.contact_tel__box:hover {
    color: var(--color_white);
}

.contact_tel__box .smb-box__background {
    transition: all var(--_global--transition-duration) ease-in-out;
}

.contact_tel__box:hover .smb-box__background {
    background-color: var(--accent-color);
    border: solid 1px var(--color_white);
}

.contact_tel__inner {
    gap: 0.5rem;
}

.contact_tel__link {
    font-size: var(--font-size_l);
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: 0 0.5rem;
}

/* お問い合わせフォーム */
#autozip {
    display: none !important;
}

.snow-monkey-form {
    max-width: 1080px;
    margin-top: var(--spacing_xl);
}

.smf-form--simple-table .smf-item {
    padding-block: 2.5rem;
    padding-inline: 1rem;
    border-bottom: solid 1px var(--accent-color);
}

.form_input__address-item {
    max-width: 100%;
}

.smf-item__label__text {
    font-weight: 600;
}

.smf-item__description {
    color: var(--accent-color);
}

.smf-control-description a[href^="tel:"] {
    color: inherit;
    text-decoration: none;
    pointer-events: none;
}

.smf-form--simple-table .smf-item__col--label {
    flex: 0 0 16em;
    max-width: 16em;
}

.smf-form--simple-table .smf-item__col--controls {
    flex: 1 1 calc(100% - 16em);
    max-width: calc(100% - 16em);
}

/* プログレスバー */
[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-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: 1000px;
    font-weight: 600;
}

/* 戻るボタン */
.smf-action .smf-button-control__control[data-action="back"] {
    background-color: var(--color_white);
    color: var(--accent-color);
}

.smf-button-control {
    margin-left: 0 !important;
}

.smf-action .smf-button-control__control {
    margin-top: 24px;
}

/* ========== 施工実績・お知らせ ========== */
.c-entry-aside__title {
    color: var(--accent-color);
}

.c-entry-aside__title:after,
.c-entry-aside__title:before {
    background-color: var(--accent-color);
}

/* ~~~~~~~~~~~~~~~~~~~~ large-size ~~~~~~~~~~~~~~~~~~~~ */
@media screen and (max-width: 1023px) {

    /* ========== 共通設定 ========== */
    .l-1row-header {
        padding-block: 0;
    }

    /* ========== アニメーション ========== */
    .LoopImage {
        --loopItem-number: 3;
    }

    /* ========== パターン ========== */
    .pattern_cta__inner {
        flex-direction: column;
    }

    /* ========== 下層ページ ========== */
    /* ========== 事業内容 ========== */
    /* service_sect */
    .service_sect::before {
        width: 100%;
        aspect-ratio: 16 / 9;
    }

    .service_sect__inner {
        flex-direction: column-reverse;
    }

    .service_sect__heading {
        color: var(--accent-color);
    }

    .service_sect__body {
        padding-inline: 0;
    }

    .service_sect__content {
        padding: 0;
        background-color: transparent;
    }

    .service_sect__aside {
        padding-left: 0;
    }

    /* service_flow */
    .service_flow-steps {
        grid-template-columns: inherit;
    }

    .service_flow-steps__item {
        flex-direction: row !important;
    }

    .service_flow-steps__item:not(:last-child)::after {
        width: 1px;
        height: 30%;
        inset: auto;
        left: 5%;
        bottom: 0;
        translate: 0 100%;
    }

    .service_flow-steps__num {
        flex-basis: 100%;
    }

    .service_flow-steps__inner {
        display: flex;
        gap: var(--spacing_base);
        flex-grow: 1;
    }

    .service_flow-steps__image {
        width: max(10%, 64px);
        flex-shrink: 0;
    }

    .service_flow-steps__content {
        flex-grow: 1;
        margin-top: 0;
    }

    /* ========== 保有車輌 ========== */
    .dumpcar_sect__title {
        font-size: clamp(2.75rem, calc(0.7613636363636365rem + 9.943181818181818vw), 7.125rem);
    }

    .dumpcar_sect__inner {
        flex-direction: column;
    }

    .dumpcar_sect__inner.--reverce {
        flex-direction: column-reverse;
    }

    .dumpcar_sect__image {
        margin-top: 0;
    }
}

/* ~~~~~~~~~~~~~~~~~~~~ medium-size ~~~~~~~~~~~~~~~~~~~~ */
@media screen and (max-width: 781px) {
    :root {
        --spacing_m: 40px;
        --spacing_xl: 64px;
        --section-padding: 48px;
        --section-padding_l: 96px;
        --font-size_m: clamp(1.125rem, calc(0.8652597402597402rem + 1.2987012987012987vw), 1.5rem);
        --font-size_l: clamp(1.25rem, calc(0.7305194805194805rem + 2.5974025974025974vw), 2rem);
        --font-size_xl: clamp(1.5rem, calc(0.4610389610389609rem + 5.194805194805195vw), 3rem);
    }

    .section_heading.tate {
        writing-mode: inherit;
    }

    /* フッター */
    #menu-footer {
        justify-content: flex-start;
    }

    .footer_btns>.smb-btn-wrapper {
        flex: 1 0 auto;
    }

    .footer_btns .smb-btn {
        width: 100%;
    }

    /* ========== アニメーション ========== */
    .LoopImage {
        --loopItem-number: 2;
        --loop-duration: 7s;
    }

    /* ========== HOME ========== */
    /* home_hero */
    .home_hero-copy__inner {
        font-size: clamp(2rem, calc(0.528138528138528rem + 7.35930735930736vw), 4.125rem);
    }

    .home_hero-copy__inner p:nth-child(2) {
        font-size: clamp(1.75rem, calc(0.19155844155844148rem + 7.792207792207792vw), 4rem);
    }

    .home_hero-copy__inner p:nth-child(2) .--large {
        font-size: 1.2em;
    }

    .home_hero-appeal {
        padding-inline: 0;
        max-width: none;
    }

    .home_hero-appeal__inner {
        flex-direction: column-reverse;
        align-items: flex-start;
    }

    .home_hero-appeal__item {
        font-size: clamp(1.5rem, calc(0.9805194805194805rem + 2.5974025974025974vw), 2.25rem);
    }

    .home_hero-appeal__text {
        padding-inline: var(--_container-margin-left);
        gap: 0.75rem;
    }

    .home_hero-appeal {
        margin-top: 0;
    }

    .home_hero-appeal__image {
        width: 96.875svw;
    }

    /* home_concept */
    .home_concept {
        padding-bottom: var(--smb-section--padding);
    }

    .home_concept__header {
        padding-top: 0;
        display: contents;
    }

    .home_concept__heading {
        order: 1;
    }

    .home_concept__image {
        order: 3;
        margin-top: 0;
    }

    .home_concept__content {
        order: 2;
        padding-bottom: 0;
    }

    .home_concept__slider-cover::before {
        width: 100svw;
        height: 100%;
        right: 32px;
    }

    /* home_service */
    .home_service__inner {
        grid-template-columns: inherit;
        grid-template-rows: inherit;
        gap: 2px;
    }

    .home_service__box:nth-child(1) {
        grid-row: inherit;
    }

    .home_service__box:nth-child(3) {
        grid-column-start: inherit;
    }

    .home_service__box:nth-child(4) {
        grid-row-start: inherit;
    }

    .home_service__box:nth-child(5) {
        grid-row-start: inherit;
    }

    /* home_works */
    .home_works__inner {
        flex-direction: column;
    }

    .home_works__content {
        width: 100%;
    }

    /* home_reason */
    .home_reason::before {
        width: 85.333svw;
        opacity: 0.5;
    }

    .home_reason__col.--right {
        margin-top: var(--spacing_xl);
    }

    .home_reason__image::before {
        width: 100svw;
    }

    /* home_message */
    .home_message .smb-section-with-bgimage__bgimage>img {
        filter: brightness(0.75);
    }

    .home_message__btns {
        margin-top: 128px;
    }

    /* home_vehicles */
    .home_vehicles__inner {
        flex-direction: column;
        padding-top: var(--spacing_s);
    }

    .home_vehicles__slider-cover {
        width: 90%;
        padding-top: 0;
        padding-left: 0;
    }

    .home_vehicles__content {
        padding-inline: 0;
        padding-bottom: 0;
    }

    /* home_loop */
    .home_loop {
        padding-block: var(--spacing_base);
    }
}

/* ~~~~~~~~~~~~~~~~~~~~ small-size ~~~~~~~~~~~~~~~~~~~~ */
@media screen and (max-width: 639px) {

    /* ========== 共通設定 ========== */
    /* テーブル */
    .wp-block-table tr td:is(:first-child, :last-child) {
        box-sizing: border-box;
        width: 100%;
        padding-block: 1rem;
    }

    .wp-block-table tr td:first-child {
        text-align: left;
        padding-bottom: 0;
    }

    /* ボタン */
    .smb-buttons {
        justify-content: center !important;
    }

    .smb-buttons:not(.footer_btns) .smb-btn::after {
        width: 2.5rem;
    }

    .smb-buttons:not(.footer_btns) .smb-btn__label::before,
    .smb-buttons:not(.footer_btns) .smb-btn__label::after {
        right: 0.25rem;
    }

    /* 投稿(シンプル)*/
    .c-entries--simple .c-entry-summary__content {
        display: block;
    }

    .c-entries--simple .c-entry-summary__figure {
        float: inherit;
        width: 100%;
        margin-bottom: 20px;
    }

    /* ========== アニメーション ========== */
    .home_loop__loop-text {
        font-size: 7.5rem;
    }

    /* ========== パターン ========== */
    .pattern_cta__text-cover {
        font-size: 1rem;
    }

    .pattern_cta__list li {
        padding-left: 1.5rem;
    }

    .pattern_cta__title {
        flex-direction: column;
    }

    /* ========== HOME ========== */
    .home_hero-copy__logo {
        display: block;
        width: 30.4svw;
        position: absolute;
        bottom: 0;
        right: 0;
        translate: 0 88%;
        z-index: 1;
    }

    .home_hero-appeal {
        margin-top: 96px;
    }

    /* ========== 下層ページ ========== */
    .c-page-header {
        padding-top: 112px;
    }

    /* ========== 事業内容 ========== */
    .service_flow-steps__item {
        gap: 0;
    }

    .service_flow-steps__item:not(:last-child)::after {
        display: none;
    }

    .service_flow-steps__inner {
        flex-direction: column;
    }

    .service_flow-steps__content {
        width: 100%;
    }

    .service_flow-steps__num {
        text-align: center;
    }

    /* ========== お問い合わせ ========== */
    .contact_tel__link {
        flex-direction: column;
    }

    .smf-form--simple-table .smf-item__col--controls {
        max-width: none;
    }

    .form_thanks__text > p {
        text-align: left;
    }
}