@charset "UTF-8";
/*$Green: #0f795e;*/
/*
共通レイアウト
*/
body {
  font-size: 16px;
  letter-spacing: 0.05em;
  color: #434343; }
  @media screen and (max-width: 768px) {
    body {
      font-size: 14px; } }

#wrapper {
  min-width: 1100px; }
  @media screen and (max-width: 768px) {
    #wrapper {
      min-width: auto; } }

.content {
  padding: 100px 0; }
  @media screen and (max-width: 768px) {
    .content {
      padding: 80px 0; } }

/*
共通コンテンツ幅
*/
.inner {
  max-width: 1000px;
  margin: 0 auto; }
  @media screen and (max-width: 768px) {
    .inner {
      padding: 0 5%; } }

.inner800 {
  max-width: 800px;
  margin: 0 auto; }
  @media screen and (max-width: 768px) {
    .inner800 {
      padding: 0 5%; } }

.inner1000 {
  max-width: 1000px;
  margin: 0 auto; }
  @media screen and (max-width: 768px) {
    .inner1000 {
      padding: 0 5%; } }

/*
共通見出し
*/
.ttl01 {
  font-size: 30px;
  font-family: 'Noto Serif JP', serif;
  font-weight: 600;
  text-align: center;
  margin: 0 0 60px 0; }
  @media screen and (max-width: 768px) {
    .ttl01 {
      font-size: 25px;
      margin: 0 0 40px 0; } }

