/*
 * home.php 専用スタイル
 */

/* ===================================
 * home用ベーススタイル
 * =================================== */
[class^="p-home-"],
[class*=" p-home-"] {
    color: var(--color--base--gray);
    letter-spacing: -0.04em;
    line-height: 2;
}

[class^="p-home-"] p + p,
[class*=" p-home-"] p + p {
    margin-block-start: 0;
}

/* ===================================
 * home用セクション余白ユーティリティ
 * =================================== */
.u-home-section-s {
    padding-block: var(--section-s);
}

.u-home-section {
    padding-block: var(--section);
}

/* ===================================
 * home用表示切替ユーティリティ
 * =================================== */
.pc-only {
    display: block;
}

.sp-only {
    display: none;
}

@media (max-width: 768px) {
    .pc-only {
        display: none;
    }

    .sp-only {
        display: block;
    }
}

.sp-540-only {
    display: none;
}

@media (max-width: 540px) {
    .sp-540-only {
        display: block;
    }
}

.u-home-section-l {
    padding-block: var(--section-l);
}

/* ===================================
 * p-home-fv (ファーストビュー)
 * =================================== */
.p-home-fv {
    position: relative;
    width: 100%;
}

.p-home-fv__pc,
.p-home-fv__sp {
    position: relative;
}

.p-home-fv__bg {
    position: relative;
}

.p-home-fv__bg::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.95) 40%, rgba(255, 255, 255, 0.95) 60%, rgba(255, 255, 255, 0.3) 100%);
    pointer-events: none;
}

.p-home-fv__bg img {
    display: block;
    width: 100%;
    height: auto;
}

.p-home-fv__content {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.p-home-fv__content img {
    display: block;
    width: auto;
    max-width: 100%;
    max-height: 100%;
}

/* ボタン */
.p-home-fv__buttons {
    position: absolute;
    bottom: clamp(20px, 3.5vw, 55px);
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    align-items: flex-end;
    width: 90vw;
    gap: clamp(30px, 5vw, 75px);
    z-index: 10;
}

.p-home-fv__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5em;
    padding: 12px 25px;
    border-radius: 9999px;
    text-decoration: none;
    font-weight: var(--font-weight--bold);
    letter-spacing: 0.03em;
    transition: background-color 0.3s ease;
    white-space: nowrap;
}

.p-home-fv__btn-group {
    display: flex;
    align-items: stretch;
    gap: 15px;
    flex: 1;
}

.p-home-fv__btn--tel,
.p-home-fv__btn--mail {
    background-color: #d2e0ad;
    color: #464646;
    font-size: clamp(8px, 1.2vw, 20px);
    padding: clamp(4px, 0.7vw, 12px) 0;
    box-shadow:
        0 0 6px 4px rgba(255, 255, 255, 1),
        0 0 10px 6px rgba(255, 255, 255, 0.9),
        0 0 14px 8px rgba(255, 255, 255, 0.7);
}

.p-home-fv__btn--tel {
    flex: 2;
}

.p-home-fv__btn--mail {
    flex: 1;
}

.p-home-fv__btn--tel:hover,
.p-home-fv__btn--mail:hover {
    background-color: #c0d89a;
}

.p-home-fv__btn--book {
    background-color: #46a638;
    color: #fff;
    font-size: clamp(14px, 2.2vw, 32px);
    padding: clamp(4px, 1.2vw, 20px) 0;
    margin-left: auto;
    margin-right: -2.5%;
    flex: 0 0 40%;
    box-shadow:
        0 0 10px 6px rgba(255, 255, 255, 1),
        0 0 12px 6px rgba(255, 255, 255, 0.9),
        0 0 18px 8px rgba(255, 255, 255, 0.7);
}

.p-home-fv__btn--book:hover {
    background-color: #3a9030;
}

.p-home-fv__btn-icon {
    display: flex;
    align-items: center;
    justify-content: center;
}

.p-home-fv__btn-icon img {
    width: 1.3em;
    height: 1.3em;
    object-fit: contain;
}

.p-home-fv__btn-main {
    display: flex;
    align-items: center;
    gap: 0.5em;
}

.p-home-fv__btn-text {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.3em;
    line-height: 1.3;
    letter-spacing: 0.03em;
    color: inherit;
}

.p-home-fv__btn-number {
    font-size: 1.1em;
}

.p-home-fv__btn-note {
    font-size: 0.7em;
    font-weight: normal;
}

/* PC/SP 表示切替 */
.p-home-fv__sp {
    display: none;
}

@media (max-width: 768px) {
    .p-home-fv__pc {
        display: none;
    }

    .p-home-fv__sp {
        display: block;
    }

    .p-home-fv__sp .p-home-fv__bg::after {
        background: radial-gradient(circle at center 35%, rgba(255, 255, 255, 0.95) 0%, rgba(255, 255, 255, 0.9) 50%, rgba(255, 255, 255, 0.4) 70%, rgba(255, 255, 255, 0) 90%);
    }

    .p-home-fv__sp .p-home-fv__content {
        align-items: flex-start;
    }

    .p-home-fv__sp .p-home-fv__buttons {
        position: absolute;
        bottom: 3%;
        left: 50%;
        transform: translateX(-50%);
        flex-direction: column;
        width: 70%;
        min-width: 250px;
        gap: 8px;
    }

    .p-home-fv__sp .p-home-fv__btn {
        width: 100%;
        justify-content: center;
        padding: clamp(6px, 1.8vw, 14px) 15px;
        font-size: clamp(12px, 2.5vw, 20px);
    }

    .p-home-fv__sp .p-home-fv__btn--tel {
        font-size: clamp(11px, 2.3vw, 18px);
        padding: clamp(6px, 1.8vw, 14px) 15px;
        flex-direction: column;
        align-items: center;
        gap: 0;
    }

    .p-home-fv__sp .p-home-fv__btn--tel .p-home-fv__btn-main {
        display: flex;
        align-items: center;
        gap: 0.5em;
    }

    .p-home-fv__sp .p-home-fv__btn--tel .p-home-fv__btn-note {
        display: block;
        text-align: center;
        font-size: clamp(9px, 1.8vw, 13px);
        margin-top: 0;
    }

    .p-home-fv__sp .p-home-fv__btn--mail {
        font-size: clamp(12px, 2.5vw, 20px);
    }

    .p-home-fv__sp .p-home-fv__btn-group {
        flex-direction: column;
        width: 100%;
        flex: none;
        margin-top: clamp(22px, 5vw, 40px);
    }

    .p-home-fv__sp .p-home-fv__btn--tel,
    .p-home-fv__sp .p-home-fv__btn--mail {
        flex: none;
    }

    .p-home-fv__sp .p-home-fv__btn--book {
        font-size: clamp(12px, 2.5vw, 20px);
        padding: clamp(6px, 1.8vw, 14px) 15px;
        margin-left: 0;
        margin-right: 0;
        width: 100%;
        flex: none;
    }

    .p-home-fv__sp .p-home-fv__btn-icon img {
        width: clamp(14px, 4vw, 24px);
    }

    .p-home-fv__sp .p-home-fv__btn-note {
        display: none;
    }

    .p-home-fv__sp .p-home-fv__btn-text {
        flex-direction: row;
        align-items: center;
        gap: 0.3em;
    }
}

/* ===================================
 * 共通ボタンスタイル
 * =================================== */
.p-home-voice__btn,
.p-home-works__btn,
.p-home-info__btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 433px;
    height: 58px;
    font-size: 23px;
    font-weight: var(--font-weight--bold);
    color: var(--color--base);
    background-color: var(--color--base--white);
    border: 1px solid var(--color--use--border);
    border-radius: var(--radius-oval);
    text-decoration: none;
    transition: all 0.3s ease;
}

.p-home-voice__btn:hover,
.p-home-works__btn:hover,
.p-home-info__btn:hover {
    border-color: #3CAA46;
}

.p-home-voice__btn-arrow,
.p-home-works__btn-arrow,
.p-home-info__btn-arrow {
    position: absolute;
    right: 2em;
    top: 50%;
    transform: translateY(-50%);
    width: 14px;
    height: 12px;
}

