@charset "utf-8";

/*
Theme Name: earth-k
Version: 1.1
Template: wp-base
*/

/* ------------------------------ */
/* カスタムプロパティ */
/* ------------------------------ */

/* カラー */
:root {
   --color-main: #02904b;
   --color-base: #212121;
   --color-white: #fff;
   --color-grey: #808080;
   --color-darkgrey: #555;
   --color-lightgrey: #cacaca;
   --color-green: #02904b;
   --color-lightsand: #F1EFEE;
   --color-lightgreen: #ecf6f1;
   --color-lightgreen02: #f5f9f8;
   --color-bg-base: #fff;
   --color-bg-light: #f5f4ea;
   --color-bg-lightgrey: #f7f7f7;
   --color-bg-sand: #e7e3d8;
   --color-bg-dark: #333;
   --color-bg-green: #02904b;
   --border: #dadada;
   --footer-bg: #282727;
   --footer-color: #fff;
}

/* コンテナ幅 */
:root {
   --width-content: 1264px;
   --width-content-narrow: 960px;
   --width-content-wide: 1600px;
}

/* ***************************************************************** 
*	基本設定
* ***************************************************************** */
*,
*:before,
*:after {
   box-sizing: inherit;
}

html {
   box-sizing: border-box;
}

body {
   font-family: "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", sans-serif;
   font-size: 16px;
   color: var(--color-base);
   line-height: 1.75;
   letter-spacing: 0.05em;
   word-break: break-all;
   overflow-wrap: break-word;
}

/* Remove default margin padding
---------------------------------------------------- */
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,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video {
   margin: 0;
   padding: 0;
}


/* 見出し
---------------------------------------------------- */
h1 {
   font-size: 28px;
}

h2 {
   font-size: 28px;
}

h3 {
   font-size: 22px;
}

h4 {
   font-size: 18px;
}

h5 {
   font-size: 17px;
}

h6 {
   font-size: 16px;
}

@media (max-width: 767px) {
   h1 {
      font-size: 21px;
   }

   h2 {
      font-size: 21px;
   }

   h3 {
      font-size: 19px;
   }

   h4 {
      font-size: 17px;
   }
}

/* リンク
---------------------------------------------------- */

a {
   color: var(--color-base);
   text-decoration: none;
   transition: 0.3s;
}

a:hover {
   color: var(--color-main);
   opacity: 0.9;
   text-decoration: underline;
}

a:visited {
   color: inherit;
}

a:active,
a:focus {
   outline: 0;
}

/* リスト
---------------------------------------------------- */
ul,
ol {
   list-style: none;
}

/* 画像
---------------------------------------------------- */
img {
   max-width: 100%;
   height: auto;
}

/* etc
---------------------------------------------------- */
hr {
   margin: 48px 0;
   border: none;
   height: 1px;
   background-color: var(--color-gray);
}

.brsp {
   display: none;
}

@media (max-width: 767px) {
   .brsp {
      display: block;
   }
}

.mt-0 {
   margin-top: 0px !important;
}

.mt-8 {
   margin-top: 8px !important;
}

.mt-16 {
   margin-top: 16px !important;
}

.mt-24 {
   margin-top: 24px !important;
}

.mt-32 {
   margin-top: 32px !important;
}

.mt-40 {
   margin-top: 40px !important;
}

.mt-48 {
   margin-top: 48px !important;
}

.mt-56 {
   margin-top: 56px !important;
}

.mt-64 {
   margin-top: 64px !important;
}

.mt-72 {
   margin-top: 72px !important;
}

.mt-80 {
   margin-top: 80px !important;
}

.mt-96 {
   margin-top: 96px !important;
}

.mt-120 {
   margin-top: 120px !important;
}

.mt-160 {
   margin-top: 160px !important;
}

.mb-0 {
   margin-bottom: 0px !important;
}

.mb-8 {
   margin-bottom: 8px !important;
}

.mb-16 {
   margin-bottom: 16px !important;
}

.mb-24 {
   margin-bottom: 24px !important;
}

.mb-32 {
   margin-bottom: 32px !important;
}

.mb-40 {
   margin-bottom: 40px !important;
}

.mb-48 {
   margin-bottom: 48px !important;
}

.mb-56 {
   margin-bottom: 56px !important;
}

.mb-64 {
   margin-bottom: 64px !important;
}

.mb-72 {
   margin-bottom: 72px !important;
}

.mb-80 {
   margin-bottom: 80px !important;
}

.mb-96 {
   margin-bottom: 96px !important;
}

.mb-120 {
   margin-bottom: 120px !important;
}

.mb-160 {
   margin-bottom: 160px !important;
}

.pt-0 {
   padding-top: 0px !important;
}

.pt-8 {
   padding-top: 8px !important;
}

.pt-16 {
   padding-top: 16px !important;
}

.pt-24 {
   padding-top: 24px !important;
}

.pt-32 {
   padding-top: 32px !important;
}

.pt-40 {
   padding-top: 40px !important;
}

.pt-48 {
   padding-top: 48px !important;
}

.pt-56 {
   padding-top: 56px !important;
}

.pt-64 {
   padding-top: 64px !important;
}

.pt-72 {
   padding-top: 72px !important;
}

.pt-80 {
   padding-top: 80px !important;
}

.pt-96 {
   padding-top: 96px !important;
}

.pt-120 {
   padding-top: 120px !important;
}

.pt-160 {
   padding-top: 160px !important;
}

.pb-0 {
   padding-bottom: 0px !important;
}

.pb-8 {
   padding-bottom: 8px !important;
}

.pb-16 {
   padding-bottom: 16px !important;
}

.pb-24 {
   padding-bottom: 24px !important;
}

.pb-32 {
   padding-bottom: 32px !important;
}

.pb-40 {
   padding-bottom: 40px !important;
}

.pb-48 {
   padding-bottom: 48px !important;
}

.pb-56 {
   padding-bottom: 56px !important;
}

.pb-64 {
   padding-bottom: 64px !important;
}

.pb-72 {
   padding-bottom: 72px !important;
}

.pb-80 {
   padding-bottom: 80px !important;
}

.pb-96 {
   padding-bottom: 96px !important;
}

.pb-120 {
   padding-bottom: 120px !important;
}

.pb-160 {
   padding-bottom: 160px !important;
}

.text-italic {
   font-style: italic;
}

.text-left {
   text-align: left !important;
}

.text-right {
   text-align: right !important;
}

.text-center {
   text-align: center !important;
}

.fs-10 {
   font-size: 10px;
}

.fs-12 {
   font-size: 12px;
}

.fs-14 {
   font-size: 14px;
}

.fs-16 {
   font-size: 16px;
}

.fs-18 {
   font-size: 18px;
}

.fs-20 {
   font-size: 20px;
}

.fs-22 {
   font-size: 22px;
}

.fs-24 {
   font-size: 24px;
}

.fs-26 {
   font-size: 26px;
}

.fs-28 {
   font-size: 28px;
}

.fs-30 {
   font-size: 30px;
}

.fs-32 {
   font-size: 32px;
}

.fs-34 {
   font-size: 34px;
}

.fs-36 {
   font-size: 36px;
}

.fs-38 {
   font-size: 38px;
}

.fs-40 {
   font-size: 40px;
}

.center {
   display: block;
   margin-inline: auto;
   text-align: center;
}


/* ***************************************************************** 
*	ヘッダー
* ***************************************************************** */
:root {
   --header: 100px;
   --header-sp: 80px;
}

.site-header {
   position: fixed;
   top: 0;
   left: 0;
   display: flex;
   justify-content: space-between;
   align-items: center;
   padding-left: 3%;
   padding-right: 0;
   width: 100%;
   height: var(--header);
   background-color: rgba(255, 255, 255, 1);
   transition: .5s;
   z-index: 9999;
}

@media screen and (min-width: 768px) {
   .home .site-header {
      background-color: rgba(255, 255, 255, 1);
      box-shadow: none;
   }
}

.site-branding {
   width: 280px;
}

.site-ttl {
   line-height: 1.3;
}

.site-text {
   margin-bottom: .6em;
   font-size: 11px;
   line-height: 1;
   letter-spacing: normal;
   font-weight: 400;
   color: var(--color-base);
}

.site-logo {
   width: 280px;
   vertical-align: middle;
   transition: .5s;
}

.main-navigation {
   width: auto;
}

.main-navigation .menu {
   display: flex;
   align-items: center;
   justify-content: flex-end;
   gap: 1.6vw;
}

.sitenav {
   display: flex;
   align-items: center;
}

.main-navigation .menu-item a {
   color: var(--color-base);
   font-size: 15px;
   font-weight: 500;
   line-height: 1.4;
   letter-spacing: 0.02em;
   text-decoration: none;
}

.main-navigation .menu-item a:hover {
   text-decoration: none;
   opacity: 1;
}

