/* CSSリセット */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* Reset some default styles */
body, h1, h2, p, ul {
  margin: 0;
  padding: 0;
}

/* Basic styling */
body {
  width: 100%;
  background-image: url('../img/bg.jpg'); /* 画像のパスを指定 */
  background-size: auto; /* 背景画像を要素に合わせて表示 */
  background-repeat: repeat; /* 背景画像の繰り返しを無効化 */
  background-position: top center; /* 画像を要素の中央に配置 */
color:#2a3882;
  font-family: 'BIZ UDGothic', sans-serif;
  font-family: 'M PLUS 1 Code', monospace;
  font-family: 'Noto Sans JP', sans-serif;
  font-family: 'Zen Maru Gothic', serif;
}

/*==============================================================*/


header {
  position: relative;
  width: 100%;
  height: auto; /* 仮の高さ */
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  color: white;
}


header.vote {
  background: url('../img/vote/main_img.jpg') center/cover no-repeat; /* 画像のパスを指定してください */
}

header.vote_pages {
  background-color: #00ccc0;
}








footer {
  background-color: #dfd4eb; /* 背景をピンクに設定 */
  width: 100%; /* 横幅を画面いっぱいに設定 */
  padding: 20px; /* 必要に応じて適切なパディングを設定 */
  color:#00ccc0;
  text-align: center; /* 中央揃え */
}

.copy {
  font-size: 1rem; /* フォントサイズを1remに設定 */
  margin: 0; /* マージンをリセット */
}
/*==[文字の装飾]============================================================*/
h1 {
  margin: 0;
  font-size: 3em;
}

h2 {
  margin: 0;
  font-size: 2em;
}

h3 {
  font-size: 2.4em;
  background-color: #ff4858;
  color: white;
  width: 100%;
  text-align: center;
  padding: 20px 0;
  margin: 0;
}

h4 {
  margin: 10px auto;
  font-size: 1.4rem;
  font-weight: 700;
}

h5 {
  margin: 0 0 1rem 0;
  font-size: 1.4em;
}

h6 {
  margin: 0;
  font-size: 1.2em;
  margin-bottom: 1rem;
  text-align: left;
}

p {
  font-size: 1em;
}


.office_name {
  font-size: 2em;
  margin-bottom: 2rem;
}

@media (max-width: 600px) {

  .office_name {
      font-size: 1em;
      margin-bottom: 2rem;
  }

  h3 {
      font-size: 1.6em;
      background-color: #ff4858;
      color: white;
      width: 100%;
      text-align: center;
      padding: 20px 0;
      margin: 0;
    }

    h4 {
      margin: 10px auto;
      font-size: 1em;
      font-weight: 700;
    }

    h5 {
      margin: 0;
      font-size: 1em;
    }

    h6 {
      margin: 0;
      font-size: 1em;
      font-weight: 700;
      text-align: left;
      margin: 10px 0 5px;
    }


}


/*=========================================*/

.txt_left {
  text-align: left;
}

.txt_right {
  text-align: right;
}

.txt_center {
  text-align:center;
}


/*=========================================*/

.txt_box {
  display: block;
  width: 90%;
  padding: 1rem;
  margin: 1rem auto 2rem;
  background-color: #ffffff;
  border-radius: 10px;
}

.txt_box p {
  font-size: 1.4rem;
  line-height: 1.6;
  font-weight: 700;
  margin-bottom: 1rem;
}

dl {
  display: flex;
  flex-wrap: wrap;
  width: 90%;
  margin:1rem auto;
  font-size: 1.4rem;
  font-weight: 700;
}

dt {
  width: 30%;
  padding-bottom: 20px;
  margin-bottom: 10px;
  text-align: left;
}

dd {
  width: 70%;
  padding-bottom: 20px;
  margin-bottom: 10px;
  text-align: left;
} 


@media (max-width: 600px) {
  
  .txt_box {
      display: block;
      width: 90%;
      padding: 1rem;
      margin: 1rem auto 2rem;
      background-color: #ffffff;
      border-radius: 10px;
  }

  .txt_box p {
      font-size: .8rem;
      line-height: 1.6;
      margin-bottom: 1rem;
  }

  dl {
      display: block;
      flex-wrap: wrap;
      width: 90%;
      margin:1rem auto;
      font-size: 1rem;
    }
  
    dt {
      width: 100%;
      padding-bottom: 10px;
      margin-bottom: 10px;
      text-align: left;
    }
    
    dd {
      width: 100%;
      padding-bottom: 10px;
      margin-bottom: 10px;
      text-align: left;
    } 

}






