/*========================
  ピクセルフォント読み込み
========================*/
@font-face {
  font-family: 'PixelMplus';
  src: url('fonts/PixelMplus10-Regular.woff2') format('woff2');
  font-weight: normal;
  font-style: normal;
}

/* 全体に適用 */
* {
  font-family: 'PixelMplus', monospace !important;
}

/* --- ベース設定 --- */
body {
  margin: 0;
  padding: 0;
  font-family: sans-serif;
  background-image: url(images/bg.PNG);
  background-size:150%; /*背景画像のサイズ指定*/
  line-height: 1.5;
}

/*ここからハンバーガーメニュー*/
.header-container_01 {
  position: relative;
  margin: 0 !important;
  height: auto; /*固定の高さをやめる*/
  font-family:serif; /*フォントを変えるとこ*/
}

.header__navi_01 {
  position: fixed;      /* 画面に固定 */
  top: 0;
  left: 0;              /* 左からスライドイン */
  width: 70%;
  height: 100vh;        /* 画面全体の高さ */
  background: #f76c3c;
  transform: translateX(-130%); /* 最初は画面外 */
  transition: transform 0.4s;  /*出てくる早さ*/
  z-index: 1500;
  overflow-y: auto;     /* コンテンツが長い場合スクロール可能に */
}

.header__navi_01.active {
  transform: translateX(0%);
}

.header__navi_01 ul {
  position: fixed;      /* 文字を画面内で固定 */
  top: 50%;             /* 画面中央に配置 */
  left: 0;
  width: 100%;
  transform: translateY(-50%); /* 正確に中央に */
  padding-left: 20px;
  text-align: left;
}

.header__navi_01 li {
  list-style: none;
  margin-bottom: 42px; /*テキストの間の間隔*/
}

.header__navi_01 li a {
  color: #fff;
  text-decoration: none;
   border-bottom: 3px dotted #fff; /* ← 点線の下線 */
  padding-bottom: 4px;            /* 下線と文字の間隔調整 */
  display: block;       /* ブロックにすることで幅いっぱいに伸びる */
  width: 100%;          /* 幅100% */
  transition: all 0.2s; /* 色変化をスムーズに */
  transition: border-color 0.3s;
}

/* ホバー時 */
.header__navi_01 li a:hover {
  color: #ffeaa7;       /* マウスオーバーで色を変える */
  border-bottom-color: #ffeaa7;
}

/* 押したとき */
.header__navi_01 li a:active {
  color: #35dbf1;       /* 押した瞬間の色 */
  background-color: rgba(255,255,255,0.1); /* 背景を少し変える */
  transform: translateY(1px); /* 軽く沈み込むように */
}

/* メニューボタン */
.sp-menu-btn_01 {
  background: #f76c3c;
  border: none;
  position: fixed; /*スクロールしても位置固定*/
  right: -5px; /*ボタンの左右の位置調整*/
  top: 5px;  /*ボタンの上下位置*/
  width: 60px;
  height: 60px;
  cursor: pointer;
  z-index: 2000;
  border-radius: 50%; /*ボタンの角丸調整*/
  transform: scale(0.5);/*ボタンのサイズ調整*/
}

.sp-menu-btn_01 .line {
  display: block;
  position: absolute;
  width: 30px;
  height: 4px;
  right: 15px;
  background: #fff;
  transition: 0.3s ease-in-out;
}

.sp-menu-btn_01 span:nth-child(1) {
  top: 20px;
}

.sp-menu-btn_01 span:nth-child(2) {
  top: 28px;
}

.sp-menu-btn_01 span:nth-child(3) {
  top: 36px;
}

/* メニューが開いているときのボタン */
.sp-menu-btn_01.active span:nth-child(1) {
  top: 28px;
  transform: rotate(-45deg);
}

.sp-menu-btn_01.active span:nth-child(2) {
  opacity: 0;
}

.sp-menu-btn_01.active span:nth-child(3) {
  top: 28px;
  transform: rotate(45deg);
}

