/*
Theme Name: エムティ解体
Theme URI: https://mt-kaitai.com/
Author: モリ塗装株式会社
Description: エムティ解体（愛知県の解体工事専門店）のコーポレートサイト用テーマ。
Version: 1.0.0
Text Domain: mt-kaitai
*/
/* ===================================
   Reset CSS
=================================== */
*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

body {
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeSpeed;
    font-family: "Noto Sans JP", sans-serif;
    color: #393636;
    background-color: #fff;
    font-size: 14px;
    line-height: 2.14;
    overflow-x: hidden;
}

img,
picture,
video,
canvas,
svg {
    display: block;
    max-width: 100%;
    height: auto;
}

ul,
ol {
    list-style: none;
}

a {
    color: inherit;
    text-decoration: none;
}

a:hover {
    color: #e40000;
}

button {
    background: none;
    border: none;
    cursor: pointer;
    font: inherit;
    color: inherit;
}

input,
textarea,
select {
    font: inherit;
    color: inherit;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-size: inherit;
    font-weight: inherit;
}

/* ==========================================================================
   Layout - Header ( l- )
   ========================================================================== */
.l-header {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    position: static;
    background-color: #fff;
    height: 65px;
}

.l-header.is-fixed {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 100;
    animation: header-slide-in 0.5s ease-in-out;
}

@keyframes header-slide-in {
    from {
        transform: translateY(-100%);
        opacity: 0;
    }

    to {
        transform: translateY(0);
        opacity: 1;
    }
}

.l-header__logo {
    display: flex;
    align-items: center;
    padding: 8px 16px;
}

.l-header__logo a {
    display: flex;
    align-items: center;
    width: 100%;
    height: 100%;
}

.l-header__logo img {
    width: auto;
    max-width: 100%;
    max-height: 100%;
}

.l-header__right {
    display: flex;
    align-items: stretch;
}

.l-header__nav-group {
    display: flex;
}

.l-header__tel {
    display: none;
}

.l-header__nav {
    display: flex;
}

/* ==========================================================================
   Component - Header Button ( c- )
   ========================================================================== */
.c-header-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 100%;
}

.c-header-btn--mail {
    background-color: #0090f3;
}

.c-header-btn--tel {
    background-color: #fbc30c;
}

.c-header-btn--menu {
    background-color: #e40000;
}

.c-header-btn__icon {
    width: 20px;
}

.c-header-btn--mail .c-header-btn__icon {
    width: 29px;
}

.c-header-btn--tel .c-header-btn__icon {
    width: 30px;
}

.c-header-btn__num {
    display: none;
}

.c-header-btn__label {
    display: none;
}

.c-hamburger {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 24px;
}

.c-hamburger__line {
    display: block;
    width: 100%;
    height: 1px;
    background-color: #fff;
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.c-header-btn--menu.is-open .c-hamburger__line:nth-child(1) {
    transform: translateY(6px) rotate(45deg);
}

.c-header-btn--menu.is-open .c-hamburger__line:nth-child(2) {
    opacity: 0;
}

.c-header-btn--menu.is-open .c-hamburger__line:nth-child(3) {
    transform: translateY(-6px) rotate(-45deg);
}

/* ==========================================================================
   Layout - Mobile Menu ( l- )
   ========================================================================== */
.l-menu {
    display: none;
    position: fixed;
    top: var(--header-height, 65px);
    left: 0;
    right: 0;
    bottom: 0;
    overflow-y: auto;
    background-color: #fff;
    z-index: 100;
}

body.is-menu-open {
    overflow: hidden;
}

body.is-menu-open .l-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 101;
}

body.is-menu-open .l-menu {
    display: block;
}

.l-menu__nav {
    padding: 15px 30px 10px 40px;
}

.l-menu__item {
    border-bottom: 1px solid #eeeeee;
}

.l-menu__list>.l-menu__item:last-child {
    border-bottom: none;
}

.l-menu__item a,
.l-menu__toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 0;
    font-weight: bold;
}

.l-menu__item--dropdown.is-open .l-menu__toggle {
    color: #e40000;
    border-bottom: 1px solid #eeeeee;
}

.l-menu__toggle .l-menu__toggle-link {
    padding: 0;
}

.c-menu-arrow {
    width: 15px;
    height: 8px;
}

.l-menu__toggle-btn {
    display: flex;
    align-items: center;
    justify-content: center;
}

.c-menu-toggle-icon {
    position: relative;
    width: 24px;
    height: 24px;
    background-color: #262626;
}

.c-menu-toggle-icon__line {
    position: absolute;
    top: 50%;
    left: 50%;
    background-color: #fff;
    transform: translate(-50%, -50%);
    transition: transform 0.2s;
}

.c-menu-toggle-icon__line--h {
    width: 12px;
    height: 2px;
}

.c-menu-toggle-icon__line--v {
    width: 2px;
    height: 12px;
}

.l-menu__item--dropdown.is-open .c-menu-toggle-icon__line--v {
    transform: translate(-50%, -50%) scaleY(0);
}

.l-menu__submenu {
    display: none;
}

.l-menu__item--dropdown.is-open .l-menu__submenu {
    display: block;
}

.l-menu__submenu a {
    padding: 15px 0 15px 36px;
    border-bottom: 1px solid #eeeeee;
    position: relative;
}

.l-menu__submenu>li:last-child a {
    border-bottom: none;
}

.l-menu__submenu a::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 20px;
    width: 5px;
    height: 1px;
    background-color: #e40000;
    transform: translateY(-50%);
}

.p-menu-info {
    padding: 32px 20px 40px;
    text-align: center;
    background-color: #eeeeee;
}

.p-menu-info__logo img {
    width: 200px;
    margin: 0 auto;
}

.p-menu-info__address {
    width: fit-content;
    margin: 30px auto 0;
    text-align: left;
    line-height: 1.86;
}

.p-menu-info__cta {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-top: 24px;
}

.p-menu-info__cta-link img {
    width: 166px;
}

/* ==========================================================================
   Project - KV ( p- )
   ========================================================================== */
.p-kv {
    position: relative;
    isolation: isolate;
    padding-left: 16px;
}

.p-kv::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 70px;
    left: 0;
    height: 80%;
    width: calc(100% - 65px);
    background-color: #eeeeee;
}

.p-kv__bg {
    width: 100%;
    margin-left: auto;
}

.p-kv__bg img {
    width: 85%;
    margin-left: auto;
}

.p-kv__text {
    position: absolute;
    top: 97px;
    left: 20px;
    bottom: 0;
    z-index: 1;
    width: 39%;
    max-width: 960px;
    min-width: 270px;
}

.p-kv__points {
    position: relative;
    padding: 17px 17px 18px 23px;
}

.p-kv__points-inner {
    display: flex;
    justify-content: center;
    gap: 3px;
}

.p-kv__points::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    right: 0;
    left: 0;
    height: 100%;
    background-color: #fff;
    border-top-left-radius: 10px;
    border-bottom-left-radius: 10px;
}

.p-kv__point img {
    width: 110px;
}

.p-kv__service {
    position: relative;
    padding-top: 30px;
}

.p-kv__service-title {
    font-weight: bold;
    line-height: 1.43;
}

.p-kv__service-list {
    display: grid;
    grid-template-columns: 26.7vw 1fr;
    gap: 8px;
    margin-top: 12px;
    width: 69%;
}

.p-kv__service-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 0 4px 10px;
    background-color: #393636;
}

.p-kv__service-icon {
    width: 6vw;
}

.p-kv__service-icon img {
    width: 26px;
}

.p-kv__service-label {
    display: flex;
    align-items: center;
    height: 20px;
    color: #fff;
    font-weight: 500;
}

.p-kv__service-label--sm {
    width: 26.7vw;
}

.p-kv__service-label--lg {
    width: 37.4vw;
}

.p-kv__service-mascot {
    position: absolute;
    bottom: 0;
    right: 16px;
    width: 21vw;
}

/* ==========================================================================
   Project - CTA ( p- )
   ========================================================================== */
.p-cta {
    margin: 72px 0 44px;
}

.p-cta__list {
    display: flex;
    gap: 8px;
}

.p-cta__link {
    flex: 1;
}

.p-cta__link:hover {
    opacity: 0.8;
}

.p-cta__link img {
    width: 100%;
}

.p-cta__list a[href^="contact"] {
    transition: opacity 0.2s ease;
}

.p-cta__list a[href^="contact"]:hover {
    opacity: 0.7;
}

/* ==========================================================================
   Project - Banner Slider ( p- )
   ========================================================================== */
.p-bnr-slider {
    padding: 30px 0;
    background-color: #eeeeee;
}

.p-bnr-slider__track-wrap {
    width: 94%;
    margin: auto;
}

.p-bnr-slider__track {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
}

.p-bnr-slider__slide {
    width: 100%;
    flex: none;
    scroll-snap-align: start;
}

.p-bnr-slider__slide:hover {
    opacity: 0.8;
}

.p-bnr-slider__slide img {
    width: 100%;
}

.p-bnr-slider__controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    margin-top: 16px;
}

.p-bnr-slider__dots {
    display: flex;
    gap: 8px;
}

.p-bnr-slider__dot {
    width: 8px;
    height: 8px;
    background-color: #fff;
    border: 1px solid #d7d7d7;
    border-radius: 50%;
    cursor: pointer;
}

.p-bnr-slider__dot.is-active {
    background-color: #e40000;
}

/* ==========================================================================
   Component - Slider Arrow ( c- )
   ========================================================================== */
.c-slider-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    background-color: #e40000;
    border-radius: 50%;
}

.c-slider-arrow__icon {
    width: 16px;
}

.c-slider-arrow--prev .c-slider-arrow__icon {
    transform: rotate(180deg);
}

/* ==========================================================================
   Utility - Gutter ( u- )
   ========================================================================== */
.u-gutter {
    margin: 0 16px;
}

.u-gutter-padding {
    padding: 0 16px;
}

.u-pb-80 {
    padding-bottom: 80px;
}

.u-mb-80 {
    margin-bottom: 80px;
}

/* ==========================================================================
   Utility - Responsive Visibility ( u- )
   ========================================================================== */
.u-sp-only {
    display: block;
}

.u-pc-only {
    display: none;
}

.u-sp-reason {
    display: none;
}

.u-xs-only {
    display: none;
}

