@charset "UTF-8";

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@500&display=swap');
/* Google Fonts から Poppins の太さ 500 と 900 をインポート */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@500;900&display=swap');

body {
    background-color: transparent !important; /* 背景色を透明に */
    margin: 0; /* 余白をなくす */
    padding: 0; /* 余白をなくす */
    font-family: 'Poppins', sans-serif;
    font-weight: 500;
}

header {
    position: relative; /* 親要素に対して位置を指定 */
    top: 10px;
    left: 50%;
    transform: translateX(-50%);
    background-color: white; /* 半透明をなくし、白背景 */
    width: 90%;
    max-width: 1366px;
    padding: 10px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    z-index: 10; /* 背景より前面に */
    margin-bottom: 0; /* 余白をなくす */
}

/* ロゴと組織名を横並びに */
.logo-banner {
    display: flex;
    align-items: center;
    padding-left: 0px; /* 左の余白を調整 */
    margin-left: 0; /* 余白を完全になくす */
}

/* ロゴのサイズ調整 */
.logo {
    height: 50px;
    width: auto;
    margin-right: 10px;
}

/* 組織名のフォントサイズを調整 */
.brand-name {
    font-size: 1.2em;
    font-weight: bold;
    white-space: nowrap;
    font-family: "Poppins", sans-serif;
    font-weight: 500;
}

section {
    padding: 20px;
    margin: 20px;
    background-color: white;
}

.top-message {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: black;
    width: 90%;
    max-width: 1366px;
    margin: 0 auto 40px auto;
    margin-top: -20px; /* 上部の余白を減らす（-20px など調整）
    height: auto; /* 親要素の高さを自動調整 */
}

.top-image {
    display: block;
    max-width: 100%; /* 画面幅が狭いときは縮小 */
    height: auto;  /* 縦横比を維持 *
    max-width: 100%; /* 親要素の幅を超えないようにする */
}

.top-message h1 {
    position: absolute; /* 画像の上に重ねる */
    top: 46%; /* 画像の中央に配置（上下中央にするため） */
    left: 50%; /* 画像の中央に配置（左右中央にするため） */
    transform: translate(-50%, -50%); /* 中央にぴったり合わせる */
    color: black; /* 白色にして文字を目立たせる */
    z-index: 1; /* 画像より前面に表示 */

    font-size: 3rem; /* 文字サイズ */
    font-weight: 600;
    line-height: 1.1;
    margin-bottom: 0;
    max-width: 600px; /* テキストの幅を狭く */
    margin: 0 auto; /* 中央揃え（必要なら） */
}
    
.top-message p {
    position: absolute; /* 画像の上に重ねる */
    top: 59%; /* 画像の中央に配置（上下中央にするため） */
    left: 50%; /* 画像の中央に配置（左右中央にするため） */
    transform: translate(-50%, -50%); /* 中央にぴったり合わせる */
    color: black; /* 白色にして文字を目立たせる */
    z-index: 1; /* 画像より前面に表示 */

    font-size: 1.5rem; /* GoVote 表記 */
    margin-top: 10px; /* 見出しとの間隔を調整 */
    font-weight: 500; /* 太字にする */
    font-family: 'Poppins', sans-serif;
    font-weight: 500;
}

.purpose {
    position: relative;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-around; /* 中央揃え */
    text-align: center;
    color: black;
    width: 90%;
    max-width: 1366px;
    margin: 0 auto 50px auto;
    padding-top: 30px; /* 上部の余白を調整 */
}

.purpose-text {
    display: flex;
    flex-direction: column;
    justify-content: center; /* 縦方向に中央揃え */
    align-items: center; /* 横方向に中央揃え */
    text-align: center; /* テキストを中央揃え */
    flex-grow: 0; /* 拡張しない */
    flex-shrink: 0; /* 縮小しない */
    flex-basis: 40%; /* 幅を35%に固定 */
    padding-right: 20px; 
    margin-right: 10px;
    margin-left: 40px; /* 左余白を追加 */
    box-sizing: border-box;
    overflow: hidden;
}

.purpose h2 {
    font-size: 1.6rem;
    font-weight: 500;
    margin-bottom: 20px;
}

