/* 機器紹介ページ用css */

/* =========================================
   共通設定・カラー変数
========================================= */
:root {
    --color-orange: #FD853B;
    --color-green: #82C735;
    --color-bg-01: #f6ffdf;
    --color-bg-02: #fdf7f3;
    --color-bg-03: #FEAD7B;
    --color-white: #ffffff;
    --color-text: #666666;
}

ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

a {
    text-decoration: none;
}

body.page-product {
    background-color: var(--color-bg-02);
}

strong.product-em {
    color: var(--color-orange);
}

/* H2タイトル */
.page-product__ttl-02 {
    text-align: center;
    font-size: 3.5rem;
    font-weight: bold;
    color: var(--color-orange);
    padding-bottom: 20px;
    margin: 120px auto 60px;
    letter-spacing: 0.08em;
    position: relative;
}

.page-product__ttl-02::after {
    content: '';
    position: absolute;
    left: 50%;
    bottom: 0;
    width: 46px;
    height: 5px;
    background: url('../img/product/page-product__ttl-02_deco.svg') no-repeat center center/contain;
    transform: translate(-50%, -50%);
    z-index: 1;
}

.page-product__ttl-02__white {
    color: var(--color-white);
}

.page-product__ttl-02__white::after {
    background: url('../img/product/page-product__ttl-02_deco__white.svg') no-repeat center center/contain;
}

/* H3タイトル */
.page-product__ttl-03 {
    font-size: 2.8rem;
    color: var(--color-orange);
    padding-left: 25px;
    position: relative;
    margin: 80px 0 40px;
    font-weight: 600;
}

.page-product__ttl-03::after {
    content: '';
    position: absolute;
    top: 3px;
    left: 0;
    width: 10px;
    height: 38px;
    background: url('../img/product/page-product__ttl-03_deco.svg') no-repeat center center/contain;
}

/* H4タイトル */
.page-product__ttl-04 {
    font-size: 2rem;
    padding: 5px 20px;
    background-color: var(--color-orange);
    border-radius: 500px;
    color: var(--color-white);
    margin: 45px 0 30px;
    font-weight: 600;
    display: inline-block;
}

.page-product__ttl-02+.page-product__ttl-03 {
    margin-top: 0px;
}

.page-product__ttl-03+.page-product__ttl-04 {
    margin-top: 0px;
}

.page-product__ttl-02+.page-product__ttl-04 {
    margin-top: 0px;
}

/* ボタン */
.product-btn-orange,
.product-btn-green {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    padding: 15px 35px;
    font-weight: bold;
    text-decoration: none;
    color: var(--color-white);
    border: none;
    border-radius: 100px;
    cursor: pointer;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
    margin-top: 50px;
    font-size: 1.6rem;
    letter-spacing: 0.10em;
}

.product-btn-orange {
    background-color: var(--color-orange);
}

.product-btn-green {
    background-color: var(--color-green);
}

.product-btn-orange:hover,
.product-btn-green:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15);
    opacity: 0.9;
}

.product-btn-orange:active,
.product-btn-green:active {
    transform: translateY(2px);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* 中央寄せ */
.wrap-center {
    text-align: center;
}

/* 右寄せ */
.wrap-right {
    text-align: right;
}

/* リスト */
.page-product__list {
    background-color: white;
    padding: 30px 20px;
    border-radius: 15px;
    margin-bottom: 30px;
}

.page-product__list li {
    list-style: none;
    margin-bottom: 15px;
    position: relative;
    padding-left: 20px;
    line-height: 2.8rem;
    letter-spacing: 0.02em;

}

.page-product__list li:last-child {
    margin-bottom: 0;
}

.page-product__list li::before {
    content: '';
    width: 10px;
    height: 10px;
    top: 10px;
    left: 0;
    position: absolute;
    border-radius: 50%;
    background-color: var(--color-orange);
}

/* =========================================
   ヘッダーベース（PC表示）
========================================= */
#header .inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background-color: var(--color-white);
    padding: 15px 20px;
    position: relative;
}

.header-product-nav {
    display: flex;
    align-items: center;
}


.header-product-nav>ul {
    display: flex;
    gap: 30px;
    align-items: center;
    margin: 0;
    padding: 0;
    list-style: none;
}

.header-product-nav>ul>li {
    position: relative;
}

.header-product-nav>ul>li>span {
    display: block;
    padding: 10px 0;
    font-weight: bold;
    white-space: nowrap;
    transition: color 0.3s ease;
    color: #333;
    cursor: pointer;
    /* マウスを乗せた時に指マークにする */
}

.header-product-nav>ul>li>span:hover {
    color: var(--color-orange);
}

/* =========================================
   サブメニュー（ホバーで表示）
========================================= */
.header-product-subnav {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 200px;
    background-color: var(--color-bg-01);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    border-radius: 4px;
    padding: 10px 0;
    margin: 0;
    list-style: none;
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: all 0.3s ease;
    z-index: 100;
}

.header-product-nav>ul>li .header-product-subnav {
    left: auto;
    right: 0;
}

