@charset "UTF-8";
/*　base　*/
@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+JP:wght@400;500;600&family=Ubuntu:wght@400;500&display=swap");
/* basic
------------------------------------------------------------------------- */
/*
  Josh's Custom CSS Reset
  https://www.joshwcomeau.com/css/custom-css-reset/
*/
*,
*::before,
*::after {
  box-sizing: border-box;
}

* {
  margin: 0;
}

body {
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
}

img {
  vertical-align: top;
  border: 0;
  width: auto;
  height: auto;
}

input,
button,
textarea,
select {
  font: inherit;
}

p,
h1,
h2,
h3,
h4,
h5,
h6 {
  overflow-wrap: break-word;
}

ul,
ol {
  list-style-type: none;
  padding-inline-start: 0;
  list-style-position: inside;
}

#root,
#__next {
  isolation: isolate;
}

/* link default */
a:link {
  color: #333;
  text-decoration: none;
}

a:visited {
  color: #333;
  text-decoration: none;
}

a:hover {
  color: #333;
  text-decoration: none;
}

a:active {
  color: #333;
  text-decoration: none;
}

/* 共通メイン
------------------------------------------------------------------------- */
* {
  color: #333333;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  outline: none;
  font-family: YakuHanJP, "IBM Plex Sans JP", sans-serif;
  font-feature-settings: "palt";
  font-optical-sizing: auto;
  font-variant-numeric: tabular-nums;
  font-size: clamp(0.875rem, 0.83rem + 0.23vw, 1rem);
}

img {
  vertical-align: top;
  border: 0;
}

a,
button {
  transition-timing-function: ease;
  transition-duration: 0.6s;
  transition-property: color, background-color, opacity;
  cursor: pointer;
}

p,
ul li {
  line-height: 2;
  letter-spacing: 1px;
  text-align: justify;
  font-weight: 400;
}

/* ローディング
------------------------------------------------------------------------- */
#loading {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  transition: opacity 1s ease;
}

#logo {
  width: 300px;
  height: 100px;
}

/* コンテンツ

------------------------------------------------------------------------- */
#content {
  opacity: 0;
  transition: all 1s ease;
}

/* パンくず
------------------------------------------------------------------------- */
.breadcrumb {
  margin-top: 96px;
  padding-right: clamp(1.25rem, -0.536rem + 8.93vw, 7.5rem);
}
.breadcrumb_inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}
.breadcrumb_inner a span {
  color: #359939;
}
.breadcrumb span {
  display: block;
  color: #333333;
  font-size: 12px;
}
.breadcrumb span[property=name] {
  display: inline-block;
  padding: 0;
  margin-top: -3px;
  vertical-align: middle;
  max-width: 100px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ヘッダー
------------------------------------------------------------------------- */
.ly_header {
  background-color: #fff;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
  width: 100%;
}

.ly_header_inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 56px;
  padding: 0 16px;
}
@media screen and (min-width: 960px) {
  .ly_header_inner {
    height: 80px;
    padding: 0 0 0 2.2222222222vw;
  }
}

.bl_header_logo {
  width: 37.5vw;
}
@media screen and (min-width: 960px) {
  .bl_header_logo {
    width: 194px;
  }
}

.bl_pcNav {
  display: none;
}
@media screen and (min-width: 960px) {
  .bl_pcNav {
    display: flex;
    align-items: center;
    gap: 2.7777777778vw;
  }
}
.bl_pcNav a {
  font-size: 14px;
  font-weight: 500;
  color: #333333;
}
.bl_pcNav a.un_applyBtn {
  background-color: #359939;
  color: #fff;
  position: relative;
  padding: 44px 2.2222222222vw 10px;
  height: 80px;
  transition: 0.4s;
}
.bl_pcNav a.un_applyBtn:hover {
  background-color: #287f2c;
}
.bl_pcNav a.un_applyBtn::before {
  content: "";
  display: block;
  background-image: url(../images/icon_contact.png);
  background-size: contain;
  background-repeat: no-repeat;
  position: absolute;
  top: 14px;
  left: 50%;
  transform: translateX(-50%);
  width: 32px;
  height: 32px;
}

