@charset 'utf-8';
@import url(./html5-doctor-reset-stylesheet.min.css);
@import url(./cssreset.css);
@import url(./basic.css);


/*----------------------------------------------------------------------------------------------------------

    ORIGINAL - サイト独自の設定でbasic.cssを上書き -

----------------------------------------------------------------------------------------------------------*/

/*----------------------------------------------------------------------------------------------------------

    TEMPLATE - 20230118 update -

    01 BASIC
    02 LINK
    03 LAYOUT
    04 TITLE
    05 ANIMATION
    06 SNIPPET
    07 COMMON PARTS
    08 PRINT

----------------------------------------------------------------------------------------------------------*/

/*============================================================

    01 BASIC

============================================================*/

/*--------------------------------
	色設定
--------------------------------*/

:root {
  /* 基本色 */
  --color-highlight: #cfff83;
}


/* 基本 */

body {
    color:#000;
    font-feature-settings: "palt";
    letter-spacing: 0.06em;
    font-family: "Noto Sans JP", "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", "游ゴシック体", YuGothic, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
    text-align: justify;
    line-height: 1.6;
}

/* ページ遷移のトランジション + ローディング */

body #loader-wrapper {
    background-color: #28623B;
}

body #loader-wrapper #loader {
    border-top: 3px solid rgba(255, 255, 255, 0.2);
    border-right: 3px solid rgba(255, 255, 255, 0.2);
    border-bottom: 3px solid rgba(255, 255, 255, 0.2);
    border-left: 3px solid rgba(255, 255, 255, 0.8);
}


/*============================================================

    02 LINK

============================================================*/


/*--------------------------------
    リンク基本スタイル
--------------------------------*/

a:link,
a:visited {
    color:inherit;
    text-decoration:none;
}

@media only screen and (min-width: 813px) {
    a:hover,
    a:active {
        color:#666;
        text-decoration:none;
    }
}

a svg {
    fill:#000;
}

@media only screen and (min-width: 813px) {
    a:hover svg {
        fill:#666;
    }
}

/*--------------------------------
    矢印付きリンクテキスト
--------------------------------*/

.link_txt {
    margin: 2em auto 0;
}

.link_txt a svg {
    width:16px;
    height:16px;
    display: inline-block;
    vertical-align: middle;
    position: relative;
    top:-2px;
    margin: 0 5px;
    fill:#000;
    -webkit-transition: 0.4s;
    transition: 0.4s;
    will-change: transform;
}

@media only screen and (min-width: 813px) {
    .link_txt a:hover svg {
        -webkit-transform:translate3d(3px, 0, 0);
        transform:translate3d(3px, 0, 0);
    }
}


/*--------------------------------
    リンクボタン
--------------------------------*/

.link_btn {
    margin: 2em auto 0;
    width: 300px;
    font-size: 1.6rem;
    line-height: 1;
    letter-spacing: 0.1em;
    text-align: left;
}

.link_btn a {
    width: 100%;
    height: 50px; /* min-heightだとIE11でバグ */
    padding: 0 10px;
    border: 1px solid #000;
    -webkit-border-radius: 3px;
    border-radius: 3px;

    display: -webkit-flex; /* Safari */
    display: flex; /* Chrome, Firefox, IE11 */
    -webkit-justify-content: space-between;
    justify-content: space-between;
    -webkit-align-items: center;
    align-items: center;
}

.link_btn a:link,
.link_btn a:visited {
    color:#000;
    background-color: #fff;
}

@media only screen and (min-width: 813px) {
    .link_btn a:hover,
    .link_btn a:active {
        color:#fff;
        background-color: #000;
    }
}

.link_btn a svg {
    width:16px;
    height:16px;
    display: inline-block;
    vertical-align: middle;
    margin: 0 5px;
    fill:#000;
    -webkit-transition: 0.4s;
    transition: 0.4s;
    will-change: transform;

    /* flex: flex-grow flex-shrink flex-basis; */
    -ms-flex:0 0 auto;
    flex:0 0 auto;
    max-width:100%;
}

@media only screen and (min-width: 813px) {
    .link_btn a:hover svg {
        fill:#fff;
        -webkit-transform:translate3d(5px, 0, 0);
        transform:translate3d(5px, 0, 0);
    }
}

@media only screen and (max-width: 812px) {

    .link_btn {
        width:80%;
        min-width: 240px;
    }

    .link_btn a {
        height: 40px;
    }

}

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

.btn_more {
    margin: 2em auto;
    font-size: 1.6rem;
    line-height: 1;
    text-align: center;
    font-weight: 700;
}

.btn_more a {
    display: inline-block;
    height: 55px; /* min-heightだとIE11でバグ */
}

.btn_more a + a {
    margin-left: 2em;
}

.btn_more a:link,
.btn_more a:visited {
    color:#000;
}

.btn_more a svg {
    width:55px;
    height:55px;
    display: inline-block;
    vertical-align: middle;
    margin: 0 0 0 10px;
    fill:#29813F;
    -webkit-transition: 0.4s;
    transition: 0.4s;
    will-change: transform;

    /* flex: flex-grow flex-shrink flex-basis; */
    -ms-flex:0 0 auto;
    flex:0 0 auto;
    max-width:100%;
}

@media only screen and (min-width: 813px) {
    .btn_more a:hover,
    .btn_more a:active {
        color:#29813F;
    }

    .btn_more a:hover svg {
        -webkit-transform:translate3d(5px, 0, 0);
        transform:translate3d(5px, 0, 0);
    }
}

@media only screen and (max-width: 812px) {

    .btn_more {
        margin: 1em auto;
        font-size: 1.5rem;
    }

    .btn_more a {
        width: 100%;
        height: 40px; /* min-heightだとIE11でバグ */
    }

    .btn_more a + a {
        margin-left: 0;
        margin-top: 0.5em;
    }

    .btn_more a svg {
        width:30px;
        height:30px;
    }
}

/*--------------------------------
    緑背景ボタン
--------------------------------*/

/*  バナー */
.btn_green {
    position: relative;
}

.btn_green a {
    display: -webkit-flex; /* Safari */
    display: flex; /* Chrome, Firefox, IE11 */
    -webkit-align-items: center;
    align-items: center;
    justify-content: space-around;
    -webkit-flex-direction: column;
    flex-direction: column;
    align-content: center;
    width: 100%;
    height: 100%;
    padding: 30px 5%;
    min-height: 180px;
    background: #F5F7F0;
    color: #28623B;
    font-size: 2.4rem;
    font-weight: 700;
}

.btn_green a strong {
    display: block;
    font-size: 3.6rem;
}

.btn_green a em {
    display: block;
    text-align: center;
}

.btn_green a small {
    display: block;
    font-size: 1.6rem;
    margin-top: 1.5em;
}

.btn_green span {
    display: -webkit-flex; /* Safari */
    display: flex; /* Chrome, Firefox, IE11 */
    -webkit-align-items: center;
    align-items: center;
    flex-flow: wrap;
    justify-content: space-around;
    position: absolute;
    right: -10px;
    top: -30px;
    width: 135px;
    height: 135px;
    background: #F0567A;
    -webkit-border-radius: 50%;
    border-radius: 50%;
    color: #fff;
    font-size: 2.4rem;
    text-align: center;
    line-height: 1.5;
    animation: poyopoyo 2s ease-out infinite;
    opacity: 1;
}
@keyframes poyopoyo {
  0%, 40%, 60%, 80% {
    transform: scale(1.0);
  }
  50%, 70% {
    transform: scale(0.95);
  }
}
@media only screen and (min-width: 813px) {
    .btn_green a:hover,
    .btn_green a:active {
        background: #28623B;
        color: #F5F7F0;
    }
}