.p-home-voice__btn-arrow::before,
.p-home-voice__btn-arrow::after,
.p-home-works__btn-arrow::before,
.p-home-works__btn-arrow::after,
.p-home-info__btn-arrow::before,
.p-home-info__btn-arrow::after {
    content: '';
    position: absolute;
    top: calc(50% - 0.75px);
    right: 0;
    width: 15px;
    height: 1.5px;
    border-radius: 9999px;
    background-color: #3CAA46;
    transform-origin: calc(100% - 0.75px) 50%;
}

.p-home-voice__btn-arrow::before,
.p-home-works__btn-arrow::before,
.p-home-info__btn-arrow::before {
    transform: rotate(22.5deg);
}

.p-home-voice__btn-arrow::after,
.p-home-works__btn-arrow::after,
.p-home-info__btn-arrow::after {
    transform: rotate(-22.5deg);
}

@media (max-width: 540px) {
    .p-home-voice__btn,
    .p-home-works__btn,
    .p-home-info__btn {
        width: 300px;
        height: 48px;
        font-size: 17px;
    }
}

/* ===================================
 * p-home-golden-rule (鉄則セクション)
 * =================================== */
.p-home-golden-rule {
    background-color: #fafaf5;
    border-radius: 0 0 50% 50% / 0 0 150px 150px;
    padding-block-end: var(--margin-l);
}

.p-home-golden-rule__inner {
    max-width: 1240px;
    margin-inline: auto;
    padding-inline: var(--margin--use--outside);
}

.p-home-golden-rule__header {
    text-align: center;
}

.p-home-golden-rule__lead {
    font-size: clamp(1.25rem, 2.5vw, 2rem);
    font-weight: var(--font-weight--bold);
    color: var(--color--base--gray);
    letter-spacing: -0.04em;
    line-height: 1;
    margin-block-end: 0.4em;
}

.p-home-golden-rule__heading {
    display: flex;
    justify-content: center;
    align-items: baseline;
    flex-wrap: wrap;
    font-weight: var(--font-weight--bold);
    line-height: 1;
    gap: 0.5em;
}

.p-home-golden-rule__heading::before,
.p-home-golden-rule__heading::after {
    content: '';
    display: inline-block;
    width: 1px;
    height: clamp(2rem, 4vw, 3.2rem);
    background-color: var(--color--base--gray);
    flex-shrink: 0;
}

.p-home-golden-rule__heading::before {
    transform: rotate(-20deg);
    margin-right: 0.8em;
}

.p-home-golden-rule__heading::after {
    transform: rotate(20deg);
    margin-left: -0.2em;
}

.p-home-golden-rule__heading-text {
    font-size: clamp(2.5rem, 5vw, 4rem);
    color: var(--color--base--gray);
    letter-spacing: -0.04em;
    line-height: 1.2;
}

.p-home-golden-rule__heading-num {
    font-family: "Roboto", var(--font-family-default);
    font-size: clamp(4.25rem, 8vw, 6.5rem);
    color: #FF6400;
    line-height: 1;
}

.p-home-golden-rule__list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--margin-l);
    margin-block-start: var(--margin-l);
    margin-block-end: var(--margin-xl);
}