.header-product-nav>ul>li:hover .header-product-subnav {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.header-product-subnav li a {
    display: block;
    padding: 10px 20px;
    font-size: 14px;
    white-space: nowrap;
    /* 【追加】不自然な改行を防ぐ */
    transition: all 0.3s ease;
    text-decoration: none;
}

.header-product-subnav li a:hover {
    background-color: var(--color-green);
    color: var(--color-white);
}

/* =========================================
   ハンバーガーボタン（PC時は非表示）
========================================= */
.hamburger-btn {
    display: none;
}

/* =========================================
   レスポンシブ（スマホ表示：768px以下）
========================================= */
@media screen and (max-width: 768px) {
    .hamburger-btn {
        display: block;
        width: 30px;
        height: 24px;
        background: transparent;
        border: none;
        cursor: pointer;
        position: relative;
        z-index: 9999;
    }

    .hamburger-btn span {
        display: block;
        position: absolute;
        width: 100%;
        height: 2px;
        background-color: var(--color-orange);
        transition: all 0.3s ease;
    }

    .hamburger-btn span:nth-child(1) {
        top: 0;
    }

    .hamburger-btn span:nth-child(2) {
        top: 50%;
        transform: translateY(-50%);
    }

    .hamburger-btn span:nth-child(3) {
        bottom: 0;
    }

    .hamburger-btn.is-active span:nth-child(1) {
        top: 50%;
        transform: translateY(-50%) rotate(45deg);
    }

    .hamburger-btn.is-active span:nth-child(2) {
        opacity: 0;
    }

    .hamburger-btn.is-active span:nth-child(3) {
        bottom: 50%;
        transform: translateY(50%) rotate(-45deg);
    }

    .header-product-nav {
        position: fixed;
        top: 0;
        right: -100%;
        width: 80%;
        height: 100vh;
        background-color: var(--color-white);
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        padding: 80px 20px 20px;
        box-shadow: -4px 0 8px rgba(0, 0, 0, 0.1);
        transition: right 0.3s ease;
        z-index: 9998;
        overflow-y: auto;
    }

    .header-product-nav.is-active {
        right: 0;
    }

    .header-product-nav>ul {
        display: block;
    }

    .header-product-subnav {
        display: none;
        opacity: 1;
        visibility: visible;
        position: static;
        transform: none;
        box-shadow: none;
        background-color: transparent;
        padding: 0 0 10px 15px;
        transition: none;
    }

    .header-product-nav>ul>li>span {
        display: block;
        position: relative;
        border-bottom: 1px solid var(--color-bg-01);
        margin-bottom: 10px;
        padding-bottom: 10px;
        padding-right: 30px;
        cursor: pointer;
    }

    .header-product-nav>ul>li>span::after {
        content: '';
        position: absolute;
        top: 50%;
        right: 10px;
        width: 8px;
        height: 8px;
        border-top: 2px solid var(--color-orange);
        border-right: 2px solid var(--color-orange);
        transform: translateY(-50%) rotate(135deg);
        transition: transform 0.3s ease;
        pointer-events: none;
    }

    .header-product-nav>ul>li.is-open>span::after {
        transform: translateY(-50%) rotate(-45deg);
    }

    .header-product-subnav li a:hover {
        background-color: transparent;
        color: var(--color-orange);
    }

    /* その他既存のタイトル設定等 */
    .page-product__ttl-02 {
        font-size: 2.2rem;
        margin: 100px auto 40px;
        text-align: left;
    }

    .page-product__ttl-02::after {
        left: 0;
        transform: unset;
    }

    .page-product__ttl-03 {
        font-size: 1.8rem;
        padding-left: 17px;
        margin: 60px auto 30px;
    }

    .page-product__ttl-03::after {
        top: 0;
        width: 7px;
        height: 26px;
    }

    .page-product__ttl-04 {
        font-size: 1.6rem;
    }
}

/* margin top */
.u-mt-0 {
    margin-top: 0px !important;
}

.u-mt-5 {
    margin-top: 5px !important;
}

.u-mt-10 {
    margin-top: 10px !important;
}

.u-mt-15 {
    margin-top: 15px !important;
}

.u-mt-20 {
    margin-top: 20px !important;
}

.u-mt-25 {
    margin-top: 25px !important;
}

.u-mt-30 {
    margin-top: 30px !important;
}

.u-mt-35 {
    margin-top: 35px !important;
}

.u-mt-40 {
    margin-top: 40px !important;
}

.u-mt-45 {
    margin-top: 45px !important;
}

.u-mt-50 {
    margin-top: 50px !important;
}

.u-mt-55 {
    margin-top: 55px !important;
}

.u-mt-60 {
    margin-top: 60px !important;
}

.u-mt-65 {
    margin-top: 65px !important;
}

.u-mt-70 {
    margin-top: 70px !important;
}

.u-mt-75 {
    margin-top: 75px !important;
}

.u-mt-80 {
    margin-top: 80px !important;
}

.u-mt-85 {
    margin-top: 85px !important;
}

.u-mt-90 {
    margin-top: 90px !important;
}

.u-mt-95 {
    margin-top: 95px !important;
}

.u-mt-100 {
    margin-top: 100px !important;
}

.u-mt-105 {
    margin-top: 105px !important;
}

.u-mt-110 {
    margin-top: 110px !important;
}

.u-mt-115 {
    margin-top: 115px !important;
}

.u-mt-120 {
    margin-top: 120px !important;
}

.u-mt-125 {
    margin-top: 125px !important;
}

.u-mt-130 {
    margin-top: 130px !important;
}

.u-mt-135 {
    margin-top: 135px !important;
}

.u-mt-140 {
    margin-top: 140px !important;
}

.u-mt-145 {
    margin-top: 145px !important;
}

.u-mt-150 {
    margin-top: 150px !important;
}

.u-mt-155 {
    margin-top: 155px !important;
}

.u-mt-160 {
    margin-top: 160px !important;
}

.u-mt-165 {
    margin-top: 165px !important;
}

.u-mt-170 {
    margin-top: 170px !important;
}

.u-mt-175 {
    margin-top: 175px !important;
}

.u-mt-180 {
    margin-top: 180px !important;
}

.u-mt-185 {
    margin-top: 185px !important;
}

.u-mt-190 {
    margin-top: 190px !important;
}

.u-mt-195 {
    margin-top: 195px !important;
}

.u-mt-200 {
    margin-top: 200px !important;
}

.u-mt-205 {
    margin-top: 205px !important;
}

.u-mt-210 {
    margin-top: 210px !important;
}

.u-mt-215 {
    margin-top: 215px !important;
}

.u-mt-220 {
    margin-top: 220px !important;
}

.u-mt-225 {
    margin-top: 225px !important;
}

.u-mt-230 {
    margin-top: 230px !important;
}

.u-mt-235 {
    margin-top: 235px !important;
}

.u-mt-240 {
    margin-top: 240px !important;
}

.u-mt-245 {
    margin-top: 245px !important;
}

.u-mt-250 {
    margin-top: 250px !important;
}

.u-mt-255 {
    margin-top: 255px !important;
}

.u-mt-260 {
    margin-top: 260px !important;
}

.u-mt-265 {
    margin-top: 265px !important;
}

.u-mt-270 {
    margin-top: 270px !important;
}

.u-mt-275 {
    margin-top: 275px !important;
}

.u-mt-280 {
    margin-top: 280px !important;
}

.u-mt-285 {
    margin-top: 285px !important;
}

.u-mt-290 {
    margin-top: 290px !important;
}

.u-mt-295 {
    margin-top: 295px !important;
}

.u-mt-300 {
    margin-top: 300px !important;
}

@media screen and (max-width: 768px) {
    .u-mt-s-0 {
        margin-top: 0px !important;
    }

    .u-mt-s-5 {
        margin-top: 5px !important;
    }

    .u-mt-s-10 {
        margin-top: 10px !important;
    }

    .u-mt-s-15 {
        margin-top: 15px !important;
    }

    .u-mt-s-20 {
        margin-top: 20px !important;
    }

    .u-mt-s-25 {
        margin-top: 25px !important;
    }

    .u-mt-s-30 {
        margin-top: 30px !important;
    }

    .u-mt-s-35 {
        margin-top: 35px !important;
    }

    .u-mt-s-40 {
        margin-top: 40px !important;
    }

    .u-mt-s-45 {
        margin-top: 45px !important;
    }

    .u-mt-s-50 {
        margin-top: 50px !important;
    }

    .u-mt-s-55 {
        margin-top: 55px !important;
    }

    .u-mt-s-60 {
        margin-top: 60px !important;
    }

    .u-mt-s-65 {
        margin-top: 65px !important;
    }

    .u-mt-s-70 {
        margin-top: 70px !important;
    }

    .u-mt-s-75 {
        margin-top: 75px !important;
    }

    .u-mt-s-80 {
        margin-top: 80px !important;
    }

    .u-mt-s-85 {
        margin-top: 85px !important;
    }

    .u-mt-s-90 {
        margin-top: 90px !important;
    }

    .u-mt-s-95 {
        margin-top: 95px !important;
    }

    .u-mt-s-100 {
        margin-top: 100px !important;
    }

    .u-mt-s-105 {
        margin-top: 105px !important;
    }

    .u-mt-s-110 {
        margin-top: 110px !important;
    }

    .u-mt-s-115 {
        margin-top: 115px !important;
    }

    .u-mt-s-120 {
        margin-top: 120px !important;
    }

    .u-mt-s-125 {
        margin-top: 125px !important;
    }

    .u-mt-s-130 {
        margin-top: 130px !important;
    }

    .u-mt-s-135 {
        margin-top: 135px !important;
    }

    .u-mt-s-140 {
        margin-top: 140px !important;
    }

    .u-mt-s-145 {
        margin-top: 145px !important;
    }

    .u-mt-s-150 {
        margin-top: 150px !important;
    }

    .u-mt-s-155 {
        margin-top: 155px !important;
    }

    .u-mt-s-160 {
        margin-top: 160px !important;
    }

    .u-mt-s-165 {
        margin-top: 165px !important;
    }

    .u-mt-s-170 {
        margin-top: 170px !important;
    }

    .u-mt-s-175 {
        margin-top: 175px !important;
    }

    .u-mt-s-180 {
        margin-top: 180px !important;
    }

    .u-mt-s-185 {
        margin-top: 185px !important;
    }

    .u-mt-s-190 {
        margin-top: 190px !important;
    }

    .u-mt-s-195 {
        margin-top: 195px !important;
    }

    .u-mt-s-200 {
        margin-top: 200px !important;
    }
}


/* ------------------------
    カラム分け
------------------------ */
.u-grid {
    display: flex;
    flex-wrap: wrap;
    margin: 10px -15px 0;
    position: relative;
}

.u-grid.ai-center {
    align-items: center;
}

.u-grid.jc-center {
    justify-content: center;
}

.u-grid.gap-0 {
    margin: 10px 0 0;
}

.u-grid.gap-0 .col {
    padding: 0;
}

.u-grid.gap-0 {
    margin: 10px -0 0;
}

.u-grid.gap-0 .col {
    padding: 0 0;
}

.u-grid.gap-10 {
    margin: 10px -5px 0;
}

.u-grid.gap-10 .col {
    padding: 0 5px;
}

.u-grid.gap-20 {
    margin: 10px -10px 0;
}

.u-grid.gap-20 .col {
    padding: 0 10px;
}

.u-grid.gap-40 {
    margin: 10px -20px 0;
}

.u-grid.gap-40 .col {
    padding: 0 20px;
}

.u-grid.gap-50 {
    margin: 10px -25px 0;
}

.u-grid.gap-50 .col {
    padding: 0 25px;
}

.u-grid.gap-60 {
    margin: 10px -30px 0;
}

.u-grid.gap-60 .col {
    padding: 0 30px;
}

.u-grid .col {
    box-sizing: border-box;
    position: relative;
    padding: 0 15px;
    margin-top: 30px;
}

.u-grid .col.col-2 {
    width: 16.6666%;
}

.u-grid .col.col-20p {
    width: 20%;
}

.u-grid .col.col-3 {
    width: 25%;
}

.u-grid .col.col-4 {
    width: 33.33333%;
}

.u-grid .col.col-5 {
    width: 41.66666%;
}

.u-grid .col.col-0 {
    width: 45.83333%;
}

.u-grid .col.col-6 {
    width: 50%;
}

.u-grid .col.col-1 {
    width: 54.16666%;
}

.u-grid .col.col-7 {
    width: 58.33333%;
}

.u-grid .col.col-8 {
    width: 66.66666%;
}

.u-grid .col.col-9 {
    width: 75%;
}

.u-grid .col.col-10 {
    width: 83.33333%;
}

.u-grid .col.col-12 {
    width: 100%;
}

@media screen and (max-width: 768px) {
    .u-grid {
        margin: 5px -5px 0;
    }

    .u-grid.gap-md-10 {
        margin: 10px -5px 0;
    }

    .u-grid.gap-md-10 .col {
        padding: 0 5px;
    }

    .u-grid.gap-md-20 {
        margin: 10px -10px 0;
    }

    .u-grid.gap-md-20 .col {
        padding: 0 10px;
    }

    .u-grid.gap-md-40 {
        margin: 10px -20px 0;
    }

    .u-grid.gap-md-40 .col {
        padding: 0 20px;
    }

    .u-grid.gap-md-50 {
        margin: 10px -25px 0;
    }

    .u-grid.gap-md-50 .col {
        padding: 0 25px;
    }

    .u-grid.gap-md-60 {
        margin: 10px -30px 0;
    }

    .u-grid.gap-md-60 .col {
        padding: 0 30px;
    }

    .u-grid .col {
        padding: 0 5px;
    }

    .u-grid .col.col-md-2 {
        width: 16.6666%;
    }

    .u-grid .col.col-md-20p {
        width: 20%;
    }

    .u-grid .col.col-md-3 {
        width: 25%;
    }

    .u-grid .col.col-md-4 {
        width: 33.33333%;
    }

    .u-grid .col.col-md-5 {
        width: 41.66666%;
    }

    .u-grid .col.col-md-6 {
        width: 50%;
    }

    .u-grid .col.col-md-7 {
        width: 58.33333%;
    }

    .u-grid .col.col-md-8 {
        width: 66.66666%;
    }

    .u-grid .col.col-md-9 {
        width: 75%;
    }

    .u-grid .col.col-md-10 {
        width: 83.33333%;
    }

    .u-grid .col.col-md-12 {
        width: 100%;
    }
}


/* =========================================
   機器紹介TOPページ
========================================= */
.page-product-wrapper img {
    width: 100%;
}

.page-product__ttl-02+.u-grid .col,
.page-product__ttl-03+.u-grid .col,
.page-product__ttl-04+.u-grid .col {
    margin-top: 0;
}

.txt-link {
    text-decoration: underline;
    color: var(--color-orange);
}

.product-wrap {
    background-color: var(--color-white);
    border-radius: 20px;
    padding: 40px 20px;
    margin-bottom: 40px;
}

.product-category__ttl {
    text-align: center;
    font-size: 2.2rem;
    font-weight: bold;
    color: var(--color-white);
    padding: 5px 20px;
    margin: 0 auto 50px;
    background-color: #FEAD7B;
    width: fit-content;
    border-radius: 100px;
}

.page-product__ttl {
    text-align: center;
    font-size: 3rem;
    font-weight: bold;
    color: var(--color-orange);
    padding-bottom: 20px;
    margin: 80px auto 80px;
    border-bottom: 1px solid var(--color-orange);
}

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

.tp-product-grid>a {
    display: block;
    text-decoration: none;
    color: inherit;
    transition: 0.3s ease;
}

.tp-product-grid>a:hover {
    transform: translateY(-10px);
    opacity: 1;
    transition: 0.3s ease;
}

.tp-product-grid__thumb img {
    width: 100%;
    height: auto;
    display: block;
}

.tp-product-grid__thumb figure {
    border-radius: 20px 20px 0 0;
    overflow: hidden;
    margin: unset;
}

.tp-product-grid__name {
    padding: 10px;
    position: relative;
    color: var(--color-white);
    background-color: var(--color-green);
    font-size: 1.8rem;
    font-weight: bold;
    border-radius: 0 0 20px 20px;
    letter-spacing: 0.08em;
}

.tp-product-grid__name::after {
    content: "";
    width: 10px;
    height: 10px;
    position: absolute;
    top: 50%;
    right: 20px;
    transform: translateY(-50%) rotate(45deg);
    border: 1px solid var(--color-white);
    border-width: 2px 2px 0 0;
}

/* 機器選びはエナキスへ */
.product-choose-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}