@media (min-width: 767px) {
    .u-sp-only {
        display: none;
    }

    .u-pc-only {
        display: block;
    }
}

@media (min-width: 1024px) and (max-width: 1210px) {
    .u-sp-reason {
        display: block;
    }

    .p-reason-detail .p-service__list .p-service__thumb {
        width: 40%;
    }
}

@media (max-width: 767px) {
    .u-sp-reason {
        display: block;
    }
}

/* ==========================================================================
   Component - Heading ( c- )
   ========================================================================== */
.c-heading {
    margin-bottom: 60px;
}

.c-heading__label {
    display: block;
    font-family: "Alumni Sans", sans-serif;
    font-size: 60px;
    font-weight: 600;
    line-height: 0.7;
}

.c-heading__sublabel {
    display: block;
    margin-top: 20px;
    font-weight: 500;
}

/* ==========================================================================
   Component - Group Title ( c- )
   ========================================================================== */
.c-group-title {
    padding: 10px 16px;
    background-color: #393636;
    color: #fff;
    font-weight: bold;
}

.c-group-title--detail {
    font-size: 16px;
    text-align: center;
    padding: 8px 16px;
}

/* ==========================================================================
   Project - About ( p- )
   ========================================================================== */
.p-about {
    position: relative;
    padding: 80px 0;
    overflow: hidden;
}

.p-about__bg {
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.p-about__bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.p-about__inner {
    color: #fff;
}

.p-about__title {
    font-size: 30px;
    font-weight: bold;
    line-height: 1.67;
}

.p-about__title-sub {
    font-size: 30px;
    font-weight: bold;
    line-height: 1.67;
    margin-top: 7px;
    white-space: nowrap;
}

.p-about__title-mark {
    display: inline-block;
    padding: 0 2px 4px 9px;
    margin-right: 6px;
    background-color: #e40000;
    font-family: "Noto Serif JP", serif;
    line-height: 1.34;
    letter-spacing: 0.2em;
}

.p-about__text {
    margin-top: 46px;
}

.p-about__text p {
    margin-top: 45px;
}

.p-about__text p:first-child {
    margin-top: 0;
}

.p-about__btn {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 60px auto 0;
    padding: 14px;
    border: 1px solid #fff;
    color: #fff;
    font-weight: bold;
    border-radius: 999px;
    width: 71%;
    transition: background-color 0.2s ease;
}

.p-about__btn:hover {
    background-color: rgba(0, 0, 0, 0.3);
    color: #fff;
}

.p-about__btn:hover .c-btn-arrow {
    transform: translateY(-50%) translateX(4px);
}

/* ==========================================================================
   Component - Button Arrow ( c- )
   ========================================================================== */
.c-btn-arrow {
    position: absolute;
    top: 50%;
    right: 13px;
    width: 35px;
    height: 35px;
    padding: 8px;
    border: 1px solid #fff;
    border-radius: 50%;
    object-fit: contain;
    transform: translateY(-50%);
    transition: transform 0.2s ease;
}

.c-btn {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 71%;
    margin: 60px auto 0;
    padding: 15px;
    background-color: #262626;
    color: #fff;
    font-weight: bold;
    border-radius: 999px;
}

.c-btn--single-works {
    margin: 30px auto 0;
}

.c-btn::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 50%;
    right: 13px;
    width: 35px;
    height: 35px;
    background-color: #e40000;
    border-radius: 50%;
    transform: translateY(-50%) scale(0);
    transition: transform 0.4s ease;
}

.c-btn:hover::before {
    transform: translateY(-50%) scale(20);
}

.c-btn:hover {
    color: #fff;
}

.c-btn:hover .c-btn-arrow {
    transform: translateY(-50%) translateX(4px);
}

/* ==========================================================================
   Project - Service ( p- )
   ========================================================================== */
.p-service {
    position: relative;
    padding: 80px 0 100px;
    background-color: #fe7002;
    overflow: hidden;
}

.p-service::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 0;
    border-top: 56px solid #393636;
    border-right: 56px solid transparent;
}

.p-service::after {
    content: "";
    position: absolute;
    bottom: 0;
    right: 0;
    width: 0;
    height: 0;
    border-bottom: 56px solid #393636;
    border-left: 56px solid transparent;
}

.p-service--no-corner::after {
    content: none;
}

.p-service .p-service__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 60px;
}

.p-service__head .p-service__inner .c-heading--service {
    margin-bottom: 0;
}

.p-service__label {
    color: #fff;
}

.p-service__sublabel {
    color: #fff;
}

.p-service__icon {
    width: 100px;
    margin-right: 16px;
}

.p-service__list {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.p-service__item {
    position: relative;
    background-color: #f3f3f3;
    border: 4px solid #393636;
    overflow: hidden;
}

.p-service__thumb img {
    width: 100%;
    height: 140px;
    object-fit: cover;
    object-position: center;
}

.p-service__body {
    padding: 30px 20px 70px;
}

.p-service__badge {
    display: inline-block;
    padding: 5px 22px;
    background-color: #e40000;
    color: #fff;
    font-weight: 500;
    font-size: 16px;
    line-height: 1.1;
    letter-spacing: 0.2em;
}

.p-service__text {
    margin-top: 16px;
}

.p-service__btn {
    position: absolute;
    right: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 6px 18px;
    background-color: #393636;
    color: #fff;
    font-weight: 500;
    transition: background-color 0.2s ease;
}

.p-service__btn:hover {
    background-color: #4d4d4d;
    color: #fff;
}

.p-service__btn-arrow {
    width: 18px;
    transition: transform 0.2s ease;
}

.p-service__btn:hover .p-service__btn-arrow {
    transform: translateX(4px);
}

.p-service__item-icon {
    position: relative;
    width: 110px;
    margin-top: -20px;
}

.p-service__item-icon img {
    width: 100%;
}

/* ==========================================================================
   Project - Reason ( p- )
   ========================================================================== */

.p-reason {
    position: relative;
    padding: 80px 0 100px;
}

.p-reason::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 10px;
    height: 100%;
    background-color: #fbc30c;
}

.p-reason--page::before {
    content: none;
}

.p-reason--page .p-reason__list {
    width: 100%;
}

.p-reason--page .p-reason__item {
    position: relative;
    height: 220px;
}

.p-reason--page .p-reason__item .p-price-nav__btn {
    width: 27px;
    height: 27px;
    right: 8px;
    bottom: 8px;
}

.p-reason--page .p-reason__item .p-contact__btn-circle {
    width: 27px;
    height: 27px;
}

.p-reason--page .p-reason__item .p-contact__btn-arrow {
    width: 12px;
}

.p-reason__label {
    color: #e40000;
}

.p-reason__list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    width: 97%;
    margin: auto;
}

.p-reason__item {
    display: block;
    height: 200px;
    padding: 20px;
    border: 1px solid #393636;
    background-color: #eeeeee;
    position: relative;
}

.p-reason__item-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.p-reason__num {
    font-family: "Alumni Sans", sans-serif;
    font-size: 60px;
    font-weight: bold;
    line-height: 1;
}

.p-reason__icon {
    width: 40px;
}

.p-reason__text {
    margin-top: 6px;
    font-size: 13px;
    line-height: 1.85;
}

.p-reason__mascot {
    display: flex;
    align-items: flex-end;
    justify-content: center;
}

.p-reason__mascot img {
    width: 130px;
}

.c-btn-arrow--red {
    background-color: #e40000;
    border-color: #e40000;
}

/* ==========================================================================
Project - Price ( p- )
   ========================================================================== */

.p-price__label {
    color: #e40000;
}

.p-price__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 2px 20px;
    border-bottom: 1px solid #878787;
    background-color: #eeeeee;
}

.p-price__row:last-child {
    border-bottom: none;
}

.p-price__list>.p-price__row {
    margin-top: 10px;
    padding: 0;
    border-bottom: none;
}

.p-price__group-list .p-price__row {
    padding: 4px 0 4px 19px;
}

.p-price__name {
    font-weight: bold;
}

.p-price__name--dark {
    display: flex;
    align-items: center;
    align-self: stretch;
    padding: 12px 19px;
    width: 170px;
    background-color: #393636;
    color: #fff;
}

.p-price__price {
    display: inline-flex;
    align-items: baseline;
    line-height: 1;
    font-weight: 500;
    padding: 9px 20px;
}

.p-price__price--single {
    width: 68%;
    border: 1px solid #393636;
}

.p-price__price--single-line {
    line-height: 1;
}

.p-price__tax-note {
    display: block;
    font-size: 12px;
    font-weight: 100;
}

.p-price__value {
    color: #e40000;
    font-weight: bold;
    font-family: "Alumni Sans", sans-serif;
    font-size: 26px;
}

.p-price__value--contact {
    font-size: 16px;
    line-height: 0;
    padding-right: 16px;
}

.p-price__yen {
    margin-left: 2px;
    font-weight: bold;
    font-size: 13px;
}

.p-price__yen--detail {
    margin-left: 6px;
    font-weight: normal;
}

.p-price__yen--demolition {
    color: #e40000;
}

.p-price__yen--exterior {
    color: #e40000;
}

.p-price__unit {
    margin-left: 12px;
    font-size: 13px;
}

.p-price__note {
    display: flex;
    margin-top: 40px;
}

/* ==========================================================================
   Project - Works ( p- )
   ========================================================================== */
.p-works {
    position: relative;
    padding: 80px 0;
    background-color: #fbc30c;
    overflow: hidden;
}

.p-works::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 0;
    border-top: 56px solid #fff;
    border-right: 56px solid transparent;
}

.p-works::after {
    content: "";
    position: absolute;
    bottom: 0;
    right: 0;
    width: 0;
    height: 0;
    border-bottom: 56px solid #fff;
    border-left: 56px solid transparent;
}

.p-works__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.p-works__nav {
    display: flex;
    gap: 8px;
}

.p-works__nav-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background-color: transparent;
    border: 1px solid #393636;
}

.p-works__nav-icon {
    width: 16px;
}

.p-works__nav-btn--prev .p-works__nav-icon {
    transform: rotate(180deg);
}

.p-works__track-wrap {
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
}

.p-works__track {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 0 10%;
}

.p-works__slide {
    position: relative;
    flex: 0 0 280px;
    scroll-snap-align: center;
    padding: 0 8px 8px 0;
}

