* { 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: rgb(1,1,1);
    line-height: 1.6;
    font-size: 16px;
    overflow-x: hidden;
    width: 100%;
    padding-top: 60px; 
}

a { text-decoration: none; color: inherit; transition: 0.3s; }
a:hover { opacity: 0.8; }
img { max-width: 100%; height: auto; display: block; }

/* --- Header  --- */
.header{background-color:#111;position:fixed;top:0;left:0;width:100%;height:60px;z-index:1000;box-shadow:0 2px 5px rgba(0,0,0,.5)}.header-inner{max-width:1320px;width:100%;height:100%;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:0 20px}.logo{font-family:Impact,Haettenschweiler,'Arial Narrow Bold',sans-serif;font-weight:600;font-size:1.4rem;color:#fff;white-space:nowrap}.header-actions{display:flex;align-items:center;height:100%;gap:15px}.instagram{height:36px;width:36px;display:block}.instagram img{height:100%;width:100%;object-fit:contain}.header-btn{background-color:transparent;color:#fff;font-size:1.8rem;padding:0;line-height:1;border:none;cursor:pointer;display:flex;align-items:center}.admission{width:70px;height:60px;text-align:center;background-color:#e80000;display:flex;flex-direction:column;align-items:center;justify-content:center;margin-right:-20px;color:#fff}.admission img{width:24px;height:24px;margin-bottom:4px}.admission p{margin:0;font-size:10px;line-height:1;font-weight:700}.menu{background:#000;position:fixed;top:0;right:-250px;width:250px;height:100%;z-index:2000;transition:.3s;padding-top:60px;box-shadow:-2px 0 5px rgba(0,0,0,.5);overflow-y:auto}.menu a{display:flex;align-items:center;padding:15px 20px;font-size:16px;color:#fff;border-bottom:1px solid #333;transition:background .3s}.menu a:hover{background:#0b43dc}.overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);z-index:1500;backdrop-filter:blur(2px)}
.blog-section {padding: 50px 20px 100px;
}

.container {max-width: 1100px; margin: 0 auto;
}

/* セクションタイトル */
.section-title {text-align: center; font-size: 1.5rem; font-weight: bold;
margin-bottom: 50px; letter-spacing: 0.1em; color: #fff;
}
.jp-sub {display: block; font-size: 1rem; font-weight: normal; color: #888; margin-top: 5px; letter-spacing: 0.05em;
}
.category-nav {display: flex; justify-content: center; gap: 10px;margin-bottom: 50px; padding-bottom: 10px; /* スクロールバーとの干渉防止 */
}

        /* ナビのボタンスタイル */
        .cat-btn {
            background: transparent;
            border: 1px solid #444;
            color: #aaa;
            padding: 10px 25px;
            border-radius: 50px;
            font-size: 0.9rem;
            cursor: pointer;
            transition: all 0.3s ease;
            white-space: nowrap; /* 文字折り返し禁止 */
            font-weight: bold;
            letter-spacing: 0.05em;
        }

        .cat-btn:hover {
            border-color: #fff;
            color: #fff;
        }

        /* 選択中の状態 */
        .cat-btn.active {
            background-color: #e63946; /* アクセントカラー */
            border-color: #e63946;
            color: #fff;
            box-shadow: 0 4px 15px rgba(230, 57, 70, 0.4);
        }

        /* スマホ対応（横スクロール） */
        @media (max-width: 768px) {
            .category-nav {
                justify-content: flex-start; /* 左寄せ */
                overflow-x: auto;            /* 横スクロール有効 */
                -webkit-overflow-scrolling: touch;
                padding-left: 5px;           /* 左端の余白 */
                scrollbar-width: none;       /* Firefox用スクロールバー非表示 */
            }
            .category-nav::-webkit-scrollbar {
                display: none;               /* Chrome/Safari用スクロールバー非表示 */
            }
        }

        /* ----------------------------------------------------
           記事グリッドレイアウト
           ---------------------------------------------------- */
        .blog-grid {
            display: grid;
            gap: 30px;
            /* カード幅が300px以上になるように自動調整 */
            grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
            margin-bottom: 80px;
            min-height: 400px; /* 記事切り替え時のチラつき防止 */
        }

        /* カード本体 */
        .blog-card {
            background: #1a1a1a;
            border-radius: 12px;
            overflow: hidden;
            transition: transform 0.3s ease, box-shadow 0.3s ease;
            display: block; /* 初期状態 */
            border: 1px solid #2a2a2a;
        }

        /* 非表示クラス（JSで付与） */
        .blog-card.hide {
            display: none;
        }

        /* ホバーアクション */
        .blog-card:hover {
            transform: translateY(-8px);
            box-shadow: 0 10px 20px rgba(0,0,0,0.5);
            border-color: #444;
        }

        .blog-link {
            text-decoration: none;
            color: inherit;
            display: flex;
            flex-direction: column;
            height: 100%;
        }

        /* 画像エリア */
        .blog-thumb {
            width: 100%;
            aspect-ratio: 16 / 9;
            position: relative;
            overflow: hidden;
        }

        .blog-thumb img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            transition: transform 0.6s ease;
        }

        .blog-card:hover .blog-thumb img {
            transform: scale(1.1);
        }

        /* カテゴリラベル */
        .cat-tag {
            position: absolute;
            top: 15px;
            left: 15px;
            background: rgba(0,0,0,0.8);
            color: #fff;
            font-size: 0.7rem;
            padding: 5px 12px;
            border-radius: 4px;
            font-weight: bold;
            backdrop-filter: blur(2px);
            border-left: 3px solid #e63946; /* 左に赤線アクセント */
        }

        /* テキストエリア */
        .blog-body {
            padding: 25px;
            display: flex;
            flex-direction: column;
            flex-grow: 1; /* 高さを揃える */
        }

        .blog-meta {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 12px;
            font-size: 0.8rem;
            color: #888;
        }

        .blog-title {
            font-size: 1.1rem;
            font-weight: bold;
            line-height: 1.6;
            margin: 0;
            color: #eee;
            /* 3行以上は省略リーダー */
            display: -webkit-box;
            -webkit-line-clamp: 3;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }

        /* ----------------------------------------------------
           ページネーション
           ---------------------------------------------------- */
        .pagination {
            display: flex;
            justify-content: center;
            align-items: center;
            gap: 8px;
        }

        .page-num {
            width: 45px;
            height: 45px;
            display: flex;
            justify-content: center;
            align-items: center;
            border: 1px solid #333;
            border-radius: 8px;
            color: #fff;
            text-decoration: none;
            transition: 0.3s;
            font-size: 0.9rem;
        }

        .page-num:hover:not(.disabled) {
            background: #333;
            border-color: #555;
        }

        .page-num.active {
            background: #e63946;
            border-color: #e63946;
            font-weight: bold;
        }

        .page-num.disabled {
            color: #444;
            border-color: #222;
            cursor: default;
        }
        .fade-in {
            animation: fadeInAnim 0.6s cubic-bezier(0.25, 1, 0.5, 1) forwards;
        }

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

