@charset "UTF-8";

/* ★★★ これがないので追加してください！ ★★★ */
html, body {
    width: 100%;
    overflow-x: hidden;
}

/* ★ここを追加：横へのはみ出しを強制的に禁止する */
html, body {
    width: 100%;
    overflow-x: hidden; /* 横スクロールを禁止 */
}

/* ヘッダーを画像の上に重ねる */
header {
    position: absolute; /* 浮かせる */
    top: 0;
    left: 0;
    width: 100%;
    z-index: 10;
    background: transparent; /* 背景を透明に */
}

.header-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px 4%; /* 左右に少し余裕を持たせる */
}

/* メインビジュアルの設定 */
/* 親要素の調整 */
.main-visual {
    position: relative;
    width: 100%;
    height: 100vh;
    background: linear-gradient(to bottom, 
        transparent 50%, 
        rgba(0, 0, 0, 0.8) 90%, 
        rgba(0, 0, 0, 1) 100%
    ), 
    url('images/earth.jpg') no-repeat center center;
    background-size: cover;
    
    /* 上下中央揃え（align-items: center）をやめて、上端合わせにする */
    display: flex;
    align-items: flex-start; 
}

.main-visual::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 30vh; /* 下から30%の範囲を完全にカバー */
    background: linear-gradient(to bottom, transparent, #000);
    z-index: 1;
}

/* テキストのスタイリング */
/* テキストの位置調整 */
.main-text {
    /* padding-top の数値で、上からどのくらいの位置に置くか決める */
    /* 数値を小さくすればするほど、より上に配置されます */
    padding-top: 20vh; 
    padding-left: 8%;
    
    color: #fff;
    font-family: 'Cormorant Garamond', serif;
    font-size: clamp(2rem, 3.5vw, 4rem);
    line-height: 1.2;
    z-index: 2;
}

.main-text p {
    margin: 0;
}

.logo {
    /* 他の要素（ナビなど）を動かさず、ロゴの「表示位置」だけをずらす */
    /* 第1引数：左右（マイナスで左へ）、第2引数：上下（プラスで下へ） */
    transform: translate(-15px, 30px);

    /* 重なり順を確実に上にする */
    position: relative;
    z-index: 11;
}

/* ロゴ部分の横並び設定 */
.logo a {
    display: flex;
    align-items: center;
    text-decoration: none;
    color: #fff;
}

.logo img {
    height: 70px;    /* ロゴの高さ（適宜調整） */
    width: auto;     /* 比率を維持 */
    margin-right: -15px;
    display: block;
}

.logo span {
    font-size: 1.5rem;
    font-weight: bold;
    letter-spacing: 0.05em;
}

nav {
    /* 1つ目の数値が左右（0は動かさない）、2つ目が上下（プラスで下へ） */
    transform: translate(0, 15px);
    
    /* もし右端に寄りすぎているなら、第1引数をマイナスにすると左に寄ります */
    /* transform: translate(-10px, 15px); */
}

nav ul {
    display: flex;
    list-style: none;
    margin-right: 0;   /* 右端にピタッと寄せる */
}

nav ul li {
    margin-left: 40px; /* 項目間の距離を広げると、より右側に寄っている感が出ます */
}

nav ul li a {
    text-decoration: none;
    color: #fff;
    font-size: 1rem;
}

.message-section {
    background-color: #000;
    /* 1つ目の数値（上）を少し詰め、3つ目（下）を調整 */
    padding: 40px 8% 60px; 
    text-align: center;
    /* 枠線を明示的に打ち消す */
    border: none;
    outline: none;
}

.message-content {
    color: #fff;
    /* サイト全体の日本語を Noto Serif JP に統一 */
    font-family: 'Noto Serif JP', serif; 
}

.message-content .main {
    font-family: 'Noto Serif JP', serif;
    font-style: none;
    font-size: 2rem;
    letter-spacing: 0.15em;
    margin-bottom: 30px; /* 英語と日本語の間の距離 */
    opacity: 0.9;
    
    /* ★ここ：英語フレーズが複数行になった時の行間 */
    line-height: 1.8; 
}

