/*
Theme Name:saijo
Theme URI: 
Version: 2.0
Author: wakizashi
Author URI: https://wakizashi.jp
License: wakizashi
*/


/*基本構成*/

:root {
    --deepGreen: #239b73;
    --gradLightGreen: #66cc88;
    --gradDeepGreen: #22b573;
    --fontGreen: #22b573;
    --footerGreen: #9dcea2;
    --backGray: #e6eaed;
    --backGrad: linear-gradient(90deg, #66cc88, #22b573);
    --white: #fff;
}



* {
    font-family: "Noto Sans JP", sans-serif, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}

*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: inherit;
}



body {
    position: relative;
    margin: 0;
    width: 100%;
    height: 100%;
    letter-spacing: 2px;
}

* html body {
    overflow: hidden;
    height: 100%;
    font-size: 90%;

}

/*各種基本クラス初期設定*/

.fixed {
    position: fixed;
}

.clear {
    clear: both;
}

a {
    transition: 0.3s ease-in-out;
}

.fade {
    transition: 0.3s ease-in-out;
}

.fade:hover {
    opacity: 0.6;
    filter: alpha(opacity=80);
}

.hide {
    text-indent: 100%;
    white-space: nowrap;
    overflow: hidden;
    display: block;
    height: 0px !important;
    padding: 0px !important;
    margin: 0px !important;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    margin: 0;
    padding: 0;
    font-size: 100%;
    font-weight: normal;

}

ul {
    margin: 0;
    padding: 0;
    list-style-type: none;
    line-height: 160%;
}

a {
    color: #333333;
    text-decoration: none;
	font-size:1.2rem;
}



p {
    font-size: 18px;
    line-height: 180%;
    letter-spacing: 0px;
    text-align: justify;
}

p a {
    color: #00688C;
}

ol {}

ol li {
    margin: 10px 0px;
    line-height: 160%;
}

span {
    font-size: 1.2rem;
}

/*文字サイズ・基本装飾*/

.strong {
    font-weight: bold !important;
}

.big {
    font-size: 125% !important;

}

.v_big {
    font-size: 150% !important;
}

.vv_big {
    font-size: 180% !important;
}

table .big {
    color: #2968BE;
}

.blue {
    color: #0085B2;
}

.bun {
    text-indent: 1em;
}

.mincho {
    font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
}

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

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

.small {
    font-size: 85% !important;
}

.v_small {
    font-size: 70% !important;
}


hr {
    border: none;
    border-bottom: solid 1px #cccccc;
    margin: 50px 0px;
}


.link_box {
    border: #0070B3 2px solid;
    padding: 14px 25px;
    color: #0070B3;
    font-weight: bold;
    position: relative;
    box-sizing: border-box;
    display: inline-block;
    margin-bottom: 20px;
}

.link_box:after {
    right: 10px;
    width: 8px;
    height: 8px;
    border-top: 1px solid #0070B3;
    border-right: 1px solid #0070B3;
    transform: rotate(45deg);
    position: absolute;
    top: 40%;
    display: block;
    content: "";
}

.font-big {
    font-size: 2rem;
}

.br-big {
    display: block;
}

.br-small {
    display: none;
}

@media screen and (max-width: 768px) {
    .font-big {
        font-size: 1rem;
    }

    .br-big {
        display: none;
    }

    .br-small {
        display: block;
    }
}

/*YouTube Googlemap*/

.youtube {
    position: relative;
    width: 100%;
    padding-top: 56.25%;
}

.youtube iframe {
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
}

.gmap {
    position: relative;
    padding-bottom: 56.25%;
    padding-top: 30px;
    height: 0;
    overflow: hidden;

}

.gmap iframe,
.gmap object,
.gmap embed {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}


.fb_iframe_widget,
.fb_iframe_widget span,
.fb_iframe_widget iframe[style] {
    width: 100% !important;
}


/*テーブル設定*/

table {
    clear: both;
    table-layout: fixed;
    border-collapse: collapse;
    margin-left: 0px;
    margin-top: 15px;
    margin-bottom: 55px;
    width: 100%;
}


th,
td {
    padding: 10px 5px 10px 7px;
    vertical-align: top;
    color: #111111;
    line-height: 160%;
    letter-spacing: 0px;
}

th span,
td span {
    font-weight: bold;
    margin: 10px 0px;
}

th p,
td p {
    font-size: 100%;
    margin: 10px 0 !important;
}

/*ACCORDION*/
#panel {
    width: 100%;
    margin-bottom: 30px;
}

#panel>h3 {
    border-left: none !important;
    border-bottom: solid 1px white !important;
    background-color: #00779c !important;
    color: #fff !important;
    cursor: pointer;
    padding: 10px !important;
    position: relative;
    margin: 0px auto !important;
    max-width: 96%;
    font-size: 100% !important;
    letter-spacing: 2px;
}

#panel>h3:after {
    content: "▼";
    position: absolute;
    right: 10px;
}

#panel>.active:after {
    content: "▲";
    position: absolute;
    right: 10px;
}

#panel .ac {
    padding: 10px;
    box-sizing: border-box;
}

#panel .ac p {}

.width-cont {
    width: 80%;
    max-width: 1600px;
    margin: 0 auto;
}

/*イメージ*/
img {
    max-width: 100%;
    border: none;
    height: auto;
}

.center {
    text-align: center !important;
    display: block !important;
    margin: 10px auto 0 !important
}


/*サイトヘッダー*/
#header {
    z-index: 130;
    width: 100%;
    padding: 25px 1% 0;
    box-sizing: border-box;
    position: relative;
    top: 0;
    display: block;
    transition: 0.3s ease-in-out;
    margin-bottom: 3rem;
}


/*サイトヘッダーをオン・オフしたいとき*/
/*
#home #header {
    opacity: 0;
	position: fixed;
}

#home #header.isActive{
    opacity: 1;
    transition: all 800ms;
}

*


/*セクションタイトル*/
section.main-section {
    padding: 5rem 0;
}


h2.section-title {
    font-size: 3rem;
    font-weight: 600;
}

.feature_area .section-title>span {
    color: var(--deepGreen);
}


/*ヘッダーメニュー*/
.header-wrap {
    width: 100%;
    margin: 0 auto;
    position: relative;
    z-index: 10;
    box-sizing: border-box;
    display: flex;
    justify-content: space-around;
    align-items: center;
    flex-wrap: wrap;
}

.header-inner>ul {
    display: flex;
    justify-content: flex-end;
}

.header-sns li {
    padding: 0 30px;
}

.header-sns li a {
    font-size: 13px;
}

.header-insta a {
    position: relative;
    padding-left: 30px;
}

.header-insta a::before {
    content: "";
    background-image: url(img/icon-insta.png);
    width: 23px;
    height: 23px;
    position: absolute;
    top: 0;
    left: 0;
}

.header-contact {
    background: #111;
    color: #fff;
    border-radius: 50px;
    padding: 5px 50px;
}

.header-contact a {
    display: block;
    color: #fff;
}

.header-menu-item {
    padding: 20px 1rem;
}

.header-menu-item a {
    font-weight: bold;
    font-size: 18px;
    text-align: right;
    color: #000;
    position: relative;
    overflow: hidden;
}

.header-menu-item:not(:last-child) a::before {
    position: absolute;
    content: "";
    width: 0;
    height: 1rem;
    background: var(--gradLightGreen);
    left: 0;
    bottom: 0;
    transition: .2s all;
    z-index: -10;
}

.header-menu-item:not(:last-child):hover a::before {
    position: absolute;
    content: "";
    width: 100%;
    height: 1rem;
    background: var(--backGray);
    left: 0;
    bottom: 0;
    transition: .5s all ease-in-out;
}

.header-menu-item:not(:last-child):not(hover) a::before {
    width: 0;
    left: unset;
    right: 0;
}

/* .header-menu-item a:hover {
    text-shadow: 5px 4px 0px var(--backGray, 2px 2px 0px var(--backGray));
    color: var(--deepGreen);
} */
.header-menu-item.header-btn a {
    font-weight: bold;
    font-size: 1.2rem;
    text-align: right;
    color: #000;
}

.header-menu-item a span {
    display: block;
    font-weight: normal;
    font-size: 10px;
    color: #aaa;
}


.cont-btn {
    background: var(--deepGreen);
    color: var(--white);
    border-radius: 3rem;

}

.cont-btn:hover {
    background: var(--gradLightGreen);
    color: var(--white);
    border-radius: 3rem;

}

ul.header-sidewrap {
    position: fixed;
    top: 27%;
    right: 0;
    display: flex;
    -webkit-writing-mode: vertical-rl;
    -moz-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    -webkit-text-orientation: upright;
    -moz-text-orientation: upright;
    -ms-text-orientation: upright;
    text-orientation: upright;
    z-index: 100;
    padding: 1rem 0 0;
    font-size: 1rem;
    color: #fff;
    overflow: hidden;
	transition:0.2s all linear;
}
ul.header-sidewrap:hover li.header-sidemenu-item {
	padding: 2rem 1.5rem 1rem 0.5rem;
}