/*==============================================================*/
section {
  width: 100%;
  text-align: center;
  margin: 0 auto;
}

.about {
  background-color: #fffcd7;
}

.entry {
  background-color: #ffffff;
}

.meet {
  background-color: #fffcd7;
}

.contact {
  background-color: #f2f2f2;
}

  .content {
      width: 90%; /* スマホサイズで幅90% */
      max-width: 1080px; /* PCサイズで最大960px */
      margin: 0 auto;
      padding:20px;
  }



  .content_box {
      width: 90%;
      max-width: 1080px;
      margin: 0 auto;
      padding: 20px 0;
      display: flex;
      flex-wrap: wrap;
      justify-content: space-around;
      box-sizing: border-box; /* ボーダーボックスモデルを使用 */
    }
    


.box {
  box-sizing: border-box;
  width: 100%;
  max-width: 320px;
  margin: 10px 0;
  background-color: #fff;
  padding: 20px;
  text-align: center;
  float: left; /* 左寄せ */
}

.box img {
  border: 2px solid #000;
  }

@media (min-width: 601px) {
  .box {
    width: 33.333%; /* パソコンで3列 */
  }
}

@media (max-width: 600px) {
  .content_box {
    width: 90%;
    margin: 0 auto;
    padding: 20px 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    box-sizing: border-box; /* ボーダーボックスモデルを使用 */
  }

  .box {
    width: 50%; /* スマートフォンで2列 */
  }
}

/*==動画設定============================================================================*/

  .movie_box {
      width: 100%;
      aspect-ratio: 16 / 9;
    }

  .movie_box iframe {
      width: 100%;
      height: 100%;
    }



/*==投票ボタン============================================================================*/

button {
  max-width: 100%;
  margin: 0 auto;
  border: none;
  background-color: #fff;
}

a.btn_vote {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 50px;
  position: relative;
  background: #00ccc0;
  border: 1px solid #00ccc0;
  border-radius: 30px;
  box-sizing: border-box;
  padding: 0 45px 0 25px;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.3;
  text-align: left;
  text-decoration: none;
  transition-duration: 0.3s;
}

a.btn_vote:before {
  content: '';
  width: 8px;
  height: 8px;
  border: 0;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: rotate(45deg);
  position: absolute;
  top: 50%;
  right: 25px;
  margin-top: -6px;
}

a.btn_vote:hover {
  background: #fff;
  color: #00ccc0;
  border: 2px solid #00ccc0;
}

a.btn_vote:hover:before {
  border-top: 2px solid #00ccc0;
  border-right: 2px solid #00ccc0;
}


@media (max-width: 600px) {


    a.btn_vote {
      display: flex;
      justify-content: center;
      align-items: center;
      width: 100%;
      height: 40px;
      position: relative;
      background: #00ccc0;
      border: 1px solid #00ccc0;
      border-radius: 30px;
      box-sizing: border-box;
      padding: 0 20px 0 10px;
      color: #fff;
      font-size: 8px;
      font-weight: 700;
      letter-spacing: 0.1em;
      line-height: 1.3;
      text-align: left;
      text-decoration: none;
      transition-duration: 0.3s;
    }

    a.btn_vote:before {
      content: '';
      width: 8px;
      height: 8px;
      border: 0;
      border-top: 2px solid #fff;
      border-right: 2px solid #fff;
      transform: rotate(45deg);
      position: absolute;
      top: 50%;
      right: 10px;
      margin-top: -6px;
    }
  
}


/*==投票ボタン============================================================================*/


a.btn_vote_page {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 50px;
  position: relative;
  background: #ff5e00;
  border: 1px solid v;
  border-radius: 30px;
  box-sizing: border-box;
  padding: 0 45px 0 25px;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.3;
  text-align: left;
  text-decoration: none;
  transition-duration: 0.3s;
}