.message-content .jp {
    font-size: 1.1rem;
    letter-spacing: 0.4em;
    opacity: 0.6;
    
    /* ★ここ：日本語の行間を広めにとって空気感を作る */
    line-height: 2.2; 
}

.post-section {
    background-color: #000;
    /* もし以前の残骸で border-top があれば削除、なければこれでOK */
    border-top: none; 
    padding: 80px 0;
    /* セクション同士が重なるように少しだけマイナスマージンを入れると隙間が消えます */
    margin-top: -1px; 
}

/* 記事セクション内のタイトル */
.section-title {
    color: #fff;
    text-align: center; /* 中央寄せに変更 */
    padding-left: 0;    /* 左余白をリセット */
    margin-bottom: 50px;
    
    font-family: 'Noto Serif JP', serif;
    font-size: 1.6rem;
    font-weight: 500;
    letter-spacing: 0.3em;
    opacity: 0.9;
}

/* 外側の箱：スクロールの設定だけを行う */
.post-container {
    width: 100%;
    overflow-x: auto;
    background-color: #000;
    border: none;
}

/* ★内側の箱：ここで余白と並び順を制御する */
.post-inner {
    display: inline-flex; /* 中身の幅に合わせて伸びるようにする */
    gap: 30px;
    /* 左右に 8vw（8%）の余白を強制的に作る */
    padding: 0 8vw 40px 8vw;
    align-items: center;
}

/* スクロールバー非表示 */
.post-container::-webkit-scrollbar {
    display: none;
}

/* カード自体の設定はそのまま（marginなどは不要） */
.post-card {
    flex: 0 0 300px;
    aspect-ratio: 1 / 1;
    background-color: #1a1a1a;
    border: 1px solid #333;
    display: flex;
    align-items: flex-end;
    padding: 20px;
}

/* 矢羽根（右端）の余白も同様に調整 */
.next-arrow {
    margin-right: 8vw; /* 右側も8%空けるとバランスが良いです */
}

/* 3. 矢羽根（最後）の右側にも余白が欲しい場合は、最後の子要素に指定 */
.next-arrow {
    margin-right: 8%; /* 最後に余白を追加 */
    flex: 0 0 100px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    color: #fff;
    scroll-snap-align: center;
}

/* スクロールバー非表示 */
.post-container::-webkit-scrollbar {
    display: none;
}

.post-card {
    flex: 0 0 300px;
    aspect-ratio: 1 / 1;
    background-color: #1a1a1a;
    border: 1px solid #333;
    display: flex;
    align-items: flex-end;
    padding: 20px;
    scroll-snap-align: start;
}

/* 矢羽根（次へ）のデザイン */
.next-arrow {
    flex: 0 0 100px; /* 矢印エリアの幅 */
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    color: #fff;
    scroll-snap-align: center;
}

/* 矢羽根マーク（CSSで作成） */
.next-arrow::after {
    content: "";
    width: 20px;
    height: 20px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    transform: rotate(45deg); /* 45度回転させて矢印にする */
    margin-top: 10px;
}

.next-arrow span {
    font-family: 'Philosopher', sans-serif;
    font-size: 0.8rem;
    letter-spacing: 0.2em;
}

footer {
    background-color: #000;
    padding: 100px 0; /* 上下の余白を広めにとってゆったりさせる */
    width: 100%;
}

.footer-container {
    display: flex;
    justify-content: center; /* 全体を中央に寄せる */
    align-items: center;
    gap: 130px; /* ロゴ、SNS、ボタンの間の距離 */
}

/* ロゴのサイズ */
.footer-logo img {
    height: 50px;
    width: auto;
}

/* SNSアイコンエリア */
/* SNSエリア全体の並び */
.footer-sns {
    display: flex;
    gap: 110px; 
    align-items: center; /* これで上下中央が揃います */
}

/* Xのアイコンサイズ */
.footer-x img {
    height: 50px; /* お好みのサイズに微調整 */
    width: auto;
}

/* Instagramのアイコンサイズ */
.footer-insta img {
    height: 40px; /* Xとの見た目のバランスを見て調整 */
    width: auto;
}

/* ホバー時の動き（共通） */
.footer-sns a img {
    transition: opacity 0.3s, transform 0.3s;
}