.purpose p {
    font-size: 1.8rem;
    line-height: 1.3;
    margin-top: 10px;
}

.contact-button {
    display: flex;
    justify-content: center; /* 中央揃え */
    align-items: center;
    background-color: black;
    color: white;
    padding: 3px 20px !important; 
    height: 30px; /* 高さを指定してみる */
    font-size: 0.7rem !important; /* フォントサイズに !important を追加 */
    line-height: 1; /* 行の高さを調整 */
    border-radius: 5px;
    text-align: center;
    width: auto;
    max-width: 250px; /* ボタンの最大幅を制限 */
    margin-top: 10px;
}

.contact-button p {
    font-size: 1.2rem !important; /* フォントサイズに !important を追加 */
    line-height: 1; /* 行の高さを調整 */
    margin: 0; /* マージンをリセット */
}

.purpose-image {
    display: block;
    width: 100%; /* 親要素の幅に合わせて拡大縮小 */
    max-width: 50%; /* 画像が親要素の50%の幅に収まるように */
    overflow: hidden;
    margin: 0 auto; /* 中央揃え */
    flex-basis: 50%; 
}

.purpose-image img {
    display: block;
    width: 100%; /* 親要素の幅に合わせて縮小 */
    height: auto; /* 縦横比を保つ */
    max-width: 100%; /* 画像の幅が親要素の幅を超えないようにする */
}


.vision {
    position: relative;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: black;
    width: 90%;
    max-width: 1366px;
    margin: 0 auto 20px auto;
    padding-top: 50px; /* 上部の余白を調整 */
}

.vision-image {
    display: block;
    width: 100%; /* 親要素の幅に合わせて拡大縮小 */
    max-width: 50%; /* 画像が親要素の50%の幅に収まるように */
    overflow: hidden;
    margin: 0 auto; /* 中央揃え */
}

.vision-image img {
    display: block;
    width: 100%; /* 親要素の幅に合わせて縮小 */
    height: auto; /* 縦横比を保つ */
    max-width: 100%; /* 画像の幅が親要素の幅を超えないようにする */
}

.vision-text {
    display: flex;
    flex-direction: column;
    justify-content: center; /* 縦方向に中央揃え */
    align-items: center; /* 横方向に中央揃え */
    text-align: center; /* テキストを中央揃え */
    flex: 1;
    padding-right: 20px; 
    margin-right: 10px;
    box-sizing: border-box;
    overflow: hidden;
    padding-left: 60px; 
    transform: translateY(20px); /*下にずらす */
}

.vision h2 {
    font-size: 1.6rem;
    font-weight: 500;
    margin-bottom: 20px;
}

.vision p {
    font-size: 1.8rem;
    line-height: 1.3;
    margin-top: 10px;
}

.nusa {
    position: relative;
    text-align: center;
    color: black;
    width: 90%;
    max-width: 1366px;
    margin: 0 auto;
    padding-top: 50px;
    box-sizing: border-box;
}

.nusa-text {
    text-align: left;
    padding-bottom: 40px;
}

.nusa h2 {
    font-size: 3.0rem;
    font-weight: 500;
    margin-bottom: 60px;
    line-height: 1.0; /* 行間を少し詰める */
}

.nusa p {
    font-size: 1.7rem;
    line-height: 1.3;
    margin-top: 10px;
}

.contact-button {
    display: flex;
    justify-content: center; /* 中央揃え */
    align-items: center;
    background-color: black;
    color: white;
    padding: 3px 20px !important; 
    height: 30px; /* 高さを指定してみる */
    font-size: 0.7rem !important; /* フォントサイズに !important を追加 */
    line-height: 1; /* 行の高さを調整 */
    border-radius: 5px;
    text-align: center;
    width: auto;
    max-width: 250px; /* ボタンの最大幅を制限 */
    margin: 10px auto 0 auto; /* 🔹 上に余白 & 中央寄せ */
}

.contact-button p {
    font-size: 1.2rem !important; /* フォントサイズに !important を追加 */
    line-height: 1; /* 行の高さを調整 */
    margin: 0; /* マージンをリセット */
}

.nusa-image {
    width: 100%; /* 画像を画面幅いっぱいに */
    max-width: 800px; /* 最大サイズを適度に */
    margin: 0 auto;
    margin-top: 70px; /* 🔹 上部に余白を追加 */
}

