/* ==========================================================================
   全体リセット & 共通設定
   ========================================================================== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
    color: #333333;
    background-color: #ffffff;
    line-height: 1.6;
}

.lp-container {
    width: 100%;
    /* renewal-v1 STEP3: PC表示を適度に絞り、左右の余白を明確にする */
    max-width: 1080px;
    margin: 0 auto;
    padding: 12px 0 40px;
    margin-top: 130px;
}

/* ==========================================================================
    メインビジュアルセクション
   ========================================================================== */
.mv-section {
    text-align: center;
    margin-bottom: 60px;
    padding: 0;
}

.mv-header {
    margin-bottom: 0;
}

.mv-header .sub-title {
    font-size: 20.8px;
    color: #666666;
    letter-spacing: 0.05em;
}

.mv-header .main-title {
    font-size: 40px;
    font-weight: bold;
    color: #444444;
    letter-spacing: 0.02em;
}

/* renewal-v1 STEP4: PC/SPでファーストビュー画像を切り替える */
.hero-picture {
    display: block;
    width: 100%;
    max-width: 1000px;
    margin: 0 auto 36px;
}

.hero-banner {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 8px;
}

/* PC・SPバナー切り替え */
.hero-pc {
    display: block;
}

.hero-sp {
    display: none;
}

.hero-description {
    margin-top: 22px;
    font-size: 17.6px;
    font-weight: 500;
    color: #666666;
    line-height: 1.8;
}

/* ==========================================================================
    解説セクション
   ========================================================================== */
.about-section {
    text-align: center;
    margin-bottom: 50px;
    padding: 0 20px;
}

/* タイトル周りのレイアウト */
.section-title-wrap {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 15px;
    margin-bottom: 30px;
}

.plus-one-badge {
    width: 100px;
    height: auto;
}

.about-section h2 {
    font-size: 28.8px;
    position: relative;
    background: linear-gradient(transparent 70%, #fff585 70%);
    padding-bottom: 5px;
}

.about-section h2 span {
    font-size: 17.6px;
    font-weight: normal;
}

.about-lead {
    font-size: 19.2px;
    color: #444444;
    margin-bottom: 40px;
    font-weight: 500;
}

/* 中央の丸型仕組みイラスト */
.mechanism-diagram {
    max-width: 550px;
    margin: 0 auto 40px;
}

.diagram-img {
    width: 90%;
    height: auto;
}

.about-description {
    font-size: 17.6px;
    color: #444444;
    line-height: 1.8;
}

/* ==========================================================================
    特徴アイコンセクション
   ========================================================================== */
.features-section {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 30px;
    flex-wrap: wrap;
    margin-top: 40px;
    padding: 0 30px;
}

.feature-item {
    width: calc(25% - 23px);
    min-width: 100px;
    max-width: 130px;
}

.feature-item img {
    width: 100%;
    height: auto;
}

/* ナビゲーションコンテナ（4つの丸画像） */
.scene-display-container {
    width: 100%;
    max-width: 960px;
    margin: 40px auto 0;
    padding: 20px 10px;
}

.scene-display-list {
    display: flex;
    justify-content: center;
    gap: 20px;
    list-style: none;
    flex-wrap: wrap;
}

.scene-display-item {
    width: 140px;
    display: flex;
    justify-content: center;
}

.scene-image-wrapper {
    width: 100%;
    aspect-ratio: 1 / 1;
    border-radius: 50%;
    overflow: hidden;
}

.scene-image-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* ==========================================================================
   スライダーセクション
   ========================================================================== */
.slider-section {
    width: 100%;
    overflow: hidden;
    padding: 30px 0;
}

.product-slider {
    width: 100%;
    padding-bottom: 10px;
    position: relative;
}

.product-slider .swiper-slide {
    flex-shrink: 0;
}

.slide-content-wrap {
    text-align: center;
    width: 100%;
    padding: 0 20px;
}

.slide-title-box {
    min-height: 28.8px;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.slide-title {
    font-size: 19.2px;
    line-height: 1.5;
    color: #444444;
    margin: 0;
    font-weight: 500;
}

.slide-image-box {
    position: relative;
    width: 100%;
    max-width: 500px;
    margin: 0 auto;
}

.main-slide-img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 24px;
}

/* 右下の商品リンクバッジ（画像のみに最適化） */
.product-link-badge {
    position: absolute;
    right: 20px;
    bottom: 20px;
    width: 40%;
    max-width: 160px;
    background-color: rgba(255, 255, 255, 0.95);
    border-radius: 12px;
    padding: 10px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    transition: transform 0.2s ease, background-color 0.2s ease;
    display: block;
    z-index: 10;
}

.product-link-badge:hover {
    transform: scale(1.15);
    background-color: #ffffff;
}

.product-thumb {
    width: 100%;
    height: auto;
    object-fit: contain;
    display: block;
}

/* =========================
   Swipeボタン
========================= */
.swiper-button-next,
.swiper-button-prev {
    width: 46px;
    height: 46px;
    background: #ffffff;
    border: 1px solid #d8d8d8;
    border-radius: 50%;
    color: #113f96 !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    transition: all 0.25s ease;
}

/* 矢印*/
.swiper-button-next::after,
.swiper-button-prev::after {
    font-size: 16px;
    font-weight: bold;
}

/* hover */
.swiper-button-next:hover,
.swiper-button-prev:hover {
    background: #113f96;
    color: #fff !important;
    box-shadow: 0 4px 14px rgba(17, 63, 150, 0.25);
}

/* クリック感 */
.swiper-button-next:active,
.swiper-button-prev:active {
    transform: scale(0.96);
}

/* =========================
   Pagination
========================= */

.swiper-pagination {
    position: relative;
    margin-top: 24px;
    text-align: center;
}

.swiper-pagination-bullet {
    width: 10px;
    height: 10px;
    background: #d0d0d0;
    opacity: 1;
    transition: all .3s ease;
    margin: 0 6px !important;
}

.swiper-pagination-bullet-active {
    background: #113f96;
    transform: scale(1.25);
}

/* ==========================================
   増設機能について全体共通・ベーススタイル (Chime)
   ========================================== */
.chime-section {
    max-width: 1000px;
    margin: 0 auto;
    padding: 40px 20px;
    text-align: center;
}

.section-divider {
    border: none;
    border-top: 1px solid #e0e0e0;
    margin: 40px auto;
    max-width: 100%;
}

.chime-section img {
    max-width: 100%;
    height: auto;
    vertical-align: middle;
}

/* ==========================================
  増設機能セクション
   ========================================== */
.section-title-blue {
    background: linear-gradient(to right, #7fb2f0, #eef5fc);
    color: #fff;
    padding: 14px 20px;
    font-size: 20.8px;
    font-weight: bold;
    text-align: left;
    border-radius: 4px;
    margin: 0 0 30px 0;
}

.catchphrase {
    font-size: 19.2px;
    font-weight: bold;
    margin: 0 0 10px 0;
    letter-spacing: 0.05em;
}

.highlight-blue {
    color: #0056b3;
    font-size: 25.6px;
}

.highlight-green {
    color: #4caf50;
    font-size: 25.6px;
}

.sub-text {
    font-size: 17.6px;
    color: #555;
    margin: 0 0 35px 0;
}

.system-diagram-area {
    max-width: 800px;
    margin: 0 auto;
}

.system-diagram-area .diagram-img {
    width: 100%;
    display: block;
}

/* ==========================================
    単品ラインナップセクション
   ========================================== */
.section-title-img {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin: 0 auto 35px;
}

.section-title-img img {
    max-width: 40px;
    height: auto;
}

.section-title-img > span {
    font-size: 25.6px;
    font-weight: bold;
    color: #333;
    margin: 0;
}

.flash-display {
    max-width: 320px;
    margin: 0 auto 35px;
}

.flash-display img {
    width: 100%;
    display: block;
}

.flash-description {
    line-height: 1.7;
    color: #333;
    text-align: center;
    margin: 0 auto;
    padding: 0 15px;
}

.flash-description p {
    margin: 0 0 15px 0;
    font-size: 17.6px;
}

.underline-text {
    font-weight: bold;
    background: linear-gradient(transparent 60%, #fff176 60%);
    display: inline;
}

/* ==================================================================================
   単品ラインナップセクション
=====================================================================================*/

.product-container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 20px;
    font-family: sans-serif;
}

/*======================================================================================
 タブ
=====================================================================================*/
.tab-unit {
    display: flex;
    margin-bottom: 30px;
}

.tab-btn {
    flex: 1;
    padding: 14px 0;
    border: none;
    cursor: pointer;
    color: #fff;
    font-size: 18px;
    font-weight: bold;
    transition: .25s;
    position: relative;
}

.btn-transmitter {
    background: #7f8c8d;
}

.btn-receiver {
    background: #7f8c8d;
}

.tab-btn::after {
    content: "";
    position: absolute;
    bottom: -10px;
    left: 50%;
    transform: translateX(-50%);
    border-left: 10px solid transparent;
    border-right: 10px solid transparent;
    border-top: 10px solid transparent;
    display: none;
}

/* transmitter */

.tab-unit[data-active="transmitter"] .btn-transmitter {
    background: #43a047;
}

.tab-unit[data-active="transmitter"] .btn-transmitter::after {
    display: block;
    border-top-color: #43a047;
}

/* receiver */

.tab-unit[data-active="receiver"] .btn-receiver {
    background: #004ba0;
}

.tab-unit[data-active="receiver"] .btn-receiver::after {
    display: block;
    border-top-color: #004ba0;
}

/*===============================================================================
 Grid
=================================================================================*/

.card-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 22px;
}

/*==================================================================================
 Card
==================================================================================*/
.product-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid #e5e5e5;
    border-radius: 14px;
    overflow: hidden;
    transition: .3s;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .05);
}