.product-choose-grid__item {
    background-color: var(--color-white);
    padding: 40px 15px;
    border-radius: 20px;
    position: relative;
}

.product-choose-grid__item img {
    width: 170px;
    height: 120px;
    object-fit: contain;
    margin: 0 auto;
    display: block;
}

.product-choose-grid__ttl {
    text-align: center;
    font-size: 1.8rem;
    font-weight: bold;
    color: var(--color-orange);
    margin: 40px 0;
}

.product-choose-grid__item a {
    display: block;
    text-align: center;
    font-size: 1.3rem;
    font-weight: bold;
    color: var(--color-white);
    background-color: var(--color-green);
    padding: 10px;
    border-radius: 100px;
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    width: 80%;
    transition: 0.3s ease;
}

.product-choose-grid__item a:hover {
    background-color: var(--color-orange);
    transition: 0.3s ease;
}

/* 購入のお役立ち情報 */
.product-buy-info-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.product-buy-info__item {
    background-color: var(--color-white);
    border-radius: 20px;
    display: block;
}

.product-buy-info__item {
    position: relative;
    padding: 25px 35px 25px 20px;
    display: block;
    display: flex;
    align-items: center;
}

.product-buy-info__item p {
    font-size: 1.6rem;
    color: var(--color-orange);
    font-weight: 600;
}

.product-buy-info__item::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 25px;
    transform: translateY(-50%);
    transform: translateY(-50%) rotate(45deg);
    border: 1px solid var(--color-orange);
    border-width: 2px 2px 0 0;
    width: 6px;
    height: 6px;
}

.product-buy-info__item figure {
    display: inline-block;
    margin: unset;
}

.product-buy-info__item img {
    width: 30px;
    height: 30px;
    object-fit: cover;
    margin-right: 15px;
}

.photo-contact {
    margin-top: 20px;
}

.photo-contact a {
    display: flex;
    align-items: center;
    width: 100%;
    background-color: var(--color-green);
    border-radius: 20px;
    padding: 30px 15px;
    justify-content: center;
}

.photo-contact a:hover {
    background-color: var(--color-orange);
    transition: 0.3s ease;
}

.photo-contact a img {
    margin-right: 15px;
    width: 30px;
    height: 27px;
    object-fit: contain;
}

.photo-contact a.photo-contact_img img {
    border-radius: unset;
}

.photo-contact_guide a {
    display: flex;
    align-items: center;
    width: 100%;
    background-color: var(--color-white);
    border-radius: 20px;
    border: 1px solid var(--color-green);
    padding: 30px 15px;
    justify-content: center;
}