@media only screen and (max-width: 812px) {
    /*  バナー */
    .btn_green {
        margin-bottom: 20px;
    }

    .btn_green a {
        padding: 15px 5%;
        min-height: 60px;
        font-size: 1.8rem;
    }

    .btn_green a strong {
        font-size: 2rem;
    }

    .btn_green a small {
        display: block;
        font-size: 1.4rem;
        margin-top: 1em;
    }

    .btn_green span {
        right: -10px;
        top: -10px;
        width: 70px;
        height: 70px;
        font-size: 1.4rem;
    }
}

/*--------------------------------
    SNSアイコン
--------------------------------*/

a .icon_sns_insta,
a .icon_sns_fb,
a .icon_sns_tw,
a .icon_sns_note {
    fill:#666;
}

@media only screen and (min-width: 813px) {
    a:hover .icon_sns_insta,
    a:hover .icon_sns_fb,
    a:hover .icon_sns_tw,
    a:hover .icon_sns_note {
        fill:#aaa;
    }
}


/*============================================================

    03 LAYOUT

============================================================*/

/*--------------------------------
    コンテンツエリア
--------------------------------*/

/* ヘッダーの高さ依存 */

main > section:first-of-type {
    margin-top: 80px;
}

main > section#second_title {
    padding-top: 80px;
    padding-bottom: 0;
}

main > section:last-of-type {
  padding-bottom: 150px;
}

@media only screen and (max-width: 812px) {

    main > section:first-of-type {
        margin-top: 60px;
    }

    main > section#second_title {
        padding-top: 40px;
        padding-bottom: 30px;
    }

    main > section:last-of-type {
      padding-bottom: 75px;
    }

}


/*============================================================

    04 TITLE

============================================================*/

/*--------------------------------
    タイトル + 見出し
--------------------------------*/

/* 見出し */

.heading_gr1 {
    font-size: 4.0rem;
    margin: 2em auto;
}

.heading_gr1 span {
    display: inline-block;
    position: relative;
    line-height: 1.2;
    transition: all .6s cubic-bezier(0.87, 0, 0.13, 1);
    -webkit-transition-delay: 0;
    transition-delay: 0;
}

.heading_gr1 span:after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -10px;
    display: block;
    width: 0;
    height: 6px;
    background: #DE617B;
}

.heading_gr1.io.move span:after {
    animation: lineAnime .5s cubic-bezier(0.87, 0, 0.13, 1) .5s forwards;
}

.heading_gr2 {
    font-size: 2.4rem;
    text-align: center;
}

.heading_gr2 span {
    display: inline-block;
    position: relative;
    line-height: 1.2;
    transition: all .6s cubic-bezier(0.87, 0, 0.13, 1);
    -webkit-transition-delay: 0;
    transition-delay: 0;
}

.heading_gr2 span:after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -10px;
    display: block;
    width: 0;
    height: 4px;
    background: #74AE74;
}

.heading_gr2.io.move span:after {
    animation: lineAnime .5s cubic-bezier(0.87, 0, 0.13, 1) .5s forwards;
}

.heading_gr2 em {
    display: block;
    margin-bottom: 1em;
    color:#29813F;
}

.heading_gr3 {
    font-size: 2.0rem;
    text-align: center;
    letter-spacing: .05em;
}

.heading_gr3 span {
    display: inline-block;
    position: relative;
    line-height: 1.2;
    transition: all .6s cubic-bezier(0.87, 0, 0.13, 1);
    -webkit-transition-delay: 0;
    transition-delay: 0;
}

.heading_gr3 span:after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -10px;
    display: block;
    width: 100%;
    height: 4px;
    background: #74AE74;
}

.heading_gr3 small {
    display: inline-block;
    margin-left: .5em;
    font-size: 1.6rem;
}


/* セカンド共通 */

#second_title .container {
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    -webkit-align-items: center;
    align-items: center;
}

#second_title .heading_title {
    text-align: left;
    font-weight: 700;
    margin: 0;
    font-size: 2.4rem;
}

#second_title .heading_title em {
    display: block;
    margin-top: 1em;
    font-size: 1.3rem;
    color: #29813F;
}

#second_title ul li {
    display: inline-block;
    font-weight: 700;
}

#second_title ul li + li {
    margin-left: 2em;
}

#second_title ul li a {
    color:#29813F;
}

@media only screen and (min-width: 813px) {
    #second_title ul li a:hover,
    #second_title ul li a:active {
        color:#000;
    }
}


@keyframes lineAnime {
    0% {width:0%;}
    100%{width:100%;}
}

@media only screen and (max-width: 812px) {
    /* 見出し */
    .heading_gr1 {
        font-size: 2.2rem;
    }

    .heading_gr1 span:after {
        bottom: -8px;
        height: 4px;
    }

    .heading_gr2 {
        font-size: 1.8rem;
        letter-spacing: 0;
    }

    .heading_gr2 span:after {
        bottom: -8px;
        height: 3px;
    }

    .heading_gr3 {
        font-size: 1.8rem;
        letter-spacing: 0;
    }

    .heading_gr3 span:after {
        bottom: -8px;
        height: 3px;
    }

    .heading_gr3 small {
        font-size: 1.4rem;
    }

    /* セカンド共通 */

    #second_title .container {
        display: block;
    }

    #second_title .heading_title {
      font-size: 2.0rem;
  }
    #second_title .heading_title em {
        font-size: 1.1rem;
    }

    #second_title ul {
        margin-top: 2em;
        text-align: center;

        display: none;
    }

    #second_title ul li,
    #second_title ul li + li {
        margin: 1em;
    }

}

/*============================================================

    05 ANIMATION

============================================================*/


/*============================================================

    06 SNIPPET

============================================================*/


/*--------------------------------
    slick
--------------------------------*/

.slide {
    opacity: 0;
    -webkit-transition: 0.3s;
    transition: 0.3s;
    position: relative;
}

.slide.slick-initialized { /* slick動作開始時に表示 */
    opacity: 1;
}

.slide img {
    width: 100%;
    height: auto;
}

.slide .slidePrev,
.slide .slideNext {
    display: block;
    cursor: pointer;
    -webkit-transition: 0.4s;
    transition: 0.4s;
}

.slide .slidePrev {
    position: absolute;
    z-index: 1001;
    top:calc(50% - 18px);
    left: 3%;
}

.slide .slideNext {
    position: absolute;
    z-index: 1001;
    top:calc(50% - 18px);
    right:3%;
}

.slide .slidePrev svg,
.slide .slideNext svg {
    display: block;
    margin: 0 auto;
    width: 36px;
    height: 36px;
    fill:#fff;
    -webkit-transition: 0.4s;
    transition: 0.4s;
    will-change: fill;
    max-width:100%;
}

@media only screen and (min-width: 813px) {
    .slide .slidePrev:hover svg,
    .slide .slideNext:hover svg {
        fill:#999;
    }
}

.slide .slick-dots {
    bottom:-40px;
}