.product-card[data-type="transmitter"]:hover {
    transform: translateY(-6px);
    border-color: #43a047;
    box-shadow: 0 12px 30px rgba(67, 160, 71, .25);
}

.product-card[data-type="receiver"]:hover {
    transform: translateY(-6px);
    border-color: #004ba0;
    box-shadow: 0 12px 30px rgba(0, 75, 160, .25);
}

/*============================================================================
 image
==============================================================================*/

.card-img {
    width: 100%;
    height: 190px;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 20px;
    border-bottom: 1px solid #eee;
}

.card-img img {
    max-width: 100%;
    max-height: 150px;
    object-fit: contain;
    transition: .35s;
}

.card-img:hover img {
    transform: scale(1.08);
}

/*======================================================================
 info
========================================================================*/

.card-info {
    padding: 18px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.product-name {
    margin: 0;
    font-size: 16px;
    line-height: 1.5;
    font-weight: bold;
    min-height: 46px;
}

.model-number {
    margin: 0;
    color: #777;
    font-size: 15px;
}

/*=================================================================================
 badge
==================================================================================*/

.badge {
    display: inline-block;
    width: auto;
    padding: 6px 12px;
    border-radius: 999px;
    font-size: 15px;
    font-weight: bold;
    margin: 2px 4px 2px 0;
}

/* transmitter */

.tab-unit[data-active="transmitter"]~.card-list .status-distance {
    background: #43a047;
    color: #fff;
}

.tab-unit[data-active="transmitter"]~.card-list .status-feature {
    background: #e7f6e8;
    color: #2e7d32;
}

/* receiver */

.tab-unit[data-active="receiver"]~.card-list .status-distance {
    background: #004ba0;
    color: #fff;
}

.tab-unit[data-active="receiver"]~.card-list .status-feature {
    background: #e8f2fd;
    color: #004ba0;
}

/*================================================================================
 Tab切换
==================================================================================*/

.tab-unit[data-active="transmitter"]~.card-list [data-type="receiver"] {
    display: none;
}

.tab-unit[data-active="receiver"]~.card-list [data-type="transmitter"] {
    display: none;
}


/*==================スマホ版のみ改行======================*/
.sp-br {
    display: none;
}

/* 横スクロール案内とドットはPCでは表示しない */
.card-scroll-guide,
.card-scroll-dots {
    display: none;
}

.lineup-purpose-lead {
    margin: 0 0 18px;
    text-align: center;
    color: #555;
    font-weight: bold;
}

/* 比較表はSPでは非表示。PCでは補助情報として折りたたんで表示 */
.lineup-comparison {
    display: none;
}

/* SP専用の商品スワイプ案内・ドット（PCでは表示しない） */
.lineup-category-scroll-guide,
.lineup-category-scroll-dots {
    display: none;
}

/* ==========================================
   V6 PC用：用途から選ぶ商品ラインナップ
   768pxはSP側に含め、PCは769px以上とする
========================================== */
@media screen and (min-width: 769px), print {
    .lineup-container {
        display: flex;
        flex-direction: column;
        max-width: 1200px;
        margin: 0 auto;
        padding: 0 24px;
    }

    .lineup-sub-title {
        font-size: 20px;
        font-weight: bold;
        color: #666;
        text-align: center;
        margin: 20px 0 8px;
    }

    .lineup-main-heading {
        font-size: 25px;
        font-weight: bold;
        text-align: center;
        margin-bottom: 10px;
    }

    .lineup-purpose-lead {
        margin-bottom: 24px;
        font-size: 16px;
    }

    /* SPと同じ10商品のHTMLをPCでも利用 */
    .lineup-sp-only {
        order: 1;
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        grid-template-rows: auto auto;
        gap: 14px;
        width: 100%;
        align-items: start;
    }

    /* section自体はレイアウト箱にせず、ボタンと商品群をグリッドに直接配置 */
    .lineup-sp-only .lineup-category {
        display: contents;
    }

    .lineup-sp-only .lineup-category-toggle {
        grid-row: 1;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        min-height: 72px;
        width: 100%;
        padding: 14px 16px;
        border: 0;
        border-radius: 10px;
        color: #fff;
        font: inherit;
        font-weight: bold;
        text-align: left;
        cursor: pointer;
        box-shadow: 0 3px 10px rgba(0, 0, 0, 0.12);
        transition: filter 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
    }

    .lineup-category-care .lineup-category-toggle {
        grid-column: 1;
        background: #e54d8c;
    }

    .lineup-category-entrance .lineup-category-toggle {
        grid-column: 2;
        background: #32b49e;
    }

    .lineup-category-security .lineup-category-toggle {
        grid-column: 3;
        background: #9b87d2;
    }

    .lineup-category-bath .lineup-category-toggle {
        grid-column: 4;
        background: #4fa8d3;
    }

    .lineup-sp-only .lineup-category-toggle:hover {
        filter: brightness(0.94);
        transform: translateY(-2px);
        box-shadow: 0 6px 15px rgba(0, 0, 0, 0.15);
    }

    .lineup-sp-only .lineup-category-toggle:focus-visible {
        outline: 3px solid rgba(0, 104, 183, 0.35);
        outline-offset: 3px;
    }

    .lineup-sp-only .lineup-category-title {
        flex: 1;
        font-size: 16px;
        line-height: 1.4;
    }

    .lineup-sp-only .lineup-category-meta {
        flex: 0 0 auto;
        white-space: nowrap;
        font-size: 13px;
    }

    .lineup-sp-only .lineup-category-symbol {
        display: inline-grid;
        place-items: center;
        width: 25px;
        height: 25px;
        margin-left: 4px;
        border: 1px solid rgba(255, 255, 255, 0.8);
        border-radius: 50%;
        font-size: 19px;
        line-height: 1;
    }

    /* 開いた用途の商品群は4ボタンの下全幅に表示 */
    .lineup-sp-only .lineup-category-products {
        grid-column: 1 / -1;
        grid-row: 2;
        display: grid;
        gap: 18px;
        width: 100%;
        padding: 24px;
        border-radius: 12px;
        background: #f7f8fa;
        box-shadow: inset 0 0 0 1px #e5e8eb;
    }

    .lineup-sp-only .lineup-category-products[hidden] {
        display: none !important;
    }

    #lineupCategoryCare {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    #lineupCategoryEntrance {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    #lineupCategorySecurity {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        max-width: 720px;
        justify-self: center;
    }

    #lineupCategoryBath {
        grid-template-columns: minmax(280px, 340px);
        justify-content: center;
    }

    /* PC用商品カード */
    .lineup-sp-only .lineup-sp-card {
        display: flex;
        flex-direction: column;
        width: 100%;
        min-width: 0;
        max-width: none;
        margin: 0;
        overflow: hidden;
        border: 1px solid #d8dde2;
        border-radius: 10px;
        background: #fff;
        box-shadow: 0 3px 9px rgba(0, 0, 0, 0.07);
    }

    .lineup-sp-only .lineup-product-info {
        /* 詳細情報の量に応じて商品上部が伸びるのを防ぐ */
        flex: 0 0 auto;
        padding: 16px 14px;
        text-align: center;
    }

    .lineup-sp-only .lineup-product-name {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 9px;
        min-height: 54px;
        margin: 0 0 8px;
        font-size: 15px;
        line-height: 1.45;
        font-weight: bold;
    }

    .lineup-sp-only .lineup-number-icon_1,
    .lineup-sp-only .lineup-number-icon_2,
    .lineup-sp-only .lineup-number-icon_3,
    .lineup-sp-only .lineup-number-icon_4 {
        flex: 0 0 34px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 34px;
        height: 34px;
        border-radius: 50%;
        color: #fff;
        font-size: 18px;
    }

    .lineup-sp-only .lineup-number-icon_1 {
        background: #e54d8c;
    }

    .lineup-sp-only .lineup-number-icon_2 {
        background: #61ceb3;
    }

    .lineup-sp-only .lineup-number-icon_3 {
        background: #b7a1ff;
    }

    .lineup-sp-only .lineup-number-icon_4 {
        background: #61a6ce;
    }

    .lineup-sp-only .lineup-product-img {
        display: block;
        width: auto;
        max-width: 100%;
        height: 170px;
        object-fit: contain;
        margin: 10px auto 14px;
    }

    .lineup-sp-only .lineup-model {
        padding: 8px 6px;
        background: #e9ecef;
        font-size: 13px;
        font-weight: bold;
    }

    .lineup-sp-only .lineup-features {
        /* 4行の説明文に合わせ、詳細ボタンの開始位置を統一 */
        height: 104px;
        min-height: 104px;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 12px 6px 8px;
        font-size: 14px;
        line-height: 1.45;
        font-weight: bold;
    }

    .lineup-sp-only .lineup-toggle-btn {
        width: 100%;
        padding: 12px;
        border: 0;
        border-top: 1px solid #e3e6e8;
        background: #dff3ff;
        color: #333;
        cursor: pointer;
        font-size: 14px;
        font-weight: bold;
        transition: background-color 0.2s ease;
    }

    .lineup-sp-only .lineup-toggle-btn:hover {
        background: #bfe7fb;
    }

    .lineup-sp-only .lineup-detail {
        max-height: 0;
        overflow: hidden;
        /* PCは展開後の座標を即時確定し、「送信機」位置へ正確に移動させる */
        transition: none;
    }

    .lineup-sp-only .lineup-detail.active {
        max-height: 2400px;
    }

    .lineup-sp-only .lineup-section-title {
        padding: 8px;
        color: #fff;
        text-align: center;
        font-size: 14px;
        font-weight: bold;
    }

    .lineup-sp-only .lineup-section-title.sender-bg {
        background: #43a047;
    }

    .lineup-sp-only .lineup-section-title.receiver-bg {
        background: #0d47a1;
    }

    .lineup-sp-only .lineup-section-title.gray-bg {
        background: #e6e6e6;
        color: #333;
    }

    .lineup-sp-only .lineup-row {
        display: flex;
        align-items: center;
        border-bottom: 1px solid #eee;
    }

    .lineup-sp-only .lineup-label {
        width: 42%;
        padding: 8px 5px;
        border-right: 1px solid #eee;
        box-sizing: border-box;
        font-size: 12px;
        font-weight: bold;
    }

    .lineup-sp-only .lineup-value {
        width: 58%;
        padding: 10px 8px;
        box-sizing: border-box;
        text-align: center;
        font-size: 12px;
    }

    .lineup-sp-only .lineup-value.text-left {
        text-align: left;
    }

    .lineup-sp-only .full-width {
        width: 100% !important;
    }

    .lineup-sp-only .lineup-icon-group {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 5px;
    }

    .lineup-sp-only .lineup-icon-wrap img {
        display: block;
        width: 45px;
        height: auto;
        margin: 0 auto;
    }

    .lineup-sp-only .lineup-product-notice {
        padding: 8px 10px 12px;
        font-size: 11px;
    }

    /* 従来のPC用一覧画像は「詳細比較」の中に格納 */
    .lineup-comparison {
        order: 2;
        display: block;
        width: 100%;
        margin: 28px auto 8px;
        border: 1px solid #cbd8e2;
        border-radius: 10px;
        background: #fff;
    }

    .lineup-comparison-summary {
        position: relative;
        padding: 15px 52px 15px 20px;
        color: #0d5f9d;
        list-style: none;
        text-align: center;
        cursor: pointer;
        font-size: 16px;
        font-weight: bold;
    }

    .lineup-comparison-summary::-webkit-details-marker {
        display: none;
    }

    .lineup-comparison-summary::after {
        content: '＋';
        position: absolute;
        top: 50%;
        right: 20px;
        transform: translateY(-50%);
        font-size: 22px;
        line-height: 1;
    }

    .lineup-comparison[open] .lineup-comparison-summary::after {
        content: '−';
    }

    .lineup-comparison-note {
        margin: 0;
        padding: 0 20px 14px;
        color: #666;
        text-align: center;
        font-size: 13px;
    }

    .lineup-pc-only {
        display: block !important;
        padding: 0 16px 18px;
    }

    .lineup-pc-img {
        display: block;
        width: 100%;
        height: auto;
    }
}