.photo-contact_guide a:hover {
    transition: 0.3s ease;
}

.photo-contact_guide a img {
    margin-right: 15px;
    width: 30px;
    height: 27px;
    object-fit: contain;
    border-radius: unset;
}

.photo-contact_guide a p {
    font-size: 1.6rem;
    color: var(--color-green);
    font-weight: 600;
    margin: unset;
}

.photo-contact a p {
    font-size: 1.6rem;
    color: var(--color-white);
    font-weight: 600;
    margin: unset;
}

/* お客様サポート */
.product-customer-support {
    background-color: var(--color-orange);
    padding-bottom: 120px;
    display: flow-root;
    margin-top: 120px;
}

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

.product-customer-support-grid__item {
    background-color: var(--color-white);
    color: var(--color-orange);
    font-size: 1.8rem;
    font-weight: 600;
    position: relative;
    padding: 35px 35px 35px 15px;
    border-radius: 20px;
}

.product-customer-support-grid__item::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 25px;
    transform: translateY(-50%) rotate(45deg);
    border: 1px solid var(--color-orange);
    border-width: 2px 2px 0 0;
    width: 6px;
    height: 6px;
}

/* イベント&キャンペーン */
.product-event-campaign {
    background-color: var(--color-bg-01);
    padding-bottom: 120px;
    display: flow-root;
}

.event-campaign-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.event-campaign-grid__item {
    background-color: var(--color-white);
    border-radius: 20px;
    display: block;
    padding: 10px;
}

.event-campaign-grid__item:hover {
    opacity: 0.8;
    transition: 0.3s ease;
}

.event-campaign-grid__item img {
    width: 100%;
    height: auto;
    display: block;
    aspect-ratio: 3/2;
    object-fit: cover;
}

.event-campaign-grid__item figure {
    border-radius: 20px;
    overflow: hidden;
    margin: unset;
}

.event-campaign-grid__item h3 {
    font-size: 1.6rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #666;
    margin: 20px 0 10px;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    position: relative;
    padding-right: 40px;
}

.event-campaign-grid__item h3::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 15px;
    transform: translateY(-50%) rotate(45deg);
    border: 1px solid var(--color-orange);
    border-width: 2px 2px 0 0;
    width: 7px;
    height: 7px;
}

/* お問い合わせ */
.product-contact {
    margin-top: 120px;
}

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

.product-contact_grid__item img {
    width: 100%;
    height: auto;
    display: block;
}

.product-contact_grid__item figure {
    border-radius: 20px;
    overflow: hidden;
    margin: unset;
}

.product-contact_grid__item h3 {
    font-size: 3.6rem;
    font-weight: bold;
    color: var(--color-orange);
    margin: 0 0 20px;
}

.product-contact_grid__item p {
    font-size: 1.6rem;
    font-weight: 600;
    margin: 0 0 20px;
}

@media (min-width: 768px) {
    .tp-product-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

@media screen and (max-width: 768px) {

    .page-product__ttl-02+.u-grid .col:nth-child(2),
    .page-product__ttl-03+.u-grid .col:nth-child(2),
    .page-product__ttl-04+.u-grid .col:nth-child(2) {
        margin-top: 30px;
    }

    .tp-product-grid__name {
        font-size: 1.3rem;
        padding: 10px 25px 10px 10px;
    }

    .tp-product-grid__name::after {
        width: 7px;
        height: 7px;
        right: 12px;
    }

    .product-category__ttl {
        font-size: 1.5rem;
        margin: 0 auto 35px;
    }

    .page-product__ttl {
        font-size: 2rem;
        margin: 40px auto 60px;
    }

    .product-choose-grid {
        grid-template-columns: repeat(1, 1fr);
        gap: 20px;
    }

    .product-buy-info-grid {
        grid-template-columns: repeat(1, 1fr);
    }

    .product-customer-support {
        padding-bottom: 100px;
        margin-top: 100px;
    }

    .product-customer-support-grid {
        grid-template-columns: repeat(1, 1fr);
    }

    .event-campaign-grid {
        grid-template-columns: repeat(1, 1fr);
    }

    .product-event-campaign {
        padding-bottom: 100px;
    }

    .product-contact_grid__item h3 {
        font-size: 2.6rem;
    }

    .product-contact {
        margin-top: 100px;
    }

    .product-contact_grid {
        grid-template-columns: repeat(1, 1fr);
    }
}




/* =========================================
   機器カテゴリーページ
========================================= */
.page-product-category__ttl {
    background-color: var(--color-orange);
    color: var(--color-white);
    font-size: 2.4rem;
    padding: 20px 30px;
    font-weight: 700;
    border-radius: 200px;
    margin-bottom: 30px;
}

/* 目次 */
.toc h5 {
    position: relative;
    font-size: 1.3rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    padding-left: 30px;
    color: var(--color-orange);
    margin-bottom: 20px;
}

.toc h5::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    background: url('../img/product/table-ico.svg') no-repeat center center/contain;
    width: 20px;
    height: 16px;
}

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

.toc a {
    color: var(--color-orange);
    background-color: var(--color-white);
    font-weight: 600;
    border-radius: 100px;
    border: 1px solid var(--color-orange);
    font-size: 1.6rem;
    padding: 15px 40px 15px 20px;
    position: relative;
    display: block;
}

.toc a::after {
    content: '';
    position: absolute;
    top: 50%;
    right: 25px;
    transform: translateY(-50%) rotate(45deg);
    width: 8px;
    height: 8px;
    border-right: 2px solid var(--color-orange);
    border-bottom: 2px solid var(--color-orange);
    transition: transform 0.3s ease;
}

/* 機能・特長 */
.feature-grid {
    display: grid;
    gap: 20px;
    grid-template-columns: repeat(3, 1fr);
}

.feature-grid__item {
    background-color: var(--color-white);
    border-radius: 20px;
    box-shadow: 0 2px 8px 0px rgba(0, 0, 0, 0.2);
    display: block;
}

.feature-grid__item img {
    width: 100%;
    height: auto;
    border-radius: 20px 20px 0 0;
    object-fit: cover;
    aspect-ratio: 16/9;
}

.feature-grid__item h3 {
    font-size: 1.6rem;
    font-weight: 600;
    padding: 20px 40px 20px 20px;
    position: relative;
    color: var(--color-orange);
}

.feature-grid__item h3::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 15px;
    transform: translateY(-50%) rotate(45deg);
    border: 1px solid var(--color-orange);
    border-width: 2px 2px 0 0;
    width: 7px;
    height: 7px;
}

/* 交換時期の目安 */
.replacement {
    background-color: var(--color-orange);
    border-radius: 10px;
    padding: 20px;
}

.replacement h3 {
    color: var(--color-white);
    font-size: 2.5rem;
    text-align: center;
    font-weight: 700;
}

.replacement h3 span {
    font-size: 4rem;
    margin: 0 10px;
}

/* 商品ラインナップ */
.product-line-up {
    background-color: var(--color-bg-01);
    padding-bottom: 120px;
    margin-top: 120px;
    display: flow-root;
}

.pick-one h5 {
    position: relative;
    font-size: 1.3rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    padding-left: 30px;
    color: var(--color-orange);
    margin-bottom: 20px;
}

.pick-one h5::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    background: url('../img/product/pick-one-ico.svg') no-repeat center center/contain;
    width: 20px;
    height: 16px;
}

.line-up-grid {
    display: grid;
    gap: 15px;
    grid-template-columns: repeat(3, 1fr);
    border: 1px solid var(--color-orange);
    background-color: var(--color-white);
    padding: 30px 20px;
    border-radius: 20px;
}

.line-up-grid__item {
    border-radius: 20px;
    border: 1px solid var(--color-orange);
    padding: 25px 15px;
    position: relative;
}

.line-up-grid__item::after {
    content: '';
    position: absolute;
    bottom: 30px;
    right: 20px;
    transform: rotate(45deg);
    border: 1px solid var(--color-orange);
    border-width: 2px 2px 0 0;
    width: 7px;
    height: 7px;
}

.line-up-grid__item img {
    max-height: 150px;
    margin-bottom: 15px;
    object-fit: contain;
}