/*
共通ボタン
*/
/*
共通KV
*/
.kv {
  width: 100%;
  height: 250px;
  border-bottom: 2px solid #fedb00; }
  @media screen and (max-width: 768px) {
    .kv {
      height: 130px; } }
  .kv .h1-ttl {
    display: flex;
    height: 250px;
    align-items: center; }
    @media screen and (max-width: 768px) {
      .kv .h1-ttl {
        height: 130px; } }
    .kv .h1-ttl h1 {
      font-size: 30px;
      font-family: 'Noto Serif JP', serif;
      font-weight: bold; }
      @media screen and (max-width: 768px) {
        .kv .h1-ttl h1 {
          font-size: 22px; } }

/*
&header黄色線消去
*/
body.introduction, body.member, body.works, body.books, body.aboutus {
  /*header*/ }
  body.introduction header.header, body.member header.header, body.works header.header, body.books header.header, body.aboutus header.header {
    border-bottom: none; }
    body.introduction header.header .header__right, body.member header.header .header__right, body.works header.header .header__right, body.books header.header .header__right, body.aboutus header.header .header__right {
      display: flex; }
      body.introduction header.header .header__right .header__info, body.member header.header .header__right .header__info, body.works header.header .header__right .header__info, body.books header.header .header__right .header__info, body.aboutus header.header .header__right .header__info {
        min-height: 82px; }
        @media screen and (max-width: 768px) {
          body.introduction header.header .header__right .header__info, body.member header.header .header__right .header__info, body.works header.header .header__right .header__info, body.books header.header .header__right .header__info, body.aboutus header.header .header__right .header__info {
            min-height: 50px; } }

/*body*/
/*
共通パンくず
*/
.breadcrumbs {
  margin: 18px 0 0 0; }
  .breadcrumbs ul {
    display: flex;
    align-items: center; }
    .breadcrumbs ul li {
      font-size: 12px;
      line-height: 1; }
      .breadcrumbs ul li:not(:first-child) {
        margin: 0 0 0 15px;
        position: relative; }
        .breadcrumbs ul li:not(:first-child):before {
          content: "";
          display: block;
          background: url(../../common/img/breadcrumb.svg) no-repeat center center/cover;
          position: absolute;
          top: 50%;
          transform: translateY(-50%);
          left: -10px;
          width: 6px;
          height: 7px; }

/*
共通ページトップ
*/
.pagetop {
  position: fixed;
  right: 3%;
  bottom: 55px;
  visibility: hidden;
  opacity: 0;
  -ms-transition: all 0.2s ease-out;
  transition: all 0.2s ease-out;
  z-index: 150; }
  @media screen and (max-width: 768px) {
    .pagetop {
      right: 0;
      bottom: 45px; } }
  .pagetop.active {
    visibility: visible;
    opacity: 1; }

/*
共通ヘッダー
*/
.header {
  display: flex;
  min-height: 82px;
  border-bottom: 2px solid #fedb00; }
  @media screen and (max-width: 768px) {
    .header {
      min-height: 50px; } }
  .header .header__inner {
    padding: 0 0 0 20px;
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center; }
    @media screen and (max-width: 768px) {
      .header .header__inner {
        padding: 0 50px 0 5%; } }

.header__left {
  display: flex;
  align-items: center; }
  .header__left .header__logo {
    width: 240px;
    margin: 0 70px 0 0;
    flex-shrink: 0; }
    @media screen and (max-width: 1350px) {
      .header__left .header__logo {
        width: 180px;
        margin: 0 0 0 0; } }
    .header__left .header__logo a {
      display: flex;
      align-items: center; }
    @media screen and (max-width: 1500px) {
      .header__left .header__logo {
        margin: 0 20px 0 0; } }
    @media screen and (max-width: 768px) {
      .header__left .header__logo {
        width: 49vw;
        max-width: 200px;
        margin: 0; } }
  .header__left .header__gnav {
    display: flex;
    align-items: flex-start; }
    @media screen and (max-width: 768px) {
      .header__left .header__gnav {
        display: none;
        position: absolute;
        top: 50px;
        left: 0;
        z-index: 1;
        background-color: #fedb00;
        opacity: .90;
        width: 100%;
        text-align: center; } }
    @media screen and (max-width: 768px) {
      .header__left .header__gnav li {
        padding: 15px 0;
        border-bottom: 1px solid #ffffff; } }
    .header__left .header__gnav li:not(:last-child) {
      margin: 0 30px 0 0; }
      @media screen and (max-width: 1450px) {
        .header__left .header__gnav li:not(:last-child) {
          margin: 0 21px 0 0; } }
      @media screen and (max-width: 768px) {
        .header__left .header__gnav li:not(:last-child) {
          margin: 0; } }
    .header__left .header__gnav li a {
      display: block;
      font-size: 14px;
      font-weight: 500; }
      @media screen and (max-width: 1350px) {
        .header__left .header__gnav li a {
          font-size: 12px; } }

.header__right {
  display: flex; }
  .header__right .header__info {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0 20px;
    min-height: 80px;
    height: 100%;
    pointer-events: none; }
    @media screen and (max-width: 768px) {
      .header__right .header__info {
        width: 50px;
        min-height: 50px;
        pointer-events: auto;
        background-color: #fedb00; }
        .header__right .header__info .fa-phone-volume {
          font-size: 28px; } }
    .header__right .header__info .header__tel {
      font-size: 30px;
      font-weight: 700;
      letter-spacing: -0.05em;
      line-height: 1;
      margin-bottom: 8px; }
      .header__right .header__info .header__tel span {
        font-size: 20px;
        font-weight: 500; }
    .header__right .header__info .header__address {
      font-size: 10px;
      letter-spacing: 0.05em;
      line-height: 1; }
  .header__right .header__contact a {
    min-height: 80px;
    height: 100%;
    background-color: #317023;
    width: 182px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 20px;
    color: #ffffff;
    font-weight: 500;
    letter-spacing: -0.05em; }
    @media screen and (max-width: 1400px) {
      .header__right .header__contact a {
        width: 150px;
        font-size: 18px; } }
    @media screen and (max-width: 1350px) {
      .header__right .header__contact a {
        width: 125px;
        font-size: 16px; } }
    @media screen and (max-width: 768px) {
      .header__right .header__contact a {
        display: flex;
        width: 50px;
        min-height: 50px;
        height: auto;
        background-color: #317023; }
        .header__right .header__contact a .fa-envelope {
          color: #ffffff;
          font-size: 28px; } }

/*
カレントカラー
*/
.header__gnav li.current {
  border-bottom: 4px solid #fedb00;
  padding-bottom: 5px; }

/*
ハンバーガーメニュー開閉ボタン
*/
.icon-animation {
  width: 30px;
  height: 30px;
  display: block;
  position: absolute;
  top: 6px;
  right: 10px;
  z-index: 30;
  display: none; }
  @media screen and (max-width: 768px) {
    .icon-animation {
      display: block; } }
  .icon-animation.is-open .top {
    transform: translateY(0px) scale(0); }
  .icon-animation.is-open .bottom {
    transform: translateY(0px) scale(0); }
  .icon-animation.is-open .middle:before {
    transform: rotate(45deg); }
  .icon-animation.is-open .middle:after {
    transform: rotate(-45deg); }
  .icon-animation span {
    transition: all 0.3s;
    width: 30px;
    height: 3px;
    display: block;
    background: #000;
    position: absolute;
    left: 50%;
    top: 50%;
    margin-left: -15px; }
  .icon-animation .top {
    transform: translateY(-10px) scale(1); }
  .icon-animation .bottom {
    transform: translateY(10px) scale(1); }
  .icon-animation .middle {
    background: none;
    position: relative; }
    .icon-animation .middle:before {
      transition: all 0.3s;
      content: "";
      width: 30px;
      height: 3px;
      background: #000;
      display: block;
      transform: rotate(0deg);
      position: absolute; }
    .icon-animation .middle:after {
      transition: all 0.3s;
      content: "";
      width: 30px;
      height: 3px;
      background: #000;
      display: block;
      transform: rotate(0deg);
      position: absolute; }
  .icon-animation:after {
    content: "MENU";
    font-size: 10px;
    color: #000;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: -12px;
    white-space: nowrap; }

/*
共通フッター
*/
.footer__top {
  padding: 70px;
  background: url(../../common/img/footer_bg01.jpg) no-repeat center center/cover; }
  @media screen and (max-width: 768px) {
    .footer__top {
      padding: 40px 5%; } }
  .footer__top .inner .footer__link {
    display: flex;
    justify-content: space-around; }
    @media screen and (max-width: 768px) {
      .footer__top .inner .footer__link {
        display: block; } }
    .footer__top .inner .footer__link li {
      width: calc(80% / 3); }
      @media screen and (max-width: 768px) {
        .footer__top .inner .footer__link li {
          width: 95%;
          margin: 0 auto; }
          .footer__top .inner .footer__link li:not(:last-child) {
            margin-bottom: 10px; } }
      .footer__top .inner .footer__link li a {
        display: flex;
        justify-content: center;
        align-items: center;
        background-color: #317023;
        min-height: 80px;
        border-radius: 5px;
        color: #ffffff; }
        @media screen and (max-width: 768px) {
          .footer__top .inner .footer__link li a {
            min-height: 60px; } }

.footer__bottom {
  display: flex; }
  @media screen and (max-width: 768px) {
    .footer__bottom {
      display: block; } }
  .footer__bottom .footer__map-area {
    flex-basis: 50%;
    font-size: 0; }
    .footer__bottom .footer__map-area iframe {
      width: 100%;
      height: 100%; }
      @media screen and (max-width: 768px) {
        .footer__bottom .footer__map-area iframe {
          height: 250px; } }
  .footer__bottom .footer__info {
    line-height: 1.9;
    padding: 60px;
    flex-basis: 50%;
    background-color: #f2f2f2; }
    @media screen and (max-width: 768px) {
      .footer__bottom .footer__info {
        padding: 60px 5%; } }
    .footer__bottom .footer__info p {
      font-size: 14px;
      margin: 0 0 31px 0; }
      @media screen and (max-width: 768px) {
        .footer__bottom .footer__info p {
          margin: 0 0 20px 0; } }
      .footer__bottom .footer__info p span {
        font-size: 16px; }
      .footer__bottom .footer__info p.footer__copy {
        margin: 0; }
        .footer__bottom .footer__info p.footer__copy a {
          text-decoration: underline; }

a {
  color: #434343;
  text-decoration: none;
  transition: all .3s; }
  a:hover {
    text-decoration: none;
    cursor: pointer;
    opacity: .7; }

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

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