.slide .slick-dots li {
    width: 30px !important;
    height: 30px !important;
    margin: 0 !important;
}

.slide .slick-dots li button {
    width: 30px;
    height: 30px;
}

.slide .slick-dots li button::before {
    color: #fff;
    font-size: 11px;
    width: 30px;
    height: 30px;
    line-height: 30px;
    opacity: 0.9;
    -webkit-transition: 0.4s;
    transition: 0.4s;
    will-change: color;
}

@media only screen and (min-width: 813px) {
    .slide .slick-dots li:hover button::before {
        color: #ccc;
        opacity: 0.9;
    }
}

.slide .slick-dots li.slick-active button::before {
    color: #ccc;
    opacity: 0.9;
}

/* 調整用css */

.slick-dotted.slick-slider {
    margin-bottom: 0 !important;
}

@media only screen and (max-width: 812px) {

    .slide .slidePrev,
    .slide .slideNext {
        width:16px;
        height:16px;
    }

    .slide .slidePrev {
        top:calc(50% - 8px);
        left:8px;
    }

    .slide .slideNext {
        top:calc(50% - 8px);
        right:8px;
    }

    .slide .slidePrev svg,
    .slide .slideNext svg {
        width: 16px;
        height: 16px;
    }

    .slide .slick-dots {
        bottom:-40px;
    }

    .slide .slick-dots li {
        width: 28px !important;
        height: 28px !important;
        margin: 0 !important;
    }

    .slide .slick-dots li button {
        width: 28px;
        height: 28px;
    }

    .slide .slick-dots li button::before {
        color: #fff;
        font-size: 11px;
        width: 28px;
        height: 28px;
        line-height: 28px;
    }

    .slide .slick-dots li.slick-active button::before {
        color: #ccc;
    }

}

/*--------------------------------
    記事一覧・アーカイブページ
--------------------------------*/

/* リスト型 */

.post_list.listType {
    margin: 0 auto;
}

.post_list.listType li {
    margin: 0;
    padding-bottom: 15px;
    border-bottom: 1px solid #ccc;
}

.post_list.listType li:first-child {
    border-top: 1px solid #ccc;
}

/* カード型（サムネイルあり） */

.post_list.cardType {
    margin: 0 auto;
    display: -webkit-flex;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-align-items: flex-start;
    align-items: flex-start;
}

.post_list.cardType li {
    border-bottom: none;
    width: 30%;
    max-width:30%;
    -ms-flex: 0 0 30%;
    flex: 0 0 30%;
    margin: 0 5% 5em 0;
    overflow: hidden;
}

.post_list.cardType li:nth-of-type(3n) {
    margin-right: 0;
}

.post_list.cardType li .postImg {
/*
    -webkit-border-radius: 10px;
    border-radius: 10px;
*/
    overflow: hidden;
    position: relative;
    z-index: 1;
}

@media only screen and (min-width: 813px) {
    .post_list.cardType li .postImg a:hover img {
    /*
        -webkit-border-radius: 10px;
        border-radius: 10px;
    */
        -webkit-transform: scale(1.05);
        transform: scale(1.05);
    }
}

/* スライド型 */

.post_list.slideType {
    display: block;
}

.post_list.slideType li {
    display: block;
    width: 50vw !important;
    padding: 0 20px;
}
.post_list.slideType li .postCat {
    left: 20px;
}
.post_list.slideType li .postCat a + a {
  margin-left: 0.8em;
}
.post_list.slideType .slidePrev,
.post_list.slideType .slideNext {
    display: block;
    cursor: pointer;
    -webkit-transition: 0.4s;
    transition: 0.4s;
}

.post_list.slideType .slidePrev {
    position: absolute;
    z-index: 1001;
    top:calc(50% - 30px);
    left: 3%;
}

.post_list.slideType .slideNext {
    position: absolute;
    z-index: 1001;
    top:calc(50% - 30px);
    right:3%;
}

.post_list.slideType .slidePrev img,
.post_list.slideType .slideNext img {
    display: block;
    margin: 0 auto;
    width: 60px;
    height: 60px;
    -webkit-transition: 0.4s;
    transition: 0.4s;
    will-change: opacity;
    max-width:100%;
}

@media only screen and (min-width: 813px) {
    .post_list.slideType .slidePrev:hover img,
    .post_list.slideType .slideNext:hover img {
        opacity: 0.5;
    }
}


@media only screen and (max-width: 812px) {

    .post_list.slideType li {
        width: 80vw !important;
        padding: 0 10px;
    }
    .post_list.slideType li .postCat {
        left: 10px;
    }

    .post_list.slideType .slidePrev img,
    .post_list.slideType .slideNext img {
        width: 40px;
        height: 40px;
    }
}

/* 実績リスト */

.post_list.jissekiType {
    margin: 0 auto;
}

.post_list.jissekiType li {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-align-items: center;
    align-items: center;
    margin-bottom: 4vw;
}

.post_list.jissekiType li > * {
    width:48%;
    margin:0 4% 0 0;
}

.post_list.jissekiType li > *:nth-child(2n) {
    margin-right:0;
}

.post_list.jissekiType li .postCat {
    background: #f4f4f0;
}

.post_list.jissekiType li .postCat a + a {
  margin-left: 0.8em;
}

.post_list.jissekiType li .postTitle {
    margin: 1em auto;
}


/* 実績リスト_2カラム */

.post_list.jissekiType2 {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    margin-bottom: 4vw;
}

.post_list.jissekiType2 li {
    width:48%;
    margin:0 4% 4vw 0;
}

.post_list.jissekiType2 li:nth-child(2n) {
    margin-right:0;
}

.post_list.jissekiType2 li .postBudge {
    margin-top: 1em;
}

.post_list.jissekiType2 li .postCat {
    background: #f4f4f0;
}

.post_list.jissekiType2 li .postCat a + a {
  margin-left: 0.8em;
}

.post_list.jissekiType2 li .postTitle {
    margin: 1em auto;
}

@media only screen and (max-width: 812px) {

    .post_list.jissekiType {
      -webkit-flex-direction: column;
      flex-direction: column;
    }

    .post_list.jissekiType li {
      width:100%;
      margin:0 0 10vw 0;
    }

    .post_list.jissekiType li > * {
      width: 100%;
      margin: 0;
    }

    .post_list.jissekiType li .postBudge {
      margin-top: 1em;
    }

    /* 実績リスト_2カラム */

    .post_list.jissekiType2 {
      -webkit-flex-direction: column;
      flex-direction: column;
    }

    .post_list.jissekiType2 li {
      width:100%;
      margin:0 0 10vw 0;
    }

}


/*--------------------------------
    記事一覧・アーカイブページ 共通
--------------------------------*/

/* カテゴリー */

.post_list li {
    position: relative;
}

.post_list li .postCat {
    position: absolute;
    left: 0;
    top: 0;
    z-index: 2;
    padding: .5em 1em .7em;
    display: inline-block;
    background: #fff;
    color: #28623B;
    font-size: 1.3rem;
    font-weight: 700;
    -webkit-border-radius: 0 0 10px 0;
    border-radius: 0 0 10px 0;
    line-height: 1.4;
    max-width:90%;
}
.post_list li .postCat a + a {
  margin-left: 0.8em;
}

/* 記事情報 */

.post_list li .postInfo {
    margin: 15px 0 5px;
    line-height: 1.4;
}

/* 記事情報:日付 */

