@charset "UTF-8";
/*----------------------------------------
	reset
----------------------------------------*/
*,
::before,
::after {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

* {
  font-size: inherit;
  line-height: inherit;
}

::before,
::after {
  text-decoration: inherit;
  vertical-align: inherit;
}

html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li,
fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, dialog, figure, footer, header, main, menu, nav, section,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  vertical-align: baseline;
}

header, footer, article, section, aside, main, nav, menu, figure, figcaption {
  display: block;
}

span, small, strong, em, b, i {
  color: inherit;
}

html {
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

html {
  font-size: 62.5%;
}

body {
  overflow-x: hidden;
  overflow-y: auto;
}

ul,
ol {
  list-style: none;
}

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

table {
  border-collapse: collapse;
  border-spacing: 0;
}

caption, th {
  text-align: left;
}

input, select {
  vertical-align: middle;
}

input, textarea {
  margin: 0;
  padding: 0;
}

address {
  font-style: normal;
}

q::before,
q::after {
  display: none;
}


/*----------------------------------------
	base
----------------------------------------*/
body {
  color: #111;
  font-family: 'Noto Sans JP', sans-serif;
  line-height: 1.5;
}
a {
  color: #005E3C;
  transition: color 0.3s;
  text-decoration: none;
}
a:hover {
  color: #7dbb28;
  text-decoration: none;
}

p {
    font-size: 1.6rem;
    letter-spacing:0.05em;
    line-height: 1.8;
}
@media screen and (max-width:500px) {/*スマホ*/
    p {
        font-size: 1.4rem;
        letter-spacing:0.04em;
        line-height: 1.6;
    }
}
.font-go {
  font-family: "Roboto Condensed", sans-serif;
  letter-spacing: 0.2em;
}

/*----------------------------------------
	テキスト
----------------------------------------*/
/*強調*/
.text-strong {
  font-weight:500;/*bold*/
}
/*警告*/
.text-alert {
  color: #c10618;
  font-weight: bold;
}
/*注釈*/
.text-note {
  margin-left: 1em;
  text-indent: -1em;
  color: #707070;
  font-size: 0.9em;
}

.text-sm {
    font-size: 1.2rem;
}
.text-right {
    text-align: right;
}

rt {
    font-size: 1rem;
}
/*----------------------------------------
	header
----------------------------------------*/
.header {
  position: fixed;
  top: 0;
  z-index: 1000;
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: fixed;
  width: 100%;
  height: 50px;
  background: #fff;
  box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}
.header__logo {
  flex-shrink: 0;
  width: 200px;
  margin-left: 20px;
}
@media screen and (min-width: 992px),print {
  .header {
    height: 100px;
  }
  .header__logo {
    width: 350px;
    margin-left: 50px;
  }
}


/*header__tel*/
.header-sp__menu {
  display: flex;
  justify-content: center;
}

.header__tel {
  width: 50px;
  height: 50px;
  border: 0;
  border-right: 1px solid #fff;
  background: #7dbb28;
  cursor: pointer;
}
.header__tel span {
    color: #fff;
    font-weight: bold;
}

/*----------------------------------------
	hamburger
----------------------------------------*/
.hamburger {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 50px;
  height: 50px;
  border: 0;
  background: #7dbb28;
  cursor: pointer;
}
.hamburger__line {
  position: relative;
  width: 25px;
  height: 2px;
  background: #fff;
}
.hamburger__line::before,
.hamburger__line::after {
  position: absolute;
  content: "";
  display: block;
  width: 25px;
  height: 2px;
  background: #fff;
  transition: transform 0.3s;
}
.hamburger__line::before {
  top: -8px;
}
.hamburger__line::after {
  bottom: -8px;
}
/*閉じる*/
/*aria-expandedの状態でスタイルを適用するように変更*/
.hamburger[aria-expanded="true"] .hamburger__line{
  background: transparent;
}
.hamburger[aria-expanded="true"] .hamburger__line::before {
  top: 0;
  transform: rotate(45deg);
}
.hamburger[aria-expanded="true"] .hamburger__line::after {
  bottom: 0;
  transform: rotate(-45deg);
}

@media screen and (min-width: 992px),print {
  .hamburger,.header__tel {
    display: none;
  }
}

/*----------------------------------------
	gnav
----------------------------------------*/
.gnav__link {
  color: inherit;
  text-transform: uppercase;
  text-decoration: none;
}
.gnav__link:hover {
  color: #7dbb28;
}
@media screen and (max-width: 991px) {
  .gnav {
    display: none;
    position: absolute;
    left: 0;
    top: 50px;
    width: 100%;
    height: calc(100vh - 50px);
    background: #fff;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch; /*iOSで慣性スクロール有効化*/
  }
  .gnav__list {
    border-top: 1px solid #eee;
  }
  .gnav__item {
    border-bottom: 1px solid #eee;
  }
  .gnav__link {
    display: block;
    padding: 15px 20px;
    font-size: 1.5rem;
    letter-spacing: 0.08em;
  }
  .gnav__link[aria-current] {
    padding-left: 15px;
    border-left: 8px solid #7dbb28;
  }
}
@media screen and (min-width: 991px),print {
  .gnav {
    display: block !important;
    position: static;
    width: auto;
    height: auto;
  }
  .gnav__list {
    display: flex;
  }
  .gnav__link {
    display: block;
    padding: 1em 0.6em;
    font-size: 1.4rem;
  }
  .gnav__link[aria-current]::after {
    content: "";
    display: block;
    width: 100%;
    height: 2px;
    background: #7dbb28;
  }
}

@media screen and (min-width: 1200px),print {
  .gnav__link {
    padding: 1em 1em;
    font-size: 1.7rem;
    letter-spacing: 0.05em;
  }
 }


/*----------------------------------------
	main-contents
----------------------------------------*/
.main-contents {
  margin-top: 50px;
}
@media screen and (min-width: 992px),print {
  .main-contents {
    margin-top: 100px;
  }
}

/*----------------------------------------
	footer
----------------------------------------*/
.footer {
  padding: 50px 0 30px;
  background: url("../img/footer_bg.jpg") center center;
}
.footer .footer-area {
    display: flex;
    justify-content: space-between;
    flex-wrap:wrap;
}
.footer-info-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap:wrap;
    margin-bottom: 30px;/*10px*/
}
.footer-info-inner__txt p {
    font-size: 1.4rem;
    letter-spacing: 0;
}
.footer-info-inner h2 {
    font-size: 2rem;
    line-height: 1.5;
    letter-spacing: 0.08em;
    margin-bottom: 5px;
}
.footer-info-inner h3 {
    font-size: 1.5rem;
    line-height: 1.4;
    letter-spacing: 0.05em;
    margin-bottom: 15px;
}
.footer-info-inner__img {
    max-width: 116px;
    margin-right: 15px;
}