ul.header-sidewrap a {
    color: #fff;
}


li.header-sidemenu-item.sidemenu2 a {
    color: #000;
}

li.header-sidemenu-item {
    padding:2rem 1rem 1rem 0.5rem;
    position: relative;
    transition: 0.5s all ease-in-out;
}


li.header-sidemenu-item.sidemenu1 {
    background: var(--deepGreen);
    border-radius: 1rem 0 0 0;
}

li.header-sidemenu-item.sidemenu2 {
    background: #fff;
    border-radius: 0 0 0 1rem;
    border-left: 1px solid var(--gradLightGreen);
    border-bottom: 1px solid var(--gradLightGreen);
}

li.header-sidemenu-item::after {
    position: absolute;
    content: "";
    width: 1.2rem;
    height: 1.2rem;
    left:0.2rem;
    top: 0;
    transform: translate(50%, 50%);
}

li.header-sidemenu-item.sidemenu1::after {
    background: url(img/icon-recruit.webp) no-repeat;
    background-size: contain;
}

li.header-sidemenu-item.sidemenu2::after {
    background: url(img/icon-mail.webp) no-repeat;
    background-size: contain;
}



h1 {
    width: 23%;
    max-width: 18rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
}

h1 a {
    display: flex;
    align-items: center;
    font-size: 1.5rem;
    min-width: 220px;
    font-weight: 600;
}


figure.h1-figurre {
    width: 3rem;
    margin-bottom: 0;
    display: flex;
    align-content: center;
    flex-direction: column;
    margin-right: 1rem;
}

.figure-maxwidth {
    max-width: 1600px;
    width: 95%;
    height: 100%;
    margin: 0 auto;
    aspect-ratio: 13 / 7;
}

.figure-cont-rel {
    position: relative;
    height: 100%;
    width: 100%;
}

.header-menu-item.header-btn .cont-btn {
    color: #fff;
    padding: 0.2rem 1rem;
}

div.catch-pattern-fig,
figure.catch-pattern-fig {
    position: absolute;
}

div.catch-pattern-fig.catch-pattern1 {
    width: 50%;
    left: 0;
    top: 0;
    z-index: 20;
}

figure.catch-pattern-fig.catch-pattern2 {
    width: 37%;
    top: 2%;
    right: 0;
}

span.catch-copy {
    text-align: center;
    display: block;
    font-size: 1.5rem;
    margin-top: 2rem;
    font-weight: 600;
}

figure.catch-pattern-fig.catch-pattern3 {
    width: 26%;
    right: 18%;
    bottom: 8%;
    z-index: 20
}
.with-catch-span img,
.catch-pattern2 img,
.catch-pattern3 img{
	    box-shadow: 2px 3px 10px 0px var(--footerGreen);
}

section.catch_area {
    position: relative;
    aspect-ratio: 100 / 55;
    width: 100%;
    margin-bottom: 6rem;
    
}

figure.pattern-hero-back {
    position: absolute;
    top: -11rem;
    width: 100%;
    left: 0;
}
span.line1 {
	content:"";
	background:#fff;
	width:0;
	height:100%;
	right:0;
	top:0;
	position:absolute;
}
span.header-tel {
    display: block;
    margin: 0 0 0 auto;
    width: fit-content;
    position: relative;
    font-weight: 600;
}

span.header-tel::before {
    position: absolute;
    content: "";
    width: 1.2rem;
    height: 1.2rem;
    background: url(img/icon-tel.webp) no-repeat;
    background-size: contain;
    left: -0.5rem;
    bottom: 50%;
    transform: translate(-100%, 50%);
}

span.catch-copy {
    text-align: center;
    display: block;
    font-size: 1.5rem;
    margin-top: 2rem;
    font-weight: 600;
}

div.catch-words-wrap {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    z-index: 10;
}
/* 
@keyframes textflow {
    0% {
        transform: translatex(0%);
    }

    100% {
        transform: translatex(-100%);
    }
} */

.catch-words {
    color: #00dd5579;
    font-size: clamp(4rem, 0.056rem + 8.2vw, 10.3rem);
    font-weight: 700;
    max-height: 14rem;
    z-index: 100;
	width:100%;
	display:block;
}

/*ローダー*/

#loader-bg {
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0px;
    left: 0px;
    background: #e3f8ea;
    z-index: 1001;
}

@keyframes kurukuru {
    0% {
        transform: rotate(-90deg);
    }

    100% {
        transform: rotate(0deg);
    }
}

#loader {
    display: none;
    position: fixed;
       top: 40%;
    left: 50%;
    width: 150px;
    height: 150px;
    margin-top: -80px;
    /* margin-left: -100px; */
    text-align: center;
    color: #fff;
    z-index: 200;
    margin: 0 auto;
    transform: translate(-50%, 0);
}

#loader img {
    animation-name: kurukuru;
    animation-duration: 0.5s;
    animation-iteration-count: 1;
}

.bounce {
    -webkit-animation: bounce_4933 2.5s ease infinite;
    animation: bounce_4933 2.5s ease infinite;
    transform-origin: 50% 50%;
    height: 74px;
}

@-webkit-keyframes bounce_4933 {
    0% {
        transform: translateY(0)
    }

    5.55556% {
        transform: translateY(0)
    }

    11.11111% {
        transform: translateY(0)
    }

    22.22222% {
        transform: translateY(-15px)
    }

    27.77778% {
        transform: translateY(0)
    }

    33.33333% {
        transform: translateY(-15px)
    }

    44.44444% {
        transform: translateY(0)
    }

    100% {
        transform: translateY(0)
    }

    height:62px;
}

@keyframes bounce_4933 {
    0% {
        transform: translateY(0)
    }

    5.55556% {
        transform: translateY(0)
    }

    11.11111% {
        transform: translateY(0)
    }

    22.22222% {
        transform: translateY(-15px)
    }

    27.77778% {
        transform: translateY(0)
    }

    33.33333% {
        transform: translateY(-15px)
    }

    44.44444% {
        transform: translateY(0)
    }

    100% {
        transform: translateY(0)
    }

    height:62px;
}

.no1,
.no2,
.no3 {
    filter: alpha(opacity=0);
    -moz-opacity: 0;
    opacity: 0;
}

/*トップページレイアウト*/
.feature-article {
    display: flex;
    gap: 2rem;
    flex-wrap: wrap;
    justify-content: space-around;
    align-items: center;
}

span.feature-title {
    font-size: 1.5rem;
    font-weight: 600;
}

.feature-detail {
    flex: 0 1 auto;
    color: #000;
    font-size: 1.1rem;
    max-width: 30rem;
}

figure.feature-img {
    flex: 0 1 38%;
    position: relative;
    aspect-ratio: 463 / 493;
    width: 100%;
    display: block;
    height: fit-content;
}

figure.feature-img::after {
    position: absolute;
    content: "";
    width: 63%;
    /* height: 16rem; */
    background: url(img/intro-sub.webp) no-repeat;
    bottom: 0;
    right: 0;
    transform: translate(27%, 50%);
    background-size: contain;
    aspect-ratio: 833 / 785;
    max-width: 240px;
}

.feature-detail span {
    line-height: 2;
    display: block;
    margin-bottom: 3rem;
    font-weight: 600;
    min-width: 360px;
}

.feature-catch {
    flex: 1 0 23rem;
}

figure.feature-video {
    width: 80%;
    margin: 0 auto 6rem;
    max-width: 1060px;
}

section.feature_area.main-section {

    background-position: bottom;
    aspect-ratio: 120/67;
	position:relative;
}
span.feature-backspan1 {
    position: absolute;
    bottom: 0;
    z-index: -5;
}

span.feature-backimg2 {
    position: absolute;
    bottom: 0;
    z-index: -5;
}

figure.feature-backfigure1,
figure.feature-backfigure2{
	position:relative;
}
figure.feature-backfigure1 .li-2{
	position:absolute;
	content:"";
	background:#fff;
	left:0;
	top:0;
	width:100%;
	height:100%;
}

figure.feature-backfigure2 .li-3{
	position:absolute;
	content:"";
	background:#fff;
	right:0;
	top:0;
	width:100%;
	height:100%;
}


/* product */

section#works {
    background: var(--backGrad);
    color: var(--white);
    border-radius: 3rem 0 0;
}

span.works-txt {
    margin: 3rem auto 3rem;
    display: block;
}

span.product-title {
    font-size: 2rem;
    font-weight: 600;
}

.rec-fig-cont {
    aspect-ratio: 1669/1387;
    width: 100%;
    position: relative;
}


@keyframes recKurukuruRight {
    0% {
        transform: translate(-100%, 100%) rotate(0deg);
    }

    50% {
        transform: translate(-100%, 100%) rotate(360deg);
    }

    100% {
        transform: translate(-100%, 100%) rotate(720deg);
    }
}