.line-up-grid__item h3 {
    font-size: 1.8rem;
    font-weight: 700;
    color: var(--color-orange);
    margin-bottom: 25px;
    text-align: center;
}

.line-up-grid__item h3 span {
    font-size: 1.4rem;
    font-weight: 500;
    margin-top: 10px;
    display: block;
}

.product-function ul {
    display: flex;
    gap: 5px;
    flex-wrap: wrap;
    margin-bottom: 45px;
}

.product-function li {
    display: inline-flex;
    align-items: center;
    padding: 3px 8px;
    font-size: 1.3rem;
    color: var(--color-white);
    background-color: #A3A3A3;
    border-radius: 2px;
}

.product-lease {
    font-size: 1.3rem;
    font-weight: 600;
    background-color: var(--color-bg-03);
    color: var(--color-white);
    padding: 5px 20px;
    text-align: center;
    border-radius: 100px;
    display: inline-block;
    position: absolute;
    bottom: 20px;
}

/* タブ切り替え */
.js-tab-panel {
    display: none;
}

.js-tab-panel.is-active {
    display: block;
    animation: tabFadeIn 0.4s ease forwards;
}

.c-tab-nav {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
}

.c-tab-btn {
    padding: 10px 30px;
    font-size: 1.6rem;
    font-weight: bold;
    color: var(--color-orange);
    background-color: var(--color-white);
    border: 2px solid var(--color-orange);
    border-radius: 50px;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    gap: 10px;
    align-items: center;
}

.c-tab-btn img {
    width: 60px;
    height: 33px;
    object-fit: contain;
    margin: 0 auto;
}

.c-tab-btn.is-active {
    color: var(--color-white);
    background-color: var(--color-orange);
}

/* QAコンテンツ */
.qa-list {
    width: 100%;
}

.qa-item {
    background-color: var(--color-white);
    border-radius: 20px;
    margin-bottom: 20px;
}

.qa-trigger {
    display: flex;
    align-items: center;
    width: 100%;
    padding: 20px 15px;
    background: none;
    border: none;
    cursor: pointer;
    text-align: left;
    transition: background-color 0.3s ease;
}

.qa-trigger:hover {
    background-color: #f9f9f9;
}

.qa-q {
    color: var(--color-green);
    font-size: 3rem;
    font-weight: bold;
    margin-right: 15px;
    line-height: 1;
}

.qa-title {
    flex: 1;
    font-size: 1.6rem;
    font-weight: 600;
    padding-right: 20px;
    color: var(--color-orange);
}

.qa-icon {
    position: relative;
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    color: var(--color-orange);
}

.qa-icon::before,
.qa-icon::after {
    content: '';
    position: absolute;
    background-color: var(--color-orange);
    transition: transform 0.3s ease-in-out;
}

.qa-icon::before {
    top: 50%;
    left: 0;
    width: 100%;
    height: 2px;
    transform: translateY(-50%);
}

.qa-icon::after {
    top: 0;
    left: 50%;
    width: 2px;
    height: 100%;
    transform: translateX(-50%);
}

.qa-item.is-open .qa-icon::after {
    transform: translateX(-50%) rotate(90deg);
    opacity: 0;
}

.qa-item.is-open .qa-icon::before {
    transform: translateY(-50%) rotate(180deg);
}

.qa-answer-wrapper {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.3s ease-in-out;
}

.qa-item.is-open .qa-answer-wrapper {
    grid-template-rows: 1fr;
}

.qa-answer-inner {
    overflow: hidden;
}

.qa-answer-content {
    display: flex;
    padding: 25px 15px 25px 15px;
}

.qa-a {
    color: #666;
    font-size: 3rem;
    font-weight: bold;
    margin-right: 15px;
    line-height: 1;
}

.qa-answer-content p {
    flex: 1;
    margin: 0;
    font-size: 1.5rem;
    line-height: 1.6;
    color: #444;
}

.grade {
    border-bottom: 2px solid var(--color-green);
    display: block;
    margin: 50px 0 10px;
}

.grade p {
    font-size: 1.4rem;
    background-color: var(--color-green);
    color: var(--color-white);
    padding: 3px 15px;
    border-radius: 10px 10px 0 0;
    display: inline-block;
    letter-spacing: 0.08em;
}


/* 給湯器リスト */
.water-heater-list__item {
    border-radius: 20px;
    background-color: var(--color-white);
    overflow: hidden;
    padding-top: 40px;
    display: block;
}

.water-heater-list__item img {
    width: 110px;
    height: 90px;
    object-fit: contain;
    object-position: center;
    margin: 0 auto;
    display: block;
}

.water-heater-list__item p {
    background-color: var(--color-green);
    color: var(--color-white);
    font-size: 1.6rem;
    font-weight: 600;
    position: relative;
    padding: 10px 40px 10px 20px;
    margin-top: 40px;
    display: block;
}

.water-heater-list__item p::after {
    content: '';
    position: absolute;
    top: 50%;
    right: 20px;
    transform: translateY(-50%) rotate(45deg);
    border: 2px solid var(--color-white);
    border-width: 2px 2px 0 0;
    width: 10px;
    height: 10px;
}


/* 右下のフローティングボタン */
.c-floating-btn {
    position: fixed;
    bottom: 30px;
    right: 30px;
    z-index: 90;
    background: transparent;
    border: none;
    cursor: pointer;
    transition: transform 0.3s ease;
    background-color: rgba(216, 83, 6, 0.28);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1px solid var(--color-orange);
    border-radius: 100px;
    width: 70px;
    height: 70px;
}

.c-floating-btn img {
    width: 40px;
    height: 40px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    object-fit: contain;
}

.c-floating-btn:hover {
    transform: scale(1.05);
}


/* モーダル本体 */
.c-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    z-index: 100;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    z-index: 9999;
}

.c-modal.is-active {
    opacity: 1;
    visibility: visible;
}

.c-modal__bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.6);
    cursor: pointer;
}

.c-modal__content {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 90%;
    max-width: 500px;
    background: #fff;
    padding: 80px 40px 40px;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    max-height: 85vh;
    overflow-y: auto;
}

/* 閉じるボタン(バツ印) */
.c-modal__close-btn {
    position: absolute;
    top: 15px;
    right: 15px;
    font-size: 24px;
    background: var(--color-orange);
    width: 60px;
    height: 60px;
    border: none;
    cursor: pointer;
    border-radius: 100px;
    color: var(--color-white);
}

/* モーダル内のリストデザイン */
.c-modal__list {
    list-style: none;
    padding: 0;
    margin-top: 20px;
}

.c-modal__list li a {
    display: block;
    padding: 20px 50px 20px 15px;
    background-color: var(--color-white);
    color: var(--color-orange);
    border: 1px solid var(--color-orange);
    text-decoration: none;
    font-weight: bold;
    transition: all .3s;
    position: relative;
    border-radius: 20px;
    margin-bottom: 20px;
    font-size: 1.6rem;
    letter-spacing: 0.08em;
    line-height: 24px;
}

.c-modal__list li.c-modal__contact a {
    background-color: var(--color-green);
    border: 1px solid var(--color-green);
    padding: 25px 50px 25px 15px;
    color: var(--color-white);
}

.c-modal__list li.c-modal__contact a:hover {
    color: var(--color-green);
    background-color: var(--color-white);
    opacity: unset;
}

.c-modal__list li a:hover {
    color: var(--color-white);
    background-color: var(--color-orange);
    opacity: unset;
}

.c-modal__list li a::after {
    content: '';
    position: absolute;
    top: 50%;
    right: 25px;
    transform: translateY(-50%) rotate(-45deg);
    width: 8px;
    height: 8px;
    border-right: 2px solid var(--color-orange);
    border-bottom: 2px solid var(--color-orange);
    transition: transform 0.3s ease;
}

.c-modal__list li.c-modal__contact a::after {
    content: '';
    position: absolute;
    top: 50%;
    right: 25px;
    transform: translateY(-50%) rotate(-45deg);
    width: 8px;
    height: 8px;
    border-right: 2px solid var(--color-white);
    border-bottom: 2px solid var(--color-white);
    transition: transform 0.3s ease;
}


