@charset "UTF-8";
body {
  padding: 90px 0 0; }

/************************************************/
.page_ttl_txt {
  width: 100%;
  background-color: #009B63;
  color: #fff;
  padding: 50px 0; }
  .page_ttl_txt p {
    max-width: 1200px;
    letter-spacing: 0.05em;
    width: calc(100% - 100px);
    margin: 0 auto;
    font: 3rem/2em "Noto Sans JP", YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
    font-weight: 700;
    text-align: justify;
    text-justify: inter-ideograph; }

/*max-width:1280px*/
/*max-width:1024px*/
@media (max-width: 768px) {
  .page_ttl_txt p {
    max-width: 640px;
    width: calc(100% - 60px);
    font: 2.4rem/2em "Noto Sans JP", YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
    font-weight: 700; } }
/*max-width:768px*/
@media (max-width: 480px) {
  .page_ttl_txt {
    padding: 35px 0; }
    .page_ttl_txt p {
      width: calc(100% - 40px);
      font: 1.8rem/2em "Noto Sans JP", YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
      font-weight: 700; } }
/*max-width:480px*/
/************************************************/
.greeting {
  padding: 70px 0 100px;
  max-width: 1200px;
  width: calc(100% - 100px);
  margin: 0 auto; }
  .greeting h2 {
    font: 3.6rem/1.5em "Noto Sans JP", YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
    font-weight: 700;
    margin: 0 0 75px;
    letter-spacing: 0.05em; }
    .greeting h2 small {
      display: block;
      padding: 0 0 0 25px;
      position: relative;
      font: 1.6rem/1.5em "Oswald", Arial, Helvetica, "sans-serif";
      font-weight: 400;
      color: #009B63; }
      .greeting h2 small:before {
        display: block;
        width: 18px;
        height: 2px;
        background-color: #009B63;
        top: 50%;
        left: 0%;
        transform: translate(0%, -50%);
        position: absolute;
        content: ""; }
  .greeting h3 {
    letter-spacing: 0.05em;
    color: #009B63;
    font: 5.4rem/1.5em "Noto Sans JP", YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
    font-weight: 700;
    letter-spacing: 0.05em;
    margin: 0 0 80px; }
  .greeting .greeting_txt {
    margin: 0 0 60px; }
    .greeting .greeting_txt p {
      text-align: justify;
      text-justify: inter-ideograph;
      margin: 0 0 40px;
      font: 1.8rem/2.4em "Noto Sans JP", YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
      font-weight: 400;
      letter-spacing: 0.05em; }
  .greeting .greeting_pic {
    max-width: 500px;
    margin: 0 0 0 auto; }
    .greeting .greeting_pic img {
      width: 100%;
      margin: 0 0 15px; }
    .greeting .greeting_pic p {
      font: 1.6rem/1em "Noto Serif", YuMincho, "Yu Mincho", "Hiragino Mincho ProN", "serif";
      font-weight: 400;
      letter-spacing: .05em;
      text-align: center; }

/*max-width:1280px*/
@media (max-width: 1024px) {
  .greeting {
    width: calc(100% - 60px); }
    .greeting h3 br {
      display: none; }
    .greeting h3 span {
      display: block; } }
/*max-width:1024px*/
@media (max-width: 768px) {
  .greeting {
    max-width: 640px;
    width: calc(100% - 60px); }
    .greeting h2 {
      margin: 0 0 30px; }
    .greeting h3 {
      font: 3.6rem/1.8em "Noto Sans JP", YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
      font-weight: 700; }
      .greeting h3 br {
        display: none; }
      .greeting h3 span {
        display: block; }
    .greeting .greeting_txt {
      margin: 0 0 30px; }
      .greeting .greeting_txt p {
        font: 1.6rem/2.4em "Noto Sans JP", YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
        font-weight: 400; }
    .greeting .greeting_pic {
      max-width: 300px;
      margin: 0 0 0 auto; }
      .greeting .greeting_pic img {
        width: 100%;
        margin: 0 0 15px; } }
/*max-width:768px*/
@media (max-width: 480px) {
  .greeting {
    padding: 50px 0 100px;
    width: calc(100% - 40px); }
    .greeting h2 {
      font: 2.6rem/1.5em "Noto Sans JP", YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
      font-weight: 700;
      margin: 0 0 45px; }
      .greeting h2 small {
        padding: 0 0 0 25px;
        position: relative;
        font: 1.4rem/1.5em "Oswald", Arial, Helvetica, "sans-serif";
        font-weight: 400;
        color: #009B63; }
        .greeting h2 small:before {
          width: 10px;
          height: 2px;
          top: 55%;
          left: 8px; }
    .greeting h3 {
      font: 2.7rem/2em "Noto Sans JP", YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
      font-weight: 700;
      margin-bottom: 30px; }
    .greeting .greeting_txt p {
      font: 1.6rem/2.4em "Noto Sans JP", YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
      font-weight: 400; }
    .greeting .greeting_pic {
      max-width: 260px;
      margin: 0  auto; } }
/*max-width:480px*/
/************************************************/
.purpose {
  border: 5px solid #AFD6C6;
  max-width: 1200px;
  width: calc(100% - 100px);
  margin: 0 auto 130px;
  position: relative;
  padding: 60px 40px 50px; }
  .purpose h2 {
    text-align: center;
    position: absolute;
    top: -40px;
    left: 50%;
    transform: translate(-50%, 0%);
    text-align: center;
    padding: 0 15px;
    display: block;
    width: fit-content;
    background-color: #fff;
    font: 3.6rem/1.5em "Noto Sans JP", YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
    font-weight: 700;
    letter-spacing: 0.05em; }
    .purpose h2 small {
      display: block;
      position: relative;
      font: 1.6rem/1.5em "Oswald", Arial, Helvetica, "sans-serif";
      font-weight: 400;
      color: #009B63; }
  .purpose p {
    max-width: 1000px;
    margin: 0 auto;
    width: 100%;
    text-align: justify;
    text-justify: inter-ideograph;
    font: 1.8rem/2.4em "Noto Sans JP", YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
    font-weight: 400;
    letter-spacing: 0.05em; }

/*max-width:1280px*/
/*max-width:1024px*/
@media (max-width: 768px) {
  .purpose {
    width: calc(100% - 60px);
    max-width: 640px;
    padding: 65px 30px 30px;
    margin: 0 auto 100px; }
    .purpose h2 {
      top: -30px;
      left: 50%;
      font: 3.2rem/1.5em "Noto Sans JP", YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
      font-weight: 700; }
      .purpose h2 small {
        font: 1.5rem/1.5em "Oswald", Arial, Helvetica, "sans-serif";
        font-weight: 400; }
    .purpose p {
      font: 1.6rem/2.4em "Noto Sans JP", YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
      font-weight: 400; } }
/*max-width:768px*/
@media (max-width: 480px) {
  .purpose {
    width: calc(100% - 30px);
    padding: 55px 18px 30px;
    margin: 0 auto 80px; }
    .purpose h2 {
      top: -30px;
      left: 50%;
      font: 3rem/1.5em "Noto Sans JP", YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
      font-weight: 700; } }
/*max-width:480px*/
/************************************************/
.about {
  max-width: 1200px;
  width: calc(100% - 100px);
  margin: 0 auto; }
  .about dl {
    display: grid;
    grid-template-columns: 225px 1fr; }
  .about dt, .about dd {
    border-bottom: 1px solid #ccc;
    padding: 45px 0; }
  .about dt {
    font: 2.8rem/1.5em "Noto Sans JP", YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
    font-weight: 700;
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    justify-content: center;
    align-items: flex-start; }
    .about dt small {
      display: block;
      padding: 0 0 0 20px;
      position: relative;
      font: 1.4rem/1.5em "Oswald", Arial, Helvetica, "sans-serif";
      font-weight: 400;
      color: #009B63; }
      .about dt small:before {
        display: block;
        width: 15px;
        height: 2px;
        background-color: #009B63;
        top: 50%;
        left: 0%;
        transform: translate(0%, -50%);
        position: absolute;
        content: ""; }
  .about dd {
    font: 2rem/2em "Noto Sans JP", YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
    font-weight: 500; }
    .about dd li {
      position: relative;
      padding: 0 0 0 2.0rem; }
      .about dd li:before {
        position: absolute;
        content: "・";
        left: 0; }
  .about .flex {
    display: -webkit-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    -webkit-justify-content: flex-start;
    justify-content: flex-start;
    align-items: center; }
    .about .flex address {
      width: 100%;
      max-width: 100%; }
    .about .flex .map {
      display: block;
      width: 160px;
      height: 50px;
      border-radius: 25px;
      border: #707070 1px solid;
      text-align: center;
      font: 1.8rem/47px "Oswald", Arial, Helvetica, "sans-serif";
      font-weight: 400;
      letter-spacing: 0.05em;
      text-decoration: none; }

.gmap {
  position: relative;
  width: 100%;
  max-width: 100%;
  height: 500px;
  overflow: hidden;
  margin: 15px auto 0; }
  .gmap iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0; }

@media (max-width: 768px) {
  .about {
    max-width: 640px;
    width: calc(100% - 60px);
    margin: 0 auto; }
    .about dl {
      display: block; }
    .about dt {
      padding: 35px 0 15px;
      width: 100%;
      font: 2.5rem/1.5em "Noto Sans JP", YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
      font-weight: 700;
      border-bottom: none; }
      .about dt small {
        display: block;
        padding: 0 0 0 20px;
        position: relative;
        font: 1.4rem/1.5em "Oswald", Arial, Helvetica, "sans-serif";
        font-weight: 400;
        color: #009B63; }
    .about dd {
      width: 100%;
      padding: 0 0 35px;
      border-bottom: 1px solid #ccc;
      font: 1.8em/2em "Noto Sans JP", YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
      font-weight: 500; }
      .about dd li {
        position: relative;
        padding: 0 0 0 2.0rem; }
        .about dd li:before {
          position: absolute;
          content: "・";
          left: 0; }
    .about .flex {
      display: block; }
      .about .flex address {
        width: 100%;
        max-width: 500px;
        margin: 0 0 25px; }
      .about .flex .map {
        width: 160px;
        display: block;
        height: 50px;
        border-radius: 25px;
        border: #707070 1px solid;
        text-align: center;
        font: 1.8rem/47px "Oswald", Arial, Helvetica, "sans-serif";
        font-weight: 400;
        letter-spacing: 0.05em;
        text-decoration: none; }

  .gmap {
    height: 400px; } }
/*max-width:768px*/
@media (max-width: 480px) {
  .about {
    width: calc(100% - 40px);
    margin: 0 auto; }
    .about dl {
      display: block; }
    .about dt {
      padding: 35px 0 15px;
      width: 100%;
      font: 2.2rem/1.5em "Noto Sans JP", YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
      font-weight: 700;
      border-bottom: none; }
      .about dt small {
        padding: 0 0 0 25px;
        font: 1.4rem/1.5em "Oswald", Arial, Helvetica, "sans-serif";
        font-weight: 400; }
        .about dt small:before {
          width: 10px;
          height: 2px;
          top: 55%;
          left: 8px; }
    .about dd {
      padding: 0 0 35px;
      font: 1.6em/2em "Noto Sans JP", YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
      font-weight: 500; }
      .about dd li {
        position: relative;
        padding: 0 0 0 1.8rem; }
    .about .flex .map {
      font: 1.6rem/47px "Oswald", Arial, Helvetica, "sans-serif";
      font-weight: 400; } }
/*max-width:480px*/
/************************************************/
.about_symbol {
  max-width: 1200px;
  width: calc(100% - 100px);
  margin: 0 auto;
  padding: 225px 0 235px; }
  .about_symbol h2 {
    font: 4rem/1.5em "Noto Sans JP", YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
    font-weight: 700;
    margin-bottom: 140px;
    text-align: center;
    letter-spacing: 0.05em; }
  .about_symbol h3 {
    letter-spacing: 0.05em;
    font: 3rem/1.5em "Noto Sans JP", YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
    font-weight: 700;
    margin-bottom: 10px; }
    .about_symbol h3 br {
      display: none; }
  .about_symbol p {
    font: 2rem/2.2em "Oswald", Arial, Helvetica, "sans-serif";
    font-weight: 500;
    letter-spacing: 0.05em;
    text-align: justify;
    text-justify: inter-ideograph; }
    .about_symbol p span {
      color: #009B63; }
  .about_symbol .mark {
    margin: 0 0 65px;
    padding: 0 0 0 260px;
    position: relative; }
    .about_symbol .mark:before {
      top: 50%;
      left: 20px;
      transform: translate(0%, -50%);
      position: absolute;
      content: "";
      display: block;
      background: url("../image/logo.svg") center center no-repeat;
      background-size: contain;
      aspect-ratio: 46/45;
      width: 100%;
      max-width: 125px;
      height: auto; }
  .about_symbol .character {
    padding: 0 0 0 260px;
    position: relative; }
    .about_symbol .character:before {
      top: 50%;
      left: 0;
      transform: translate(0%, -50%);
      position: absolute;
      content: "";
      display: block;
      background: url("../image/character.svg") center center no-repeat;
      background-size: contain;
      aspect-ratio: 171/240;
      width: 100%;
      max-width: 150px;
      height: auto; }

/*max-width:1280px*/
/*max-width:1024px*/
@media (max-width: 768px) {
  .about_symbol {
    max-width: 640px;
    width: calc(100% - 60px);
    margin: 0 auto;
    padding: 125px 0 180px; }
    .about_symbol h2 {
      font: 3.5rem/1.8em "Noto Sans JP", YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
      font-weight: 700;
      margin-bottom: 80px;
      text-align: center;
      letter-spacing: 0.05em; }
    .about_symbol h3 {
      letter-spacing: 0.05em;
      font: 2.8rem/1.8em "Noto Sans JP", YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
      font-weight: 700;
      margin-bottom: 10px;
      text-align: center; }
      .about_symbol h3 br {
        display: block; }
    .about_symbol p {
      font: 1.8rem/2.2em "Oswald", Arial, Helvetica, "sans-serif";
      font-weight: 500; }
    .about_symbol .mark {
      margin: 0 0 65px;
      padding: 120px 0 0;
      position: relative; }
      .about_symbol .mark:before {
        top: 0;
        left: 50%;
        transform: translate(-50%, 0%);
        width: 100px; }
    .about_symbol .character {
      padding: 190px 0 0;
      position: relative; }
      .about_symbol .character:before {
        width: 125px;
        top: 0;
        left: 50%;
        transform: translate(-50%, 0%); } }
/*max-width:768px*/
@media (max-width: 480px) {
  .about_symbol {
    max-width: 640px;
    width: calc(100% - 30px);
    margin: 0 auto;
    padding: 100px 0 150px; }
    .about_symbol h2 {
      font: 3rem/1.8em "Noto Sans JP", YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
      font-weight: 700;
      margin-bottom: 80px; }
    .about_symbol h3 {
      letter-spacing: 0.05em;
      font: 2.5rem/1.8em "Noto Sans JP", YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
      font-weight: 700; }
    .about_symbol p {
      font: 1.6rem/2.2em "Oswald", Arial, Helvetica, "sans-serif";
      font-weight: 500; } }
/*max-width:480px*/
/************************************************/