@keyframes recKurukuruLeft {
    0% {
        transform: translate(-100%, -109%) rotate(0deg);
    }

    50% {
        transform: translate(-100%, -109%) rotate(-360deg);
    }

    100% {
        transform: translate(-100%, -109%) rotate(-720deg);
    }
}

/* section.topics */
section#topics {
    background: var(--backGray);
}

section#topics h2 {
    font-size: 3rem;
    font-weight: 600;
    color: var(--gradDeepGreen);
}

section#topics h2 span {
    font-size: 1.5rem;
    color: #000;
}

.topics-flex {
    display: flex;
    flex-wrap: wrap;
    gap: 3rem;
}

#topics p {
    margin: 0;
}

section#info {
    padding: 14rem 0 6rem;
    background: var(--backGray);
}

ul.info-table {
    display: flex;
    justify-content: center;
}

li.info-card {
    background: #fff;
/*     padding: 1rem 2rem; */
    flex: 1 0 50%;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: start;
    max-width: 20rem;
    position: relative;
}

li.info-card::after {
    position: absolute;
    content: "";
    width: 1.5rem;
    height: 1.5rem;
    transform: translate(-50%, 50%);
    background: url(img/arrow-green.webp) no-repeat;
    background-size: contain;
    bottom: 50%;
    right: 1rem;
    transition: 0.2s linear all;
}

li.info-card:hover::after {
    right: 0.5rem;
}

.info-card__catch {
    position: relative;
}

a.info-btn {
    font-weight: 600;
	width:100%;
	height:100%;
	padding: 1rem 2rem;
}

.info-card__catch {
    aspect-ratio: 556/333;
}

ul.info-table {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    justify-content: space-between;
}

.info-title {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translate(-50%, 19%);
    display: block;
    width: 90%;
}

.info-title1 {
    aspect-ratio: 115/13;
}

.info-title2 {
    aspect-ratio: 713/104;
}

.info-title figure {
    margin: 0
}

a.info-card__btn {
    background: var(--deepGreen);
    display: block;
    width: fit-content;
    color: #fff;
    padding: 1rem 3rem;
    margin: 0 auto;
    border-radius: 4rem;
    font-size: 1.3rem;
}

p.info-card__txt {
    display: block;
    width: 90%;
    margin: 2rem auto;
    font-weight: 600;
}

/* ボタン */
.more-link {}

.more-link a {
    color: #000;
    border-radius: 3rem;
    padding: 0.5rem 0.5rem 0.5rem 2rem;
    font-weight: 600;
    font-size: 1.4rem;
    display: block;
    margin: 0 0 0 auto;
    width: fit-content;
    position: relative;
}

.more-link a::before {
    position: absolute;
    content: "●";
    left: 0;
    top: 50%;
    color: var(--gradDeepGreen);
    font-size: 0.5rem;
    transform: translate(50%, -50%);
}
.more-link a::after {
    position: absolute;
    width: 0px;
    height: 3px;
    background: var(--gradLightGreen);
    bottom: 0;
    left: 0;
    content: "";
	transition:0.3s linear all;
}
.more-link a:hover::after {
    width: 100%;    
}

.more-link a:not(:hover)::after {
    left: unset;
    right: 0;
    width: 0;
}
.more-link.--s {
    line-height: 38px;
}


/* 記事一覧・1つ目と2つ目が違うサイズ */

.works_box {
    display: flex;
    gap: 75px;
}

.first_box {
    width: 40%;
}

.second_box {
    width: 60%;
    display: flex;
    flex-wrap: wrap;
    gap: 50px 30px;
}

.second_box .newpickup_box {
    width: 45%;
}

.newpickup_box .thumb img {
    border: 2px solid #333;
    width: 100%;
    object-fit: cover;
}

.first_box .newpickup_box .thumb img {
    aspect-ratio: 535 / 384;
}

.second_box .newpickup_box .thumb img {
    aspect-ratio: 32 / 23;
}

.text-block h3 {
    font-size: 20px;
    font-weight: 500;
    margin-bottom: 20px;
}

.tags {
    text-align: left;
}

.tag-item {
    background: #333;
    color: #fff;
    border-radius: 30px;
    padding: 0 20px;
    display: inline-block;
}

.tag-item a {
    display: inline;
    color: #fff;
}



/*トピックススライダー*/
.swiper-button-next:after,
.swiper-button-prev:after {
    color: #999;
}

#works .swiper {
    aspect-ratio: 1087 / 480;
    width: 90%;
    margin: 3rem auto;
    max-width: 80rem;
    margin: 3rem auto;
}

#works .swiper-slide {
    text-align: center;
    font-size: 18px;
    background: #fff;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    background: inherit;
    overflow: hidden;
    position: relative;
    flex-direction: column;
}

#works .swiper-slide::after {
    position: absolute;
    width: 1.5rem;
    height: 1.5rem;
    background: url(img/arrow-white.webp) no-repeat;
    content: "";
    background-size: contain;
    right: 10px;
    bottom: 0;
}

#works .swiper-slide figure {
    aspect-ratio: 695 / 868;
    position: absolute;
    width: 100%;
    height: 91%;
    top: 0;
    left: 0;
    display: block;
    overflow: hidden;
}

.works-genre {
    font-size: 1.4rem;
    color: #fff;
    font-weight: 600;
    position: absolute;
    bottom: 0;
    left: 0;
    display: block;
}


/*新着情報*/
.topics_area {
    padding: 120px 0;
}

.topics_area .flex-box {
    gap: 100px;
    flex: 1 0 50%;
}

.topics {
    flex-grow: 1;
}

.topics h3 {}

.topics h3 a {
    display: flex;
    color: #000;
    align-items: center;
    gap: 2rem;
    padding: 0;
}

.topics ul {
    margin: 3rem auto;
    width: 80%;
}

.topics-cont {
    background: var(--white);
    margin-bottom: 1rem;
    padding: 1rem;
}

.topics .more-link {
    margin: 60px 0 0 auto;
}

#list ul {
    width: 100%;
    margin: 0 auto;
    padding: 0;
    max-width: 100%;
    display: inline-block;
}

#list li h3 {
    font-size: 1.15rem;
    font-weight: bold;
    margin: 5px 0px 3px;
    width: 100%;
    line-height: 130%;
    letter-spacing: 0;
    text-align: justify;
}

#list li h3 a {
    font-size: 0.9rem;
}

#list li p {
    padding: 5px 0px;
    font-size: 80%;
    margin: 0px;
    color: var(--deepGreen);
}


#home .topics .date {
    text-align: center;
    display: block;
    padding: 3px 0px;
    font-size: 14px;
    font-weight: 600;
    color: var(--deepGreen);
}


.readmore {
    display: block;
    float: right;
}

.date {
    text-align: right;
    display: block;
    font-size: 0.75rem;
    color: #555;
}

.cat {
    color: #fff;
    padding: 5px 0px;
    font-size: 95%;
    display: inline-block;
}

#cboxTitle,
#cboxCurrent {
    display: none !important;
}




/*カテゴリー用記事リスト*/

#page #list ul {
    text-align: left;
}

#page #list ul li {

    margin: 5px;
    padding: 5px;
}

#sidebar #list ul {
    padding: 0 !important;
}

#sidebar #list ul li {
    margin: 5px 0px !important;
    padding: 5px 0px !important;
}

#page #list .thumb {
    max-width: 100%;
    height: auto;
}

#page #list .thumb img {
    left: 0% !important;
    position: relative;
    width: 100%;
    transform: translate(-0%, -0%);
}

.seven_box .date {
    color: #00a5d9;
}

.seven_box .cat-name {

    background: #00a5d9;
    color: #fff;
    padding: 1px 4px;
    font-size: 90%;
}


/*コンテンツ・基本レイアウト*/

.section-title {
    display: flex;
    flex-direction: column;
    color: var(--white);
    margin: 2rem 0 4rem;
    max-width: 80%;
}


.section-title span {
    font-size: 2rem;
    font-weight: 600;
}

#page #wrap {
    margin: 0px auto;
    min-height: 100%;
    max-width: 100%;
    padding: 0px 0 0px 0;
    z-index: 3;
    background: url(img/pattern-sub-back.webp) no-repeat;
    background-size: contain;
    background-attachment: local;
    background-position: top;
}

.cont {
    margin: 0px auto 0px;
    width: 100%;
    padding: 10px 0px 30px;
    z-index: 1;
    max-width: 1260px;
}

/*見出し*/

#page h2 {}



/*固定ページ用*/

#page .cont p {}

#main_con {}



/*単独ページの共通設定*/
#page #main p {
    text-align: justify;
    padding: 0 5px 20px 5px;
    font-size: 100%;
    line-height: 1.8;
}

#page #main h2 {
    font-size: 1.5rem;
    color: var(--deepGreen);
    display: block;
    width: fit-content;
    font-weight: 600;
    margin: 0 auto 3rem 2.5rem;
    border-bottom: 2px solid var(--footerGreen);
}

.with-dash {
    font-size: 1.2rem;
    font-weight: 600;
    margin-bottom: 2rem;
    text-align: center;
    position: relative;
    width: fit-content;
    margin: 0rem auto 3rem;
}