a.btn_vote_page:before {
  content: '';
  width: 8px;
  height: 8px;
  border: 0;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: rotate(45deg);
  position: absolute;
  top: 50%;
  right: 25px;
  margin-top: -6px;
}

a.btn_vote_page:hover {
  background: #fff;
  color: #ff5e00;
  border: 2px solid #ff5e00;
}

a.btn_vote_page:hover:before {
  border-top: 2px solid #ff5e00;
  border-right: 2px solid #ff5e00;
}


@media (max-width: 600px) {


    a.btn_vote_page {
      display: flex;
      justify-content: center;
      align-items: center;
      width: 100%;
      height: 40px;
      position: relative;
      background: #ff5e00;
      border: 1px solid #ff5e00;
      border-radius: 30px;
      box-sizing: border-box;
      padding: 0 20px 0 10px;
      color: #fff;
      font-size: 20px;
      font-weight: 700;
      letter-spacing: 0.1em;
      line-height: 1.3;
      text-align: left;
      text-decoration: none;
      transition-duration: 0.3s;
    }

    a.btn_vote_page:before {
      content: '';
      width: 8px;
      height: 8px;
      border: 0;
      border-top: 2px solid #fff;
      border-right: 2px solid #fff;
      transform: rotate(45deg);
      position: absolute;
      top: 50%;
      right: 10px;
      margin-top: -6px;
    }
  
}

/*==戻るボタン============================================================================*/

a.btn_back_page {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 50px;
  position: relative;
  background: #ff5e00;
  border: 1px solid v;
  border-radius: 30px;
  box-sizing: border-box;
  padding: 0 25px 0 45px;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.3;
  text-align: left;
  text-decoration: none;
  transition-duration: 0.3s;
  margin-bottom:10px;
}

a.btn_back_page:before {
  content: '';
  width: 8px;
  height: 8px;
  border: 0;
  border-bottom: 2px solid #fff;
  border-left: 2px solid #fff;
  transform: rotate(45deg);
  position: absolute;
  top: 50%;
  left: 25px;
  margin-top: -6px;
}

a.btn_back_page:hover {
  background: #fff;
  color: #ff5e00;
  border: 2px solid #ff5e00;
}

a.btn_back_page:hover:before {
  border-bottom: 2px solid #ff5e00;
  border-left: 2px solid #ff5e00;
}


@media (max-width: 600px) {


    a.btn_back_page {
      display: flex;
      justify-content: center;
      align-items: center;
      width: 100%;
      height: 40px;
      position: relative;
      background: #ff5e00;
      border: 1px solid #ff5e00;
      border-radius: 30px;
      box-sizing: border-box;
      padding: 0 10px 0 20px;
      color: #fff;
      font-size: 20px;
      font-weight: 700;
      letter-spacing: 0.1em;
      line-height: 1.3;
      text-align: left;
      text-decoration: none;
      transition-duration: 0.3s;
    }

    a.btn_back_page:before {
      content: '';
      width: 8px;
      height: 8px;
      border: 0;
      border-bottom: 2px solid #fff;
      border-left: 2px solid #fff;
      transform: rotate(45deg);
      position: absolute;
      top: 50%;
      left: 10px;
      margin-top: -6px;
    }
  
}

/*==QR============================================================================*/
.entry .content_box .txt_box img {
  margin: auto;
  display: block;
}


/*==[バナー]===========================================================================================*/

.banner-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: center; /* 中央寄せを追加 */
}

.banner {
  box-sizing: border-box;
  width: 100%; /* スマートフォンでは100%の幅に設定 */
  max-width: 320px;
  margin: 1rem 0;
  background-color: #f2f2f2;
  text-align: center;
  padding: 20px;
  flex: 1;
}

@media (min-width: 601px) {
  .banner {
    width: calc(50% - 10px);
    margin-right: 20px; /* パソコンの場合、右側に20pxのマージンを追加 */
  }
}

/*==[グーグルマップ]===========================================================================================*/

  /* グーグルマップを包むコンテナ */
  .map-container {
      overflow: hidden;
      position: relative;
      width: 100%;
      height: 400px; /* 高さを400pxに設定 */
    }

    /* グーグルマップのiframe要素 */
    .map-container iframe {
      border: 0;
      height: 100%;
      width: 100%;
      position: absolute;
      top: 0;
      left: 0;
    }