@charset "UTF-8";

/* --- 全体リセット --- */
* { 
    margin: 0; 
    padding: 0; 
    box-sizing: border-box; 
}

body { 
    width: 100%; 
    overflow-x: hidden; 
    font-family: 'Helvetica', 'Helvetica Neue', 'Noto Sans JP', sans-serif;
    color: #666666;
    font-size: clamp(14px, 1.6vw, 24px);
    font-kerning: none;
    font-feature-settings: "palt" 1;
    letter-spacing: 1px;
}

/* --- 見出しの基本スタイル --- */
h1 { color: #333333; margin: 1em 0 0.5em; font-weight: bold; font-size: clamp(28px, 4.4vw, 80px); }
h2 { color: #333333; margin: 1em 0 0.5em; font-weight: bold; font-size: clamp(20px, 3vw, 60px); }
h3 { color: #333333; margin: 1em 0 0.5em; font-weight: bold; font-size: clamp(18px, 2.4vw, 48px); }
h4 { color: #333333; margin: 1em 0 0.5em; font-weight: bold; font-size: clamp(16px, 2vw, 40px); }

.en-text { font-family: 'Helvetica', 'Helvetica Neue', sans-serif; font-weight: bold; font-style: oblique; }

/* --- 1. ヘッダー全体 --- */
.header {
    position: absolute; /* FVの上に重ねる */
    top: 0;
    left: 0;
    z-index: 100;       /* FVの画像より手前に表示 */
    background-color: transparent; /* 背景透過を活かすため */
}



/* --- 2. 左側ロゴエリア --- */
.header-left {
    background-color: rgb(24, 44, 117);
    width: clamp(200px, 20vw, 300px);
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.header-left img {
    height: clamp(18px, 1.5vw, 24px);
    width: auto;
    display: block;
}

/* --- 3. 右側エリア（メニュー＋検索窓） --- */
.header-right {
    display: flex;
    align-items: center;
    height: 60px;
    flex-grow: 1;
    background-color: rgba(25, 25, 25, 0.5);
    justify-content: flex-start;
}

/* メニュー全体の配置 */
.nav-menu {
    margin-right: auto;
    height: 100%;
}

.nav-menu ul {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
    height: 60px;
}

/* メニュー項目 */
.nav-menu li {
    display: flex;
    align-items: center;
    justify-content: center;
    border-right: 1px solid #fff;
    padding-left: clamp(10px, 1.5vw, 20px);
    padding-right: clamp(10px, 1.5vw, 20px);
    height: 100%;
    transition: background-color 0.3s ease;
}

.nav-menu li:last-child {
    border-right: none;
}

.nav-menu a {
    text-decoration: none;
    color: #fff;
    font-weight: bold;
    font-family: "Helvetica", sans-serif;
    font-size: clamp(14px, 1.2vw, 20px);
    font-style: italic;
    white-space: nowrap;
}

/* ホバー時の挙動 */
.nav-menu li:hover {
    background-color: #f6f427;
}

.nav-menu li:hover a {
    color: #182c75;
}

/* --- 4. 検索窓 --- */
.search-box {
    display: flex;
    align-items: center;
    border: 1px solid #fff;
    border-radius: 20px;
    padding: 2px 15px;
    height: 30px;
    width: clamp(120px, 15vw, 200px);
    flex-shrink: 0;
    margin-right: 20px;
}

.search-icon {
    width: 20px;
    height: 20px;
    margin-right: 10px;
    display: block;
}

.search-box input {
    background: transparent;
    border: none;
    color: #fff;
    width: 100%;
    outline: none;
}


/* --- 5. FV (左右分割・無限スクロール) --- */
.fv-wrapper { 
    display: flex; 
    width: 100%; 
    height: 100vh; 
    position: relative; 
    overflow: hidden; 
}

.fv-side { 
    flex: 1; /* 左右50%を強制 */
    position: relative; 
    overflow: hidden; 
}

.scroll-wrapper { 
    display: flex; 
    flex-direction: column; 
    width: 100%; 
    animation: infiniteScroll 20s linear infinite; 
}

/* 右エリアのみ速度を少し遅くして変化をつける */
.right-side .scroll-wrapper { 
    animation-duration: 25s; 
}

.scroll-wrapper img { 
    width: 100%; 
    height: 1834px; 
    object-fit: cover; 
    display: block; 
}

/* 中央の「IS MY LIFE」メッセージ */
.fv-center { 
    position: absolute; 
    top: 50%; 
    left: 50%; 
    transform: translate(-50%, -50%); 
    z-index: 10; 
    color: #fff; 
    font-family: "Helvetica", sans-serif; 
    font-size: 130px; 
    font-weight: bold; 
    text-align: center; 
    line-height: 1.1; 
    text-transform: uppercase;
    pointer-events: none; 
}

/* 縦の無限スクロールアニメーション */
@keyframes infiniteScroll {
    0% { transform: translateY(0); }
    100% { transform: translateY(-5502px); } /* 1834px * 3枚分 */
}