.with-dash::before {
    position: absolute;
    left: 0;
    bottom: 50%;
    background: var(--footerGreen);
    content: "";
    width: 3rem;
    height: 0.1rem;
    transform: translate(-132%, 0);
}

.with-dash::after {
    position: absolute;
    right: 0;
    bottom: 50%;
    background: var(--footerGreen);
    content: "";
    width: 3rem;
    height: 0.1rem;
    transform: translate(132%, 0);
}

#page #main h3 {}



#page #main .center_h3 {}

#page #main h3 span {}


.post h3.page_title {
    border-bottom: 1px solid green;
    font-size: 1.2rem;
    padding: 0 0 0.5rem;
}

h4 {}

h4 {}


/*サイドバー */


/*フッター*/
#footer {
    overflow: hidden;
    min-width: 100%;
    position: relative;
    bottom: 0px;
    padding: 60px 0;
    font-weight: 600;
    font-size: 1.1rem;
}


article.cont.flex-box {
    display: flex;
    gap: 3rem;
    width: 96%;
    justify-content: space-around;
}

ul.footer-work-list {}

ul.footer-work-list li {
    padding: 0 0 0 2rem;
    position: relative;
}

ul.footer-work-list li::before {
    background: #000;
    position: absolute;
    width: 1rem;
    height: 1rem;
    content: "";
    left: 0;
    bottom: 50%;
    transform: translate(50%, 50%);
}

#footer span {
    display: block;
}

li.footer-list__item a {
    color: #000;
}
li.footer-list__item a:hover {
    color: var(--deepGreen);
    font-weight: 600;
}
span.footer-copyright {
    font-size: 1.5rem;
    font-weight: 600;
    margin: 0 5rem 0 auto;
    display: block;
    width: fit-content;
    color: var(--gradDeepGreen);
}


span.footer-address {
    margin: 2rem 0;
}

ul.footer-list {
    display: flex;
    flex-wrap: wrap;
    column-gap: 2rem;
    row-gap: 2rem;
    justify-content: space-evenly;
	margin:4rem auto 0;
}

li.footer-list__item.cont-footer a.cont-footer-btn {
    color: #fff;
    background: var(--gradDeepGreen);
    padding: 0.5rem 2rem;
    border-radius: 2rem;
}

span.footer-address {
    margin: 2rem 0;
}

.cont-btn {
    color: #fff;
}

.rec-footer {}

.cont-footer {}

#footer .cont {}

#footer .cont .footer-info {
    flex: 0 1 40%;
    min-width: 326px;
}

#footer .cont .footer-list-box {
    flex: 0 1 58%;
}

.ft_bottom {}

.foot_menu {
    text-align: left;
}

h2.footer-title {
    display: flex;
    align-items: center;
    gap: 0;
    font-size: 1.7rem;
    margin-bottom: 2rem;
    font-weight: 600;
}

.footer-logo-big {
    font-size: 2.1rem;
}

.foot_menu {
    display: flex;
    justify-content: space-between;
}

.foot_menu_list h3 {
    color: #796A56;
    font-size: 22px;
    padding-bottom: 20px;
}

.foot_menu ul li {
    padding: 7px 0;
}

.foot_menu .sns-link {
    display: flex;
    gap: 20px;
    height: fit-content;
}

.ft_bottom .footer_logo {
    width: 360px;
}

.ft_bottom .footer_info p {
    font-size: 18px;
}

.ft_bottom .footer_info address {
    font-style: normal;
}

dd {
    margin: 0rem 0;
}

dl.footer-address {
    font-weight: 600;
}

dt {
    margin-top: 2rem;
    color: var(--deepGreen)
}

figure.footer-bottom__figure {
    width: 50%;
    display: block;
    margin: 0 0 0 auto;
    max-width: 40rem;
}

figure.footer-bottom__figure {
    width: 50%;
    display: block;
    margin: 0 5% 0 auto;
    max-width: 40rem;
}

figure.footer-title__figure {
    width: 19%;
    margin-right: 2rem;
}

a.footer-tel {
    display: block;
    width: fit-content;
    padding: 0 0 0 2rem;
    position: relative;
}

a.footer-tel::before {
    position: absolute;
    content: "";
    background-size: contain;
    width: 1.5rem;
    height: 1.5rem;
    background: url(img/icon-tel.webp) no-repeat;
    background-size: contain;
    transform: translate(0, 50%);
    bottom: 50%;
    left: 0;
}

/*固定ページメインタイトル*/

#pageheader {
    width: 100%;
    padding: 2rem 0 1rem;
    z-index: 8;
    border-bottom: 4px solid var(--backGray);
    margin: 0 auto;
}

.pageheader_cont {
    max-width: 1260px;
    display: flex;
    justify-content: center;
    margin: 0 auto;
}

.pageheader_cont h2 {
    font-size: 2rem;
    font-weight: 600;
    color: #777;
}

.pageheader_cont .left {}

.about_head {}

#pageheader.recruit_head {
	background: url(img/recruit-header.webp) no-repeat;
    background-size: cover;
    aspect-ratio: 775 / 262;
	position:relative;
	background-position:center;
	border-bottom:none;
}
.recruit_head .pageheader_cont {
    height: 100%;
    align-items: center;
}
.recruit_head .pageheader_cont h2 {
   color: var(--deepGreen);
    z-index: 5;
	text-shadow: 2px 2px 0px var(--backGray), 3px 3px 0px var(--deepGreen);
}

.recruit_head::before {
    position: absolute;
    content: "";
    z-index: 2;
    background: var(--backGray);
    width: 100%;
    height: 100%;
    opacity: 0.4;
    top: 0;
}

.contact_head {}



/*メインコンテンツ*/
#main {
    max-width: 100%;
    margin: auto;
    width: 100%;
    font-size: 100%;
    z-index: 1;
    vertical-align: top;
    display: inline-block;
}


.post {
    z-index: 1;
}

.entrytext {
    margin: auto;
    width: 90%;
    max-width: 1060px;
    padding: 3rem 0;
}

.postnav {
    padding: 20px 0;
    position: relative;
    display: flex;
    justify-content: space-between;
    width: 90%;
    margin: 0 auto;
    max-width: 960px;
}

.postnav span a {
    font-size: 1rem !important;
}

.postnav .prev {
    text-align: left;
}

.postnav .prev a {
    display: flex;
    padding: 0rem 1rem 0rem 2rem;
    position: relative;
    border-radius: 2rem;
    align-items: center;
    border: 3px solid var(--backGray);
}

.postnav .prev a::before {
    position: absolute;
    width: 10%;
    height: 45%;
    background: var(--gradLightGreen);
    content: "";
    left: 1rem;
    bottom: 50%;
    clip-path: polygon(100% 0, 0 55%, 100% 100%);
    transform: translatey(50%);
    transition: 0.2s linear all;
}

.postnav .prev a:hover::before {
    left: 0.8rem;
}

.postnav .next {
    text-align: right;
}

.postnav .next a {
    background: #fff;
    display: flex;
    padding: 0rem 2rem 0rem 1rem;
    position: relative;
    border-radius: 2rem;
    align-items: center;
    border: 3px solid var(--backGray);
}

.postnav .next a::before {
    position: absolute;
    width: 10%;
    height: 45%;
    background: var(--gradLightGreen);
    content: "";
    right: 1rem;
    bottom: 50%;
    clip-path: polygon(0 0, 0 100%, 100% 50%);
    transform: translatey(50%);
    transition: 0.2s linear all;
}

.postnav .next a:hover::before {
    right: 0.8rem;
}

/* section.recruit */
section#recruit {
    background: var(--backGrad);
    position: relative;
    padding: 5rem 0 0;
}
section#recruit::after {
    position: absolute;
    background: url(img/pattern-recruit.webp) no-repeat;
    content: "";
    width: 100%;
    aspect-ratio: 3360/833;
    bottom: 0;
    left: 0;
    background-size: contain;
    transform: translate(0, 47%);
}

.catch-big {
    font-size: 2.6rem;
    font-weight: 600;
}

span.recruit-catch {
    color: #fff;
}

article.recruit-message>* {
    display: block;
    color: #fff;
}

span.recruit-txt {
    line-height: 2;
    margin: 3rem 0;
    font-weight: 600;
}

#recruit a.rec-btn {
    background: #fff;
    color: var(--gradDeepGreen);
    font-size: 1.3rem;
    width: fit-content;
    padding: 0.5rem 2rem 0.5rem 4rem;
    border-radius: 2rem;
    font-weight: 600;
    position: relative;
    transition: 1s linar all;
}


#recruit a.rec-btn::before {
    position: absolute;
    content: "";
    width: 1.5rem;
    height: 1.5rem;
    background-size: contain;
    left: 3%;
    bottom: 50%;
    transform: translate(50%, 50%);
    background: url(img/arrow-green.webp) no-repeat;
    background-size: contain;
}