.footer .logo-kano {
    max-width: 256px;/*221px*/
    margin-bottom: 10px;
}
.footer .footer-info p {
    font-size: 1.3rem;
    line-height: 1.6;
} 
.footer .footer-link h4 {
    font-size: 1.3rem;
    margin-bottom: 5px;
    font-weight: normal;
}
.footer .footer-link ul {
    font-size: 1.4rem;
    letter-spacing: 0.05em;
    margin: 0;
    padding-bottom: 20px;
    position: relative;
}
.footer .footer-link ul li {
    margin: 0;
    margin-bottom: 4px;
    margin-left: 10px;
}
.footer .footer-link ul li:before {
    font-family: "Font Awesome 5 Free";
    content: "\f0da";
    font-weight: 900;
    position: absolute;
    left : 0px;
    color: #005E3C;
}
.footer small {
     color: #666;
     font-size: 1.1rem;
}

@media screen and (max-width:767px) {
    .footer {
        padding: 40px 0 20px;/*20px 0 20px*/
    }
    .footer .footer-info {
        width: 100%;
    }
    .footer .footer-info p {
        font-size: 1.2rem;
        line-height: 1.5;
        margin-bottom: 10px;
    } 
    .footer .logo-kano {
        margin-bottom: 25px;
    }
    .footer .footer-link {
        width:100%;
        display: block; 
    }
    .footer .footer-link ul {
        font-size: 1.3rem;
    }
    .footer small {
        display: block;
    }    
}