.home .main-navigation .menu-item a {
   color: var(--color-base);
}

/* ヘッダーアニメーション */
.site-header.is-animation {
   height: var(--header);
   background-color: #fff;
   box-shadow: 0 2px 3px rgba(0, 0, 0, .05);
}

.is-animation .main-navigation .menu-item a {
   color: var(--color-base);
}

.is-animation .header-contact-btn a {
   height: var(--header);
}

.main-navigation .menu-item a:hover {
   opacity: .6;
}

.nav-logo {
   display: none;
}

@media screen and (min-width: 981px) and (max-width: 1279px) {
   .site-branding {
      width: 240px;
   }

   .site-logo {
      width: 240px;
   }

   .site-text {
      font-size: 10px;
   }

   .main-navigation .menu-item a {
      font-size: 1.3vw;
   }
}

@media screen and (max-width: 980px) {
   .site-header {
      padding-left: 32px;
      height: var(--header-sp);
   }

   .site-header.is-animation {
      height: var(--header-sp);
   }

   .site-branding {
      width: 220px;
   }

   .site-logo {
      width: 220px;
   }

   .site-text {
      font-size: 10px;
   }

   .main-navigation {
      width: 100%;
   }

   .nav-logo {
      display: block;
      width: 160px;
      margin-inline: auto;
   }

   /*SPメニュー*/
   #site-navigation {
      visibility: hidden;
      position: fixed;
      opacity: 0;
      top: 0;
      left: 0;
      max-width: 100%;
      height: 100vh;
      background: #fefefe;
      transition: all .5s;
   }

   /*アクティブクラスがついたら透過なしにして最前面へ*/
   #site-navigation.panelactive {
      visibility: inherit;
      opacity: 1;
      z-index: 999;
   }

   /*スクロールさせない*/
   .noscroll {
      overflow: hidden;
   }

   /*ナビゲーションの縦スクロール*/
   #site-navigation.panelactive #site-navigation-list {
      position: fixed;
      z-index: 999;
      width: 100%;
      height: 100vh;
      overflow: auto;
      -webkit-overflow-scrolling: touch;
   }

   .sitenav {
      display: none;
      position: absolute;
      max-width: 100%;
      z-index: 999;
      top: 42%;
      left: 50%;
      transform: translate(-50%, -50%);
   }

   #site-navigation.panelactive .sitenav {
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
   }

   #site-navigation.panelactive .sitenav ul {
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      margin-top: 24px;
      gap: 0;
      max-width: 100%;
   }

   #site-navigation.panelactive .sitenav ul li a {
      display: block;
      width: 100%;
      font-size: 16px;
      margin: 12px 0;
      color: var(--color-base);
      text-transform: uppercase;
      letter-spacing: 0.1em;
      font-weight: 600;
   }

   /*リストのレイアウト設定*/
   #site-navigation ul li {
      text-align: center;
   }

   /*Toggle Button*/
   .navBtn {
      position: absolute;
      z-index: 9999;
      right: 10px;
      cursor: pointer;
      width: 60px;
      height: 50px;
   }

   .navBtn span {
      display: inline-block;
      transition: all .4s;
      position: absolute;
      left: 15px;
      height: 2px;
      border-radius: 2px;
      background-color: #111;
      width: 50%;
   }

   .navBtn span:nth-of-type(1) {
      top: 15px;
   }

   .navBtn span:nth-of-type(2) {
      top: 23px;
   }

   .navBtn span:nth-of-type(3) {
      top: 31px;
   }

   .navBtn.active span:nth-of-type(1) {
      top: 18px;
      left: 15px;
      transform: translateY(6px) rotate(-45deg);
      width: 50%;
   }

   .navBtn.active span:nth-of-type(2) {
      opacity: 0;
   }

   .navBtn.active span:nth-of-type(3) {
      top: 30px;
      left: 15px;
      transform: translateY(-6px) rotate(45deg);
      width: 50%;
   }
}

@media screen and (max-width: 767px) {
   .site-header {
      box-shadow: 0 2px 3px rgba(0, 0, 0, .05);
   }
}

/*ヘッダーコンタクトボタン*/
.header-contact-btn {
   margin-left: 40px;
}

.header-contact-btn i {
   margin-right: 4px;
}

.header-contact-btn a {
   position: relative;
   height: var(--header);
   display: flex;
   justify-content: center;
   align-items: center;
   width: 140px;
   color: var(--color-white);
   font-size: 15px;
   font-weight: 600;
   text-decoration: none;
   background-color: var(--color-main);
   transition: 0.3s ease-in-out;
}

.header-contact-btn a:hover {
   text-decoration: none;
   opacity: .75;
}

@media screen and (min-width: 981px) and (max-width: 1279px) {
   .header-contact-btn {
      margin-left: 24px;
   }

   .header-contact-btn a {
      font-size: 14px;
   }
}

@media screen and (max-width: 980px) {
   .header-contact-btn {
      margin-top: 24px;
      margin-left: 0;
   }

   .header-contact-btn a {
      height: 60px;
      font-size: 14px;
      border-radius: 50vh;
   }
}

/* アンカーリンクのターゲット位置
---------------------------------------------------- */
:root {
   scroll-padding: var(--header);
   scroll-behavior: smooth;
}

/* *****************************************************************
*	メインビジュアル(スライドなし)
* ***************************************************************** */
.home-fv-wrap {
   position: relative;
   width: 100%;
   height: auto;
   margin-top: var(--header);
   padding: 0;
}

.home-fv-wrap-inner {
   position: relative;
   display: flex;
   flex-direction: column;
   align-items: center;
   width: 100%;
   margin: 0 auto;
}

@media screen and (max-width: 980px) {
   .home-fv-wrap {
      margin-top: var(--header-sp);
   }
}
.top-mv {
   position: relative;
   margin: 0;
   height: 100vh;
   /*ヘッダーの高さをマイナス。必要なければheight:100vhに。*/
   background-repeat: no-repeat;
   background-size: cover;
   background-position: center center;
   background-image: url(./image/mv/mv_001.jpg);
}

.top-mv .top-mv-inner {
   position: relative;
   display: flex;
   justify-content: center;
   align-items: center;
   max-width: 1280px;
   height: 100%;
   margin: 0 auto;
}

.top-mv .top-mv-inner .text {
   margin: 0 32px;
   color: #fff;
   line-height: 1.4;
}

.top-mv .top-mv-inner .text .lead {
   font-size: 52px;
   font-weight: 400;
   font-family: '游明朝', 'Yu Mincho', YuMincho, 'Hiragino Mincho Pro', serif;
}

.top-mv .top-mv-inner .text .lead-sub {
   margin: 56px 0 0;
   font-size: 24px;
}

@media screen and (max-width: 767px) {
   .top-mv .top-mv-inner .text .lead {
      font-size: 28px;
   }

   .top-mv .top-mv-inner .text .lead-sub {
      margin: 32px 0 0;
      font-size: 16px;
   }
}

/* *****************************************************************
*	メインビジュアル(swiper)
* ***************************************************************** */
.home-fv-slide {
   margin-top: var(--header);
   width: 100%; 
   height: auto;
}

.swiper-slide {
   display: flex;
   justify-content: center;
   align-items: center;
   background-color: #f0f0f0;
}
.swiper-slide img{
   width: 100%;
   height: 100%; 
   object-fit: cover;
   aspect-ratio: 16 / 9;
}
.swiper-pagination {
   position: relative !important;
   margin-top: 12px !important;
}
.slide-text {
   position: absolute;
   top: 50%;
   left: 50%;
   width: 90%;
   padding-left: .5em;
   color: #fff;
   font-size: 42px;
   font-family: serif;
   text-align: center;
   text-shadow: 0px 1px 3px #666;
   line-height: 1.8;
   transform: translate(-50%, -100%);
   z-index: 999;
}

@media screen and (max-width: 980px) {
   .home-fv-slide {
      margin-top: var(--header-sp);
   }

   .slide-text {
      font-size: 24px;
      transform: translate(-50%, -50%);
   }
}

/* *****************************************************************
*	layout
* ***************************************************************** */

.wrapper {
   padding: 80px 0 120px 0;
}

.l-container {
   margin: 0 auto;
   padding: 0 32px;
   max-width: var(--width-content);
}

._narrow {
   max-width: var(--width-content-narrow);
}

.l-container .widget-area {
   margin-top: 120px;
}

.l-container-2columns {
   display: flex;
   justify-content: space-between;
   margin: 0 auto;
   padding: 0 32px;
   max-width: var(--width-content);
}

.l-container-2columns .site-main {
   width: calc(100% - 364px);
}

.l-container-2columns .widget-area {
   width: 300px;
}