.p-works__slide::before {
    content: "";
    position: absolute;
    top: 10px;
    left: 10px;
    right: 0;
    bottom: 0;
    background-color: #e40000;
}

.p-works__card {
    display: block;
    position: relative;
    background-color: #fff;
    border: 2px solid #393636;
}

.p-works__card:hover {
    color: inherit;
}

.p-works__thumb {
    position: relative;
}

.p-works__img {
    height: 180px;
    overflow: hidden;
}

.p-works__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.p-works__meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin: 20px 20px 0;
}

.p-works__badge {
    padding: 6px 11px;
    background-color: #e40000;
    color: #fff;
    font-size: 13px;
    line-height: 1;
}

.p-price-detail__body .p-works__badge--detail {
    padding: 0 15px 1px 15px;
    font-size: 16px;
    font-weight: bold;
}

.p-works__tags {
    display: flex;
    gap: 10px;
}

.p-works__tag {
    padding: 3px 12px;
    font-size: 13px;
    border: 1px solid #393636;
    border-radius: 999px;
    line-height: 1.3;
}

.p-works__text {
    margin: 21px 20px 30px;
    font-weight: bold;
}

.p-archive__list .p-works__slide {
    flex: none;
}

.p-works__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* ==========================================================================
   Project - Column ( p- )
   ========================================================================== */
.p-column__label {
    color: #e40000;
}

.p-column__list {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.p-column__link {
    display: block;
}

.p-column__thumb {
    height: 42vw;
}

.p-column__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 8px;
    object-position: center;
}

.p-column__meta {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 10px;
}

.p-column__date {
    font-family: "Alumni Sans", sans-serif;
    font-weight: 600;
    font-size: 22px;
}

.p-column__cat {
    padding: 6px 24px;
    background-color: #e40000;
    color: #fff;
    font-size: 13px;
    font-weight: 100;
    border-radius: 999px;
    line-height: 1;
}

.p-column__title {
    margin-top: 10px;
    font-weight: 500;
}

/* ==========================================================================
   Project - Single ( p- )
   ========================================================================== */
.p-single_works {
    background: #fff;
    border: 2px solid #393636;
}

.p-single__body {
    padding: 0 15px 25px 15px;
}

.p-single__meta {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 30px;
}

.p-single__date {
    font-family: "Alumni Sans", sans-serif;
    font-weight: 800;
    font-size: 20px;
}

.p-single__cat {
    padding: 6px 24px;
    background-color: #e40000;
    color: #fff;
    font-size: 13px;
    font-weight: 100;
    border-radius: 999px;
    line-height: 1;
}

.p-single__title {
    font-size: 18px;
    font-weight: bold;
    line-height: 1.9;
    margin-top: 20px;
    margin-bottom: 16px;
}

.p-single__thumb {
    height: 56vw;
}

.p-single__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 10px;
}

img.p-single__thumb-img {
    border-radius: 0;
}

.p-single__spec-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 24px;
}

.p-single__spec-list--detail {
    margin-top: 12px;
}

.p-single__spec-item {
    display: flex;
    align-items: center;
}

.p-single__spec-item--top {
    align-items: flex-start;
}

.p-single__spec-label {
    background-color: #393636;
    color: #fff;
    width: 32%;
    padding: 8px 20px;
}

.p-single__spec-label--detail {
    width: 48%;
    padding: 17px 18px;
    line-height: 1.2;
    display: flex;
    align-items: center;
    font-weight: bold;
}

.p-single__spec-value {
    font-weight: 500;
    border: 1px solid #393636;
    padding: 7px 20px;
    width: 68%;
}

.p-single__spec-value--detail {
    padding: 14px 20px;
    width: 52%;
    line-height: 1;
    text-align: right;
}

.p-single__spec-label--demolition {
    padding: 5px 18px;
}

.p-single__spec-value--demolition {
    padding: 4px 20px 8px 20px;
}

.p-price-detail-list .p-single__spec-item {
    align-items: stretch;
}

.p-single__spec-value--center {
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

.p-single__compare {
    display: flex;
    flex-direction: column;
    margin-top: 40px;
    padding: 0 15px 20px 15px;
}

.p-single__compare-label {
    font-family: "Alumni Sans", sans-serif;
    font-weight: 700;
    font-size: 32px;
    line-height: 1;
}

.p-single__compare-label-accent {
    color: #e40000;
}

.p-single__compare-img {
    margin-top: 10px;
}

.p-single__compare-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
}

.p-single__compare-arrow::before {
    content: "";
    width: 0;
    height: 0;
    border-left: 22.5px solid transparent;
    border-right: 22.5px solid transparent;
    border-top: 27px solid #e40000;
    margin-top: 24px;
}

.p-single__content {
    margin-top: 20px;
}

.p-single__content p {
    margin-top: 20px;
}

.p-single__content p:first-child {
    margin-top: 0;
}

.p-single__content h2 {
    margin-top: 20px;
    padding: 8px 16px;
    border-left: 8px solid #fbc30c;
    font-size: 16px;
    font-weight: bold;
}

.p-single__content h3 {
    margin-top: 40px;
    font-size: 18px;
    font-weight: bold;
}

.p-single__content ul,
.p-single__content ol {
    margin-top: 20px;
    padding-left: 1.2em;
}

.p-single__content ul {
    list-style: disc;
}

.p-single__content ol {
    list-style: decimal;
}

.p-single__content img {
    margin-top: 20px;
    border-radius: 8px;
}

.p-single__content a {
    color: #e40000;
    text-decoration: underline;
}

.p-single__back {
    margin-top: 60px;
    text-align: center;
}

/* ==========================================================================
   Project - Page Content ( p- )
   ========================================================================== */

.p-page-content p {
    margin-top: 8px;
}

.p-page-content p:first-child {
    margin-top: 0;
}

.p-page-content h2 {
    margin-top: 50px;
    padding: 8px 16px;
    border-left: 8px solid #fbc30c;
    font-size: 18px;
    font-weight: bold;
}

.p-page-content h3 {
    margin-top: 40px;
    font-size: 16px;
    font-weight: bold;
}

.p-page-content ul,
.p-page-content ol {
    margin-top: 20px;
    padding-left: 1.2em;
}

.p-page-content ul {
    list-style: disc;
}

.p-page-content ol {
    list-style: decimal;
}

.p-page-content a {
    color: #e40000;
    text-decoration: underline;
}

.p-page-content .contact_text {
    margin-top: 0;
    font-size: 16px;
}

.p-page-content .c-btn--top {
    margin: 40px auto 0;
    color: #fff;
    text-decoration: none;
}


/* ==========================================================================
   Project - Archive ( p- )
   ========================================================================== */
.p-archive__filter {
    margin-bottom: 60px;
}

.p-archive__filter-title {
    font-weight: bold;
    border-bottom: 1px solid #393636;
    padding-bottom: 4px;
}

.p-archive__filter-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 16px;
}

.p-archive__filter-link {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2px 21px;
    border: 1px solid #e40000;
    border-radius: 999px;
    color: #e40000;
    font-weight: bold;
}

.p-works .p-archive__filter-link {
    background-color: #fff;
    border: 1px solid #e40000;
    border-radius: 0;
}

.p-archive__filter-link.is-active {
    background-color: #e40000;
    color: #fff;
}

.p-archive__list {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.p-archive__empty {
    text-align: center;
}

/* ==========================================================================
   Component - Pagination ( c- )
   ========================================================================== */
.c-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    margin-top: 60px;
}

.c-pagination .page-numbers {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
}

.c-pagination .page-numbers.current {
    background-color: #393636;
    color: #fff;
}

.c-pagination .page-numbers.next,
.c-pagination .page-numbers.prev {
    border: 1px solid #393636;
}

.c-pagination__arrow {
    width: 15px;
}

.c-pagination__arrow--prev {
    transform: scaleX(-1);
}

/* ==========================================================================
   Project - Staff ( p- )
   ========================================================================== */
.p-staff {
    position: relative;
    padding-top: 80px;
}

.p-staff::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    width: 100%;
    height: 66.5%;
    background-color: #e40000;
}

.p-staff--list::before {
    height: 30%;
}

.p-staff__icon {
    width: 105px;
    position: absolute;
    top: -37px;
}

.p-staff__head-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.p-staff__label,
.p-staff__sublabel {
    color: #fff;
}

.p-staff__nav {
    display: flex;
    gap: 8px;
}

.p-staff__nav-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background-color: transparent;
    border: 1px solid #fff;
}

.p-staff__nav-icon {
    width: 16px;
}

.p-staff__nav-btn--prev .p-staff__nav-icon {
    transform: rotate(180deg);
}

.p-staff__track-wrap {
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    margin: 0;
}

.p-staff__track {
    display: flex;
    gap: 10px;
    padding: 0 10%;
}

.p-staff__slide {
    flex: 0 0 240px;
    scroll-snap-align: center;
}

.p-staff--list .p-staff__track-wrap {
    overflow-x: visible;
    scroll-snap-type: none;
}

.p-staff--list .p-staff__track {
    flex-direction: column;
    gap: 40px;
    padding: 0;
}

.p-staff--list .p-staff__slide {
    flex: 0 0 auto;
    scroll-snap-align: none;
}

.p-staff--list .p-staff__nav {
    display: none;
}

.p-staff__card {
    display: block;
    height: 100%;
    background-color: #fff;
    border-radius: 10px;
    border: 2px solid #393636;
    overflow: hidden;
}

.p-staff__card:hover {
    color: inherit;
}

.p-staff__img {
    height: 37vw;
    overflow: hidden;
}

.p-staff__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: bottom;
    transition: transform 0.3s ease;
}

.p-staff__body {
    padding: 20px 20px 30px;
}

.p-staff__name {
    font-weight: bold;
    font-size: 18px;
    line-height: 1;
    padding-bottom: 20px;
    border-bottom: 1px solid #9b9b9b;
}

@media (min-width: 1024px) and (max-width: 1207px) {
    .p-staff__slide:not(:nth-child(3)) .p-staff__name {
        padding-bottom: 41px;
    }
}

.p-staff--list .p-staff__name {
    text-align: center;
}

.p-staff__name-en {
    margin-left: 10px;
    font-family: "Alumni Sans", sans-serif;
    font-weight: 600;
    font-size: 14px;
    letter-spacing: 0.06em;
}

.p-staff__initial {
    color: #e40000;
}

