
        /* 画面には非表示だがスクリーンリーダーには読み上げる */
        .visually-hidden {
            position: absolute !important;
            width: 1px;
            height: 1px;
            padding: 0;
            margin: -1px;
            overflow: hidden;
            clip: rect(0 0 0 0);
            white-space: nowrap;
            border: 0;
        }
        /* 上部ナビゲーションの見やすさ改善 */
        .header {
            position: sticky;
            top: 0;
            z-index: 1000;
            background: rgba(255, 255, 255, 0.95);
            backdrop-filter: blur(10px);
            -webkit-backdrop-filter: blur(10px);
            box-shadow: 0 2px 20px rgba(0, 0, 0, 0.1);
            border-bottom: 1px solid rgba(0, 0, 0, 0.08);
            transition: all 0.3s ease;
        }
        
        .header-content {
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 12px 0;
            gap: 24px;
        }
        
        .nav {
            display: flex;
            justify-content: center;
        }
        
        .nav ul {
            display: flex;
            align-items: center;
            gap: 8px;
            margin: 0;
            padding: 0;
            list-style: none;
        }
        
        .nav li {
            position: relative;
        }
        
        .nav a {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            padding: 12px 16px;
            text-decoration: none;
            color: #333;
            font-weight: 600;
            font-size: 14px;
            border-radius: 8px;
            white-space: nowrap;
            transition: all 0.2s ease;
            background: transparent;
            position: relative;
            overflow: hidden;
        }
        
        .nav a::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: #d63a2f;
            opacity: 0;
            transition: opacity 0.2s ease;
            border-radius: 8px;
            z-index: -1;
        }
        
        .nav a:hover {
            color: white;
            transform: translateY(-2px);
            box-shadow: 0 4px 15px rgba(255, 77, 79, 0.4);
        }
        
        .nav a:hover::before {
            opacity: 1;
        }
        
        .nav a.active {
            background: #d63a2f;
            color: white;
            box-shadow: 0 4px 15px rgba(255, 77, 79, 0.3);
        }
        
        .cta-button {
            padding: 12px 24px;
            background: #d32f2f;
            color: white;
            text-decoration: none;
            border-radius: 25px;
            font-weight: 700;
            font-size: 14px;
            white-space: nowrap;
            transition: all 0.2s ease;
            box-shadow: 0 4px 15px rgba(255, 107, 107, 0.3);
        }
        
        .cta-button:hover {
            transform: translateY(-2px);
            box-shadow: 0 6px 20px rgba(255, 107, 107, 0.4);
        }
        
        /* レスポンシブ対応 */
        @media (max-width: 1200px) {
            .nav ul {
                gap: 4px;
            }
            .nav a {
                padding: 10px 12px;
                font-size: 13px;
            }
        }
        
        @media (max-width: 768px) {
            .nav {
                display: none !important;
            }
            
            .nav ul {
                display: none !important;
            }
            
            .nav a {
                display: none !important;
            }
            
            /* モバイルでロゴのホバー効果を無効化 */
            .logo:hover {
                background: transparent !important;
                transform: translate(-50%, -50%) !important;
            }
            
        }
        
        @media (max-width: 480px) {
            .nav {
                display: none !important;
            }
            
            .nav ul {
                display: none !important;
            }
            
            .nav a {
                display: none !important;
            }
            
            /* ヘッダーの高さを調整 */
            .header-content {
                padding: 10px 0;
                min-height: 48px;
            }
            
            /* 480px以下でもロゴのホバー効果を完全無効化 */
            .logo:hover {
                background: transparent !important;
                transform: translate(-50%, -50%) !important;
            }
            
            /* モバイルでのロゴ調整 */
            .logo a {
                display: flex !important;
                align-items: center !important;
            }
        }
        
        /* 大型タブレット向け調整 */
        @media (max-width: 768px) and (min-width: 601px) {
            .header-content {
                padding: 10px 0;
                min-height: 50px;
            }
            
            .logo a {
                display: flex;
                align-items: center;
            }
            
        }
        
        /* ロゴコンテナ */
        .logo a {
            display: flex;
            align-items: center;
            text-decoration: none;
        }
        
        /* サービスエリア表示 */
        .service-area {
            font-size: 0.9rem;
            color: #999;
            margin-top: 8px;
        }
        
        /* ===== Core Web Vitals 最適化 ===== */
        
        /* CLS（Cumulative Layout Shift）対策 */
        img {
            height: auto;
            max-width: 100%;
        }
        
        /* 画像のアスペクト比固定でレイアウトシフト防止 */
        .service-image img,
        .portfolio-image img {
            aspect-ratio: 16 / 9;
            object-fit: cover;
            width: 100%;
            height: auto;
        }
        
        /* LCP（Largest Contentful Paint）改善 */
        .hero {
            contain: layout style paint;
        }
        
        .hero-title,
        .hero-subtitle {
            contain: layout style;
        }
        
        /* FID（First Input Delay）改善 */
        .header {
            will-change: transform;
            transform: translateZ(0);
        }
        
        .btn-primary,
        .btn-secondary,
        .cta-button {
            will-change: transform;
            transform: translateZ(0);
        }
        
        /* レイアウトシフト防止 */
        .announcement-list {
            min-height: 100px;
        }
        
        .services-grid,
        .problems-grid {
            contain: layout;
        }
        
        /* フォント表示最適化 */
        * {
            font-display: swap;
        }
    