/* --- 1. 全体・共通設定 --- */
body { 
    font-family: 'Helvetica Neue', 'Hiragino Sans', 'Meiryo', sans-serif; 
    margin: 0; 
    padding: 0; 
    line-height: 1.8; 
    color: #333; 
    padding-top: 85px; 
    background-color: #fff;
}

/* --- 2. 固定ヘッダー --- */
header { 
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(5px);
    padding: 25px 40px; 
    display: flex; 
    justify-content: space-between; 
    align-items: center; 
    border-bottom: 1px solid #f0f0f0;
    position: fixed; 
    top: 0; 
    left: 0; 
    right: 0; 
    z-index: 1000;
}

.title-group { 
    display: flex; 
    align-items: flex-end; 
    gap: 20px; 
}

header h1 { 
    margin: 0; 
    font-size: 22px; 
    letter-spacing: 1px; 
    white-space: nowrap; 
}

.sub-info { 
    font-size: 10px; 
    color: #777; 
    line-height: 1.4; 
    letter-spacing: 0.05em; 
      position: relative;
        top: -5px; /* 現在の位置から5px分、上に表示させる */
}

/* --- 3. ナビゲーションメニュー --- */
.nav-menu {
    display: flex;
    list-style: none;
    padding: 0;
    margin: 0;
    margin-left: auto;
}

.nav-menu li {
    display: flex;
    align-items: center;
}

/* 項目間の縦線 */
.nav-menu li:not(:last-child)::after {
    content: ""; 
    width: 1px; 
    height: 14px; 
    background-color: #eee; 
    margin: 0 15px;
}

.nav-menu li a {
    text-decoration: none;
    color: #888; 
    font-size: 13px;
    font-weight: 500;
    transition: all 0.3s ease;
    position: relative;
    padding: 10px 0;
    letter-spacing: 0.05em;
}

/* ホバー時：文字色を濃く */
.nav-menu li a:hover,
.nav-menu li a.current {
    color: #000;
}

/* 下線のベースアニメーション */
.nav-menu li a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 0;
    height: 2px;
    background-color: #333;
    transition: all 0.3s ease;
    transform: translateX(-50%);
}

.nav-menu li a:hover::after,
.nav-menu li a.current::after {
    width: 100%;
}

.nav-menu li a.current {
    font-weight: 600;
}

/* --- 4. スマホ用メニューボタン --- */
.menu-toggle { 
    display: none; 
    flex-direction: column; 
    gap: 5px; 
    cursor: pointer; 
    background: none; 
    border: none; 
    padding: 10px; 
    margin-left: auto; 
}

.menu-toggle span { 
    width: 25px; 
    height: 2px; 
    background-color: #333; 
    transition: 0.3s; 
}

/* --- 5. 共通フッター --- */
footer { 
    background: #fafafa; 
    color: #888; 
    text-align: center; 
    padding: 30px 20px; 
    font-size: 11px; 
    border-top: 1px solid #f0f0f0;
    letter-spacing: 0.05em;
}

/* --- 6. レスポンシブ (タブレット・スマホ) --- */
@media (max-width: 768px) {
    header { 
        padding: 10px 20px; 
    }
    
    .sub-info { 
        display: none; 
    }
    
    .menu-toggle { 
        display: flex; 
    }
    
    .nav-menu { 
        display: none; 
        position: absolute; 
        top: 65px; 
        right: 0; 
        background: #fff; 
        flex-direction: column; 
        width: 100%; 
        max-width: 250px; 
        border: 1px solid #f0f0f0; 
        box-shadow: -5px 5px 10px rgba(0,0,0,0.05); 
        padding: 10px 0; 
        text-align: right; 
    }
    
    .nav-menu.active { 
        display: flex; 
    }
    
    .nav-menu li:not(:last-child)::after { 
        display: none; 
    }
    
    .nav-menu li a { 
        padding: 15px 25px; 
        display: block; 
    }

    .nav-menu li a::after {
        bottom: 5px;
    }
}