.nusa-image img {
    width: 100%;
    height: auto;
}

.support {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: black;
    width: 90%;
    max-width: 1366px;
    margin: 0 auto 40px auto;
    margin-top: 100px; 
    height: auto; /* 親要素の高さを自動調整 */
}

.support h2 {
    color: black;
    font-size: 3rem;
    font-weight: 600;
    line-height: 1.1;
    margin: 0;
    max-width: 600px; /* テキスト幅の最大制限 */
    position: absolute;
    top: 20%; /* 上から30%の位置に配置 */
    left: 10%; /* 左揃え */
}
    
.support p {
    color: black;
    font-size: 1.2rem;
    font-weight: normal; 
    margin: 10px 0; /* 上下の余白を調整 */
    position: absolute;
    top: 33%; /* h2の下に配置 */
    left: 13%; /* 左揃え */
    max-width: 600px; /* テキスト幅の最大制限 */
    width: 90%; /* 90%の幅に設定 */
    word-wrap: break-word; /* 長い単語を折り返す */
    text-align: left; /* テキストを左揃えに設定 */
}

.support p + p {
    top: 60%; /* 2番目のpタグとの間隔を調整 */
}

.support p + p + p {
    top: 78%; /* 3番目のpタグとの間隔を調整 */
}

.support-image {
  width: 100%;        /* コンテナの幅に合わせる */
  /* max-width: 400px;   最大幅を設定（必要に応じて調整） */
  height: auto;       /* 縦横比を保つ */
  display: block;
  margin: 0 auto;     /* 中央寄せ */
}

footer {
    background-color: #f0f0f0; /* 薄いグレーの背景色 */
    color: black; /* フォントカラーをブラックに */
    padding: 10px; /* 上下10pxの余白 */
    font-size: 0.9em;
    text-align: center; /* フッター内のテキストを中央揃え */
    margin-top: -30px; /* 上のセクションとの間隔を縮める */
}

@media screen and (max-width: 640px) {
  header {
    flex-direction: column;
    align-items: flex-start;
    padding: 10px;
    position: relative;
    z-index: 3;
  }

  .brand-name {
    font-size: 1.2rem;
    position: relative;
    z-index: 3;
  }

  .top-message {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 80px 20px 40px;
    text-align: center;
    position: relative;
    z-index: 1;
  }

  .top-message h1 {
    font-size: 1.8rem;
    top: 50%;
    margin-bottom: 20px;
    z-index: 2;
  }

  .top-message p {
    font-size: 1.1rem;
    top: 70%;
    line-height: 1.5;
    z-index: 2;
  }

  .purpose {
 flex-direction: column-reverse; 
    padding: 10px 0;
  }

  .vision {
    flex-direction: column;
    padding: 10px 0;
  }

  .purpose-text,
  .vision-text {
    flex-basis: 100%;
    padding: 0 10px;
    margin: 0;
    align-items: flex-start;
    text-align: left;
  }

  .purpose-image,
  .vision-image {
    max-width: 100%;
    padding: 0 10px;
    margin-top: 20px;
  }

  .purpose-image,
  .purpose-text {
    width: 100%;
  }

  .purpose p,
  .vision p,
  .nusa p {
    font-size: 1rem;
  }

  .nusa h2 {
    font-size: 1.6rem;
    text-align: left;
  }

  .nusa-text {
    padding: 0 10px;
  }

  .support {
    flex-direction: column;
    margin-top: 60px;
    padding: 10px;
    align-items: flex-start;
    text-align: left;
  }

  .support h2 {
    /* position: static; */
    position: absolute;
    font-size: 1.5rem;
    top: 10%;
    margin-bottom: 10px;
    text-align: left;
  }

  .support p {
    position: static;
    font-size: 1rem;
    margin: 10px 0;
    text-align: left;
  }
  
  .support-image {
    max-width: 400px; /* スマホではさらに小さく */
  }

  .top-message {
    margin-bottom: 20px;
  }

  .contact-button {
    font-size: 0.9rem !important;
    padding: 5px 15px !important;
    height: auto;
  }

  footer {
    font-size: 0.8rem;
    padding: 15px;
  }
}