.p-staff__text {
    margin-top: 18px;
    font-weight: 500;
}

/* ==========================================================================
   Project - FAQ ( p- )
   ========================================================================== */
.space_text {
    display: block;
    margin-top: 30px;
}

.p-faq {
    padding-bottom: 80px;
}

.p-faq .c-group-title {
    margin-top: 40px;
    margin-bottom: 20px;
}

.c-group-title-top {
    margin-top: 0;
}

.p-faq__label {
    color: #e40000;
}

.p-faq__list {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-top: 20px;
}

.p-faq__item {
    background-color: #fff;
    border: 2px solid #393636;
}

.p-faq__question {
    display: flex;
    align-items: stretch;
    width: 100%;
    text-align: left;
}

.p-faq__question-content {
    display: flex;
    gap: 14px;
    flex: 1;
    padding: 20px;
}

.p-faq__badge {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    min-width: 40px;
    border-radius: 50%;
    font-family: "Alumni Sans", sans-serif;
    font-weight: bold;
    font-size: 26px;
    margin-top: 5px;
}

.p-faq__badge--q {
    background-color: #e40000;
    color: #fff;
}

.p-faq__badge--a {
    border: 2px solid #e40000;
    color: #e40000;
}

.p-faq__q-text {
    flex: 1;
    color: #e40000;
    font-weight: bold;
    line-height: 1.86;
}

.p-faq__toggle {
    position: relative;
    align-self: stretch;
    width: 30px;
    background-color: #393636;
}

.p-faq__toggle-line {
    position: absolute;
    top: 50%;
    left: 50%;
    background-color: #fff;
    transform: translate(-50%, -50%);
    transition: transform 0.2s;
}

.p-faq__toggle-line--h {
    width: 12px;
    height: 2px;
}

.p-faq__toggle-line--v {
    width: 2px;
    height: 12px;
}

.p-faq__item.is-open .p-faq__toggle-line--v {
    transform: translate(-50%, -50%) scaleY(0);
}

.p-faq__answer {
    display: none;
    align-items: flex-start;
    gap: 16px;
    padding: 0 20px 20px;
    border-top: 2px solid #393636;
}

.p-faq__item.is-open .p-faq__answer {
    display: flex;
    padding: 20px 30px 20px 20px;
    background-color: #eeeeee;
}

.p-faq__a-text {
    line-height: 1.86;
}

/* ==========================================================================
   Project - Price Nav ( p- )
   ========================================================================== */
.p-price-nav {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
}

.p-price-nav__item {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 27vw;
    border: 3px solid #393636;
}

.p-price-nav__bg {
    position: absolute;
    z-index: -2;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.p-price-nav__item:not(.p-price-nav__item--plain)::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(100, 100, 100, 0.7);
}

.p-price-nav__item:hover .p-price-nav__bg {
    transform: scale(1.1);
}

.p-price-nav__label {
    color: #fff;
    font-size: 4.3vw;
    font-weight: bold;
    line-height: 1.22;
    text-align: center;
}

.p-price-nav__btn {
    display: flex;
    position: absolute;
    right: 0;
    bottom: 0;
    align-items: center;
    justify-content: center;
    width: 33px;
    height: 33px;
}

.p-price-nav__item .p-contact__btn-circle {
    width: 24px;
    height: 24px;
}

.p-price-nav__item .p-contact__btn-arrow {
    width: 11px;
}

.p-contact__btn-circle.p-contact__btn-circle--exterior {
    border: none;
    background-color: rgba(34, 34, 34, 0.75);
}

.p-price-nav__item--plain {
    background-color: #fff;
}

.p-price-nav__item--plain .p-price-nav__label {
    color: #393636;
    text-align: center;
}

.p-price-nav__mascot {
    display: flex;
    align-items: flex-end;
    justify-content: center;
}

.p-price-nav__mascot img {
    width: 66%;
}

/* ==========================================================================
   Project - Price Detail ( p- )
   ========================================================================== */
.p-price-detail-list {
    margin-top: 80px;
}

.p-price-detail-list .c-group-title {
    margin-top: 40px;
}

.p-price-detail-list .c-group-title:first-child {
    margin-top: 0;
}

.p-price-detail {
    margin-top: 20px;
    background-color: #f3f3f3;
    border: 2px solid #393636;
}

.p-price-detail__thumb {
    height: 38vw;
}

.p-price-detail__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.p-price-detail__body {
    padding: 30px 14px 40px 14px;
}

.p-price-detail__text {
    margin-top: 30px;
}

.p-price-detail__text2 {
    margin-top: 24px;
}

/* ==========================================================================
   Component - Close Icon ( c- )
   ========================================================================== */
.c-close-icon {
    position: relative;
    display: block;
    width: 18px;
    height: 18px;
}

.c-close-icon__line {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 1px;
    background-color: #fff;
}

.c-close-icon__line--1 {
    transform: translate(-50%, -50%) rotate(45deg);
}

.c-close-icon__line--2 {
    transform: translate(-50%, -50%) rotate(-45deg);
}

/* ==========================================================================
   Project - Price Modal ( p- )
   ========================================================================== */
body.is-price-modal-open {
    overflow: hidden;
}

.p-price-modal {
    display: none;
    position: fixed;
    z-index: 200;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    padding: 15px;
}

.p-price-modal.is-open {
    display: flex;
}

.p-price-modal__overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.6);
}

.p-price-modal__panel-wrap {
    position: relative;
    width: 100%;
    max-width: 400px;
    margin-top: 60px;
}

.p-price-modal__panel {
    width: 100%;
    max-height: 85vh;
    overflow-y: auto;
    overflow-anchor: none;
    background-color: #f3f3f3;
    border: 3px solid #393636;
}

.p-price-modal__close {
    position: absolute;
    right: 0;
    bottom: 100%;
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background-color: rgba(34, 34, 34, 0.75);
}

.p-price-modal__thumb img {
    width: 100%;
}

.p-price-modal__body {
    overflow-anchor: none;
    padding: 24px 16px 40px 16px;
}

.p-price-modal__title {
    font-size: 20px;
    font-weight: bold;
    text-align: center;
}

.p-price-modal__body .p-single__spec-list {
    margin-top: 20px;
}

.p-price-modal__body .p-single__spec-item {
    align-items: stretch;
}

.p-price-modal__note {
    text-align: right;
}

.page-template-page-paving-php .js-price-modal-yen {
    color: #e40000;
}

.p-price-modal__unit {
    margin-left: 8px;
}

.p-price-modal__feature-title {
    margin-top: 24px;
    font-weight: bold;
}

.p-price-modal__feature-mark {
    color: #fe7002;
    margin-right: 4px;
}

.p-price-modal__text {
    margin-top: 12px;
}

.p-price-modal__text p:first-child {
    margin-top: 0;
}

/* ==========================================================================
   Project - Staff Cta ( p- )
   ========================================================================== */
.p-staff-cta {
    position: relative;
    padding-bottom: 50px;
    overflow: hidden;
}