/* ==========================================================================
   ラインナップ表（PC用）ホットスポット
   ========================================================================== */

/* ラインナップ画像全体 */
.lineup-scroll-wrapper {
    position: relative;
    display: inline-block;
    width: 100%;
}

/* ラインナップ画像 */
.lineup-pc-img {
    display: block;
    width: 100%;
    height: auto;
}

/* ==========================================================================
   商品リンクエリア（1～10）
   ※ 上段の商品10個を均等配置
   ========================================================================== */
.hotspot-row {
    position: absolute;
    top: 4%;
    left: 7%;
    width: 93%;
    height: 16%;
    display: grid;
    grid-template-columns: repeat(10, 1fr);
}

/* 各商品のリンクエリア */
.hotspot-link {
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    text-decoration: none;
    transition: background-color 0.2s ease;
}

/* ==========================================================================
   位置確認
   ========================================================================== */

/* マウスホバー時 */
.hotspot-link:hover {
    background: rgba(0, 128, 255, 0.15);
}

/* ==========================================================================
   送信機設置場所例（ラインナップセクション）のスタイル
   ========================================================================== */

.house-section {
    max-width: 1200px;
    margin: 0 auto;
    background-color: #fff;
}

/* =========================
   PC画像
   ========================= */

.house-pc-only {
    display: block;
    width: 100%;
}