.p-home-golden-rule__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.p-home-golden-rule__item-header {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.p-home-golden-rule__point-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.p-home-golden-rule__point-label {
    font-size: 16px;
    font-weight: var(--font-weight--bold);
    color: var(--color--base--gray);
    line-height: 1;
    margin-block-end: 0.5em;
}

.p-home-golden-rule__point {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: #FF6400;
    color: var(--color--base--white);
    width: 56px;
    height: 56px;
    border-radius: 50%;
    margin-block-end: 1em;
}

.p-home-golden-rule__point-num {
    font-family: "Lato", var(--font-family-default);
    font-size: 32px;
    font-weight: var(--font-weight--bold);
    line-height: 1;
    color: var(--color--base--white);
}

.p-home-golden-rule__title {
    font-size: 34px;
    font-weight: var(--font-weight--bold);
    line-height: 1.3;
    margin-block-end: var(--margin-m);
    color: var(--color--base--gray);
}

.p-home-golden-rule__card {
    flex: 1;
    align-self: stretch;
    border-left: 1.5px solid var(--color--base--gray);
    border-right: 1.5px solid var(--color--base--gray);
    padding-inline: 10px;
}

.p-home-golden-rule__content {
    background-color: var(--color--use--above);
    padding: var(--margin-s) var(--margin-xs) var(--margin-xs);
    text-align: center;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.p-home-golden-rule__text {
    font-size: 18px;
    color: var(--color--base--gray);
}

.p-home-golden-rule__image-wrap {
    width: 80%;
    margin-inline: auto;
    margin-block-start: auto;
    padding-block-start: var(--margin-xs);
}

.p-home-golden-rule__image {
    margin: 0;
}

.p-home-golden-rule__image img {
    width: 100%;
    height: auto;
    object-fit: contain;
}

.p-home-golden-rule__item:first-child .p-home-golden-rule__image img {
    width: 85%;
}

/* レスポンシブ */
@media (max-width: 768px) {
    .p-home-golden-rule {
        border-radius: 0 0 50% 50% / 0 0 70px 70px;
        padding-block-end: var(--margin-2xl);
    }

    .p-home-golden-rule__lead {
        line-height: 1.4;
    }

    .p-home-golden-rule__list {
        grid-template-columns: 1fr;
        gap: var(--margin-m);
    }

    .p-home-golden-rule__item-header {
        flex-direction: row;
        align-items: center;
        gap: var(--margin-l);
    }

    .p-home-golden-rule__point-label {
        font-size: 13px;
        margin-block-end: 0.3em;
    }

    .p-home-golden-rule__point {
        width: 44px;
        height: 44px;
        margin-block-end: 0;
    }

    .p-home-golden-rule__point-num {
        font-size: 24px;
    }

    .p-home-golden-rule__title {
        font-size: 24px;
        text-align: left;
        line-height: var(--line-height--small);
        margin-block-end: 0;
    }

    .p-home-golden-rule__item-header {
        margin-block-end: var(--margin-s);
    }

    .p-home-golden-rule__card {
        padding-inline: 10px;
    }

    .p-home-golden-rule__content {
        padding: var(--margin-xs);
    }

    .p-home-golden-rule__text {
        font-size: 15px;
    }

    .p-home-golden-rule__image-wrap {
        width: 100%;
    }
}

@media (max-width: 540px) {
    .p-home-golden-rule__heading {
        position: relative;
        gap: 0;
    }

    .p-home-golden-rule__heading::before,
    .p-home-golden-rule__heading::after {
        position: absolute;
        top: 50%;
        height: 80px;
        transform: translateY(-50%) rotate(-20deg);
    }

    .p-home-golden-rule__heading::before {
        left: 1em;
        margin-right: 0;
    }

    .p-home-golden-rule__heading::after {
        right: 1em;
        margin-left: 0;
        transform: translateY(-50%) rotate(20deg);
    }

    .p-home-golden-rule__heading-text:first-of-type {
        flex-basis: 100%;
        margin-block-end: 0;
    }
}

/* ===================================
 * p-home-reform (リフォーム会社紹介)
 * =================================== */
.p-home-reform {
    background-color: var(--color--base--white);
    overflow-x: clip;
}

.p-home-reform__inner {
    max-width: 1340px;
    margin-inline: auto;
    padding-inline: var(--margin--use--outside);
}

.p-home-reform__inner--wide {
    max-width: 1480px;
    margin-inline: 0;
    margin-left: max(0px, calc((100vw - 1340px) / 2));
}

.p-home-reform__container {
    display: flex;
    align-items: center;
    gap: 20px;
}

.p-home-reform__content {
    flex: 12;
}

.p-home-reform__question {
    font-size: clamp(23px, 3vw, 32px);
    font-weight: var(--font-weight--bold);
    margin-block-end: var(--margin-s);
}

.p-home-reform__answer {
    margin-block-end: var(--margin-2xs);
}

.p-home-reform__answer-label {
    display: inline-block;
    background-color: #FF6400;
    color: var(--color--base--white);
    font-size: clamp(25px, 3vw, 32px);
    font-weight: var(--font-weight--bold);
    line-height: 1.2;
    padding: 0.1em 0.5em;
    transform: rotate(-3deg);
}

.p-home-reform__title {
    font-size: clamp(40px, 5vw, 58px);
    font-weight: var(--font-weight--bold);
    letter-spacing: -0.04em;
    line-height: 1.3;
    margin-block-end: var(--margin-l);
    color: var(--color--base--gray);
}

.p-home-reform__badge {
    display: inline-block;
    border: 1px solid var(--color--base--gray);
    padding: 0.4em 1em;
    font-size: 20px;
    font-weight: var(--font-weight--bold);
    margin-block-end: var(--margin-2xs);
}

.p-home-reform__subtitle {
    font-size: 23px;
    font-weight: var(--font-weight--bold);
    margin-block-end: 0;
}

.p-home-reform__text {
    font-size: clamp(15px, 2vw, 18px);
}

.p-home-reform__image {
    flex: 17;
    margin: 0;
}

.p-home-reform__image img {
    width: 100%;
    height: auto;
    transform: scale(1.05);
    transform-origin: center center;
}

/* メディア・栄誉セクション共通 */
.p-home-reform__container--media,
.p-home-reform__container--honor {
    max-width: 1500px;
    margin-inline: auto;
    margin-block-start: var(--margin-3xl);
    gap: clamp(10px, 3vw, 30px);
}

.p-home-reform__container--media .p-home-reform__content,
.p-home-reform__container--honor .p-home-reform__content {
    flex: 620;
}

.p-home-reform__container--media .p-home-reform__image,
.p-home-reform__container--honor .p-home-reform__image {
    flex: 861;
}

.p-home-reform__heading {
    font-size: clamp(26px, 4.5vw, 50px);
    font-weight: 900;
    letter-spacing: -0.06em;
    line-height: 1.4;
    margin-block-end: var(--margin-xs);
}

.p-home-reform__heading--large {
    font-size: clamp(26px, 4.5vw, 50px);
    line-height: 1.4;
}

.p-home-reform__text--large {
    font-size: clamp(20px, 2.8vw, 28px);
    font-weight: var(--font-weight--bold);
    letter-spacing: -0.02em;
    line-height: 1.6;
    margin-block-end: var(--margin-2xs);
}


.p-home-reform__note {
    font-size: 18px;
    margin-block-start: var(--margin-l);
}


.p-home-reform__container--media .p-home-reform__image img,
.p-home-reform__container--honor .p-home-reform__image img {
    width: 100%;
    aspect-ratio: 861 / 520;
    object-fit: cover;
    transform: scale(1);
}

.p-home-reform__container--honor .p-home-reform__image {
    transform: translateX(clamp(-120px, calc(-16.67vw + 200px), 0px));
}

/* レスポンシブ */
@media (max-width: 1024px) {
    .p-home-reform__title br {
        display: none;
    }
    .p-home-reform__container {
        flex-direction: column;
        gap: var(--margin-l);
    }

    .p-home-reform__container--media {
        flex-direction: column;
    }

    .p-home-reform__container--honor {
        flex-direction: column-reverse;
    }

    .p-home-reform__image img {
        max-width: 100%;
        transform: scale(1);
    }

    .p-home-reform__container--media .p-home-reform__image img,
    .p-home-reform__container--honor .p-home-reform__image img {
        width: 100%;
    }

    .p-home-reform__container--media .p-home-reform__content,
    .p-home-reform__container--media .p-home-reform__image,
    .p-home-reform__container--honor .p-home-reform__content,
    .p-home-reform__container--honor .p-home-reform__image {
        flex: none;
        width: 100%;
    }

    .p-home-reform__container--media .p-home-reform__content {
        text-align: left;
    }

    .p-home-reform__container--honor .p-home-reform__content {
        text-align: right;
    }
}

@media (max-width: 768px) {
    .p-home-reform__title br {
        display: block;
    }
    .p-home-reform__content,
    .p-home-reform__question,
    .p-home-reform__answer,
    .p-home-reform__title,
    .p-home-reform__badge {
        text-align: center;
    }
    .p-home-reform__badge {
        padding: 0 0.6em;
    }
    .p-home-reform__title {
        text-indent: -1em;
        margin-block-end: var(--margin-xl);
    }
    .p-home-reform__text {
        text-align: left;
    }
    .p-home-reform__container--honor .p-home-reform__text {
        text-align: right;
    }
    .p-home-reform__subtitle {
        font-size: 23px;
    }
    .p-home-reform__note {
        font-size: 14px;
    }
    .p-home-reform__heading--large {
        font-size: clamp(28px, 5vw, 34px);
    }
    .p-home-reform__text--large {
        font-size: clamp(17px, 4.4vw, 20px);
        line-height: 1.4;
    }
    .p-home-reform__container--media .p-home-reform__image,
    .p-home-reform__container--honor .p-home-reform__image {
        width: calc(100% + var(--margin--use--outside) * 2);
        margin-inline: calc(-1 * var(--margin--use--outside));
    }
}

/* ===================================
 * p-home-support (安心サポート)
 * =================================== */
.p-home-support {
    background-color: var(--color--base--white);
}

.p-home-support__inner {
    max-width: 1440px;
    margin-inline: auto;
    padding-inline: var(--margin--use--outside);
}

.p-home-support__card {
    background: url('../../images/home_bg-dot.png') repeat, #fafae1;
    padding: var(--margin-xl) var(--margin-3xl);
}

.p-home-support__list {
    position: relative;
    background-color: var(--color--base--white);
    padding: var(--margin-2xs) var(--margin-2xl);
}

.p-home-support__header {
    position: relative;
    margin-block-end: var(--margin-xs);
    letter-spacing: -0.1em;
}

.p-home-support__header--pc {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: var(--margin-xs);
}

.p-home-support__header--sp {
    display: none;
}

.p-home-support__title-wrap {
    text-align: left;
}

.p-home-support__label {
    display: inline-block;
    position: relative;
    height: 50px;
    line-height: 50px;
    text-align: center;
    padding: 0 30px;
    font-size: clamp(21px, 3vw, 36px);
    font-weight: var(--font-weight--bold);
    background: #3caa46;
    color: #fff;
    margin-block-end: 0.2em;
}

.p-home-support__label::before,
.p-home-support__label::after {
    position: absolute;
    content: '';
    width: 0;
    height: 0;
    z-index: 1;
}

.p-home-support__label::before {
    top: 0;
    left: 0;
    border-width: 25px 0 25px 15px;
    border-color: transparent transparent transparent #fafae1;
    border-style: solid;
}

.p-home-support__label::after {
    top: 0;
    right: 0;
    border-width: 25px 15px 25px 0;
    border-color: transparent #fafae1 transparent transparent;
    border-style: solid;
}

.p-home-support__title {
    font-size: clamp(30px, 5vw, 58px);
    font-weight: 900;
    line-height: 1;
    color: var(--color--base--gray);
}

.p-home-support__title-num {
    font-size: 1.3em;
    line-height: 1;
    color: #3caa46;
}

.p-home-support__badge {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    width: clamp(130px, calc(5.2vw + 90px), 170px);
    height: clamp(130px, calc(5.2vw + 90px), 170px);
    background-color: #ff6400;
    color: var(--color--base--white);
    border-radius: 50%;
    flex-shrink: 0;
    line-height: 1.2;
    transform: rotate(6deg) translateY(clamp(-15px, calc(-0.6vw - 3.5px), -8px));
}

.p-home-support__badge-row {
    display: flex;
    align-items: baseline;
    justify-content: center;
}

.p-home-support__badge-small {
    font-size: clamp(20px, calc(1.04vw + 8px), 26px);
    line-height: 1.2;
    color: #fff;
}

.p-home-support__badge-large {
    font-size: clamp(22px, calc(1.39vw + 11.3px), 36px);
    font-weight: var(--font-weight--bold);
    line-height: 1.2;
    color: #fffc00;
}

.p-home-support__list {
    list-style: none;
    margin: 0;
}

.p-home-support__item {
    display: flex;
    align-items: flex-start;
    gap: 0;
    padding-block: var(--margin-m) var(--margin-s);
    border-bottom: 1px solid var(--color--base--gray);
}

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

.p-home-support__num {
    font-family: "Poppins", var(--font-family-default);
    font-size: clamp(50px, 6vw, 76px);
    font-weight: 500;
    color: #3caa46;
    line-height: 1;
    flex-shrink: 0;
    width: 1em;
    margin-top: -0.2em;
}

.p-home-support__content {
    flex: 1;
}

.p-home-support__content-header {
    display: flex;
    align-items: flex-start;
    gap: var(--margin-s);
    margin-block-end: var(--margin-2xs);
}

.p-home-support__tag {
    display: inline-block;
    background-color: #ff6400;
    color: #fff;
    font-size: clamp(16px, 1.8vw, 21px);
    font-weight: var(--font-weight--bold);
    padding: 0.05em 0.8em;
    border-radius: var(--radius);
    flex-shrink: 0;
    width: 8.5em;
    text-align: center;
}

.p-home-support__heading {
    font-size: clamp(26px, 3vw, 33px);
    font-weight: var(--font-weight--bold);
    letter-spacing: -0.05em;
    line-height: 1.4;
}

.p-home-support__content-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--margin-m);
}