.footer-sns a:hover img {
    opacity: 0.7;
    transform: scale(1.1); /* 少し大きくして反応を出す */
}

/* Astro Hit ボタン */
.btn-astrohit {
    display: inline-block;
    padding: 20px 60px;
    background-color: #8a8a8a; /* スクショに近いグレー */
    color: #fff;
    text-decoration: none;
    font-family: 'Philosopher', sans-serif;
    font-style: italic; /* 斜体 */
    font-size: 1.3rem;
    letter-spacing: 0.05em;
}

/* --- 部活紹介ページ専用 --- */

.about-page {
    background-color: #000;
    padding-top: 150px; /* ヘッダーとの被り防止 */
}

.catchphrase {
    text-align: center;
    margin: 60px 0 100px;
}

.catchphrase h3 {
    display: inline-block;
    font-size: 2rem;
    font-family: 'Noto Serif JP', serif;
    border-bottom: 4px solid;
    padding-bottom: 10px;
}

/* ジグザグレイアウトの基本設定 */
/* 1. セクション全体の隙間対策 */
/* --- 活動紹介アイテム（ここを微調整） --- */
.activity-section {
    background-color: #000;
    /* セクション自体に下の余白を少しだけマイナスで入れて、フッターと重ねる */
    margin-bottom: -1px;
    
    /* ★ここ：150px だったのを 250px や 300px に広げます */
    /* 背景が黒なので、白地が出ることなく画像とフッターの距離が離れます */
    padding-bottom: 150px; 
}

.activity-item {
    display: flex;
    align-items: center;
    width: 100%;
    margin-bottom: 150px;

    /* ★追加：アニメーションの初期状態 */
    opacity: 0;
    transform: translateY(50px);
    transition: opacity 1.2s ease-out, transform 1.2s ease-out;
}

/* ★追加：JavaScriptでクラスがついた時の表示状態 */
.activity-item.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* --- 以下、現在の設定をそのまま維持 --- */

.activity-image {
    flex: 0 0 40%;
    height: 45vh;
    background-color: #000;
    display: flex;
    justify-content: center;
    align-items: center;
}

/* 偶数番目の入れ替え（row-reverse）もしっかり維持されます */
.activity-item:nth-child(even) {
    flex-direction: row-reverse;
}

/* 画像の設定（全体表示 contain を維持） */
.activity-image img {
    width: 100%;
    height: 100%;
    object-fit: contain; 
    display: block;
    vertical-align: bottom;
}

/* 文字が入る箱を縦並びに制御 */
.activity-text {
    flex: 0 0 60%;
    display: flex;
    justify-content: center; /* 左右の中央 */
    align-items: center;     /* 上下の中央 */
    padding: 0 8%;
    background-color: #000;
}

.text-inner {
    width: 100%;
    display: flex;
    flex-direction: column; /* 縦に並べる */
    /* ★ここ：中身を中央に寄せる */
    align-items: center; 
}

.activity-text h4 {
    font-family: 'Noto Serif JP', serif;
    font-size: 1.8rem !important;
    letter-spacing: 0.3em;
    margin-bottom: 30px; /* 説明文との間隔を少し広めに */
    color: #fff;
    font-weight: 300;
    /* ★ここ：文字自体を中央寄せにする */
    text-align: center;
    width: 100%;
}

.activity-text .description {
    font-family: 'Noto Serif JP', serif;
    font-size: 1rem;
    line-height: 2;
    color: rgba(255, 255, 255, 0.7);
    letter-spacing: 0.05em;
    /* ★ここ：説明文は左寄せ（もし説明文も中央なら center に変えてください） */
    text-align: left; 
    /* 左寄せにしつつ中央に置くための幅調整（お好みで） */
    max-width: 500px; 
}

/* 以下、フッター対策やフォントリセットもそのまま */

/* 偶数番目（2番目、4番目...）の設定 */
.activity-item:nth-child(even) {
    flex-direction: row-reverse;
}

/* 下に残る「変な余白」の対策 */
.about-page, .activity-section {
    font-size: 0; /* 改行による微細な隙間を消す */
}