/* --------------------
Footer Styles (Mobile First Optimized)
-------------------- */
.footer{background-color:#111;color:#ccc;padding:50px 0 20px;margin-top:60px;font-size:.9rem;border-top:3px solid #222}.footer-inner{max-width:1200px;margin:0 auto;padding:0 20px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:40px}.footer-col{flex:1;min-width:280px}.footer-title{color:#fff;font-size:1.1rem;font-weight:700;margin-bottom:20px;border-left:4px solid #e80000;padding-left:12px;letter-spacing:.05em}.footer-logo{font-family:Impact,sans-serif;color:#fff;font-size:1.8rem;margin-bottom:15px;line-height:1}.footer-desc{margin-bottom:20px;font-size:.85rem;color:#aaa}.footer-sns{display:flex;gap:15px}.footer-sns a{width:44px;height:44px;transition:opacity .3s}.footer-nav{list-style:none;padding:0;columns:2;column-gap:20px}.footer-nav li{margin-bottom:12px}.footer-nav a{color:#ccc;text-decoration:none;display:block;transition:color .3s;font-size:.9rem}.footer-nav a:hover{color:#e80000}.shop-details{margin-bottom:20px}.address{color:#fff;margin-bottom:15px;line-height:1.6}.hours-box{display:inline-block;background:#222;padding:8px 15px;border-radius:4px;margin-bottom:15px;border:1px solid #333}.hours-box .label{color:#e80000;font-weight:700;font-size:.8rem;margin-right:8px}.hours-box .time{color:#fff;font-weight:700}.tel-btn{display:flex;align-items:center;justify-content:center;background-color:#fff;color:#000;font-weight:700;text-decoration:none;padding:12px;border-radius:50px;margin-top:10px;max-width:260px;transition:background .3s;box-shadow:0 4px 6px rgba(0,0,0,.3)}.tel-btn:hover{background-color:#ddd;opacity:1}.tel-btn .icon{margin-right:10px;font-size:1.2rem}.map-container{width:100%;margin:20px 0;border-radius:8px;overflow:hidden;box-shadow:0 4px 10px rgba(0,0,0,.5);background:#222}.map-container iframe{vertical-align:bottom;filter:grayscale(20%) contrast(1.1)}.access-text{margin-top:15px;font-size:.85rem}.access-item{margin-bottom:12px;border-bottom:1px dashed #333;padding-bottom:12px}.access-item:last-child{border-bottom:none}.access-item strong{color:#fff;display:block;margin-bottom:4px}.access-item p{color:#aaa;margin:0;line-height:1.5}.footer-bottom{margin-top:40px;padding-top:20px;border-top:1px solid #222;text-align:center}.copyright{color:#555;font-size:.75rem;margin:0}@media(min-width:768px){.footer-col.info-col{flex:1.3}.footer-nav{columns:1}.tel-btn{display:inline-flex;width:auto;padding:10px 25px}}