#recruit a.rec-btn:hover::before {
    left: 4%;
}


.width-cont.recruit-flex {
    box-sizing: border-box;
    display: flex;
    gap: 3rem;
    flex-wrap: wrap;
    position: relative;
    row-gap: 0;
    width: 100%;
    padding: 5%;
	justify-content:center;
}
figure.recruit-footer {
    padding: 0;
    display: flex;
    max-width: 100%;
    gap: 0;
    flex-direction: column;
}
figure.recruit-img {
    flex: 0 1 40%;
    border-radius: 1.5rem;
    overflow: hidden;
    aspect-ratio: 1303 / 1505;
    height: max-content;
    max-width: 440px;
    z-index: 50;
}

article.recruit-message h2,
article.recruit-message span {
    z-index: 10;
    position: inherit;
}

article.recruit-message {
    position: relative;
    flex: 1 0 30%;
    max-width: 596px;
    margin: 0 0 4rem;
}

article.recruit-message figure {
    border-radius: 2rem;
    overflow: hidden;
}

article.recruit-message .recruit-article-img1 {
    position: absolute;
    width: 50%;
    aspect-ratio: 1015/678;
    background-size: contain;
    top: 0;
    left: 0;
}

article.recruit-message .recruit-article-img2 {
    position: absolute;
    background-size: contain;
    width: 63%;
    aspect-ratio: 1015 / 677;
    background-size: contain;
    bottom: 33%;
    right: 0;
    transform: translate(17%, 50%);
}

.recruit-flex .recruit-article-img3 {
    position: absolute;
    background-size: contain;
    width: 38%;
    aspect-ratio: 962 / 478;
    background-size: contain;
    bottom: 0;
    left: 0;
    min-width: 20rem;
    border-radius: 2rem;
    overflow: hidden;
}


/* section.company*/
.width-cont.company-flex {
    display: flex;
    max-width: 1060px;
    column-gap: 3rem;
    row-gap: 0;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
}

.width-cont.company-flex h2 {
    color: #000;
}

figure.company-figure {
    flex: 0 1 44%;
}

article.company-info {
    flex: 0 1 40%;
}

/* section.contactus */
section.contact_area {
    color: #000;
    background: var(--backGrad);
    text-align: center;
    color: #fff;
    padding: 4rem 0 6rem;
}

a.btn-cont {
    background: #fff;
    padding: 0.5rem 3rem;
    color: var(--deepGreen);
    border-radius: 3rem;
}

span.contact-catch {
    font-size: 4rem;
    font-weight: 600;
}

article.contact-message {
    margin: 3rem 0;
}

.contact_area .btn-cont {
    font-weight: 600;
    font-size: 1.2rem;
    transition: 0.3s linear all;
    display: block;
    width: max-content;
    margin: 1rem auto;
}

.contact_area .btn-cont:hover {
    margin-top: 0;
    box-shadow: 1px 6px 0px 0px var(--footerGreen);
    transform: translatey(-2px);
}

/*カテゴリー一覧設定*/
/*トピックス専用*/
.topics_h3 {
    font-size: 115%;
    margin: 0.2rem 0;
    padding: 5px 0px 0;
    border-bottom: 1px solid var(--deepGreen);
}



#imagetopics {
    display: flex;
    flex-wrap: wrap;
    justify-content: start;

}

.cate_block figure {}

.cate_block {
    width: 33.3%;
    max-width: 90%;
    box-sizing: border-box;
    text-align: center;
    margin: 10px 0 20px;
    padding: 5px 10px 5px;
}

.cate_left {
    display: inline-block;
    width: 100%;
    max-width: 100%;
    vertical-align: top;
    padding: 10px !important;
    height: 260px;
    overflow: hidden;
    box-sizing: border-box;
}

ul#topics {
    width: 90%;
    margin: 0 auto;
    max-width: 960px;
}

.news_block .date {
    text-align: justify;
    color: var(--deepGreen) font-size: 1rem;
}

.news_block {
    margin: 12px 0;
    border-radius: 10px;
    color: #111;
    padding: 1%;
    box-sizing: border-box;
}

.morelink {
    text-align: right;
}

.news_block h3 a {
    color: #111 !important;
}

.morelink a {
    color: #333;
    border: 1px solid var(--deepGreen);
    padding: 0 2rem;
    border-radius: 2rem;
}



/*各固定ページ設定 エディタ内で利用*/

.page_cont {
    max-width: 1080px;
    margin: auto;
    padding: 30px 0 80px;
}

.page_box {
    width: 100%;
    text-align: center;
    margin: 10px auto 15px;
    display: flex;
    gap: 25px;
}

.page_table th,
.page_table td {
    border: 1px solid #ddd;
    box-sizing: border-box;
}

.page_table th {
    background-color: #eee;
}

.page #main h2 {}

/********事業紹介*************/

/********採用情報*************/

/********問合わせ*************/
.contact_table th span {
    background: var(--fontGreen);
    font-size: 80%;
    color: #fff;
    padding: 0 0.2rem;
}

.contact_table .reb_bg {
    background: #e6c550;
    font-size: 80%;
}

.contact_table {
    width: 100%;
    max-width: 850px;
    margin: auto;
}

p.center-flex {
    display: block;
    width: fit-content;
    margin: 0 auto;
}
p.center-flex a {
	font-size:0.9rem;
}

.contact_table td,
.contact_table th {
    padding: 15px 8px;
    font-size: 100%;
    font-weight: bold;
    text-align: left;
}

.contact_table td input {
    margin: 8px;
    font-size: 1rem;
    padding: 5px;
    box-sizing: border-box;
    max-width: 90%;
    border: 3px solid var(--gradLightGreen);
    border-radius: 1rem;
}

.contact_table td {
    padding: 15px 10px;
    font-weight: normal;
}

.contact_table th {
    min-width: 190px;
    text-align: right;
    letter-spacing: 0;
    width: 20%;
}


/********会社概要*************/

.gaiyou,
.enkaku {
    margin: 40px 0 80px;
    letter-spacing: 0;
    font-size: 0.8rem;
}

.gaiyou-tbl tr,
.enkaku-tbl tr {
    border-bottom: 3px solid var(--backGray);
}

.gaiyou-tbl,
.enkaku-tbl {
    width: 100%;
    max-width: 700px;
    margin: auto;
}

.gaiyou th,
.gaiyou td {
    border-bottom: 1px solid var(--light-gray);
    padding: 1rem 0.5rem;
    font-size: 1rem;
}

.gaiyou-tbl th {
    text-align: justify;
    padding-left: 2rem;
}

.gaiyou-tbl a {
	font-size:1rem;
}
.gaiyou th a,
.gaiyou td a {
    padding-bottom: 5px;
    border-bottom: 1px solid var(--navy);
	
}

.gaiyou th {
    font-size: 1rem;
    min-width: 70px;
    text-align: justify;
    vertical-align: middle;
    font-weight: normal;
}

.gaiyou td {}

.enkaku th,
.enkaku td {
    font-size: 1rem;
    min-width: 70px;
    padding: 1rem 0.5rem;
    text-align: left;
    border-bottom: 1px solid var(--light-gray);

}

.map-wrap {
    display: flex;
    justify-content: center;
}

a.info-cont-btn {
    display: block;
    width: fit-content;
    color: var(--deepGreen);
    background: var(--backGray);
    padding: 0.5rem 3rem;
    font-size: 1.2rem;
    font-weight: 600;
    border-radius: 2rem;
    margin: 3rem auto;
    border: 4px solid var(--gradLightGreen);
    transition: 0.3s all linear;
}

a.info-cont-btn:hover {
    transform: translatey(-2px);
    box-shadow: 5px 4px 0px 0px var(--backGray);
}

.enkaku td {}

.enkaku th {
    min-width: 130px;
    text-align: justify;
    font-weight: normal;
    vertical-align: middle;
}

.enkaku-tbl th span,
.enkaku-tbl td span {
    display: block;
}

a.gaiyou-mail {
    background: var(--deepGreen);
    color: #fff;
    padding: 0.5rem 2rem;
    border-radius: 3rem;
    display: flex;
    width: fit-content;
    align-items: center;
}

a.btn-inquiry {
    background: var(--medGreen);
    color: #fff;
    padding: 0.5rem 3rem;
    display: block;
    width: fit-content;
    margin: 0 auto;
    border-radius: 3rem;
}

/*ワードプレス仕様補足スタイル*/
.edit a {
    font-size: 12px;
    background: #007fff;
    color: #fff;
    padding: 1px 3px;
    margin-left: 20px;
    text-decoration: none;
}

img.centered {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

img.alignright {
    padding: 4px;
    margin: 0 0 2px 7px;
    display: inline;
}

img.alignleft {
    padding: 4px;
    margin: 0 7px 2px 0;
    display: inline;
}

.alignright {
    float: right;
}

.alignleft {
    float: left
}

.gallery {
    clear: both;
}

.gallery img {
    border: none !important;
    padding: 5px;
    box-sizing: border-box;
}

/* ここからがIE8以下透過PNG適用のためのCSS */
html>body .sampleBox {
    background-image: url(img/bg.gif);
}

* html .sampleBox {
    filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='img/bg.gif', sizingMethod='scale');
}

