@charset "utf-8";

:root {
    /* =========================
     テキストサイズ
  ========================= */
    --font-size-text-sm: 14px;
    --font-size-text: 16px;
    --font-size-text-lg: 18px;

    --font-size-h2: 32px;
    --font-size-title: 24px;

    /* =========================
     色
  ========================= */
    --color-text: #171717;
    --color-text-sub: #666666;
    --color-accent: #e91c24;
    --color-white: #ffffff;
    --color-gray01: #b3b3b3;
    --color-gray02: #f2f2f2;

    /* =========================
     角丸
  ========================= */
    --radius: 10px;
}

.wrapper {
    margin: 0 auto;
    padding: 0;
    display: block;
    position: relative;
    width: 1200px;
    color: var(--color-text);
    text-align: left;
    font-family: "Inter", "Noto Sans JP", sans-serif;
    font-size: var(--font-size-text);
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    font-variation-settings:
        "wdth"100;
    background-color: #fefefe;
    text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
}

.wrapper *,
.wrapper *::before,
.wrapper *::after {
    box-sizing: border-box;
}

.wrapper :where(h1, h2, h3, h4, h5, ul, p) {
    overflow-wrap: break-word;
    line-height: calc(1em + 0.6rem);
    /* text-wrap: balance; */
    padding: 0;
    margin: 0;
}

.wrapper li {
    list-style-type: none;
}

.wrapper a {
    text-decoration: none;
    color: inherit;
}

.wrapper img {
    max-width: 100%;
    vertical-align: bottom;
    max-inline-size: 100%;
    block-size: auto;
}

.wrapper section,
.wrapper div {
    margin: 0;
    padding: 0;
    display: block;
    position: relative;
}

.wrapper button {
    padding: 0;
    border: none;
    background: none;
    font: inherit;
    color: inherit;
    cursor: pointer;
}

/* ========================================= */
/* FV */
/* ========================================= */

.wrapper #fv {
    padding: 0;
}

/* ========================================= */
/* 固定ボタン */
/* ========================================= */

/* 共通 */
.wrapper .lineup_fixed,
.wrapper .pagetop {
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;

    position: fixed;
    bottom: 24px;
    z-index: 100;

    border-radius: calc(1px / 0);
    text-decoration: none;

    opacity: 0;
    visibility: hidden;
    pointer-events: none;

    transition:
        opacity .3s ease,
        transform .3s ease,
        visibility .3s ease,
        background-color .3s ease;
}


/* 製品ラインアップボタン */
.wrapper .lineup_fixed {
    gap: .5rem;
    letter-spacing: .05em;

    min-width: 200px;
    padding: 1.25rem 2rem;
    box-sizing: border-box;

    border-radius: calc(1px / 0);
    background: #171717;
    color: #fff;
    font-size: 1rem;
    font-weight: 500;
    text-decoration: none;
    line-height: 1;

    right: 108px;
    bottom: 2rem;
}

/* 4つの円のアイコン */
.wrapper .lineup_icon {
    display: grid;
    grid-template-columns: repeat(2, 7px);
    grid-template-rows: repeat(2, 7px);
    gap: 2px;
    flex-shrink: 0;
}

/* 円の線 */
.wrapper .lineup_icon span {
    display: block;
    width: 6px;
    height: 6px;
    box-sizing: border-box;
    border: 1px solid currentColor;
    border-radius: 50%;
}


/* TOPへ戻るボタン */
.wrapper .pagetop {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 56px;
    height: 56px;
    border-radius: calc(1px / 0);
    background-color: var(--color-text-sub);

    position: fixed;
    right: 2rem;
    bottom: 2rem;
    z-index: 100;

    text-decoration: none;
    transition: background-color .2s ease;

    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition:
        opacity .2s ease,
        transform .2s ease,
        visibility .2s ease,
        background-color .2s ease;
}

/* 上向き矢印 */
.wrapper .pagetop_arrow {
    position: relative;
    display: block;
    width: 28px;
    height: 36px;
}

/* 矢印の縦線 */
.wrapper .pagetop_arrow::before {
    content: "";
    position: absolute;
    top: calc(50% - 11px);
    left: calc(50% - 1px);
    width: 2px;
    height: 22px;
    background: #fff;
}