.bl_hamburger {
  border: 1px solid #359939;
  border-radius: 6px;
  padding: 0 16px;
  overflow: hidden;
  transition: transform 0.3s ease-out;
}
.bl_hamburger.is_active {
  border: none;
}
@media screen and (min-width: 960px) {
  .bl_hamburger {
    display: none;
  }
}

.bl_hamburger_inner {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  cursor: pointer;
  width: 40px;
  height: 32px;
  position: relative;
  z-index: 101;
  transition: all 0.3s ease-out;
}
.bl_hamburger_inner.is_active {
  transform: rotate(180deg);
}
.bl_hamburger_inner.is_active span:nth-child(1) {
  transform: rotate(45deg) translate(5.5px, 5.5px);
}
.bl_hamburger_inner.is_active span:nth-child(2) {
  opacity: 0;
  margin-left: 100%;
}
.bl_hamburger_inner.is_active span:nth-child(3) {
  transform: rotate(-45deg) translate(5.5px, -5.5px);
}
.bl_hamburger_inner span {
  display: block;
  width: 40px;
  height: 2px;
  background-color: #359939;
  border-radius: 1px;
  transition: all 0.6s ease;
  position: relative;
}
.bl_hamburger_inner span:nth-child(2) {
  width: 24px;
}

.bl_mobileMenu {
  position: fixed;
  top: -100%;
  right: 0;
  width: 100vw;
  height: 100vh;
  background-color: #359939;
  transition: all 0.3s ease-out;
  z-index: 99;
  overflow-y: auto;
  opacity: 0;
}
.bl_mobileMenu.is_open {
  top: 0;
  opacity: 100;
}

.bl_mobileMenu_nav {
  width: 90vw;
  margin: 20% auto;
  border-radius: 10px;
}
.bl_mobileMenu_nav a {
  border-bottom: 1px dotted #fff;
  display: block;
  margin: 0 auto;
  padding: 16px 0;
  position: relative;
  font-size: 16px;
  font-weight: 500;
  color: #fff;
}
.bl_mobileMenu_nav a:hover::after {
  right: 0;
}
.bl_mobileMenu_nav a::after {
  content: "";
  background-image: url(../images/icon_g_right.svg);
  background-size: contain;
  display: inline-block;
  position: absolute;
  top: 50%;
  right: 4px;
  transform: translateY(-50%);
  transition: all 0.1s;
  width: 18px;
  height: 18px;
}

/* フッター
------------------------------------------------------------------------- */
.ly_footer_inner {
  background-color: #fff;
  padding-top: 32px;
  padding-bottom: 32px;
}
@media screen and (min-width: 768px) {
  .ly_footer_inner {
    padding-top: 80px;
    padding-bottom: 80px;
  }
}

.bl_footer_company {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}
@media screen and (min-width: 1200px) {
  .bl_footer_company {
    flex-direction: row;
    justify-content: space-between;
  }
}
.bl_footer_logo a {
  display: flex;
  align-items: center;
  gap: 8px;
}
.bl_footer_logo a img {
  width: 56px;
}
@media screen and (min-width: 1200px) {
  .bl_footer_logo a img {
    width: 76px;
  }
}
.bl_footer_logo a span {
  font-size: clamp(1.125rem, 0.989rem + 0.68vw, 1.5rem);
  font-weight: 600;
}
.bl_footer_inv span {
  display: block;
  font-size: 12px;
  font-weight: 500;
  text-align: center;
}
@media screen and (min-width: 1200px) {
  .bl_footer_inv span {
    text-align: left;
  }
}
.bl_footer_invlist {
  display: flex;
  gap: 4.2666666667vw;
  margin-top: 4px;
  flex-wrap: wrap;
  justify-content: center;
}
@media screen and (min-width: 1200px) {
  .bl_footer_invlist {
    gap: 32px;
  }
}
.bl_footer_invlist a img {
  height: 24px;
}
@media screen and (min-width: 768px) {
  .bl_footer_invlist a img {
    height: 36px;
  }
}
.bl_footer_menu {
  display: flex;
  flex-direction: column-reverse;
  justify-content: center;
  align-items: center;
  margin-top: clamp(3.5rem, 2.955rem + 2.73vw, 5rem);
  gap: 8px;
}
@media screen and (min-width: 1200px) {
  .bl_footer_menu {
    flex-direction: row;
    justify-content: space-between;
  }
}
.bl_footer_menu p {
  font-size: 10px;
}
.bl_footer_menuList {
  display: flex;
  gap: clamp(1.5rem, 0.955rem + 2.73vw, 3rem);
}
.bl_footer_menuList a {
  font-size: clamp(0.75rem, 0.705rem + 0.23vw, 0.875rem);
  font-weight: 500;
}

