/* --- 全体・コンテナ設定 --- */
* { box-sizing: border-box; }

body {
  color: #444444;
  background-color: #66aa66;
  background-image: url(back.png);
  margin: 0;
  padding: 0;
  font-family: sans-serif;
}

div#container {
  border: solid 2px #bbffaa;
  padding: 20px;
  background-color: #ffffff;
  max-width: 725px;
  width: 95%;
  margin: 10px auto;
  position: relative;
  overflow: visible;
  text-align: left;
}

/* --- ヘッダー --- */
div#header {
  background-color: #66aa66;
  padding: 5px 20px;
  margin: -20px -20px 0 -20px;
}

div#header p {
  color: #ffffff;
  margin-top: 5px;
  font-size: 0.75em;
}

h1 {
  font-size: 1.25em;
  font-family: Verdana, Helvetica, sans-serif;
  color: #ffffff;
  margin-bottom: 0;
}

/* --- ナビゲーション（PC） --- */
#menu-toggle {
  display: none;
}

ul#main-nav {
  list-style-type: none;
  margin: 0 -20px;
  padding: 5px 20px;
  background-color: rgba(187, 255, 170, 0.5); /* 透過0.5 */
  backdrop-filter: blur(8px);                 /* ぼかし8px */
  -webkit-backdrop-filter: blur(8px);
  position: sticky;
  top: 0;
  z-index: 1000;
  display: flex;
  flex-wrap: wrap;
  /* border-bottom は削除済み */
}

li { display: inline; padding-right: 10px; font-size: 0.75em; }
li a { text-decoration: none; color: #33aa88; font-weight: bold; }
li a:hover { color: #88aaff; }

/* --- 見出し・本文（サブページ標準） --- */
h2 {
  font-size: 1em;
  border-left: solid 16px #66aa66;
  padding-left: 5px;
  margin-bottom: 0;
  margin-top: 30px;
}

/* サブページ用：下線付きh3 */
h3 { 
  font-size: 0.875em; 
  border-bottom: solid 2px #66aa66; 
  padding-bottom: 3px; 
}

h4 { 
  font-size: 0.85em; 
  margin-bottom: 0; 
  margin-top: 20px; 
  background-image: url(mark.png); 
  background-repeat: no-repeat; 
  background-position: 0 1px; 
  padding-left: 20px; 
}

p { font-size: 0.75em; line-height: 1.4; }
.right { text-align: right; font-size: 0.875em; }

address {
  font-size: 0.75em;
  font-style: normal;
  background-color: #bbffaa;
  color: #33aa88;
  padding: 5px;
  margin: 20px -20px -20px -20px;
}

/* --- テーブル・ボタン --- */
table { font-size: 0.75em; margin-bottom: 20px; width: 100%; border-collapse: collapse; }
th, td { padding: 8px; text-align: center; border: solid 1px #aa8844; }
th { background-color: #ffdd44; }
td { background-color: #ffffcc; }

.btn {
  border-radius: 5px;
  background-color: rgb(49, 192, 168);
  padding: 10px;
  text-decoration: none;
  color: white;
  display: inline-block;
  margin: 10px 0;
}

/* --- スマホ用レスポンシブ --- */
@media screen and (max-width: 768px) {
  #menu-toggle {
    display: flex;
    position: fixed;
    top: 15px;
    right: 15px;
    width: 50px;
    height: 50px;
    background-color: #33aa88;
    color: white;
    border-radius: 50%;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    z-index: 2000;
    box-shadow: 0 2px 10px rgba(0,0,0,0.3);
    cursor: pointer;
  }
  
  #menu-toggle span { display: none; }

  ul#main-nav {
    position: fixed;
    top: 0;
    right: -250px;
    width: 250px;
    height: 100vh;
    flex-direction: column;
    background-color: rgba(255, 255, 255, 0.5);
    padding: 70px 20px 20px 20px;
    transition: right 0.3s ease;
    margin: 0;
    border-bottom: none;
    box-shadow: -2px 0 10px rgba(0,0,0,0.2);
  }

  ul#main-nav.open { right: 0; }
  li { display: block; padding: 15px 0; border-bottom: 1px solid rgba(0,0,0,0.05); }
  li a { font-size: 1.1em; }

  /* 画像巨大化防止 */
  p#counter img, img[src*="new.gif"], h3 img, h4 img {
    width: auto !important;
    height: auto !important;
    max-width: none !important;
  }

