body{
        background-image: url("img/stripe3.png");
  background-repeat: repeat;     /* ← タイル状に並べる */
  background-position: top left; /* ← 左上から開始 */
  font-family: "nos", sans-serif;

}
@font-face {
  font-family: "nos";
  src: url("font/Saitamaar.ttf") format("truetype");
}
/* コンテンツ全体の囲い */
.contents {
  display: flex;
  justify-content: center;
}

/* 実際に余白を作るためのコンテナ */
.container {
    border-radius: 10px;
  width: 90%;          /* スマホなどでは画面の90%の幅にする（左右5%ずつの余白） */
  max-width: 1000px;   /* PCなどの大きな画面で広がりすぎないように制限 */
  margin: 0 auto;      /* 中央揃え */
  line-height: 1.8;    /* 文字の行間を広げて読みやすく */
}

/* 見出しの装飾（お好みで） */
.container h2 {
  border-bottom: 2px solid #ccc;
  padding-bottom: 10px;
  margin-bottom: 20px;
}
/* タブ全体のスタイル */
.tab-wrap {
  margin-top: 20px;
}

/* ラジオボタンは隠す */
input[name="tab_btn"] {
  display: none;
}

/* タブボタンの並び */
.tab-area {
  display: flex;
  justify-content: space-around;
  align-items: flex-end; /* 下揃えにすることで浮き上がりを表現 */
  gap: 5px;
}

/* タブボタンのデザイン */
/* タブボタンのデザイン（基本状態） */
/* タブボタンのデザイン（基本状態） */
/* タブボタンのデザイン（基本状態） */
.tab-area label {
  flex: 1;
  text-align: center;
  cursor: pointer;
  background: #dcdcdc;
  border: 2px solid #000;
  border-bottom: 2px solid #000; 
  border-radius: 10px 10px 0 0;
  transition: all 0.2s ease; /* transitionをallに変更 */
  font-size: 0.9em;
  font-weight: bold;
  position: relative;
  z-index: 4;
  top: 2px;
}

/* 選択された時の動き */
#tab1:checked ~ .tab-area .tab1_label,
#tab2:checked ~ .tab-area .tab2_label,
#tab3:checked ~ .tab-area .tab3_label,
#tab4:checked ~ .tab-area .tab4_label {
  background: #ffffff;
  /* transformではなく、margin-topとpadding-bottomで高さを調整 */
  margin-top: -10px; 
  padding-bottom: 22px; /* 上に上がった分(10px)＋元の隙間分、下に足を伸ばす */
  
  /* 下線を背景と同じ白にして、パネルの黒線を「上から塗りつぶす」 */
  border-bottom: 2px solid #ffffff; 
  z-index: 10; /* パネル(z-index:5)より確実に上にする */
  color: #000; /* 文字色 */
}

/* パネルエリア */
.panel-area {
  background: #fff;
  border: 1px solid #000;
border-radius: 0 0 10px 10px;
  padding: 20px;
  position: relative;
  z-index: 5; /* ボタン(通常時4)より上、選択ボタン(10)より下 */
}

/* 初期状態は中身を隠す */
.tab-panel {
  display: none;
}

/* 選択されたパネルだけ表示 */
#tab1:checked ~ .panel-area #panel1,
#tab2:checked ~ .panel-area #panel2,
#tab3:checked ~ .panel-area #panel3,
#tab4:checked ~ .panel-area #panel4 {
  display: block;
}

