        /* 画像と吹き出しのレイアウト */
        .customer-speech-set {
            --image-width: 200px; /* 画像サイズ調整用 */
            display: flex;
            align-items: flex-start;
            gap: 2rem;
         margin: 0;
            padding: 2rem;
        }
        
        /* 画像エリア */
        .customer-image {
            flex-shrink: 0;
            width: var(--image-width);
            text-align: center;
        }
        
        .customer-image img {
            width: 100%;
            height: auto;
            max-width: 200px;
        }
        
        .customer-caption {
            margin-top: 1rem;
            font-size: 0.95rem;
            color: #666;
            line-height: 1.4;
        }
        
        .customer-caption strong {
            color: #e74c3c;
            font-size: 1.1rem;
            display: block;
            margin-bottom: 0.3rem;
        }
        
        /* 吹き出しエリア */
        .speech-bubble {
            flex: 1;
            position: relative;
            background: #fff3cd;
            border: 2px solid transparent;
            border-radius: 15px;
            padding: 1.5rem;
            margin-top: 1rem;
        }
        
        /* 吹き出しの矢印（左向き） */
        .speech-bubble::before {
            content: '';
            position: absolute;
            top: 20px;
            left: -12px;
            width: 0;
            height: 0;
            border-style: solid;
            border-width: 10px 12px 10px 0;
            border-color: transparent transparent transparent transparent;
        }
        
        .speech-bubble::after {
            content: '';
            position: absolute;
            top: 40px;
            left: -20px;
            width: 0;
            height: 0;
            border-style: solid;
            border-width: 16px 18px 16px 3px;
            border-color: transparent transparent transparent transparent;
        }
        
        .speech-bubble p {
            margin: 0 0 1rem 0;
            line-height: 1.6;
            font-size: 1rem;
            color: #333;
        }
        
        .speech-bubble p:last-child {
            margin-bottom: 0;
        }
        
        .speech-bubble a {
            color: #0056b3;
            text-decoration: none;
            font-weight: bold;
        }
        
        .speech-bubble a:hover {
            color: #003d82;
            text-decoration: underline;
        }
        
        /* 右向きバージョン */
        .customer-speech-set.right {
            flex-direction: row-reverse;
        }
        

/* .customer-speech-set.right .speech-bubble::before {
            left: auto;
            right: -12px;
            border-width: 10px 0 10px 12px;
            border-color: transparent transparent transparent #ffc107;
        }  */

        .customer-speech-set.right .speech-bubble::before {
            left: auto;
            right: -12px;
        }
        
/*  .customer-speech-set.right .speech-bubble::after {
            left: auto;
            right: -8px;
            border-width: 8px 0 8px 10px;
            border-color: transparent transparent transparent #fff3cd;
        }  */

.customer-speech-set.right .speech-bubble::after {
            left: auto;
            right: -8px;
        }
        
        /* 吹き出しの色バリエーション */
        .speech-bubble.help {
            background: #d4edda;
            border-color: #28a745;
        }
        
        .speech-bubble.help::after {
            border-color: transparent #d4edda transparent transparent;
        }
        
        .customer-speech-set.right .speech-bubble.help::after {
            border-color: transparent transparent transparent #d4edda;
        }
        
        .speech-bubble.info {
            background: #cce7ff;
            border-color: #007bff;
        }
        
        .speech-bubble.info::after {
            border-color: transparent #cce7ff transparent transparent;
        }
        
        .customer-speech-set.right .speech-bubble.info::after {
            border-color: transparent transparent transparent #cce7ff;
        }
        
        .speech-bubble.urgent {
            background: #f8d7da;
            border-color: #dc3545;
        }
        
        .speech-bubble.urgent::after {
            border-color: transparent #f8d7da transparent transparent;
        }
        
        .customer-speech-set.right .speech-bubble.urgent::after {
            border-color: transparent transparent transparent #f8d7da;
        }
        
        /* レスポンシブ対応 */
        @media (max-width: 768px) {
            .container {
                padding: 0 1em;
            }
            
            .customer-speech-set,
            .customer-speech-set.right {
                flex-direction: column;
                text-align: center;
                gap: 1.5rem;
                padding: 1.5rem;
            }
            
            .customer-image {
                width: 100%;
                max-width: 150px; /* スマホでは半分のサイズ */
                margin: 0 auto;
            }
            
            .speech-bubble {
                text-align: left;
                margin-top: 0;
            }
            
            /* スマホでは吹き出しの矢印を非表示 */
            .speech-bubble::before,
            .speech-bubble::after,
            .customer-speech-set.right .speech-bubble::before,
            .customer-speech-set.right .speech-bubble::after {
                display: none;
            }
        }
        
        /* デモ用のスタイル
        .demo-section {
            margin: 3rem 0;
            border-bottom: 1px solid #eee;
            padding-bottom: 2rem;
        }  */
        
        .demo-title {
            background: #2c3e50;
            color: white;
            padding: 1rem 2rem;
            margin: 2rem 0 1rem 0;
            border-radius: 8px;
            font-size: 1.2em;
            font-weight: bold;
        }
        
        .usage-guide {
            background: #e8f5e8;
            padding: 1.5rem;
            border-radius: 8px;
            margin: 2rem 0;
            border-left: 5px solid #27ae60;
        }
        
        .usage-guide h4 {
            color: #27ae60;
            margin-bottom: 1rem;
        }
        
        .code-example {
            background: #f8f9fa;
            border: 1px solid #dee2e6;
            border-radius: 8px;
            padding: 1rem;
            margin: 1rem 0;
            font-family: 'Courier New', monospace;
            font-size: 0.9em;
            overflow-x: auto;
        }