.post_list li .postInfo span {
    display: inline-block;
    vertical-align: top;
    font-size: 1.2rem;
    letter-spacing: 0.1em;
    margin: 0 1.5em 0 0;
}

/* 記事情報:カテゴリ */

.post_list li .postInfo {
    display: -webkit-flex; /* Safari */
    display: flex; /* Chrome, Firefox, IE11 */
    -webkit-justify-content: space-between;
    justify-content: space-between;
    -webkit-align-items: center;
    align-items: center;
}

.post_list li .postInfo .author {
    width: 60px;
    height: 60px;
    -webkit-border-radius: 50%;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
}

.post_list li .postInfo .author img {
    width: 100%;
    height: auto;
    -webkit-transition: 0.4s;
    transition: 0.4s;
}

.post_list li .postInfo .info {
    color: #888888;
    font-size: 1.3rem;
    margin: 0 auto 0 1em;
}

.post_list li .postInfo em {
    display: inline-block;
    vertical-align: top;
    font-weight: normal;
    margin: 0 1.5em 0 0;
    font-size: 1.5rem;
    font-size: min(1.5rem,15px);
}

.post_list li .postInfo em:last-of-type {
    margin: 0 0 0 0;
}

.post_list li .postInfo em a:link,
.post_list li .postInfo em a:visited {
    color:#888;
}

@media only screen and (min-width: 813px) {

    .post_list li .postInfo .author:hover img {
        -webkit-transform: scale(1.1);
        transform: scale(1.1);
    }

    .post_list li .postInfo em a:hover,
    .post_list li .postInfo em a:active	{
        color:#333;
    }
}

@media only screen and (max-width: 812px) {
    .post_list li .postInfo em {
        font-size: 1.2rem;
        font-size: min(1.2rem,12px);
    }
}

/* 記事タイトル */

.post_list li .postTitle {
    line-height: 1.6;
    font-weight: normal;
    text-align: left;
    margin: 1em auto;
    font-size: 1.8rem;
    font-size: min(1.8rem, 18px);
    font-weight: 500;
    letter-spacing: 0.1em;
}

.post_list.cardType li .postTitle {
    font-size: 1.9rem;
    font-size: min(1.9rem,19px);
}

.post_list li .postTitle span {
    display: block;
    margin-bottom: .5em;
    font-size: 1.4rem;
    font-weight: 700;
    color: #28623B;
}

.post_list li .postExcerpt {
    font-size: 1.4rem;
    margin: 1em 0 0;
}

/* 画像 */

.post_list li .postImg {
  overflow: hidden;
  position: relative;
  z-index: 1;
  aspect-ratio: 3/2;
}

.post_list li .postImg a {
    display: block;
    overflow: hidden;
    width: 100%;
    height: 100%;
}

.post_list li .postImg a img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    -webkit-transition: 0.4s;
    transition: 0.4s;
}

/* タグ */

.post_list li .postTag {
    margin: 10px auto 0;
    font-size: 1.4rem;
    font-size: min(1.4rem,14px);
    text-align: left;
}

.post_list li .postTag em {
    display: inline-block;
    margin: 0 10px 0 0;
}

.post_list li .postTag em a::before {
    content: "#";
    display: inline-block;
}

.post_list li .postTag em a:link,
.post_list li .postTag em a:visited	{
    color:#888;
}

@media only screen and (min-width: 813px) {

    .post_list li .postImg:hover img {
        -webkit-transform: scale(1.1);
        transform: scale(1.1);
    }

    .post_list li .postTag em a:hover,
    .post_list li .postTag em a:active	{
        color:#333;
    }
}

/* バッジ */

.postBudge em {
    display: inline-block;
    height: 36px;
    line-height: 36px;
    padding: 0 1.3em;
    background: #61B06E;
    -webkit-border-radius: 18px;
    border-radius: 18px;
    color: #fff;
    font-size: 1.3rem;
    -webkit-transition: 0.4s;
    transition: 0.4s;
    margin: 0 0.6em 0.6em 0;
}

/* .postBudge em + em {
  margin-left: 0.6em;
} */

@media only screen and (min-width: 813px) {
    .postBudge em:hover {
        background-color: var(--color-highlight);
        color: #28623B;
    }

    .postBudge em:hover a,
    .postBudge em:hover a:visited {
        color: #28623B;
    }
}


@media only screen and (max-width: 812px) {

    /* カード型（サムネイルあり） */

    .post_list.cardType {
        margin: 0 auto 30px;
        display: block;
    }

    .post_list.cardType li,
    .post_list.cardType li:nth-of-type(2n),
    .post_list.cardType li:nth-of-type(3n) {
        /* width: 47.5%;
        max-width:47.5%;
        -ms-flex: 0 0 47.5%;
        flex: 0 0 47.5%;
        margin: 0 5% 2em 0; */

        width:100%;
        margin:0 0 10vw 0;
        max-width:none;
    }

    /* .post_list.cardType li:nth-of-type(2n) {
        margin-right: 0;
    } */

    /* 記事情報（日付・カテゴリー） */

    .post_list li .postInfo {
        margin: 0;
        /* -webkit-align-items: flex-start;
        align-items: flex-start; */
    }
    .post_list li .postInfo span {
        font-size: 1.2 rem;
        margin: 0;
    }

    .post_list li .postInfo em {
        /*		font-size: 1.2rem;*/
        margin: 0 1em 0 0;
    }

    /* 著者 */
    .post_list li .postInfo .author {
        width: 40px;
        height: 40px;
    }

    .post_list li .postInfo .info {
        color: #888888;
        font-size: 1.3rem;
        margin: 0;
        width: calc(100% - 50px);
    }

    .post_list li .postInfo em {
        display: inline-block;
        vertical-align: top;
        font-size: 1.3rem;
        font-weight: normal;
        margin: 0 1.5em 0 0;
    }

    .post_list li .postInfo em:last-of-type {
        margin: 0 0 0 0;
    }

    .post_list li .postInfo em a:link,
    .post_list li .postInfo em a:visited {
        color:#888;
    }

    /* 記事タイトル */

    .post_list li .postTitle {
        font-size: 1.5rem;
        font-size: min(1.5rem,15px);
    }

    .post_list.cardType li .postTitle {
        font-size: 1.6rem;
        font-size: min(1.6rem,16px);
    }


    /* タグ */

    .post_list li .postTag {
        margin: 5px auto 0;
        font-size: 1.1rem;
    }

    /* アーカイブタイトル */

    section .container article .archiveTitle {
        margin: 0 0 2em 0;
        text-align: center;
    }

    /* 関連リンク */

    section .container article .relatedTitle {
        margin: 8em 0 4em;
        text-align: center;
    }

    /* バッジ */
    .postBudge em {
        height: 30px;
        line-height: 30px;
        padding: 0 1em;
        -webkit-border-radius: 15px;
        border-radius: 15px;
        font-size: 1.1rem;
    }

}


/*============================================================

    07 COMMON PARTS

============================================================*/


/*------------------------------------------------------------

    HEADER

------------------------------------------------------------*/

/*--------------------------------
    基本設定
--------------------------------*/

header {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9990;
    display: block;
    width:100%;
    height: 80px;
    background-color: #fff;
    z-index: 9990;
    -webkit-transition: 0.3s;
    transition: 0.3s;
}