.activity-text h4, .section-title, .catchphrase {
    font-size: initial; /* テキストのサイズを元に戻す */
}

/* 2. 最後のアイテムのマージンを完全に消す */
.activity-item:last-child {
    /* これが残っていると、その下の背景（白）が透けて見えることがあります */
    margin-bottom: 0 !important;
}

/* 3. 画像の下に潜む数ピクセルの隙間を完全に殺す */
.activity-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;      /* 文字のベースライン用の隙間を消す */
    vertical-align: bottom; /* 念のための二段構え */
}

/* 4. フッターとの連結を強化 */
footer {
    background-color: #000;
    /* 記事セクションと同様に、上のセクションと1px重ねる */
    margin-top: -1px; 
    border-top: none;
}

.section-title {
    color: #fff !important;
    text-align: center;
    display: block;
    width: 100%;
    
    /* ★ここ：現在の位置からさらに下げたい分だけ、この数値を大きくしてください */
    /* 100px だったものを 150px や 200px にすると下に下がります */
    padding-top: 30px; 
    
    /* 文字サイズ設定 */
    font-size: 2rem !important; 
    
    /* 下のキャッチコピーとの間隔 */
    margin-bottom: 60px;
    
    font-family: 'Noto Serif JP', serif;
    font-weight: 300;
    letter-spacing: 0.3em;
    opacity: 0.9;
}

/* ファイルの最下部に追記して、リセット設定を上書きします */

.catchphrase h3 {
    display: inline-block !important;
    /* 2rem〜2.5rem程度が、部活紹介のタイトルとバランスが良いです */
    font-size: 2.2rem !important; 
    font-family: 'Noto Serif JP', serif !important;
    /* スクショにあった青い下線 */
    border-bottom: 10px solid !important; 
    padding-bottom: 10px !important;
    text-align: center !important;
}

/* 親要素の余白も調整したい場合はこちら */
.catchphrase {
    text-align: center !important;
    margin: 80px 0 1px !important;
}

/* --- ヒーローエリア専用：読み込み時に浮き出るアニメーション --- */

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

.main-text {
    /* 最初は透明にしておく */
    opacity: 0;
    /* ★ここ：ページを読み込んだら1.5秒かけてふわっと出す */
    animation: heroFadeUp 1.5s ease-out forwards;
    /* 少し遅らせて（0.5秒）出すとおしゃれです */
    animation-delay: 0.5s; 
}

/* --- スクロールで現れる要素の初期状態 --- */
.scroll-fade {
    opacity: 0;
    transform: translateY(40px); /* 少し下から浮かび上がる */
    transition: opacity 1.2s ease-out, transform 1.2s ease-out;
}

/* 画面内に入った時の状態 */
.scroll-fade.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* --- メンバー紹介ページ専用スタイル --- */

.member-page-content {
    background-color: #000;
    color: #fff;
    padding-top: 150px; /* ヘッダーとの被り防止 */
    min-height: 100vh;
}

.member-hero {
    text-align: center;
    margin-bottom: 80px;
}

.member-detail {
    display: flex;
    justify-content: center;
    padding-bottom: 150px;
}

.member-card {
    text-align: center;
    max-width: 700px;
    width: 90%;
}

/* プロフィール写真：中央寄せ＆円形 */
.member-visual {
    width: 280px;
    height: 280px;
    margin: 0 auto 40px;
    border-radius: 50%; /* 丸く切り抜く */
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.member-visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* 名前と肩書き */
.member-name {
    font-family: 'Noto Serif JP', serif;
    font-size: 3rem;
    color: #fff;
    letter-spacing: 0.1em;
    margin-bottom: 20px;
    font-weight: 300;
}

.member-role {
    font-family: 'Noto Serif JP', serif;
    font-size: 1.3rem;
    color: #fff; /* アクセントカラー */
    letter-spacing: 0.1em;
    margin-bottom: 10px;
    font-weight: 300;
}

/* 経歴テキスト：中央寄せ */
.member-bio {
    font-family: 'Noto Serif JP', serif;
    line-height: 1;
    font-size: 1.05rem;
    color: rgba(255, 255, 255, 0.8);
    text-align: center;
}

.member-bio p {
    margin-bottom: 20px;
}

/* 活動報告ページ全体の背景 */
.about-page { /* HTMLのmainクラスに合わせる */
    background-color: #000;
    color: #fff;
    padding: 150px 0 100px;
}

/* 記事が流し込まれるコンテナ */
#activities-list { /* JSで指定しているIDに合わせる */
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 20px;
}