/* 矢印の先端 */
.wrapper .pagetop_arrow::after {
    content: "";
    position: absolute;
    top: 9px;
    left: calc(50% - 7px);
    width: 14px;
    height: 14px;
    border-top: 2px solid #fff;
    border-left: 2px solid #fff;
    transform: rotate(45deg);
}


/* 共通の表示状態 */
.wrapper .lineup_fixed.is_visible,
.wrapper .pagetop.is_visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

/* 共通のホバー */
.wrapper .lineup_fixed:hover,
.wrapper .pagetop:hover {
    opacity: .7;
}

/* キーボード操作時 */
.wrapper .lineup_fixed:focus-visible,
.wrapper .pagetop:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 4px;
}

/* アクティブ時 */
.wrapper .lineup_fixed:active,
.wrapper .pagetop:active {
    background-color: #333;
    transform: translateY(1px) scale(0.97);
    transition-duration: .1s;
}

/* ========================================= */
/* こんなお悩みはありませんか？ */
/* ========================================= */

.wrapper section {
    padding: 3rem 2.25rem 4rem;
}

.wrapper section:nth-of-type(odd) {
    background-color: var(--color-gray02);
}

.wrapper h2 {
    font-size: var(--font-size-h2);
    font-weight: 800;
    font-feature-settings: "palt";
    letter-spacing: .02em;
    margin-bottom: 2.5rem;
}

.wrapper .concern_box {
    display: grid;
    grid-template-columns: 518px 1fr;
    align-items: center;
    gap: 1.5rem;
    width: 880px;
    margin: auto;
}

.wrapper .concern_images {
    position: relative;
    width: 100%;
    aspect-ratio: 518 / 231;
}

.wrapper .concern_img {
    position: absolute;
    display: block;
}

.wrapper .concern_img01 {
    top: 0;
    left: 0;
    width: 300px;
    height: auto;
}

.wrapper .concern_img02 {
    right: 0;
    bottom: 0;
    width: 255px;
    height: auto;
}

/* チェックリスト */
.wrapper .check_list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.wrapper .check_list_item {
    display: flex;
    align-items: center;
    gap: 5px;
    margin: 0 0 10px;
    color: var(--color-text);
    font-size: 1.125rem;
    font-weight: 500;
}

.wrapper .check_list_item:last-child {
    margin-bottom: 0;
}

/* チェックボックス */
.wrapper .check_box {
    position: relative;
    display: block;
    flex: 0 0 1rem;
    width: 1rem;
    height: 1rem;
    border: 1px solid var(--color-gray01);
    background: #fff;
}

/* チェック */
.wrapper .check_box::after {
    content: "";
    position: absolute;
    top: 1px;
    left: 4px;
    width: 6px;
    height: 9px;
    border-right: 2px solid var(--color-accent);
    border-bottom: 2px solid var(--color-accent);
    transform: rotate(45deg);
    transform-origin: center;
    transition: transform .25s ease;
}

/* ========================================= */
/* HEATSCOPEが選ばれる理由 */
/* ========================================= */

.wrapper .section_title {
    display: flex;
    align-items: center;
    gap: .25rem;
}

.wrapper .section_title_icon {
    width: 290px;
    height: 27px;
}

.wrapper .reason_box {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2.25rem 2rem;
}

.wrapper .reason_box .resacon_img {
    display: block;
    width: 100%;
    /* max-width: 264px; */
    height: auto;
    object-fit: contain;
    margin: 0 auto;
    border-radius: var(--radius);
}

.wrapper .text_title {
    font-size: var(--font-size-title);
    font-weight: 800;
    margin: 1.25rem 0 .5rem;
}

.wrapper .font_size_7 {
    font-size: .7em;
    font-weight: 600;
    display: inline-block;
}

.wrapper .sup {
    font-size: .7em;
    font-weight: 400;
    position: relative;
    top: -.3em;
}

.wrapper .note {
    margin-top: 2.5rem;
    padding: 0;
    list-style: none;
    color: var(--color-text-sub);
    font-size: .9em;
}

.wrapper .note_item {
    display: flex;
    align-items: flex-start;
}