.contact-article {
    display: block;
    margin: 0 auto;
    text-align: center;
}

.contact-article span {
    display: block;
}



/* お問い合わせフォーム調整 */
.wpcf7-form {
    padding: 20px 0;
    width: 95%;
    margin: 0 auto;
    border: 3px solid var(--backGray);
    background: #fff;
    border-radius: 1rem;
}

span.wpcf7-list-item-label {
    font-weight: normal;
}

/*ボックスを角丸に指定*/

.wpcf7-form span.hissu {
    color: #aa0000;
    /*必須の文字色指定*/
    font-size: smaller
}

/*文字サイズを一回り小さく*/

.wpcf7-form input {
    width:
}

/*入力フィールド幅*/

.wpcf7-form textarea {
    width: 80%;
    height: 150px;
    border: 3px solid var(--gradLightGreen);
    border-radius: 1rem;
    padding: 1rem;
}

/*テキストエリア幅*/

.wpcf7-form p.submit {
    text-align: left
}

/*送信ボタンの場所*/

.wpcf7-form .wpcf7-submit {
    width: fit-content;
    background: var(--deepGreen);
    color: #fff;
    font-size: 1.3rem;
    border: none;
    display: block;
    margin: auto;
    padding: 0.5rem 2rem;
    border-radius: 4rem;
}

.wpcf7-list-item label {
    display: flex;
    align-items: center;
}

.wpcf7 form.sent .wpcf7-response-output {
    background: #fff;
    display: block;
    width: auto;
    margin: 0 auto;
    border-radius: 2rem;
    color: var(--deepGreen);
    border: 3px solid;
    font-weight: 600;
	text-align:center;
}

/*送信ボタンの横幅指定*/

/*　ロールアップ　*/
#page-top {
    position: fixed;
    bottom: 20px;
    right: 20px;
    font-size: 77%;
    z-index: 100;
}

#page-top a {
    background: url(img/arrow-top.webp) no-repeat #fff;
    background-position: center;
    text-decoration: none;
    width: 45px;
    height: 45px;
    text-indent: -99999px;
    display: block;
    border-radius: 50%;
}

#page-top a:hover {
    width: 45x;
    margin-bottom: 0px;
    height: 45px;
}


/*　スマイルアイコン非表示　*/
img#wpstats {
    position: absolute;
    width: 0px;
    height: 0px;
    padding: 0px;
    border: none;
    overflow: hidden;
}


/*タブ*/

.cp_tab *,
.cp_tab *:before,
.cp_tab *:after {
    box-sizing: border-box;
}

.cp_tab {
    margin: 1em auto;
}

.cp_tab>input[type='radio'] {
    margin: 0;
    padding: 0;
    border: none;
    border-radius: 0;
    outline: none;
    background: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    display: none;
}

.cp_tab .cp_tabpanel {
    display: none;
    width: 100%;
    opacity: 0;
    padding: 0.5em 1em;
    transform: translateY(-10px);
    transition: transform 1.5s, opacity 1.5s;
}

.cp_tab>input:first-child:checked~.cp_tabpanels>.cp_tabpanel:first-child,
.cp_tab>input:nth-child(3):checked~.cp_tabpanels>.cp_tabpanel:nth-child(2),
.cp_tab>input:nth-child(5):checked~.cp_tabpanels>.cp_tabpanel:nth-child(3),
.cp_tab>input:nth-child(7):checked~.cp_tabpanels>.cp_tabpanel:nth-child(4),
.cp_tab>input:nth-child(9):checked~.cp_tabpanels>.cp_tabpanel:nth-child(5),
.cp_tab>input:nth-child(11):checked~.cp_tabpanels>.cp_tabpanel:nth-child(6) {
    display: block;
    opacity: 1;
    background: rgb(255, 255, 255, 0.9);
    color: #333;
    box-sizing: border-box;
    padding: 4%;
}

.cp_tab>label {
    position: relative;
    display: inline-block;
    padding: 15px 20px;
    cursor: pointer;
    border: 1px solid transparent;
    border-bottom: 0;
    background: rgb(200, 200, 200, 0.87);
    color: #fff;
}

.cp_tab>label:hover,
.cp_tab>input:focus+label {
    color: #0066cc;
}

.cp_tab>input:checked+label {
    margin-bottom: 6px;
    font-weight: bold;
    background: rgb(255, 255, 255, 0.9);
    color: #333;
}

.cp_tab .cp_tabpanel {
    padding: 20px 0px;
    border-top: 1px solid #cccccc;
}

div.wpcf7 {
    margin: 0;
    padding: 50px 0 0 0px !important;
}

/* ----- The Pretty Stuff ----- */

* {
    outline: 0;
}


/*ドロップダウンメニューCSS*/
.dropmenu {
    *zoom: 1;
    list-style-type: none;
    /*width: 780px;*/
    padding: 0;
}

.dropmenu:before,
.dropmenu:after {
    content: "";
    display: table;
}

.dropmenu:after {
    clear: both;
}

.dropmenu li {
    position: relative;

}

.dropmenu li a {
    display: block;
}

.dropmenu li ul {
    list-style: none;
    position: absolute;
    z-index: 9999;
    top: 100%;
    left: 0;
    margin: 0;
    padding: 0;
    width: 240px !important;
    border-radius: 5px;
}

.dropmenu li ul li {
    margin: 0px !important;
    background: #fff !important;
    width: 240px !important;
    line-height: 150%;
    opacity: 0.8;
}

.dropmenu li ul li a {
    padding: 10px 5px !important;
    border-top: 1px solid #cccccc;
    text-align: center;
    font-size: 100%;
    letter-spacing: 1px;
    font-weight: normal;
    color: #513F2D;
    width: 230px !important;
}

.dropmenu li:hover>a {
    background: #dddddd;
    color: #ffffff;
}

.dropmenu li a:hover {
    color: #ffffff;
    background: none;
}

.dropmenu li ul li a:hover {
    background: #eeeeee;
    color: #ffffff !important;
}


/*フェードイン*/
.fade-in2 li ul {
    opacity: 0;
    top: 50%;
    visibility: hidden;
    transition: .5s;
    width: 100%;
}

.fade-in2 li:hover ul {
    top: 100%;
    visibility: visible;
    opacity: 1;
}

.fade-in2 li ul li:hover {}

.fade-in2 li ul li a:hover {

    opacity: 1 !important;
}


/*パンくずリスト*/
.breadcrumbs {
    font-size: 80%;
    margin-left: 5px;
    margin-bottom: 15px;
    display: flex;
    align-items: center;
    width: fit-content;
    flex-wrap: wrap;
    color: var(--deepGreen);
}

.breadcrumbs span {
    padding: 0 7px;
    display: flex;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--deepGreen);
    z-index: 5;
    position: relative;
}


.breadcrumbs a.home {
    width: 2rem;
}

.breadcrumbs a {

    display: flex;
    height: 2.5rem;
    flex-direction: column;
    justify-content: center;
}

/*レスポンシブ基本CSS*/

.pcheader {
    display: block;
    min-width: 1260px;
}

.mobileheader {
    display: none !important;
}

.pc {
    display: block;
}

/* .mobile {
    display: none !important;
} */

.mbr {
    display: none;
}

.drawer-hamburger {
    display: none !important;
}

#page #main .now,
.now {
    font-size: 2rem;
    font-weight: bold;
    text-align: center;
    padding: 80px 0;
}


.openbtn1 {
    display: none;
}

@media screen and (max-width: 768px) {
	a {
		font-size:1rem;
	}
.gaiyou-tbl a {
	font-size:0.9rem;
}
    p,
    span {
        font-size: 0.9rem;
    }

    .openbtn1.mobile {
        display: ;
    }
span.catch-copy {
	text-align: left;
	text-shadow: 1px 1px 0px var(--backGray);
	margin-top:0;
	}
    h2.section-title {
        row-gap: 0rem;
        margin: 2rem 0 1rem;
        max-width: 100%;
        font-size: 1.5rem;
    }

    h2.section-title figure img {
        height: 2rem;
    }

    h2.section-title span {
        font-size: 1.2rem;
    }


    span.works-txt {
        margin: 0 auto 2rem;
        display: block;
    }

    #works .swiper {
        margin: 3rem 0 0 auto;
        aspect-ratio: 645 / 320;
    }

    .topics h3 a {
        gap: 0rem;
        flex-direction: column;
    }

    .feature-article {
        gap: 1rem;
        padding: 0;
        margin-top: 2rem;
    }

    .width-cont {
        width: 90%;
        margin: 0 auto;
    }

    .topics ul {
        width: auto;
        margin: 1rem auto;
    }

    .more-link a {
        font-size: 1rem;
    }

    .works-genre {
        font-size: 0.7rem;
        letter-spacing: 0;
        font-weight: normal;
		margin:1rem 0 0;
    }