.house-pc-img {
    width: 100%;
    height: auto;
    display: block;
}

/* =========================
   House Map（PC）
   ========================= */

.house-map {
    position: relative;
    width: 100%;
}

/* =========================
   Link Area
   ========================= */

.house-link {
    position: absolute;
    display: block;
    z-index: 10;
    cursor: pointer;
    border-radius: 10px;
    overflow: hidden;
    transition: all .25s ease;
}

/* Hover Mask */
.house-link::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(88, 191, 66, .18);
    border: 2px solid #58bf42;
    border-radius: 4px;
    opacity: 0;
    transition: opacity .25s ease;
}

.house-link:hover::after {
    opacity: 1;
}

.house-link:hover {
    transform: scale(1.02);
}

/* =========================
   Position
   ========================= */

/* 08-1909 自家発電式 押しボタン送信機 */
.link-081909 {
    left: 1.5%;
    top: 14%;
    width: 19.5%;
    height: 15.5%;
}

/* 08-1908 防水押しボタン送信機 */
.link-081908 {
    left: 1.5%;
    top: 31.9%;
    width: 19.5%;
    height: 16%;
}

/* 08-1912 音センサー送信機 */
.link-081912 {
    left: 38.5%;
    top: 14%;
    width: 20.5%;
    height: 15.5%;
}

/* 08-1918 人感センサー送信機 */
.link-081918 {
    left: 38.5%;
    top: 32.5%;
    width: 20.5%;
    height: 15.5%;
}

/* 08-1910 扉センサー送信機 */
.link-081910 {
    left: 79.5%;
    top: 14%;
    width: 19.2%;
    height: 15.5%;
}

/* 08-1911 防水ケース付押しボタン送信機 */
.link-081911 {
    left: 79.5%;
    top: 32.5%;
    width: 19.2%;
    height: 15.5%;
}

/* =========================
   SP画像
   ========================= */

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

.house-sp-img {
    width: 100%;
    height: auto;
    display: block;
    margin-bottom: 15px;
}

/*送信機設置タイトル */
.house-sub-title {
    background: linear-gradient(to right, #7fb2f0, #eef5fc);
    color: #fff;
    padding: 14px 20px;
    font-size: 1.3rem;
    font-weight: bold;
    text-align: left;
    border-radius: 4px;
    margin: 0 0 30px 0;
}

/*受信機のご使用タイトル */
.receiver-sub-title {
    background: linear-gradient(to right, #7fb2f0, #eef5fc);
    color: #fff;
    padding: 14px 20px;
    font-size: 1.3rem;
    font-weight: bold;
    text-align: left;
    border-radius: 4px;
    margin: 0 0 30px 0;
}

/* ==========================================================================
   受信機ご使用イメージ
   ========================================================================== */

.receiver-section {
    width: 100%;
    max-width: 1000px;
    margin: 40px auto;
    padding: 0 15px;
    box-sizing: border-box;
}

/* Swiper（PCは2枚、SPは1枚） */
.receiver-slider {
    position: relative;
    width: 100%;
    overflow: hidden;
    padding-bottom: 48px;
    --swiper-theme-color: #0d47a1;
    --swiper-navigation-size: 34px;
}

.receiver-grid {
    display: flex;
}

.receiver-slider .receiver-card {
    position: relative;
    display: block;
    width: 100%;
    flex-shrink: 0;
    height: auto;
}

.receiver-slider .receiver-button-prev,
.receiver-slider .receiver-button-next {
    width: 42px;
    height: 42px;
    margin-top: -42px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.9);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.18);
}