@media screen and (max-width:560px) {
    .footer-info-inner__img {
        max-width: 95px;
        margin-right: 15px;
    }
    .footer-info-inner h2 {
        font-size: 1.7rem;
        margin-bottom: 5px;
    }
    .footer-info-inner h3 {
        margin-bottom: 5px;
    }
}


/* pagetop */
.pagetop {
    height: 50px;
    width: 50px;
    position: fixed;
    right: 2%;
    bottom: 2%;
    background: #fff;
    border: solid 2px #7dbb28;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 2;
}
.pagetop__arrow {
    height: 10px;
    width: 10px;
    border-top: 2px solid #7dbb28;
    border-right: 2px solid #7dbb28;
    transform: translateY(20%) rotate(-45deg);
}
@media (hover: hover) and (pointer: fine) {
    .pagetop:hover, .pagetop:hover .pagetop__arrow {
        border-color: #E0E9B4;
        transition: .5s;
    }
}
@media screen and (min-width: 992px),print {
    .pagetop {
        height: 60px;
        width: 60px;
        right: 10px;
        bottom: 30px;
    }
}


/*----------------------------------------
	sakoju　共通※
----------------------------------------*/
.sakoju-wrap {
    background: url("../img/service04_bg_sp.jpg") top center no-repeat;
    background-size: cover;
    padding-top: 40px;
    padding-bottom: 60px;
}
.sakoju {
	max-width: 880px;
	margin-inline: auto;
}
.sakoju h2 {
    margin-bottom: 40px;
    padding-bottom: 20px;
}
.sakoju .card__text {
    font-size: 1.5rem;
    line-height: 1.6;
}
@media screen and (min-width: 768px),print {
    .sakoju-wrap {
        background: url("../img/service04_bg.jpg") top center no-repeat;
        background-size: cover;
        padding-top: 110px;
        padding-bottom: 80px;
    }
    .sakoju h2 {
        margin-bottom: 20px;
        padding-bottom: 20px;
    }
    .sakoju .card__text {
        font-size: 1.6rem;
    }
    h3.card__title.otsu {
        font-size: 1.92rem;
    }
}



/*----------------------------------------
	container
----------------------------------------*/
.container {
  max-width: 1120px;
  margin: auto;
  padding-left: 20px;
  padding-right: 20px;
}


/*----------------------------------------
	section
----------------------------------------*/
.section {
  padding-top: 50px;
  padding-bottom: 50px;
}
.section + .section {
  padding-top: 0;
}
.section__title {
  margin-bottom: 20px;
}
.section__button {
  margin-top: 40px;
}
@media screen and (min-width: 768px),print {
  .section {
    padding-top: 80px;
    padding-bottom: 80px;
  }
  .section__title {
    margin-bottom: 40px;
  }
  .section__button {
    margin-top: 60px;
  }
}

/*----------------------------------------
	ボタン
----------------------------------------*/

/*ボタンベース
-----------------------------------*/
.button {
  -webkit-appearance: none;
  appearance: none;
  display: inline-block;
  width: 100%;
  border: 2px solid transparent;
  font-family: inherit;
  font-weight: bold;
  text-align: center;
  text-decoration: none;
  line-height: 1;
  transition: 0.3s;
  cursor: pointer;
}

/*ボタンサイズ
-----------------------------------*/
.button--lg {
  max-width: 400px;
  padding: 20px;
  font-size: 1.7rem;
}
@media screen and (min-width: 768px),print {
    .button--lg {
      font-size: 1.8rem;
    }
}

.button--md {
  max-width: 300px;
  padding: 20px;
  font-size: 1.6rem;
}
.button--sm {
  width: auto;
  min-width: 150px;
  padding: 10px;
  font-size: 1.4rem;
}