/* ヒーローエリアの見出し */
.section-title {
    font-family: 'Noto Serif JP', serif;
    font-size: 2.5rem;
    text-align: center;
    margin-bottom: 80px;
    letter-spacing: 0.2em;
}

/* 記事1件のスタイル */
.activity-entry {
    display: flex;
    gap: 40px;
    margin-bottom: 80px;
    align-items: flex-start;
    width: 100%;
}

/* 左側：写真 */
/* 左側：写真のエリア */
.entry-image {
    flex: 0 0 450px; /* 幅を450pxに固定（数値はお好みで調整してください） */
    max-width: 100%;
}

.entry-image img {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9; /* 横長に固定 */
    object-fit: cover;    /* 枠に合わせて綺麗に切り抜き */
    display: block;
    background-color: #333;
}

/* 右側：テキストエリア */
.entry-body {
    flex: 1;
    padding-left: 40px; /* 画像との間隔 */
    min-width: 0;       /* 文字溢れ防止 */
}

.entry-title {
    font-family: 'Noto Serif JP', serif;
    font-size: 1.8rem;
    margin-bottom: 15px;
    padding-bottom: 10px;
    border-bottom: 1px solid #fff;
    font-weight: 300;
}

.entry-text {
    font-family: 'Noto Serif JP', serif;
    line-height: 1.8;
    color: #ccc;
    font-size: 1rem;
}

/* スマホ対応 */
@media (max-width: 768px) {
    .activity-entry {
        flex-direction: column;
        gap: 20px;
    }
    .entry-image {
        width: 100%;
    }
}

/* アニメーション */
.scroll-fade {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 1.0s ease, transform 1.0s ease;
}

.scroll-fade.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.entry-date {
    font-size: 0.9rem;
    color: rgba(255, 255, 255, 0.6); /* 少し薄めの色にする */
    letter-spacing: 0.1em;
    margin-bottom: 5px;
    font-family: 'Noto Sans JP', serif; /* 英数字に合うフォント */
}

.entry-title {
    margin-top: 0; /* 日付との間隔を詰める */
    /* 他のスタイルは維持 */
}

/* mainタグ（.about-page）に対して */
.about-page {
    display: block !important; /* 万が一flexが邪魔してたら解除 */
    min-height: 100vh !important; /* 画面1枚分の高さを強制 */
    background-color: #000;
    padding-bottom: 100px; /* 下に余白を作る */
}

/* 記事リスト部分 */
#activities-list {
    min-height: 500px !important; /* 記事がなくても500pxは確保 */
}

/* ページ全体のコンテナ */
.join-page {
    background-color: #000;
    color: #fff;
    padding: 150px 20px 100px;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center; /* 子要素（項目）自体を中央に配置 */
    text-align: center;  /* テキストを中央に配置 */
    min-height: 100vh;
    font-weight: 300;
}

/* 項目を包むコンテナ */
.join-content {
    width: 100%;
    max-width: 800px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center; /* 中の要素を中央に寄せる */
    font-weight: 300;
}

/* 各項目 */
/* 項目ごとのまとまり */
.join-item {
    width: 100%;
    display: flex;
    flex-direction: column; /* 縦並びにする */
    align-items: center;    /* 子要素を中央に寄せる */
    margin-bottom: 80px;
    font-weight: 300;
}

/* 見出し：文字と同じ長さの下線を引き、中央へ */
.join-item h3 {
    /* 1. 要素の幅を「文字の長さ」に合わせる */
    display: inline-block; 
    
    /* 2. 下線の設定（維持） */
    border-bottom: 1px solid rgba(255, 255, 255, 0.4); 
    
    /* 3. 余白の設定（維持） */
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 20px;
    padding-bottom: 8px;

    /* 4. フォント・サイズの設定（維持） */
    font-family: 'Noto Serif JP', serif;
    font-size: 1.9rem;
    font-weight: 300;
    text-align: center;

    /* --- 修正箇所：ここから --- */
    letter-spacing: 0.1em; 
    padding-left: 0.2em; /* 右側に飛び出した0.2em分を左から押し戻す */
    /* --- 修正箇所：ここまで --- */
}