header #header_main {
    position: relative;
    z-index: 1;
    max-width: none;
    height: 100%;
    padding-top:0;
    padding-bottom:0;
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    -webkit-align-items: center;
    align-items: center;
    /* background: rgba(255, 255, 255, 0.95); */
    background: rgba(255, 255, 255, 1);
    -webkit-box-shadow: 0px 0px 3px 0px rgba(0,0,0,0.15);
    box-shadow: 0px 0px 3px 0px rgba(0,0,0,0.15);
    /* backdrop-filter: blur(3px); */
}

body.nav-show header #header_main {
    -webkit-box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);
    box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);
}

header.windowfix {
    -webkit-transform:translate(0, -100%);
    transform:translate(0, -100%);
}

header.windowfix.moveup {
    -webkit-transform:translate(0, 0);
    transform:translate(0, 0);
}

header.windowfix.show {
    -webkit-transform:translate(0, 0);
    transform:translate(0, 0);
}

@media only screen and (max-width: 812px) {

    header {
        height: 60px;
    }

}

@media only screen and (max-height: 700px) {

    header {
        height: 60px;
    }

}

/*--------------------------------
    ロゴマーク
--------------------------------*/

header #header_main #header_logo {
    width: 200px;
    margin: 0 0 0 3%;
}

header #header_main #header_logo img {
    width: 100%;
    height: auto;
}

@media only screen and (max-width: 812px) {

    header #header_main #header_logo {
        width: 150px;
    }
}

@media only screen and (max-height: 700px) {

    header #header_main #header_logo {
        width: 150px;
    }

}

/*--------------------------------
    問い合わせ
--------------------------------*/

header #header_contact {
    position: absolute;
    top: 0;
    right: 80px;
    font-size: 0;
}

header #header_contact > div {
    display: inline-block;
    height: 80px;
    line-height: 80px;
}

header #header_contact > div a {
    display: block;
    width: 9em;
    height: 100%;
    font-size: 1.6rem;
    font-weight: 500;
    color: #fff;
    text-align: center;
}

header #header_contact > div:nth-of-type(1) {
    background: #29813F;
}
header #header_contact > div:nth-of-type(2) {
    background: #28623B;
}
header #header_contact > div:nth-of-type(3) {
    background: #000000;
}

@media only screen and (min-width: 813px) {
    header #header_contact > div:nth-of-type(1) a:hover,
    header #header_contact > div:nth-of-type(2) a:hover,
    header #header_contact > div:nth-of-type(3) a:hover {
        color: #28623B;
        background: var(--color-highlight);
    }
}

@media only screen and (max-width: 812px) {
    header #header_contact {
        display: none;
    }
}

@media only screen and (max-height: 700px) {
    header #header_contact {
        right: 60px;
    }

    header #header_contact > div {
        height: 60px;
        line-height: 60px;
    }

}

/*--------------------------------
    ナビゲーション
--------------------------------*/
header nav {
    display: block;
    position: fixed;
    top:0;
    left:0;
    z-index: 0;
    background-color: #F5F7F0;
    width:100vw;
    height:auto;
    padding-top: 100px;
    -webkit-box-shadow: 0px 0px 3px 0px rgba(0,0,0,0.15);
    box-shadow: 0px 0px 3px 0px rgba(0,0,0,0.15);

    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0);
    -webkit-transition: 0.3s;
    transition: 0.3s;

    /* GPU acceleration */
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    will-change: opacity, transform;
}

body.nav-show nav {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
}
/* ナビ出現時に背景でスクロールを止める処理 */

/* body.nav-show {
    overflow: hidden;
    height: 100%;
} */

header nav .nav_menu {
    max-width: 1200px;
    padding: 10vh 5vw 5vh;
    margin: 0 auto;
    display: -webkit-flex;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    -webkit-align-items: flex-start;
    align-items: flex-start;
}

header nav .nav_menu .menu_main {
    width:80%;
    display: -webkit-flex;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    -webkit-align-items: flex-start;
    align-items: flex-start;
}

header nav .nav_menu .menu_main li {
    display: block;
    width: 50%;
    margin: 0 0 2em;
    font-size: 2rem;
    font-size: max(1.7rem, min(1.2rem + 0.5vw, 2.4rem)); /* for old safari, IE */
    font-size: clamp(1.7rem, 1.2rem + 0.5vw, 2.4rem);
    font-weight: bold;
}

header nav .nav_menu .menu_main li a:not([herf="/"]).active { /* 現在地表示 */
    font-weight: bold;
    color: #29813F;
}

header nav .nav_menu .menu_main li a {
    display: inline-block;
    position: relative;
    padding-left: 45px;
}

header nav .nav_menu .menu_main li a svg {
    display: block;
    position: absolute;
    left: 0;
    top: 12px;
    fill: #29813F;
    width: 32px;
    height: 15px;
}

header nav .nav_menu .menu_main li a span {
    display: block;
    font-size: 1.1rem;
    color: #29813F;
    margin-top: .8em;
}

header nav .nav_menu .menu_sub {
}

header nav .nav_menu .menu_sub .menu_sub_contact {
    margin-bottom: 2em;
}

header nav .nav_menu .menu_sub .menu_sub_contact li {
    margin-bottom: 1em;
}

header nav .nav_menu .menu_sub .menu_sub_contact li a svg {
    display: inline-block;
    margin-right: .2em;
    fill: #000;
    width: 16px;
    height: 32px;
}

header nav .nav_menu .menu_sub .menu_sub_contact li a.active {
    font-weight: 700;
    color: #29813F;
}

header nav .nav_menu .menu_sub .menu_sub_contact li a.active svg {
    fill: #29813F;
}


header nav .nav_menu .menu_sub .menu_sub_sns li {
    display: inline-block;
}

header nav .nav_menu .menu_sub .menu_sub_sns li + li {
    margin: 0 0 0 20px;
}

header nav .nav_menu .menu_sub .menu_sub_sns li a svg {
    width: 32px;
    height: 32px;
    vertical-align: middle;
    fill: #000;
}

@media only screen and (min-width: 813px) {
    header nav .nav_menu .menu_main li a:hover svg {
        fill: #666;
        transform:translate3d(5px, 0, 0);
    }
    header nav .nav_menu .menu_main li a:hover span {
        color: #666;
    }

    header nav .nav_menu .menu_sub .menu_sub_contact li a:hover svg {
        transform:translate3d(3px, 0, 0);
    }

    header nav .nav_menu .menu_sub .menu_sub_sns li a:hover svg {
        fill: #666;
    }
}

@media only screen and (max-height: 700px) {

    header nav {
        padding-top: 60px;
    }

    header nav .nav_menu {
        padding: 5vh 3vw 3vh;
    }

    header nav .nav_menu .menu_main li {
    margin: 0 0 1.5em;
    font-size: 1.8rem;
    }
}

/* リンク */

header nav .nav_link {
    max-width: 1200px;
    padding: 0 5vw 10vh;
    margin: 0 auto;
}

header nav .nav_link div {
    display: inline-block;
}

header nav .nav_link div + * {
    margin-left: 50px;
}

header nav .nav_link div a img {
    width: 100%;
    height: auto;
    max-width: 75px;
    max-height: 75px;
}

/* スマホコンタクト */

header nav .nav_contact_sp {
    display: none;
}

@media only screen and (min-width: 813px) {
    header nav .nav_link div a:hover {
        opacity: 0.6;
    }
}