/* 共通見出し
------------------------------------------------------------------------- */
.el_header_single {
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: 1200px;
  margin: 0 auto;
  padding-top: clamp(3.5rem, 2.955rem + 2.73vw, 5rem);
}
@media screen and (min-width: 768px) {
  .el_header_single {
    flex-direction: row;
    justify-content: space-between;
  }
}
.el_header_single div {
  display: grid;
  justify-items: center;
}
@media screen and (min-width: 768px) {
  .el_header_single div {
    justify-items: left;
  }
}
.el_header_single span {
  display: block;
  font-family: "Ubuntu", sans-serif;
  font-size: clamp(0.75rem, 0.705rem + 0.23vw, 0.875rem);
  letter-spacing: 0.2em;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .el_header_single span {
    text-align: left;
  }
}
.el_header_single span.jp_font {
  font-family: YakuHanJP, "IBM Plex Sans JP", sans-serif;
}
.el_header_single h1 {
  font-size: clamp(1.75rem, 1.477rem + 1.36vw, 2.5rem);
  letter-spacing: 0.2em;
  position: relative;
  padding-left: clamp(1.25rem, 0.977rem + 1.36vw, 2rem);
  display: grid;
}
.el_header_single h1::before {
  content: "";
  display: inline-block;
  background-image: url(../images/icon_square.svg);
  background-size: contain;
  background-repeat: no-repeat;
  position: absolute;
  padding-right: 20px;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: clamp(1rem, 0.909rem + 0.45vw, 1.25rem);
  height: clamp(1rem, 0.909rem + 0.45vw, 1.25rem);
}
.el_header_single p {
  color: #359939;
  font-size: clamp(1rem, 0.955rem + 0.23vw, 1.125rem);
  font-weight: 500;
  padding-top: 16px;
}
@media screen and (min-width: 768px) {
  .el_header_single p {
    padding-top: 0;
  }
}

.el_header_top {
  display: block;
  font-size: clamp(1.25rem, 1.068rem + 0.91vw, 1.75rem);
  position: relative;
  padding-left: clamp(1.25rem, 1.159rem + 0.45vw, 1.5rem);
}
.el_header_top::before {
  content: "";
  display: inline-block;
  background-image: url(../images/icon_square.svg);
  background-size: contain;
  background-repeat: no-repeat;
  position: absolute;
  padding-right: 20px;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: clamp(1rem, 0.909rem + 0.45vw, 1.25rem);
  height: clamp(1rem, 0.909rem + 0.45vw, 1.25rem);
}

/* 定型レイアウト
------------------------------------------------------------------------- */
.bl_standard {
  padding-top: clamp(3.5rem, 2.409rem + 5.45vw, 6.5rem);
  padding-bottom: clamp(3.5rem, 2.409rem + 5.45vw, 6.5rem);
}
.bl_standard_inner {
  max-width: 960px;
  margin: 0 auto;
}
.bl_standard_header h1 {
  font-size: clamp(1.5rem, 1.136rem + 1.82vw, 2.5rem);
  text-align: center;
}
.bl_standard_header p {
  font-weight: 500;
  margin-top: clamp(1rem, 0.818rem + 0.91vw, 1.5rem);
}
@media screen and (min-width: 768px) {
  .bl_standard_header p {
    text-align: center;
  }
}