.header-container_01 h1 {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 300px;
  font-weight: normal;
}
/**ここまでハンバーガーメニュー*/


/* ヘッダー */
.header {
  position: relative; /* デフォルトの流れに戻す */
  width: 100%;
  z-index: 1; /* 特に必要なければ消してもOK */
}

.header-img {
  width: 100%;
  display: block;
}

/* ヘッダー下のロゴ画像 */
.main-visual {
  display: flex;
  justify-content: center; /* 水平方向の中央 */
  align-items: center;     /* 垂直方向の中央（高さ指定時） */
  margin: 20px 0;          /* 上下に余白 */
}

.main-visual img {
  max-width: 60%;   /* 画面幅に収まるよう調整(ロゴ画像サイズ) */
  height: auto;     /* アスペクト比を維持 */
  display: block;   /* 中央寄せ */
}

/*お知らせの上の部分の余白調整*/
.section:first-of-type {
  margin-top: 1px; /* ここで上の余白を調整 */
  padding-top: 10px; /* 内側の余白も調整可能 */
}

/* 最後のセクションの下線を消す */
.section:last-of-type {
  border-bottom: none;
}


/* メインコンテンツ */
.main-content {
  padding-top: 0px; /* ヘッダー分の余白 */
  padding-bottom: 60px;
}

/*お知らせスクロール*/
/* 縦スクロールエリア */
.scroll-box {
  max-height: 110px;   /* 表示領域の高さを指定 */
  overflow-y: auto;    /* 縦方向にスクロール可能にする */
  padding-right: 10px; /* スクロールバーが被らないよう余白 */
  border: 2px solid #f76c3c;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.7); /* 半透明の背景にして読みやすく */
  width: 90%;        /* 横幅を親要素に対して80% */
  margin: 0 auto;    /* 中央に寄せる */
}

/* スクロールバーを少しおしゃれに */
.scroll-box::-webkit-scrollbar {
  width: 8px;
}
.scroll-box::-webkit-scrollbar-thumb {
  background: #f76c3c;
  border-radius: 4px;
}
.scroll-box::-webkit-scrollbar-track {
  background: #ffeaa7;
}

/* お知らせ部分の文字調整 */
.scroll-box p {
  font-size: 14px;    /* 文字サイズ */
  color: #351a11;     /* 文字色（ここを好きな色に変更） */
  line-height: 1.6;   /* 行間を少し広めに */
  margin: 4px 0;      /* 上下の余白を調整 */
}

/* お知らせセクションの本文 */
.section.notice p {
  font-size: 10px;   /* 好きなサイズに調整 */
  line-height: 1.6;  /* 行間を広めにして読みやすく */
}

/* 日付部分は小さめ */
.section.notice .date {
  font-size: 12px;
  color: #a38b6f;
}


/* 2番目のsection（当サイトについて）のp */
.section:nth-of-type(2) p {
  font-size: 14px;
  color: #351a11;
  line-height: 1.8;
}



/* 各セクション */
.section {
  padding: 30px 20px;
  border-bottom: 3px dashed #ff6600;
}

.section h2 {
  font-size: 20px;
  margin-bottom: 10px;
  font-weight: bold;
  color: #38160c;
   padding: 0.25em 0.5em;/*上下 左右の余白*/
  color: #38160c;/*文字色*/
  background: transparent;/*背景透明に*/
  border-left: solid 5px #f76c3c;/*左線*/
}

.section .date {
  font-size: 14px;
  color: #a38b6f;
  margin-bottom: 5px;
}

/* コンタクト */
.contact-info p {
  margin: 8px 0;
}