.p-staff-cta__inner {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

.p-staff-cta__text {
    text-align: center;
}

.p-staff-cta__line {
    display: inline-block;
    padding: 8px 10px;
    color: #e40000;
    background: #fff;
    font-weight: bold;
    text-align: center;
    font-size: 22px;
    margin-bottom: 8px;
    line-height: 1;
}

.p-staff-cta__line--2 {
    margin-bottom: 0;
}

.p-staff-cta__stripe {
    position: absolute;
    bottom: 0;
    width: 37px;
}

.p-staff-cta__stripe--left {
    left: 0;
}

.p-staff-cta__stripe--right {
    right: 0;
    transform: scaleX(-1);
}

.p-staff-bubble {
    padding-bottom: 40px;
    background-color: #e40000;
}

.p-staff-bubble__box {
    position: relative;
    width: 300px;
    margin: 0 auto;
    padding: 20px;
    border: 2px solid #fff;
    border-radius: 16px;
    color: #fff;
    font-weight: bold;
    text-align: center;
    line-height: 1.71;
}

.p-staff-bubble__box::before,
.p-staff-bubble__box::after {
    content: "";
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    border-style: solid;
}

.p-staff-bubble__box::before {
    bottom: -22px;
    border-width: 22px 15px 0 15px;
    border-color: #fff transparent transparent transparent;
}

.p-staff-bubble__box::after {
    bottom: -18px;
    border-width: 18px 12px 0 12px;
    border-color: #e40000 transparent transparent transparent;
}

/* ==========================================================================
   Project - Contact Page ( p- )
   ========================================================================== */
.p-contact-page {
    padding: 60px 0;
    background: linear-gradient(60deg, #015eea, #00c0fa);
}

.p-contact-page__label {
    color: #fff;
}

.p-contact-page__sublabel {
    color: #fff;
}

.p-contact-page__note {
    color: #fff;
    font-size: 26px;
    font-weight: bold;
    text-align: center;
    margin-bottom: 30px;
    line-height: 1;
}

.p-contact-page__tel {
    width: min(315px, 90%);
    margin: 0 auto;
}

.p-contact-form__inner {
    position: relative;
    margin-top: 68px;
    padding: 36px 20px 30px;
    background-color: #fff;
    border: 2px solid #008ef2;
}

.p-contact-form__icon {
    position: absolute;
    top: -30px;
    left: 50%;
    width: 50px;
    height: 50px;
    transform: translateX(-50%);
}


.p-contact-form__title {
    color: #008ef2;
    font-weight: bold;
    font-size: 20px;
    text-align: center;
}

.p-contact-form__body {
    margin-top: 30px;
}

.p-contact-form__row {
    margin-top: 20px;
}

.p-contact-form__row:first-child {
    margin-top: 0;
}

.p-contact-form__label {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 15px;
    font-weight: bold;
}

.p-contact-form__badge {
    padding: 2px 10px;
    border-radius: 50px;
    color: #fff;
    font-size: 12px;
    font-weight: bold;
    line-height: 1;
}

.p-contact-form__badge--required {
    background-color: #e40000;
}

.p-contact-form__badge--optional {
    background-color: #9b9b9b;
}

.p-contact-form__input,
.p-contact-form__textarea,
.p-contact-form__confirm {
    display: block;
    width: 100%;
    margin-top: 8px;
    padding: 12px;
    border: 1px solid #cccccc;
    border-radius: 6px;
    font-size: 15px;
}

.p-contact-form__confirm {
    background-color: #f5f5f5;
}

.p-contact-page .p-page-content {
    padding: 20px;
    background-color: #fff;
    border: 2px solid #008ef2;
    color: #393636;
    text-align: center;
}

.p-page-content .wpcf7 {
    text-align: left;
}

.p-contact-form__textarea {
    height: 120px;
    resize: vertical;
}

.p-contact-form__note {
    margin-top: -6px;
    color: #393636;
    font-size: 12px;
    font-weight: 400;
}

.p-contact-form__checks,
.p-contact-form__checks li,
.p-contact-form__checks span {
    font-size: 15px;
    font-weight: bold;
}

.p-contact-form__checks {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 12px;
}

.p-contact-form__checks label {
    display: flex;
    align-items: center;
    gap: 8px;
}

.wpcf7-list-item {
    margin: 0;
}

.p-contact-form__agree {
    width: 18px;
    height: 18px;
}

.p-contact-form__checks input[type="checkbox"] {
    appearance: none;
    width: 20px;
    height: 20px;
    min-width: 20px;
    border: 1px solid #393636;
    border-radius: 50%;
}

.p-contact-form__checks input[type="checkbox"]:checked {
    background-color: #e40000;
    border-color: #e40000;
}

.wpcf7-form-control-wrap[data-name="acceptance-privacy"] {
    display: flex;
    justify-content: center;
    margin-top: 40px;
}

.wpcf7-form-control-wrap[data-name="acceptance-privacy"] a {
    text-decoration: underline;
}

.wpcf7-form-control-wrap[data-name="acceptance-privacy"] .wpcf7-list-item label {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-weight: 500;
}

.wpcf7-form:not(:has(.p-contact-form__confirm)) .p-contact-form__prev-wrap {
    display: none;
}

.wpcf7-form:has(.p-contact-form__confirm) .p-contact-form__prev-wrap .wpcf7-previous {
    display: block !important;
}

.p-contact-form__body .c-btn {
    margin-top: 24px;
    width: 80%;
}

.p-contact-form__actions {
    width: 100%;
    margin: 40px auto 0;
}

.p-contact-form__actions p {
    display: flex;
    justify-content: center;
    flex-direction: column;
    margin-top: 24px;
    gap: 20px;
}

.p-contact-form__actions .c-btn,
.p-contact-form__actions .p-contact-form__prev-wrap {
    width: 100%;
    margin-top: 0;
}

.p-contact-form__prev-wrap {
    position: relative;
    isolation: isolate;
    display: block;
    width: 100%;
}

.p-contact-form__prev-wrap .wpcf7-previous {
    display: block;
    width: 100%;
    padding: 15px 50px 15px 15px;
    background-color: #fff;
    color: #262626;
    border: 1px solid #262626;
    border-radius: 999px;
    font-weight: bold;
    font-size: inherit;
    font-family: inherit;
    cursor: pointer;
}

.p-contact-form__prev-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}

.p-contact-form__prev-arrow img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* ==========================================================================
   Project - Privacy ( p- )
   ========================================================================== */
.p-privacy__label {
    color: #e40000;
}

.p-privacy__intro {
    margin-top: 20px;
}

.p-privacy__list {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin-top: 20px;
}

.p-privacy__num {
    font-family: "Alumni Sans", sans-serif;
    font-weight: bold;
    font-size: 24px;
    color: #e40000;
    position: relative;
    top: 2px;
}

.p-privacy__item-text {
    display: flex;
    align-items: baseline;
    gap: 10px;
}

.p-privacy__contact {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    margin-top: 30px;
    padding: 14px;
    background-color: #eeeeee;
    border: 1px solid #393636;
}

.p-privacy__contact-title {
    font-weight: bold;
}

.p-privacy__contact-icon {
    width: 90px;
}

/* ==========================================================================
   Project - Company ( p- )
   ========================================================================== */

.p-company__label {
    color: #e40000;
}

.p-company__img {
    height: 160px;
    margin-bottom: 40px;
}

.p-company__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: bottom;
}

.p-company__list {
    display: flex;
    flex-direction: column;
    gap: 26px;
}

.p-company__row {
    display: flex;
    gap: 20px;
}

.p-company__term {
    font-weight: bold;
    width: 56px;
}

.p-company__desc {
    flex: 1;
}

/* ==========================================================================
   Project - Message ( p- )
   ========================================================================== */
.p-message {
    background-color: #eeeeee;
    padding: 80px 0;
}

.p-message__label {
    color: #e40000;
}

.p-message__lead {
    margin-top: 30px;
    font-size: 16px;
}

.p-message__lead span {
    display: inline;
    background-color: #e40000;
    color: #fff;
    line-height: 2.3;
    font-weight: bold;
    padding: 3px 6px;
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
}

.p-message__text {
    margin-top: 24px;
}

.p-message__text p {
    margin-top: 24px;
}

.p-message__text p:first-child {
    margin-top: 0;
}

.p-message__sign {
    display: flex;
    align-items: baseline;
    justify-content: end;
    gap: 8px;
    margin-top: 24px;
    font-family: "Noto Serif JP", serif;
}

.p-message__role {
    font-size: 14px;
}

.p-message__name {
    margin-top: 4px;
    font-size: 16px;
}

/* ==========================================================================
   Project - Reason Detail ( p- )
   ========================================================================== */
.p-reason-detail .p-service__list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.p-reason-detail .p-service__thumb {
    height: 38vw;
    border-bottom: 3px solid #393636;
}

.p-reason-detail .p-service__thumb img {
    height: 100%;
}

.p-reason-detail .p-service__thumb picture {
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.p-reason-detail .p-service__body {
    padding-top: 0;
    padding-bottom: 30px;
}

.p-reason-detail__frame {
    padding: 14px 0 40px 0;
}

.p-reason-detail #reason-05 .p-reason-detail__frame {
    padding: 14px 0 80px 0;
}

.p-reason-detail__item {
    position: relative;
    padding: 64px 16px 0;
}

.p-reason-detail__item::after {
    content: "";
    position: absolute;
    z-index: 1;
    top: 0;
    left: 0;
    width: 100%;
    height: 64px;
    border-radius: 0 0 8px 0;
    background-color: #fbc30c;
    border-bottom: 6px solid #fbc30c;
}

.p-reason-detail .p-service__list>li:first-child .p-reason-detail__item::after {
    background-color: #fff;
}

.p-reason-detail .p-service__list>li:nth-child(3) .p-reason-detail__item::after,
.p-reason-detail .p-service__list>li:nth-child(5) .p-reason-detail__item::after {
    background-color: #eeeeee;
}

.p-reason-detail .p-service__list>li:nth-child(2) .p-reason-detail__item::before,
.p-reason-detail .p-service__list>li:nth-child(4) .p-reason-detail__item::before {
    background-color: #eee;
}

.p-reason-detail__item::before {
    content: "";
    position: absolute;
    z-index: 2;
    top: 0;
    left: 0;
    width: 77px;
    height: 64px;
    border-radius: 0 8px 0 0;
    background-color: #fbc30c;
}

.p-reason-detail__item--yellow {
    background-color: #fbc30c;
}

.p-reason-detail__item--gray {
    background-color: #eeeeee;
}

.p-reason-detail .p-service__list>li {
    position: relative;
}

.p-reason-detail .p-service__list>li::before {
    content: "";
    position: absolute;
    z-index: 3;
    top: 0;
    left: 0;
    width: 0;
    height: 0;
    border-top: 56px solid #393636;
    border-right: 56px solid transparent;
}

.p-reason-detail .p-service__list>li::after {
    content: attr(data-num);
    position: absolute;
    z-index: 4;
    top: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 77px;
    height: 64px;
    color: #fff;
    font-family: "Alumni Sans", sans-serif;
    font-size: 60px;
    font-weight: bold;
}

.p-reason-detail .p-service__list>li[data-num="02"]::after,
.p-reason-detail .p-service__list>li[data-num="04"]::after {
    color: #e40000;
}

/* ==========================================================================
   Project - Area ( p- )
   ========================================================================== */
.p-area {
    position: relative;
    isolation: isolate;
    background-color: #eeeeee;
}

.p-area::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url(img/common/area_bg.png);
    background-repeat: no-repeat;
    background-position: top;
    opacity: 1;
}

.p-area__box {
    padding: 80px 0;
}

.p-area__label {
    color: #e40000;
}

.p-area__tags {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    margin-top: 20px;
}

.p-area__tag {
    padding: 10px;
    font-size: 20px;
    font-weight: bold;
    color: #e40000;
    background-color: #fff;
    line-height: 1;
}

.p-area__tag--accent {
    color: #e40000;
}

.p-area__list {
    display: flex;
    flex-direction: column;
    gap: 30px;
    margin-top: 36px;
}

.p-area__group-title {
    line-height: 1;
    font-weight: bold;
}

.p-area__cities {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 17px;
    margin-top: 20px;
}

.p-area__cities li {
    line-height: 1;
}

/* ==========================================================================
   Project - Page Label ( p- )
   ========================================================================== */
.p-page-label {
    border: 3px solid #e40000;
    box-sizing: border-box;
}

.p-page-label__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    overflow: hidden;
    margin-right: 0;
    height: 100px;
}

.p-page-label__badge {
    display: flex;
    background-color: #e40000;
}

.p-page-label__badge span {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2px 2px 4px 2px;
    color: #fff;
    font-weight: bold;
    font-size: 22px;
    line-height: 1;
    border-right: 2px solid #fff;
}

.p-page-label__badge span:last-child {
    border-right: none;
}

.p-page-label__icon {
    width: 76px;
    margin-top: 6px;
}

/* ==========================================================================
   Project - Page Head ( p- )
   ========================================================================== */
.p-page-head {
    padding-top: 60px;
    text-align: center;
}

.p-page-head .c-heading {
    text-align: left;
}

/* ==========================================================================
   Project - Contact ( p- )
   ========================================================================== */
.p-contact {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: 20px 0;
}

.p-contact__bg {
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.p-contact__bg picture {
    display: block;
    width: 100%;
    height: 100%;
}

.p-contact__bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.p-contact:hover .p-contact__bg img {
    transform: scale(1.1);
}

.p-contact__inner {
    display: block;
    position: relative;
}

.p-contact__text {
    width: 239px;
    margin: auto;
}

.p-contact__btn {
    display: flex;
    position: absolute;
    right: 0;
    bottom: 0;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
}

.p-contact__btn-circle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border: 1px solid #fff;
    border-radius: 50%;
}