.wrapper .note_mark {
    flex-shrink: 0;
    /* margin-right: .1em; */
}

.wrapper .note_number {
    flex: 0 0 .9em;
    text-align: left;
}


/* ========================================= */
/* 導入による効果 */
/* ========================================= */

.wrapper .benefits_box {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
}

.wrapper .benefit_item {
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    border-right: 2px solid #efefef;
    text-align: center;
}

.wrapper .benefit_item:last-child {
    border-right: none;
}

.wrapper .benefit_item p {
    margin: 0;
    font-weight: 500;
}

/* ========================================= */
/* 導入シーン */
/* ========================================= */
.wrapper .case_box {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
}

.wrapper section:has(.subtitle) h2 {
    margin-bottom: .5rem;
}

.wrapper .subtitle {
    margin-bottom: 2rem;
}

/* ========================================= */
/* 製品ラインアップ */
/* ========================================= */

.wrapper .map_img {
    margin: auto;
    display: block;
}

.wrapper .map_wrp {
    position: relative;
    width: 534px;
    margin: auto;
    color: var(--color-text-sub);
    font-size: var(--font-size-text);
    text-align: center;
    font-weight: 700;
}

.wrapper .map_link {
    display: inline-block;
    background-color: #fff;
    border: 2px solid var(--color-text-sub);
    box-shadow: rgba(99 99 99 /.3) 0px 2px 8px 0px;
    padding: .25rem 0;
    width: 126px;
    position: absolute;
    top: 81px;
    left: 248px;
    z-index: 10;

    transition:
        opacity .8s ease-out,
        transform .8s ease-out,
        color .3s ease,
        border-color .3s ease,
        box-shadow .3s ease;
}

.wrapper .map_link.vision_btn {
    width: 254px;
    top: 135px;
    left: 163px;
}

.wrapper .map_link.spot_btn {
    width: 189px;
    top: 189px;
    left: 163px;
}

.wrapper .map_link:hover,
.wrapper .map_link:focus-visible {
    z-index: 3;
    border-color: var(--color-accent);
    color: var(--color-text);
    box-shadow:
        0 0 5px rgba(233 28 36 / .75),
        0 0 14px rgba(214 29 42 / .45);
    outline: none;
    animation: map_link_pulse .8s ease-in-out infinite;
}

@keyframes map_link_pulse {

    0%,
    100% {
        box-shadow:
            0 0 5px rgba(233 28 36 / .3),
            0 0 14px rgba(214 29 42 / .15);
    }

    50% {
        box-shadow:
            0 0 8px rgba(233 28 36 / .9),
            0 0 20px rgba(214 29 42 / .65);
    }
}

/* ホバー・キーボードフォーカス時 */
.wrapper .product:hover,
.wrapper .product:focus-visible {
    z-index: 3;
    border-color: var(--color-accent);
    background: #fff;
    color: #222;
    box-shadow:
        0 0 5px rgba(233 28 36 / .75),
        0 0 14px rgba(214 29 42 / .45);
    outline: none;
}

/* 動きを控えたいユーザーへの配慮 */
@media (prefers-reduced-motion: reduce) {
    .wrapper .product {
        transition: none;
    }
}

/* ========================================= */
/* PURE+ */
/* ========================================= */
.wrapper section:has(h3) {
    padding: 0;
}

.wrapper section:has(h3):nth-of-type(odd) {
    padding: 0;
    background-color: #fefefe;
}

.wrapper .ribbon {
    display: flex;
    flex-wrap: wrap;
    background-color: #e6e6e6;
}

.wrapper .ribbon_img {
    width: 200px;
    height: 200px;
}

.wrapper .text_box {
    width: 950px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 0 2rem 1rem;
}

.wrapper .jp {
    font-size: var(--font-size-text-sm);
    font-weight: 400;
    color: var(--color-text-sub);
}

.wrapper .product_name {
    font-size: 50px;
    font-weight: 800;
    letter-spacing: .03em;
    margin-bottom: .75rem;
}

.wrapper .product_lead {
    font-size: var(--font-size-text);
    font-weight: 400;
}

/* ========================================= */
/* CMS用 */
/* ========================================= */