@media screen and (max-width: 767px) {
   .wrapper {
      padding: 40px 0 80px 0;
   }
   .l-container,.l-container-2columns {
      padding: 0 24px;
   }
   .l-container-2columns {
      display: block;
      width: 100%;
   }

   .l-container-2columns .site-main {
      width: 100%;
   }

   .l-container .widget-area {
      margin-top: 80px;
   }
   .l-container-2columns .widget-area {
      margin-top: 80px;
      width: 100%;
   }
}

/* *****************************************************************
*	#primary
* ***************************************************************** */
#primary .wp-block-heading {
   margin-bottom: 48px;
}

/* *****************************************************************
*	#secondary
* ***************************************************************** */
#secondary .wp-block-heading {
   margin: 0 0 10px;
   padding: 0 0 10px;
   font-size: 16px;
   border-bottom: 1px solid var(--color-lightgrey);
}

#secondary .widget ul li {
   padding: .8em 0;
   font-size: 14px;
   border-bottom: 1px dotted var(--color-lightgrey);
}

/* *****************************************************************
*	.widget
* ***************************************************************** */
.widget {
   margin: 32px 0 0;
}

.widget:first-child {
   margin-top: 0;
}

.wp-block-latest-posts__post-date {
   color: var(--color-grey);
}

/* *****************************************************************
*	#footer
* ***************************************************************** */
.site-footer {
   background-color: var(--footer-bg);
}

.site-footer-container {
   max-width: var(--width-content);
   margin: 0 auto;
   padding-left: 32px;
   padding-right: 32px;
}

.site-footer-column {
   display: flex;
   justify-content: space-between;
   gap: 40px;
   padding: 64px 0;
}

.site-info {
   width: 30%;
   color: var(--footer-color);
}

.site-info a {
   color: var(--footer-color);
}

.site-info .footer-logo {
   width: 220px;
}

.site-info .title {
   font-size: 26px;
   font-weight: 600;

}
.site-info .area {
   margin-top: 1em;
   font-size: 15px;
}

.site-info .address {
   font-size: 15px;
}
.site-info .tel {
   font-size: 15px;
}

.footer-navigation {
   margin-top: 8px;
}

.footer-navigation .footer-menu {
   display: flex;
   flex-wrap: wrap;
   gap: 32px;
}

.footer-navigation .footer-menu a {
   font-size: 14px;
   font-weight: 500;
   color: var(--footer-color);
}

.copy {
   padding-top: 40px;
   padding-bottom: 40px;
   color: var(--color-grey);
   font-size: 11px;
   text-align: right;
   font-weight: 200;
   border-top: 1px solid #333;
}

@media screen and (max-width: 1199px) {
   .site-footer-column {
      display: block;
      padding: 40px 0 40px;
      text-align: center;
   }

   .site-info {
      width: initial;
   }

   .site-info .footer-logo {
      margin-inline: auto;
      width: 160px;
   }

   .site-info .title {
      font-size: 18px;
   }

   .site-info .title span {
      font-size: 13px;
   }

   .site-info .address,
   .site-info .sub-title {
      font-size: 13px;
   }

   .site-info .tel {
      font-size: 13px;
   }

   .footer-navigation {
      margin-top: 40px;
      padding-top: 40px;
      border-top: 1px solid #333;
   }

   .footer-navigation .footer-menu {
      justify-content: center;
      gap: 8px 16px;
   }
   .footer-navigation .footer-menu-second {
      margin: 8px 0;
   }
   .footer-navigation .footer-menu a {
      font-size: 13px;
   }

   .copy {
      text-align: center;
   }
}

/* *****************************************************************
*	.pagination
* ***************************************************************** */
.pagination-wrap {
   margin-top: 64px;
}

.nav-links ul {
   list-style: none;
   display: flex;
   justify-content: center;
   gap: 8px;
}

.nav-links li>* {
   display: flex;
   align-items: center;
   justify-content: center;
   font-size: 14px;
   height: 35px;
}

.nav-links li>*:not(.dots) {
   width: 35px;
   border-radius: 50%;
   color: var(--color-base);
   background: #efefef;
   transition: color 0.3s ease, background-color 0.3s ease;
}

.nav-links li>.current,
.nav-links li>a:hover {
   color: var(--color-white);
   background: var(--color-main);
   text-decoration: none;
}

/* *****************************************************************
*	button
* ***************************************************************** */
/*.button a {
   display: flex;
   justify-content: space-between;
   align-items: center;
   margin: 0 auto;
   padding: 1em 2em;
   width: 300px;
   color: #333;
   font-size: 18px;
   font-weight: 700;
   background-color: #cccccc;
   border-radius: 50vh;
}
.button a:after {
   content: '';
   width: 8px;
   height: 8px;
   border-top: 2px solid #333333;
   border-right: 2px solid #333333;
   transform: rotate(45deg);
}
.button a:hover {
   text-decoration: none;
   background-color: #bbbbbb;
}*/

.btn a {
   position: relative;
   display: flex;
   justify-content: center;
   align-items: center;
   margin: 0 auto;
   padding: .8em 1.5em;
   max-width: 300px;
   color: var(--color-white);
   font-size: 16px;
   font-weight: 600;
   background-color: var(--color-green);
   border: 2px solid var(--color-bg-green);
   border-radius: 50vh;
   transition: 0.3s ease-in-out;
}

.btn a:after {
   content: "→";
   position: absolute;
   right: 20px;
}

.btn a:hover {
   color: var(--color-green);
   background-color: var(--color-white);
   border: 2px solid var(--color-bg-green);
   text-decoration: none;
   opacity: inherit;
}

@media (max-width: 767px) {
   .btn a {
      padding: .8em 1.5em;
      font-size: 14px;
   }
}

/* *****************************************************************
*	table
* ***************************************************************** */
.base-table {
   width: 100%;
   border-collapse: collapse;
   table-layout: fixed;
}

.base-table th,
.base-table td {
   padding: 1em;
   border: 1px solid var(--border);
}

@media only screen and (max-width: 767px) {
   .base-table table {
      border-bottom: 1px solid var(--border);
   }

   .base-table th,
   .base-table td {
      display: block;
      width: auto;
      text-align: left;
      border-bottom: none;
   }
}

/* *****************************************************************
*	カード型
* ***************************************************************** */
._card-wrap {
   padding-top: 48px;
   margin-inline: auto;
}

._card-list {
   display: flex;
   flex-wrap: wrap;
   gap: 68px 24px;
}

._card-item {
   width: calc(100% / 4 - 24px * 3 / 4);
   background-color: #fff;
   padding: 0;
}

._3col {
   width: calc(100% / 3 - 24px * 2 / 3);
}

@media (max-width: 960px) {
   ._card-item {
      width: calc(100% / 2 - 24px * 1 / 2);
   }

   ._3col {
      width: calc(100% / 2 - 24px * 1 / 2);
   }
}

@media (max-width: 767px) {

   ._card-item,
   ._3col {
      width: 100%;
   }
}

._card-pic {
   position: relative;
   aspect-ratio: 3 / 2;
   overflow: hidden;
}

._card-pic img {
   position: absolute;
   top: 0%;
   left: 0%;
   width: 100%;
   height: 100%;
   object-fit: cover;
}

._card-body {
   display: flex;
   flex-direction: column;
   padding: 16px 0 0;
}

._card-ttl {
   font-size: 16px;
   font-weight: 600;
   line-height: 1.6;
   flex-grow: 1;
}

/* *****************************************************************
*	archive
* ***************************************************************** */
/* テキストリスト表示 */
.list-wrap {
   display: block;
}

.list-item {
   border-bottom: 1px solid var(--border);
}

.list-item:first-of-type {
   border-top: 1px solid var(--border);
}

.list-item > a {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   gap: 24px;
   padding: 24px 0;
   text-decoration: none;
}
.list-item > a:hover {
   background-color: #f9f9f9;
}

.list-item-meta {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   gap: 20px;
}

.list-item-meta .date {
   min-width: 90px;
   color: #888;
   font-weight: 600;
   font-size: 15px;
   letter-spacing: .05em;
}

.list-item-meta .cat {
   padding: .6em .4em;
   min-width: 120px;
   background: var(--color-white);
   border: 1px solid var(--color-main);
   color: var(--color-main);
   font-size: 13px;
   line-height: 1.1;
   text-align: center;
}

.list-item .ttl {
   flex: 1;
   font-size: 16px;
   font-weight: 500;
   line-height: 1.4;
}
.list-item > a:hover .ttl {
   text-decoration: underline;
}
@media (max-width: 767px) {
   .list-item > a {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: 10px;
      padding: 24px 0;
   }

   .list-item-meta {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 16px;
   }

   .list-item-meta .date {
      font-size: 14px;
   }
   .list-item-meta .date {
      min-width: 70px;
      font-size: 14px;
   }
   .list-item-meta .cat {
      padding: .4em .2em .5em;
      font-size: 11px;
      min-width: 100px;
   }
}