.receiver-slider .receiver-button-prev {
    left: 10px;
}

.receiver-slider .receiver-button-next {
    right: 10px;
}

.receiver-slider .receiver-pagination {
    bottom: 8px;
}

/* カード画像 */
.receiver-card img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 12px;
    transition: transform 0.3s ease, opacity 0.3s ease;
    cursor: pointer;
}

/* hover時 */
.receiver-card img:hover {
    transform: scale(1.03);
    opacity: 0.9;
}

/* 商品別表示カード */
.receiver-card {
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
}

/* ボタンエリア */
.product-buttons {
    display: flex;
    gap: 10px;
    margin-top: 12px;
}

/* 商品別ボタン */
.product-buttons {
    display: flex;
    gap: 8px;
    justify-content: center;
}

.product-buttons a {
    display: inline-block;
    min-width: 210px;
    text-align: center;
    text-decoration: none;
    background: #113f96;
    color: #fff;
    padding: 8px 10px;
    border-radius: 8px;
    font-size: 15px;
    font-weight: bold;
    transition: 0.3s ease;
}

/* hover */
.product-buttons a:hover {
    background: #002b7a;
    transform: translateY(-2px);
}

/* =========================================
   ページTOPボタン
========================================= */

.back-to-top {
    position: fixed;
    right: 20px;
    bottom: 20px;
    width: 80px;
    height: 80px;
    border: none;
    border-radius: 50%;
    background: #143579;
    color: #fff;
    font-size: 20px;
    line-height: 1.4;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    transition: 0.2s;
    opacity: 0;
    visibility: hidden;
    z-index: 999;
}

/* 表示時 */
.back-to-top.show {
    opacity: 1.0;
    visibility: visible;
}

.back-to-top:hover {
    background: #1070ff;
    opacity: 1;
}

/* ===============================footer(TOPページに戻るボタン)========================================= */
/* フッター全体のコンテナ */
.site-footer {
    width: 100%;
    margin-top: 40px;
}

/* 画像とボタンを重ねるための基準になる枠 */
.footer-banner-container {
    position: relative;
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    line-height: 0;
}

/* フッター画像自体の設定（画面に合わせて自動縮小） */
.footer-bg-img {
    width: 100%;
    height: auto;
    display: block;
}

/* リンクボタン */
.ohm-top-link-btn {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, 150%);
    display: inline-block;
    padding: 20px 30px;
    border-radius: 25px;
    background-color: rgba(255, 255, 255, 0.55);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(10px);
    color: #143579;
    border: 2px solid rgba(255, 255, 255, 0.6);
    box-shadow: 0 4px 30px rgba(0, 0, 0, 0.05);
    text-decoration: none;
    font-size: 18px;
    font-weight: bold;
    white-space: nowrap;
    transition: all 0.8s ease;
}


/* マウスを乗せたときのエフェクト */
.ohm-top-link-btn:hover {
    background-color: #ffffff;
    opacity: 0.9;
    text-decoration: none;
}

/* ==========================================================================
   モバイル対応
   ========================================================================== */
