@charset "UTF-8";
body {
  position: relative; }

body {
  padding: 120px 0 0 0; }

@media (max-width: 1024px) {
  body {
    padding: 100px 0 60px; } }
/*max-width:1024px*/
@media (max-width: 768px) {
  body {
    padding: 80px 0 60px; } }
/*max-width:480px*/
@media (max-width: 480px) {
  body {
    padding: 70px 0 55px; } }
/*max-width:480px*/
.anchor {
  display: block;
  position: relative;
  z-index: -1;
  pointer-events: none;
  padding: 100px 0 0 0;
  margin: -100px 0 0 0; }

/*********************/
header {
  position: fixed;
  width: 100%;
  height: 120px;
  background-color: #fff;
  z-index: 9999;
  transition: .3s;
  top: 0;
  left: 0; }
  header.active {
    background-color: #fff; }
    header.active .header_box h1 a {
      color: #000; }
  header.toggle_active {
    display: none; }

.header_box {
  width: calc(100% - 40px);
  height: 100%;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  margin: 0 auto; }
  .header_box h1 {
    width: 260px;
    margin: 0 50px 0 0; }
    .header_box h1 a {
      transition: .3s;
      text-decoration: none;
      font: 2.4rem/78px "Noto Sans", sans-serif;
      font-weight: 700;
      letter-spacing: 0.02em;
      display: block;
      height: 80px;
      background: url("../images/logo.webp") center left no-repeat;
      background-size: contain;
      width: fit-content;
      padding: 0 0 0 100px; }

.header_menu {
  max-width: 820px;
  width: calc(100% - 310px);
  padding: 0 140px 0 0; }
  .header_menu ul {
    width: 100%;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start; }
  .header_menu li {
    position: relative;
    width: fit-content; }
  .header_menu a {
    text-decoration: none;
    font: 1.6rem/1em "Noto Sans", sans-serif;
    font-weight: 700; }
  .header_menu span {
    text-decoration: none;
    font: 1.6rem/1em "Noto Sans", sans-serif;
    font-weight: 700; }
    .header_menu span.menu_active {
      color: darkorange !important; }
  .header_menu .sub_box {
    position: absolute;
    top: 35px;
    left: 50%;
    transform: translate(-50%, 0%);
    padding: 30px 25px;
    border-radius: 10px;
    background-color: #fff;
    opacity: 0;
    z-index: -1;
    pointer-events: none;
    border: 1px solid #7AAF94; }
    .header_menu .sub_box.menu_active {
      opacity: 1;
      z-index: 777;
      pointer-events: all; }
    .header_menu .sub_box.sub01 {
      width: 270px; }
    .header_menu .sub_box.sub02 {
      width: 540px;
      display: flex;
      flex-direction: row;
      flex-wrap: wrap;
      justify-content: space-between;
      align-items: flex-start; }
      .header_menu .sub_box.sub02 > a:nth-child(odd) {
        max-width: 250px;
        width: 100%; }
      .header_menu .sub_box.sub02 > a:nth-child(even) {
        max-width: 205px;
        width: 100%; }
      .header_menu .sub_box.sub02 small {
        padding: 8px 0 0;
        display: block; }
      .header_menu .sub_box.sub02 div {
        width: 100%;
        padding: 15px 0 0;
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: center;
        align-items: flex-start; }
        .header_menu .sub_box.sub02 div a {
          margin: 0 10px;
          width: 154px;
          border-radius: 50px;
          border: 1px solid #006934;
          text-align: center;
          padding-top: 10px;
          padding-bottom: 10px; }
          .header_menu .sub_box.sub02 div a:before {
            left: 30px;
            top: 12px; }
    .header_menu .sub_box.sub03 {
      width: 150px; }
    .header_menu .sub_box.sub04 {
      width: 170px; }
    .header_menu .sub_box a {
      font: 1.6rem/1em "Noto Sans", sans-serif;
      font-weight: 500;
      letter-spacing: 0.02em;
      color: #006934;
      display: block;
      margin: 0 0 20px;
      padding: 0 0 0 18px;
      position: relative; }
      .header_menu .sub_box a:last-of-type {
        margin: 0; }
      .header_menu .sub_box a:before {
        position: absolute;
        content: "";
        background: url("../images/common/menu_arrow.svg") center center no-repeat;
        width: 7px;
        height: 11px;
        left: 0;
        top: 2px; }

@media (hover: hover) {
  .header_box h1 a:hover {
    color: darkorange !important; }

  .header_menu a:hover,
  .header_menu span:hover {
    cursor: pointer;
    color: darkorange !important; } }
@media (max-width: 1280px) {
  .header_menu {
    padding: 0 120px 0 0; } }
@media (max-width: 1024px) {
  header {
    height: 100px; }

  .header_box {
    width: calc(100% - 40px); }
    .header_box h1 {
      width: 260px;
      margin: 0 50px 0 0; }
      .header_box h1 a {
        font: 2.4rem/58px "Noto Sans", sans-serif;
        font-weight: 700;
        height: 60px;
        padding: 0 0 0 80px; }

  .header_menu {
    display: none; } }
/*max-width:1024px*/
@media (max-width: 768px) {
  header {
    height: 80px; }
    header.toggle_active {
      display: block;
      background-color: #fff; }
      header.toggle_active .header_box h1 a {
        color: #000; }

  .header_box {
    width: calc(100% - 40px); }
    .header_box h1 {
      flex: 1;
      width: 260px;
      margin: 0 20px 0 0; }
      .header_box h1 a {
        font: 2.4rem/43px "Noto Sans", sans-serif;
        font-weight: 700;
        height: 45px;
        padding: 0 0 0 60px; } }
/*max-width:768px*/
@media (max-width: 480px) {
  header {
    height: 70px; }

  .header_box {
    width: 100%;
    padding: 0 15px 0 15px; }
    .header_box h1 {
      width: 260px;
      margin: 0; }
      .header_box h1 a {
        font: 2.4rem/40px "Noto Sans", sans-serif;
        font-weight: 700;
        height: 40px;
        padding: 0 0 0 50px; } }
/*max-width:480px*/
/*********************/
.toggle {
  border-radius: 25px;
  width: 90px;
  height: 40px;
  color: #fff;
  background-color: #399D26;
  font: 1.6rem/38px "Noto Sans", sans-serif;
  font-weight: 700;
  padding: 0 0 0 10px;
  transition: .3s;
  top: 40px;
  right: 20px;
  z-index: 99999;
  position: fixed; }
  .toggle:before {
    position: absolute;
    content: "●";
    display: block;
    right: 8px;
    top: 0px;
    font: 1.8rem/38px "Noto Sans", sans-serif;
    font-weight: 700;
    transition: .3s; }
  .toggle:after {
    opacity: 0;
    position: absolute;
    content: "×";
    display: block;
    right: 8px;
    top: 0px;
    font: 3rem/38px "Noto Sans", sans-serif;
    font-weight: 700;
    transition: .3s; }
  .toggle.toggle_active {
    background-color: darkorange; }
    .toggle.toggle_active:before {
      opacity: 0; }
    .toggle.toggle_active:after {
      opacity: 1; }

@media (hover: hover) {
  .toggle:hover {
    cursor: pointer;
    background-color: darkorange; } }
@media (max-width: 1024px) {
  .toggle {
    top: 30px; } }
/*max-width:1024px*/
@media (max-width: 768px) {
  .toggle {
    top: 20px; } }
/*max-width:1024px*/
@media (max-width: 480px) {
  .toggle {
    top: 15px;
    right: 10px; } }
/*max-width:1024px*/
/*********************/
.gnav {
  top: 0;
  left: 0;
  opacity: 0;
  z-index: -1;
  pointer-events: none;
  position: fixed;
  width: 100vw;
  height: 100vh;
  overflow-y: scroll;
  background-color: #006934;
  padding: 150px 80px 150px;
  transition: .3s; }
  .gnav.toggle_active {
    opacity: 1;
    z-index: 9999;
    pointer-events: all; }
  .gnav .gnav_box {
    margin: 0 auto;
    max-width: 910px; }
    .gnav .gnav_box p {
      width: 100%;
      color: #fff;
      font: 2rem/1.5em "Noto Sans", sans-serif;
      font-weight: 700;
      padding: 0 0 0 25px;
      position: relative; }
      .gnav .gnav_box p:before {
        display: block;
        position: absolute;
        content: "";
        width: 15px;
        height: 15px;
        border-radius: 50%;
        left: 0;
        top: 7px;
        background-color: #fff; }
  .gnav .nav_box {
    width: 100%;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    margin: 0 auto 80px; }
    .gnav .nav_box p {
      margin: 0 0 50px; }
    .gnav .nav_box a {
      color: #fff;
      text-decoration: none;
      font: 1.8rem/1.5em "Noto Sans", sans-serif;
      font-weight: 700; }
      .gnav .nav_box a.hyphen, .gnav .nav_box a.dot {
        display: block;
        width: fit-content;
        font: 1.6rem/1.5em "Noto Sans", sans-serif;
        font-weight: 700;
        padding-left: 1.8rem;
        position: relative; }
        .gnav .nav_box a.hyphen:before, .gnav .nav_box a.dot:before {
          position: absolute;
          left: 0; }
      .gnav .nav_box a.hyphen:before, .gnav .nav_box a .dot:before {
        content: "・"; }
      .gnav .nav_box a small {
        display: block; }
    .gnav .nav_box li {
      margin: 0 0 15px; }
      .gnav .nav_box li:last-of-type {
        margin: 0; }
  .gnav .nav_box_btm {
    width: 100%; }
    .gnav .nav_box_btm ul {
      width: 100%;
      display: flex;
      flex-direction: row;
      flex-wrap: wrap;
      justify-content: space-between;
      align-items: flex-start; }
    .gnav .nav_box_btm li {
      width: calc((100% - 40px)/2);
      max-width: 390px; }
    .gnav .nav_box_btm p {
      margin: 0 0 10px; }
    .gnav .nav_box_btm a {
      display: block;
      aspect-ratio: 390/130;
      width: 100%;
      max-width: 100%;
      height: auto;
      padding: 0;
      overflow: hidden;
      text-indent: 100%;
      white-space: nowrap; }
      .gnav .nav_box_btm a.works {
        background: url("../images/common/banner_koujoudenki.jpg") center center no-repeat;
        background-size: contain; }
      .gnav .nav_box_btm a.recruit {
        background: url("../images/common/banner_recruit.jpg") center center no-repeat;
        background-size: contain; }
  .gnav .sns {
    width: 100%;
    max-width: 220px;
    margin: 50px auto 0;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center; }
    .gnav .sns li a {
      display: block;
      width: 36px;
      overflow: hidden;
      text-indent: 100%;
      white-space: nowrap; }
    .gnav .sns .facebook {
      background: url("../images/common/icon_facebook.svg") center center no-repeat;
      background-size: contain;
      aspect-ratio: 1/1;
      height: auto; }
    .gnav .sns .instagram {
      background: url("../images/common/icon_insta.svg") center center no-repeat;
      background-size: contain;
      aspect-ratio: 1/1;
      height: auto; }
    .gnav .sns .youtube {
      background: url("../images/common/icon_youtube_w.svg") center center no-repeat;
      background-size: contain;
      aspect-ratio: 91/20;
      width: 90px;
      height: auto; }

@media (hover: hover) {
  .gnav .nav_box a:hover {
    color: yellow; }
  .gnav .nav_box_btm a:hover {
    opacity: 0.5; }
  .gnav .sns li a:hover {
    opacity: 0.5; } }
/*max-width:1280px*/
@media (max-width: 1024px) {
  .gnav {
    height: 100vh;
    padding: 150px 20px 150px;
    overflow-y: scroll; } }
/*max-width:1024px*/
@media (max-width: 768px) {
  .gnav {
    top: 80px;
    padding: 0;
    height: 100vh;
    overflow-y: scroll; }
    .gnav .gnav_box {
      padding: 30px 50px 50%; }
    .gnav .nav_box {
      max-width: 640px;
      width: 100%;
      display: block;
      margin: 0 auto 35px; }
      .gnav .nav_box p {
        display: none; }
      .gnav .nav_box a {
        display: block;
        padding-top: 6px;
        padding-bottom: 6px; }
        .gnav .nav_box a small {
          display: inline; }
        .gnav .nav_box a.hyphen, .gnav .nav_box a.dot {
          margin: 3px 0; }
      .gnav .nav_box ul {
        padding: 15px 0;
        border-bottom: 1px solid #7AAF94; }
      .gnav .nav_box li {
        margin: 0; }
      .gnav .nav_box ul:last-of-type {
        padding: 0;
        border-bottom: none; }
        .gnav .nav_box ul:last-of-type li {
          border-bottom: 1px solid #7AAF94; }
        .gnav .nav_box ul:last-of-type a {
          padding: 15px 0; }
    .gnav .nav_box_btm {
      display: none; } }
/*max-width:768px*/
@media (max-width: 480px) {
  .gnav {
    top: 70px; }
    .gnav .gnav_box {
      padding: 30px 35px 50%; }
    .gnav .nav_box a small {
      display: block; } }
/*max-width:480px*/
/*********************/
.page_top {
  position: fixed;
  right: 0;
  bottom: 0;
  z-index: 8888;
  width: 70px;
  height: 70px;
  display: block;
  text-align: center;
  font: 1.8rem/70px "Noto Sans", sans-serif;
  font-weight: 500;
  color: #fff;
  transition: .3s;
  background-color: #006934; }
  .page_top.toggle_active {
    opacity: 0;
    pointer-events: none;
    z-index: 1; }

@media (hover: hover) {
  .page_top:hover {
    cursor: pointer;
    background-color: darkorange; } }
@media (max-width: 1280px) {
  .page_top {
    width: 60px;
    height: 60px;
    font: 1.6rem/60px "Noto Sans", sans-serif;
    font-weight: 500; } }
@media (max-width: 480px) {
  .page_top {
    width: 55px;
    height: 55px;
    font: 1.6rem/55px "Noto Sans", sans-serif;
    font-weight: 500; } }
/*max-width:480px*/
/*********************/
aside {
  z-index: 8888;
  position: fixed;
  right: 0;
  top: 180px; }
  aside a {
    transition: .3s;
    position: relative;
    right: -5px;
    display: block;
    width: 70px;
    text-decoration: none;
    writing-mode: vertical-rl;
    font: 2rem/65px "Noto Sans", sans-serif;
    font-weight: 400;
    letter-spacing: 0.05em;
    padding: 25px 5px 25px 0; }
    aside a.recruit_n {
      border: 1px solid #000;
      border-right: none;
      border-radius: 10px 0 0 0;
      background-color: #FFDA2A;
      color: #000; }
    aside a.recruit_c {
      border: 1px solid #000;
      border-right: none;
      margin: -1px 0 0 0;
      border-radius: 0 0 0 10px;
      background-color: #FFF;
      color: #000; }
    aside a.kojodenki {
      margin: 35px 0 0 0;
      background-color: #019F34;
      color: #fff;
      border-radius: 10px 0 0 10px; }
  aside.toggle_active {
    opacity: 0;
    pointer-events: none;
    z-index: 1; }

@media (hover: hover) {
  aside a:hover {
    right: 0; } }
@media (max-width: 1280px) {
  aside a {
    width: 65px;
    font: 2rem/60px "Noto Sans", sans-serif;
    font-weight: 400; } }
/*max-width:1280px*/
@media (max-width: 1024px) {
  aside {
    right: auto;
    left: 0;
    top: auto;
    bottom: 0;
    width: calc(100% - 60px);
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: flex-start; }
    aside a {
      right: auto;
      width: calc(100%/3);
      writing-mode: horizontal-tb;
      font: 1.8rem/60px "Noto Sans", sans-serif;
      font-weight: 400;
      height: 60px;
      text-align: center;
      padding: 0; }
      aside a.recruit_n {
        border-right: none;
        border-bottom: none;
        margin: 0;
        border-radius: 0; }
      aside a.recruit_c {
        border-right: 1px solid #000;
        border-bottom: none;
        margin: 0;
        border-radius: 0; }
      aside a.kojodenki {
        margin: 0;
        margin: 0;
        border-radius: 0; } }
@media (max-width: 1024px) and (hover: hover) {
  aside a:hover {
    background-color: darkorange; } }
/*max-width:1024px*/
@media (max-width: 768px) {
  aside a.recruit_n, aside a.recruit_c {
    width: calc((100% - 165px)/2); }
  aside a.kojodenki {
    width: 165px; } }
/*max-width:768px*/
@media (max-width: 480px) {
  aside {
    width: calc(100% - 55px); }
    aside a {
      font: 1.6rem/55px "Noto Sans", sans-serif;
      height: 55px;
      font-weight: 400; }
      aside a.recruit_n, aside a.recruit_c {
        width: calc((100% - 135px)/2); }
      aside a.kojodenki {
        width: 135px; } }
/*max-width:480px*/
/*********************/
.footer_contact {
  max-width: 1640px;
  width: calc(100% - 40px);
  margin: 0 auto 40px;
  background-color: #006934;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  padding: 100px 40px; }
  .footer_contact div {
    width: 50%;
    text-align: center;
    color: #fff; }
  .footer_contact .ttl {
    font: 3.2rem/1em "Urbanist", "sans-serif";
    font-weight: bold;
    letter-spacing: 0.74em;
    margin: 0 0 0 0.74em; }
    .footer_contact .ttl span {
      margin: 10px 0 30px -0.74em;
      display: block;
      font: 2rem/1em "Noto Sans", sans-serif;
      font-weight: 500;
      letter-spacing: 0.05em; }
  .footer_contact p {
    font: 1.7rem/2em "Noto Sans", sans-serif;
    font-weight: 400;
    letter-spacing: 0.05em; }
  .footer_contact .tel {
    transition: .3s;
    font: 6.3rem/1em "Urbanist", "sans-serif";
    font-weight: bold;
    color: #fff;
    text-align: center;
    display: block;
    width: fit-content;
    margin: 0 auto 30px;
    text-decoration: none;
    letter-spacing: 0.1em;
    padding: 0 0 0 65px;
    background: url("../images/common/icon_tel.svg") left top 5px no-repeat; }
    .footer_contact .tel small {
      margin: 5px 0 0 -65px;
      font: 1.6rem/1em "Noto Sans", sans-serif;
      font-weight: 400;
      letter-spacing: 0.05em;
      display: block; }
  .footer_contact .mail {
    transition: .3s;
    display: block;
    max-width: 600px;
    text-align: center;
    height: 100px;
    margin: 0 auto;
    background: #005326;
    color: #fff;
    text-decoration: none; }
    .footer_contact .mail span {
      font: 2rem/98px "Noto Sans", sans-serif;
      font-weight: 700;
      position: relative;
      width: fit-content;
      margin: 0  auto;
      letter-spacing: 0.1em;
      padding: 0 0 0 40px;
      background: url("../images/common/icon_mail.svg") left center no-repeat; }

@media (hover: hover) {
  .footer_contact .tel:hover {
    color: #FFDA2A; }
  .footer_contact .mail:hover {
    background-color: darkorange; } }
@media (max-width: 1280px) {
  .footer_contact div {
    text-align: center;
    color: #fff; }
  .footer_contact .txt_box {
    max-width: 400px;
    width: calc(100% - 510px);
    padding: 0 20px 0 0; }
  .footer_contact .link_box {
    width: 510px; } }
/*max-width:1280px*/
@media (max-width: 1024px) {
  .footer_contact {
    display: block;
    width: 100%; }
    .footer_contact div {
      text-align: center;
      color: #fff; }
    .footer_contact .txt_box {
      max-width: 100%;
      width: 100%;
      padding: 0;
      margin: 0 auto 50px; }
    .footer_contact .link_box {
      max-width: 100%;
      width: 100%; } }
/*max-width:1024px*/
@media (max-width: 768px) {
  .footer_contact {
    padding: 100px 40px; }
    .footer_contact .tel {
      font: 4.8rem/1em "Urbanist", "sans-serif";
      font-weight: bold;
      padding: 0 0 0 50px;
      background: url("../images/common/icon_tel.svg") left top 3px no-repeat;
      background-size: 40px auto; }
      .footer_contact .tel small {
        margin: 10px 0 0 -65px; } }
/*max-width:768px*/
@media (max-width: 480px) {
  .footer_contact {
    padding: 55px 20px 100px; }
    .footer_contact .ttl {
      font: 2.4rem/1em "Urbanist", "sans-serif";
      font-weight: bold; }
      .footer_contact .ttl span {
        margin: 15px 0 30px -0.74em; }
    .footer_contact .txt_box {
      margin: 0 auto 30px; }
    .footer_contact .tel {
      font: 3.6rem/1em "Urbanist", "sans-serif";
      font-weight: bold;
      padding: 5px 0 0 45px;
      background: url("../images/common/icon_tel.svg") left top 0 no-repeat;
      background-size: 35px;
      margin: 0 auto 60px; }
      .footer_contact .tel small {
        margin: 15px 0 0 -45px; }
    .footer_contact .mail {
      max-width: 600px;
      height: 120px; }
      .footer_contact .mail span {
        font: 2.6rem/118px "Noto Sans", sans-serif;
        font-weight: 700;
        padding: 0 0 0 50px; } }
/*max-width:480px*/
/*********************/
.footer_txt {
  margin: 0 auto 100px;
  font: 4vw/1.5em "Noto Sans", sans-serif;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #006934;
  display: block;
  text-align: left;
  margin: 0 auto 100px;
  width: fit-content; }
  .footer_txt br {
    display: none; }

@media (min-width: 1920px) {
  .footer_txt {
    font: 6.6rem/1.5em "Noto Sans", sans-serif;
    font-weight: 700; } }
/*max-width:1280px*/
@media (max-width: 1280px) {
  .footer_txt {
    font: 5.5vw/1.5em "Noto Sans", sans-serif;
    font-weight: 700; }
    .footer_txt br {
      display: block; } }
/*max-width:1280px*/
@media (max-width: 1024px) {
  .footer_txt {
    font: 7vw/1.5em "Noto Sans", sans-serif;
    font-weight: 700; } }
/*max-width:1024px*/
/*max-width:768px*/
@media (max-width: 480px) {
  .footer_txt {
    font: 2.9rem/1.5em "Noto Sans", sans-serif;
    font-weight: 700;
    padding: 0 0 0 15px;
    margin: 0 auto 50px; } }
/*max-width:480px*/
/*********************/
.footer_menu {
  max-width: 1280px;
  width: calc(100% - 160px);
  margin: 0 auto 50px;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between; }
  .footer_menu .f_right {
    width: calc(100% - 380px);
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    max-width: 770px; }
    .footer_menu .f_right a {
      font: 1.5rem/2em "Noto Sans", sans-serif;
      font-weight: 500;
      text-decoration: none;
      color: #006934;
      display: block;
      width: fit-content; }
      .footer_menu .f_right a small {
        display: block; }
      .footer_menu .f_right a.hyphen, .footer_menu .f_right a.dot {
        padding: 0 0 0 1.5rem;
        position: relative; }
        .footer_menu .f_right a.hyphen:before, .footer_menu .f_right a.dot:before {
          position: absolute;
          left: 0; }
      .footer_menu .f_right a.hyphen:before {
        content: "-";
        left: 5px; }
      .footer_menu .f_right a.dot {
        margin: 0 0 0 1.5rem; }
        .footer_menu .f_right a.dot:before {
          content: "・"; }
    .footer_menu .f_right li {
      margin: 0 0 5px; }
  .footer_menu dl {
    padding: 0 0 0 80px;
    width: 360px;
    position: relative;
    letter-spacing: 0.02em; }
    .footer_menu dl dt {
      font: 2.2rem/1em "Noto Sans", sans-serif;
      font-weight: 700;
      margin: 0 0 10px; }
    .footer_menu dl dd {
      font: 1.5rem/2em "Noto Sans", sans-serif;
      font-weight: 500; }
    .footer_menu dl a {
      text-decoration: none;
      color: #1A1311;
      display: block;
      width: fit-content; }
    .footer_menu dl:before {
      background: url("../images/logo.webp") center center no-repeat;
      background-size: contain;
      width: 60px;
      height: 60px;
      left: 0;
      top: -20px;
      display: block;
      position: absolute;
      content: ""; }

.footer_btm {
  max-width: 1280px;
  width: calc(100% - 80px);
  margin: 0 auto 30px;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-end; }
  .footer_btm .f_link {
    width: 490px;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center; }
  .footer_btm ul {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center; }
    .footer_btm ul a, .footer_btm ul span {
      transition: .3s;
      display: block;
      overflow: hidden;
      text-indent: 100%;
      white-space: nowrap; }
    .footer_btm ul.sns {
      width: 205px; }
    .footer_btm ul.bnr {
      width: calc(100% - 235px);
      padding: 0 0 0 30px;
      border-left: 1px solid #1A1311; }
  .footer_btm .facebook {
    background: url("../images/common/icon_facebook.svg") center center no-repeat;
    background-size: contain;
    aspect-ratio: 1/1;
    width: 100%;
    max-width: 36px;
    height: auto; }
  .footer_btm .instagram {
    background: url("../images/common/icon_insta.svg") center center no-repeat;
    background-size: contain;
    aspect-ratio: 1/1;
    width: 100%;
    max-width: 36px;
    height: auto; }
  .footer_btm .youtube {
    background: url("../images/common/icon_youtube.svg") center center no-repeat;
    background-size: contain;
    aspect-ratio: 91/20;
    width: 91px;
    height: auto; }
  .footer_btm .sdgs {
    background: url("../images/common/bnr02.png") center center no-repeat;
    background-size: contain;
    aspect-ratio: 49/51;
    width: 100%;
    max-width: 49px;
    height: auto; }
  .footer_btm .kenko {
    background: url("../images/common/bnr01.png") center center no-repeat;
    background-size: contain;
    aspect-ratio: 73/55;
    width: 100%;
    max-width: 73px;
    height: auto; }
  .footer_btm .elevel {
    background: url("../images/common/bnr03.png") center center no-repeat;
    background-size: contain;
    aspect-ratio: 1/1;
    width: 100%;
    max-width: 54px;
    height: auto; }
  .footer_btm .copy {
    font: 1.5rem/1em "Urbanist", "sans-serif";
    font-weight: 400;
    letter-spacing: 0.02em;
    text-align: right;
    padding: 0 40px 0 0; }

@media (hover: hover) {
  .footer_menu .f_right a:hover {
    color: darkorange; }
  .footer_menu dl a:hover {
    color: darkorange; }

  .footer_btm a:hover {
    opacity: 0.5; } }
@media (max-width: 1280px) {
  .footer_menu {
    max-width: 1024px;
    margin: 0 auto 50px; }
    .footer_menu .f_right {
      width: 100%;
      max-width: 100%;
      order: 1;
      margin: 0 auto 50px; }
      .footer_menu .f_right ul {
        width: auto !important; }
    .footer_menu dl {
      order: 2;
      margin: 0 auto; } }
@media (max-width: 1024px) {
  .footer_menu {
    max-width: 768px;
    width: calc(100% - 40px);
    margin: 0 auto 50px; }
    .footer_menu .f_right {
      width: 100%;
      order: 1;
      margin: 0 auto 50px;
      padding: 0; }
      .footer_menu .f_right ul {
        width: auto !important; }
    .footer_menu dl {
      order: 2;
      margin: 0 auto; }

  .footer_btm {
    display: block; }
    .footer_btm .f_link {
      width: 490px;
      margin: 0 auto 40px; }
    .footer_btm .copy {
      padding: 0;
      text-align: center; } }
/*max-width:1024px*/
@media (max-width: 768px) {
  .footer_menu {
    max-width: 768px;
    width: calc(100% - 80px);
    margin: 0 auto 50px;
    display: block; }
    .footer_menu .f_right {
      display: none; }
    .footer_menu dl {
      padding: 80px 0 0;
      width: 100%;
      text-align: center; }
      .footer_menu dl a {
        margin: 0 auto; }
      .footer_menu dl:before {
        top: 0%;
        left: 50%;
        transform: translate(-50%, 0%); }

  .footer_btm {
    display: block; }
    .footer_btm .f_link {
      width: 100%;
      margin: 0 auto 40px;
      display: block; }
    .footer_btm ul.sns {
      width: 285px;
      margin: 0 auto 30px;
      padding: 0 0 0 8px; }
    .footer_btm ul.bnr {
      width: 285px;
      margin: 0 auto;
      padding: 0;
      border-left: none; }
    .footer_btm .facebook {
      width: 50px;
      max-width: 100%; }
    .footer_btm .instagram {
      width: 50px;
      max-width: 100%; }
    .footer_btm .youtube {
      width: 115px;
      max-width: 100%; }
    .footer_btm .sdgs, .footer_btm .kenko, .footer_btm .elevel {
      width: 100%;
      max-width: 100%;
      height: 67px; } }
/*max-width:768px*/
/*max-width:480px*/
/*********************/
.footer_img {
  background: url("../images/common/footer.webp") bottom right no-repeat;
  background-size: contain;
  aspect-ratio: 1920/400;
  width: 100%;
  max-width: 100%;
  height: auto; }

@media (max-width: 1280px) {
  .footer_img {
    background: url("../images/common/footer.webp") bottom right no-repeat;
    background-size: auto 265px;
    height: 265px; } }
/*max-width:1280px*/
@media (max-width: 1024px) {
  .footer_img {
    background: url("../images/common/footer.webp") bottom right no-repeat;
    background-size: contain;
    height: auto; } }
/*max-width:1024px*/
/*********************/
main {
  padding: 140px 0 350px; }

.page_head {
  max-width: 1520px;
  width: calc(100% - 140px);
  margin: 0 auto 200px; }
  .page_head h2 {
    font: 7rem/1em "Noto Sans", sans-serif;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: #006934; }
    .page_head h2 small {
      display: block;
      margin: 0 0 20px;
      font: 2.2rem/1em "Urbanist", "sans-serif";
      font-weight: 600; }
    .page_head h2 br {
      display: none; }

@media (max-width: 1024px) {
  .page_head {
    width: calc(100% - 80px); } }
@media (max-width: 768px) {
  main {
    padding: 100px 0 200px; }

  .page_head {
    width: calc(100% - 60px); }
    .page_head h2 {
      font: 5rem/1em "Noto Sans", sans-serif;
      font-weight: 700;
      letter-spacing: 0.02em;
      color: #006934; }
      .page_head h2 small {
        display: block;
        margin: 0 0 20px;
        font: 1.8rem/1em "Urbanist", "sans-serif";
        font-weight: 600; }
      .page_head h2 br {
        display: block; } }
/*max-width:768px*/
@media (max-width: 480px) {
  main {
    padding: 60px 0 100px; }

  .page_head {
    width: calc(100% - 40px);
    margin: 0 auto 75px; }
    .page_head h2 {
      font: 3.8rem/1em "Noto Sans", sans-serif;
      font-weight: 700;
      letter-spacing: 0.02em;
      color: #006934; }
      .page_head h2 small {
        display: block;
        margin: 0 0 20px;
        font: 1.8rem/1em "Urbanist", "sans-serif";
        font-weight: 600; }
      .page_head h2 br {
        display: block; } }
/*max-width:480px*/
/*********************/
.no_single {
  font: 1.8rem/1em "Noto Sans", sans-serif;
  font-weight: 500;
  width: 100% !important;
  max-width: 100% !important;
  text-align: center !important; }

.page404 {
  max-width: 1000px;
  margin: 0 auto;
  width: calc(100% - 80px);
  font: 1.8rem/1.8em "Noto Sans", sans-serif;
  font-weight: 400; }
  .page404 h2 {
    font: 3.5rem/2em "Noto Sans", sans-serif;
    font-weight: 700;
    margin-bottom: 20px;
    color: #006934; }
  .page404 p {
    margin-bottom: 20px; }
  .page404 a {
    color: #006934; }
    .page404 a:hover {
      color: darkorange; }

/*max-width:1280px*/
/*max-width:1024px*/
/*max-width:768px*/
@media (max-width: 480px) {
  .page404 {
    max-width: 1000px;
    margin: 0 auto;
    width: calc(100% - 40px);
    font: 1.5rem/2em "Noto Sans", sans-serif;
    font-weight: 400; }
    .page404 h2 {
      font: 2.5rem/1.8em "Noto Sans", sans-serif;
      font-weight: 700;
      margin-bottom: 20px;
      color: #006934; }
    .page404 p {
      margin-bottom: 20px; }
    .page404 a {
      color: #006934; }
      .page404 a:hover {
        color: darkorange; } }
/*max-width:480px*/