.wrapper .search_list {
    width: 100%;
    margin: auto;
    padding: 0;
    box-sizing: border-box;
    position: relative;
    background-color: #fff;
    text-align: left;
}

.wrapper .search_list ul {
    padding: 36px 36px 4rem;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    /* grid-template-columns: repeat(4, minmax(0, 1fr)); */
}

.wrapper .search_list ul li {
    border: 2px solid var(--color-gray02);
    background-color: #fff;
    padding: 2rem 1.5rem;
    border-radius: 10px;

    display: flex;
    flex-direction: column;

    min-width: 0;
}

.wrapper .search_list ul li a {
    color: var(--color-text);
    text-decoration: none;
    display: block;
    margin: 0;
    padding: 0;
    font-size: 1rem;
}


/* 商品画像 */
.wrapper [id^="search_image_"] {
    text-align: center;
}

.wrapper .search_list ul li a img {
    max-width: 100%;
    vertical-align: bottom;
    margin-bottom: 1rem;
}

/* メーカー名 */
.wrapper .search_list ul li a:nth-of-type(2) {
    display: none;
    /* color: var(--color-text-sub);
    font-size: var(--font-size-text-sm);
    margin-bottom: .25rem; */
}

.wrapper .search_list ul li>a:hover {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}

/* 価格 */
.wrapper .search_list ul li p {
    color: var(--color-text-sub);
    text-align: right;
    padding-top: .25rem;
    margin-top: auto;
}

/* ========================================= */
/* HEATSCOPEの製品一覧を見る */
/* ========================================= */
.wrapper .btn_area {
    /* background-color: var(--color-gray02); */
}

.wrapper .view_more {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 3rem 0 4rem;
    background-color: var(--color-gray02);
}

.wrapper .view_more_btn {
    display: block;
    width: 700px;
    padding: 28px 0 32px;
    text-align: center;

    border-radius: calc(1px / 0);
    color: var(--color-text);
    border: 2px solid var(--color-text);
    font-size: 1.5rem;
    font-weight: 600;
    letter-spacing: .05em;

    background-color: #fff;
    box-shadow: #ddd 0 5px 5px;

    transition: opacity .3s ease;
}

.wrapper .view_more_btn:hover {
    opacity: .7;
}


/* ========================================= */
/* お問い合わせエリア */
/* ========================================= */
.wrapper .inquiry_area {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 3rem 0 4rem;
}

.wrapper .microcopy {
    position: relative;
    color: var(--color-text-sub);
    font-size: 1.125rem;
    font-weight: 600;
    letter-spacing: .05rem;
    margin-bottom: .5rem;
}

.wrapper .microcopy::before {
    content: "";
    position: absolute;
    width: 1.6px;
    height: 28px;
    top: 1px;
    left: -20px;
    transform: rotate(-30deg);
}

.wrapper .microcopy::after {
    content: "";
    position: absolute;
    width: 1.6px;
    height: 28px;
    top: 1px;
    right: -20px;
    transform: rotate(30deg);
}

.wrapper .microcopy::before,
.wrapper .microcopy::after {
    background-color: var(--color-gray01);
}

.wrapper .btn {
    display: block;
    width: 700px;
    padding: 28px 0 32px;
    text-align: center;

    border-radius: calc(1px / 0);
    color: #fff;
    font-size: 1.5rem;
    font-weight: 600;
    letter-spacing: .05em;

    background-color: var(--color-text-sub);
    border: 2px solid var(--color-text-sub);
    box-shadow: #ddd 0 5px 5px;

    transition: opacity .3s ease;
}

.wrapper .btn:hover {
    opacity: .7;
}


/* ========================================= */
/* js用 */
/* ========================================= */

.fadeIn {
    opacity: 0;
    transform: translateY(50px);
    transition:
        opacity .8s ease-out,
        transform .8s ease-out;
}

.fadeIn.show {
    opacity: 1;
    transform: translateY(0);
}


/* ========================================= */
/* ホバー用 */
/* ========================================= */

@media (hover: hover) and (pointer: fine) {
    .wrapper a:hover img {
        opacity: 1;
    }

    .wrapper .btn:hover {}

}

@media (hover: none),
(pointer: coarse) {}