.p-home-support__text {
    font-size: clamp(16px, 1.5vw, 18px);
    color: var(--color--base--gray);
    letter-spacing: -0.04em;
}

.p-home-support__more {
    font-size: 15px;
    color: var(--color--base--gray);
    text-decoration: none;
    flex-shrink: 0;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.3em;
}

.p-home-support__more::after {
    content: '';
    display: inline-block;
    width: 6px;
    height: 6px;
    border-top: 2px solid var(--color--base--gray);
    border-right: 2px solid var(--color--base--gray);
    transform: rotate(45deg);
    transition: transform 0.3s ease;
}

.p-home-support__more:hover {
    color: var(--color--theme--primary);
}

.p-home-support__more:hover::after {
    border-color: var(--color--theme--primary);
}

/* トグル（チェックボックス非表示） */
.p-home-support__toggle {
    display: none;
}

/* 詳細コンテンツ（初期非表示） */
.p-home-support__detail {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
}

.p-home-support__detail p {
    font-size: clamp(16px, 1.5vw, 18px);
    color: var(--color--base--gray);
}

/* チェック時：詳細を表示 */
.p-home-support__toggle:checked ~ .p-home-support__content .p-home-support__detail {
    max-height: 500px;
}

/* チェック時：矢印を下向きに */
.p-home-support__toggle:checked ~ .p-home-support__content .p-home-support__more::after {
    transform: rotate(135deg);
}

/* レスポンシブ */
@media (max-width: 1024px) {
    .p-home-support__card {
        padding: var(--margin-s);
    }
}

@media (max-width: 768px) {
    .p-home-support__inner {
        padding: 0;
    }
    .p-home-support__card {
        padding: var(--margin-xl) var(--margin-s);
    }

    .p-home-support__list {
        padding-inline: var(--margin-s);
    }

    .p-home-support__header--pc {
        display: none;
    }

    .p-home-support__header--sp {
        display: block;
        text-align: center;
    }

    .p-home-support__header--sp .p-home-support__title-wrap {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: var(--margin-s);
    }

    .p-home-support__header--sp .p-home-support__title {
        font-size: 28px;
        text-align: center;
        white-space: nowrap;
    }

    .p-home-support__badge {
        width: clamp(75px, 20vw, 90px);
        height: clamp(75px, 20vw, 90px);
        transform: rotate(6deg);
    }

    .p-home-support__badge-small {
        font-size: clamp(10px, 3vw, 14px);
    }

    .p-home-support__badge-large {
        font-size: clamp(15px, 4vw, 18px);
    }

    .p-home-support__label {
        font-size: clamp(15px, 4.5vw, 21px);
        height: 34px;
        line-height: 34px;
        padding: 0 22px;
        min-width: 290px;
    }

    .p-home-support__label::before {
        border-width: 17px 0 17px 10px;
    }

    .p-home-support__label::after {
        border-width: 17px 10px 17px 0;
    }

    .p-home-support__item {
        display: grid;
        grid-template-columns: auto 1fr;
        gap: var(--margin-2xs) var(--margin-s);
        align-items: start;
    }

    .p-home-support__num {
        font-size: 42px;
        grid-column: 1;
        grid-row: 1;
        align-self: center;
        width: auto;
        margin-top: 0;
    }

    .p-home-support__content {
        display: contents;
    }

    .p-home-support__content-header {
        display: contents;
    }

    .p-home-support__tag {
        font-size: 14px;
        padding: 0.1em 0.6em;
        grid-column: 2;
        grid-row: 1;
        justify-self: start;
        align-self: center;
    }

    .p-home-support__heading {
        font-size: 19px;
        letter-spacing: -0.05em;
        grid-column: 1 / -1;
        grid-row: 2;
        margin-top: 0.1em;
    }

    .p-home-support__text {
        grid-column: 1 / -1;
        grid-row: 3;
        font-size: 15px;
        line-height: 1.6;
        letter-spacing: -0.06em;
    }

    .p-home-support__content-footer.pc-only,
    .p-home-support__detail.pc-only {
        display: none;
    }

    .p-home-support__more {
        font-size: 12px;
        grid-column: 1 / -1;
        grid-row: 5;
        justify-self: end;
    }

    /* SP用コンテンツボディ */
    .p-home-support__content-body {
        grid-column: 1 / -1;
        grid-row: 3 / 6;
    }

    .p-home-support__fulltext {
        display: -webkit-box;
        -webkit-line-clamp: 1;
        line-clamp: 1;
        -webkit-box-orient: vertical;
        overflow: hidden;
        font-size: clamp(16px, 1.5vw, 18px);
        color: var(--color--base--gray);
        margin-block-end: 0.5em;
    }

    .p-home-support__toggle:checked ~ .p-home-support__content .p-home-support__fulltext {
        -webkit-line-clamp: unset;
        line-clamp: unset;
        overflow: visible;
    }

    .p-home-support__content-body .p-home-support__more {
        display: inline-flex;
        gap: 0.5em;
    }

    .p-home-support__content-body {
        text-align: right;
    }

    .p-home-support__content-body .p-home-support__fulltext {
        text-align: left;
    }
}

/* ===================================
 * p-home-promise (お約束)
 * =================================== */
.p-home-promise {
    background-color: var(--color--base--white);
}

.p-home-promise__inner {
    max-width: 1300px;
    margin-inline: auto;
    padding-inline: var(--margin--use--outside);
}

.p-home-promise__container {
    display: flex;
    align-items: center;
    gap: clamp(1rem, calc(10vw - 7rem), 5rem);
}

.p-home-promise__content {
    flex: 663;
}

.p-home-promise__label {
    display: inline-block;
    border: 1.5px solid var(--color--base);
    font-size: clamp(20px, 2.5vw, 24px);
    font-weight: var(--font-weight--bold);
    padding: 0.1em 0.8em;
    margin-block-end: var(--margin-2xs);
    line-height: 1.7;
}

.p-home-promise__title {
    font-size: clamp(30px, 5vw, 50px);
    font-weight: 900;
    letter-spacing: -0.08em;
    line-height: 1;
    margin-block-end: 0;
    margin-inline-start: -0.5em;
    color: var(--color--base--gray);
}

.p-home-promise__name {
    font-size: 23px;
    font-weight: 600;
    margin-block-start: 0;
    margin-block-end: var(--margin-m);
    line-height: 1;
}

.p-home-promise__name-prefix {
    font-size: 0.78em;
    margin-block-start: 0;
}

.p-home-promise__text-block {
    margin-block-end: var(--margin-m);
}

.p-home-promise__text-block:last-of-type {
    margin-block-end: 0;
}

.p-home-promise__text {
    font-size: 18px;
    line-height: var(--line-height--standard);
}

.p-home-promise__image {
    flex: 464;
    margin: 0;
}

.p-home-promise__image img {
    width: 100%;
    height: auto;
    aspect-ratio: 464 / 533;
    object-fit: cover;
}

/* レスポンシブ */
@media (max-width: 1024px) {
    .p-home-promise__container {
        display: grid;
        grid-template-areas:
            "header"
            "image"
            "body";
        gap: var(--margin-l);
        justify-items: center;
    }

    .p-home-promise__content {
        display: contents;
    }

    .p-home-promise__header {
        grid-area: header;
        width: 80%;
    }

    .p-home-promise__body {
        grid-area: body;
        width: 80%;
    }

    .p-home-promise__image {
        grid-area: image;
        width: 80%;
    }

    .p-home-promise__image img {
        max-width: 100%;
    }
}