/* カラム表示 */
.cardlist-wrap {
   display: grid;
   grid-template-columns: repeat(3,1fr);
   gap: 64px 32px;
}

.card-item {
   display: flex;
   flex-direction: column;
}

.card-pic {
   position: relative;
   aspect-ratio: 3 / 2;
   overflow: hidden;
}

.card-pic img {
   position: absolute;
   top: 0%;
   left: 0%;
   width: 100%;
   height: 100%;
   object-fit: cover;
}

.card-body {
   display: flex;
   flex-direction: column;
   padding: 16px 0 0;
}

.card-meta {
   display: flex;
   align-items: center;
   gap: 12px;
}

.card-meta .date {
   font-size: 13px;
   color: var(--color-grey);
   letter-spacing: .05em;
}

.card-meta .cat {
   padding: .2em .8em;
   font-size: 12px;
   border: 1px solid var(--border);
   line-height: 1.1;
   letter-spacing: .05em;
}

.card-ttl {
   margin-top: .5em;
   font-size: 16px;
   font-weight: 500;
   line-height: 1.6;

}

@media (max-width: 960px) {
   .cardlist-wrap {
      display: grid;
      grid-template-columns: repeat(1,1fr);
      gap: 40px 12px;
   }

   .card-body {
      padding: 12px 0 0;
   }

   .card-meta .date {
      font-size: 13px;
      color: var(--color-grey);
      letter-spacing: .05em;
   }

   .card-meta .cat {
      padding: .2em .8em;
      font-size: 12px;
   }

   .card-ttl {
      margin-top: .2em;
      font-size: 15px;
   }
}

/* *****************************************************************
*	POST,PAGE
* ***************************************************************** */
.post,
.page {
   margin: 0;
}

.page-head {
   position: relative;
   width: 100%;
   padding: 0;
   background: #fafafa;
   background-repeat: no-repeat;
   background-size: cover;
   background-position: 50% 50%;
}

.page-head-noimg {
   position: relative;
   width: 100%;
   padding: 0;
   background-color: var(--color-lightgreen);
   background-image: linear-gradient(125deg, #058246, #52b887);
   background-repeat: no-repeat;
   background-size: cover;
   background-position: 50% 50%;
}

.page-head::before {
   background-color: rgba(0, 0, 0, 0.35);
   position: absolute;
   top: 0;
   right: 0;
   bottom: 0;
   left: 0;
   content: '';
   backdrop-filter: blur(10px);
}

.page-head-inner {
   display: flex;
   flex-direction: column;
   justify-content: center;
   align-items: center;
   max-width: var(--width-content);
   height: 160px;
   margin: 0 auto;
   padding: 0 32px;
}

.page-head-ttlblock {
   position: absolute;
   margin: 0;
   padding: 0;
   text-align: center;
}

.page-head-ttl {
   font-size: 32px;
   letter-spacing: .08em;
   font-weight: 600;
   color: var(--color-white);
}

.page-head-noimg .page-head-ttl {
   color: var(--color-white);
}

.single-post .page-head-ttl {
   color: var(--color-white);
}

.archive-description {
   font-size: 16px;
   color: var(--color-white);
   letter-spacing: .08em;
}

@media (max-width: 767px) {
   .page-head-inner {
      height: 100px;
   }

   .page-head-ttl {
      font-size: 22px;
   }

   .archive-description {
      font-size: 14px;
   }
}

.entry-content,
.entry-summary {
   margin: 40px 0 0;
}

.page-content {
   margin: 0 0 0;
}

.search .page-content {
   margin-top: 80px;
}

.entry-title {
   line-height: 1.4;
   font-size: 16px;
}

.post-item .entry-title {
   margin-top: 8px;
   padding-bottom: 16px;
   line-height: 1.4;
   font-size: 24px;
   border-bottom: 1px solid var(--border);
}

.entry-meta {
   display: flex;
   align-items: center;
   font-size: 13px;
}

.entry-meta .date {
   letter-spacing: .05em;
}

.entry-meta .cat {
   display: flex;
   align-items: center;
   letter-spacing: .05em;
}

.entry-meta .cat::before {
   display: block;
   content: "";
   top: 0;
   left: 0;
   margin: 0 8px;
   width: 10px;
   height: 1px;
   background-color: var(--color-grey);
   transform: rotate(-45deg);
}

.post-thumbnail {
   margin: 40px 0 0;
}

.entry-footer {
   padding-top: 40px;
   padding-bottom: 40px;
}

.content-Tags {
   padding-top: 40px;
   padding-bottom: 40px;
   font-size: 12px;
}

.content-Tags li {
   display: inline-block;
}

.content-Tags li::after {
   content: '/';
   margin: 0 .3em;
}

.single-post .nav-links {
   display: flex;
   justify-content: center;
   font-size: 13px;
   gap: 48px;
}

.single-post .nav-previous {
   text-align: right;
}

.single-post .nav-next {
   text-align: left;
}

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

   .entry-content,
   .entry-summary {
      margin: 40px 0 0;
   }

   .post-item .entry-title {
      margin-top: 8px;
      font-size: 20px;
   }

   .entry-footer {
      padding-top: 16px;
      padding-bottom: 16px;
   }
}

/* *****************************************************************
*	パンくず
* ***************************************************************** */
.page-head .breadcrumbs {
   margin: 96px 0 0;
   font-size: 12px;
   text-align: center;
}

.breadcrumbs {
   max-width: var(--width-content);
   width: 100%;
   margin-inline: auto;
   padding: 16px 32px 0;
   font-size: 12px;
   color: var(--color-grey);
}

.breadcrumbs span {
   padding: 0 .2em;
}

.breadcrumbs span:first-of-type {
   padding-left: 0;
}

.breadcrumbs span[property="name"] {
   display: inline-block;
   padding: 0;
   margin-top: -3px;
   vertical-align: middle;
   max-width: 200px;
   white-space: nowrap;
   overflow: hidden;
   text-overflow: ellipsis;
}

.breadcrumbs a:hover {
   color: var(--color-main);
}

@media screen and (max-width: 767px) {
   .breadcrumbs {
      display: none;
   }
}

/* *****************************************************************
*	other
* ***************************************************************** */
.bg-lightgrey {
   background-color: var(--color-bg-lightgrey);
}

.bg-light {
   background-color: var(--color-bg-light);
}

.section {
   padding-top: 120px;
   padding-bottom: 120px;
}

.section-inner {
   margin: 0 auto;
   max-width: var(--width-content);
   padding-left: 32px;
   padding-right: 32px;
}

.section-inner-full {
   margin: 0 auto;
   padding-left: 32px;
   padding-right: 32px;
}

.section-title {
   margin-top: -.25em;
   font-size: 16px;
   text-align: center;
}

.section-title-en {
   display: block;
   font-size: 64px;
   color: var(--color-green);
   font-weight: 900;
   line-height: 1.2;
   letter-spacing: .02em;
}

.section-lead {
   margin-top: 24px;
   font-size: 16px;
}

@media (max-width: 767px) {
   .section {
      padding-top: 64px;
      padding-bottom: 64px;
   }
   .section-inner {
      padding-left: 24px;
      padding-right: 24px;
   }

   .section-inner-full {
      padding-left: 24px;
      padding-right: 24px;
   }
   .section-title {
      font-size: 15px;
   }

   .section-title-en {
      font-size: 40px;
   }
}

/* home-news */
.home-news {
   padding-top: 80px;
   background-color: #fff;
}

.home-news-inner {
   display: grid;
   grid-template-columns: 220px 1fr;
   grid-template-rows: auto 1fr;
   grid-template-areas: "head archive" "btn archive";
   gap: 40px;
}

.home-news-inner .section-title {
   grid-area: head;
   text-align: left;
}

.topnews-wrap {
   padding-top: 48px;
   margin-inline: auto;
}

.home-news-list {
   grid-area: archive;
}

.home-news-item {
   display: block;
   border-color: var(--border);
   border-style: solid;
   border-width: 1px 0 0;
}

.home-news-item:last-child {
   border-width: 1px 0;
   border-bottom: 1px solid var(--border);
}

.home-news-item a {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   gap: 20px;
   padding: 24px 0;
}

.home-news-item a {
   text-decoration: none;
}

.home-news-item-meta {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   gap: 20px;
}

.home-news-item-date {
   letter-spacing: .05em;
   color: var(--color-grey);
   font-weight: 600;
   font-size: 14px;
}

.home-news-item-cat {
   padding: 8px 8px;
   min-width: 90px;
   background: var(--color-white);
   border: 1px solid var(--color-main);
   color: var(--color-main);
   font-size: 13px;
   line-height: 1.1;
   text-align: center;
}

.home-news-item-ttl {
   flex: 1;
   font-size: 16px;
   font-weight: 500;
   line-height: 1.4;
}