@media screen and (max-width: 768px) {
    .lp-container {
        padding-top: 0;
    }

    .mv-section {
        padding: 0;
    }

    /* 以下は現在のスマホ用CSS */

    .mv-section {
        padding: 0;
    }

    .hero-pc {
        display: none;
    }

    .hero-sp {
        display: block;
    }

    .hero-picture {
        margin-bottom: 24px;
    }

    .hero-banner {
        border-radius: 0;
    }

    .chime-section {
        padding: 30px 15px;
    }

    .mv-header .main-title {
        font-size: 32px;
    }

    .hero-description {
        margin-top: 16px;
        padding: 0 10px;
        font-size: 16px;
        line-height: 1.7;
    }

    .plus-one-badge {
        width: 60px;
    }

    .about-section h2 {
        font-size: 24px;
    }

    .diagram-img {
        max-width: 500px;
    }

    .about-lead,
    .about-description {
        font-size: 16px;
        padding: 5px 10px;
        line-height: 1.7;
    }

    .scene-display-list {
        justify-content: center;
        gap: 30px 30px;
    }

    .scene-display-item {
        width: calc(50% - 15px);
        max-width: 130px;
    }

    .features-section {
        justify-content: center;
        gap: 30px 30px;
    }

    .feature-item {
        width: calc(50% - 15px);
        max-width: 120px;
    }

    /* 増設機能・光フラッシュ（スマホ調整版） */
    .section-title-blue {
        font-size: 17.6px;
        padding: 10px 15px;
    }

    .catchphrase {
        font-size: 20.8px;
        line-height: 1.4;
    }

    .highlight-blue,
    .highlight-green {
        font-size: 20.8px;
    }

    .sub-text {
        font-size: 17.6px;
        margin-bottom: 25px;
    }

    .section-title-img > span {
        font-size: 20.8px;
    }

    .section-title-img img {
        max-width: 30px;
    }

    .flash-description p {
        font-size: 15.2px;
    }

    /* 送信機・受信機カードをSPで横スワイプ表示 */
    .card-scroll-guide {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 8px;
        margin: -14px 2px 10px;
        color: #52616d;
        font-size: 13px;
        font-weight: bold;
        line-height: 1.4;
    }

    .card-scroll-arrow {
        display: inline-block;
        color: #0068b7;
        font-size: 24px;
        line-height: 1;
        animation: card-scroll-hint 1.25s ease-in-out infinite alternate;
    }

    .card-list {
        display: flex;
        gap: 14px;
        overflow-x: auto;
        overflow-y: hidden;
        padding: 4px 18vw 16px 2px;
        scroll-snap-type: x mandatory;
        scroll-padding-left: 2px;
        overscroll-behavior-inline: contain;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
        scrollbar-color: #b8c3cc transparent;
    }

    .card-list .product-card {
        flex: 0 0 min(82vw, 330px);
        scroll-snap-align: start;
        scroll-snap-stop: normal;
    }

    /* タッチ操作時にPC用hoverの浮き上がりを残さない */
    .product-card[data-type="transmitter"]:hover,
    .product-card[data-type="receiver"]:hover {
        transform: none;
    }

    .card-list::-webkit-scrollbar {
        height: 5px;
    }

    .card-list::-webkit-scrollbar-thumb {
        border-radius: 999px;
        background: #b8c3cc;
    }

    .card-list::-webkit-scrollbar-track {
        background: transparent;
    }

    .card-scroll-dots {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 10px;
        min-height: 24px;
        margin: 8px 0 24px;
    }

    .card-scroll-dot {
        width: 12px;
        height: 12px;
        padding: 0;
        border: 0;
        border-radius: 50%;
        background: #d2d5d8;
        cursor: pointer;
        transition: background-color .2s ease, transform .2s ease;
    }

    .card-scroll-dot.is-active {
        background: #0d47a1;
        transform: scale(1.18);
    }

    .card-scroll-dot:focus-visible {
        outline: 3px solid rgba(13, 71, 161, .28);
        outline-offset: 3px;
    }

    .card-img {
        height: 180px;
    }

    .product-name {
        min-height: auto;
    }

    /*==================スマホ用ラインナップ表スタイル（画面幅600px以下で自動切り替え）======================*/
    .lineup-container {
        max-width: 1200px;
        margin: 0 auto;
    }

    .lineup-sub-title {
        font-size: 20px;
        text-align: center;
        color: #666;
        margin-bottom: 5px;
    }

    .lineup-main-heading {
        font-size: 20px;
        font-weight: bold;
        text-align: center;
        margin-bottom: 20px;
    }

    img {
        max-width: 100%;
        height: auto;
        vertical-align: middle;
    }

    /* 表示の切り替え（スマホ時はPC画像を非表示） */
    .lineup-pc-only {
        display: none !important;
    }

    /* 用途別アコーディオン */
    .lineup-category {
        width: calc(100% - 24px);
        max-width: 450px;
        margin: 0 auto 14px;
        border-radius: 10px;
        overflow: hidden;
        background: #fff;
        box-shadow: 0 3px 10px rgba(0, 0, 0, 0.12);
    }

    .lineup-category-toggle {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        width: 100%;
        min-height: 62px;
        padding: 14px 16px;
        border: 0;
        color: #fff;
        font: inherit;
        font-weight: bold;
        text-align: left;
        cursor: pointer;
        transition: filter 0.2s ease, transform 0.2s ease;
    }

    .lineup-category-care .lineup-category-toggle {
        background: #e54d8c;
    }

    .lineup-category-entrance .lineup-category-toggle {
        background: #32b49e;
    }

    .lineup-category-security .lineup-category-toggle {
        background: #9b87d2;
    }

    .lineup-category-bath .lineup-category-toggle {
        background: #4fa8d3;
    }

    .lineup-category-title {
        flex: 1;
        font-size: 16px;
        line-height: 1.45;
    }

    .lineup-category-meta {
        flex: 0 0 auto;
        white-space: nowrap;
        font-size: 14px;
    }

    .lineup-category-symbol {
        display: inline-grid;
        place-items: center;
        width: 24px;
        height: 24px;
        margin-left: 4px;
        border: 1px solid rgba(255, 255, 255, 0.75);
        border-radius: 50%;
        font-size: 19px;
        line-height: 1;
    }

    .lineup-category-products {
        display: flex;
        align-items: flex-start;
        gap: 14px;
        overflow-x: auto;
        overflow-y: hidden;
        padding: 4px 15vw 10px 10px;
        background: #f7f8fa;
        scroll-snap-type: x mandatory;
        scroll-padding-left: 10px;
        overscroll-behavior-inline: contain;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .lineup-category-products[hidden] {
        display: none;
    }

    .lineup-category-products::-webkit-scrollbar {
        display: none;
    }

    .lineup-category .lineup-sp-card {
        flex: 0 0 min(78vw, 350px);
        width: auto;
        max-width: none;
        margin: 0;
        border-top: 1px solid #ccc;
        scroll-snap-align: start;
        scroll-snap-stop: normal;
    }

    .lineup-category.is-open>.lineup-category-scroll-guide {
        display: flex;
    }

    .lineup-category-scroll-guide {
        align-items: center;
        justify-content: flex-end;
        gap: 8px;
        margin: 10px 12px 6px;
        color: #52616d;
        font-size: 13px;
        font-weight: bold;
        line-height: 1.4;
    }

    .lineup-category-scroll-arrow {
        display: inline-block;
        color: #0068b7;
        font-size: 24px;
        line-height: 1;
        animation: card-scroll-hint 1.25s ease-in-out infinite alternate;
    }

    .lineup-category.is-open>.lineup-category-scroll-dots {
        display: flex;
    }

    .lineup-category-scroll-dots {
        align-items: center;
        justify-content: center;
        gap: 10px;
        min-height: 28px;
        padding: 3px 0 9px;
        background: #f7f8fa;
    }

    .lineup-category-scroll-dot {
        width: 11px;
        height: 11px;
        padding: 0;
        border: 0;
        border-radius: 50%;
        background: #d2d5d8;
        cursor: pointer;
        transition: background-color 0.2s ease, transform 0.2s ease;
    }

    .lineup-category-care .lineup-category-scroll-dot.is-active {
        background: #e54d8c;
    }

    .lineup-category-entrance .lineup-category-scroll-dot.is-active {
        background: #32b49e;
    }

    .lineup-category-security .lineup-category-scroll-dot.is-active {
        background: #9b87d2;
    }

    .lineup-category-scroll-dot.is-active {
        transform: scale(1.2);
    }

    .lineup-category-scroll-dot:focus-visible {
        outline: 3px solid rgba(13, 71, 161, 0.28);
        outline-offset: 3px;
    }

    .lineup-category.is-open {
        margin-bottom: 22px;
    }

    .lineup-category-toggle:active {
        filter: brightness(0.88);
    }

    .lineup-category-toggle:focus-visible {
        outline: 3px solid rgba(0, 104, 183, 0.35);
        outline-offset: -4px;
    }

    @media (hover: hover) {
        .lineup-category-toggle:hover {
            filter: brightness(0.92);
        }
    }

    .house-sp-only {
        display: block;
    }

    /* =========================
   House SP（PC用の横長画像を中央から左右へスワイプ）
   ========================= */

    .house-section .house-sub-title {
        margin-bottom: 10px;
    }

    .house-swipe-guide {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        margin: 0 0 8px;
        color: #4c6175;
        font-size: 12px;
        font-weight: 700;
        line-height: 1.4;
    }

    .house-swipe-guide span {
        color: #0d57a5;
        font-size: 16px;
    }

    .house-sp-scroll {
        width: 100%;
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x mandatory;
        overscroll-behavior-x: contain;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        touch-action: pan-x pan-y;
    }

    /* 送信機設置場所例：SP専用の左右操作ボタン */
    .house-sp-scroll-wrap {
        position: relative;
    }

    .house-scroll-arrow {
        position: absolute;
        top: 60%;
        z-index: 20;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 38px;
        height: 38px;
        padding: 0 0 4px;
        border: 1px solid #d7dfe8;
        border-radius: 50%;
        background: rgba(255, 255, 255, 0.94);
        color: #0d57a5;
        font-family: Arial, sans-serif;
        font-size: 32px;
        line-height: 1;
        cursor: pointer;
        transform: translateY(-50%);
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.16);
        -webkit-tap-highlight-color: transparent;
    }

    .house-scroll-prev {
        left: 8px;
    }

    .house-scroll-next {
        right: 8px;
    }

    .house-scroll-arrow:disabled {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        cursor: default;
    }

    .house-scroll-arrow:focus-visible {
        outline: 3px solid rgba(13, 87, 165, 0.35);
        outline-offset: 2px;
    }

    .house-sp-scroll::-webkit-scrollbar {
        display: none;
    }

    .house-sp-scroll:focus-visible {
        outline: 3px solid rgba(13, 87, 165, 0.3);
        outline-offset: 2px;
    }

    .house-sp-panorama {
        position: relative;
        display: grid;
        width: 300%;
        max-width: none;
    }

    .house-sp-panorama-img {
        grid-area: 1 / 1;
        display: block;
        width: 100%;
        height: auto;
        margin: 0;
    }

    .house-sp-snap-grid {
        grid-area: 1 / 1;
        display: flex;
        width: 100%;
        min-width: 0;
        pointer-events: none;
    }

    .house-sp-snap-panel {
        flex: 0 0 33.333333%;
        min-width: 0;
        scroll-snap-align: start;
        scroll-snap-stop: always;
    }

    .house-scroll-dots {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 10px;
        min-height: 30px;
        margin: 6px 0 16px;
    }

    .house-scroll-dot {
        width: 10px;
        height: 10px;
        padding: 0;
        border: 0;
        border-radius: 50%;
        background: #d2d5d8;
        cursor: pointer;
        transition: background-color 0.2s ease, transform 0.2s ease;
    }

    .house-scroll-dot.is-active {
        background: #0d57a5;
        transform: scale(1.25);
    }

    .house-scroll-dot:focus-visible {
        outline: 3px solid rgba(13, 87, 165, 0.3);
        outline-offset: 3px;
    }

    .house-sp-panorama .house-link {
        border-radius: 4px;
    }


    /* スマホ用カードデザイン */
    .lineup-sp-card {
        border: 1px solid #ccc;
        border-top: none;
        background: #fff;
        margin-bottom: 30px;
        max-width: 450px;
        margin-left: auto;
        margin-right: auto;
    }

    .lineup-product-info {
        text-align: center;
        padding: 15px;
        /*border-top: 0.5px solid #b1b1b1;*/
    }

    .lineup-product-name {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 10px;
        font-weight: bold;
        font-size: 16px;
    }

    .lineup-number-icon_1 {
        background: #e54d8c;
        color: #fff;
        border-radius: 50%;
        width: 35px;
        height: 35px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-size: 20px;
    }

    .lineup-number-icon_2 {
        background: #61ceb3;
        color: #fff;
        border-radius: 50%;
        width: 35px;
        height: 35px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-size: 20px;
    }

    .lineup-number-icon_3 {
        background: #b7a1ff;
        color: #fff;
        border-radius: 50%;
        width: 35px;
        height: 35px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-size: 20px;
    }

    .lineup-number-icon_4 {
        background: #61a6ce;
        color: #fff;
        border-radius: 50%;
        width: 35px;
        height: 35px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-size: 20px;
    }

    .lineup-product-img {
        margin: 15px 0;
        max-height: 200px;
    }

    .lineup-model {
        background-color: #e6e6e6;
        padding: 8px;
        font-weight: bold;
        font-size: 16px;
    }

    .lineup-features {
        padding: 15px;
        font-size: 16px;
        font-weight: bold;
    }

    /* 各見出し帯（送信機・受信機・付属品） */
    .lineup-section-title {
        color: #fff;
        text-align: center;
        padding: 8px;
        font-weight: bold;
        font-size: 16px;
    }

    .lineup-section-title.sender-bg {
        background-color: #43a047;
    }

    /* 送信機（緑） */
    .lineup-section-title.receiver-bg {
        background-color: #0d47a1;
    }

    /* 受信機（青） */
    .lineup-section-title.gray-bg {
        background-color: #e6e6e6;
        color: #333;
    }

    /* 付属品（灰） */

    /* 表（見出しと値のセット行） */
    .lineup-row {
        display: flex;
        border-bottom: 1px solid #eee;
        align-items: center;
    }

    .lineup-label {
        width: 40%;
        padding: 5px 5px;
        font-weight: bold;
        font-size: 15px;
        border-right: 1px solid #eee;
        box-sizing: border-box;
    }

    .lineup-value {
        width: 65%;
        padding: 15px;
        font-size: 15px;
        box-sizing: border-box;
        text-align: center;
    }

    /* 汎用・調整用クラス */
    .lineup-value.text-left {
        text-align: left;
    }

    .full-width {
        width: 100% !important;
    }

    /* アイコン画像まわりの配置 */
    .lineup-icon-group {
        display: flex;
        justify-content: center;
        gap: 8px;
        flex-wrap: wrap;
    }

    .lineup-icon-wrap {
        text-align: center;
        font-size: 10px;
        color: #666;
    }

    .lineup-icon-wrap img {
        width: 55px;
        height: auto;
        display: block;
        margin-bottom: 3px;
    }

    /* PC画像非表示 */
    .house-pc-only {
        display: none;
    }

    .receiver-card .product-buttons a {
        flex: 1;
        min-width: 0;
        font-size: 13px;
    }

    .receiver-slider {
        padding-bottom: 44px;
        --swiper-navigation-size: 26px;
    }

    .receiver-slider .receiver-button-prev,
    .receiver-slider .receiver-button-next {
        width: 34px;
        height: 34px;
        margin-top: -38px;
    }

    /* タイトル調整 */
    .house-sub-title,
    .receiver-sub-title {
        font-size: 16px;
        padding: 8px 24px;
    }

    /* =========================
   商品詳細 折りたたみ
========================= */

    .lineup-detail {
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.45s ease;
    }

    .lineup-detail.active {
        max-height: 2000px;
    }

    /* 展開ボタン */
    .lineup-toggle-btn {
        width: 100%;
        padding: 12px;
        border: none;
        border-top: 1px solid #eee;
        background: #d1f0ff;
        cursor: pointer;
        font-size: 16px;
        font-weight: bold;
        color: #333;
    }

    /* hover */
    .lineup-toggle-btn:hover {
        background: #d1f0ff;
    }

    /* ==========================================================================
  アイコン説明スマホ
   ========================================================================== */
    .icon-section {
        padding: 40px 15px;
    }

    .icon-sub-title {
        font-size: 22px;
        margin-bottom: 30px;
    }

    .icon-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 15px;
    }

    .icon-card img {
        max-width: 95px;
    }

    /* スマホ版改行 */
    .sp-br {
        display: inline;
    }

    /* 見出しの高さを2行分に統一し、各スライドの画像位置を揃える */
    .slide-title-box {
        min-height: 3.6rem;
    }
}