/* 本文：ここが表示されない・寄らない原因を修正 */
.join-item p {
    display: block !important; /* 強制表示 */
    width: 100%;
    max-width: 600px;         /* 横に広がりすぎないよう制限 */
    text-align: center;       /* 文字を中央寄せ */
    font-size: 1.1rem;
    line-height: 2;
    color: #ccc;              /* 背景が黒なので明るいグレーに */
    margin: 0 auto;           /* 外枠も中央に */
    font-weight: 300;

    /* ★★★ これを追加してください！ ★★★ */
    font-family: 'Noto Serif JP', serif;
}

/* --- お問い合わせページ専用設定（他ページへの干渉なし） --- */

/* 1. ページ全体：フッターを一番下に押し出す */
.contact-page {
    background-color: #000;
    color: #fff;
    width: 100%;
    /* 最低でも画面の高さ分を確保（これでフッターが底に行きます） */
    min-height: 100vh; 
    padding-top: 120px; /* ヘッダーの下に隠れないよう十分な余白 */
    padding-bottom: 100px;
    display: block; /* Flexから一旦Blockに戻して安定させます */
    box-sizing: border-box;
}

/* 2. 見出しエリア：確実に中央に表示 */
.contact-hero {
    text-align: center;
    margin-bottom: 60px;
    width: 100%;
}

.section-title {
    font-family: 'Noto Serif JP', serif;
    font-size: 2.5rem;
    letter-spacing: 0.3em;
    color: #fff;
    font-weight: 300;
    font-family: 'Noto Serif JP', serif;
}

/* 3. フォーム本体：中央に寄せる */
.contact-form {
    max-width: 600px;
    margin: 0 auto; /* 横方向の中央寄せ */
    padding: 0 20px;
}

/* 4. 各入力項目 */
.form-item {
    margin-bottom: 40px;
    text-align: center;
}

.form-item label {
    display: block;
    margin-bottom: 15px;
    font-size: 1.1rem;
    
    /* ★★★ 追加：ラベルを明朝体に ★★★ */
    font-family: 'Noto Serif JP', serif;
    font-weight: 300;
    letter-spacing: 0.1em;
}

.form-item input,
.form-item textarea {
    width: 100%;
    padding: 15px;
    background: #111;
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #fff;
    box-sizing: border-box;
    font-size: 1rem;

    /* ★★★ 追加：入力する文字も明朝体に ★★★ */
    font-family: 'Noto Serif JP', serif;
    font-weight: 300;
}

/* 5. 送信ボタン：確実に中央へ */
.form-submit {
    text-align: center;
    margin-top: 60px;
}

.btn-submit {
    display: inline-block;
    background: none;
    border: 1px solid #fff;
    color: #fff;
    padding: 15px 80px;
    font-size: 1.1rem;
    cursor: pointer;
    transition: all 0.3s;
    letter-spacing: 0.2em;

    /* ★★★ 追加：ボタンの文字も明朝体に ★★★ */
    font-family: 'Noto Serif JP', serif;
    font-weight: 300; 
}

.btn-submit:hover {
    background: #fff;
    color: #000;
}

/* --- ホーム画面・最新記事カード最終修正 --- */

/* 1. カード本体：枠線をより細く、繊細に */
/* 1. カード本体：枠線を完全に消去し、ホバー時のみ変化させる */
.post-card {
    display: flex !important;
    flex-direction: column !important;
    width: 280px !important;
    height: auto !important;
    background: transparent !important; /* 背景に馴染ませる */
    border: none !important;            /* ★枠線を削除 */
    text-decoration: none !important;
    overflow: hidden !important;
    transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
    flex-shrink: 0 !important;
}

/* 2. ホバー時のエフェクト：枠線なしでも「選択感」を出す */
.post-card:hover {
    transform: translateY(-8px) !important;
}