.c-modal__list li a:hover::after {
    border-right: 2px solid var(--color-white);
    border-bottom: 2px solid var(--color-white);
}

.c-modal__list li.c-modal__contact a:hover::after {
    border-right: 2px solid var(--color-green);
    border-bottom: 2px solid var(--color-green);
}

@keyframes tabFadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

/* 固定お問い合わせボタン */
.c-floating-btn__contact {
    position: fixed;
    bottom: 30px;
    right: 120px;
    z-index: 90;
    background: transparent;
    border: none;
    cursor: pointer;
    transition: transform 0.3s ease;
    background-color: rgba(48, 216, 6, 0.28);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1px solid var(--color-green);
    border-radius: 100px;
    width: 70px;
    height: 70px;
}

.c-floating-btn__contact img {
    width: 40px;
    height: 40px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    object-fit: contain;
}

.c-floating-btn__contact:hover {
    transform: scale(1.05);
    opacity: unset;
}

/* 機器紹介　詳細ページ */
.pr-single_top__outer {
    background-color: var(--color-white);
    border-radius: 20px;
    padding: 40px 20px;
}

.pr-single_top {
    display: flex;
    gap: 60px;
    margin-bottom: 30px;
}

.pr-single_img {
    width: 50%;
    border-radius: 15px;
    overflow: hidden;
}

.pr-single_img img {
    max-height: 400px;
    margin: 0 auto;
    display: block;
}

.pr-single_lease {
    background-color: var(--color-bg-03);
    font-size: 1.3rem;
    color: var(--color-white);
    padding: 5px 20px;
    border-radius: 100px;
}

.pr-single_ttl {
    margin-top: 10px;
    font-size: 3rem;
    font-weight: 600;
    color: var(--color-orange);
}

.pr-single_ttl span {
    font-size: 2rem;
    display: block;
}

.pr-single_feature-list {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 40px;
}

.pr-single_feature-list li {
    font-size: 1.3rem;
    padding: 3px 8px;
    background-color: #A3A3A3;
    color: var(--color-white);
    border-radius: 2px;
    line-height: normal;
}

.pr-single_info {
    font-size: 1.6rem;
    margin-top: 30px;
    color: var(--color-orange);
    font-weight: 400;
}

.pr-single_plan {
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
}

.pr-single_plan-01,
.pr-single_plan-02,
.pr-single_plan-03,
.pr-single_plan-04 {
    display: inline-block;
    position: relative;
    background-color: var(--color-white);
    border: 1px solid var(--color-orange);
    border-radius: 100px;
    padding: 5px 35px 5px 20px;
}

.pr-single_plan-01::after,
.pr-single_plan-02::after,
.pr-single_plan-03::after,
.pr-single_plan-04::after {
    content: '';
    position: absolute;
    top: 50%;
    right: 15px;
    transform: translateY(-50%) rotate(-45deg);
    width: 4px;
    height: 4px;
    border-right: 2px solid var(--color-orange);
    border-bottom: 2px solid var(--color-orange);
}

.pr-single_plan-01 img,
.pr-single_plan-02 img,
.pr-single_plan-03 img,
.pr-single_plan-04 img {
    width: 120px;
    object-fit: contain;
}

.pr-single_plan__ttl {
    margin: 25px 0 10px;
    font-size: 1.2rem;
    font-weight: 400;
    color: var(--color-orange);
}

.page-product__feature p {
    line-height: 3rem;
    letter-spacing: 0.05em;
    font-weight: 400;
}

.page-product__feature img {
    border-radius: 15px;
}

.page-product__feature .feature-grid__item img {
    border-radius: 20px 20px 0 0;
}

.pr-single-bg__white {
    background-color: var(--color-white);
    padding: 30px 20px;
    border-radius: 20px;
}

.pr-single-bg__green {
    background-color: var(--color-bg-01);
    padding: 120px 0;
    margin-top: 120px;
}

.pr-single-bg__green .page-product__ttl-02,
.pr-single-bg__green .page-product__ttl-03,
.pr-single-bg__green .page-product__ttl-04 {
    margin-top: 0;
}

.pr-single-bg__white .page-product__ttl-02,
.pr-single-bg__white .page-product__ttl-03,
.pr-single-bg__white .page-product__ttl-04 {
    margin-top: 0;
}

@media screen and (max-width: 768px) {
    .page-product-category__ttl {
        font-size: 2rem;
        padding: 20px 15px;
        border-radius: 20px;
    }

    .feature-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .feature-grid__item h3 {
        font-size: 1.3rem;
        padding: 15px 30px 15px 10px;
    }

    .replacement h3 {
        font-size: 2rem;
    }

    .replacement h3 span {
        font-size: 3.5rem;
    }

    .toc ul {
        grid-template-columns: repeat(1, 1fr);
        gap: 10px;
    }

    .toc a {
        font-size: 1.3rem;
        padding: 10px 30px 10px 15px;
    }

    .product-line-up {
        padding-bottom: 100px;
        margin-top: 100px;
    }

    .line-up-grid {
        gap: 10px;
        grid-template-columns: repeat(2, 1fr);
        padding: 30px 15px;
    }

    .line-up-grid__item {
        padding: 25px 10px;
    }

    .line-up-grid__item h3 {
        font-size: 1.6rem;
        margin-bottom: 40px;
    }

    .line-up-grid__item h3 span {
        font-size: 1.3rem;
        margin-top: 8px;
    }

    .product-lease {
        font-size: 1.1rem;
        padding: 2px 10px;
        bottom: 25px;
    }

    .c-modal__content {
        padding: 80px 20px 40px;
    }

    .c-modal__list li a {
        padding: 10px 40px 10px 15px;
        font-size: 1.4rem;
        margin-bottom: 15px;
    }

    .c-modal__list li.c-modal__contact a {
        padding: 20px 40px 20px 15px;
    }

    .c-tab-btn {
        flex-direction: column;
        width: 100%;
        font-size: 1.4rem;
        border-radius: 10px;
    }

    .pr-single_top {
        flex-direction: column;
        gap: 50px;
    }

    .pr-single_ttl {
        font-size: 2rem;
    }

    .pr-single_ttl span {
        font-size: 1.6rem;
    }

    .pr-single_feature-list {
        margin-top: 30px;
    }

    .pr-single_img {
        width: 100%;
    }

    .pr-single-bg__green {
        padding: 100px 0;
        margin-top: 100px;
    }

    .c-floating-btn {
        bottom: 20px;
        right: 20px;
        width: 60px;
        height: 60px;
    }

    .c-floating-btn img {
        width: 30px;
        height: 30px;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        object-fit: contain;
    }

    .c-floating-btn__contact {
        bottom: 20px;
        right: 90px;
        width: 60px;
        height: 60px;
    }

    .c-floating-btn__contact img {
        width: 30px;
        height: 30px;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        object-fit: contain;
    }
}


/* プランページ */
.plan-item {}

.plan-item__img {
    background-color: var(--color-white);
    border-radius: 100px;
    border: solid 1px var(--color-orange);
    overflow: hidden;
    padding: 20px;
}

.plan-item__img img {
    width: 200px;
    margin: 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
}

.plan-item__off {
    background-color: var(--color-orange);
    border-radius: 20px;
    padding: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100%;
}

.plan-item__off p {
    font-size: 2rem;
    text-align: center;
    font-weight: 400;
    color: var(--color-white);
    letter-spacing: 0.05em;
    line-height: normal;
}

.plan-item__off p span {
    font-size: 7rem;
    font-weight: 600;
    color: var(--color-white);
}

.plan-item__off p strong {
    font-size: 2rem;
    font-weight: 600;
}

.plan-item__off p small {
    font-size: 1.2rem;
    color: var(--color-white);
}

.plan-item__info {
    background-color: var(--color-white);
    border-radius: 20px;
    padding: 20px 15px;
    height: 100%;
}


/* エナキスのガス機器交換・リフォーム */
.replacement-worry-list__item {
    background-color: var(--color-white);
    border-radius: 15px;
    padding: 30px 20px;
}