.p-contact__btn-circle--red {
    border-color: #e40000;
}

.p-contact__btn-arrow {
    width: 13px;
}

/* ==========================================================================
   Layout - Footer ( l- )
   ========================================================================== */
.l-footer {
    padding: 60px 0 110px;
    background-color: #393636;
    color: #fff;
    border-top: 1px solid #fff;
}

.l-footer__inner {
    text-align: left;
}

.l-footer__logo {
    width: 260px;
    margin: 0 auto;
}

.l-footer__address {
    width: fit-content;
    margin: 60px auto 0;
    text-align: left;
    line-height: 1.86;
}

.l-footer__nav {
    display: flex;
    width: fit-content;
    margin: 60px auto 0;
    text-align: left;
    gap: 74px;
}

.l-footer__nav-list {
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: 26px;
}

.l-footer__nav-item {
    white-space: nowrap;
}

.l-footer__nav-item--group {
    display: contents;
}

.l-footer__nav-subgroup {
    display: contents;
}

.l-footer__nav-item--sub a::before {
    content: "";
    display: inline-block;
    width: 8px;
    height: 1px;
    margin-right: 6px;
    background-color: #fff;
    vertical-align: middle;
}

/* ==========================================================================
   Layout - Fixed CTA ( l- )
   ========================================================================== */
.l-fixed-cta {
    display: flex;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 90;
}

.l-fixed-cta__link {
    flex: 1;
}

.l-fixed-cta__link img {
    width: 100%;
    height: auto;
}

/* ==========================================================================
   Layout - Global Navigation ( l- )
   ========================================================================== */
.l-gnav {
    display: none;
}