/* スマホ対応：文字サイズ調整 */
@media screen and (max-width: 480px) {
    img {
            image-rendering: auto !important; /* ブラウザの標準的な滑らかな表示に戻す */

  max-width: 100%;
  height: auto;
}

/* リンク集のバナーなどが小さくなりすぎないように調整 */
.banner-grid img {

  max-width: 100%;
  height: auto;
}
  .tab-area label {
    font-size: 0.7em;
    padding: 8px 0;
  }
}
.title-section {
  background-image: url("img/stripe.png");
  background-repeat: repeat;     /* ← タイル状に並べる */
  background-position: top left; /* ← 左上から開始 */
        border: 3px double #000;
        border-radius: 30px;
        padding: 10px;
        box-shadow: 6px 6px 0px #000;
        margin: 10px 0;
    font-weight: bold;
    }
    .content-wrapper {  grid-template-columns: 1fr 1px 1fr; gap: 10px; }
    .divider { background-color: #ccc; }
    .menu-item { display: flex; align-items: center; margin-bottom: 10px; }
    .desc { font-size: 15px; margin-left: 10px; color: #000; }
    .icon-text { display: flex; align-items: flex-start; gap: 8px; margin-bottom: 5px;}

    /* --- サイトルール(ソース6)用 --- */
    .title-orange {
        color: #ff9900;
        font-size: 24px;
        font-weight: bold;
        text-shadow: 1px 1px 0px #000;
    }

    /* --- リンク集(ソース5, 7)用 --- */
/* --- リンク集(ソース5, 7)用 --- */
.banner-grid {
    display: grid;
    /* バナーのサイズに合わせて、自動で列数を調整しつつ中央に寄せる */
    grid-template-columns: repeat(auto-fit, minmax(200px, max-content));
    gap: 15px;            /* バナー同士の隙間を少し広げると見やすくなります */
    justify-content: center; /* グリッド全体を中央に寄せる */
    justify-items: center;   /* 各アイテム（バナー画像）自体をセル内の中央に置く */
    background: #fff;
    padding: 15px;
    margin-top: 10px;
}

.banner-grid a {
    display: flex;        /* aタグをフレックスにして中央寄せを確実に */
    justify-content: center;
    align-items: center;
    padding: 2px;
}

.banner-grid img {
    max-width: 100%;
    height: auto;
    display: block;       /* 画像の下にできる隙間を解消 */
}
    .my-site-info {
        background: #fff;
        border: 3px double #000;
        padding: 15px;
        margin: 15px 0;
        font-size: 14px;
    }
    .banner-box {
        background-color: #000; color: #fff; width: 170px;
        padding: 5px; text-align: center; font-size: 12px; margin-bottom: 10px;
    }
    /* --- サイドボタン（メール・サイトマップ）のレイアウト --- */

/* --- サイドボタン全体の囲い --- */
.side-button-list {
  display: flex;
  gap: 15px;            /* ボタンセット同士の隙間 */
  flex-direction: row;  /* PCでは横に並べる */
  align-items: center;
  margin-top: 10px;
}

/* 画像とテキストを横に並べる設定 */
.side-link-group {
  display: flex;
  align-items: center;  /* 垂直中央 */
  gap: 8px;             /* 画像と文字の間の隙間 */
  text-decoration: none;
  color: #000;          /* 文字色 */
}

.side-text {
  font-size: 15px;      /* 説明文のサイズ */
}

.side-link-group img {
  display: block;
  width: auto;          /* 画像のサイズに合わせて調整 */
  height: auto;
}

/* --- スマホ対応（480px以下） --- */
@media screen and (max-width: 480px) {
  .side-button-list {
    flex-direction: column; /* スマホでは縦に1列 */
    align-items: flex-start; /* 左寄せ */
    gap: 10px;
  }
  
  .side-link-group {
    width: 100%;
  }
}
/* --- パネル内メニューのレイアウト --- */

.left-menu {
  display: flex;
  flex-direction: column;
  align-items: center; /* 子要素を中央に配置 */
  width: 100%;
}

/* 4つのアイテムを並べるグリッド */
.panel-menu-grid {
  display: grid;
  /* PC・タブレット：2列（コンテンツの幅に合わせる） */
  grid-template-columns: repeat(2, auto);
  /* グリッド全体を中央寄せ */
  justify-content: center; 
  /* アイテム同士の隙間（上下15px、左右40px） */
  gap: 15px 40px;
  margin: 20px auto;
  width: fit-content; /* 中身の幅に合わせることで中央寄せを確実に */
}

/* 個別のアイテム（アイコンと文字） */
.menu-item {
  display: flex;
  align-items: center;
  justify-content: flex-start; /* アイコンと文字は左詰めでセットにする */
  min-width: 180px; /* 4つの幅を揃えたい場合は数値を調整 */
}

.desc {
  font-size: 15px;
  margin-left: 10px;
  color: #000;
  white-space: nowrap; /* 説明文が勝手に改行されないようにする */
}

/* --- スマホ対応（480px以下） --- */
@media screen and (max-width: 1024px) {
  .panel-menu-grid {
    /* スマホでは1列にする */
    align-items: center; /* 子要素を中央に配置 */
    grid-template-columns: 1fr; 
    /* 左寄せ（または中央寄せなら center） */
    justify-content: start; 
    gap: 10px;
  }

  .desc {
    white-space: normal; /* スマホでは長い場合に改行を許可 */
  }
  /* 「サイトマップ」の見出し画像（0004.png）を中央に寄せる */
img[src="img/0004.png"] {
    display: block;      /* ブロック要素にする */
    margin: 0px auto;   /* 左右をautoにして中央寄せ（上下に20pxの余白） */
    max-width: 100%;     /* スマホではみ出さないように */
    height: auto;
}
}