/*ボタン種類
-----------------------------------*/
/*楕円ボタン　シャドウあり*/
.button--ellipse {
  background: #009BA7;
  color: #fff;
  border-radius: 30px;
  box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.16);
}
.button--ellipse:hover,
.button--ellipse:focus {
  background: #7DBB28;
  color: #fff;
}
/*楕円ボタン2　シャドウあり*/
.button--ellipse2 {
  background: #7DBB28;
  color: #fff;
  border-radius: 30px;
  box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.16);
}
.button--ellipse2:hover,
.button--ellipse2:focus {
  background: #005E3C;
  color: #fff;
}

/*お問い合わせ・資料請求*/
.button--contact {
  background: #7DBB28;
  color: #fff;
  border-radius: 8px;
  font-size: 2rem;
  letter-spacing: 0.05em;
}
.button--contact:hover,
.button--contact:focus {
  background: #E0E9B4;
  color: #005E3C;
}

/*標準*/
.button--default {
  background: #7DBB28;
  color: #fff;
  border-radius: 8px;
}
.button--default:hover,
.button--default:focus {
  opacity: 0.7;
  color: #fff;
}

/*枠線*/
.button--outline {
  border: 2px solid #7DBB28;
  background: #fff;
  color: #7DBB28;
  border-radius: 8px;
}
.button--outline:hover,
.button--outlien:focus {
  background: #EAF5E9;
  color: #7DBB28;
}

/*透過*/
.button--ghost {
  border: 2px solid #fff;
  color: #fff;
  border-radius: 8px;
}
.button--ghost:hover,
.button--ghost:focus {
  background: rgba(255,255,255,0.8);
  color: #005E3C;
}

/*Action*/
.button--action {
  background: #065C3B;
  color: #fff;
  border-radius: 8px;
}
.button--action:hover,
.button--action:focus {
  background: #7DBB28;
  color: #fff;
}

/*Disabled*/
.button--disabled,
.button[disabled] {
  background: #ccc;
  color: #fff;
  opacity: 1;
  cursor: default;
}