@media (min-width: 767px) {
    body {
        font-size: 16px;
    }

    .p-price-nav__label br {
        display: none;
    }

    .p-single__spec-label--detail br {
        display: none;
    }


    .p-contact-form__actions p {
        flex-direction: row;
        gap: 16px;
    }

    .p-contact-form__actions .c-btn,
    .p-contact-form__actions .p-contact-form__prev-wrap {
        width: 50%;
    }

    .p-kv__bg img {
        width: 97%;
    }

    .l-footer {
        padding: 80px 0;
    }

    .l-footer__inner {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 40px;
    }

    .l-footer__logo {
        width: 330px;
    }

    .l-footer__address {
        width: auto;
        margin: 20px 0 0;
    }

    .l-footer__nav {
        display: grid;
        grid-template-columns: repeat(4, auto);
        width: auto;
        margin: 0;
        gap: 24px 60px;
    }

    .l-footer__nav-list {
        display: contents;
    }

    .l-footer__nav-item--group {
        display: flex;
        align-items: flex-start;
    }

    .l-footer__nav-subgroup {
        display: grid;
        grid-template-rows: repeat(4, auto);
        grid-auto-flow: column;
        gap: 8px 20px;
    }

    .p-area__tags {
        flex-direction: row;
        gap: 0;
    }

    .p-area__tag--main {
        padding-right: 4px;
    }

    .p-area__tag--accent {
        padding-left: 0px;
    }

    .p-kv__service-title-br {
        display: none;
    }

    .p-kv__text {
        margin-top: 0;
        width: 43%;
    }

    .p-kv__points-inner {
        gap: 30px;
    }


    .p-kv__service {
        padding-top: 140px;
        padding-right: calc(60px + (140 * (100vw - 1024px) / 640));
    }

    .p-kv__service-icon {
        width: 26px;
    }

    .p-kv__service-icon img {
        width: 32px;
    }

    .p-kv__service-label {
        height: 24px;
    }

    .p-kv__service-mascot {
        width: 130px;
    }

    .p-kv__service-list {
        grid-template-columns: 1fr 1fr;
        padding-right: 0;
        width: 78%;
    }

    .p-kv__service-label--sm,
    .p-kv__service-label--lg {
        width: auto;
    }

    .p-cta {
        margin: 140px auto 80px;
        width: 70%;
    }

    .p-cta__list {
        gap: 30px;
    }

    .p-about {
        padding: 100px 0;
    }

    .p-about__inner {
        max-width: 720px;
        margin: auto;
    }

    .c-heading__label {
        font-size: 80px;
    }

    .p-about__title,
    .p-about__title-sub {
        font-size: 40px;
    }

    .p-about__title br {
        display: none;
    }

    .p-about__btn {
        width: 320px;
    }


    .p-service__list {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .p-reason__item {
        height: 220px;
        padding: 24px;
    }

    .p-reason__num {
        font-size: 72px;
    }

    .p-reason__icon {
        width: 48px;
    }

    .p-reason__mascot img {
        width: 150px;
    }

    .c-btn , .p-contact-form__body .c-btn {
        width: 320px;
    }

    .p-service__thumb img {
        height: 200px;
    }

    .p-works__img {
        height: 220px;
    }

    .p-works__slide {
        flex: 0 0 340px;
    }

    .p-column__thumb {
        height: 220px;
    }

    .p-staff__img {
        height: 200px;
    }

    .p-staff__slide {
        flex: 0 0 300px;
    }

    .p-faq__badge {
        width: 48px;
        height: 48px;
        min-width: 48px;
        font-size: 30px;
    }

    .p-about__text {
        text-align: center;
    }

    .c-heading--about {
        text-align: center;
    }

    .p-about__title,
    .p-about__title-sub {
        text-align: center;
    }

    .p-page-label__badge span {
        padding: 4px 6px 6px 6px;
        font-size: 24px;
    }

    .p-staff-cta {
        padding-bottom: 70px;
    }

    .p-staff-cta .p-staff-cta__inner {
        width: min(790px, 100%);
        margin-left: auto;
        margin-right: auto;
    }

    .p-staff-cta__text {
        display: flex;
        justify-content: center;
        gap: 0;
    }

    .p-staff-cta__line {
        margin-bottom: 0;
        padding: 12px 20px;
        font-size: 34px;
    }

    .p-staff-cta__line--1 {
        padding-right: 0;
    }

    .p-staff-cta__line--2 {
        padding-left: 0px;
    }

    .p-staff-cta__stripe {
        width: 50px;
    }

    .p-page-content .contact_text {
        font-size: 20px;
    }
}

@media (min-width: 767px) and (max-width: 1023px) {
    .p-contact__text {
        width: 320px;
    }

    .p-archive__list {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }

    .p-staff-bubble__box {
        width: 340px;
    }

    .p-staff-cta__line {
        font-size: 30px;
    }

    .p-staff-cta__inner {
        width: min(700px, 100%);
    }

    .p-staff__img {
        height: 330px;
    }

    .l-footer {
        padding-bottom: 200px;
    }

    .l-footer__inner {
        width: 90%;
        margin: auto;
    }

    .l-footer__nav {
        grid-template-columns: repeat(2, auto);
    }

    .p-bnr-slider__dot:nth-child(n+3) {
        display: none;
    }

    .p-area__cities {
        grid-template-columns: repeat(6, 1fr);
    }

    .p-kv__text {
        width: 50%;
        top: 50px;
    }

    .p-company__img {
        height: 320px;
    }

    .p-company__term {
        width: 70px;
    }

    .p-kv__bg {
        width: 95%;
    }

    .p-kv__point img {
        width: 130px;
    }

    .p-kv__service-title {
        font-size: 18px;
    }

    .p-bnr-slider__track-wrap {
        width: 69%;
    }

    .p-bnr-slider__track {
        gap: 16px;
    }

    .p-bnr-slider__slide {
        width: calc(50% - 8px);
    }

    .p-cta {
        margin: 80px auto;
    }

    .p-kv__service {
        padding-top: 30px;
    }

    .p-kv__service-item {
        padding: 14px 0 14px 10px;
    }

    .l-header {
        height: 80px;
    }
}

@media (min-width: 1024px) {

    .p-contact-form__agree {
        width: auto;
        height: auto;
    }

    .p-contact-form__actions {
        width: 50%;
        margin: 60px auto 0;
    }

    .l-header {
        height: 80px;
    }

    .u-gutter {
        margin: 0 calc(60px + (140 * (100vw - 1024px) / 640));
    }

    .p-privacy__contact {
        width: 460px;
        margin: 40px 0 auto 0;
    }

    .p-price-nav {
        grid-template-columns: repeat(4, 1fr);
        gap: 20px;
    }

    .p-price-nav__item {
        height: 220px;
    }

    .p-price-nav__label br {
        display: none;
    }

    .p-price-nav__label {
        font-size: 24px;
    }

    .p-price-nav__btn {
        width: 46px;
        height: 46px;
        right: 4px;
        bottom: 4px;
    }

    .p-price-nav__item .p-contact__btn-circle {
        width: 34px;
        height: 34px;
    }

    .p-price-nav__item .p-contact__btn-arrow {
        width: 16px;
    }

    .p-price-detail {
        display: flex;
        align-items: stretch;
    }

    .p-price-detail__thumb {
        width: 40%;
        height: auto;
    }

    .p-price-detail__body {
        flex: 1;
        padding: 20px 30px 40px 30px;
    }

    .p-price-detail-list {
        margin-top: 120px;
    }

    .p-single__spec-value--detail {
        padding: 7px 20px 9px 20px;
    }

    .p-single__spec-label--detail {
        padding: 11px 18px;
    }

    .p-price-detail-list .c-group-title {
        margin-top: 80px;
    }

    .c-group-title--detail {
        font-size: 18px;
    }

    .p-price-modal__panel-wrap {
        max-width: 1410px;
        width: 91%;
        margin-top: 80px;
    }

    .p-price-modal__panel {
        display: flex;
        align-items: stretch;
        height: 550px;
        overflow-y: hidden;
    }

    .p-price-modal__thumb {
        width: 48%;
    }

    .p-price-modal__thumb img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .p-price-modal__body {
        flex: 1;
        height: 100%;
        overflow-y: auto;
        padding: 24px 38px 24px 38px;
    }

    .p-price-modal__body .p-single__spec-list {
        margin-top: 40px;
    }

    .p-price-modal__title {
        font-size: 22px;
    }

    .p-reason-detail__frame {
        margin: 0 calc(60px + (140 * (100vw - 1024px) / 640));
        padding: 60px 0 40px 0;
    }

    .p-reason-detail #reason-05 .p-reason-detail__frame {
        padding: 60px 0 80px 0;
    }

    .p-reason-detail__item::after {
        height: 84px;
    }

    .p-reason-detail__item::before {
        width: 100px;
        height: 84px;
    }

    .p-reason-detail .p-service__list>li::before {
        border-top-width: 72px;
        border-right-width: 72px;
    }

    .p-reason-detail .p-service__list>li::after {
        width: 100px;
        height: 84px;
        font-size: 76px;
    }

    .p-reason-detail .p-message__lead span {
        padding: 5px 6px 7px 6px;
    }

    .p-reason-detail .p-service__item {
        display: flex;
        align-items: stretch;
    }

    .p-reason-detail .p-service__thumb {
        width: 34%;
        height: auto;
        border-bottom: none;
        border-right: 4px solid #393636;
    }

    .p-reason-detail .p-service__thumb img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .p-reason-detail .p-service__body {
        flex: 1;
        padding: 10px 50px 60px;
    }

    .p-single {
        max-width: 960px;
        margin-left: auto;
        margin-right: auto;
    }

    .p-single_works {
        width: min(1140px, 100%);
        margin: auto;
    }

    .p-message {
        padding: 100px 0;
    }

    .p-message__body {
        display: flex;
        align-items: flex-start;
        gap: 40px;
    }

    .p-message__img {
        width: 45%;
    }

    .p-message__content {
        flex: 1;
    }

    .p-message__lead--company {
        margin-top: 0;
    }

    .p-message__body .p-message__lead--company span {
        padding: 4px 10px 7px 10px;
    }

    .p-message__lead {
        font-size: 22px;
    }

    .p-price__price--single-line {
        line-height: 1.01;
    }

    .p-single__compare {
        width: 100%;
        flex-direction: row;
        gap: 20px;
        padding: 0 30px 30px;
    }

    .p-single__compare-block {
        flex: 1;
    }

    .p-single__compare-img {
        height: 380px;
    }

    .p-single__compare-img img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .p-single__compare-arrow::before {
        transform: rotate(-90deg);
        margin-top: 0;
    }

    .p-single__date {
        font-size: 24px;
    }

    .p-single__cat {
        font-size: 15px;
    }

    .p-single__thumb {
        height: 420px;
    }

    .p-single__title {
        font-size: 20px;
        margin-bottom: 40px;
    }

    .p-single__body {
        padding: 0 30px 30px 30px;
    }

    .p-page-label__inner {
        position: relative;
        justify-content: flex-end;
        margin-right: 0;
        margin-left: 0;
        height: 170px;
    }

    .p-page-label__badge {
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
    }

    .u-pb-80 {
        padding-bottom: 100px;
    }

    .u-mb-80 {
        margin-bottom: 100px;
    }

    .l-fixed-cta {
        display: none;
    }

    .p-cta__list a[href^="tel:"] {
        pointer-events: none;
    }

    .p-contact-page__tel a {
        pointer-events: none;
    }

    .p-bnr-slider__track {
        overflow-x: visible;
        scroll-snap-type: none;
        gap: 16px;
    }

    .p-bnr-slider__slide {
        width: auto;
        flex: 1;
    }

    .p-bnr-slider__controls {
        display: none;
    }

    .p-about {
        padding: 100px 0;
    }

    .p-service {
        padding: 100px 0;
    }

    .p-works {
        padding: 100px 0;
    }

    .p-works__img {
        height: 200px;
    }

    .p-works__track-wrap {
        overflow-x: visible;
        scroll-snap-type: none;
    }

    .p-works__track {
        align-items: stretch;
        flex-wrap: nowrap;
        padding: 0;
    }

    .p-works__slide {
        flex: 0 0 calc(100% / 4 - 10px);
        scroll-snap-align: none;
    }

    .p-works__card {
        display: flex;
        flex-direction: column;
        height: 100%;
    }

    .p-works__text {
        flex: 1;
    }

    .p-works__badge,
    .p-works__tag {
        font-size: 15px;
    }

    .p-works__meta {
        flex-wrap: wrap;
    }

    .p-works__nav {
        display: none;
    }

    .p-works__card:hover .p-works__img img {
        transform: scale(1.1);
    }

    .p-staff {
        padding-top: 100px;
    }

    .p-staff__img {
        height: 220px;
    }

    .p-staff__track-wrap {
        overflow-x: visible;
        scroll-snap-type: none;
    }

    .p-staff__track {
        flex-wrap: nowrap;
        justify-content: center;
        padding: 0;
    }

    .p-staff__slide {
        flex: 0 0 calc(100% / 4);
        scroll-snap-align: none;
    }

    .p-staff__nav {
        display: none;
    }

    .p-staff--list .p-staff__track {
        flex-direction: column;
        gap: 60px;
    }

    .p-staff--list .p-staff__slide {
        flex: 0 0 auto;
        width: min(960px, 100%);
        margin: auto;
    }

    .p-staff--list .p-staff__card {
        display: flex;
        align-items: stretch;
        height: 300px;
    }

    .p-staff--list .p-staff__img {
        width: 35%;
        height: auto;
    }

    .p-staff--list .p-staff__body {
        flex: 1;
        padding: 30px 40px 30px 30px;
    }

    .p-staff--list .p-staff__name {
        text-align: left;
    }

    .p-staff--list::before {
        height: 56.5%;
    }

    .p-staff-bubble {
        padding-bottom: 60px;
    }

    .p-staff-bubble__box {
        width: 610px;
        font-size: 18px;
    }

    .p-staff-bubble__box br {
        display: none;
    }

    .p-staff__name-en {
        font-size: 18px;
    }

    .p-staff__card:hover .p-staff__img img {
        transform: scale(1.1);
    }

    .p-staff--list .p-staff__card:hover .p-staff__img img {
        transform: none;
    }

    .p-contact-page {
        padding: 100px 0;
    }

    .p-contact-page__note {
        font-size: 32px;
        margin-bottom: 40px;
    }

    .p-contact-page__tel {
        width: 380px;
    }

    .p-contact-form__inner {
        width: 100%;
        padding: 50px 60px 50px;
        margin-top: 100px;
    }

    .p-contact-page .p-page-content {
        padding: 50px 60px 50px;
    }

    .p-contact-form__icon {
        width: 80px;
        height: 80px;
        top: -43px;
    }

    .p-contact-form__title {
        font-size: 24px;
    }

    .p-contact-form__body {
        margin-top: 40px;
    }

    .p-contact-form__row {
        margin-top: 26px;
    }

    .p-contact-form__row:first-of-type {
        margin-top: 0;
    }

    .p-contact-form__label {
        font-size: 16px;
    }

    .p-contact-form__badge {
        margin-top: 2px;
        padding: 4px 10px;
    }

    .p-contact-form__input,
    .p-contact-form__textarea,
    .p-contact-form__confirm {
        font-size: 16px;
    }

    .p-contact-form__checks {
        flex-direction: row;
        flex-wrap: wrap;
        gap: 20px;
    }

    .p-faq {
        padding-bottom: 100px;
    }

    .p-faq__toggle {
        width: 50px;
    }

    .p-faq__toggle-line--h {
        width: 18px;
    }

    .p-faq__toggle-line--v {
        height: 18px;
    }

    .p-faq__question-content {
        min-height: 92px;
    }

    .p-faq__badge {
        width: 40px;
        height: 40px;
        min-width: 40px;
        font-size: 26px;
    }

    .p-faq__q-text {
        margin-top: 10px;
    }

    .p-faq__a-text {
        margin-top: 10px;
    }

    .p-company__body {
        display: flex;
        flex-direction: row-reverse;
        align-items: stretch;
        gap: 60px;
    }

    .p-company__img {
        flex: 1;
        margin-bottom: 0;
        height: auto;
    }

    .p-company__list {
        flex: 1;
        gap: 10px;
    }

    .p-company__row {
        gap: 30px;
    }

    .p-company__term {
        width: 65px;
    }

    .p-area::before {
        left: -4vw;
        background-size: 100%;
        opacity: 0.8;
    }

    .p-area__box {
        padding: 100px 0;
    }

    .p-area__list {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 50px 20px;
        font-size: 18px;
        margin-top: 60px;
    }

    .p-area__group:nth-child(1) {
        order: 1;
    }

    .p-area__group:nth-child(2) {
        order: 3;
    }

    .p-area__group:nth-child(3) {
        order: 2;
    }

    .p-area__group:nth-child(4) {
        order: 4;
    }

    .p-area__tag {
        font-size: 30px;
    }

    .p-area__cities {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
        gap: 22px 30px;
        margin-top: 30px;
    }

    .p-area__cities li {
        white-space: nowrap;
    }

    .p-contact {
        padding: 40px 0;
    }

    .p-contact__inner {
        display: flex;
        align-items: flex-end;
        justify-content: center;
        gap: 40px;
    }

    .p-contact__text {
        width: 380px;
        margin: auto;
    }

    .p-contact__btn {
        position: absolute;
        width: 80px;
        height: 80px;
    }

    .p-contact__btn-circle {
        width: 42px;
        height: 42px;
    }

    .p-contact__btn-arrow {
        width: 20px;
    }

    .p-column__list {
        flex-direction: row;
        gap: 30px;
    }

    .p-column__item {
        width: calc(100% / 3);
    }

    .p-archive__list {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 60px 30px;
    }

    .p-archive__list .p-column__item {
        width: auto;
    }

    .p-column__thumb {
        height: 200px;
    }

    .p-about__inner {
        max-width: 100%;
    }

    .p-about__text {
        max-width: 60%;
        margin: 46px auto 0;
    }

    .c-heading__label {
        font-size: 100px;
    }

    .p-about__title,
    .p-about__title-sub {
        font-size: 48px;
    }

    .p-about__btn {
        width: 360px;
    }


    .p-service__list {
        grid-template-columns: repeat(3, 1fr);
        gap: 24px;
    }


    .p-reason__list {
        grid-template-columns: repeat(3, 1fr);
        gap: 24px;
    }

    .p-reason__item {
        height: 220px;
        padding: 20px 40px;
    }

    .p-reason--page .p-reason__item .p-price-nav__btn {
        width: 38px;
        height: 38px;
        right: 10px;
        bottom: 10px;
    }

    .p-reason--page .p-reason__item .p-contact__btn-circle {
        width: 38px;
        height: 38px;
    }

    .p-reason--page .p-reason__item .p-contact__btn-arrow {
        width: 14px;
    }

    .p-reason--page .p-reason__item {
        height: 230px;
    }

    .p-reason__text {
        margin-top: 16px;
        font-size: 16px;
        line-height: 1.85;
    }

    .p-reason__num {
        font-size: 72px;
    }

    .p-reason__icon {
        width: 56px;
    }

    .p-reason__mascot img {
        width: 180px;
    }

    .c-btn {
        width: 360px;
        margin: 80px auto 0;
    }

    .l-header.is-fixed {
        height: 80px;
    }

    .l-header.is-fixed .l-header__nav-group {
        margin-bottom: 8px;
    }

    .l-header.is-fixed .l-gnav__item a {
        padding: 8px 18px;
    }

    .l-header.is-fixed .l-gnav__submenu-list a {
        padding: 7px 0;
    }

    .c-header-btn {
        width: 80px;
    }

    .p-kv {
        padding-left: calc(60px + (140 * (100vw - 1024px) / 640));
    }

    .p-kv__visual {
        display: grid;
        grid-template-columns: 39% 1fr;
        grid-template-areas:
            "text bg"
            "points bg";
        align-items: center;
        column-gap: 30px;
        row-gap: 20px;
    }

    .p-kv::before {
        height: 100%;
        width: calc(100% - 300px);
        top: 80px;
    }

    .p-kv__text {
        grid-area: text;
        position: static;
        width: auto;
    }

    .p-kv__points {
        grid-area: points;
    }

    .p-kv__bg {
        width: 86%;
        position: absolute;
        top: 0;
        right: 0;
        z-index: -1;
    }

    .p-kv__points {
        padding: 24px 16px;
    }

    .p-kv__points-inner {
        flex-wrap: wrap;
        gap: 20px;
    }

    .p-kv__points::before {
        border-radius: 10px;
    }

    .p-kv__service-title {
        font-size: 22px;
        text-align: center;
    }

    .p-kv__service-list-wrap {
        position: relative;
    }

    .p-kv__service-list {
        grid-template-columns: repeat(4, 1fr);
        gap: 16px;
        margin-top: 40px;
        width: 100%;
    }

    .p-kv__service-mascot {
        right: -150px;
    }

    .p-kv__service-item {
        flex-direction: column;
        justify-content: center;
        padding: 20px 10px;
        text-align: center;
    }

    .p-kv__service-icon {
        width: 32px;
    }

    .p-kv__service-label,
    .p-kv__service-label--sm,
    .p-kv__service-label--lg {
        width: auto;
        justify-content: center;
        font-size: 18px;
    }

    .p-bnr-slider {
        padding: 100px 0;
        margin-bottom: 80px;
    }

    .p-reason {
        padding-top: 100px;
    }


    .p-kv__service {
        padding-top: 100px;
    }


    .p-kv__text {
        margin-top: 50px;
    }

    .p-kv__point img {
        width: 8vw;
    }

    .p-service__icon {
        width: 150px;
    }

    .p-service__thumb img {
        height: 190px;
    }

    .p-service__badge {
        font-size: 18px;
    }

    .p-service__body {
        padding: 30px 20px 90px;
    }

    .p-price__list {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 12px;
    }

    .p-price__group {
        grid-column: 1 / -1;
        margin-bottom: 30px;
    }

    .p-price__group-list {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .p-price__group-list .p-price__row:first-child,
    .p-price__group-list .p-price__row:last-child {
        border-right: 1px solid #878787;
    }

    .p-price__group-list .p-price__row {
        padding: 5px 20px;
    }

    .p-price__row {
        padding: 0 20px;
    }

    .p-price__name--dark {
        width: 40%;
    }

    .p-price__list>.p-price__row {
        margin-top: 0;
    }

    .p-price__value {
        font-size: 30px;
    }

    .p-price__value--contact {
        font-size: 18px;
    }

    .c-group-title {
        padding: 15px 16px;
    }

    .p-page-label__badge span {
        padding: 6px 8px 8px 8px;
        font-size: 38px;
    }

    .p-page-label__icon {
        width: 140px;
    }

    .p-404 {
        padding-top: 60px;
    }

    .p-faq__item.is-open .p-faq__answer {
        padding: 20px 50px 20px 20px;
    }

    .c-pagination {
        margin-top: 100px;
    }

    .p-about__title-mark {
        margin-right: 9px;
    }

    .p-service__item-icon {
        width: 150px;
        margin-top: -29px;
    }

    .p-price__note span br {
        display: none;
    }

    .p-message__role {
        font-size: 16px;
    }

    .p-message__name {
        font-size: 18px;
    }

    .p-reason-detail__item {
        padding: 84px 0 0;
    }
}


@media (min-width: 1330px) {

    .p-about__text {
        max-width: 80%;
    }

    body.is-menu-open .l-menu {
        display: none;
    }

    body.is-menu-open .l-header {
        position: relative;
    }

    body.is-menu-open {
        overflow: visible;
    }

    .l-header {
        height: 120px;
    }

    .l-header__logo {
        padding: 14px 32px;
    }

    .c-header-btn {
        width: 88px;
        height: 100%;
    }

    .c-header-btn__icon {
        width: 30px;
    }

    .c-header-btn--mail {
        flex-direction: column;
        width: auto;
        padding: 13px 28px 7px 31px;
        gap: 4px;
        transition: opacity 0.2s ease;
    }

    .c-header-btn--mail:hover {
        opacity: 0.7;
    }

    .c-header-btn__label {
        display: block;
        color: #fff;
    }

    .c-header-btn--tel {
        display: none;
    }

    .c-header-btn--menu {
        display: none;
    }

    .c-hamburger {
        gap: 6px;
        width: 32px;
    }

    .c-hamburger__line {
        height: 3px;
    }

    .l-header__nav-group {
        flex-direction: column;
        align-items: flex-end;
        justify-content: flex-end;
        height: 100%;
        padding-bottom: 9px;
    }

    .l-header__tel {
        display: flex;
        align-items: center;
        gap: 6px;
        padding: 0 24px 0 0;
        pointer-events: none;
    }

    .l-header__tel-icon {
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 6px 6px 4px 6px;
        border-radius: 50%;
    }

    .l-header__tel-icon img {
        width: 29px;
    }

    .l-header__tel-num {
        font-family: "Alumni Sans", sans-serif;
        font-size: 48px;
        font-weight: 500;
        line-height: 1.2;
        color: #fbc30c;
    }

    .l-gnav {
        display: flex;
        align-items: flex-end;
    }

    .l-gnav__list {
        display: flex;
        align-items: flex-end;
        height: 100%;
    }

    .l-gnav__item a {
        display: block;
        padding: 14px 18px;
        font-weight: 500;
        line-height: 1.1;
    }

    .l-gnav__item--dropdown {
        position: relative;
    }

    .l-gnav__item--dropdown a {
        position: relative;
        padding-right: 37px;
    }

    .l-header.is-fixed .l-gnav__item--dropdown a {
        padding-right: 37px;
    }

    .c-dropdown-icon {
        position: absolute;
        top: 50%;
        right: 16px;
        width: 20px;
        height: 20px;
        transform: translateY(-50%);
    }

    .c-dropdown-icon__line {
        position: absolute;
        top: 50%;
        left: 50%;
        background-color: currentColor;
        transform: translate(-50%, -50%);
        transition: transform 0.2s;
    }

    .c-dropdown-icon__line--h {
        width: 10px;
        height: 2px;
    }

    .c-dropdown-icon__line--v {
        width: 2px;
        height: 10px;
    }

    .l-gnav__item--dropdown:hover .c-dropdown-icon__line--v,
    .l-gnav__item--dropdown:focus-within .c-dropdown-icon__line--v {
        transform: translate(-50%, -50%) scaleY(0);
    }

    .l-gnav__submenu-list {
        position: absolute;
        top: 99%;
        left: 50%;
        z-index: 2;
        width: 160px;
        padding: 15px 23px;
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
        border: 2px solid #e40000;
        border-radius: 8px;
        background-color: #fff;
        opacity: 0;
        visibility: hidden;
        transform: translateX(-50%);
        transition: opacity 0.2s ease, visibility 0.2s ease;
    }

    .l-gnav__item--dropdown:hover .l-gnav__submenu-list,
    .l-gnav__item--dropdown:focus-within .l-gnav__submenu-list {
        opacity: 1;
        visibility: visible;
    }

    .l-gnav__submenu-list a {
        display: flex;
        align-items: center;
        gap: 10px;
        padding: 7px 0;
        white-space: nowrap;
    }

    .l-gnav__submenu-list a::before {
        content: "";
        width: 8px;
        min-width: 8px;
        height: 2px;
        background-color: #e40000;
    }

    .p-kv__text {
        margin-top: 50px;
    }

    .p-kv__visual {
        grid-template-columns: 37% 1fr;
        column-gap: 0;
        position: relative;
    }
}

@media (max-width: 374px) {
    body {
        font-size: 12px;
    }

    .p-kv__bg {
        width: 100%;
    }

    .p-kv__service-item {
        padding: 4px 0 4px 6px;
    }
}

@media (max-width: 320px) {
    .u-xs-only {
        display: block;
    }

    .p-page-label__inner {
        margin: 0 0 0 8px;
    }

    .p-contact-form__body .c-btn {
        width: 100%;
    }

    .p-single__spec-value--demolition {
        padding: 4px 6px 8px 5px;
    }

    .p-single__spec-label--demolition {
        padding: 5px 10px;
    }

    .p-single__spec-value--detail {
        padding: 14px 8px 14px 3px;
    }

    .p-price__name--dark {
        width: 122px;
    }

    .p-price__price {
        padding: 9px 10px;
    }

    .p-price__unit {
        margin-left: 4px;
    }

    .p-works__meta {
        flex-direction: column;
        align-items: flex-start;
    }
    .p-price-nav__item .p-contact__btn-circle {
        width: 20px;
        height: 20px;
    }
}

@media (min-width: 1025px) and (max-width: 1550px) {
    .p-kv__service-mascot {
        right: 0;
        top: 120px;
    }
}

/* ==========================================================================
   Project - 404 ( p- )
   ========================================================================== */
.p-404 {
    padding-top: 40px;
    text-align: center;
}

.p-404__text {
    font-weight: 500;
}