.replacement-worry-list__item h4 {
    font-size: 1.8rem;
    font-weight: 600;
    color: var(--color-orange);
    margin-bottom: 35px;
}

.replacement-reason-list__item {
    background-color: var(--color-white);
    border-radius: 15px;
    padding: 40px 20px;
}

.replacement-reason-list__item h4 {
    font-weight: 600;
    text-align: center;
    color: var(--color-orange);
    font-size: 2.2rem;
    margin-bottom: 40px;
}

.replacement-reason-list__item h4 span {
    color: var(--color-green);
    text-align: center;
    font-weight: 600;
    font-size: 2.5rem;
    margin-bottom: 20px;
    display: block;
}

.replacement-flow-list {
    background-color: var(--color-white);
    border-radius: 15px;
    padding: 30px;
    margin-bottom: 40px;
}

.replacement-flow-list span {
    color: var(--color-white);
    background-color: var(--color-orange);
    border-radius: 100px;
    padding: 5px 20px;
    font-size: 1.8rem;
    font-weight: 600;
    line-height: normal;
    display: inline-block;
    margin-bottom: 20px;
}

.replacement-flow-list h4 {
    font-size: 2.4rem;
    color: var(--color-orange);
    margin-bottom: 20px;
    font-weight: 600;
}

.replacement-worry-list,
.replacement-reason-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
}


@media screen and (max-width: 768px) {
    .replacement-worry-list__item {
        padding: 25px 15px;
    }

    .replacement-reason-list__item h4 {
        font-size: 2rem;
        margin-bottom: 30px;
    }

    .replacement-reason-list__item h4 span {
        font-size: 2.2rem;
    }

    .replacement-flow-list h4 {
        font-size: 2rem;
    }

    .replacement-flow-list span {
        font-size: 1.6rem;
    }

    .replacement-worry-list,
    .replacement-reason-list {
        grid-template-columns: 1fr;
    }
}


/* ====================================================
 product-footer用 アコーディオン設定
==================================================== */
@media screen and (max-width: 834px) {
    .product-footer .footer-wrap__menu-box {
        display: block !important;
    }

    .product-footer .footer-wrap__menu-link {
        display: none;
    }

    .product-footer .footer-wrap__menu-ttl {
        position: relative;
        cursor: pointer;
        padding-top: 10px;
        padding-bottom: 10px;
        padding-right: 30px;
    }

    .product-footer .footer-wrap__menu-ttl .btn-acc {
        top: 50%;
        transform: translateY(-50%);
        right: 0;
    }

    .product-footer .footer-wrap__menu-linkItem:not(:last-child) {
        margin-bottom: 12px;
    }
}



.product-choose_point .choose_point_flex {
    background-color: var(--color-white);
}


/* =========================================
   おすすめポイント（ポップな右下吹き出し）
========================================= */
.kokoru-point {
    background-color: var(--color-white);
    border-radius: 25px;
    border: solid 3px var(--color-green);
    padding: 50px 40px 40px;
    max-width: 800px;
    width: 100%;
    margin: 0 auto 80px;
    position: relative;
    box-shadow: 6px 6px 0px rgba(130, 199, 53, 0.2);
}

.kokoru-point h5 {
    font-size: 2rem;
    background-color: var(--color-green);
    padding: 8px 35px;
    color: var(--color-white);
    font-weight: 700;
    margin-bottom: 30px;
    display: inline-block;
    border-radius: 100px;
}

.kokoru-point::before {
    content: "";
    background: url('../img/product/kokoru-point.png') no-repeat center center / contain;
    position: absolute;
    bottom: -120px;
    right: -10px;
    width: 110px;
    height: 155px;
    z-index: 2;
    pointer-events: none;
}

/* 吹き出しのしっぽ（下向きの三角形） */
.kokoru-point::after {
    content: "";
    position: absolute;
    bottom: -13px;
    right: 110px;
    width: 55px;
    height: 20px;
    background-color: var(--color-white);
    border-bottom: solid 3px var(--color-green);
    border-right: solid 3px var(--color-green);
    transform: rotate(20deg);
    z-index: 1;
}


/* =========================================
   レスポンシブ調整（スマホ表示：768px以下）
========================================= */
@media screen and (max-width: 768px) {
    .kokoru-point {
        padding: 40px 20px 30px;
        margin-bottom: 60px;
        border-radius: 20px;
        box-shadow: 4px 4px 0px rgba(130, 199, 53, 0.2);
    }

    .kokoru-point h5 {
        font-size: 1.6rem;
        padding: 5px 20px;
    }

    /* スマホ用にキャラクターを少し縮小・位置調整 */
    .kokoru-point::before {
        bottom: -100px;
        right: 0px;
        width: 80px;
        height: 114px;
    }

    /* スマホ用にしっぽの位置・サイズを微調整 */
    .kokoru-point::after {
        bottom: -11px;
        right: 80px;
        width: 43px;
        height: 16px;
        transform: rotate(20deg);
    }
}


/* 補助金ページ */
.hojokin-comparison {
    border: solid 1px var(--color-orange);
    border-radius: 20px;
    padding: 30px 20px;
    height: 100%;
    background-color: var(--color-white);
}

.hojokin-comparison__right {
    border: solid 3px var(--color-green);
}

.hojokin-comparison h5 {
    font-size: 1.8rem;
    text-align: center;
    font-weight: 600;
    margin-bottom: 30px;
}

.hojokin-comparison .hojokin-comparison__fee {
    color: var(--color-orange);
}

.hojokin-comparison__right .hojokin-comparison__fee {
    font-size: 3rem;
    color: var(--color-green);
}

p.hojokin-comparison__fee {
    font-size: 2.6rem;
    font-weight: 700;
    text-align: center;
}

p.hojokin-comparison__text {
    text-align: center;
    font-weight: 600;
    font-size: 2.2rem;
    color: var(--color-orange);
}

p.hojokin-comparison__info {
    font-size: 1.4rem;
    margin-top: 20px;
    line-height: normal;
}

.hojokin-item {
    display: flex;
    border-radius: 20px;
}

.hojokin-item__left {
    width: 35%;
    padding: 30px;
    border-radius: 20px 0 0 20px;
    background-color: var(--color-orange);
}

.hojokin-item__ttl {
    font-size: 2rem;
    line-height: 1.3em;
    font-weight: 600;
    letter-spacing: 0.05em;
    margin-bottom: 20px;
    color: var(--color-white);
}

.hojokin-item__fee {
    background-color: var(--color-white);
    border-radius: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.hojokin-item__fee p {
    font-size: 15px;
    color: var(--color-orange);
    text-align: center;
    padding: 30px 20px;
}

.hojokin-item__fee p span {
    font-size: 4rem;
    font-weight: 700;
    color: var(--color-green);
}

.hojokin-item__fee p small {
    font-size: 1.4rem;
    display: block;
    text-align: center;
    color: #B1B1B1;
    margin-bottom: 15px;
}

.hojokin-item__right {
    background-color: var(--color-white);
    border-radius: 0 20px 20px 0;
    padding: 30px;
    width: 75%;
}

.hojokin-item__list li {
    margin-bottom: 20px;
    display: flex;
    align-items: center;
}

.hojokin-item__list li:last-child {
    margin-bottom: 0;
}

.info-tag {
    font-size: 1.4rem;
    font-weight: 400;
    display: inline-block;
    padding: 5px 10px;
    border: 1px solid var(--color-orange);
    border-radius: 10px;
    max-width: 100px;
    width: 100%;
    margin-right: 20px;
    text-align: center;
    color: var(--color-orange);
}

.info-text {
    font-size: 1.6rem;
}

.hojokin-item__note {
    color: #FF0000;
    font-size: 1.3rem;
    font-weight: 200;
    margin-top: 20px;
}

.hojokin-item__note p {
    line-height: normal;

}

.hojokin-item__link {
    display: block;
    width: fit-content;
    margin-top: 20px;
    margin-left: auto;
    text-decoration: none;
    position: relative;
    background-color: var(--color-white);
    padding: 10px 50px 10px 20px;
    border-radius: 100px;
    border: solid 1px var(--color-green);
    font-size: 1.6rem;
    font-weight: 400;
    color: var(--color-green);
}

.hojokin-item__link::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 15px;
    transform: translateY(-50%) rotate(45deg);
    border: 1px solid var(--color-green);
    border-width: 2px 2px 0 0;
    width: 10px;
    height: 10px;
}