@media only screen and (max-width: 812px) {

    header nav {
        height: 100vh;
        height: 100dvh;
        padding-top: 60px;
        -webkit-box-shadow: 0px 0px 0px 0px rgb(0,0,0);
        box-shadow: 0px 0px 0px 0px rgb(0,0,0);
    }

    header nav .nav_menu {
        padding: 0;
        display: block;
    }

    header nav .nav_menu .menu_main {
        display: block;
        position: absolute;
        top:50%;
        left:50%;
        -webkit-transform:translate(-50%, -50%);
        transform:translate(-50%, -50%);
    }

    header nav .nav_menu .menu_main li {
        display: block;
        width: auto;
        margin: 1.5em auto;
        font-size: 1.8rem;
    }

    header nav .nav_menu .menu_main li a {
        padding-left: 35px;
    }

    header nav .nav_menu .menu_main li a svg {
        top: 6px;
        width: 25px;
        height: 12px;
    }

    header nav .nav_menu .menu_main li a span {
        font-size: 1.0rem;
    }

    header nav .nav_menu .menu_sub {
        display: none;
    }

    header nav .nav_menu .menu_sub .menu_sub_contact {
        display: none;
    }

    header nav .nav_menu .menu_sub .menu_sub_sns {
        display: none;
    }

    header nav .nav_link {
        display: none;
    }

    /* スマホコンタクト */

    header nav .nav_contact_sp {
        display: -webkit-flex;
        display: flex;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        -webkit-justify-content: space-between;
        justify-content: space-between;
        -webkit-align-items: center;
        align-items: center;
        position: absolute;
        bottom: 0;
        left: 0;
        width: 100%;
    }

    header nav .nav_contact_sp > div {
        display: inline-block;
        height: 60px;
        line-height: 60px;
        width: 33.333%;
    }

    header nav .nav_contact_sp > div a {
        display: block;
        width: 100%;
        height: 100%;
        font-size: 1.6rem;
        color: #fff;
        text-align: center;
    }

    header nav .nav_contact_sp > div:nth-of-type(1) {
        background: #29813F;
        border-right: 1px solid #F5F7F0;
    }
    header nav .nav_contact_sp > div:nth-of-type(2) {
        background: #28623B;
        border-right: 1px solid #F5F7F0;
    }
    header nav .nav_contact_sp > div:nth-of-type(3) {
        background: #000000;
    }
}

@media only screen and (max-height: 700px) {
    header nav .nav_link {
        padding: 0 3vw 5vh;
    }

    header nav .nav_link div + * {
        margin-left: 30px;
    }

}


/*--------------------------------
    ハンバーガーメニュー
--------------------------------*/

#nav_btnwrapper {
    position: fixed;
    top: 0;
    right: 0;
    background-color: #F5F7F0;
    z-index: 10001;
}

#nav_btnwrapper #nav_btn {
    display: block;
    position: relative;
    width: 80px;
    height: 80px;
    cursor: pointer;
    background: #fff;
}

#nav_btnwrapper #nav_btn #nav_btn_icon {
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    width: 50%;
    height: 2px;

    -webkit-transform:translate(-50%, -50%);
    transform:translate(-50%, -50%);

    background-color: #38603F;
    -webkit-transition: 0.3s;
    transition: 0.3s;
}

#nav_btnwrapper #nav_btn #nav_btn_icon::before,
#nav_btnwrapper #nav_btn #nav_btn_icon::after {
    display: block;
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: #38603F;
    -webkit-transition: 0.3s;
    transition: 0.3s;
}

#nav_btnwrapper #nav_btn #nav_btn_icon::before {
    -webkit-transform:translate(0, -400%);
    transform:translate(0, -400%);
}

#nav_btnwrapper #nav_btn #nav_btn_icon::after {
    -webkit-transform:translate(0, 400%);
    transform:translate(0, 400%);
}

body.nav-show #nav_btnwrapper #nav_btn #nav_btn_icon {
    background: transparent;
}

body.nav-show #nav_btnwrapper #nav_btn #nav_btn_icon::before {
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
}

body.nav-show #nav_btnwrapper #nav_btn #nav_btn_icon::after {
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
}

@media only screen and (max-width: 812px) {
    #nav_btnwrapper {
        display: block;
    }

    #nav_btnwrapper #nav_btn {
        width: 60px;
        height: 60px;
    }

}

@media only screen and (max-height: 700px) {
    #nav_btnwrapper #nav_btn {
        width: 60px;
        height: 60px;
    }
}

/*------------------------------------------------------------

    FOOTER

------------------------------------------------------------*/

/*--------------------------------
    基本設定
--------------------------------*/

footer {
    position: relative;
    background: #fff;
    overflow: hidden;
}

footer .container {
    padding-bottom: 100px;
    display: -webkit-flex;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    -webkit-align-items: flex-start;
    align-items: flex-start;
}

footer .container.wide {
    /* width: 90%; */
    /* padding-top: 10em; */
    padding-top: 0;
}

@media only screen and (max-width: 812px) {

    footer .container {
        position: relative;
        display: block;
        padding-bottom: 30px;
    }
    footer .container.wide {
        /* width: 100%; */
    }
}

/*--------------------------------
    コンタクト
--------------------------------*/

footer .container .footer_contact {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-justify-content: space-between;
	justify-content: space-between;
    -webkit-align-items: center;
    align-items: center;
    width: 100%;
}

footer .container .footer_contact > div {
    width: 33.333%;
    height: 15vw;
    max-height: 200px;
}

footer .container .footer_contact > div a {
    display: -webkit-flex; /* Safari */
    display: flex; /* Chrome, Firefox, IE11 */
    -webkit-align-items: center;
    align-items: center;
    flex-flow: wrap;
    justify-content: space-around;
    width: 100%;
    height: 100%;
    color: #fff;
    font-size: 2.8rem;
    letter-spacing: 0.08em;
    font-weight: 500;
}

footer .container .footer_contact > div:nth-of-type(1) a {
    background: #29813F;
}

footer .container .footer_contact > div:nth-of-type(2) a {
    background: #28623B;
}

footer .container .footer_contact > div:nth-of-type(3) a {
    background: #000000;
}

@media only screen and (min-width: 813px) {
    footer .container .footer_contact > div a:hover {
        color: #28623B;
        background: var(--color-highlight);
    }
}

@media only screen and (max-width: 812px) {

    footer .container .footer_contact {
        display: block;
    }

    footer .container .footer_contact > div {
        width: 100%;
        height: auto;
    }

    footer .container .footer_contact > div a {
        display: block;
        width: 100%;
        height: 100%;
        padding: 25px 3%;
        font-size: 2rem;
        text-align: center;
    }

}

/*--------------------------------
    フッター
--------------------------------*/

footer .container h2 {
    font-weight: 700;
    font-size: 2.2rem;
}

footer .container .footer_link {
    margin: 30px auto 50px;
}

footer .container .footer_link li {
    display: inline-block;
    vertical-align: middle;
    font-size: 1.4rem;
}

footer .container .footer_link li + li {
    margin-left: 1em;
}

footer .container .footer_link li svg {
    width: 16px;
    height: 16px;
    margin-right: 5px;
    fill: #000;
    vertical-align: middle;
}

footer .container .footer_sns {
    margin: 0 auto 50px;
    width:100%;
}

footer .container .footer_sns li {
    display: inline-block;
}

