@charset "utf-8";
/**********************

base

**********************/
* {
      box-sizing: border-box;
}

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

a,
p {
   text-decoration: none;
   color: #313131;
   font-family: "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", sans-serif;
   letter-spacing: .1em;
}

a:hover {
   opacity: .6;
}

a.disabled {
   pointer-events: none;
}

ul,
li {
   list-style: none;
}

@media(min-width: 768px) {
   a[href^="tel:"] {
      pointer-events: none;
   }
}

html {
   scroll-behavior: smooth;
}

h2 {
   font-size: 40px;
   color: #313131;
   padding-top: 40px;
   padding-bottom: 30px;
   letter-spacing: .1em;
   line-height: 2em;
   font-family: "FOT-筑紫オールド明朝 Pro R";
}

h3 {
   font-size: 24px;
   color: #313131;
   padding-top: 40px;
   padding-bottom: 30px;
   letter-spacing: .1em;
   font-family: "FOT-筑紫オールド明朝 Pro R";
   line-height: 1.5em;
}

p {
   color: #313131;
   line-height: 1.5em;
}

* {
   /* 游ゴシック体 */
   font-family: "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", sans-serif;
}

/**********************

container

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

@media screen and (min-width:1200px) {
   .container {
      width: 1200px;
      display: block;
   }
}

@media screen and (max-width:1024px) {
   .container {
      width: 100%;
      display: block;
      padding-left: 10px;
      padding-right: 10px;
   }
}

@media screen and (min-width:1025px) {
   .pc_none {
      display: none;
   }
}

/**********************

flex

**********************/
.flex {
   display: flex;
   flex-wrap: wrap;
}

.space_between {
   justify-content: space-between;
}

.space_around {
   justify-content: space-around;
}

.flex_center {
   justify-content: center;
}

.wrap {
   flex-wrap: wrap;
}

.reverse {
   flex-direction: row-reverse;
}

@media screen and (max-width:1024px) {
   .column {
      flex-direction: column;
   }

   .column_reverse {
      flex-direction: column-reverse;
      align-content: center;
      align-items: flex-start;
   }
}

/**********************

icomoon

**********************/

@font-face {
   font-family: 'icomoon';
   src: url('fonts/icomoon.eot?3zem9n');
   src: url('fonts/icomoon.eot?3zem9n#iefix') format('embedded-opentype'),
      url('fonts/icomoon.ttf?3zem9n') format('truetype'),
      url('fonts/icomoon.woff?3zem9n') format('woff'),
      url('fonts/icomoon.svg?3zem9n#icomoon') format('svg');
   font-weight: normal;
   font-style: normal;
   font-display: block;
}

[class^="icon-"],
[class*=" icon-"] {
   /* use !important to prevent issues with browser extensions that change fonts */
   font-family: 'icomoon' !important;
   speak: never;
   font-style: normal;
   font-weight: normal;
   font-variant: normal;
   text-transform: none;
   line-height: 1;

   /* Better Font Rendering =========== */
   -webkit-font-smoothing: antialiased;
   -moz-osx-font-smoothing: grayscale;
}

.icon-phone:before {
   content: "\e942";
}

/**********************

Top

**********************/
/**********************

header

**********************/
.header_logo {
   background-color: #fff;
   padding: 19px 70px 20px 58px;
   position: fixed;
   top: 0;
   left: 0;
   z-index: 1000;
   box-shadow: 0 0 30px rgba(0,0,0,0.3);
}

.gnav {
   position: fixed;
   top: 65px;
   width: 58%;
   left: 23%;
   z-index: 1000;
}

.gnav_item a {
   color: #fff;
   font-family: "FOT-筑紫オールド明朝 Pro R";
   font-size: 15px;
   letter-spacing: inherit;
/*   text-shadow: 0 0 7px rgb(0 0 0 / 80%);*/
   transition: color 0.4s ease-out;
}

.gnav_item.change_color a {
   color: #000;
   transition: color 0.4s ease-out;
}