.home-news-btn {
   grid-area: btn;
   margin-top: 24px;
}

.home-news-btn a {
   position: relative;
   display: flex;
   justify-content: center;
   align-items: center;
   margin: 0;
   padding: 1em 1em;
   width: 140px;
   color: var(--color-white);
   font-size: 14px;
   font-weight: 700;
   background-color: var(--color-green);
   border: 2px solid var(--color-bg-green);
   border-radius: 50vh;
   transition: 0.3s ease-in-out;
}

.home-news-btn a:after {
   content: "→";
   position: absolute;
   right: 20px;
}

.home-news-btn a:hover {
   color: var(--color-green);
   background-color: var(--color-white);
   border: 2px solid var(--color-bg-green);
   text-decoration: none;
   opacity: inherit;
}

@media (max-width: 767px) {
   .section.home-news {
      padding-top: 32px;
   }
   .home-news-inner {
      grid-template-columns: 1fr;
      grid-template-areas:
         "head"
         "archive"
         "btn";
      gap: 32px;
   }

   .home-news-inner .section-title {
      text-align: center;
   }

   .home-news-btn {
      margin-top: 0;
      display: flex;
      justify-content: center;
   }

   .home-news-item a {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: 12px;
      padding: 24px 0;
   }

   .home-news-item a {
      text-decoration: none;
   }

   .home-news-item-meta {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 20px;
   }

   .home-news-item-date {
      font-size: 13px;
   }

   .home-news-item-cat {
      padding: 4px 6px 5px;
      font-size: 11px;
   }

   .home-news-item-ttl {
      width: 100%;
      font-size: 15px;
   }
   .home-news-btn a {
      position: relative;
      display: flex;
      justify-content: center;
      align-items: center;
      margin: 0;
      padding: .8em 1em;
   }
}

/* ABOUT US */
.home-about {
   position: relative;
}

.home-about-bg {
   position: absolute;
   top: 0px;
   bottom: 0;
   right: 0;
   width: 58%;
   background-color: var(--color-bg-lightgrey);
   z-index: 1;
}

.home-about-image {
   position: absolute;
   top: 50%;
   left: 0;
   transform: translateY(-50%);
   width: 50%;
   height: calc(100% - 200px);
   z-index: 2;
}

.home-about-image img {
   width: 100%;
   height: 100%;
   object-fit: cover;
}

.home-about-inner {
   position: relative;
   z-index: 3;
   width: 100%;
   max-width: 1600px;
   margin: 0 auto;
   padding: 0 32px;
   display: flex;
   justify-content: flex-end;
}

.home-about-content {
   display: flex;
   flex-direction: column;
   gap: 40px;
   width: 50%;
   padding-left: 60px;
   padding-top: 40px;
   padding-bottom: 40px;
}

.home-about-content .section-title {
   text-align: left;
}

.home-about-text p+p {
   margin-top: 16px;
}

.home-about-btn a {
   margin: 0;
}

@media (max-width: 767px) {
   .home-about {
      padding: 0 0 64px;
   }
   .home-about-inner {
      padding: 0 24px;
   }
   .home-about-image {
      position: relative;
      top: auto;
      left: auto;
      transform: none;
      width: 100%;
   }

   .home-about-bg {
      top: 200px;
      width: 100%;
   }

   .home-about-inner {
      justify-content: flex-start;
   }

   .home-about-content {
      width: 100%;
      gap: 24px;
      padding-left: 0;
      padding-top: 40px;
      padding-bottom: 0px;
   }

   .home-about-content .section-title {
      text-align: center;
   }

   .home-about-text p br {
      display: none;
   }

   .home-about-btn a {
      margin: 0 auto;
   }
}

/* business */
.home-business-inner {
   width: 100%;
   max-width: 1600px;
   margin: 0 auto;
   padding: 0 32px;
}
.business-wrap {
   display: flex;
   justify-content: space-between;
   align-items: center;
   width: 100%;
   margin: 40px auto 0;
}

.business-col {
   width: 40%;
}

.business-col-pic {
   flex: 1;
   margin-right: calc(50% - 50vw);
   margin-left: 5%;
}

.business-pic {
   position: relative;
   aspect-ratio: 3 / 2;
   overflow: hidden;
}

.business-pic img {
   position: absolute;
   top: 0%;
   left: 0%;
   width: 100%;
   height: 100%;
   object-fit: cover;
   transition: transform .6s ease;
}

.business-ttl {
   margin: 0;
   font-size: 40px;
   color: var(--color-main);
   line-height: 1.4;
}

.business-ttl span {
   display: block;
}

.business-lead {
   margin-top: 40px;
   font-size: 16px;
}

.business-sarvice-grid{
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   align-items: stretch;
   gap: 8px;
   margin-top: 40px;
}
.business-sarvice-grid .item{
   display: flex;
   align-items: center;
   justify-content: center;
   width: 100%;
   padding: 12px 8px;
   font-size: 16px;
   font-weight: 500;
   color: var(--color-main);
   text-align: center;
   line-height: 1.4;
   border: 1px solid var(--color-main);
}
.business-btn {
   margin-top: 40px;
}

.business-btn a {
   margin-left: 0;
   margin-right: 0;
}

@media (max-width: 1199px) {
   .business-ttl {
      font-size: 32px;
   }

   .business-lead {
      margin-top: 24px;
   }
}

@media (max-width: 767px) {
   .home-business-inner {
      width: 100%;
      padding: 0 24px;
   }

   .business-wrap {
      display: flex;
      flex-direction: column-reverse;
      align-items: center;
      width: 100%;
   }

   .business-col {
      width: 100%;
      margin: 40px auto 0;
   }
   .business-ttl {
      font-size: 24px;
   }

   .business-col-pic {
      width: 100%;
      margin: 0 auto;
   }
   .business-sarvice-grid{
      grid-template-columns: repeat(2, 1fr);
   }
   .business-sarvice-grid .item{
      padding: 12px 4px;
   }
   .business-btn a {
      margin-inline: auto;
   }
}

/* works */
.home-works-wrap {
   padding-top: 40px;
   margin-inline: auto;
}

.home-works-list {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: 56px 24px;
}

.home-works-list a{
   display: flex;
   flex-direction: column;
   height: 100%;
   background-color: #fff;
   border: 1px solid #eaeaea;
}
.home-works-list a:hover {
   text-decoration: none;
   opacity: .85;
   color:var(--color-main)
}
.home-works-item {
   display: flex;
   flex-direction: column;
}
.home-works-item-pic {
   position: relative;
   aspect-ratio: 4 / 3;
   overflow: hidden;
}
.home-works-item-pic img {
   position: absolute;
   top: 0%;
   left: 0%;
   width: 100%;
   height: 100%;
   object-fit: cover;
}
.home-works-item-body {
   padding: 16px 20px 18px;
}
.home-works-item-cat {
   font-size: 13px;
   color: #888;
}
.home-works-item-ttl {
   font-size: 16px;
   font-weight: 500;
   line-height: 1.4;
}
.home-works-btn {
   margin-top: 48px;
}
@media (max-width: 767px) {
   .home-works-list {
      grid-template-columns: repeat(2, 1fr);
      gap: 32px 16px;
   }
   .home-works-item-body {
      padding: 12px 12px 14px;
   }
   .home-works-item-cat {
      font-size: 12px;
   }
   .home-works-item-ttl {
      font-size: 14px;
   }
}

/* machine */
.machine-wrap {
   position: relative;
   width: 100%;
   margin-top: 40px;
}

.machine-col-pic {
   width: 80%;
   z-index: -1;
}

.machine-pic {
   position: relative;
   aspect-ratio: 3 / 2;
   overflow: hidden;
}

.machine-pic img {
   position: absolute;
   top: 0%;
   left: 0%;
   width: 100%;
   height: 100%;
   object-fit: cover;
   transition: transform .6s ease;
}

.machine-col-text {
   position: absolute;
   bottom: -56px;
   right: 0;
   width: 40%;
   padding: 40px;
   background-color: rgba(255, 255, 255, .92);
   box-shadow: 0 3px 10px 0px rgba(0,0,0,0.1);
   z-index: 5;
}
.machine-lead {
   font-size: 16px;
}

.machine-btn {
   margin-top: 32px;
}

.machine-btn a {
   margin-left: auto;
   margin-right: auto;
}

@media (max-width: 767px) {
   .machine-col-pic {
      width: 100%;
   }
   .machine-col-text {
      position: relative;
      bottom: 0;
      width: 90%;
      margin: -20px auto 0;
      padding: 24px;
   }
}

/* recruit */
.home-recruit-wrap {
   display: flex;
   align-items: center;
   height: 500px;
   background: url('images/home_recuit_bg.jpg') no-repeat center center;
   background-size: cover;
   padding: 0 0 0 80px;
   position: relative;
}