footer .container .footer_sns li + li {
    margin-left: 20px;
}

footer .container .footer_sns li svg {
    width: 30px;
    height: 30px;
    fill: #000;
}


@media only screen and (min-width: 813px) {
    footer .container .footer_link li svg:hover {
        fill: #666;
    }

    footer .container .footer_sns li svg:hover {
        fill: #666;
    }
}


@media only screen and (max-width: 812px) {

    footer .container .inner {
        padding: 0;
    }

    footer .container h2 {
        font-size: 1.6rem;
    }

    footer .container .footer_link {
        margin: 30px auto;
    }

    footer .container .footer_link li {
        display: block;
        margin: 0 auto;
    }

    footer .container .footer_sns {
        position: absolute;
        bottom: 70px;
        right: 5%;
        width: 80px;
    }

    footer .container .footer_sns {
        margin: 0 auto;
    }

    footer .container .footer_sns li + li {
        margin-left: 10px;
    }

    footer .container .footer_nav .footer_sns li svg {
        width: 24px;
        height: 24px;
    }

}


/*--------------------------------
    フッターリンク
--------------------------------*/

footer .container .footer_link {
    width:auto;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
    font-size: 1.3rem;
}

footer .container .footer_link li {
    display: inline-block;
    vertical-align: middle;
}

footer .container .footer_link li + li {
    margin-left: 20px;
}

footer .container .footer_link li a svg {
    width:16px;
    height:16px;
    display: inline-block;
    vertical-align: middle;
    position: relative;
    top:-2px;
    margin: 0 5px;
    fill:#000;
    -webkit-transition: 0.4s;
    transition: 0.4s;
    will-change: transform;
}

@media only screen and (min-width: 813px) {
    footer .container .footer_link li a:hover svg {
        -webkit-transform:translate3d(3px, 0, 0);
        transform:translate3d(3px, 0, 0);
    }
}

@media only screen and (max-width: 812px) {

    footer .container .footer_link li {
        display: block;
    }

    footer .container .footer_link li + li {
        margin-left: auto;
        margin-top: 10px;
    }

    footer .container .footer_link li a svg {
        margin: 0 3px 0 0;
        fill:#000;
        -webkit-transition: 0.4s;
        transition: 0.4s;
        will-change: transform;
    }
}


/*--------------------------------
    コピーライト
--------------------------------*/

footer .container .footer_copyright {
    width:auto;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
    font-size: 1.1rem;
}


/*--------------------------------
    ページトップボタン
--------------------------------*/

.pagetop {
    position: fixed;
    z-index: 5000;
    zoom:1;
    width: 54px;
    height:54px;
    bottom:30px;
    right: 30px;
    -webkit-border-radius: 50%;
    border-radius: 50%;
    overflow: hidden;
    -webkit-transition: 0.2s;
    transition: 0.2s;
    opacity: 0;
}

.pagetop.exist {
    opacity: 1;
}

.pagetop a {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    padding: 12px;
    text-align: center;
    background: #28623B;
    font-size: 1.2rem;
    margin: 0 auto;
}

.pagetop a svg {
    display: block;
    width: 30px;
    height: 30px;
    fill:#fff;
}

@media only screen and (min-width: 813px) {
    .pagetop a:hover svg {
        transform:translate3d(0, -5px, 0);
    }
}

@media only screen and (max-width: 812px) {

    .pagetop {
        display: none;
    }

}


/*------------------------------------------------------------

    COMMON

------------------------------------------------------------*/

/* 共通スタイル */


/*--------------------------------
    緑のボックスリンク
--------------------------------*/

/* .concept_link_wrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    max-width: 1200px;
    margin: 0 auto;
}

.concept_link {
    width: 48.5%;
    margin: 0 3% 3rem 0;
    background: #29813F;
    -webkit-border-radius: 10px;
    border-radius: 10px;
    text-align: center;
    color: #fff;
    overflow: hidden;
}

.concept_link:nth-child(2n) {
    margin-right: 0;
}

.concept_link a {
    padding: 50px 3% 40px;
    width: 100%;
    height: 100%;

    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content:  center;
}

.concept_link .btn_more svg {
    width:55px;
    height:55px;
    display: inline-block;
    vertical-align: middle;
    margin: 0 0 0 10px;
    fill:#fff;
    -webkit-transition: 0.4s;
    transition: 0.4s;
    will-change: transform;

    -ms-flex:0 0 auto;
    flex:0 0 auto;
    max-width:100%;
}

.concept_link a h3 {
    font-size: 3rem;
}

.concept_link a h3 small {
    display: block;
    font-size: 1.6rem;
    line-height: 1.8;
    margin: 1.2em auto 1.6em;
}

.concept_link a.active h3 span {
    border-bottom: 2px solid #fff;
}

.concept_link .btn_more {
    margin: 1em auto 0;
}

.concept_link .btn_more a:link,
.concept_link .btn_more a:visited {
    color:#fff;
}

@media only screen and (min-width: 813px) {
  .concept_link a:hover,
  .concept_link a:active {
      color: #28623B;
      background: var(--color-highlight);
  }
  .concept_link:hover .btn_more svg {
      -webkit-transform:translate3d(5px, 0, 0);
      transform:translate3d(5px, 0, 0);
      fill: #29813F;
  }
  .concept_link a.active:hover h3 span {
      border-bottom: 2px solid #28623B;
  }
}

@media only screen and (max-width: 812px) {

    .concept_link {
        width: 49%;
        margin: 0 2% 1rem 0;
    }
    .concept_link a {
        padding: 20px 3% 15px;
    }
    .concept_link a h3 {
        font-size: 2rem;
    }
    .concept_link a h3 small {
        font-size: 1.1rem;
        margin: 0.8em auto 0.5em;
    }
    .concept_link .btn_more {
        margin: .5em auto 0;
    }
    .concept_link .btn_more svg {
        width:30px;
        height:30px;
    }
} */


/*--------------------------------
    テキストボックス
--------------------------------*/
.textbox {
    width:100%;
    max-width: calc(900px + 6%);
    margin-left:auto;
    margin-right:auto;
    padding-left: 3%;
    padding-right: 3%;
    line-height: 1.8;
}

.textbox + .textbox {
  margin-top: 8em;
}

.textbox strong {
    display: block;
    font-size: 2.4rem;
    margin-bottom: 1.2em;
}

.textbox p + strong {
    margin: 2em auto .8em;
}

.textbox strong small {
    display: inline-block;
    margin-left: 1em;
    font-size: 1.8rem;
}

.textbox p + p {
    margin-top: 2em;
}

@media only screen and (max-width: 812px) {
    .textbox {
        line-height: 1.6;
        padding-left: 0;
        padding-right: 0;
    }

    .textbox strong {
        font-size: 1.8rem;
        /* margin-bottom: .5em; */
    }

    .textbox p + strong {
        margin: 1em auto .5em;
    }

    .textbox strong small {
        font-size: 1.4rem;
    }

    .textbox p + p {
        margin-top: 1em;
    }

}

/*--------------------------------
    画像のみボックス
--------------------------------*/
.imgbox {
    max-width:1000px;
    padding-left: 3%;
    padding-right: 3%;
    margin: 3em auto;
}


/*--------------------------------
    業種で探す/効果・反響でさがす
--------------------------------*/

/* 業種で探す */