/* 3. 画像エリア：4:3を維持し、下部の境界線も消去 */
.post-card-img {
    width: 100% !important;
    height: 210px !important;
    background-size: cover !important;
    background-position: center !important;
    border: none !important;            /* ★画像周りの枠線も削除 */
    transition: filter 0.4s ease !important;
}

.post-card:hover .post-card-img {
    filter: brightness(1.2) !important; /* ホバーで少し発光 */
}

/* 4. タイトル：Noto Sans JP / Weight 300 / 枠線なし */
.post-card h3 {
    width: 100% !important;
    margin: 0 !important;
    padding: 15px 5px !important;
    background: transparent !important; /* タイトル部分の背景も透明に */
    color: #fff !important;
    /* フォント設定 */
    font-family: 'Noto Serif JP', serif !important;
    font-weight: 300 !important;        /* ★細身のウェイト */
    font-size: 0.95rem !important;
    letter-spacing: 0.03em !important;
    text-align: center !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: none !important;            /* ★タイトルの枠線も削除 */
}

/* --- フッターのAstro Hitボタン修正 --- */

/* リンクタグ自体の余白や背景をリセット */
.btn-astrohit {
    display: inline-block; /* 画像のサイズにフィットさせる */
    background: transparent !important; /* 背景を透明に強制 */
    padding: 0 !important; /* 余計な内側の余白を削除 */
    margin: 0 !important;  /* 余計な外側の余白を削除 */
    border: none !important; /* もし枠線があれば削除 */
    line-height: 0; /* 画像下の微妙な隙間をなくす */
}

/* 画像のサイズを小さく調整 */
.btn-astrohit img {
    width: 120px !important; /* ← 180pxから小さくしました。お好みで数値を調整してください */
    height: auto !important; /* 比率を維持 */
    display: block !important; /* 画像として正しく表示 */
    background: transparent !important; /* 画像自体の背景も透明に */
}

/* --- PC用：ハンバーガーボタンは隠す --- */
.hamburger {
    display: none; /* PCでは見えなくする */
}

/* =========================================
   スマホ用レスポンシブ設定 (767px以下)
   ========================================= */
/* スマホ用レスポンシブ設定 (767px以下) */
/* style.css の一番下に貼り付け */

/* スマホ用：ハンバーガーボタンの強制表示設定 */
/* style.css の一番下 */

    /* --- フッター全体の修正（PCでもコピーライトを表示させる） --- */
    footer {
        display: flex !important;
        flex-direction: column !important; /* コンテナとコピーライトを「縦積み」にする */
        height: auto !important;           /* 高さを中身に合わせて自動で伸ばす */
        background-color: #000;            /* 背景を黒に固定 */
    }

    /* --- フッター全体の修正（PCでも強制的に表示させる最重要コード） --- */
    footer {
        display: flex !important;
        flex-direction: column !important; /* PC版でも縦積みに強制する */
        height: auto !important;           /* 高さを自動で伸ばす */
        background-color: #000;
    }

    /* コピーライトの設定 */
    .copyright {
        display: block !important;
        text-align: center;
        color: rgba(255, 255, 255, 0.7);
        font-size: 0.8rem;
    
        /* ★★★ ここを 20px から 80px など大きな数値に変更します ★★★ */
        padding-top: 80px !important;      
    
        padding-bottom: 30px !important;   /* ついでに下の余白も少しだけ広げるとバランスが良いです */
        margin: 0 !important;
        font-family: 'Noto Sans JP', sans-serif;
        letter-spacing: 0.05em;
        width: 100%;
    }