.home-recruit-wrap:before {
   position: absolute;
   content: '';
   left: 0;
   top: 0;
   width: 100%;
   height: 100%;
   background-color: rgba(10, 84, 83, .2);
}

.home-recruit-body {
   color: var(--color-white);
   z-index: 5;
}

.home-recruit-en {
   font-size: 56px;
   font-weight: 800;
}

.home-recruit-ttl {
   font-size: 20px;
   font-weight: 600;
   line-height: 1.6;
}

.home-recruit-btn {
   margin-top: 40px;
}

.home-recruit-btn a {
   position: relative;
   display: flex;
   justify-content: center;
   align-items: center;
   margin: 0;
   padding: 1em 1.5em;
   max-width: 300px;
   color: var(--color-white);
   font-size: 16px;
   font-weight: 700;
   border: 3px solid var(--color-white);
   border-radius: 50vh;
   transition: 0.3s ease-in-out;
}

.home-recruit-btn a:after {
   content: '';
   width: 8px;
   height: 8px;
   border-top: 2px solid var(--color-white);
   border-right: 2px solid var(--color-white);
   transform: rotate(45deg);
   position: absolute;
   top: 50%;
   right: 20px;
   transform: translateY(-50%) rotate(45deg);
}

.home-recruit-btn a:hover {
   color: var(--color-green);
   background-color: var(--color-white);
   border: 3px solid var(--color-white);
   text-decoration: none;
   opacity: inherit;
}

.home-recruit-btn a:hover:after {
   border-top: 2px solid var(--color-green);
   border-right: 2px solid var(--color-green);
}

@media (max-width: 767px) {
   .section.home-recruit {
      padding-top: 0;
   }
   .home-recruit-inner {
      padding: 0;
   }
   .home-recruit-wrap {
      display: flex;
      align-items: center;
      height: 260px;
      background: url('images/home_recuit_bg.jpg') no-repeat center center;
      background-size: cover;
      padding: 24px;
      position: relative;
   }
   .home-recruit-en {
      font-size: 36px;
   }

   .home-recruit-ttl {
      font-size: 16px;
      font-weight: 600;
   }

   .home-recruit-btn {
      margin-top: 24px;
   }

   .home-recruit-btn a {
      position: relative;
      display: flex;
      justify-content: center;
      align-items: center;
      padding: .8em;
      max-width: 200px;
      font-size: 14px;
   }
}

/* home-contact */
.home-contact-wrap {
   display: grid;
   grid-template-columns: 1fr 1fr;
   justify-items: center;
   align-items: center;
   padding: 80px 0;
   background-color: var(--color-white);
}
.home-contact-lead {
   margin-top: 24px;
   font-size: 16px;
   text-align: center;
}
.home-contact-item {
   width: 100%;
}
.home-contact-item.home-contact-title {
   border-right: 1px solid #eee;
}
.home-contact-tel {
   margin-bottom: 24px;
   text-align: center;
}
.home-contact-tel-ttl {
   font-size: 16px;
   font-weight: 500;
}
.home-contact-tel-number {
   font-size: 32px;
   font-weight: 700;
   line-height: 1.1;
}
.home-contact-tel-icon {
   font-size: 28px;
   margin-right: .25em;
}
.home-contact-tel-time {
   margin-top: .4em;
   font-size: 13px;
}
.home-contact-tel a {
   color: var(--color-base);
}

.home-contact-tel a:hover {
   color: var(--color-base);
   text-decoration: none;
}

.home-contact-form-btn a {
   display: flex;
   justify-content: center;
   align-items: center;
   gap:8px;
   margin: 0 auto;
   padding: 1em 1.5em;
   width: 320px;
   color: var(--color-white);
   font-size: 18px;
   font-weight: 600;
   background-color: var(--color-green);
   border: 3px solid var(--color-green);
   border-radius: 50vh;
   transition: 0.3s ease-in-out;
   line-height: 1.4;
   letter-spacing: normal;
}

.home-contact-form-btn a:hover {
   color: var(--color-green);
   background-color: var(--color-white);
   border: 3px solid var(--color-green);
   text-decoration: none;
   opacity: inherit;
}

.form-text {
   margin-top: .2em;
}

@media (max-width: 767px) {
   .home-contact-wrap {
      display: flex;
      flex-direction: column;
      gap: 40px;
      padding: 40px 0 48px;
   }

   .home-contact-item {
      width: 80%;
   }
   .home-contact-item.contact-title {
      border-right: none;
   }
   .home-contact-lead {
      margin-top: 24px;
      font-size: 15px;
      text-align: center;
   }
   .home-contact-tel {
      margin-bottom: 32px;
   }
   .home-contact-tel-number {
      font-size: 28px;
      font-weight: 700;
      line-height: 1.1;
   }
   .home-contact-tel-icon {
      font-size: 22px;
   }
   .home-contact-tel-btn a,
   .home-contact-form-btn a {
      width: 100%;
      font-size: 16px;
   }
}

/* *****************************************************************
*	コンテンツ
* ***************************************************************** */
.-center {
   text-align: center;
}

.-underline {
   padding-bottom: 8px;
   border-bottom: 1px solid var(--border);
}

.section-block {
   margin-top: 0;
}

.section-block+.section-block {
   margin-top: 72px;
}

.-level2 {
   margin: 72px 0 32px;
   padding: .2em .5em .22em;
   color: var(--color-base);
   background: transparent;
   border-left: solid 5px var(--color-main);
   font-size: 28px;
   letter-spacing: 0.05em;
   line-height: 1.4;
}
.-level3 {
   margin: 32px 0 32px;
   padding: .6em 1em;
   font-size: 24px;
   background-color: var(--color-lightgreen);
}
.section-block p{
   margin: 24px 0;
}
.section-block ul,
.section-block ol {
   margin: 1em 0 1.5em 1.5em;
   line-height: 1.8;
}
.section-block ul li{
   list-style: disc;
}
.section-block ol li{
   list-style: decimal;
}

@media (max-width: 767px) {
   .section-block+.section-block {
      margin-top: 56px;
   }
   .-level2 {
      margin: 56px 0 24px;
      font-size: 22px;
   }
   .-level3 {
      margin: 24px 0;
      font-size: 20px;
   }
}

.c-lead {
   margin-inline: auto;
}

.c-lead-ttl {
   margin: 0;
   font-size: 32px;
   line-height: 1.6;
   text-align: center;
}

.c-lead-txt {
   max-width: 780px;
   margin: 40px auto 0;
   font-size: 16px;
}

.c-mv {
   margin: 40px auto 0;
}

.c-wrap {
   margin-inline: auto;
}

.c-wrap+.c-wrap {
   margin-top: 96px;
}

.c-wrap-ttl {
   position: relative;
   font-size: 32px;
   margin: 0 auto 64px;
   text-align: center;
}

.c-wrap-ttl:before {
   content: '';
   position: absolute;
   bottom: -15px;
   display: inline-block;
   width: 60px;
   height: 3px;
   left: 50%;
   -webkit-transform: translateX(-50%);
   transform: translateX(-50%);
   background-color: var(--color-main);
   border-radius: 3px;
}

.c-wrap-subttl {
   margin-top: 48px;
   font-size: 24px;
}

.c-link {
   margin-top: 40px;
}

.c-unit {
   display: flex;
   justify-content: space-between;
   gap: 6%;
}

.c-unit+.c-unit {
   margin-top: 120px;
}

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

.c-unit-item {
   flex: 1;
}

@media (max-width: 767px) {
   .c-lead-ttl {
      font-size: 24px;
   }

   .c-lead-txt {
      margin: 24px auto 0;
   }

   .c-lead-txt.center {
      text-align: left;
   }

   .c-mv {
      margin: 24px auto 0;
   }

   .c-unit {
      display: flex;
      justify-content: center;
      flex-direction: column;
   }

   .c-unit+.c-unit {
      margin-top: 80px;
   }

   .c-unit-item {
      max-width: 100%;
      width: 100%;
   }

   .c-unit-item+.c-unit-item {
      margin-top: 24px;
   }

   .c-wrap+.c-wrap {
      margin-top: 80px;
   }

   .c-wrap-ttl {
      font-size: 23px;
   }

   .c-wrap-subttl {
      font-size: 19px;
   }
}

/* company */
.company-menu {
   position: sticky;
   top: 140px;
   z-index: 10;
}
.company-menu-ttl {
   padding: 1em;
   font-size: 16px;
   background-color: #ecf6f1;
}
.company-menu li a{
   display: block;
   padding: .8em 1.2em;
   font-size: 14px;
   font-weight: 400;
   border-bottom: 1px solid var(--border);
   transition: 0.3s;
}