.contact-form {
  margin-top: 20px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

/* コンタクト内のp要素 */
.contact-info p {
  font-size: 15px;   /* 文字サイズ（調整OK） */
  color: #351a11;    /* 好きな色に変更 */
  line-height: 1.6;  /* 行間を少し広めに */
}

/* コンタクト内のリンク */
.contact-info a {
  color: #f76c3c;        /* リンク文字色 */
  text-decoration: none; /* 下線を消す */
}

.contact-info a:hover {
  color: #35dbf1;        /* ホバー時の色 */
  text-decoration: underline;
}

/*コンタクトひとことおくる*/
.contact-form textarea {
  width: 80%;
  height: 60px;
  padding: 10px;
  font-size: 13px;
  border: 2px solid #3f2c1f;
  border-radius: 6px;
  resize: none;
}

.contact-form button {
  align-self: flex-end;
  padding: 6px 16px;
  font-size: 16px;
  background-color: #f76c3c;
  color: #fff;
  border: none;
  border-radius: 6px;
  cursor: pointer;
}

.contact-form button:hover {
  background-color: #3a2e25;
}

/* 簡易フォームです */
.form-note {
  font-size: 12px;
  color: #a38b6f;
  margin-top: 4px;     /* テキストエリアのすぐ下に */
  margin-bottom: 20px; /* 下に少し余裕 */
  display: block;
  text-align: center;  /* 中央寄せ */
}

/* iPad mini縦向き対応 */
@media screen and (max-width: 820px) and (orientation: portrait) {
  .form-note {
    margin-top: 6px;  /* 少しだけ間隔を確保して重ならない */
    font-size: 12px;  /* 小さめのまま */
  }
}


/* フッター */
/* htmlとbodyを全画面にして余白を消す */
html, body {
  height: 100%;
  margin: 0;   /* デフォルトマージンを消す */
  padding: 0;
}

/* ページ全体を縦フレックス */
body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

/* メインコンテンツを伸ばす */
.main-content {
  flex: 1 0 auto;
  margin: 0;        /* mainの余白を消す */
  padding-bottom: 0; /* フッターの高さ分の余白が不要なら0に */
}

/* 各セクションのマージン調整 */
.section {
  margin: 0;        /* 上下余白を必要に応じて調整 */
  padding: 30px 20px;
}

/* フッター */
.footer {
  text-align: center;
  padding: 1px;
  background-color: #ff6600;
  color: white;
  flex-shrink: 0;
}


/* --- スマホ向け調整 --- */
@media (max-width: 600px) {
  .footer-btn {
    font-size: 14px;
    padding: 10px 14px;
    margin: 0 5px;
  }
}


/* 送信完了・失敗メッセージ */
.feedback {
  text-align: center;
  font-size: 14px;
  margin-top: 10px;
  font-weight: bold;
}

.feedback.success {
  color: green;
}

.feedback.error {
  color: red;
}


/* セット全体にアニメーションをかける */
.animated-bg {
  position: fixed;
  top: 20%;
  left: 90%;
  width: 100px;
  height: 100px;
  background: url('images/inseki.gif') no-repeat center/contain;
  z-index: -1;                 /* ← 背景のまま */
  animation: fly-left-down 15s linear infinite;
}

.meteor-link {
  position: fixed;
  top: 20%;
  left: 90%;
  width: 100px;
  height: 100px;
  z-index: 9999;                /* ← クリック判定は前面 */
  background: transparent;      /* 完全透明 */
  animation: fly-left-down 15s linear infinite;
}

@keyframes fly-left-down {
  0%   { transform: translate(0, 0); opacity: 1; }
  80%  { transform: translate(-80vw, 80vh); opacity: 1; }
  100% { transform: translate(-100vw, 120vh); opacity: 0; }
}

/* --- iPad mini縦向き（768x1024）でヘッダーとロゴが重なるのを防ぐ --- */
@media screen and (min-width: 760px) and (max-width: 820px) and (orientation: portrait) {
  .header {
    position: relative;
    margin-bottom: 80px; /* ← ヘッダー画像の下にしっかり余白を作る */
  }

  .main-visual {
    margin-top: 60px !important; /* ロゴの上にさらに余白を追加 */
  }

  .main-visual img {
    max-width: 50%; /* ロゴサイズを少し縮小（必要なら） */
    height: auto;
  }
}