@media screen and (max-width: 767px) {
    
    /* 1. ハンバーガーボタン：強制表示 */
    .hamburger {
        display: block !important;
        position: fixed;
        top: 25px;
        right: 20px;
        width: 30px;
        height: 24px;
        z-index: 1000;
        cursor: pointer;
    }
    .hamburger span {
        position: absolute;
        left: 0;
        width: 100%;
        height: 2px;
        background-color: #fff;
        transition: all 0.4s;
    }
    .hamburger span:nth-of-type(1) { top: 0; }
    .hamburger span:nth-of-type(2) { top: 11px; }
    .hamburger span:nth-of-type(3) { bottom: 0; }
    
    /* クリック時の×印 */
    .hamburger.active span:nth-of-type(1) { transform: translateY(11px) rotate(45deg); }
    .hamburger.active span:nth-of-type(2) { opacity: 0; }
    .hamburger.active span:nth-of-type(3) { transform: translateY(-11px) rotate(-45deg); }


    /* 2. メニュー本体：navタグがついているものは一度全部隠す！ */
    nav {
        position: fixed !important;
        top: 0 !important;
        right: -120% !important; /* 画面の外へ */
        width: 100% !important;
        height: 100vh !important;
        background: rgba(0, 0, 0, 0.95) !important;
        transition: right 0.4s ease !important;
        z-index: 900 !important;
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
    }

    /* navタグに active クラスがついた時だけ表示 */
    nav.active {
        right: 0 !important;
    }
    
    /* 中身のリスト設定 */
    nav ul {
        display: block !important;
        padding: 0 !important;
        text-align: center !important;
    }
    nav li {
        margin: 20px 0 !important;
        display: block !important;
    }
    nav a {
        font-size: 1.2rem !important;
        color: #fff !important;
    }
    /* --- ここから下を追記してください --- */

    /* 3. フッターのスマホ対応（縦並びにしてはみ出し防止） */
    .footer-container {
        flex-direction: column !important; /* 横並びから縦並びに変更 */
        gap: 40px !important; /* 130pxの隙間を40pxに縮める */
        padding: 0 20px !important;
    }

    /* SNSアイコンの間隔も少し狭める */
    .footer-sns {
        gap: 50px !important; 
    }

    /* ロゴなどのサイズ調整 */
    .footer-logo img {
        height: 40px !important; /* 少し小さく */
    } /* ← これは元々あった最後の閉じカッコです */

/* --- 活動紹介ページ（記事一覧）のスマホ修正 --- */
    
    /* --- 活動紹介ページ（記事一覧）のスマホ修正（強力版） --- */
    
    /* 1. 記事カード全体の設定（強制縦並び） */
    .activity-entry {
        display: block !important;    /* Flexboxを解除して縦積みに */
        margin-bottom: 50px !important;
        border-bottom: 1px solid #333; /* 記事の区切り線を追加 */
        padding-bottom: 40px;
        gap: 0 !important; /* 隙間設定をリセット */
    }

    /* 2. 画像の設定（隙間をなくす） */
    .entry-image {
        width: 100% !important;       /* 横幅いっぱい */
        margin: 0 0 15px 0 !important; /* 下に15pxだけ隙間を開ける */
        flex: none !important;
    }

    /* 画像の中身 */
    .entry-image img {
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 16 / 9;         /* 横長で固定 */
        object-fit: cover;
    }

    /* 3. 本文エリアの設定（左の余白を消す） */
    .entry-body {
        width: 100% !important;
        padding: 0 !important;        /* PC用の余白を全削除 */
        margin: 0 !important;
    }

    /* タイトルの文字サイズ調整 */
    .entry-title {
        font-size: 1.4rem !important;
        margin-top: 0 !important;     /* 上の隙間を削除 */
        line-height: 1.4 !important;
    }

    /* --- ヘッダーロゴのスマホ調整（左上に小さく） --- */
    
    /* --- ヘッダーロゴのスマホ調整（ハンバーガーメニューと高さを揃える） --- */
    
    /* 1. ヘッダー全体の余白調整 */
    .header-container {
        /* ★ここを 15px から 25px に変更！これでハンバーガーと高さが合います */
        padding-top: 25px !important;   
        padding-left: 20px !important;  /* 左の余白も少し広げました */
        align-items: flex-start !important;
    }

    /* 2. ロゴの位置ズレ（PC用）をリセット */
    .logo {
        transform: none !important;
        margin: 0 !important;
    }

    /* 3. ロゴ画像を小さくする */
    .logo img {
        height: 40px !important;
        width: auto !important;
        margin-right: 0 !important;
    }    
    
} /* ← これがファイルの一番最後の閉じカッコになります */