@keyframes card-scroll-hint {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(7px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .card-scroll-arrow {
        animation: none;
    }
}

/* ========================================
   Swiper：ダブルクリック時の青い選択を防止
======================================== */

.product-slider,
.product-slider * {
    -webkit-user-select: none;
    user-select: none;
}

.product-slider img {
    -webkit-user-drag: none;
}

.product-slider .swiper-button-next,
.product-slider .swiper-button-prev {
    -webkit-tap-highlight-color: transparent;
}

.product-slider ::selection {
    background: transparent;
}

/* 受信機のご使用イメージだけ矢印位置を調整 */
.receiver-slider .swiper-button-prev,
.receiver-slider .swiper-button-next {
    top: 30%;
}

/* SP：通信距離バッジの開始位置を統一 */
@media screen and (max-width: 767px) {
  .card-list {
    align-items: stretch;
  }

  .card-list .product-card {
    align-self: stretch;
    height: auto;
  }

  .card-list .card-info {
    display: flex;
    flex: 1;
    flex-direction: column;
  }

  /* 商品名は2行分の高さを確保 */
  .card-list .product-name {
    height: 48px;
    min-height: 48px;
  }

  /* 型番は1行分の高さを確保 */
  .card-list .model-number {
    height: 24px;
    min-height: 24px;
  }

  /* 自動余白を使用せず、全カード同じ位置から表示 */
  .card-list .status-distance {
    margin-top: 2px;
  }
}

/* ==================================================
   受信機のご使用イメージ：矢印の操作表示
================================================== */

/* 通常時 */
.receiver-slider .receiver-button-prev,
.receiver-slider .receiver-button-next {
  background: rgba(255, 255, 255, 0.95);
  color: #0d47a1;
  transition:
    background-color 0.2s ease,
    color 0.2s ease,
    transform 0.15s ease,
    box-shadow 0.2s ease;
  -webkit-tap-highlight-color: transparent;
}

/* ホバー・クリック・フォーカス時 */
.receiver-slider .receiver-button-prev:not(.swiper-button-disabled):hover,
.receiver-slider .receiver-button-next:not(.swiper-button-disabled):hover,
.receiver-slider .receiver-button-prev:not(.swiper-button-disabled):focus,
.receiver-slider .receiver-button-next:not(.swiper-button-disabled):focus,
.receiver-slider .receiver-button-prev:not(.swiper-button-disabled):active,
.receiver-slider .receiver-button-next:not(.swiper-button-disabled):active {
  background: #113f96;
  color: #fff !important;
  box-shadow: 0 4px 14px rgba(17, 63, 150, 0.3);
}

/* Swiperが生成する矢印にも色を継承 */
.receiver-slider .receiver-button-prev::after,
.receiver-slider .receiver-button-next::after {
  color: inherit;
}

/* 押した瞬間だけ少し縮小 */
.receiver-slider .receiver-button-prev:not(.swiper-button-disabled):active,
.receiver-slider .receiver-button-next:not(.swiper-button-disabled):active {
  transform: scale(0.96);
}

/* キーボード操作時のフォーカス表示 */
.receiver-slider .receiver-button-prev:focus-visible,
.receiver-slider .receiver-button-next:focus-visible {
  outline: 3px solid rgba(17, 63, 150, 0.3);
  outline-offset: 3px;
}

/* 画像や文字が青く選択される現象を防止 */
.receiver-slider,
.receiver-slider * {
  -webkit-user-select: none;
  user-select: none;
}

.receiver-slider img {
  -webkit-user-drag: none;
}

.receiver-slider ::selection {
  background: transparent;
}

/* ==========================================================================
   印刷対応：画面幅に関係なくPC版レイアウトを使用
   ========================================================================== */
@media print {
    @page {
        size: A4 portrait;
        margin: 12mm;
    }

    html,
    body {
        width: 100% !important;
        min-width: 0 !important;
        background: #fff !important;
    }

    /* video.cssの画面幅判定より優先し、印刷ではPC側だけを表示 */
    .pc {
        display: block !important;
    }

    .sp {
        display: none !important;
    }

    .lp-container {
        width: 100% !important;
        max-width: none !important;
        margin: 0 auto !important;
        padding-top: 0 !important;
    }

    /* 印刷開始時のスクロール位置に関係なくAOS対象を表示 */
    [data-aos],
    .aos-init,
    .aos-animate {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }

    /* マーカー背景の印刷時の分断を防ぎ、通常の太字として表示 */
    .underline-text {
        background: none !important;
    }

    .flash-description p {
        break-inside: avoid;
        page-break-inside: avoid;
    }

    /* 印刷物では操作専用UIを表示しない */
    .page-top,
    .swiper-button-prev,
    .swiper-button-next,
    .swiper-pagination,
    .card-scroll-guide,
    .card-scroll-dots,
    .lineup-category-scroll-guide,
    .lineup-category-scroll-dots {
        display: none !important;
    }

    img {
        max-width: 100% !important;
        height: auto;
    }

    /*
     * 光フラッシュ機能の見出しアイコン。
     * 上の汎用 img 指定により原寸まで拡大されないよう、印刷時も40pxに固定する。
     */
    .section-title-img img {
        width: 40px !important;
        max-width: 40px !important;
        height: auto !important;
        flex: 0 0 40px;
    }

    /* 光フラッシュ機能の製品画像はPC版と同じ最大幅で印刷する */
    .flash-display {
        width: 320px !important;
        max-width: 320px !important;
        margin-right: auto !important;
        margin-left: auto !important;
    }

    .flash-display img {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
    }

    /* 背景色・背景画像も印刷対象にする */
    * {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
}