.company-menu li a:hover{
   padding-left: 1.4em;
   color: var(--color-main);
   font-weight: 500;
   text-decoration: none;
}
@media only screen and (max-width: 767px) {
   .l-container-2columns.page-company {
      display: flex;
      flex-direction: column-reverse;
      margin: 0 auto;
      padding: 0 24px;
      max-width: var(--width-content);
   }

   .l-container-2columns.page-company .site-main {
      width: 100%;
      margin-top: 40px;
   }

   .l-container-2columns.page-company .widget-area {
      width: 100%;
      margin-top: 0px;
   }

   .l-container-2columns.page-company #secondary .wp-block-heading {
      margin: 0 0 10px;
      padding: 0 0 10px;
      font-size: 16px;
      border-bottom: 1px solid var(--color-lightgrey);
   }
}
.message-name{
   text-align: right;
   font-weight: 500;
}
.message-name span{
   font-size: 1.2em;
   margin-left: .5em;
}

.overview-table {
   width: 100%;
   border-collapse: collapse;
   table-layout: fixed;
}
.overview-table th,
.overview-table td {
   padding: 1em 1.2em;
   border: 1px solid var(--border);
}
.overview-table th {
   width: 25%;
   text-align: left;
   background-color: var(--color-bg-lightgrey);
}
@media only screen and (max-width: 767px) {
   .overview-table {
      border-bottom: 1px solid var(--border);
   }
   .overview-table th,
   .overview-table td {
      display: block;
      width: auto;
      padding: 1em;
      text-align: left;
      font-size: 15px;
      border-bottom: none;
   }
}

.access-area + .access-area{
   margin: 80px 0 0;
}
.access-area-pic {
   margin-bottom: 24px;
   text-align: center;
}
.access-area-pic img{
   vertical-align: bottom;
}
p.access-add {
   margin: 16px 0 0;
}
p.access-tel {
   margin: 0;
}


.licence-table {
   width: 100%;
   border-collapse: collapse;
   table-layout: fixed;
}
.licence-table th,
.licence-table td {
   padding: 1em 1.2em;
   border: 1px solid var(--border);
}
.licence-table th {
   text-align: center;
   background-color: var(--color-bg-lightgrey);
}
.licence-table th.name {
   width: 66%;
}
.licence-table td.number {
   text-align: center;
}
@media only screen and (max-width: 767px) {
   .licence-table th,
   .licence-table td {
      padding: 1em;
      font-size: 15px;
   }
}

/* business */
.business-container {
   display: flex;
   flex-direction: column;
   gap: 120px;
}
.business-grid {
   display: flex;
   justify-content: space-between;
   align-items: center;
}
.business-grid:nth-child(even) {
   flex-direction: row-reverse; 
}
.business-grid-pic {
   width: 58%;
}
.business-grid-pic img {
   vertical-align: top;
}
.business-grid-text {
   flex: 1;
   background-color: #fff;
   padding: 40px 32px;
   position: relative;
   z-index: 2;
   margin-left: -60px;
   box-shadow: 0px 6px 10px 0px rgba(0,0,0,0.15);
}

/* 偶数番目は反対側から被せる */
.business-grid:nth-child(even) .business-grid-text {
   margin-left: 0;
   margin-right: -60px;
}

.business-grid-text::before {
   content: "";
   background-color: #fff;
   width: 40px;
}
.business-grid-text .ttl{
   margin: 0px;
   padding: .2em .5em .22em;
   color: var(--color-base);
   background: transparent;
   border-left: solid 5px var(--color-main);
   font-size: 26px;
   letter-spacing: 0.05em;
   line-height: 1.4;
}
.business-grid-text p{
   margin-top: 24px;
   margin-bottom: 16px;
}
@media only screen and (max-width: 767px) {
   .business-container {
      gap: 80px;
   }

   .business-grid {
      display: flex;
      flex-direction: column;
   }

   .business-grid:nth-child(even) {
      flex-direction: column;
   }

   .business-grid-pic {
      width: 100%;
   }

   .business-grid-text::before {
      content: none;
   }

   .business-grid-text {
      width: 92%;
      padding: 24px;
      z-index: 2;
      margin-left: 0;
      margin-top: -20px;
      box-shadow: 0px 6px 10px 0px rgba(0, 0, 0, 0.15);
   }

   .business-grid:nth-child(even) .business-grid-text {
      margin-left: 0;
      margin-right: 0;
   }

   .business-grid-text .ttl {
      font-size: 20px;
   }

   .business-grid-text p {
      margin-top: 24px;
      margin-bottom: 0px;
   }
}


/* archive-works */
.works-wrap {
   padding-top: 40px;
   margin-inline: auto;
}

.archive-works .works-list {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 56px 32px;
}
.works-item {
   display: flex;
   flex-direction: column;
}
.works-item > a {
   display: flex;
   flex-direction: column;
   height: 100%; 
}
.works-item > a:hover {
   text-decoration: none;
   opacity: .85;
   color:var(--color-base)
}
.works-item-body {
   padding: 16px 0 0;
}
.works-item-pic {
   position: relative;
   aspect-ratio: 4 / 3;
   overflow: hidden;
}
.works-item-pic img {
   position: absolute;
   top: 0%;
   left: 0%;
   width: 100%;
   height: 100%;
   object-fit: cover;
}
.works-item-cat {
   font-size: 13px;
   color: #888;
}
.works-item-ttl {
   font-size: 16px;
   font-weight: 500;
   line-height: 1.4;
}
.works-btn {
   margin-top: 48px;
}
.list-btn {
   margin: 0 0 56px;
}

@media (max-width: 767px) {
   .archive-works .works-list {
      grid-template-columns: repeat(2, 1fr);
      gap: 32px 16px;
   }
   .works-item-body {
      padding: 10px 0 0;
   }
   .works-item-cat {
      font-size: 12px;
   }
   .works-item-ttl {
      font-size: 14px;
   }
}

/* single-works */
.works-header {
   margin: 0;
}
.works-cat {
   font-size: 14px;
   color: var(--color-grey);
}
.works-title {
   font-size: 24px;
}
.works-pic {
   margin: 40px auto;
   text-align: center;
}
.works-pic img{
   width: 100%;
}
.works-comment {
   margin-top: 40px;
}
@media (max-width: 767px) {
   .works-title {
      font-size: 20px;
   }
   .works-pic {
      margin: 24px auto;
   }
}

/* machine-works */
.machine-list-wrap {
   margin-inline: auto;
}

.machine-list {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: 56px 32px;
}
.machine-list-item {
   display: flex;
   flex-direction: column;
}
.machine-list-item > a {
   display: flex;
   flex-direction: column;
   height: 100%; 
}
.machine-list-item > a:hover {
   text-decoration: none;
   opacity: .85;
   color:var(--color-base)
}

.machine-list-item-pic {
   position: relative;
   aspect-ratio: 4 / 3;
   overflow: hidden;
}
.machine-list-item-pic img {
   position: absolute;
   top: 0%;
   left: 0%;
   width: 100%;
   height: 100%;
   object-fit: cover;
}
.machine-list-item-body {
   padding: 16px 0 0;
}
.machine-list-item-ttl {
   font-size: 16px;
   font-weight: 500;
   line-height: 1.4;
}
.machine-list-item-desc {
   margin-top: 8px;
   width: 100%;
   border-collapse: collapse;
   table-layout: fixed;
}
.machine-list-item-desc dl{
   display: flex;
   font-size: 14px;
   line-height: 1.6;
}
.machine-list-item-desc dl dt{
   width: 50px;
   color: #999;
   font-weight: 500;
}

@media (max-width: 767px) {
   .machine-list {
      grid-template-columns: repeat(3, 1fr);
      gap: 32px 16px;
   }

   .machine-list-item-ttl {
      font-size: 14px;
   }
   .machine-list-item-desc dl{
      display: flex;
      font-size: 12px;
   }
   .machine-list-item-desc dl dt{
      width: 44px;
   }
}

@media (max-width: 480px) {
   .machine-list {
      grid-template-columns: repeat(2, 1fr);
      gap: 32px 16px;
   }
   .machine-list-item-body {
      padding: 10px 0 0;
   }
}
/* single-machine */
.machine-single-header {
   margin: 0;
   text-align: center;
}
.machine-single-title {
   font-size: 24px;
}
.machine-single-pic {
   margin: 40px auto;
   text-align: center;
}
.machine-single-pic img{
   max-width: 100%;
}
.machine-single-comment {
   margin-top: 40px;
}
.machine-single-desc-table {
   width: 100%;
   border-collapse: collapse;
   table-layout: fixed;
}
.machine-single-desc-table th,
.machine-single-desc-table td {
   padding: 1em;
   text-align: center;
   border: 1px solid var(--border);
}
.machine-single-desc-table th {
   width: 33%;
   text-align: center;
   background-color: var(--color-bg-lightgrey);
}
.machine-single-btn {
   margin-top: 64px;
}
@media only screen and (max-width: 767px) {
   .machine-single-title {
      font-size: 22px;
   }
   .machine-single-pic {
      margin: 24px auto;
   }
   .machine-single-desc-table th,
   .machine-single-desc-table td {
      padding: .8em;
      font-size: 14px;
   }
}