li.header-sidemenu-item::after {
    position: absolute;
    content: "";
    width: 1.2rem;
    height: 1.2rem;
    left:unset;
	right:50%;
    top: 0;
    transform: translate(50%, 50%);
}

    section#info {
        padding: 5rem 0 3rem;
    }

    section.catch_area {
        margin: 0;
        aspect-ratio: 2/3;
        max-height: unset;
    }

    figure.catch-pattern-fig.catch-pattern3 {
        width: 47%;
        right: 4%;
        bottom: 0%;
        z-index: 20;
    }

    section.main-section {
        padding: 1rem 0;
    }

    span.feature-title {
        font-size: 1.4rem;
    }
	figure.pattern-hero-back {
    top: 36%;
}

    span.product-title {
        font-size: 1.3rem;
    }

    figure.catch-pattern-fig.catch-pattern2 {
        width: 63%;
        top: 50%;
        right: unset;
        left: 0;
    }

    section.feature_area.main-section {
        overflow: hidden;
    }

    .catch-swiper {
        margin-top: 10%;
        width: 100%;
        max-width: 100%;
    }


    .feature-detail span {
        line-height: unset;
    }

    #works .swiper-slide::after {
        width: 0.8rem;
        height: 0.8rem;
        right: 0px;
    }

    article.contact-message {
        margin: 2rem auto;
        display: block;
        width: 90%;
    }

    .topics h3 a {
        gap: 0;
        flex-direction: column;
    }


    a.info-card__btn {
        font-size: 1rem;
        padding: 0.5rem 3rem;
    }

    p.info-card__txt {
        margin: 1rem auto;
    }

    #page #main .now,
    .now {
        font-size: 1.2rem;
    }

    .mbr {
        display: inline-block;
    }

    .pcheader {
        display: none !important;
    }

    .mobileheader {
        display: block !important;
    }

    .pc {
        display: none !important;
    }

    /*     .mobile {
        display: block !important;
    }
 */
    #header,
    #pageheader,
    #wrap,
    #container,
    #footer,
    .slide00,
    .panel_bg,
    .flexslider,
    .catch_area {
        min-width: auto;
        max-width: 100%;
    }

    .two_box,
    .three_box,
    .four_box,
    .five_box,
    .seven_box,
    .six_box {
        max-width: 100%;
        width: 100%;

        margin: 0px;
        box-sizing: border-box;
    }

    #header {
        max-width: 100%;
        min-width: 100%;
    }

    #headercont {
        max-width: 100%;
        min-width: 100%;
        padding: 30px 30px 10px 30px;
        margin: 0px;
        height: auto;
        display: block;
    }

    #top_mainmenu {
        display: none;
    }

    .mobileheader {
        display: block !important;
        width: 100%;
    }

    .longtable {
        overflow-x: scroll;
    }



    #pageheader {
        padding: 5rem 0px 0px;
    }

    #page #main h2 {
        font-size: 1.2rem;
    }

    #list {
        max-width: 100%;
        margin: auto;
    }


    #main_con {
        padding: 5px;
        box-sizing: border-box;
    }


    #main_menu {
        display: none;
    }


    #header h1 {
        display: block;
        height: 35px;
        width: 180px;
        z-index: 10;
    }

    #header h1 a {
        display: block;
        vertical-align: bottom;
        height: 35px;
        width: 180px;
        background-size: contain;
    }

    .pageheader_cont h2 {
        font-size: 1.6rem;
    }

    #page .cont {
        padding: 1.5%;
        box-sizing: border-box;
    }

    #page #wrap {
        padding: 1% 0 0%;
    }


    /*トップページ*/

    .catch-words {
        font-size: clamp(1.8rem, -0.299rem + 8.96vw, 4rem);
        height: 5rem;
        animation: textflow 19s linear infinite;
    }

    .width-cont {
        width: 90%;
        flex-direction: column;
        gap: 0rem;
        padding: 0;
    }

    .recruit-flex .recruit-article-img3 {
        bottom: 25%;
        left: 0;
    }

    section#topics {
        padding: 2rem 0;
    }

    li.info-card {
        max-width: 27rem;
        font-weight: normal;
    }

    li.info-card::after {
        right: 4%;
    }

    ul.info-table {
        justify-content: center;
        margin: 3rem auto 0
    }

    figure.company-figure {
        max-width: 50%;
    }

    .topics .more-link {
        margin: 2rem 0 0 auto;
    }

    #recruit a.rec-btn {
        font-size: 1.1rem;
        margin: 0 auto;
    }

    figure.recruit-img {
        align-self: end;
        width: 55%;
    }

    span.contact-catch {
        font-size: 2.6rem;
    }

    article.recruit-message .recruit-article-img2 {
        transform: translate(0, 50%);
    }

    /* フッター */
    #footer {
        padding: 30px 0;
    }

    #footer .cont {
        flex-direction: column;
        gap: 30px;
        width: 85%;
        align-items: center;
    }

    ul.footer-list {
        font-size: 0.9rem;
    }

    h2.footer-title {
        display: flex;
        align-items: center;
        gap: 0;
        font-size: 1.2rem;
        margin-bottom: 2rem;
        font-weight: 600;
    }

    .footer-logo-big {
        font-size: 1.7rem;
    }

    span.footer-copyright {
        margin: 0 1rem 0 auto;
    }

    ul.footer-work-list li {
        padding: 0 0 0 1.2rem;
        font-size: 0.9rem;
        font-weight: normal;
    }

    figure.footer-title__figure {
        width: 3rem;
        margin-right: 1rem;
    }

    ul.footer-work-list li::before {
        width: 0.5rem;
        height: 0.5rem;
        left: 0;
        bottom: 50%;
        transform: translate(50%, 50%);
    }

    dl.footer-address {
        font-size: 0.9rem;
    }

    .foot_menu {
        text-align: left;
        flex-wrap: wrap;
        width: 87%;
        margin: auto;
        gap: 20px;
    }

    .foot_menu>ul {
        flex-direction: column;
        gap: 10px;
    }

    .foot_menu>ul li {
        font-size: 16px;
    }

    .foot_menu .sns-link {
        gap: 20px;
        margin: 50px auto;
        width: 40%;
    }

    .foot_menu .product-menu {
        padding-left: 20px;
        border-left: 1px solid #999;
    }

    .ft_bottom {
        display: block;
        font-size: 0.6rem;
        text-align: left;
        width: 100%;
        padding: 10%;
    }

    .ft_bottom .footer_logo {
        width: 230px;
    }


    /*カテゴリー・投稿*/

    .cate_block {
        max-width: 90%;
        margin: 10px auto 20px;
        padding: 5px 5px 5px;
        display: block;
    }

    .cat {}

    #page .cate_right {
        vertical-align: top;
        display: inline-block;
        box-sizing: border-box;
        font-size: 12px;
        padding: 10px 3px !important;
        width: 100%;
    }
.breadcrumbs a.home {
    width: 1.5rem;
}

    /* 固定ページ */




    /*お問い合わせ*/
    .contact_table {
        table-layout: fixed;
    }

    #page #main .contact_table p {
        text-align: left;
    }

    #page #main .contact_cont p {
        text-align: center;
        padding: 10px 0 20px;
        margin: 0;
        font-size: 0.80rem;
        letter-spacing: 0;
    }

    .page_cont article {
        padding: 0;
        text-align: left;
    }


    /*その他基本設定*/

    #main {
        box-sizing: border-box;
    }


    .long_table {
        overflow-x: scroll;
    }



    .footmenu ul {
        padding: 10px 0px;
        font-size: 90%;
    }

    .contact_table td,
    .contact_table th,
    .service td,
    .service th {
        display: block;
        text-align: center;
        padding: 0px 0px;
    }

    .product_area .black_link {}

    
}

nav#g-nav {
    display: none;
}

/*========= ナビゲーションのためのCSS ===============*/