.hojokin-copy__green {
    font-size: 2.8rem;
    text-align: center;
    color: var(--color-green);
    font-weight: 600;
}

.hojokin-copy__orange {
    font-size: 2.6rem;
    text-align: center;
    color: var(--color-orange);
    font-weight: 600;
}

p.hojokin-subtext {
    font-size: 1.8rem;
    font-weight: 600;
}

p.subtext_center {
    text-align: center;
}

p.hojokin-comparison__note {
    font-size: 1.3rem;
    color: #666;
    margin-top: 10px;
    text-align: right;
    line-height: normal;
}

/* 補助金バナー */
.hojokin-banner {
    display: block;
    max-width: 600px;
    width: 100%;
    margin: 0 auto;
}

.hojokin-support__img {
    max-width: 200px;
    margin: 0 auto;
}


@media screen and (max-width: 768px) {
    p.hojokin-comparison__text {
        text-align: left;
        font-size: 1.6rem;
    }

    .hojokin-item {
        display: block;
    }

    .hojokin-item__left {
        width: 100%;
        border-radius: 20px 20px 0 0;
        padding: 30px 15px;
    }

    .hojokin-item__right {
        border-radius: 0 0 20px 20px;
        width: 100%;
        padding: 30px 15px;
    }

    .info-tag {
        margin-right: 0;
        margin-bottom: 10px;
    }

    .info-text {
        display: block;
    }

    .hojokin-copy__green {
        font-size: 2rem;
        text-align: left;
    }

    .hojokin-copy__orange {
        font-size: 1.8rem;
        text-align: left;
    }

    p.subtext_center {
        text-align: left;
    }

    p.hojokin-comparison__note {
        text-align: left;
    }

    .hojokin-item__list li {
        display: block;
    }

    .hojokin-item__fee p span {
        font-size: 6rem;
    }
}


/* 診断 */
/* モーダル全体のオーバーレイ */
.diag-modal-wrapper {
    display: none;
    position: fixed;
    z-index: 99999;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.7);
    align-items: center;
    justify-content: center;
}

.diag-modal-wrapper.is-active {
    display: flex;
}

/* モーダルの中身 */
.diag-container {
    background-color: #f5f5f5;
    color: #333;
    line-height: 1.6;
    width: 90%;
    max-width: 600px;
    max-height: 90vh;
    overflow-y: auto;
    border-radius: 8px;
    position: relative;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
}

.diag-header {
    background-color: #FD853B;
    color: white;
    text-align: center;
    padding: 20px;
    border-radius: 8px 8px 0 0;
    margin-bottom: 20px;
    position: relative;
}

.diag-header h3 {
    margin: 0;
    font-size: 1.5em;
    color: #fff;
}

.diag-close-btn {
    position: absolute;
    top: 15px;
    right: 20px;
    font-size: 28px;
    color: #fff;
    cursor: pointer;
    line-height: 1;
}

.diag-content-inner {
    padding: 0 20px 20px;
}

/* Progress */
.diag-progress-wrapper {
    margin-bottom: 25px;
}

.diag-progress-text {
    text-align: right;
    font-weight: bold;
    color: #FD853B;
    margin-bottom: 8px;
}

.diag-progress-bar-bg {
    background-color: #e0e0e0;
    height: 12px;
    border-radius: 6px;
    overflow: hidden;
}

.diag-progress-bar-fill {
    background-color: #FD853B;
    height: 100%;
    width: 25%;
    transition: width 0.4s ease;
}

/* Questions */
.diag-question-step {
    display: none;
    animation: diagFadeIn 0.4s ease-out forwards;
}

.diag-question-step.active {
    display: block;
}

@keyframes diagFadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

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

.diag-question-card {
    background: white;
    border-radius: 8px;
    padding: 25px;
    margin-bottom: 15px;
}

.diag-question-title {
    font-size: 1.1em;
    font-weight: bold;
    margin-bottom: 20px;
    color: #FD853B;
    border-bottom: 2px solid #fff0e6;
    padding-bottom: 10px;
}

.diag-options {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.diag-option-label {
    display: flex;
    align-items: center;
    padding: 15px;
    border: 2px solid #ddd;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.2s ease;
    font-weight: bold;
    color: #555;
}

.diag-option-label:hover {
    border-color: #FD853B;
    background-color: #fffaf7;
}

.diag-option-label input {
    display: none;
}

.diag-option-label.selected {
    border-color: #FD853B;
    background-color: #FD853B;
    color: white;
}

/* Buttons */
.diag-btn-group {
    display: flex;
    gap: 10px;
    margin-top: 10px;
    margin-bottom: 30px;
}

.diag-btn {
    padding: 18px;
    border: none;
    border-radius: 8px;
    font-size: 1.1em;
    font-weight: bold;
    cursor: pointer;
    transition: all 0.3s;
    flex: 1;
    text-align: center;
}

.diag-btn-next,
.diag-btn-diagnose {
    background-color: #FD853B;
    color: white;
}

.diag-btn-next:hover:not(:disabled),
.diag-btn-diagnose:hover:not(:disabled) {
    background-color: #e5722c;
}

.diag-btn-next:disabled,
.diag-btn-diagnose:disabled {
    background-color: #cccccc;
    cursor: not-allowed;
}

.diag-btn-back {
    background-color: white;
    color: #666;
    border: 2px solid #ddd;
    flex: 0.5;
}

.diag-btn-back:hover {
    background-color: #f0f0f0;
}

/* Results */
#diag-result-section {
    display: none;
    animation: diagFadeIn 0.5s ease-out forwards;
}

.diag-result-card {
    background: white;
    border-radius: 8px;
    padding: 30px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    text-align: center;
    border-top: 6px solid #FD853B;
}

.diag-result-subtitle {
    font-weight: bold;
    color: #666;
    margin-bottom: 5px;
}

.diag-result-grade {
    font-size: 1.6em;
    color: #FD853B;
    font-weight: bold;
    margin: 10px 0 20px;
}

.diag-result-desc {
    background-color: #fffaf7;
    padding: 18px;
    border-radius: 6px;
    text-align: left;
    margin-bottom: 25px;
}

.diag-product-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.diag-product-item {
    display: block;
    border: 1px solid #ddd;
    padding: 15px;
    border-radius: 8px;
    text-align: center;
    background-color: #fafafa;
    text-decoration: none;
    color: inherit;
    transition: .2s;
}

.diag-product-item:hover {
    opacity: 0.8;
    border-color: #FD853B;
}

.diag-product-img {
    width: 100%;
    height: auto;
    border-radius: 6px;
    margin-bottom: 10px;
    object-fit: contain;
}

.diag-product-name {
    font-weight: bold;
    color: #FD853B;
    font-size: 0.95em;
    line-height: 1.4;
}

@media (max-width: 480px) {
    .diag-product-list {
        grid-template-columns: 1fr;
    }

    .diag-btn-group {
        flex-direction: column-reverse;
    }

    .diag-btn-back {
        padding: 15px;
    }
}

.video-iframe {
    width: 100%;
    aspect-ratio: 16 / 9;
    border: none;
    border-radius: 15px;
}

.guide-toc-list {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
}

.toc ul.guide-toc-list {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
}

.toc ul.guide-toc-list li a {
    color: var(--color-orange);
    background-color: var(--color-white);
    font-weight: 600;
    border-radius: 100px;
    border: 1px solid var(--color-orange);
    font-size: 1.6rem;
    padding: 15px 40px 15px 20px;
    position: relative;
    display: block;
    letter-spacing: 0.1em;
}

.toc ul.guide-toc-list li a::after {
    content: '';
    position: absolute;
    top: 50%;
    right: 15px;
    transform: translateY(-50%) rotate(45deg);
    width: 8px;
    height: 8px;
    border-right: 2px solid var(--color-orange);
    border-bottom: 2px solid var(--color-orange);
    transition: transform 0.3s ease;
}