@media (max-width: 768px) {
    .p-home-promise__label {
        font-size: 17px;
        padding: 0 0.8em;
        margin-block-end: var(--margin-s);
    }

    .p-home-promise__title {
        font-size: 34px;
        margin-inline-start: -0.5em;
    }

    .p-home-promise__title-sub {
        padding-inline-start: 0.5em;
    }

    .p-home-promise__name {
        font-size: clamp(22px, 5vw, 25px);
        line-height: 1.4;
    }

    .p-home-promise__text {
        font-size: clamp(14px, 4vw, 15px);
        letter-spacing: -0.07em;
    }
}

/* ===================================
 * p-home-flow (ご利用の流れ)
 * =================================== */
.p-home-flow {
    background-color: var(--color--base--white);
}

.p-home-flow__inner {
    max-width: 1300px;
    margin-inline: auto;
    padding-inline: var(--margin--use--outside);
}

.p-home-flow__card {
    background-color: #fafaf0;
    padding: var(--margin-2xl);
}

.p-home-flow__header {
    display: flex;
    align-items: center;
    gap: var(--margin-l);
    margin-block-end: var(--margin-2xs);
}

.p-home-flow__title {
    display: flex;
    gap: 0.7em;
    flex-shrink: 0;
}

.p-home-flow__title-char {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.6em;
    height: 1.6em;
    background-color: #3caa46;
    color: var(--color--base--white);
    font-size: clamp(28px, 3.5vw, 42px);
    font-weight: var(--font-weight--bold);
}

.p-home-flow__lead {
    font-size: 18px;
    line-height: var(--line-height--standard);
}

.p-home-flow__list {
    list-style: none;
    margin: 0;
    padding: 0;
    position: relative;
}

.p-home-flow__item {
    display: flex;
    align-items: center;
    gap: var(--margin-m);
    padding: var(--margin-m) 0;
    position: relative;
}

.p-home-flow__item::after {
    content: '';
    position: absolute;
    left: clamp(45px, 5vw, 55px);
    top: var(--flow-line-top, clamp(90px, 10vw, 110px));
    bottom: calc(-1 * var(--margin-m) - var(--flow-line-extend, 0px));
    width: 1px;
    background-color: #464646;
    transform: translateX(-50%);
}

.p-home-flow__item:last-child::after {
    display: none;
}

.p-home-flow__step {
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: center;
    justify-content: center;
    width: clamp(90px, 10vw, 110px);
    height: clamp(90px, 10vw, 110px);
    border: 1px solid var(--color--base--gray);
    border-radius: 50%;
    background-color: var(--color--base--white);
    flex-shrink: 0;
    position: relative;
    z-index: 1;
}

.p-home-flow__step-label {
    font-size: clamp(18px, 1.8vw, 22px);
    font-weight: var(--font-weight--bold);
    color: var(--color--base--gray);
    line-height: 1;
}

.p-home-flow__step-num {
    font-family: "Lato", var(--font-family-default);
    font-size: clamp(30px, 3vw, 38px);
    font-weight: var(--font-weight--bold);
    color: #3caa46;
    line-height: 1;
}

.p-home-flow__image {
    flex-shrink: 0;
    margin: 0;
    margin-inline-start: var(--margin-m);
    width: clamp(120px, 13vw, 170px);
}

.p-home-flow__image img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
}

.p-home-flow__content {
    flex: 1;
}

.p-home-flow__heading {
    font-size: clamp(28px, 2.5vw, 33px);
    font-weight: var(--font-weight--bold);
    margin-block-end: 0.2em;
}

.p-home-flow__text {
    font-size: 18px;
    line-height: var(--line-height--standard);
}

/* 電話番号セクション */
.p-home-flow__contact {
    display: flex;
    align-items: center;
    gap: var(--margin-l);
    background-color: var(--color--base--white);
    border-radius: var(--radius);
    padding: var(--margin-m);
    margin-block-start: var(--margin-m);
}

.p-home-flow__contact-badge {
    background-color: #ff6400;
    color: var(--color--base--white);
    padding: var(--margin-2xs);
    text-align: left;
    flex-shrink: 0;
}

.p-home-flow__contact-badge-text {
    font-size: clamp(18px, 1.8vw, 20px);
    font-weight: var(--font-weight--bold);
    line-height: 1.4;
    color: #fff;
}

.p-home-flow__contact-badge-free {
    font-size: clamp(28px, 2.5vw, 32px);
    font-weight: var(--font-weight--bold);
    line-height: 1.2;
    color: #ffff96;
}

.p-home-flow__contact-badge-small {
    font-size: clamp(18px, 1.8vw, 20px);
    color: #fff;
}

.p-home-flow__contact-content {
    flex: 1;
}

.p-home-flow__contact-lead {
    font-size: 20px;
    font-weight: var(--font-weight--bold);
}

.p-home-flow__contact-tel {
    display: flex;
    align-items: center;
    gap: 0.5em;
    margin-block: 0.2em;
}

.p-home-flow__contact-tel img {
    width: 24px;
    height: 24px;
}

.p-home-flow__contact-tel-num {
    display: flex;
    align-items: center;
    gap: 0.5em;
    font-family: "Lato", var(--font-family-default);
    font-size: clamp(1.75rem, 3.5vw, 2.5rem);
    font-weight: var(--font-weight--bold);
    letter-spacing: 0.05em;
    color: #464646;
    text-decoration: none;
    line-height: 1.2;
    transition: opacity 0.2s ease;
}

.p-home-flow__contact-tel-num:hover {
    opacity: 0.7;
}

.p-home-flow__contact-tel-num img {
    width: 32px;
    height: 32px;
}

.p-home-flow__contact-tel-time {
    font-size: 1.5rem;
    font-weight: var(--font-weight--bold);
}

.p-home-flow__contact-note {
    font-size: 18px;
    color: var(--color--base--gray);
    line-height: 1.3;
}

/* レスポンシブ */
@media (max-width: 1024px) {
    .p-home-flow__header {
        flex-direction: column;
        gap: var(--margin-s);
        align-items: center;
    }

    .p-home-flow__card {
        padding: var(--margin-2xl) var(--margin-xl);
    }

    .p-home-flow__item {
        flex-wrap: wrap;
    }

    .p-home-flow__contact-tel {
        flex-direction: column;
        gap: 0;
        align-items: flex-start;
    }
}

@media (max-width: 768px) {
    .p-home-flow__inner {
        padding-inline: 0;
    }

    .p-home-flow__header {
        align-items: flex-start;
    }

    .p-home-flow__card {
        padding: var(--margin-xl) var(--margin-l);
    }

    .p-home-flow__image {
        margin-inline-start: 0;
    }

    .p-home-flow__contact {
        flex-direction: column;
        text-align: center;
        gap: 1em;
    }

    .p-home-flow__contact-badge {
        text-align: center;
        width: 100%;
    }

    .p-home-flow__contact-badge-text,
    .p-home-flow__contact-badge-small {
        font-size: 18px;
    }

    .p-home-flow__contact-badge-free {
        font-size: 22px;
    }

    .p-home-flow__contact-note {
        font-size: 14px;
        text-align: left;
        line-height: 1.5;
    }

    .p-home-flow__contact-lead {
        font-size: 15px;
        line-height: 1.5;
    }

    .p-home-flow__contact-tel {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        gap: 0.5em;
        justify-content: center;
        align-items: center;
        padding: var(--margin-xs) 0;
    }

    .p-home-flow__contact-tel-time {
        font-size: 0.875rem;
    }
}