/* recruit */
.recruit-table {
   width: 100%;
   border-collapse: collapse;
   table-layout: fixed;
}
.recruit-table th,
.recruit-table td {
   padding: 1em 1.2em;
   border: 1px solid var(--border);
}
.recruit-table th {
   width: 25%;
   text-align: left;
   font-weight: 600;
   background-color: var(--color-bg-lightgrey);
}
.recruit-btn {
   margin-top: 48px;
}
@media only screen and (max-width: 767px) {
   .recruit-table {
      border-bottom: 1px solid var(--border);
   }
   .recruit-table th,
   .recruit-table td {
      display: block;
      width: auto;
      padding: 1em;
      text-align: left;
      font-size: 15px;
      border-bottom: none;
   }
}

/* privacypolicy */
.privacypolicy-list {
   margin: 40px 0 0 32px;
   list-style: decimal;
}

.privacypolicy-list li {
   padding: 8px 0;
}

/* contact */
.contact-tel-wrap {
   display: flex;
   flex-direction: column;
   justify-content: center;
   align-items: center;
   margin-top: 40px;
   padding: 40px 24px;
   gap: 16px;
   background-color: var(--color-bg-lightgrey);
}
.contact-tel-number {
   margin: 0;
   font-size: 36px;
   font-weight: 700;
   line-height: 1.1;
}
.contact-tel-icon {
   font-size: 26px;
   margin-right: .25em;
}
.contact-tel-time {
   font-size: 15px;
}
.contact-tel a {
   color: var(--color-base);
}
.contact-tel a:hover {
   color: var(--color-base);
   text-decoration: none;
}

.contact-form-wrap {
   padding: 40px 40px;
   border: 1px solid var(--border);
   background-color: var(--color-white);
}

@media (max-width: 767px) {
   .contact-tel-wrap {
      margin-top: 40px;
      padding: 40px 16px;
      gap: 8px;
   }
   .contact-tel-number {
      font-size: 28px;
   }
   .contact-tel-icon {
      font-size: 22px;
   }
   .contact-tel-time {
      font-size: 14px;
   }
   .contact-form-wrap {
      padding: 24px 16px;
      border: 1px solid var(--border);
      background-color: var(--color-white);
   }
}

/* *****************************************************************
*	contact form
* ***************************************************************** */
.form-wrap {
   margin-inline: auto;
}

.form-kakunin {
   font-size: 13px;
   margin-inline: auto;
   text-align: center;
}

.cf7__list {
   display: flex;
   flex-wrap: wrap;
}

.cf7__list dt:nth-of-type(n + 2),
.cf7__list dd:nth-of-type(n + 2) {
   margin-top: 30px;
}

.cf7__list dt {
   display: flex;
   align-items: center;
   width: 35%;
}

.cf7__list dd {
   width: 65%;
}
.cf7__list p {
   margin: 0;
}
/* 必須・任意 */
.cf7__required,
.cf7__optional {
   margin-left: .5em;
   padding: 2px 6px;
   color: #fff;
   font-size: 10px;
   vertical-align: 1px;
}

.cf7__required {
   background: #dc3545;
}

.cf7__optional {
   background: #878D8E;
}

/* input・textarea */
.cf7__list dd input[type="text"],
.cf7__list dd input[type="tel"],
.cf7__list dd input[type="email"],
.cf7__list dd textarea {
   width: 100%;
   padding: 15px 20px;
   background: #F4F4F4;
   border: none;
   outline: none;
   font-size: 16px;
}

/* ドロップダウンメニュー */
.cf7__select {
   position: relative;
}

.cf7__select:before {
   position: absolute;
   top: 50%;
   right: 20px;
   z-index: 10;
   transform: translateY(-50%);
   width: 0;
   height: 0;
   border-top: 8px solid #000;
   border-right: 6px solid transparent;
   border-left: 6px solid transparent;
   pointer-events: none;
   content: '';
}

.cf7__select select {
   width: 100%;
   padding: 19px 20px;
   background: #F4F4F4;
   color: #a5a5a5;
   -webkit-appearance: none;
   -moz-appearance: none;
   appearance: none;
}

/* チェックボックス・ラジオボタン */
.cf7__list dd .wpcf7-checkbox,
.cf7__list dd .wpcf7-radio {
   display: block;
   padding: 15px 0 10px;
}

/* 縦並び（チェックボックス・ラジオボタン） */
.cf7__list dd .wpcf7-list-item {
   display: block;
   margin: 0;
}

.cf7__list dd .wpcf7-list-item:nth-child(n + 2) {
   margin-top: 10px;
}

/* マウスカーソル（チェックボックス・ラジオボタン） */
.cf7__list dd .wpcf7-list-item label {
   cursor: pointer;
}

/* チェックボックス・ラジオボタン */
input[type="checkbox"],
input[type="radio"] {
   position: relative;
   width: 18px;
   height: 18px;
   margin-right: 8px;
   border: 1px solid #bcbcbc;
   vertical-align: -3px;
   cursor: pointer;
   -webkit-appearance: none;
   -moz-appearance: none;
   appearance: none;
}

/* チェックボックス */
input[type="checkbox"]:checked {
   border: 1px solid #000;
   background: #000;
}

input[type="checkbox"]:checked:before {
   position: absolute;
   top: 2px;
   left: 5px;
   transform: rotate(50deg);
   width: 6px;
   height: 10px;
   border-right: 2px solid #fff;
   border-bottom: 2px solid #fff;
   content: '';
}

/* ラジオボタン */
input[type="radio"] {
   border-radius: 50%;
}

input[type="radio"]:checked:before {
   position: absolute;
   top: 50%;
   left: 50%;
   transform: translate(-50%, -50%);
   width: 9px;
   height: 9px;
   border-radius: 50%;
   background: #000;
   content: '';
}

/* プレースホルダー */
/* Google Chrome / Safari / Mozilla Firefox / Opera */
.cf7__list dd input[type="text"]::placeholder,
.cf7__list dd input[type="tel"]::placeholder,
.cf7__list dd input[type="email"]::placeholder,
.cf7__list dd textarea::placeholder {
   color: #a5a5a5;
}

/* Microsoft Edge */
.cf7__list dd input[type="text"]::-ms-input-placeholder,
.cf7__list dd input[type="tel"]::-ms-input-placeholder,
.cf7__list dd input[type="email"]::-ms-input-placeholder,
.cf7__list dd textarea::-ms-input-placeholder {
   color: #a5a5a5;
}

/* Internet Explorer */
.cf7__list dd input[type="text"]:-ms-input-placeholder,
.cf7__list dd input[type="tel"]:-ms-input-placeholder,
.cf7__list dd input[type="email"]:-ms-input-placeholder,
.cf7__list dd textarea:-ms-input-placeholder {
   color: #a5a5a5;
}

/* 送信ボタン */
.cf7__button {
   margin-top: 40px;
   padding-left: 72px;
   text-align: center;
}

input[type="submit"] {
   width: 260px;
   height: 60px;
   background: var(--color-main);
   color: var(--color-white);
   border-radius: 50vh;
   transition: opacity .6s;
}

input[type="submit"]:hover {
   opacity: .6;
}

/* ajax-loader */
.wpcf7-spinner {
   vertical-align: middle;
}
.wpcf7 form .wpcf7-response-output {
      margin: .5em 0.5em 1em;
}
@media screen and (max-width: 767px) {
   .cf7__list dt {
      width: 100%;
      margin-bottom: 15px;
      padding-top: 0;
   }

   .cf7__list dd {
      width: 100%;
   }

   .cf7__list dd:nth-of-type(n + 2) {
      margin-top: 0;
   }

   .cf7__list dd .wpcf7-checkbox,
   .cf7__list dd .wpcf7-radio {
      padding: 15px 0 0;
   }

   .cf7__button {
      padding-left: 0;
   }
   .cf7__button p{
      display: flex;
      align-items: center;
      flex-direction: column;
      margin: 0;
   }

   input[type="submit"] {
      width: 180px;
      height: 56px;
   }

   .form-kakunin {
      text-align: left;
   }
}


/* youtube */
.youtube {
   width: 100%;
   aspect-ratio: 16 / 9;
}

.youtube iframe {
   width: 100%;
   height: 100%;
}

/* googlemap */
.googlemap {
   position: relative;
   width: 100%;
   height: 0;
   padding-top: 56.25%;
}

.googlemap iframe {
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
}


@media screen and (max-width: 767px) {
   .brpc {
      display: none;
   }
}

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