body {
    margin: 0;
    background: #0b1340; /* 夜空の背景色 */
    font-family: Arial, sans-serif;
}

html, body {
    height: 100%;
    display: flex;
    flex-direction: column;
}

.sky {
    flex: 1;
    position: relative;
    width: 100vw;
    background: radial-gradient(circle, #001e59, #020b30);
    overflow: hidden;
}

.sky .tagline {
    position: absolute;
    top: 12%; /* タイトルを少し下げる */
    left: 50%;
    transform: translateX(-50%);
    text-align: center;
    color: rgba(255, 255, 255, 0.8); /* 背景と調和する透明感を追加 */
    z-index: 1000;
    font-size: 1.8rem; /* フォントサイズを控えめに調整 */
}

.sky .tagline h1 {
    margin: 0; /* 不要な余白を削除 */
}

.sky .tagline p {
    font-size: 1rem; /* 副題を小さく控えめに */
    margin-top: 5px; /* タイトルとの距離を少し確保 */
    color: rgba(255, 255, 255, 0.6); /* 副題の透明度をさらに控えめに */
}


textarea {
    position: relative; /* 固定ではなく自然に配置 */
    top: auto;
    left: auto;
    transform: none;
    width: calc(100% - 40px); /* スマホでも適切な余白を確保 */
    max-width: 500px; /* PCでの最大幅 */
    margin: 30px auto; /* 上下の余白を確保して中央揃え */
    padding: 10px;
    border: 1px solid rgba(255, 255, 255, 0.5);
    background: rgba(255, 255, 255, 0.2);
    color: #fff;
    z-index: 1000;
}


.moon-phase {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 150px;
    height: 150px;
    background: radial-gradient(circle, #fff 60%, transparent 100%);
    border-radius: 50%;
    box-shadow: 0 0 30px rgba(255, 255, 255, 0.5);
    overflow: hidden;
}

.moon-phase::before {
    content: "";
    position: absolute;
    width: 150px;
    height: 150px;
    background: #0b1340;
    border-radius: 50%;
    animation: moonPhase 10s infinite linear;
}

@keyframes moonPhase {
    0% { transform: translateX(-100%); }
    50% { transform: translateX(0); }
    100% { transform: translateX(100%); }
}

.cloud {
    position: absolute;
    bottom: 20%;
    width: 200px;
    height: 60px;
    background: #fff;
    opacity: 0.8;
    border-radius: 30px;
    animation: moveClouds 20s linear infinite;
}

.cloud::before,
.cloud::after {
    content: "";
    position: absolute;
    background: #fff;
    width: 100px;
    height: 60px;
    border-radius: 50%;
}

.cloud::before {
    top: -30px;
    left: 20px;
}

.cloud::after {
    top: -20px;
    left: 120px;
}

.cloud-2 {
    bottom: 40%;
    width: 250px;
    animation-duration: 30s;
}

@keyframes moveClouds {
    0% { transform: translateX(-200%); }
    100% { transform: translateX(200%); }
}

.star {
    position: absolute;
    width: 3px;
    height: 3px;
    background: #fff;
    border-radius: 50%;
    box-shadow: 0 0 5px rgba(255, 255, 255, 0.8);
    animation: twinkle 2s infinite ease-in-out;
}

.star-2 {
    top: 30%;
    left: 50%;
    animation-duration: 3s;
}

.star-3 {
    top: 70%;
    left: 80%;
    animation-duration: 4s;
}

@keyframes twinkle {
    0%, 100% { opacity: 0.8; }
    50% { opacity: 0.3; }
}

.input-form {
    position: relative; /* 入力フォーム全体を自然に配置 */
    margin: 30px auto; /* 上下に余白を確保し中央揃え */
    padding: 10px; /* 内部に余白を確保 */
    text-align: center; /* 子要素を中央揃え */
    max-width: 500px; /* 最大幅を指定 */
    width: 90%; /* デバイス幅に応じた横幅 */
    background: rgba(0, 0, 0, 0.5); /* 半透明の背景 */
    border-radius: 10px; /* デザインを柔らかく */
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); /* 軽い影を追加 */
}

}

footer {
    position: relative; /* フッターを自然にスクロール可能にする */
    background: rgba(0, 0, 0, 0.7);
    color: #fff;
    text-align: center;
    padding: 10px 0;
    font-size: 0.9rem;
    width: 100%;
}

/* ページ固有の中央揃えスタイル */
main {
    text-align: center;
    color: #fff;
    margin: 0 auto;
}

/* リストの点を削除 */
ul {
    list-style: none;
    padding: 0;
}

.contact-form {
    max-width: 500px;
    margin: 20px auto;
    text-align: left;
}

.contact-form label {
    display: block;
    margin: 10px 0 5px;
    color: #fff;
}

.contact-form input, .contact-form textarea {
    width: 100%;
    padding: 10px;
    margin-bottom: 15px;
    border: none;
    border-radius: 5px;
    font-size: 1rem;
    background: rgba(255, 255, 255, 0.2);
    color: #fff;
}

.contact-form input::placeholder, .contact-form textarea::placeholder {
    color: rgba(255, 255, 255, 0.7);
}

.contact-form button {
    display: block;
    width: 100%;
    padding: 10px;
    background: rgba(0, 0, 0, 0.7);
    color: #fff;
    border: none;
    border-radius: 5px;
    font-size: 1rem;
    cursor: pointer;
    transition: background 0.3s;
}

.contact-form button:hover {
    background: rgba(255, 255, 255, 0.3);
}

.how-to-use-page {
    background: linear-gradient(rgba(11, 19, 64, 0.8), rgba(11, 19, 64, 0.8)), 
                url('images/sheep_moon.png') no-repeat center center fixed;
    background-size: cover;
    color: #fff; /* テキストが読みやすいように白色 */
}

textarea, input[type="email"] {
    background: rgba(255, 255, 255, 0.2);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.5);
}

.nav-bar {
    background-color: #112244; /* ナビゲーション背景色 */
    padding: 10px;
    text-align: center;
}

.nav-bar .nav-link {
    color: #fff;
    text-decoration: none;
    font-size: 1.2rem;
    font-weight: bold;
    padding: 5px 15px;
    border-radius: 5px;
    background-color: #334466; /* リンクの背景色 */
    transition: background-color 0.3s ease;
}

.nav-bar .nav-link:hover {
    background-color: #556688; /* ホバー時の背景色 */
}

@media (min-width: 769px) {
    textarea, input[type="email"] {
        position: relative; /* 固定解除で自然なレイアウト */
        top: auto;
        left: auto;
        transform: none;
        width: 400px; /* PC版での固定幅 */
        margin: 20px auto; /* 自然な中央揃え */
    }

    .input-form {
        margin-top: 50px; /* フッターと入力欄の間隔を調整 */
        text-align: center;
    }

    .sky .tagline {
    position: absolute;
    top: 10%; /* 画面上部からの距離を統一 */
    left: 50%;
    transform: translateX(-50%);
    text-align: center;
    color: #fff;
    font-size: 2rem; /* フォントサイズはモバイル・PC共通で設定 */
    z-index: 1000;
}


@media (max-width: 768px) {
    textarea {
        margin-top: 20px; /* 入力欄の上下余白を少し広げる */
        width: calc(100% - 40px); /* スマホ幅に適応 */
        max-width: 500px; /* 最大幅を維持 */
    }

    .sky .tagline {
        font-size: 1.8rem; /* モバイルで少し大きめのフォント */
    }
}