@media screen and (max-width: 768px) {
    #g-nav {
        position: fixed;
        top: 0;
        right: 0;
        width: 100%;
        height: 100vh;
        background: url(img/pattern-intro.webp) #EAF5FA no-repeat;
        transition: transform 0.6s ease, opacity 0.3s ease;
        opacity: 0;
        background-size: contain;
        z-index: -1;
        background-position: 0 74%;
        transform: translateX(100%);
    }

    #g-nav h2 {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        font-size: 1.4rem;
        color: var(--gradDeepGreen);
        font-weight: 600;
        aspect-ratio: 7 / 11;
        width: 27%;
        margin: 0 auto;
    }

    #g-nav.panelactive {
        transform: translateX(0%);
        opacity: 1;
        z-index: 999;
    }

    @keyframes menuClose {
        0% {
            transform: translateX(0%);
            opacity: 1;
        }

        100% {
            transform: translateX(100%);
            opacity: 1;
        }
    }

    #g-nav.menu-close {
        animation-name: menuClose;
        animation-duration: 0.6s;
    }

    #g-nav-list {
        width: 100%;
        height: 100%;
        padding: 4rem 1rem;
        box-sizing: border-box;
        position: absolute;
        right: 50%;
        transition: 0.6s all;
        transform: translate(50%, 0);
    }


    #g-nav-list .title {
        font-size: 18px;
    }

    #g-nav-list .title::after {
        bottom: 1px;
        height: 6px;
        width: 25px;
        background-color: #bbb;
    }

    #g-nav-list .links-item {
        width: 45%;
    }

    #g-nav-list .link_area-links {
        gap: 20px;
    }

    #g-nav-list .links-item p {
        font-size: 16px;
        white-space: nowrap;
    }

    #g-nav-list .links-item a {
        gap: 15px;
    }

    .tel-info {
        gap: 20px;
        margin: 3rem auto 1rem;
        text-align: center;
    }

    .tel-info p {
        font-size: 20px;
        white-space: nowrap;
    }

    #g-nav-list .link-box {
        display: block;
        margin: 0 auto;
        width: 80%;
        color: var(--deepGreen);
        text-decoration: none;
        font-size: 1rem;
        padding: 0.5rem 3rem 0.5rem 4rem;
        letter-spacing: 0;
        border: 1px solid var(--gradDeepGreen);
        border-radius: 3rem;
        background: var(--backGray);
        position: relative;
        text-align: center;
        font-weight: 600;
    }

    #g-nav-list .link-box::before {
        position: absolute;
        content: "";
        background: url(img/icon-mail.webp) no-repeat;
        background-size: contain;
        width: 2rem;
        height: 1rem;
        left: 1rem;
        bottom: 50%;
        transform: translate(50%, 50%);
    }

    #g-nav-list .link-box img {
        width: 25px;
    }


    /*ナビゲーション*/
    #g-nav ul {
        margin: 2rem auto;
        max-width: 92%;
        z-index: 999;
        top: 50%;
        left: 50%;
    }

    #g-nav.panelactive ul {
        min-width: auto;
    }

    #g-nav.panelactive .contact_menu {}

    #g-nav.panelactive ul .tel_button {}

    #g-nav.panelactive ul .tel_button a {
        border: none;
        padding: 8px 0;
    }


    #g-nav.panelactive .contact_menu .contact_link {
        position: relative;
        text-align: center;
        background: #111;
        border-radius: 100px;
        display: block;
        padding: 12px 22px;
        color: #fff;
        font-size: 1.3rem;
        font-weight: bold;
        width: 60%;
        margin: auto;
    }

    #g-nav.panelactive .contact_menu .contact_link:before {
        content: "";
        display: inline-block;
        vertical-align: middle;
        width: 38px;
        height: 25px;
        background: url(img/mail_icon.png) no-repeat left;
        background-size: cover;
        margin-right: 12px;

    }

    /*リストのレイアウト設定*/

    #g-nav .menu-title {
        font-size: 25px;
        padding: 0 0 10px 5%;
        font-weight: 700;
    }

    #g-nav .menu-title span {
        display: block;
        font-size: 10px;
        padding-top: 10px;
    }

    #g-nav .menu-items {
        gap: 15px;
    }

    #g-nav .menu-items li {
        list-style: none;
        text-align: center;
        width: auto;
        padding: 10px 5px;
    }

    #g-nav .menu-items li a {
        color: var(--deepGreen);
        text-decoration: none;
        font-size: 1rem;
        padding: 6px 4rem;
        letter-spacing: 0;
        border: 1px solid var(--gradDeepGreen);
        border-radius: 3rem;
        background: var(--backGray);
    }

    #g-nav .tel-info a {
        position: relative;
        background: var(--backGray);
        padding: 0.5rem 3rem 0.5rem 4rem;
        box-sizing: border-box;
        border-radius: 2rem;
        border: 1px solid var(--deepGreen);
        font-weight: 600;
        color: var(--deepGreen);
        width: 80%;
        display: block;
        margin: 0 auto;
    }

    #g-nav .tel-info a::before {
        position: absolute;
        content: "";
        background: url(img/icon-tel.webp) no-repeat;
        background-size: contain;
        width: 1rem;
        height: 1rem;
        left: 2rem;
        bottom: 50%;
        transform: translate(50%, 50%);
    }

    #g-nav .menu-items li a>img {
        max-width: 50px;
        height: 13vw;
    }

    #g-nav .menu-items li a>span {
        font-size: 10px;
        display: block;
    }
	ul.header-sidewrap {
    top: unset;
    bottom: 0;
    writing-mode: horizontal-tb;
    flex-direction: row;
    padding: 0;
		width:100%;
		border-radius: 1rem 1rem 0 0;
        box-shadow: 0px -1px 0px 0px var(--backGray);
}

ul.header-sidewrap a {
    display: block;
    width: max-content;
    margin: 0 auto;
	font-size:1rem;
}

li.header-sidemenu-item {
    padding: 1.7rem 0.2rem 0.2rem;
	flex:1 0 40%;
}
	li.header-sidemenu-item.sidemenu2 {
		border-radius: 0 1rem 0 0;
		border-left:unset;
		border-bottom:unset;
	}
	#page-top {
    bottom: 70px;
	}
	ul.footer-list {
		margin: 0 auto;
	}
	li.footer-list__item a {
		font-size:1rem;
	}
/* } */
    @media screen and (min-width: 768px) {
        #g-nav.panelactive #g-nav-list {
            width: 60%;
        }

        #g-nav .menu-items li {
            width: 22%;
            max-width: 22%;
            height: 150px;
        }

        #g-nav .menu-items li a {
            font-size: 15px;
        }

        #g-nav .menu-items li a>span {
            line-height: 20px;
        }
    }

    /*========= ボタンのためのCSS ===============*/
    .openbtn1 {
        position: fixed;
        z-index: 1000;
        top: 20px;
        right: 3%;
        cursor: pointer;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .openbtn1>figure {
        height: 2rem;
        width: 2rem;
    }

    .openbtn1.mobile.active figure.wind-img {
        display: none;
    }

    .openbtn1.mobile.active figure.wheel-img {
        display: block;
    }

    .openbtn1 figure.wind-img {
        display: block;
    }

    .openbtn1 figure.wheel-img {
        display: none;
    }

    .openbtn1 span {
        font-size: 0.7rem;
    }
	.openbtn1 .menu-letter {
		color:var(--deepGreen);
	}

    .openbtn1 p {
        position: absolute;
        bottom: -30px;
        right: 5px;
        font-size: 14px;
        font-weight: 600;
    }

    .openbtn1 {}

    nav#g-nav {
        display: block;
        z-index: 9998;
    }

    .contact_table td input {}

    .contact_table th {
        text-align: center;
        width: 100%;
    }

    .wpcf7-list-item-label {
        display: flex;
        margin: 0;
        width: 100%;
        justify-content: center;
    }

    .wpcf7-form-control-wrap {
        position: relative;
        flex-wrap: wrap;
        width: 100%;
        display: flex;
        justify-content: center;
    }

    .wpcf7-list-item {
        margin: 0;
    }

    .wpcf7-form .wpcf7-submit {
        font-size: 1.1rem;
    }

    .pageheader_cont h2::after {
        transform: translate(29%, 5%);
        width: 10rem;
    }

    #page #main h2 {
        margin: 0 auto 3rem 1rem;
    }

    .entrytext {
        padding: 1rem 0;
    }

    .info-card-wrap {
        margin-bottom: 3rem;
    }

    #page figure.info-card-img {
        height: unset;
        margin: 1rem 0 2rem;
    }

    #page #main .info-card p {
        margin: 0 0 3rem;
        font-size: 1rem;
        padding: 0 1rem;
    }

    #topics {
        margin: 0 auto;
    }

    .entrytext {
        padding: 1rem 0;
        width: 95%;
        margin: 0 auto;
        font-size: 0.9rem;
    }

    .gaiyou th {
        width: 8rem;
    }

    .gaiyou th,
    .gaiyou td {
        font-size: 0.9rem;
        border-bottom: 1px solid var(--light-gray);
        padding: 0.5rem;
    }

    .enkaku th,
    .enkaku td {
        padding: 1%;
        font-size: 0.9rem;
        text-align: left;
        border-bottom: 1px solid var(--light-gray);

    }

    .enkaku th {
        width: 10rem;
        text-align: center;
    }

    div.catch-pattern-fig.catch-pattern1 {
        width: unset;
        z-index: 40;
    }

    section.feature_area.main-section {
        aspect-ratio: unset;
    }

    figure.feature-img {
        margin-bottom: 5rem;
    }

    figure.feature-img {
        flex: 1 1 38%;
        position: relative;
        margin-bottom: 5rem;
        max-width: 55%;
    }

    figure.feature-img::after {
        width: 13rem;
        bottom: 0;
        right: 0;
        transform: translate(50%, 50%);

    }

    section#topics h2 span {
        font-size: 1.2rem;
    }

    section#topics h2 {
        font-size: 2rem;
    }

    .catch-big {
        font-size: 2rem;

    }}