@media (max-width: 540px) {
    .p-home-flow__title {
        gap: 0.5em;
    }

    .p-home-flow__title-char {
        font-size: 27px;
    }

    .p-home-flow__lead {
        font-size: 15px;
    }

    .p-home-flow__item {
        display: grid;
        grid-template-columns: auto 1fr;
        grid-template-rows: auto auto;
        gap: var(--margin-2xs) var(--margin-s);
        align-items: start;
    }

    .p-home-flow__step {
        width: 68px;
        height: 68px;
        gap: 5px;
        grid-column: 1;
        grid-row: 1;
        align-self: center;
    }

    .p-home-flow__step-label {
        font-size: 16px;
    }

    .p-home-flow__step-num {
        font-size: 18px;
    }

    .p-home-flow__image {
        grid-column: 2;
        grid-row: 1;
        width: 130px;
        margin-inline-start: 0;
        align-self: center;
    }

    .p-home-flow__content {
        grid-column: 2;
        grid-row: 2;
    }

    .p-home-flow__heading {
        font-size: 20px;
        margin-block-end: 0;
    }

    .p-home-flow__text {
        font-size: 14px;
    }

    .p-home-flow__item::after {
        left: 38px;
        top: var(--flow-line-top, 76px);
    }

    .p-home-flow__contact-tel {
        flex-direction: column;
        gap: 0;
    }

    .p-home-flow__contact-tel-time {
        font-size: 0.875rem;
    }
}

/* ===================================
 * p-home-history (実績)
 * =================================== */
.p-home-history {
    background-color: var(--color--base--white);
    padding-block-end: 0;
    padding-block-start: var(--margin-xs);
}

.p-home-history__inner {
    max-width: 1340px;
    margin-inline: auto;
    padding-inline: var(--margin--use--outside);
}

.p-home-history__container {
    position: relative;
}

.p-home-history__content {
    position: absolute;
    top: 0;
    left: 5%;
    z-index: 1;
    margin-top: -40px;
}

.p-home-history__title {
    font-size: clamp(26px, 4.5vw, 50px);
    font-weight: var(--font-weight--bold);
    line-height: 1.2;
    color: var(--color--base--gray);
    text-align: center;
    margin: 0;
}

.p-home-history__year-num {
    font-family: "Lato", var(--font-family-default);
}

.p-home-history__highlight {
    color: #ff6400;
    font-size: 1.35em;
    line-height: 1;
}

.p-home-history__highlight-num {
    font-family: "Lato", var(--font-family-default);
    font-size: 1.3em;
    font-weight: 900;
    color: #ff6400;
    line-height: 0.85;
}

.p-home-history__line2 {
    display: inline-block;
    margin-bottom: 0.1em;
}

.p-home-history__nowrap {
    white-space: nowrap;
    display: inline-block;
    margin-top: -0.35em;
}

.p-home-history__image {
    margin: 0;
    text-align: right;
}

.p-home-history__image img {
    width: 85%;
    max-width: 1000px;
    height: auto;
}

/* レスポンシブ */
@media (max-width: 768px) {
    .p-home-history {
        padding-block-start: 0;
    }

    .p-home-history__container {
        position: static;
    }

    .p-home-history__content {
        position: static;
        margin-top: 0;
        margin-block-end: var(--margin-2xs);
    }

    .p-home-history__title {
        font-size: clamp(23px, 6vw, 30px);
        text-align: center;
    }

    .p-home-history__image {
        text-align: center;
        width: calc(100% + var(--margin--use--outside) * 2);
        margin-inline: calc(-1 * var(--margin--use--outside));
    }

    .p-home-history__image img {
        width: 100%;
    }
}

/* ===================================
 * p-home-voice (お客様の声)
 * =================================== */
.p-home-voice {
    background-color: var(--color--base--white);
}

.p-home-voice__inner {
    max-width: 1340px;
    margin-inline: auto;
    padding-inline: var(--margin--use--outside);
}

.p-home-voice__header {
    text-align: center;
    margin-block-end: var(--margin-xl);
}

.p-home-voice__title {
    font-size: clamp(30px, 4vw, 40px);
    font-weight: var(--font-weight--bold);
    color: var(--color--base--gray);
    margin-block-end: var(--margin-2xs);
}

.p-home-voice__line {
    margin: 0 auto;
    margin-block-end: -0.8em;
    width: 100%;
}

.p-home-voice__line img {
    width: 100%;
    height: auto;
}

.p-home-voice__list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--margin-m);
}

.p-home-voice__card {
    background-color: #fafaf0;
    overflow: hidden;
}

.p-home-voice__card-top {
    display: flex;
    align-items: flex-start;
    gap: var(--margin-s);
    padding: var(--margin-s);
    padding-block-end: 0;
}

.p-home-voice__card-image {
    flex-shrink: 0;
    margin: 0;
    width: 74px;
}

.p-home-voice__card-image img {
    width: 100%;
    aspect-ratio: 74 / 105;
    object-fit: contain;
}

.p-home-voice__card-balloon {
    flex: 1;
    position: relative;
    background-color: var(--color--base--white);
    border-radius: var(--radius);
    padding: var(--margin-2xs);
    min-height: 80px;
    display: flex;
    align-items: center;
}

.p-home-voice__card-balloon::before {
    content: '';
    position: absolute;
    left: -10px;
    top: 50%;
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 10px 12px 10px 0;
    border-color: transparent var(--color--base--white) transparent transparent;
}

.p-home-voice__card-balloon-text {
    font-size: clamp(18px, 2vw, 20px);
    font-weight: var(--font-weight--bold);
    line-height: var(--line-height--standard);
}

.p-home-voice__card-body {
    padding: var(--margin-2xs) var(--margin-s);
}

.p-home-voice__card-meta {
    display: flex;
    align-items: center;
    gap: var(--margin-xs);
}

.p-home-voice__card-date {
    font-family: "Noto Sans JP", var(--font-family-default);
    font-size: 15px;
    color: var(--color--base--gray);
}

.p-home-voice__card-name {
    font-size: 15px;
    font-weight: var(--font-weight--bold);
}

.p-home-voice__card-hr {
    border: none;
    border-top: 1px solid var(--color--base--gray);
    margin-block: var(--margin-2xs);
}

.p-home-voice__card-info {
    margin: 0;
}

.p-home-voice__card-info-row {
    display: flex;
    align-items: baseline;
    gap: var(--margin-xs);
    margin-block-end: 0.3em;
}

.p-home-voice__card-info-row:last-child {
    margin-block-end: 0;
}

.p-home-voice__card-info-label {
    font-size: clamp(13px, 1.5vw, 15px);
    color: #fff;
    background-color: #3caa46;
    padding: 0 0.5em;
    flex-shrink: 0;
    width: 5em;
    text-align: center;
    border-radius: var(--radius-s);
}

.p-home-voice__card-info-value {
    font-size: clamp(16px, 1.8vw, 18px);
    margin: 0;
}

.p-home-voice__button {
    text-align: center;
    margin-block-start: var(--margin-l);
}

/* レスポンシブ */
@media (max-width: 1024px) {
    .p-home-voice__list {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .p-home-voice__title {
        font-size: clamp(23px, 6vw, 27px);
        margin-block-end: 0;
    }

    .p-home-voice__list {
        grid-template-columns: 1fr;
        gap: var(--margin-m);
        max-width: 600px;
        margin: 0 auto;
    }

    .p-home-voice__card-balloon-text {
        font-size: 17px;
    }

    .p-home-voice__card-image {
        width: 60px;
    }

    .p-home-voice__card-image img {
        width: 100%;
        aspect-ratio: 74 / 105;
    }

    .p-home-voice__card-date,
    .p-home-voice__card-name {
        font-size: 13px;
    }

    .p-home-voice__card-info-label {
        font-size: 13px;
    }

    .p-home-voice__card-info-value {
        font-size: 15px;
    }

    .p-home-voice__line {
        overflow: hidden;
    }

    .p-home-voice__line img {
        transform: scale(1.3);
    }
}

/* ===================================
 * p-home-cost-section (リフォーム費用)
 * =================================== */
.p-home-cost-section {
    background-color: #f7f7f7;
    padding-block: var(--section-s);
}

.p-home-cost-section__inner {
    max-width: 1340px;
    margin-inline: auto;
    padding-inline: var(--margin--use--outside);
}

.p-home-cost-section__title {
    font-size: clamp(1.75rem, 4vw, 2.5rem);
    font-weight: var(--font-weight--bold);
    text-align: center;
    color: var(--color--base--gray);
    margin-block-end: var(--margin-l);
    line-height: 1.4;
}

/* タブ全体のラッパー */
.p-home-cost-section .c-tab {
    position: relative;
    background: #fff;
    padding: 0 var(--margin-l) var(--margin-l);
}

/* 横線（タブパディング内に収める） */
.p-home-cost-section .c-tab::before {
    content: '';
    position: absolute;
    top: calc( 3em + 1.8em);
    left: var(--margin-l);
    right: var(--margin-l);
    height: 1px;
    background-color: #464646;
}

/* タブナビゲーション - 既存スタイルのリセット */
.p-home-cost-section .c-tab-nav {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0;
    border: none;
    margin-inline: auto;
    margin-block-end: var(--margin-s);
    background: none;
    padding: 0 0 0.8em 0;
    max-width: 800px;
}

/* 左縦線 */
.p-home-cost-section .c-tab-nav::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(calc(-50% - 0.4em));
    width: 1px;
    height: 2.2em;
    background-color: #464646;
}