/*ボタンレイアウト
-----------------------------------*/
.button-center {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.button-center .button:not(:first-child){
  margin-top: 20px;
}
@media screen and (min-width:768px),print {
  .button-center {
    flex-direction: row;
    justify-content: center;
  }
  .button-center .button:not(:first-child) {
    margin-top: 0;
    margin-left: 20px;
  }
}

/*アイコン配置
-----------------------------------*/
.button i:first-child {
  margin-right: 0.5em;
}
.button i:last-child {
  margin-left: 0.5em;
}


/*----------------------------------------
	リスト
----------------------------------------*/
/*ノーマル*/
.list-normal > li:not(:first-child) {
  margin-top: 1em;
}
.list-normal > li{
  position: relative;
  padding-left: 1em;
}
.list-normal > li::before {
  position: absolute;
  left: 0;
  top: 0.75em;
  content: "";
  display: block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #37952F;
}
/*矢印リンク*/
.list-arrow > li:not(:first-child) {
  margin-top: 1em;
}
.list-arrow > li{
  position: relative;
  padding-left: 1em;
}
.list-arrow > li::before {
  position: absolute;
  left: 0;
  top: 0.75em;
  content: "";
  display: block;
  width: 0.625em;
  height: 0.625em;
  border-top: 2px solid #37952F;
  border-right: 2px solid #37952F;
  transform: rotate(45deg);
}
.list-arrow a {
  color: inherit;
  text-decoration: none;
}
.list-arrow a:hover,
.list-arrow a:focus {
  color: #37952F;
}
/*数字リンク*/
.list-decimal > li:not(:first-child) {
  margin-top: 1em;
}
.list-decimal > li {
  margin-left: 1em;
  list-style-type: decimal;
}

/*----------------------------------------
	枠囲み
----------------------------------------*/
/*枠囲み（標準）*/
.frame {
  border: 2px solid #37952F;
  padding: 40px;
}
.frame__title {
  padding-left: 20px;
  border-left: 2px solid #37952F;
  font-size: 24px;
  font-weight: bold;
  line-height: 1.5;
}
.frame__title + * {
  margin-top: 30px;
}
/*枠囲み（警告）*/
.frame--alert {
  border: 2px solid #DF5656;
  color: #DF5656;
  font-weight: bold;
}
.frame--alert .frame__title {
  display: flex;
  align-items: center;
  padding-left: 0;
  border-left: 0;
}
.frame--alert .frame__title::before {
  flex-shrink: 0;
  content: "";
  display: inline-block;
  width: 40px;
  height: 40px;
  margin-right: 10px;
  background: url(../img/icon_attention.svg) center center / contain no-repeat;
  vertical-align: middle;
}

/*----------------------------------------
	ページタイトル
----------------------------------------*/

/*ページタイトル
--------------------------------------*/
.page-title {
  line-height: 1.5;
}
.page-title__main {
  display: block;
  font-size: 2.2rem;
  letter-spacing: 0.05em;
  font-weight: normal;
}
@media screen and (min-width:768px),print {
  .page-title__main {
    font-size: 2.8rem;
  　letter-spacing: 0.2em;
  }
}
/*ページヘッダー領域
--------------------------------------*/
/*大*/
.page-header-lg {
  display: flex;
  justify-content: center;
  align-items: center;
  height: calc(80/375*100vw);/*calc(200/375*100vw)*/
  padding: 0 20px;
  background-position: center center;
  background-size: cover;
  text-align: center;
}
.page-header-lg__company {
  background-image: url("../img/pagetitle_bg.jpg");/*共通背景*/
}
.page-header-lg__kamimachi {
  background-image: url("../img/kamimachi/kamimachi_pagetitle_bg.jpg");/*上町*/
}
.page-header-lg__asakura {
  background-image: url("../img/asakura/asakura_pagetitle_bg.jpg");/*朝倉*/
}
.page-header-lg__recruit {
  background-image: url("../img/recruit/pagetitle_recruit_bg.jpg");/*採用*/
}

@media screen and (min-width:768px),print {
  .page-header-lg {
    justify-content: center;
    height: 120px;/*400px*/
    padding: 0 50px;
  }
}
/*中*/
.page-header-md {
  padding: 30px 20px;/*80px 20px*/
  background: #E0E9B4;
  text-align: center;
}
.page-header-md__lead {
  margin-top: 40px;
}
@media screen and (min-width:768px),print {
  .page-header-md {
    padding: 100px 0;
  }
  .page-header-md__lead {
    margin-top: 50px;
  }
}
/*小*/
.page-header-sm {
  padding: 30px 20px;/*70px 20px*/
  background: #E0E9B4;
  text-align: center;
}

/*----------------------------------------
	page-intro
----------------------------------------*/
.page-intro {
  padding: 50px 0;
  line-height: 1.8;
}
.page-intro__catch {
  margin: -4px 0;
  font-size: 22px;
}
.page-intro__txt {
  margin-top: 40px;
}
@media screen and (min-width:768px),print {
  .page-intro{
    padding: 80px 0;
  }
  .page-intro__catch {
    margin: -14px 0;
    text-align: center;
    font-size: 36px;
  }
}

/*----------------------------------------
	cv-area
----------------------------------------*/
.cv-area {
  padding: 60px 0;
  background: #005E3C;
  color: #fff;
  text-align: center;
  font-size: 14px;
}
.cv-area__txt {
  margin-top: 30px;
}
.cv-area__btn {
  max-width: 400px;
  margin: 20px auto 25px;/*40px auto*/
}
.cv-area__tel {
  margin-top: 30px;/*20px*/
}
.cv-area__tel a {
}
.cv-area__tel img {
    margin-bottom: 25px;/*15px*/
}
p.cv-area__biztime {
    font-size: 1.4rem;
}

@media screen and (min-width:991px),print {
  .cv-area {
    padding: 80px 0;
    font-size: 1.6rem;
  }
  .cv-area__tel {
        display: flex;
        justify-content: space-between;
        max-width: 900px;
        margin: 30px auto 15px;
    }
    .cv-area__btn {
      max-width: 400px;
      margin: 20px auto 30px;
    }
}

@media screen and (max-width:540px) {
    .cv-area__tel-sp p {
       font-size: 1.1rem;/*1.2rem*/
       line-height: 1.4;
       margin-bottom: 15px;
    }
}
@media screen and (min-width:768px),print {
  .cv-area__tel img {
     max-width: 420px;
  }
}
@media screen and (min-width:541px) {
    .cv-area__tel-sp {
        display: none;
    }
}


/*----------------------------------------
	breadcrumb
----------------------------------------*/
.breadcrumb {
  display: none;
}
@media screen and (min-width: 768px) {
  .breadcrumb {
    display: block;
    padding: 15px 50px;
    background: #F4F4F4;
  }
  .breadcrumb__list li {
    display: inline-block;
    font-size: 1.2rem;
  }
  .breadcrumb__list li:not(:last-child)::after {
    content: "";
    display: inline-block;
    width: 5px;
    height: 5px;
    margin: 0 8px;
    border-top: 1px solid;
    border-right: 1px solid;
    transform: rotate(45deg);
  }
  .breadcrumb a[aria-current] {
    color: inherit;
    text-decoration: none;
  }
}

/*----------------------------------------
	見出し
----------------------------------------*/
/*大見出し
-----------------------------------*/
.heading-lv2-ja {/*lv2は中央位置*/
  text-align: center;
  font-weight: bold;
  line-height: 1.2;
}
.heading-lv2-ja::after {
  content: "";
  display: block;
  width: 100px;
  margin: 30px auto 0;
  border-top: 1px solid #37952F;
}
.heading-lv2-ja__main {
  display: block;
  font-size: 2.8rem;
  letter-spacing: 0.1em;
}
.heading-lv2-ja__sub {
  display: block;
  margin-bottom: 0.5em;
  font-size: 1.6rem;
}
.heading-lv2-ja--white {
  color: #fff;
}
.heading-lv2-ja--white::after {
  border-color: #fff;
}
@media screen and (min-width: 768px),print {
  .heading-lv2-ja__main {
    font-size: 3.6rem;
  }
  .heaing-lv2-ja__sub {
    font-size: 1.8rem;
  }
}

/*中見出し
-----------------------------------*/
.heading-lv3 {
  font-size: 2.2rem;
  line-height: 1.4;
  letter-spacing: 0.1em;
  margin-bottom: 30px;/*追加*/
}
.heading-lv3::after {
  content: "";
  display: block;
  width: 50px;
  margin-top: 10px;
  border-top: 3px solid #7DBB28;
}
.heading-lv3--center {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.heading-lv3--white {
  color: #fff;
}
.heading-lv3--white::after {
  border-color: #fff;
}
@media screen and (min-width: 768px),print {
  .heading-lv3 {
    font-size: 2.6rem;
  }
}

/*小見出し
-----------------------------------*/
.heading-lv4 {
  font-size: 1.8rem;
  margin-bottom: 10px;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.08em;
}
.heading-lv4--white {
  color: #fff;
  border-color: #fff;
}
@media screen and (min-width: 768px),print {
  .heading-lv4 {
    font-size: 2.2rem;
    margin-bottom: 20px;
  }
}

/*小見出し以下
-----------------------------------*/
.heading-lv5 {
  color: #005E3C;
  font-size: 2rem;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.08em;
}
.heading-lv6 {
  font-size: 1.6rem;
  font-weight: bold;
  line-height: 1.5;
}

/*----------------------------------------
	グリッド
----------------------------------------*/
.grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin-top: -20px;/*-40px*/
}
.grid__item {
  margin-top: 20px;/*40px*/
}

/*PC4カラム用*/
.grid--pc4col .grid__item {
  width: calc((100% - 20px)/2);
}
@media screen and (min-width: 568px) {
  .grid--pc4col .grid__item {
    width: calc((100% - 40px)/3);
  }
  .grid--pc4col::after {
    content: "";
    display: block;
    width: calc((100% - 40px)/3);
  }
}
@media screen and (min-width: 768px),print {
  .grid--pc4col .grid__item,
  .grid--pc4col::after {
    width: calc((100% - 60px)/4);
  }
  .grid--pc4col::before {
    content: "";
    display: block;
    width: calc((100% - 60px)/4);
    order: 1;
  }
}

/*PC3カラム用*/
.grid--pc3col {
  max-width: 400px;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 567px) {
    .grid--pc3col {
      width: 94%;
      display: block;
      margin-left: auto;
      margin-right: auto;
    }
}

@media screen and (min-width: 568px) {
  .grid--pc3col {
    max-width: none;
  }
  .grid--pc3col .grid__item {
    width: calc((100% - 20px)/2);
  }
}
@media screen and (min-width: 768px),print {
  .grid--pc3col .grid__item {
    width: calc((100% - 40px)/3);
  }
  .grid--pc3col::after {
    content: "";
    display: block;
    width: calc((100% - 40px)/3);
  }
}

/*PC2カラム用*/
.grid--pc2col {
  max-width: 400px;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (min-width: 768px),print {
  .grid--pc2col {
    max-width: none;
  }
  .grid--pc2col .grid__item {
    width: calc((100% - 20px)/2);
  }
}

@media (max-width: 767px) {/*追加*/
  .sakoju .grid {
    display: block; 
  }
}

/*----------------------------------------
	card
----------------------------------------*/
.card {
  /* display: block; */
  display: flex;
  flex-direction: column-reverse; 

  border: 1px solid #fff;/*1px solid #ccc*/
  box-shadow: 3px 3px 6px rgba(0,0,0,0.07);
  color: inherit;
  text-decoration: none;
  line-height: 1.5;
  transition: 0.3s;
}
/*hover仕様（a要素で構築された場合のみ）*/
a.card:hover,
a.card:focus {
  border: 1px solid #70CC33;
  color: inherit;
}
a.card:hover .card__image img,
a.card:focus .card__image img {
  transform: scale(1.1);
}
a.card:hover .card__btn,
a.card:focus .card__btn {
  opacity: 0.9;
}
a.card:hover .card__btn::after,
a.card:focus .card__btn::after {
  right: 15px;
}
/*サムネイル画像（アスペクト比維持して表示）*/
.card__image {
  position: relative;
  overflow: hidden;
}
.card__image::before {
  content: "";
  display: block;
  padding-top: calc((164/256)*100%);
}
.card__image img {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  max-width: none; 
  object-fit: cover;
  transition: 0.5s;
}
/*カードボディ部*/
.card__body {
  padding: 20px 20px 25px 20px;
  background: #fff;
}
.card__title {
  font-size: 2.0rem;
}
.card__text {
  margin-top: 1rem;
}
.card__btn {
  position: relative;
  margin-top: 20px;
  padding: 10px;
  background: #7dbb28;
  color: #fff;
  text-align: center;
  font-weight: bold;
  transition: 0.3s;
  border-radius: 25px;
}
.card__btn::after {
  position: absolute;
  right: 20px;
  top: 0;
  bottom: 0;
  margin: auto;
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  border-top: 2px solid;
  border-right: 2px solid;
  transform: rotate(45deg);
  transition: 0.3s;
}


/* 固定追従ボタンfixed_banner */
.fixed_banner {
    position: fixed; 
    z-index: 99999;
    top: 40%;
    right: 0;
}
.fixed_banner_pc {
    width: 72px;
}
.fixed_banner:hover {
    opacity: .9;
    transition: .3s;
}
.fixed_banner_sp {
    display: none;
}
@media screen and (max-width: 500px) {
    .fixed_banner_pc {
        display: none;
    }
}


/* 改行 */
@media (min-width: 576px){   
  .pc_br { display:block; }
  .sp_br { display:none; }
}
@media (max-width: 575px){   
  .pc_br { display:none; }
  .sp_br { display:block; }
}

/*space*/
.mb10 {
    margin-bottom: 10px;
}
.mb20 {
    margin-bottom: 20px;
}
.mb30 {
    margin-bottom: 30px;
}
.mb40 {
    margin-bottom: 40px;
}
.mb50 {
    margin-bottom: 50px;
}
.mt20 {
    margin-top: 20px;
}
.mt30 {
    margin-top: 30px;
}
.mt40 {
    margin-top: 40px;
}
.mt50 {
    margin-top: 50px;
}