.search_type {
    margin: 16rem auto;
}
.search_type + .search_type {
    margin-bottom: 0;
}
.search_type ul {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    margin: 5em auto 0;
}

.search_type ul li {
    width:24%;
    margin:0 1.3% 0 0;
}

.search_type ul li:nth-child(4n) {
    margin-right:0;
}

.search_type.--col3 ul li {
    width:32.466%;
    margin:0 1.3% 0 0;
}

.search_type.--col3 ul li:nth-child(3n) {
    margin-right:0;
}

.search_type ul li:nth-of-type(n+5) {
    margin-bottom: 0;
}

.search_type ul li div {
    display: -webkit-flex; /* Safari */
    display: flex; /* Chrome, Firefox, IE11 */
    -webkit-align-items: center;
    align-items: center;
    flex-flow: wrap;
    justify-content: space-around;
    padding: 20px 2%;
    background: #fff;
    font-weight: 700;
    font-size: 1.4rem;
    text-align: center;
    line-height: 2;
    -webkit-transition: 0.4s;
    transition: 0.4s;
}

.search_type ul li div strong {
    display: block;
    width: 100%;
    font-size: 1.8rem;
    color: #28623B;
}

.search_type ul li p {
    padding: 0 3%;
    line-height: 1.6;
    font-size: 1.5rem;
    font-size: min(1.5rem,15px);
    margin-top: 1em;
}

@media only screen and (min-width: 813px) {
    .search_type ul li:hover div {
        color: #28623B;
        background: var(--color-highlight);
    }

    .search_type ul li:hover p {
        color: #28623B;
    }
}

@media only screen and (max-width: 812px) {

    .search_type {
        -webkit-flex-direction: column;
        flex-direction: column;
        margin: 6rem auto;
    }

    .search_type ul {
        margin: 3em auto 0;
        display: block;
    }

    .search_type ul li,
    .search_type ul li:nth-child(4n),
    .search_type ul li:nth-of-type(n+5),
    .search_type.--col3 ul li,
    .search_type.--col3 ul li:nth-child(3n) {
        width:100%;
        margin:0 0 1rem;
    }

    .search_type ul li div {
        padding: 10px 2%;
        font-size: 1.4rem;
        line-height: 1.6;
    }

    .search_type ul li div strong {
        font-size: 1.6rem;
    }

    .search_type ul li p {
        padding: 0 3%;
        font-size: 1.4rem;
        font-size: min(1.4rem,14px);
    }
}

/* 効果・反響でさがす */
.search_result {
    margin: 16rem auto 0;
}

.search_result ul {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-justify-content: center;
    justify-content: center;
    margin: 5em auto 0;
}

.search_result ul li {
    width:22%;
    margin:0 1.5% 3vw;
    text-align: center;
}

.search_result ul li div {
    display: -webkit-flex; /* Safari */
    display: flex; /* Chrome, Firefox, IE11 */
    -webkit-align-items: center;
    align-items: center;
    flex-flow: wrap;
    justify-content: space-around;
    -webkit-border-radius: 50%;
    border-radius: 50%;
    width: 160px;
    height: 160px;
    padding: 20px;
    margin: 0 auto;
    background: #fff;
    -webkit-transition: 0.4s;
    transition: 0.4s;
}

.search_result ul li div img {
    max-width: 100%;
    max-height: 100%;
}

.search_result ul li strong {
    display: block;
    margin: 1em auto;
    font-size: 2rem;
    color: #28623B;
}

.search_result ul li p {
    line-height: 1.6;
    font-size: 1.5rem;
    font-size: min(1.5rem,15px);
    text-align: justify;
}

@media only screen and (min-width: 813px) {
    .search_result ul li:hover div {
        color: #28623B;
        background: var(--color-highlight);
    }
    .search_result ul li:hover p {
        color: #28623B;
    }
}

@media only screen and (max-width: 812px) {
    .search_result {
        margin: 6rem auto 0;
        -webkit-flex-direction: column;
        flex-direction: column;
    }

    .search_result ul {
        margin: 3em auto -6vw;
    }

    .search_result ul li {
        width:47.5%;
        margin:0 5% 6vw 0;
    }

    .search_result ul li:nth-child(2n) {
        margin-right: 0;
    }

    .search_result ul li div {
        width: 80px;
        height: 80px;
        padding: 20px;
    }

    .search_result ul li strong {
        margin: .8em auto;
        font-size: 1.6rem;
    }

    .search_result ul li p {
        text-align: left;
        font-size: 1.4rem;
        font-size: min(1.4rem,14px);
    }

}



/*--------------------------------
    ちいきのブログ
--------------------------------*/

.chiiki_category {
    background: #F5F7F0;
    -webkit-border-radius: 30px;
    border-radius: 30px;
    margin: 8em auto 0;
    padding: 30px 5% 50px;
}

.chiiki_category ul {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    margin-top: 70px;
}

.chiiki_category ul > li {
    width:48%;
    margin:0 4% 3vw 0;
}

.chiiki_category ul > li a {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-align-items: center;
    align-items: center;
}

.chiiki_category ul > li:nth-child(2n) {
    margin-right:0;
}

.chiiki_category ul li div:nth-of-type(1) {
    -webkit-border-radius: 50%;
    border-radius: 50%;
    overflow: hidden;
    width: 160px;
    height: 160px;
    margin: 0 30px 0 0;
    -webkit-box-shadow: 10px 10px 0 0 var(--color-highlight);
    box-shadow: 10px 10px 0 0 var(--color-highlight);
}

.chiiki_category ul li:hover div:nth-of-type(1) img {
    -webkit-transform: scale(1.05);
    transform: scale(1.05);
}

.chiiki_category ul li div:nth-of-type(2) {
    width: calc(100% - 190px);
}

.chiiki_category ul li div:nth-of-type(2) p {
    line-height: 1.6;
    font-size: 1.5rem;
    font-size: min(1.5rem,15px);
}

.chiiki_category ul li div:nth-of-type(2) strong {
    display: block;
    margin-bottom: 1em;
    font-weight: 700;
    font-size: 2.0rem;
    color: #28623B;
}

@media only screen and (max-width: 812px) {
    .chiiki_category {
        -webkit-border-radius: 20px;
        border-radius: 20px;
        margin-top: 50px;
        padding: 20px 6%;
    }

    .chiiki_category ul {
        display: block;
        margin-top: 50px;
    }

    .chiiki_category ul > li {
        width: 100%;
        margin: 0 auto 15px;
    }

    .chiiki_category ul > li:nth-child(2n) {
        margin-right:0;
    }

    .chiiki_category ul > li a {
      /* align-items: flex-start; */
    }

    .chiiki_category ul li div:nth-of-type(1) {
      width: 60px;
      height: 60px;
      margin: 0 20px 0 0;
      -webkit-box-shadow: 5px 5px 0 0 var(--color-highlight);
      box-shadow: 5px 5px 0 0 var(--color-highlight);
    }

    .chiiki_category ul li div:nth-of-type(2) {
      width: calc(100% - 80px);
    }


    .chiiki_category ul li div:nth-of-type(2) strong {
      /* margin-bottom: .6em; */
      font-size: 1.6rem;

      margin-bottom: 0;
    }

    .chiiki_category ul li div:nth-of-type(2) p {
      /* font-size: 1.3rem;
      font-size: min(1.4rem,14px); */

      display: none;
    }

}