/* 右縦線 */
.p-home-cost-section .c-tab-nav::after {
    content: '';
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(calc(-50% - 0.4em));
    width: 1px;
    height: 2.2em;
    background-color: #464646;
}

.p-home-cost-section .c-tab-nav__button {
    position: relative;
    background: none !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 1em 2em;
    font-size: 20px;
    font-weight: var(--font-weight--bold);
    color: var(--color--base--gray);
    cursor: pointer;
    transition: color 0.3s ease;
}

.p-home-cost-section .c-tab-nav__button::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 1px;
    height: 1.8em;
    background-color: #464646;
}

.p-home-cost-section .c-tab-nav__button[aria-selected="true"] {
    background: none !important;
    color: #3caa46;
}

.p-home-cost-section .c-tab-nav__button:hover {
    color: #3caa46;
}

.p-home-cost-section .c-tab-nav__button::after {
    display: none !important;
}

/* タブパネル - 既存スタイルのリセット */
.p-home-cost-section .c-tab-panel {
    background: none !important;
    padding: 0 !important;
    border: none !important;
}

.p-home-cost-section .c-tab-panel__container {
    background: none !important;
    border: none !important;
    padding: 0 !important;
    box-shadow: none !important;
}

.p-home-cost-section .c-tab-panel__container.is-show {
    background: none !important;
    border: none !important;
}

/* 費用リスト */
.p-home-cost-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: clamp(1rem, 2vw, 2rem) clamp(1.5rem, 3vw, 3rem);
}

.p-home-cost-list__item {
    display: flex;
    align-items: flex-start;
    gap: var(--margin-s);
}

.p-home-cost-list__thumb {
    flex: 3;
    margin: 0;
}

.p-home-cost-list__thumb img {
    width: 100%;
    height: auto;
    object-fit: cover;
    aspect-ratio: 1 / 1;
}

.p-home-cost-list__content {
    flex: 7;
    padding-block-start: var(--margin-xs);
}

.p-home-cost-list__label {
    font-size: clamp(24px, 2.5vw, 28px);
    font-weight: var(--font-weight--bold);
    color: var(--color--base);
    letter-spacing: -0.08em;
    line-height: 1.5;
}

.p-home-cost-list__price {
    font-size: clamp(24px, 2.5vw, 28px);
    font-weight: var(--font-weight--bold);
    color: #ff6400;
    margin-block-end: var(--margin-2xs);
    line-height: 1.5;
}

.p-home-cost-list__link {
    display: flex;
    align-items: center;
    gap: 0.3em;
    font-size: 17px;
    color: var(--color--base--gray);
    text-decoration: none;
    transition: color 0.3s ease;
    margin-inline-start: auto;
    width: fit-content;
}

.p-home-cost-list__link:hover {
    color: var(--color--theme--primary);
}

.p-home-cost-list__arrow {
    font-size: 0.75rem;
}

.p-home-cost-list__link-sp {
    display: none;
}

/* レスポンシブ */
@media (max-width: 1024px) {
    .p-home-cost-list {
        gap: var(--margin-l);
    }
}

@media (max-width: 768px) {
    .p-home-cost-section .c-tab-nav__button {
        font-size: 17px;
        padding: 0.8em 1em;
    }

    .p-home-cost-section__nav {
        flex-wrap: wrap;
        gap: 0;
    }

    .p-home-cost-section__tab-btn {
        padding: 0.8em 1em;
        font-size: 0.875rem;
    }

    .p-home-cost-list {
        grid-template-columns: 1fr;
        gap: var(--margin-l);
    }

    .p-home-cost-list__label,
    .p-home-cost-list__price {
        font-size: 20px;
    }

    .p-home-cost-list__link {
        font-size: 14px;
    }
}

@media (max-width: 540px) {
    /* PC用横線を非表示 */
    .p-home-cost-section .c-tab::before {
        display: none;
    }

    .p-home-cost-section .c-tab-nav {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        margin-block-end: var(--margin-xl);
        background: none;
        max-width: 100%;
        padding: 0;
        padding-block-end: 0.8em;
        border-bottom: 1px solid #464646;
        overflow: visible;
    }

    /* PC用左右縦線を非表示 */
    .p-home-cost-section .c-tab-nav::before,
    .p-home-cost-section .c-tab-nav::after {
        display: none;
    }

    .p-home-cost-section .c-tab-nav__button {
        position: relative;
        width: 100%;
        padding: 0.6em 1em;
        border: none !important;
        overflow: visible !important;
    }

    /* 左縦線 */
    .p-home-cost-section .c-tab-nav__button::before {
        content: '' !important;
        display: block !important;
        position: absolute !important;
        left: 0 !important;
        top: 50% !important;
        transform: translateY(-50%) !important;
        width: 1px !important;
        height: 1.5em !important;
        background-color: #464646 !important;
    }

    /* 偶数番目（右端）の縦線をbackgroundで描画 */
    .p-home-cost-section .c-tab-nav__button:nth-child(even) {
        background: linear-gradient(#464646, #464646) right center / 1px 1.5em no-repeat !important;
    }

    .p-home-cost-list__item {
        display: grid;
        grid-template-columns: 1fr 1.2fr;
        grid-template-rows: auto auto;
        gap: var(--margin-2xs) var(--margin-s);
    }

    .p-home-cost-list__thumb {
        grid-column: 1;
        grid-row: 1;
    }

    .p-home-cost-list__content {
        grid-column: 2;
        grid-row: 1;
        padding-block-start: 0;
    }

    .p-home-cost-list__content .p-home-cost-list__link {
        display: none;
    }

    .p-home-cost-list__link-sp {
        grid-column: 1 / -1;
        grid-row: 2;
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 0.3em;
        font-size: 14px;
        color: var(--color--base--gray);
        text-decoration: none;
    }
}


/* ===================================
 * p-home-works (リフォーム ビフォーアフター)
 * =================================== */
.p-home-works {
    background-color: var(--color--base--white);
    padding-block: var(--section-s);
    margin: 0 auto;
}

.p-home-works__inner {
    max-width: 1400px;
    margin-inline: auto;
    padding-inline: var(--margin--use--outside);
}

.p-home-works__header {
    text-align: center;
    margin-block-end: var(--margin-xl);
}

.p-home-works__title {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 2em;
    margin-block-end: var(--margin-2xs);
}

.p-home-works__title-main {
    font-size: clamp(30px, 4vw, 40px);
    font-weight: var(--font-weight--bold);
    color: var(--color--base--gray);
}

.p-home-works__title-sub {
    font-size: 20px;
    font-weight: normal;
    color: var(--color--base--gray);
}

.p-home-works__line {
    margin: 0 auto;
    margin-block-end: -0.8em;
    width: 100%;
    text-align: center;
}

.p-home-works__line img {
    width: 100%;
    height: auto;
}

.p-home-works__list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--margin-l);
}

.p-home-works__card {
    text-align: center;
}

.p-home-works__card-image {
    margin: 0 auto var(--margin-2xs);
    width: 80%;
    max-width: 280px;
    aspect-ratio: 1 / 1;
    border-radius: 50%;
    overflow: hidden;
}

.p-home-works__card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.p-home-works__card-body {
    text-align: left;
}

.p-home-works__card-date {
    font-family: "Noto Sans JP", var(--font-family-default);
    font-size: 15px;
    color: var(--color--base--gray);
    margin-block-end: 0.3em;
}

.p-home-works__card-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6em;
    margin-block-end: 0.3em;
}

.p-home-works__card-tag {
    font-size: clamp(13px, 1.5vw, 15px);
    color: #fff;
    background-color: #3caa46;
    padding: 0 0.7em;
    flex-shrink: 0;
    text-align: center;
    border-radius: var(--radius-s);
}