.mail_btn {
   background: linear-gradient(90deg, #E3BB1B, #B69019);
}

.mail_btn a {
   display: block;
   padding: 20px 54px 20px 74px;;
   color: #fff;
   position: relative;
}

.mail_btn a:after {
   position: absolute;
   content: '';
   background: url(../images/icon_mail.png) no-repeat;
   width: 50px;
   height: 50px;
   top: 40%;
   left: 20%;
}

.mail_btn a:hover {
   opacity: 1;
   background-color: #fff;
   color: #D1B357;
   transition: .6s;
}

.mail_btn a:hover:after {
   position: absolute;
   content: '';
   background: url(../images/icon_mail_g.png) no-repeat;
   width: 50px;
   height: 50px;
   top: 40%;
   left: 20%;
}

.header_btn {
   position: fixed;
   right: 0;
   top: 0;
   box-shadow: 0 0 30px rgba(0,0,0,0.3);
   z-index: 1000;
}


.bg_white {
   background: url(../images/bg_white.png) top right no-repeat;
   background-size: cover;
   background-attachment: fixed;
}


@media screen and (max-width: 1024px) {
   .header_btn {
      top: inherit;
      bottom: 0;
   }
   .header_logo {
      padding: 14px 37px 13px 38px;
   }
   .gnav_item a {
      text-shadow: 0 0 0;
   }
}

@media screen and (max-width: 599px) {
   .header_logo {
      padding: 10px 25px;
   }
   .header_logo img {
      width: 60px;
   }
   .mail_btn.header_btn a {
      padding: 10px 44px 10px 64px;
   }
}

/**********************

ハンバーガーメニュー

**********************/
@media screen and (max-width: 1024px) {

   .hamburger {
      display: block;
      position: fixed;
      z-index: 4;
      right: 0px;
      top: 0px;
      width: 42px;
      height: 42px;
      cursor: pointer;
      text-align: center;
/*      background: linear-gradient(90deg, #E3BB1B, #B69019);*/
      background-color: #222;
      box-shadow: 0 0 20px rgba(0,0,0,0.3);
      width: 50px;
      height: 50px;
   }

   .hamburger span {
      display: block;
      position: absolute;
      width: 30px;
      height: 2px;
      left: 10px;
      background: #fff;
      -webkit-transition: 0.3s ease-in-out;
      -moz-transition: 0.3s ease-in-out;
      transition: 0.3s ease-in-out;
   }

   .hamburger span:nth-child(1) {
      top: 12px;
   }

   .hamburger span:nth-child(2) {
      top: 22px;
   }

   .hamburger span:nth-child(3) {
      top: 32px;
   }

   /* ナビ開いてる時のボタン */
   .hamburger.active span:nth-child(1) {
      top: 22px;
      -webkit-transform: rotate(-45deg);
      -moz-transform: rotate(-45deg);
      transform: rotate(-45deg);
   }

   .hamburger.active span:nth-child(2),
   .hamburger.active span:nth-child(3) {
      top: 22px;
      -webkit-transform: rotate(45deg);
      -moz-transform: rotate(45deg);
      transform: rotate(45deg);
   }

   nav.gnav {
      position: fixed;
      z-index: 2;
      top: 0;
      left: 0;
      color: #000;
      background-color: #fff;
      text-align: center;
      transform: translateX(100%);
      transition: all 0.6s;
      width: 100%;
      height: 100%;
      font-size: 20px;
   }

   nav.gnav > ul {
      background: #fff;
      margin: 0 auto;
      padding: 160px 50px;
      width: 100%;
   }

   nav.gnav ul li {
      list-style-type: none;
      padding: 20px 0;
      width: 40%;
   }

   nav.gnav ul li:last-child {
      padding-bottom: 0;
   }

   nav.gnav ul li a {
      display: block;
      color: #3B3B3B;
      padding: 1em 0;
   }

   /* このクラスを、jQueryで付与・削除する */
   nav.gnav.active {
      transform: translateX(0%);
   }
}

/**********************

mv

**********************/

.mv_img img {
   padding: 25px;
   width: 100%;
   height: 100vh;
   object-fit: cover;
}

.mv {
   position: relative;
}
.mv_copy {
   position: absolute;
   top: 51vh;
   left: 13vw;
}

@media screen and (max-width: 599px) {
   .mv_img img {
      object-position: 55%;
   }
   .mv_copy {
      left: 7vw;
      width: 85%;
   }
}

/**********************

top_message

**********************/
.top_message .bg_white {
   padding-top: 120px;
   padding-bottom: 200px;
}

.top_message_left {
   width: 50%;
}

.top_message_txt {
   font-size: 18px;
   line-height: 1.8em;
   margin-top: 39px;
   font-family: "FOT-筑紫オールド明朝 Pro R";
}

.top_message_right img {
   box-shadow: 0 0 20px rgba(0,0,0,0.3);
}

.top_message_right {
   position: relative;
}

.top_message_img_02 img {
   position: absolute;
   z-index: 1;
   top: 482px;
   left: -69px;
}

@media screen and (max-width: 1200px) {
   .top_message_img_02 img {
      left: inherit;
      top: 502px;
      right: -20px;
   }
   .top_message_ttl  {
      padding-top: 0;
   }
   .top_message_txt {
      margin-top: 0;
   }
}

@media screen and (max-width: 1024px) {
   .top_message_left {
      width: 100%;
   }
   .top_message .flex {
      justify-content: flex-end;
   }
   .top_message_right {
      margin-top: 40px;
   }
   .top_message_img_02 img {
      top: 250px;
      right: inherit;
      left: -100px;
      width: 50%;

   }
   .top_message_img_01 {
      width: 60vw;
      text-align: right;
   }
}

@media screen and (max-width: 599px) {
   .top_message_img_01 {
      width: 100%;
   }
   .top_message_img_02 img {
      top: 400px;
      left: 80px;
      width: 80%;
   }
   .top_message .bg_white {
      padding-top: 100px;
   }
   .top_message_ttl {
      font-size: 30px;
   }
}

/**********************

top_service

**********************/
.bg_service {
   padding-top: 130px;
   padding-bottom: 170px;
   background: url(../images/bg_service.png) top right no-repeat;
   background-size: cover;
   background-attachment: fixed;
}

.top_service_ttl {
   color: #fff;
}

.top_service_item {
   width: 30%;
   position: relative;
   margin-top: 102px;
}

.top_service_no {
   position: absolute;
   left: 22px;
   top: -32px;
}

.top_service_img img {
   width: 100%;
}

.top_service_h3,
.top_service_txt {
   color: #fff;
}

.top_service_txt {
   line-height: 2em;
}

@media screen and (max-width: 1024px) {
   .top_service_ttl {
      padding: 0;
   }
   .top_service_item {
      width: 100%;
      display: flex;
      justify-content: space-around;
   }
   .top_service_list li:nth-child(2) {
      flex-direction: row-reverse;
   }
   .top_service_box {
      margin-left: 20px;
   }
   .top_service_box.no2 {
      margin-left: 0;
      margin-right: 20px;
   }
   .top_service_no.no2 {
      left: inherit;
      right: -22px;
   }
}

@media screen and (max-width: 599px) {
   .top_service_ttl {
      font-size: 30px;
   }
   .top_service_item,
   .top_service_list li:nth-child(2) {
      flex-direction: column;
   }
   .top_service_no.no2 {
      left: 22px;
      top: -32px;
   }
}


/**********************

top_charenge

**********************/
.bg_charenge {
   padding-top: 80px;
   padding-bottom: 140px;
   position: relative;
   background: url(../images/bg_charenge.png) top right no-repeat;
   background-size: cover;
   background-attachment: fixed;
}

.top_charenge_ttl {
   color: #D1B357;
}

.top_charenge_ttl span {
   font-size: 64px;
}

.top_charenge_item {
   width: 30%;
   margin-top: 36px;
}

.top_charenge_txt,
.top_charenge_h3 {
   color: #D1B357;
}

.view_btn {
   margin-top: 30px;
   text-align: right;
   padding-right: 30px;
}

.view_btn a {
   color: #A08122;
   position: relative;
   padding-right: 10px;
}

.view_btn a::after {
   content: "";
   display: block;
   position: absolute;
   top: 0;
   bottom: 0;
   right: -25%;
   margin: auto;
   width: 26px;
   height: 10px;
   border-bottom: 1px solid #A08122;
}

.view_btn a::before {
   content: "";
   display: block;
   position: absolute;
   top: 0;
   bottom: -10px;
   right: -22%;
   margin: auto;
   width: 9px;
   height: 10px;
   border-top: 1px solid #A08122;
   -webkit-transform: rotate(45deg);
   transform: rotate(45deg);
}

@media screen and (max-width: 1024px) {
   .top_charenge_ttl {
      padding: 0;
   }

   .top_charenge_ttl span {
      font-size: 55px;
   }
   .top_charenge_item {
      width: 100%;
      display: flex;
      justify-content: space-between;
   }
   .top_charenge_h3 {
      padding-top: 10px;
      padding-bottom: 15px;
   }
   .top_charenge_img {
      margin-right: 20px;
   }
}

@media screen and (max-width: 599px) {
   .top_charenge_item {
      flex-direction: column;
      align-items: center;
   }
   .top_charenge_img {
      margin-right: 0;
   }
   .top_charenge_img img {
      width: 100vw;
   }
   .top_charenge_ttl {
      font-size: 25px;
   }
   .top_charenge_ttl span {
      font-size: 45px;
   }
}

/**********************

top_case

**********************/
.bg_case {
   padding-top: 113px;
   padding-bottom: 121px;
   position: relative;
   background: url(../images/bg_case.png) top right no-repeat;
   background-size: cover;
   background-attachment: fixed;
}

.top_case_item {
   width: 30%;
   margin-top: 36px;
}

.top_case_item img {
   display: block;
}

.top_case_ttl {
   font-size: 56px;
}

.top_case_box time {
   color: #959595;
   font-family: "FOT-筑紫オールド明朝 Pro R";
}

.top_case_h3 {
   font-size: 20px;
}

.top_case_h3 a {
   font-family: "FOT-筑紫オールド明朝 Pro R";
}

.more_btn {
   text-align: center;
   background: linear-gradient(90deg, #E3BB1B, #B69019);
   width: 400px;
   margin: 0 auto;
   margin-top: 67px;
   box-shadow: 0 0 20px rgba(0,0,0,0.3);
}

.more_btn a {
   padding: 20px 0;
   display: block;
   color: #fff;
   font-size: 20px;
   font-family: "FOT-筑紫オールド明朝 Pro R";
}

.more_btn a:hover {
   opacity: 1;
   background-color: #fff;
   color: #D1B357;
   transition: .8s;
}

@media screen and (max-width: 1024px) {
   .top_case_ttl {
      padding: 0;
   }
   .top_case_item {
      width: 45%;
   }
}

@media screen and (max-width: 599px) {
   .top_case_item {
      width: 100%;
      margin-top: 55px;
   }
   .top_case_item img {
      width: 100%;
   }
   .more_btn {
      width: 100%;
   }
}

/**********************

top_column

**********************/
.bg_white_c {
   padding-top: 104px;
   padding-bottom: 129px;
   background: url(../images/bg_white_c.png) top right no-repeat;
   background-size: cover;
   background-attachment: fixed;
}

.top_column_ttl {
   font-size: 56px;
}

.top_column_item {
   width: 30%;
   margin-top: 36px;
   box-shadow: 0 0 20px rgba(0,0,0,0.3);
}

.top_column_item img {
   width: 100%;
   display: block;
}

.top_column_box {
   background-color: #fff;
   padding: 20px;
}

.top_column_box time {
   font-size: 14px;
   color: #959595;
   font-family: "FOT-筑紫オールド明朝 Pro R";
}

.top_column_box h3 {
   font-size: 18px;
   padding-top: 14px;
   padding-bottom: 20px;
}

.top_column_h3 a {
   font-family: "FOT-筑紫オールド明朝 Pro R";
}

.column_cat li {
   margin-right: 20px;
}

.column_cat li a {
   font-size: 12px;
   color: #A08122;
   letter-spacing: inherit;
}

.column_cat li a:before {
   content: '#';
}

@media screen and (max-width: 1024px) {
   .top_column_ttl {
      padding: 0;
   }
   .top_column_item {
      width: 45%;
   }
}

@media screen and (max-width: 599px) {
   .top_column_item {
      width: 100%;
      margin-bottom: 20px;
   }
}

/**********************

footer

**********************/
.footer {
   padding-top: 88px;
   padding-bottom: 87px;
   background-color: #222222;
}

.footer_nav a {
   color: #fff;
   line-height: 2em;
}

.footer_left {
   width: 50%;
}

.footer_left .flex {
   margin-top: 20px;
}

.footer_left .mail_btn {
   margin: 20px 30px 20px 0;
}

.footer_add {
   color: #fff;
   font-size: 14px;
   margin: 20px 0;
}

.footer_right {
   width: 50%;
}

.footer_nav_low {
   text-indent: .2em;
}

.footer_nav_low li::before {
   content: '-';
   color: #fff;
   margin-right: 5px;
}

.footer_nav>ul>li>a {
   font-weight: bold;
}

.copyright {
   margin-top: 32px;
   text-align: right;
   color: #959595;
   font-size: 12px;
}

@media screen and (max-width: 1024px) {
   .footer .container > .flex {
      flex-direction: column;
   }
   .footer_left {
      width: 100%;
   }
   .footer_right {
      width: 100%;
      margin-top: 20px;
   }
   .copyright {
      text-align: center;
   }
}

@media screen and (max-width: 599px) {
   .footer_nav {
      flex-direction: column;
      margin-left: 20px;
      margin-bottom: 20px;
   }
}

/**********************

404.php

**********************/
.error-404 {
   margin-top: 200px;
   margin-bottom: 120px;
}

.error-404 h3 {
   line-height: 1.5em;
   text-align: center;
}

.error-404 p {
   margin: 0 auto;
   margin-top: 1em;
   line-height: 1.5em;
   text-align: center;
}

.error-404 .about_btn {
   margin-top: 80px;
}


/**********************

index.php

**********************/
.index_main {
   margin-top: 63px;
}

.index_container {
   padding-top: 100px;
}

.index_ttl {
   padding: 80px 0 70px;
   text-align: left;
   font-size: 40px;
   line-height: 1.5em;
}

.index_sec {
   margin-bottom: 140px;
   line-height: 1.5em;
}

.main_page .alignc {
   margin-top: 50px;
}

@media screen and (max-width: 699px) {
   .index_main {
      margin-top: 60px;
   }
}

.archive .header .gnav_link,
.single .header .gnav_link,
.error404 .header .gnav_link {
   text-shadow: 0 0 10px rgba(0,0,0, 0.8);
}

/********************

contact お問い合わせページ

********************/
.contact_ttl {
   text-align: center;
   margin: 50px 0;
   font-size: 18px;
   font-weight: bold;
   color: #DC000C;
   line-height: 2em;
}

.contact_ttl span {
   color: #000;
   font-weight: normal;
   font-size: 14px;
}

.form_intro {
   border-radius: 8px;
   margin: 10px;
   text-align: center;
   width: 48%;
}

.bg_grey {
   background-color: #efefef;
}

.bg_grey .form_ttl {
   color: #30001c;
}

.bg_lightgreen {
   background-color: #e6fff1;
}

.form_item {
   margin: 20px;
   color: #003014;
   line-height: 2em;
}

.contact_job_txt {
   color: #30001c;
}

.form_ttl {
   margin: 30px;
   font-weight: bold;
   text-align: center;
   color: #003014;
   font-size: 26px;
}

.entry_content {
   margin: 60px 0;
}

@media only screen and (max-width:1080px) {
   .companylist_ttl.flex {
      flex-direction: column;
   }

   .form_intro {
      width: 90%;
      margin: 10px auto;
   }
}

/* フォームのテンプレート template01 */
.form__wrap {
   width: 100%;
   max-width: 900px;
   /*フォームの最大幅*/
   margin-right: auto;
   margin-left: auto;
}

.wpcf7 .template01 {
   color: #333;
   font-size: 16px;
}

.wpcf7 .template01 a {
   margin: 0;
   padding: 0;
   text-decoration: underline;
   color: inherit;
   transition: opacity .25s;
}

.wpcf7 .template01 a:hover {
   opacity: .5;
   transition: opacity .25s;
}

.wpcf7 .template01 div.form__row {
   margin: 0;
   padding: 0;
   margin-top: 2em;
}

.wpcf7 .template01 div.form__row.row-privacy {
   margin-top: 3.5em;
   text-align: center;
}

.wpcf7 .template01 div.form__row.row-submit {
   margin-top: 3em;
   text-align: center;
}

.wpcf7 .template01 p.form__label,
.wpcf7 .template01 p.form__body {
   margin: 0;
   margin-bottom: .5em;
   padding: 0;
   box-sizing: border-box;
}

.wpcf7 .template01 p.form__label label {
   position: relative;
   margin: 0;
   padding: 0;
   box-sizing: border-box;
}

.wpcf7 .template01 p.form__label.is-required label {
   padding-right: 40px;
}

.wpcf7 .template01 p.form__label.is-required label::after {
   content: "必須";
   display: block;
   position: absolute;
   top: 0;
   right: 0;
   width: 36px;
   padding: 1px;
   border-radius: 4px;
   background-color: #eb1919;
   color: #fff;
   font-size: 11px;
   text-align: center;
   box-sizing: border-box;
}

/* テキストフィールド */
.wpcf7 .template01 input[type=text],
.wpcf7 .template01 input[type=tel],
.wpcf7 .template01 input[type=email],
.wpcf7 .template01 input[type=url],
.wpcf7 .template01 input[type=date],
.wpcf7 .template01 input[type=number],
.wpcf7 .template01 textarea {
   width: 100%;
   margin: 0;
   padding: .5em 1em;
   border: 1px solid #ccc;
   border-radius: 0;
   box-shadow: none;
   background-color: #fff;
   color: inherit;
   font-family: inherit;
   font-weight: inherit;
   font-size: inherit;
   box-sizing: border-box;
   -webkit-appearance: none;
   -moz-appearance: none;
   appearance: none;
}

/* テキストフィールド placeholder */
.wpcf7 .template01 input[type=text]::placeholder,
.wpcf7 .template01 input[type=tel]::placeholder,
.wpcf7 .template01 input[type=email]::placeholder,
.wpcf7 .template01 input[type=url]::placeholder,
.wpcf7 .template01 input[type=date]::placeholder,
.wpcf7 .template01 input[type=number]::placeholder,
.wpcf7 .template01 textarea::placeholder {
   color: #ccc;
}

.wpcf7 .template01 input[type=text]:-ms-input-placeholder,
.wpcf7 .template01 input[type=tel]:-ms-input-placeholder,
.wpcf7 .template01 input[type=email]:-ms-input-placeholder,
.wpcf7 .template01 input[type=url]:-ms-input-placeholder,
.wpcf7 .template01 input[type=date]:-ms-input-placeholder,
.wpcf7 .template01 input[type=number]:-ms-input-placeholder,
.wpcf7 .template01 textarea:-ms-input-placeholder {
   color: #ccc;
}

.wpcf7 .template01 input[type=text]::-ms-input-placeholder,
.wpcf7 .template01 input[type=tel]::-ms-input-placeholder,
.wpcf7 .template01 input[type=email]::-ms-input-placeholder,
.wpcf7 .template01 input[type=url]::-ms-input-placeholder,
.wpcf7 .template01 input[type=date]::-ms-input-placeholder,
.wpcf7 .template01 input[type=number]::-ms-input-placeholder,
.wpcf7 .template01 textarea::-ms-input-placeholder {
   color: #ccc;
}

/* テキストフィールド フォーカス時 */
.wpcf7 .template01 input[type=text]:focus,
.wpcf7 .template01 input[type=tel]:focus,
.wpcf7 .template01 input[type=email]:focus,
.wpcf7 .template01 input[type=url]:focus,
.wpcf7 .template01 input[type=date]:focus,
.wpcf7 .template01 input[type=number]:focus,
.wpcf7 .template01 textarea:focus {
   outline: 0;
   border: 1px #080808 solid;
}

/* チェックボックス */
.wpcf7 .template01 input[type=checkbox] {
   display: none;
}

.wpcf7 .template01 input[type=checkbox] + span {
   cursor: pointer;
   position: relative;
   margin: 0;
   padding: 0 1em 0 1.8em;
   font-size: inherit;
   box-sizing: border-box;
   transition: opacity .25s ease;
}

.wpcf7 .template01 input[type=checkbox] + span::before {
   content: "";
   opacity: 1;
   display: block;
   position: absolute;
   top: 0;
   left: 0;
   width: 1.24em;
   height: 1.24em;
   border: 1px solid #ccc;
   border-radius: 0;
   background-color: #fff;
   box-sizing: border-box;
   transition: opacity .25s ease;
   z-index: 1;
}

.wpcf7 .template01 input[type=checkbox] + span::after {
   content: "";
   opacity: 0;
   display: block;
   position: absolute;
   top: 0.15em;
   left: 0.44em;
   width: 0.4em;
   height: .8em;
   border-bottom: 3px solid #000;
   border-right: 3px solid #000;
   box-sizing: border-box;
   transform: rotate(40deg);
   transition: opacity .25s ease;
   z-index: 10;
}

.wpcf7 .template01 input[type=checkbox]:checked + span {
   color: #DC000C;
   transition: all .25s ease;
}

.wpcf7 .template01 input[type=checkbox]:checked + span::before {
   opacity: 1;
   transition: opacity .25s ease;
}

.wpcf7 .template01 input[type=checkbox]:checked + span::after {
   opacity: 1;
   border-bottom: 2px solid #306ad4;
   border-right: 2px solid #306ad4;
   transition: opacity .25s ease;
}

/* ラジオボタン */
.wpcf7 .template01 input[type=radio] {
   display: none;
}

.wpcf7 .template01 input[type=radio] + span {
   cursor: pointer;
   position: relative;
   margin: 0;
   padding: 0 1em 0 1.8em;
   font-size: inherit;
   transition: opacity .25s ease;
}

.wpcf7 .template01 input[type=radio] + span::before {
   content: "";
   display: block;
   position: absolute;
   top: 0;
   left: 0;
   width: 1em;
   height: 1em;
   border: 1px solid #ccc;
   border-radius: 50%;
   background-color: #fff;
   box-sizing: border-box;
   transition: opacity .25s ease;
}

.wpcf7 .template01 input[type=radio] + span::after {
   content: "";
   display: block;
   opacity: 0;
   position: absolute;
   box-sizing: border-box;
   transition: opacity .25s ease;
}

.wpcf7 .template01 input[type=radio]:checked + span {
   color: #DC000C;
   transition: opacity .25s ease;
}

.wpcf7 .template01 input[type=radio]:checked + span::after {
   opacity: 1;
   top: .2em;
   left: .2em;
   width: .6em;
   height: .6em;
   background-color: #306ad4;
   border-radius: 50%;
   box-sizing: border-box;
   transition: opacity .25s ease;
}

/* セレクト */
.wpcf7 .template01 span.select-wrap {
   position: relative;
   width: 250px;
   margin: 0;
   padding: 0;
}

.wpcf7 .template01 select {
   cursor: pointer;
   /*   width: 250px; */
   max-width: 100%;
   margin: 0;
   padding: .5em 2.5em .5em 1em;
   border: 1px solid #ccc;
   border-radius: 4px;
   box-shadow: none;
   background-color: #fff;
   color: inherit;
   font-size: inherit;
   line-height: 1;
   box-sizing: border-box;
   transition: border-color 0.2s ease, outline 0.2s ease;
   -webkit-appearance: none;
   -moz-appearance: none;
   appearance: none;
}

.wpcf7 .template01 select::-ms-expand {
   display: none;
}

.wpcf7 .template01 span.select-wrap::after {
   content: "";
   pointer-events: none;
   position: absolute;
   display: block;
   width: .6em;
   height: .6em;
   top: 50%;
   right: 1.5em;
   margin-top: -3px;
   border-bottom: 1px solid #ccc;
   border-right: 1px solid #ccc;
   transform: rotate(45deg) translateY(-50%);
   transform-origin: 50% 0;
   box-sizing: border-box;
}

.wpcf7 .template01 select:focus {
   outline: 0;
   border: 1px #080808 solid;
}

.wpcf7 .template01 span.select-wrap:focus-within::after {
   border-bottom: 1px solid #080808;
   border-right: 1px solid #080808;
}

/* 送信ボタン */
.wpcf7 .template01 .submit-btn {
   position: relative;
   width: 320px;
   height: 65px;
   max-width: 100%;
   margin: 0;
   padding: 0;
   margin-left: auto;
   margin-right: auto;
}

.wpcf7 .template01 input[type="submit"] {
   cursor: pointer;
   width: 320px;
   max-width: 100%;
   padding: 18px;
   border-radius: 0;
   box-shadow: none;
   border: 1px solid #DC000C;
   background-color: #DC000C;
   color: #fff;
   font-size: 18px;
   text-align: center;
   box-sizing: border-box;
   transition: opacity .25s;
   -webkit-appearance: none;
   -moz-appearance: none;
   appearance: none;
}

.wpcf7 .template01 input[type="submit"]:disabled {
   cursor: not-allowed;
   box-shadow: none !important;
   border: 1px solid #f8f8f8 !important;
   background-color: #f8f8f8 !important;
   color: #999 !important;
}

.wpcf7 .template01 input[type="submit"]:hover {
   border: 1px solid #DC000C;
   background-color: #fff;
   color: #DC000C;
   transition: opacity .25s, background-color .25s;
}

.wpcf7 .template01 input[type="submit"]:focus {
   outline: 1px #eee solid;
   border: 1px #080808 solid;
}

.wpcf7 .template01 span.wpcf7-list-item {
   margin: 0 1em .2em 0;
}

.wpcf7 .template01 .ajax-loader {
   display: block;
}

@media only screen and (max-width: 768px) {
   .wpcf7 .template01 span.wpcf7-list-item {
      display: block;
   }
}

/*プライバシーポリシーの説明*/
.contact_privacy {
   margin-top: 80px;
   margin-bottom: 80px;
}

.contact_privacy p {
   line-height: 1.5em;
}

.contact_privacy_ttl {
   margin-top: 20px;
   font-weight: bold;
}


/*************************::

common-flex

****************************/

.flex_2, .flex_3, .flex_4, .flex_5{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin-bottom: 30px;
}

.flex_2 div{
    width: 50%;
}

.flex_3 div{
    width: 33.333%;
}

.flex_4 div{
    width: 25%;
}

.flex_5 div{
    width: 20%;
}

.flex_2 .wd40{
   width: 40%;
}

.wd40 img{
   width: 100%;
}

.flex_2 .wd30{
   width: 30%;
}
@media screen and (max-width:899px) {

.flex_2 div, .flex_3 div, .flex_4 div, .flex_5 div{
     width: 100%;
}

.emp_flex div{
  width: 100%;
}
.flex_2 .wd30{
   width: 100%;
}

.flex_2 .wd40{
   width: 100%;
}
}
/************************

page-common

************************/

.theme_sec {
/*   background:#E5F6FC;　*/
    margin: 0px auto;
    width: 100%;
    box-sizing: border-box;
    padding: 100px 0;
}

.base_sec{
    margin: 0px auto;
    width: 100%;
    box-sizing: border-box;
    padding: 100px 0;
}

.base_table {
    margin: 0 20px;
    margin-top: 40px;
    width: 100%;
   color: #D1B357;
}

.base_table th {
    width: 30%;
    padding: 20px;
    line-height: 1.5em;
}

.base_table td {
    width: 70%;
    padding: 20px;
    line-height: 1.5em;
}


.base_table tr {
    border-bottom: 1px solid white;
}
.base_sec p, .theme_sec p{
  line-height: 1.8;
  font-size: 16px;
}

.page_heading{
    background: url(../images/theme_bg.jpg) center no-repeat;
    background-size: cover;
    position: relative;
}

.page_filter{
    width: 100%;
    padding: 300px 0 150px 0;
}
.page_filter h2{
    color: white;
    padding: 40px;
    font-weight: bold;
    font-size: 64px;
    background: rgba(25,25,25,0.45);
}

.img_center{
  display: block;
  margin: 20px auto;
}
.no_link{
       pointer-events: none;
    }


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

.base_table {
    width: auto;
    max-width: 100%;
}


.base_table th {
    padding: 5px;
}

.base_table td {
    padding: 5px;
}


}
/*****************************:::

blog

*******************************/
.post_flex_in{
    width: 31%;
    margin: 10px 1%;
}
.post_flex_in p{
    margin: 10px 0;
    padding: 10px;
    box-sizing: border-box;
}
.blog_main {
    width: 70%;
}
.blog_main_single {
    width: 70%;
    padding-right:5%;
}
.blog_side {
    width: 25%;
}

.blog_cat {
    border-radius: 5px;
    padding: 3px;
    line-height: 20px;
    margin-right: 10px;
    color: white;
   background: linear-gradient(90deg, #E3BB1B, #B69019);
    font-size: 14px;
}

h2.widgettitle {
    font-size: 20px;
    margin: 20px 0 25px 0;
    padding: 5px 0 20px 0;
    border-bottom: solid 1px #B69019;
    color: white;
}

li.cat-item {
    font-size: 16px;
    margin: 10px 5px;
    color: white;
}

li.cat-item a, li.widget_recent_entries a{

    color: white;
}

.screen-reader-text {
    display: none;
}

#archives-dropdown-3 {
    width: 100%;
    padding: 10px;
    box-sizing: border-box;
}

.wp-pagenavi {
    margin: 60px auto 0 auto;
    display: flex;
}

.wp-pagenavi a,
.wp-pagenavi span {
    display: block;
    width: 30px;
    height: 30px;
    text-align: center;
    padding: 5px;
    box-sizing: border-box;
    border-radius: 10px;
}

.wp-pagenavi span:first-child {
    width: 80px;
}

.news_date {
    margin: 20px 0;
}

.news_date .blog_cat:first-child {
    margin-left: 40px;
}

.news_date .blog_cat {
    margin-left: 10px;
}

.single_ttl {
    font-size: 24px;
    border-bottom: 3px solid #B69019;
    padding: 20px 5px;
    margin-bottom: 20px;
}

.single-post .blog_main p {
    line-height: 1.6;
    margin: 20px 0;
    padding: 5px;
    box-sizing: border-box;
}

.blog_main img {
    max-width: 100%;
    height: auto;
}

.flex_postlink {
    display: flex;
    justify-content: space-between;
    width: 100%;
    margin: 4rem 0 0 0;
}

.flex_postlink div {
    max-width: 46%;
    color: #D1B357;
}

.flex_postlink a, .blog_main_single p{
    color: #D1B357;
}

#npcatch li,#npcatch li a{
   display: block!important;
}
#npcatch li a img{
   width: 80%;
   margin: 10px auto;
   display: block;
}

#npcatch .detail{
  text-align: center;
}

.post_flex{
    width: 31%;
    margin: 10px 1%;
}

.post_flex p{
    margin: 10px 0;
    padding: 10px;
    box-sizing: border-box;
}

.archive .widget_newpostcatch{
display: none;
}
@media only screen and (max-width:799px) {

    .post_flex{
     width: 100%;
}
    .blog_wrap {
        padding: 20px 0;
    }

    .blog_main {
        width: 100%;
        padding: 5% 0;
        box-sizing: border-box;
        display: block;
    }
.blog_main_single {
    width: 100%;
    padding:5%;
    box-sizing: border-box;
}
    .blog_side {
        width: 100%;
        padding: 10%;
        box-sizing: border-box;
        display: block;
    }
.post_flex_in{
    width: 100%;
    margin: 100px 0;
}
.post_flex{
    width: 100%;
    margin: 10px 0;
}
}