.un_comming_txt {
  font-size: clamp(1.5rem, 1.136rem + 1.82vw, 2.5rem);
}

/* TOPへ戻る
------------------------------------------------------------------------- */
.el_gotoTop {
  background-color: #01702c;
  position: relative;
}
.el_gotoTop_inner {
  background-image: url(../images/img_gotoTop.png);
  background-position: left center;
  background-repeat: no-repeat;
  background-size: cover;
  height: 53.3333333333vw;
}
@media screen and (min-width: 768px) {
  .el_gotoTop_inner {
    height: 23.6111111111vw;
    width: 80%;
  }
}
.el_gotoTop .el_btn_base {
  max-width: 250px;
  margin: 0;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}
@media screen and (min-width: 768px) {
  .el_gotoTop .el_btn_base {
    left: auto;
    right: 11.1111111111vw;
    top: 50%;
    transform: translateY(-50%);
  }
}

/* ループテキスト
------------------------------------------------------------------------- */
.loopTxt {
  overflow: hidden;
  position: relative;
  z-index: 1;
}

.loop_wrap {
  display: flex;
  width: 100%;
  overflow: hidden;
}
.loop_wrap div {
  flex: 0 0 auto;
  white-space: nowrap;
  color: #efefef;
  font-family: YakuHanJP, "Ubuntu", sans-serif;
  font-size: 14vw;
  font-weight: 600;
  overflow: hidden;
  line-height: 1;
}

.loop_wrap div:nth-child(odd) {
  animation: loop 100s -50s linear infinite;
}
@media screen and (min-width: 768px) {
  .loop_wrap div:nth-child(odd) {
    animation: loop 140s -70s linear infinite;
  }
}

.loop_wrap div:nth-child(even) {
  animation: loop2 100s linear infinite;
}
@media screen and (min-width: 768px) {
  .loop_wrap div:nth-child(even) {
    animation: loop2 140s linear infinite;
  }
}

@keyframes loop {
  0% {
    transform: translateX(100%);
  }
  to {
    transform: translateX(-100%);
  }
}
@keyframes loop2 {
  0% {
    transform: translateX(0);
  }
  to {
    transform: translateX(-200%);
  }
}
/* ページナビゲーション
------------------------------------------------------------------------- */
.pagenation {
  display: flex;
  justify-content: center;
  margin: 30px 0;
}

.pagenation a,
.pagenation span {
  display: inline-block;
  padding: 8px 12px;
  margin: 2px;
  color: #333;
  font-size: 14px;
}

.pagenation a {
  color: #359939;
}

.previouspostslink,
.nextpostslink,
.previous a,
.next a {
  background: #359939;
  border: 1px solid #359939;
  border-radius: 999px;
  display: block;
  position: relative;
  width: 40px;
  height: 40px;
  cursor: pointer;
  transition: all 0.3s;
}
.previouspostslink::after,
.nextpostslink::after,
.previous a::after,
.next a::after {
  display: grid;
  content: "";
  background-image: url(../images/icon_w_right_small.svg);
  background-size: contain;
  background-repeat: no-repeat;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 16px;
  height: 16px;
}
.previouspostslink:hover,
.nextpostslink:hover,
.previous a:hover,
.next a:hover {
  background: #fff;
  border: 1px solid #359939;
  color: #fff;
}
.previouspostslink:hover::after,
.nextpostslink:hover::after,
.previous a:hover::after,
.next a:hover::after {
  background-image: url(../images/icon_g_right_small.svg);
}

.previouspostslink,
.previous a {
  transform: scaleX(-1);
}

/* ボタン
------------------------------------------------------------------------- */
.el_btn_list a {
  display: flex;
  align-items: center;
  gap: 16px;
}
.el_btn_list a span {
  font-size: clamp(0.75rem, 0.661rem + 0.45vw, 0.875rem);
}
.el_btn_list a:hover .el_btn_circle {
  background: #fff;
  border: 1px solid #359939;
  transition: all 0.3s;
}
.el_btn_list a:hover .el_btn_circle::after {
  background-image: url(../images/icon_g_right_small.svg);
  transition: all 0.3s;
}

