        /* --- 基本設定 (Reset & Base) --- */
        * {
            box-sizing: border-box;
            margin: 0;
            padding: 0;
        }

        body {
            font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
            background-color: #fff;
            color: #333;
            line-height: 1.6;
            -webkit-font-smoothing: antialiased;
        }

        a {
            text-decoration: none;
            color: inherit;
            transition: opacity 0.3s;
        }

        a:hover {
            opacity: 0.8;
        }

        img {
            max-width: 100%;
            height: auto;
            display: block;
        }

        /* --- レイアウトコンテナ --- */
        /* 1カラム構成のため、幅を少し狭めて読みやすくする */
        .main-container {
            width: 100%;
            max-width: 800px; /* 1カラム用に少し狭く */
            margin: 0 auto;
            background-color: #fff;
            min-height: 100vh;
            position: relative;
        }

        /* --- ヘッダー --- */
        header {
            padding: 16px;
            text-align: center;
            background: #fff;
            position: sticky;
            top: 0;
            z-index: 100;
            border-bottom: 1px solid #f5f5f5;
        }

        .logo {
            font-size: 18px;
            font-weight: 700;
            letter-spacing: 0.15em;
            color: #222;
        }

        /* --- パンくずリスト --- */
        .breadcrumb {
            padding: 20px;
            font-size: 12px;
            color: #888;
        }
        .breadcrumb span { margin: 0 8px; }

        /* --- 商品詳細エリア（1カラム固定） --- */
        .product-detail-wrapper {
            display: block; /* グリッドをやめてブロック表示（縦積み） */
            padding: 0 20px 60px;
        }

        /* 画像ギャラリー */
        .product-gallery {
            margin-bottom: 40px;
        }

        .main-image {
            width: 100%;
            /* 修正点: 縦横比を1:1に変更 */
            aspect-ratio: 1/1;
            object-fit: cover;
            border-radius: 2px;
            margin-bottom: 10px;
            background-color: #f9f9f9;
        }

        /* サムネイル（合計3枚想定） */
        .thumb-list {
            display: grid;
            grid-template-columns: repeat(3, 1fr); /* 3列 */
            gap: 10px;
        }

        .thumb-item img {
            width: 100%;
            aspect-ratio: 1/1;
            object-fit: cover;
            cursor: pointer;
            opacity: 0.6;
            transition: opacity 0.3s;
            border-radius: 2px;
        }

        .thumb-item img:hover,
        .thumb-item img.active {
            opacity: 1;
            border: 1px solid #333;
        }

        /* 商品情報 */
        .product-info {
            text-align: left;
        }

        .product-category {
            font-size: 11px;
            color: #999;
            letter-spacing: 0.1em;
            margin-bottom: 10px;
            display: block;
            text-transform: uppercase;
        }

        .product-title {
            font-size: 24px;
            font-weight: 500;
            line-height: 1.4;
            margin-bottom: 15px;
            letter-spacing: 0.05em;
        }

        .product-price {
            font-size: 22px;
            font-weight: bold;
            margin-bottom: 24px;
            font-family: "Helvetica Neue", sans-serif;
            border-bottom: 1px solid #eee;
            padding-bottom: 20px;
        }

        .product-lead {
            font-size: 15px;
            color: #555;
            line-height: 1.8;
            margin-bottom: 30px;
        }

        /* ボタン周り */
        .action-area {
            margin-top: 30px;
        }

        /* メイン購入ボタン（楽天） */
        .btn-rakuten-buy {
            display: flex;
            align-items: center;
            justify-content: center;
            width: 100%;
            background: #BF0000; /* 楽天カラー風 */
            color: #fff;
            padding: 18px;
            font-weight: bold;
            font-size: 18px;
            border-radius: 4px;
            margin-bottom: 20px;
            box-shadow: 0 4px 10px rgba(191, 0, 0, 0.2);
            transition: opacity 0.3s, transform 0.1s;
        }
        .btn-rakuten-buy:hover {
            opacity: 0.9;
        }
        .btn-rakuten-buy:active {
            transform: translateY(2px);
        }

        /* 検索ボタン群 */
        .search-buttons {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 10px;
        }

        .btn-search {
            display: block;
            text-align: center;
            padding: 12px;
            font-size: 13px;
            font-weight: bold;
            border-radius: 4px;
            border: 1px solid #ddd;
            color: #555;
            background: #fff;
            transition: background 0.3s;
        }
        .btn-search.amazon {
            color: #333;
            border-color: #333;
        }
        .btn-search.rakuten {
            color: #BF0000;
            border-color: #BF0000;
        }
        .btn-search:hover {
            background: #f5f5f5;
        }

        /* --- ストーリーセクション --- */
        .story-section {
            padding: 60px 20px;
            background-color: #fafafa;
            border-top: 1px solid #eee;
        }
        .story-block {
            margin-bottom: 60px;
        }
        .story-block:last-child { margin-bottom: 0; }
        .story-title {
            font-size: 18px;
            font-weight: bold;
            text-align: center;
            margin-bottom: 30px;
            letter-spacing: 0.05em;
        }
        .story-image {
            width: 100%;
            border-radius: 2px;
            margin-bottom: 24px;
        }
        .story-text {
            font-size: 15px;
            line-height: 2.0;
            color: #444;
            text-align: justify;
        }
        .highlight-text {
            font-weight: bold;
            background: linear-gradient(transparent 70%, #ffeeba 70%);
        }

        /* --- スペック表 --- */
        .spec-section {
            padding: 60px 20px;
            border-top: 1px solid #eee;
        }
        .spec-table {
            width: 100%;
            border-collapse: collapse;
            font-size: 13px;
        }
        .spec-table th, .spec-table td {
            padding: 15px;
            border-bottom: 1px solid #eee;
            text-align: left;
        }
        .spec-table th {
            width: 30%;
            color: #888;
            font-weight: normal;
        }

        /* --- 関連商品 --- */
        .related-section {
            padding: 40px 20px 100px;
            background: #fff;
        }
        .related-title {
            font-size: 18px;
            text-align: center;
            margin-bottom: 40px;
            letter-spacing: 0.05em;
        }
        .product-grid {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 30px 15px;
        }
        @media screen and (min-width: 600px) {
            .product-grid {
                grid-template-columns: repeat(4, 1fr); /* PCでも4つ並び */
            }
        }

        /* 商品カード（初期状態は非表示、JSで表示制御） */
        .product-card {
            display: none; /* デフォルト非表示 */
            text-decoration: none;
        }
        /* 表示用クラス */
        .product-card.is-visible {
            display: block;
            animation: fadeIn 0.5s ease;
        }

        @keyframes fadeIn {
            from { opacity: 0; transform: translateY(10px); }
            to { opacity: 1; transform: translateY(0); }
        }

        .product-thumb {
            width: 100%;
            aspect-ratio: 1/1;
            object-fit: cover;
            margin-bottom: 10px;
            background: #f5f5f5;
        }
        .product-name {
            font-size: 13px;
            color: #333;
            line-height: 1.5;
            margin-bottom: 6px;
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }
        .product-price {
            font-size: 14px;
            font-weight: bold;
            border: none; /* 上書き */
            margin: 0;
            padding: 0;
        }

        /* フッター */
        footer {
            background-color: #f9f9f9;
            color: #555;
            text-align: center;
            padding: 60px 20px;
            font-size: 12px;
        }
        .footer-nav {
            margin-bottom: 30px;
            display: flex;
            justify-content: center;
            gap: 30px;
        }
