/* ==================================================
header (from hirogin-hr.co.jp)
================================================== */

:where(.l-header) {

  * {
    background-repeat: no-repeat;
    padding: 0;
    margin: 0; }

  /* header,
  nav {
    display: block; } */

  a {
    background-color: transparent;
    -webkit-text-decoration-skip: objects;
  }

  a:active,
  a:hover {
    outline-width: 0;
  }

  ::-webkit-file-upload-button {
    -webkit-appearance: button;
    font: inherit;
  }

  img {
    border-style: none;
  }

  ::-moz-selection {
    background-color: #b3d4fc;
    color: #000;
    text-shadow: none; }

  ::selection {
    background-color: #b3d4fc;
    color: #000;
    text-shadow: none; }

}


/* body { */
.l-header {
  color: #212c2b;
  line-height: 1.5;
  word-wrap: break-word;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  -webkit-font-feature-settings: "pwid";
          font-feature-settings: "pwid";
  /* margin-top: 88px; */
}
  /* @media screen and (max-width: 1305px) {
    body {
      margin-top: 60px;
    }
  } */


:where(.l-header) {

  h1 {
    font-size: 30px; }
    @media screen and (max-width: 568px) {
      h1 {
        font-size: 24px; } }

  a {
    text-decoration: none;
    color: #0a7b5c; }
    a[target="_blank"]:after {
      content: "\f35d";
      font-family: "Font Awesome 5 Free";
      font-weight: 600;
      margin-left: 10px;
      -webkit-font-smoothing: antialiased; }
    a:not(.c-btn) {
      /* color: #0a7b5c; */
      transition: color 0.2s ease; }
      a:not(.c-btn):hover {
        color: #064c39; }

  ul {
    list-style-type: none; }

  .no_target a::after {
    display: none;
  }

}


/*
モジュール系おまとめファイル
*/
.l-header {
  background-color: #FFFFFF;
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100; }
  .l-header__inner {
    height: 88px;
    border-bottom: 1px solid #eee;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.16);
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-pack: justify;
        justify-content: space-between;
    width: 100%;
    margin: 0 auto;
    padding-left: 30px;
    position: relative;
    z-index: 100; }
    @media screen and (max-width: 1305px) {
      .l-header__inner {
        height: 60px;
        display: block;
        padding: 0;
        position: fixed;
        top: 0;
        background: transparent; } }
  .l-header h1, .l-header .logo {
    margin-bottom: 0;
    margin-right: 30px;
    line-height: 1;
    display: inline-block;
    width: 360px; }
    @media screen and (min-width: 1025px) and (max-width: 1160px) {
      .l-header h1, .l-header .logo {
        width: 300px; } }
    @media screen and (max-width: 1305px) {
      .l-header h1, .l-header .logo {
        width: 234px;
        margin: 0;
        line-height: 0; } }
    .l-header h1 img, .l-header .logo img {
      width: 100%; }
  .l-header .logo img {
    opacity: 1;
    transition: opacity 0.2s ease; }
  .l-header .logo:hover img {
    opacity: .7; }
  .l-header__modules {
    position: relative; }
    @media screen and (max-width: 1305px) {
      .l-header__modules {
        height: 60px;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-align: center;
            align-items: center;
        padding: 10px;
        background-color: #FFFFFF;
        line-height: 0; } }

@media screen and (max-width: 1305px) {
  .c-toggleBtn {
    display: block;
    position: absolute;
    top: 42%;
    right: 10px;
    transform: translateY(-50%);
    width: 42px;
    height: 42px;
    cursor: pointer;
    z-index: 3; }
    .c-toggleBtn span {
      display: block;
      position: absolute;
      width: 30px;
      border-bottom: solid 3px #0a7b5c;
      transition: .35s ease-in-out;
      left: 6px; }
      .c-toggleBtn span:nth-child(1) {
        top: 9px; }
      .c-toggleBtn span:nth-child(2) {
        top: 18px; }
      .c-toggleBtn span:nth-child(3) {
        top: 27px; }
    .c-toggleBtn.is-active span:nth-child(1) {
      top: 18px;
      left: 6px;
      transform: rotate(-45deg); }
    .c-toggleBtn.is-active span:nth-child(2), .c-toggleBtn.is-active span:nth-child(3) {
      top: 18px;
      transform: rotate(45deg); }
    .c-toggleBtn:after {
      content: 'メニュー';
      font-size: 10px;
      font-weight: 600;
      color: #0a7b5c;
      width: 100%;
      position: absolute;
      bottom: 0;
      left: 50%;
      transform: translateX(-50%); } }

@media screen and (max-width: 1305px) {
  .l-navigation {
    display: none; } }

.l-navigation__inner {
  padding: 0;
  display: -ms-flexbox;
  display: flex; }
  @media screen and (max-width: 1305px) {
    .l-navigation__inner {
      display: block;
      height: calc(100vh - 60px);
      overflow-y: scroll; } }

.l-navigation__item {
  position: relative; }
  .l-navigation__item:last-child {
    margin-right: 0; }
  @media screen and (max-width: 1305px) {
    .l-navigation__item {
      margin-right: 0;
      border-top: 1px solid #9cd891; }
      .l-navigation__item:last-child {
        border-bottom: 1px solid #9cd891; } }
  @media screen and (max-width: 1305px) {
    .l-navigation__item a {
      background-color: #FFFFFF; } }
  .l-navigation__item > a {
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
    color: #212c2b;
    display: inline-block;
    padding: 33px 15px;
    letter-spacing: .06em; }
    @media screen and (min-width: 1025px) and (max-width: 1160px) {
      .l-navigation__item > a {
        font-size: 14px;
        padding: 33px 10px; } }
    @media screen and (max-width: 1305px) {
      .l-navigation__item > a {
        display: block;
        padding: 12.5px 25.5px; } }
    .l-navigation__item > a:hover {
      color: #0a7b5c; }
      .l-navigation__item > a:hover:before {
        width: 95%; }
    .l-navigation__item > a:before {
      content: '';
      display: block;
      width: 0%;
      height: 2px;
      background-color: #0a7b5c;
      position: absolute;
      bottom: 0;
      left: 2.5%;
      transition: all 0.2s ease; }
      @media screen and (max-width: 1305px) {
        .l-navigation__item > a:before {
          content: none; } }
    @media screen and (max-width: 1305px) {
      .l-navigation__item > a:after {
        content: "\f105";
        font-family: "Font Awesome 5 Free";
        font-weight: 600;
        position: absolute;
        top: 55%;
        right: 25.5px;
        transform: translateY(-50%);
        transition: all 0.2s ease; } }

.l-navigation__btn-wrap {
  margin-left: 10px; }
  @media screen and (max-width: 1305px) {
    .l-navigation__btn-wrap {
      margin-left: 0; } }

.l-navigation__btn {
  width: 88px;
  height: 88px;
  display: block; }
  @media screen and (max-width: 1305px) {
    .l-navigation__btn {
      display: none; } }
  .l-navigation__btn > a {
    font-weight: 700;
    font-size: 10px;
    letter-spacing: .06em;
    width: 100%;
    height: 88px;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: center;
        justify-content: center;
    -ms-flex-align: center;
        align-items: center;
    background-color: #e8f6ee;
    transition: .2s;
    border-left: 1px solid #9cd891; }
    .l-navigation__btn > a:hover {
      opacity: .7;
      transition: .2s; }
    .l-navigation__btn > a > span {
      position: relative;
      top: 13px; }
      .l-navigation__btn > a > span:before {
        content: "";
        background-image: url("/assets/img/common/ico_mail.png");
        padding: 14.5px;
        background-size: contain;
        position: absolute;
        top: -28px;
        left: 1rem; }

.l-navigation__btn-sp {
  display: none; }
  @media screen and (max-width: 1305px) {
    .l-navigation__btn-sp {
      display: -ms-flexbox;
      display: flex;
      -ms-flex-pack: center;
          justify-content: center;
      background: white;
      border-bottom: 1px solid #9cd891;
      padding: 14.5px 16px 18px; } }
  @media screen and (max-width: 1305px) {
    .l-navigation__btn-sp > .c-btn {
      max-width: 328px;
      font-size: 14px;
      padding: 14px 30px 14px 20px; } }

.c-btn {
  position: relative;
  display: block;
  width: 100%;
  max-width: 291px;
  border-radius: 4px;
  color: #FFFFFF;
  background: #0a7b5c;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.16);
  overflow: hidden;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: .06em;
  line-height: 1.45;
  padding: 19px 40px 19px 20px;
  text-align: center;
  margin-bottom: 30px;
  transition: color 0.2s ease, background-color 0.2s ease;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  overflow: hidden;
  z-index: 1; }
  .c-btn:last-child {
    margin-bottom: 0; }
  @media screen and (max-width: 768px) {
    .c-btn {
      max-width: 221px;
      font-size: 14px;
      padding: 14px 30px 14px 20px; } }
  .c-btn:hover {
    color: #FFFFFF;
    background-color: #0a7b5c; }
    .c-btn:hover:before {
      border-radius: 0;
      background-color: #0b453a;
      transition: .2s;
      will-change: transform;
      transform: translate(-50%, -50%); }
  .c-btn > span {
    position: relative;
    display: inline-block;
    z-index: 10; }
    .c-btn > span:after {
      content: "\f054";
      font-family: "Font Awesome 5 Free";
      font-weight: 600;
      position: absolute;
      top: 52.3%;
      right: -1em;
      transform: translateY(-50%);
      transition: right 0.2s ease; }
  .c-btn:before {
    content: "";
    width: 101%;
    height: 300px;
    border-radius: 50%;
    background-color: #046548;
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateY(-50%);
    transition: right 0.2s ease;
    transition: .2s;
    will-change: transform; }
    @media screen and (max-width: 768px) {
      .c-btn:before {
        height: 200px; } }
  .c-btn[target="_blank"]:after {
    content: none; }
  .c-btn[target="_blank"]:hover:after {
    color: #FFFFFF; }


/**
 * module_pc.purged.css
 */

/* ==================================================
device
================================================== */
@media (min-width: 1008px) {
  .sp {
    display: none !important;
  }
}

/**
 * module_sp.purged
 */

/* ==================================================
device
================================================== */
@media (max-width: 1007px) {
  .pc {
    display: none !important;
  }
}

/**
 * 追加部分
 */

.c-toggleBtn {
  padding: 0;
  background-color: transparent;
  border: 0;
  letter-spacing: 0;

  &::after {
    transform: translate(-50%, 6px);
  }
}

/* 矢印の対応 */
.c-btn > span {
  &::after {
    content: "";
    display: block;
    width: 1em;
    height: 1em;
    content: "";
    font-size: 1.5rem;
    background-color: currentColor;
    mask-size: 1em;
    mask-image: url(/assets/img/common/keyboard_arrow_right.svg);
    mask-repeat: no-repeat;
    transform: translateY(calc(-50% + 1px));
  }
}

@media screen and (max-width: 1305px) {
  .l-navigation__item > a {
    &::after {
      content: "";
      display: inline-block;
      width: 1em;
      height: 1em;
      content: "";
      font-size: 1.25rem;
      background-color: currentColor;
      mask-size: 1em;
      mask-image: url(/assets/img/common/keyboard_arrow_right.svg);
      mask-repeat: no-repeat;
      transform: translateY(calc(-50% - 2px));
    }
  }
}


/* ==================================================
footer
================================================== */

.PageFooter {
  position: relative;
  z-index: 1;
  background-color: #fff;
}

.PageFooter__container {
  display: grid;
  grid-template-areas:
    "logo links"
    "copyright copyright";
  grid-template-columns: 1fr auto;
  gap: 16px 20px;
  justify-content: space-between;
  align-items: center;
  padding: 20px 20px 40px;

  @media (min-width: 64em) {
    grid-template-areas:
      "logo links"
      "logo copyright";
    grid-template-columns: auto 1fr;
    gap: 12px 40px;
    padding: 32px 56px;
  }
}

.PageFooter__logo {
  grid-area: logo;
  max-width: 140px;
}

.PageFooter__links {
  grid-area: links;
  display: flex;
  gap: 8px 40px;
  flex-direction: column;
  width: fit-content;

  @media (min-width: 64em) {
    flex-direction: row;
    justify-content: flex-start;
  }

  a {
    display: block;

    /* button/S */
    color: inherit;
    font-size: 0.875rem;
    font-style: normal;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: 1px;
    text-decoration-line: underline;
    text-underline-offset: 1px;
    text-underline-position: from-font;
  }
}

.PageFooter__copyright {
  grid-area: copyright;
  font-family: var(--font-family-montserrat);

  /* detail/XS */
  font-size: 0.875rem;
  font-style: normal;
  font-weight: 300;
  line-height: 1.5;
  letter-spacing: 1px;
}

.PageFooter__decoration {
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: -1;
  display: block;
  max-width: 180px;
  margin-left: auto;

  @media (min-width: 64em) {
    max-width: 542px;
  }
}

@media (hover: hover) {
  .PageFooter__links a:hover {
    text-decoration: none;
  }
}