.el_btn_circle {
  background: #359939;
  border: 1px solid #359939;
  border-radius: 999px;
  display: block;
  position: relative;
  width: 40px;
  height: 40px;
  cursor: pointer;
  transition: all 0.6s;
}
.el_btn_circle::after {
  display: grid;
  content: "";
  background-image: url(../images/icon_w_right_small.svg);
  background-size: contain;
  background-repeat: no-repeat;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 16px;
  height: 16px;
  transition: all 0.6s;
}
.el_btn_circle:hover {
  background: #fff;
  border: 1px solid #359939;
}
.el_btn_circle:hover::after {
  background-image: url(../images/icon_g_right_small.svg);
}

input[type=submit].wpcf7-submit,
input[type=button].wpcf7-previous {
  background: none;
  outline: 0;
  appearance: none;
  color: #fff;
  cursor: pointer;
  font-weight: 600;
  padding: 16px;
  transition: all 0.4s ease;
  position: relative;
  display: block;
  border: none;
  width: 100%;
}

span.wpcf7-spinner {
  display: none;
}

.el_btn_base {
  border-radius: 50px;
  display: block;
  position: relative;
  max-width: 460px;
  width: 100%;
  transition: all 0.4s ease;
  text-align: center;
  margin: clamp(2rem, 1.455rem + 2.73vw, 3.5rem) auto 0;
}
.el_btn_base::before {
  display: grid;
  content: "";
  background-size: contain;
  background-repeat: no-repeat;
  position: absolute;
  top: 50%;
  left: 20px;
  transform: translateY(-50%);
  transition: left 0.2s ease;
  width: clamp(1.125rem, 0.989rem + 0.68vw, 1.5rem);
  height: clamp(1.125rem, 0.989rem + 0.68vw, 1.5rem);
}
.el_btn_base:hover::before {
  left: 24px;
}

.el_btn_green {
  background-color: #359939;
}
.el_btn_green a {
  color: #fff;
}
.el_btn_green::before {
  background-image: url(../images/icon_g_right.svg);
}
.el_btn_green:hover {
  background-color: #287f2c;
}

.el_btn_white {
  background-color: rgba(255, 255, 255, 0.9);
  border: 1px solid #359939;
  color: #359939;
}
.el_btn_white::before {
  background-image: url(../images/icon_g02_right.svg);
}
.el_btn_white:hover {
  background-color: #efefef;
}
.el_btn_white .el_btn_baseInner {
  color: #359939;
}

.el_btn_baseInner {
  cursor: pointer;
  font-weight: 600;
  padding: 16px;
  transition: all 0.4s ease;
  position: relative;
  display: block;
  width: 100%;
}

/* PCスマホ切り替え
------------------------------------------------------------------------- */
.un_onlyPc {
  display: none;
}
@media screen and (min-width: 768px) {
  .un_onlyPc {
    display: block;
  }
}

.un_onlySp {
  display: block;
}
@media screen and (min-width: 768px) {
  .un_onlySp {
    display: none;
  }
}

/* 横空き調整
------------------------------------------------------------------------- */
.pdX__base {
  padding-left: clamp(1.25rem, 0.179rem + 5.36vw, 5rem);
  padding-right: clamp(1.25rem, 0.179rem + 5.36vw, 5rem);
}

/* ふわっと表示
------------------------------------------------------------------------- */
.js_item {
  opacity: 0;
  transform: translateY(100px);
  transition: opacity 1s ease, transform 0.6s ease;
}

.js_fadeIn.show .js_item {
  opacity: 1;
  transform: translateY(0);
}

.js_fadeIn.js_stagger .js_item {
  transition-delay: calc(var(--i) * 0.2s);
}

/* reCAPCHAバッジ非表示
------------------------------------------------------------------------- */
.grecaptcha-badge {
  visibility: hidden;
}/*# sourceMappingURL=common.css.map */