	body {
      margin: 0;
      font-family: sans-serif;
      display: flex;
      flex-direction: column;
      min-height: 100vh;
	  /*background-image:
      repeating-linear-gradient(0deg, transparent, transparent 50px, #f2fcf2 50px, #c7f1c7 100px),
      repeating-linear-gradient(-90deg, transparent, transparent 50px, #f2fcf2 50px, #c7f1c7 100px);*/
	  background-color: #f8f8f8
    }

    /* 共通ヘッダー（中央寄せ・最大幅820px） */
    .head {
      background: linear-gradient(0deg,#006400,#008000,#006400);
      color: white;
      padding: 5px 5px;
      display: grid;
      grid-template-rows: auto auto auto;
      gap: 5px;
	  box-sizing: border-box;
      max-width: 820px;
      margin: 0 auto;
      width: 100%;
	  text-align: center;
    }

	.head img{
	  border-radius: 5px;
	  display: block;
	  margin: auto;
	}
	
	.head h3 {
	  display: none;
    }

    .menu {
      display: flex;
      justify-content: center;
      gap: 20px;
	  background-color: #005500;
    }

    .menu a {
	  color: white;
	  text-decoration: none;
      padding: 8px 12px;
    }
	
	.menu a:hover {
	  color: #3cb371;
    }

    /* メニューオーバーレイ（PC） */
    .menu-container {
      position: relative;
    }

    .overlay-menu {
      display: none;
      position: absolute;
      top: 100%;
      left: 0;
      background-color: #007700;
      border: 1px solid #ccc;
      box-shadow: 0 2px 5px rgba(0,0,0,0.2);
      z-index: 1000;
      min-width: 200px;
    }

    .overlay-menu a {
      display: block;
      padding: 10px;
      text-decoration: none;
      color: white;
    }

    .overlay-menu a:hover {
      background-color: #77ff77;
	  color: black;
    }

    /* ハンバーガー（スマホ） */
    .hamburger {
      display: none;
      font-size: 30px;
      cursor: pointer;
      text-align: left;
      padding-left: 10px;
	  padding-right: 10px;
    }

    .menu-mobile {
      display: none;
      position: fixed;
      top: 80px;
      left: 0;
      width: 150px;
      background-color: #005500;
      padding: 20px;
      z-index: 999;
      box-shadow: 2px 0 5px rgba(0,0,0,0.3);
    }

    .menu-mobile a {
      display: block;
      color: white;
      text-decoration: none;
      margin-bottom: 10px;
    }

    .menu-mobile a:hover {
      background-color: #77ff77;
	  color: black;
    }

	.foot{
	  background-color: #006600;
      color: white;
      padding: 10px 20px;
      max-width: 780px;
      margin: 0 auto;
      width: 100%;
	  font-size: small;
	}
	
	.foot a{
	  display: inline-block;
	  padding: 10px 25px;
	  color: inherit;
	}
	
	.foot div span{
	  display: inline-block;
	}


    /* メインコンテンツ */
    .top_main {
      flex: 1;
      padding: 10px;
      display: grid;
      grid-template-columns: repeat(2, 400px);
      grid-auto-rows: 400px;
      gap: 20px;
      justify-content: center;
    }

	.top_main iframe {
	  border: none;
	  width: 90%;
	  height: 330px;
	}

    .grid-large,
	.grid1,
	.grid2,
	.grid3,
	.grid4 {
	  display: flex;
	  flex-direction: column;
	  justify-content: flex-start;
	  align-items: center;
	  position: relative;
	  border-left: 5px solid #006600;
	  border-right: 5px solid #efefef;
	  border-bottom: 5px solid #efefef;
    }

	.grid-large	{
      grid-column: span 2;
	  /*background-color: #fffffa;*/
	}

    .grid-label-large,
	.grid-label {
	  margin-bottom: 20px;
	  box-sizing: border-box;
	  width: 100%;
	  background-color: #006600;
	  padding-left: 10px;
	  font-weight: bold;
	  color: white;
	}
	
	.main {
	  max-width: 820px;
	  box-sizing: border-box;
	  width: 100%;
      padding: 10px;
      display: block;
	  justify-content: center;
	  align-items: center;
	  background-color: #ffffff;
	  margin: 0 auto;
	}
	
	.main h3 {
	  color: #006600;
	}
	
	.box_out {
	  background-color: #EFEFED;
	  margin-top: 1px;
	  margin-bottom: 5px;
	  padding: 5px;
	}

	.box_in {
	  background-color: #FFFFFF;
	  border: 1px solid #DCDCD8;
	  margin-bottom: 5px;
	  padding-top: 10px;
      padding-right: 20px;
	  padding-bottom: 10px;
	  padding-left: 20px;
	}
	
	.box_in p {
	  font-size: 13px;
	  padding: 5px;
	  line-height: 22px;
	  background-image: url(img/line.gif);
	  background-position: 0px 5px;
	  text-indent: 1em;
	  margin: 5px;
	}

	.box_out img {
	  margin-right: 1px;
	  margin-bottom: 1px;
	}
	
	.box_in img {
	  margin-right: 1px;
	  margin-bottom: 1px;
	  float: left;
	}

    /* スマホ表示用 */
    @media (max-width: 768px) {
	  .head {
        display: flex;
      }

	.head h3 {
	  display: inline-block;
      /*height: 100px;*/
	  font-size: 20px;
      text-align: center;
    }

	.head img{
	  display: none;
	}

    .menu {
        display: none;
    }

      .hamburger {
        display: inline-block;
      }

	  .top_main {
        margin-top: 20px;
        display: flex;
        flex-direction: column;
        align-items: center;
      }

	  .grid1,
	  .grid2 {
        display: none;
      }

      .grid-large,
	  .grid3,
	  .grid4 {
        width: 90%;
      }
	}