.p-home-works__card-title {
    font-size: clamp(18px, 1.8vw, 22px);
    font-weight: var(--font-weight--bold);
    line-height: var(--line-height--standard);
    margin-block-end: var(--margin-2xs);
}

.p-home-works__card-title a {
    color: var(--color--base);
    text-decoration: none;
    transition: color 0.3s ease;
}

.p-home-works__card-title a:hover {
    color: var(--color--theme--primary);
}

.p-home-works__card-hashtags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5em 1em;
}

.p-home-works__card-hashtag {
    font-size: 0.8125rem;
    color: var(--color--base--gray);
}

.p-home-works__button {
    text-align: center;
    margin-block-start: var(--margin-l);
}

/* レスポンシブ */
@media (max-width: 1024px) {
    .p-home-works__list {
        gap: var(--margin-2xs);
    }

    .p-home-works__card-title {
        margin-block-end: var(--margin-2xs);
    }

    .p-home-works__card-image {
        width: 90%;
    }
}

@media (max-width: 768px) {
    .p-home-works__list {
        grid-template-columns: 1fr;
        gap: var(--margin-xl);
    }

    .p-home-works__card-image {
        width: 60%;
        max-width: 250px;
    }

    .p-home-works__title {
        flex-direction: column;
        gap: 0;
        margin-block-end: 0;
    }

    .p-home-works__title-main {
        font-size: clamp(23px, 6vw, 27px);
    }

    .p-home-works__title-sub {
        font-size: 15px;
    }

    .p-home-works__line {
        overflow: hidden;
    }

    .p-home-works__line img {
        transform: scale(1.3);
    }
}

/* ===================================
 * p-home-other-links (その他リンク)
 * =================================== */
.p-home-other-links {
    background-color: #fffff0;
    padding-block: var(--section-s);
}

.p-home-other-links__inner {
    max-width: 1400px;
    margin-inline: auto;
    padding-inline: var(--margin--use--outside);
    display: flex;
    flex-direction: column;
    gap: var(--margin-xl);
}

.p-home-other-links__item {
    display: flex;
    align-items: center;
    gap: var(--margin-xl);
}

.p-home-other-links__item--reverse {
    flex-direction: row;
}

.p-home-other-links__image {
    flex: 489;
    margin: 0;
}

.p-home-other-links__image img {
    width: 100%;
    height: auto;
    aspect-ratio: 489 / 251;
    object-fit: cover;
}

.p-home-other-links__content {
    flex: 564;
    padding-inline-end: 50px;
}

.p-home-other-links__item--reverse .p-home-other-links__content {
    padding-inline-end: 0;
    padding-inline-start: 50px;
}

.p-home-other-links__title {
    font-size: clamp(28px, 4vw, 37px);
    font-weight: var(--font-weight--bold);
    color: #3caa46;
    margin-block-end: var(--margin-2xs);
}

.p-home-other-links__title-main {
    display: inline;
    color: #3caa46;
}

.p-home-other-links__title-sub {
    display: inline;
    font-size: 0.7em;
    margin-inline-start: 0.5em;
    color: #3caa46;
}

.p-home-other-links__hr {
    border: none;
    border-top: 1px solid var(--color--base--gray);
    margin-block: var(--margin-2xs);
    width: calc(100% + var(--margin-xl));
    margin-inline-start: calc(-1 * var(--margin-xl));
}

.p-home-other-links__item--reverse .p-home-other-links__hr {
    margin-inline-start: 0;
    margin-inline-end: calc(-1 * var(--margin-xl));
}

.p-home-other-links__text {
    font-size: 18px;
    line-height: var(--line-height--standard);
    margin-block-end: 0.5em;
}

.p-home-other-links__link {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.3em;
    font-size: 0.875rem;
    color: var(--color--base--gray);
    text-decoration: none;
    margin-block-start: var(--margin-2xs);
    transition: color 0.3s ease;
    font-size: 15px;
}

.p-home-other-links__link:hover {
    color: var(--color--theme--primary);
}

.p-home-other-links__item--reverse .p-home-other-links__link {
    justify-content: flex-start;
}

.p-home-other-links__arrow {
    font-size: 0.75rem;
    color: #3caa46;
    margin-top: -0.15em;
}

/* レスポンシブ */
@media (max-width: 768px) {
    .p-home-other-links__title {
        font-size: 35px;
    }

    .p-home-other-links__text {
        font-size: 15px;
    }

    .p-home-other-links__item {
        flex-direction: column;
        gap: var(--margin-m);
    }

    .p-home-other-links__item--reverse {
        flex-direction: column;
    }

    .p-home-other-links__content {
        padding-inline-end: 0;
        flex: none;
        width: 100%;
    }

    .p-home-other-links__item--reverse .p-home-other-links__content {
        padding-inline-start: 0;
    }

    .p-home-other-links__hr {
        width: calc(100% + var(--margin--use--outside) * 2);
        margin-inline-start: calc(-1 * var(--margin--use--outside));
        margin-block: var(--margin-xs);
    }

    .p-home-other-links__item--reverse .p-home-other-links__hr {
        margin-inline-start: calc(-1 * var(--margin--use--outside));
        margin-inline-end: 0;
    }

    .p-home-other-links__image {
        flex: none;
        width: 100%;
        order: -1;
    }

    .p-home-other-links__link {
        font-size: 14px;
    }

    .p-home-other-links__item--reverse .p-home-other-links__link {
        justify-content: flex-end;
    }
}

@media (max-width: 540px) {
    .p-home-other-links__title {
        line-height: 1.3;
    }

    .p-home-other-links__title-sub {
        display: block;
        margin-top: -0.3em;
    }
}

/* ===================================
 * p-home-info (動画で見るリフォーム情報)
 * =================================== */
.p-home-info {
    background-color: var(--color--base--white);
}

.p-home-info__inner {
    max-width: 1600px;
    margin-inline: auto;
    padding-inline: var(--margin--use--outside);
}

.p-home-info__header {
    text-align: center;
    margin-block-end: var(--margin-xl);
}

.p-home-info__title {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: baseline;
    gap: 0.5em 1em;
}

.p-home-info__title-main {
    font-size: clamp(38px, 4vw, 48px);
    font-weight: var(--font-weight--bold);
    color: var(--color--base--gray);
    line-height: 1.2;
}

.p-home-info__title-sub {
    font-size: clamp(28px, 3vw, 36px);
    font-weight: var(--font-weight--bold);
    color: var(--color--base--gray);
    line-height: 1.4;
}

.p-home-info__list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--margin-m);
}

.p-home-info__card-link {
    display: block;
    text-decoration: none;
    color: inherit;
    transition: opacity 0.3s ease;
}

.p-home-info__card-link:hover {
    opacity: 0.8;
}

.p-home-info__card-thumb {
    margin: 0 0 4px;
    border-radius: var(--radius);
    overflow: hidden;
    border: 1px solid var(--color--base--gray)
}

.p-home-info__card-thumb img {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

.p-home-info__card-date {
    font-family: "Noto Sans JP", var(--font-family-default);
    font-size: 16px;
    color: var(--color--base--gray);
    margin-block-end: 5px;
}

.p-home-info__card-title {
    font-size: 18px;
    font-weight: normal;
    line-height: var(--line-height--standard);
    color: var(--color--base);
}

.p-home-info__button {
    text-align: center;
    margin-block-start: var(--margin-l);
}

/* レスポンシブ */
@media (max-width: 1024px) {
    .p-home-info__list {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--margin-m);
    }
}

@media (max-width: 768px) {
    .p-home-info__list {
        grid-template-columns: 1fr;
        gap: var(--margin-l);
    }

    .p-home-info__title {
        flex-direction: column;
        gap: 0.3em;
    }

    .p-home-info__title-main {
        font-size: 35px;
    }

    .p-home-info__title-sub {
        font-size: 23px;
    }

    .p-home-info__card-date {
        font-size: 13px;
    }

    .p-home-info__card-title {
        font-size: 15px;
    }
}

@media (max-width: 540px) {
    .p-home-info__title {
        align-items: center;
        text-align: center;
    }

    .p-home-info__title-sub {
        margin-block-end: 0.2em;
    }

    .p-home-info__list {
        gap: var(--margin-xl);
    }
}
