/*
Theme Name: Lightning Child
Theme URI:
Template: lightning
Description:
Author:Vektor,Inc.
Tags:
Version: 15.34.1
*/

body {
    font-family: "Noto Sans JP", sans-serif;
}

@media screen and (min-width:992px) and (max-width:1199px) {
    .site-header--layout--nav-float .site-header-container {
        display: block;
    }

    .contact-flex {
        justify-content: center;
        margin-bottom: .5em;
    }

    .site-header--layout--nav-float .site-header-logo {
        margin-left: auto;
        margin-right: auto;
    }
}

h1,
h2 {
    border-top: unset;
    --tw-border-opacity: 1;
    border-color: rgb(46 125 50);
    padding-bottom: 0.75rem;
    border-bottom-width: 4px;
    display: table;
    margin-left: auto;
    margin-right: auto;
}

h2 {
    font-size: 2.25rem;
    line-height: 2.5rem;
    color: #82AE46;
    font-weight: 900;
}

h3 {
    transition-duration: 150ms;
}

a:hover h3 {
    color: #82AE46;
}

img {
    transition-duration: 150ms;
}

a:hover img {
    scale: 1.1;
}

@media (max-width: 767px) {
    h2 {
        font-size: 1.875rem
    }
}

/*ヘッダー*/
.site-header--layout--nav-float .site-header-logo a {
    font-size: 1.875rem;
    line-height: 2.25rem;
    letter-spacing: -0.025em;
    font-weight: 900;
}

.site-header-logo a span.com {
    color: #82AE46;
}

.site-description {
    font-size: 0.875rem;
    line-height: 1.25rem;
    color: rgb(107 114 128)
}

.header_scrolled .contact-flex {
    display: none;
}

.contact-flex svg {
    height: 1.5rem;
}

.tell-txt {
    color: rgb(75 85 99);
    font-weight: 700;
    font-size: 0.75rem;
    line-height: 1rem;
    margin-bottom: 0.25rem;
}

.tell-num {
    font-size: 1.5rem;
    line-height: 2rem;
    font-weight: 900;
    margin: auto;
}

.contact-area {
    display: flex;
    gap: 0.5rem;
}

a.download-btn {
    background-color: rgb(211 47 47);
}

a:hover.download-btn {
    background-color: rgb(153 27 27);
}

a.contact-btn {
    background-color: rgb(46 125 50);
}

a:hover.contact-btn {
    background-color: rgb(22 101 52);
}

a.download-btn,
a.contact-btn {
    border-radius: 0.375rem;
    font-weight: 700;
    color: rgb(255 255 255);
    font-size: 0.875rem;
    line-height: 1.25rem;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    gap: 0.5rem;
    align-items: center;
    display: flex;
    transition-duration: 150ms;
}

.tx-shadow {
    --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
    --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.page-header {
    background-color: rgb(248 250 252);
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    min-height: auto;
    padding-top: 0.5rem;
    padding-bottom: 2rem;
}

.page-header-title,
h1.page-header-title {
    color: #82AE46;
    font-weight: 900;
    border-left: 4px solid rgb(46 125 50);
    font-size: 2.25rem;
    line-height: 2.5rem;
    padding: 0 0 0 1rem;
    margin: 0;
}

.page-header span.post-cat {
    color: #FFF;
    margin-top: 0;
    font-weight: 700;
    font-size: 0.75rem;
    line-height: 1rem;
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    margin-bottom: 0.75rem;
    border-radius: 9999px;
    display: inline-block;
}

.single .page-header {
    text-align: left;
}
.grecaptcha-badge {
    z-index: 1000 !important;
}
@media (min-width: 992px) {
    .contact-flex {
        display: flex;
        align-items: center;
        gap: 1.5rem;
    }

    .site-header--layout--nav-float .site-header-container {
        justify-content: space-between;
    }

    .site-header--layout--nav-float .site-header-logo {
        width: auto;
        padding: 0;
    }
}

@media (max-width: 991.98px) {

    .contact-flex,
    span.site-description {
        display: none;
    }
    .grecaptcha-badge {
    /* 最下部からの距離を調整（例：上に80px上げる場合） */
    bottom: 80px !important; 
    
    /* 右側からの距離を調整（例：左に動かす場合） */
}
}

/*グローバルメニュー*/
.global-nav--layout--float-right {
    --tw-bg-opacity: 1;
    background-color: #E8F5E3;
}

.global-nav-list>li .global-nav-name {
    font-size: 1.125rem;
}

.nav li a,
nav li a {
    color: #000;
    line-height: 1.75rem;
    font-weight: 700;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    height: 100%;
    display: block;
}

.nav li.current_page_item a,
nav li.current_page_item a,
nav li.current-menu-item a {
    background-color: #FFF;
    color: #82AE46;
}

li a:hover {
    color: #82AE46;
    background-color: rgb(255, 255, 255);
}

body:not(.header_scrolled) .global-nav--layout--float-right>li a:hover {
    background-color: rgb(255, 255, 255);
}

@media (min-width: 992px) {
    body:not(.header_scrolled) .global-nav--layout--float-right {
        justify-content: center;
    }

    .header_scrolled .global-nav-list {
        justify-content: center;
        margin: auto;
    }

    .nav li a,
    nav li a {
        background-color: #E8F5E3;
    }

    li a:hover {
        color: #82AE46;
        background-color: rgb(255, 255, 255);
    }
}

@media (max-width: 991.98px) {
    .site-header-logo {
        padding-left: 1em;
    }
}


/*KV*/
.ltg-slide picture img {
    height: 70vh;
    object-fit: cover;
}

.ltg-slide-text-set.mini-content {
    filter: drop-shadow(0 20px 13px rgb(0 0 0 / 0.03)) drop-shadow(0 8px 5px rgb(0 0 0 / 0.08));
}

.ltg-slide-text-title {
    font-size: 3.75rem;
    line-height: 1.1;
    font-weight: 900;
    text-shadow: 1px 1px 10px rgb(255 255 255 / 1), -1px 1px 10px rgb(255 255 255 / 1), 1px -1px 10px rgb(255 255 255 / 1), -1px -1px 10px rgb(255 255 255 / 1);

}

.ltg-slide-text-caption {
    font-size: 2.5rem;
    font-weight: bold;
    text-shadow: 1px 1px 10px rgb(255 255 255 / 1), -1px 1px 10px rgb(255 255 255 / 1), 1px -1px 10px rgb(255 255 255 / 1), -1px -1px 10px rgb(255 255 255 / 1);

}

.ltg-slide-text-title span {
    color: rgb(130 174 70/ var(--tw-text-opacity, 1));
    text-shadow: 1px 1px 10px rgb(255 255 255 / 1), -1px 1px 10px rgb(255 255 255 / 1), 1px -1px 10px rgb(255 255 255 / 1), -1px -1px 10px rgb(255 255 255 / 1);
}

.ltg-slide picture {
    position: relative;
    display: block;
    /* または block, flex などレイアウトに合わせて */
    width: 100%;
    height: 100%;
}

/* 擬似要素で画像の上にグラデーションを被せる */
.ltg-slide picture::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    /* ここでグラデーションを指定 */
    background-image: linear-gradient(to right, rgb(15 37 75 / 0.7), rgb(15 37 75 / 0.2), rgb(15 37 75 / 0));
    /* グラデーション越しに画像をクリック・選択できるようにする */
    pointer-events: none;
}

.mini-content-container-1 .btn {
    border-radius: 9999px;
    padding-left: 2rem;
    padding-right: 2rem;
    padding-top: 1rem;
    padding-bottom: 1rem;
    font-size: 1.125rem;
    line-height: 1.75rem;
    background-color: rgb(255 255 255) !important;
    color: #82AE46 !important;
    font-weight: 700;
    border-color: #82AE46 !important;
}

.mini-content-container-1 .btn:hover {
    color: rgb(255 255 255) !important;
    background-color: #82AE46 !important;
    border: 1px solid #82AE46 !important;
}

@media (max-width: 767px) {

    .ltg-slide-text-title,
    .ltg-slide-text-caption {
        font-size: 1.875rem;
    }
}

/*パンくずリスト*/
.breadcrumb {
    background-color: rgb(248 250 252);
    border-bottom: none;
    padding-top: 1.5rem;
}

.breadcrumb-list li:after {
    content: "＞";
}

.page-header-inner {
    margin-top: 0;
    margin-bottom: 0;
}

body.single .breadcrumb-list>li:nth-child(3) {
    display: none;
}

body.single-download .breadcrumb-list>li:nth-child(3) {
    display: inline-block;
}

/*フッター*/
.site-footer {
    background-color: #013220;
    color: #FFF;
    border-top: unset;
}

.site-footer h3,
.site-footer h3::after {
    border-bottom: unset;
    padding: 0;
}

.site-footer-copyright p:nth-child(2) {
    display: none;
}

.footer-access {
    font-size: 0.875rem;
    color: rgb(209 213 219);
}

.footer-contact {
    position: relative;
    padding-bottom: 4rem;
    padding-top: 4rem;
    overflow: hidden;
}

.footer-contact h2 {
    border-bottom-width: 0;
    font-size: 1.875rem;
    line-height: 2.25rem;
    margin-bottom: 1rem;
    text-align: center;
}

.footer-contact-box {
    z-index: 10;
    position: relative;
}

.footer-tell-area {
    text-align: center;
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
    padding-left: 2rem;
    padding-right: 2rem;
    max-width: 24rem;
    width: 100%;
}

.footer-contact-flex {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 2rem;
    margin-bottom: 2.5rem;
}

.footer-contact-flex svg {
    height: 1.5rem;
}

img.footer-bg {
    position: absolute;
    max-width: 100%;
    width: 100%;
    height: 100%;
    object-fit: cover;
    inset: 0px;
}

.footer-overlay {
    position: absolute;
    background: linear-gradient(to right, rgb(113 127 31 / 0.7), rgb(113 127 31 / 0.9));
    inset: 0px;
}

.footer-contact .tell-num {
    font-size: 1.875rem;
    line-height: 2.25rem;
    margin-bottom: 0.5rem;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.5rem;
}

.footer-contact .tell-num svg {
    width: 2rem;
    height: 2rem;
    color: rgb(31 41 55);
}

.tell-time {
    font-size: 0.75rem;
    line-height: 1rem;
    margin-bottom: 0;
    color: rgb(107 114 128);
}

.footer-contact .download-btn,
.footer-contact .contact-btn {
    font-size: 1.125rem;
    line-height: 1.75rem;
    padding-top: 1.25rem;
    padding-bottom: 1.25rem;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    justify-content: center;
}

.footer-contact .contact-area {
    flex-direction: column;
    max-width: 24rem;
    width: 100%;
}

.site-footer-content {
    border-bottom: 1px solid rgb(55 65 81);
    padding-bottom: 2rem;
}

.site-footer-content a.company_link {
    color: #FFF;
}

.site-footer-content a:hover.company_link {
    opacity: 0.6;
}

@media (max-width: 767px) {
    .footer-contact-flex {
        gap: 2rem;
        justify-content: center;
        align-items: center;
        flex-direction: column;
    }

    .footer-contact-box {
        display: flex;
        justify-content: center;
        align-items: center;
        flex-direction: column;

    }
}

/*フッターナビゲーション*/
ul#menu-footer-nav a {
    color: rgb(209 213 219);
    font-size: 0.875rem;
    line-height: 1.25rem;
}

ul#menu-footer-nav a:hover {
    color: #FFF;
}

ul#menu-footer-nav {
    display: inline-grid;
    column-gap: 2em;
    grid-template-columns: repeat(2, auto);
}

/*フローティングバナー*/
.floating-bnr {
    flex-direction: column;
    position: fixed;
    right: 0px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1050;
    gap: 0.5rem;
    display: none;
}

.floating-bnr a {
    writing-mode: vertical-rl;
    text-orientation: upright;
    border-radius: 0.5rem 0 0 0.5rem;
    font-size: 1.125rem;
    line-height: 1.75rem;
    padding: 1.5rem 0.75rem;
    transition-duration: 150ms;
}

.floating-bnr a:hover {
    transform: translateX(-0.25rem);
}

.floating-bnr-mobile {
    display: flex;
    width: 100%;
    z-index: 30;
    left: 0px;
    bottom: 0px;
    position: fixed;
    box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
}

.floating-bnr-mobile a {
    width: 50%;
    border-radius: 0;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    font-size: 0.875rem;
    line-height: 1.25rem;
    padding-top: 1rem;
    padding-bottom: 1rem;
    border-color: rgb(255 255 255 / 0.2);
}

.floating-bnr-mobile svg {
    width: 1.25rem;
    height: 1.25rem;
}

@media (min-width: 1280px) {
    .floating-bnr-mobile {
        display: none;
    }

    .floating-bnr {
        display: flex;
    }
}

/*カテゴリ選択*/
.select-cat {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1.25rem;
    padding-bottom: 1.5rem;
    margin-bottom: 3rem;
    border-bottom-width: 1px;
    overflow-x: auto;
    scrollbar-width: none;
    border-bottom: 1px solid rgb(209 213 219);
}

.select-cat button {
    font-size: 1.125rem;
    line-height: 1.75rem;
    transition-duration: 150ms;
    box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
    font-weight: 700;
    padding-left: 2rem;
    padding-right: 2rem;
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    background-color: #E8F5E3;
    border-radius: 9999px;
    border: 0px;
}

.select-cat button:hover {
    background-color: #E2EDCF;
}

.select-cat button:focus {
    background-color: #82AE46 !important;
    color: #FFF;
}

.bg-selected {
    background-color: #82AE46 !important;
    color: #FFF !important;
}

/*一覧*/
.post-section {
    padding-top: 5rem;
    padding-bottom: 5rem;
}

.post-section#service {
    padding-top: 3.5rem;
    padding-bottom: 5rem;
    background-color: rgb(248 250 252);
}

.post-section#column {
    background-color: rgb(248 250 252);
}

.post-list {
    display: grid;
    gap: 2rem;
    margin-bottom: 5rem;
}

.post-list a {
    transition-duration: 300ms;
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
    overflow: hidden;
    animation: fadeIn 0.5s ease-in-out;
    transition-duration: 300ms;
}

.post-list#service a {
    border-radius: 0.5rem;
    background-color: #FFF;
}

.post-list#service a:hover {
    transform: translateY(-0.5rem);
}

#service .post-cat {
    display: flex;
    gap: 0.25rem;
    justify-content: center;
}

.post-img {
    background-color: rgb(229 231 235);
    overflow: hidden;
    height: 12rem;
    position: relative;
}

.post-img img {
    transition-duration: 500ms;
    object-fit: cover;
    width: 100%;
    height: 100%;
    max-width: 100%;
    display: block;
    vertical-align: middle;
}

.post-detail {
    text-align: center;
    padding: 1.5rem;
    background-color: #FFF;
}

.post-detail span.post-cat {
    font-weight: 700;
    font-size: 0.75rem;
    line-height: 1rem;
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    margin-bottom: 0.75rem;
    border-radius: 9999px;
    display: inline-block;
}

.post-detail h3 {
    color: #013220;
    font-weight: 700;
    font-size: 1.25rem;
    line-height: 1.75rem;
    margin: 0;
    padding: 0;
    border-bottom: 0;
}

.post-detail h3::after {
    border-bottom: 0;
}

.post-archive {
    margin-top: 3rem;
    text-align: center;
}

.post-archive a {
    color: rgb(255 255 255);
    background-color: #82AE46;
    border: 1px solid #82AE46;
    font-weight: 700;
    transition-duration: 150ms;
    padding-top: 1rem;
    padding-bottom: 1rem;
    padding-left: 2.5rem;
    padding-right: 2.5rem;
    border-radius: 9999px;
    align-items: center;
    display: inline-flex;
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
}

.post-archive a:hover {
    background-color: rgb(255 255 255);
    color: #82AE46;
}

.post-list#case {
    gap: 1.5rem;
}

.post-list#case a {
    box-shadow: none;
    border: 1px solid rgb(229 231 235);
    border-radius: 0.25rem;
        background-color: rgb(248 250 252);
}

.post-list#case a:hover {
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
}

.post-list#case .post-img {
    height: 10rem;
}

.post-list#case .post-detail {
    padding: 1rem;
    text-align: left;
    font-size: 0.75rem;
    line-height: 1rem;
    background-color: rgb(248 250 252);
}

.single-case .post-list#case .post-detail {
    background-color: #FFF;
}

.post-list#case .post-detail h3 {
    font-weight: 700;
    height: 3.5rem;
    overflow: hidden;
    margin-bottom: 0.75rem;
}

.single-case .post-list#case .post-detail h3 {
    height: auto;
    padding-left: 0;
}

.case-meta p {
    margin: 0;
}

a.post-item:hover p {
    color: #82AE46;
}

.post-list#column {
    gap: 1.5rem;
}

.post-list#column a {
    box-shadow: none;
    border: 1px solid rgb(229 231 235);
    border-radius: 0.5rem;
}

.post-list#column a:hover {
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
}

.post-list#column .post-cat span {
    font-weight: 700;
    font-size: 0.75rem;
    line-height: 1rem;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
    border-radius: 0.25rem;
    z-index: 10;
    position: absolute;
    top: 0.5rem;
    left: 0.5rem;
}

.post-list#column .post-img {
    height: 10rem;
}

.post-list#column .post-detail {
    text-align: left;
    padding: 1rem;
}

.post-list#column .post-detail h3 {
    line-height: 1.375;
    font-size: 0.875rem;
    height: 3.5rem;
    margin: 0;
}

@media (min-width: 768px) {
    .post-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1024px) {
    .post-list#service {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .post-list {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/*商品・サービス詳細*/
.single-service section#first {
    padding-top: 0;
    padding-bottom: 3rem;
}

.single-service .post-section#service {
    background-color: #FFF;
    padding-bottom: 0;
}

.single-service section {
    padding-top: 3rem;
    padding-bottom: 3rem;
}

.single-service .features #flex {
    display: flex;
    gap: 2em;
    align-items: center;
}

.single-service .features #flex #image,
.single-service .features #flex #txt {
    width: 50%;
}

.single-service .features #flex #image img {
    box-shadow: 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
    border-radius: 0.5rem;
    object-fit: cover;
    width: 100%;
}

.single-service #flex {
    display: flex;
    gap: 1.5rem;
    align-items: stretch;
    justify-content: center;
}

.single-service .trouble h2#red {
    border-color: rgb(211 47 47);
}

.single-service .trouble #flex #box {
    border-top: 4px solid rgb(211 47 47);
    border-radius: 0.75rem;
    padding: 2rem;
    text-align: center;
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
    background-color: #FFF;
    width: calc(100% / 3);
}

.single-service .trouble #flex #box h3 {
    color: rgb(31 41 55);
    font-weight: 700;
    font-size: 1.25rem;
    line-height: 1.75rem;
    margin: 0;
    margin-bottom: 1rem;
}

.single-service .trouble #flex #box h3,
.single-service .trouble #flex #box h3::after {
    border-bottom-width: 0;
}

.single-service .trouble #flex #box p {
    text-align: left;
    margin: 0;
    line-height: 1.625;
    font-size: 0.875rem;
    color: rgb(75 85 99);
}

section#trouble {
    position: relative;
    padding-top: 3rem;
    padding-bottom: 6rem;
}

.bg-gray {
    background-color: rgb(248 250 252);
    margin-left: calc(-50vw + 50%);
    margin-right: calc(-50vw + 50%);
}

.single-service .arrow#absolute {
    display: block;
    position: absolute;
    left: 50%;
    bottom: -2rem;
    z-index: 20;
    transform: translateX(-50%);
}

.single-service .arrow #circle {
    color: rgb(255 255 255);
    background-color: rgb(211 47 47);
    border: 4px solid #FFF;
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
    border-radius: 9999px;
    padding: 0.75rem;
    animation: bounce 1s infinite;
}

.single-service .arrow #circle svg {
    display: block;
    vertical-align: middle;
}

section#solution {
    background-color: #013220;
    margin-left: calc(-50vw + 50%);
    margin-right: calc(-50vw + 50%);
}

.single-service section#solution h2 {
    color: #FFF;
    border-bottom: 0px;
    margin-bottom: 0;
    text-align: center;
}

.single-service section#solution h2 span {
    color: rgb(74 222 128);
}

.single-service section#example #flex {
    margin: auto;
}

.single-service section#example #flex #box {
    width: calc(100% / 3);
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}

.single-service section#example #flex img {
    height: 14rem;
    object-fit: cover;
    border-radius: 0.5rem;
    margin-bottom: 1rem;
    box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
}

.single-service section#example #flex p {
    color: rgb(15 37 75);
    font-weight: 700;
    text-align: center;
}

.single-service section#list #flex {
    width: 100%;
    border-radius: 0.5rem;
    border: 1px solid #e5e7eb;
    margin-bottom: 1.5rem;
    overflow: hidden;
    background-color: #FFF;
}

.single-service section#list #flex #image {
    width: 30%;
}

.single-service section#list #flex #image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    vertical-align: middle;
}

.single-service section#list #flex #txt {
    padding: 1.5rem;
    width: 70%;
}

.single-service section#list #flex #txt h3 {
    font-size: 1.125rem;
    line-height: 1.75rem;
    font-weight: 700;
    border-bottom: 0;
    margin-bottom: 0.75rem;
}

.single-service section#list #flex #txt h3::after {
    border-bottom: 0;
}

.single-service section#list #flex #txt p {
    color: rgb(75 85 99);
    margin-bottom: 0;
    line-height: 1.625;
    font-size: 0.875rem;
}

.single-service section#list a.contact-btn {
    font-size: 16px;
    background-color: #82AE46;
    border-radius: 9999px;
    align-items: center;
    margin-top: 3rem;
    margin-bottom: 3rem;
    padding-top: 1rem;
    padding-bottom: 1rem;
    padding-left: 2.5rem;
    padding-right: 2.5rem;
    display: inline-flex;
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
    border: 1px solid #82AE46;
}

.single-service section#list a:hover.contact-btn {
    background-color: #FFF;
    color: #82AE46;
}

.page-header-cat {
    display: flex;
    gap: 0.25rem;
}

@keyframes bounce {

    0%,
    100% {
        transform: translateY(-25%);
        animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
    }

    50% {
        transform: none;
        animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
    }
}

.single-service .arrow svg {
    width: 2rem;
    height: 2rem;
}

@media (max-width: 767px) {

    .single-service .features #flex,
    .single-service #flex,
    .single-service section#example #flex #box {
        display: block;
    }

    .single-service .features #flex #image,
    .single-service .features #flex #txt,
    .single-service section#example #flex img,
    .single-service section#example #flex #box,
    .single-service section#list #flex #image,
    .single-service section#list #flex #txt {
        width: 100%;
    }

    .single-service .features #flex #image,
    .single-service .trouble #flex #box {
        margin-bottom: 2em;
    }
    .single-service .trouble #flex #box {
        width: 100%;
    }
}

/*事例・実績*/
.single-case section#features {
    padding-top: 0;
    padding-bottom: 3rem;
}

.single-case section {
    padding-top: 3rem;
    padding-bottom: 3rem;
}

.single-case #flex {
    display: flex;
    gap: 1.5rem;
    align-items: center;
    justify-content: center;
}

.single-case #flex #image {
    width: 60%;
}

.single-case #flex #image img {
    object-fit: cover;
    width: 100%;
    height: auto;
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
    border-radius: 0.5rem;
}

.single-case #flex #table {
    width: 40%;
}

.single-case #flex #table table,
.single-case #flex #table th,
.single-case #flex #table td {
    border: 0px;
}

.single-case #flex #table table {
    text-align: left;
}

.single-case #flex #table th {
    color: rgb(107 114 128);
    font-weight: 700;
    font-size: 0.875rem;
    line-height: 1.25rem;
    padding-top: 1rem;
    padding-bottom: 1rem;
    width: 33%;
}

.single-case #flex #table td {
    color: rgb(31 41 55);
    font-size: 1rem;
    font-weight: 700;
    padding-top: 1rem;
    padding-bottom: 1rem;
}

.single-case #flex #table tr {
    border: 0px;
    border-bottom: 1px solid rgb(229 231 235);
}

.single-case h3 {
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 2rem;
    border-bottom: 0;
    border-left: 4px solid #FFF;
    padding-left: 1rem;
    padding-bottom: 0;
    margin-bottom: 1.5rem;
    display: flex;
    align-items: center;
}

.single-case h3::after {
    border-bottom: 0;
}

.single-case h3#red {
    border-color: rgb(211 47 47);
}

.single-case h3#green {
    border-color: rgb(46 125 50);
}

section#detail #task {
    margin-bottom: 3rem;
}

section#detail #task p {
    color: rgb(55 65 81);
    padding: 2rem;
    line-height: 1.625;
    background-color: rgb(249 250 251);
    border-radius: 0.5rem;
}

section#detail #propose p {
    color: rgb(55 65 81);
    padding: 2rem;
    line-height: 1.625;
    background-color: #E8F5E3;
    border-radius: 0.5rem;
}

.single-case #example #box {
    position: relative;
    overflow: hidden;
    border-radius: 0.5rem;
    width: 25%;
}

.single-case #example img {
    object-fit: cover;
    width: 100%;
    height: 12rem;
    display: block;
    vertical-align: middle;
}

.single-case #example p {
    position: absolute;
    background-color: rgb(0 0 0 / 0.6);
    color: #FFF;
    width: 100%;
    font-size: 0.75rem;
    padding: 0.5rem;
    margin-bottom: 0;
    line-height: 1rem;
    left: 0px;
    bottom: 0px;
}

.single-case #list a {
    position: relative;
    background-color: #FFF;
}

.single-case #list .post-cat-absolute {
    z-index: 10;
    position: absolute;
    top: 0.5rem;
    left: 0.5rem;
    width: max-content;
}

.single-case #list .post-cat-absolute .flex{
        display: flex;
        gap: 0.25rem;
    flex-wrap: wrap;
    width: 80%;
}

.single-case #list .post-cat {
    font-weight: 700;
    font-size: 0.75rem;
    line-height: 1rem;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
    margin-bottom: 0;
    border-radius: 9999px;
    white-space: nowrap;
    width: max-content;
}
.post-type-archive-case .post-cat{
        display: flex;
    gap: 0.25rem;
    flex-wrap: wrap;
    margin-bottom: .5em;
}

.post-type-archive-case .post-detail span.post-cat{
    margin-bottom: 0;
}
@media (min-width: 768px) {
    .single-case #list .post-list#case {
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }
}

@media (min-width: 1024px) {
    .single-case #list .post-list#case {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.single-case section#list a.contact-btn {
    font-size: 16px;
    background-color: #E8F5E3;
    color: #82AE46;
    border-radius: 9999px;
    align-items: center;
    padding-top: 1rem;
    padding-bottom: 1rem;
    padding-left: 2.5rem;
    padding-right: 2.5rem;
    display: inline-flex;
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
}

.single-case section#list a:hover.contact-btn {
    background-color: #E2EDCF;
}

@media (max-width: 767px) {
    .single-case #flex {
        display: block;
    }

    .single-case #flex #image,
    .single-case #flex #table,
    .single-case #example #box {
        width: 100%;
    }

    .single-case #example #box {
        margin-bottom: 1em;
    }
    .single-case #list .post-cat-absolute .flex{
    width: 100%;
}
}

/*お役立ち情報一覧*/
.post-type-archive-column .post-section#column {
    background-color: #FFF;
}

.page-header-inner span {
    display: block;
    color: rgb(75 85 99);
    text-align: left;
    line-height: 1.625;
    margin-top: 1rem;
}

.post-type-archive-column .post-list#column,
.single-column .post-list#column {
    grid-template-columns: auto;
}

.post-type-archive-column .post-list#column a,
.single-column .post-list#column a {
    display: flex;
    width: 80%;
    margin-left: auto;
    margin-right: auto;
    min-height: 200px;
}

.post-type-archive-column .post-list#column a h3,
.single-column .post-list#column a h3 {
    font-size: 1.25rem;
    height: auto;
    margin-bottom: 0.75rem;
}

.post-type-archive-column .post-list#column a p,
.single-column .post-list#column a p {
    font-size: 0.875rem;
    line-height: 1.625;
    color: rgb(75 85 99);
    margin-bottom: 0;
    transition-duration: 150ms;
}

.post-type-archive-column .post-list#column a:hover p,
.single-column .post-list#column a:hover p {
    color: #82AE46;
}

.post-type-archive-column .post-list#column .post-img,
.single-column .post-list#column .post-img {
    width: 40%;
    min-height: 100%;
    overflow: hidden;
}

.post-type-archive-column .post-list#column .post-detail,
.single-column .post-list#column .post-detail {
    width: 60%;
    padding: 1.5rem;
}

.post-type-archive-column .post-list#column .post-cat,
.single-column .post-list#column .post-cat {
    position: static;
    margin-bottom: 0.75rem;
}

.single-column section#list a.contact-btn {
    font-size: 16px;
    background-color: #E8F5E3;
    color: #82AE46;
    border-radius: 9999px;
    align-items: center;
    padding-top: 1rem;
    padding-bottom: 1rem;
    padding-left: 2.5rem;
    padding-right: 2.5rem;
    display: inline-flex;
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
}

.single-column section#list a:hover.contact-btn {
    background-color: #E2EDCF;
}

@media (max-width: 767px) {

    .post-type-archive-column .post-list#column,
    .single-column .post-list#column {
        display: block;
    }

    .post-type-archive-column .post-list#column a,
    .single-column .post-list#column a {
        display: block;
        width: 100%;
        margin-bottom: 2em;
    }

    .post-type-archive-column .post-list#column .post-img,
    .single-column .post-list#column .post-img,
    .post-type-archive-column .post-list#column .post-detail,
    .single-column .post-list#column .post-detail {
        width: 100%;
    }
}

/*お役立ち情報詳細*/
.single-column .post-section#column {
    background-color: #FFF;
}

.single-column section#features {
    padding-top: 0;
    padding-bottom: 3rem;
}

.single-column section {
    padding-top: 3rem;
    padding-bottom: 3rem;
}

.single-column section#features #image {
    border-radius: 0.75rem;
    overflow: hidden;
    margin-bottom: 2.5rem;
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
}

.single-column section#features #image img {
    width: 100%;
    object-fit: cover;
    max-height: 500px;
    height: auto;
    display: block;
    vertical-align: middle;
}

.single-column section#features #txt p {
    color: rgb(31 41 55);
    line-height: 1.625;
    font-size: 1.125rem;
    margin-bottom: 1.5em;
}

.single-column section#toc {
    padding: 2rem;
    background-color: rgb(249 250 251);
    border: 1px solid rgb(229 231 235);
    border-radius: 0.5rem;
}

.single-column section#toc p {
    margin-bottom: 1.5em;
    color: rgb(15 37 75);
    font-weight: 700;
    font-size: 1.25rem;
    line-height: 1.75rem;
    gap: 0.5rem;
    align-items: center;
    display: flex;
}

.single-column section#toc svg {
    width: 1.5rem;
    height: 1.5rem;
    display: block;
    vertical-align: middle;
}

.single-column section#toc ul {
    margin: 0;
}

.single-column section#toc li {
    list-style: none;
    color: rgb(37 99 235);
    text-decoration: inherit;
}

.single-column section#toc li a {
    color: rgb(37 99 235);
    text-decoration: inherit;
    font-weight: 700;
}

.single-column section#toc li a:hover {
    text-decoration: underline;
}

.single-column section.sec h2 {
    display: block;
    font-size: 1.875rem;
    line-height: 2.25rem;
    font-weight: 700;
    padding-left: 1rem;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    background-color: rgb(249 250 251);
    border-left: 4px solid rgb(46 125 50);
    border-bottom: 0;
}

.single-column section.sec p {
    color: rgb(31 41 55);
    line-height: 1.625;
    font-size: 1.125rem;
}

/*私たちの特徴*/
.page-id-87 .site-body figure.wp-block-media-text__media {
    box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
    border-radius: 0.5rem;
}

.page-id-87 .site-body img {
    position: relative;
    object-fit: cover;
    border-radius: 0.5rem;
}

.page-id-87 .site-body figure:before {
    position: absolute;
    z-index: 1;
    background-color: rgb(46 125 50);
    color: #FFF;
    border-radius: 0.5rem 0 0.5rem;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    padding-left: 1rem;
    padding-right: 1rem;
    font-size: 1.25rem;
    line-height: 1.75rem;
    font-weight: 900;
}

.page-id-87 .site-body .features-img1 figure:before {
    content: "特徴01";
}

.page-id-87 .site-body .features-img2 figure:before {
    content: "特徴02";
}

.page-id-87 .site-body .features-img3 figure:before {
    content: "特徴03";
}

.page-id-87 .site-body h3,
.page-id-87 .site-body h3:after {
    border: 0px;
    color: #82AE46;
    margin-top: 2em;
}

.page-id-87 .site-body p {
    color: rgb(75 85 99);
}

@media (min-width: 768px) {
    .page-id-87 .site-body h3 {
        font-size: 1.875rem;
        line-height: 2.25rem;
        font-weight: 700;
        border: 0px;
        margin-top: 0;
    }
}

/*資料ダウンロード*/
.post-type-archive-download .post-list {
    display: flex;
    flex-wrap: wrap;
}

.post-type-archive-download p.information {
    color: rgb(75 85 99);
    line-height: 1.625;
    font-size: 1.125rem;
    margin-bottom: 2.5rem;
}

.post-type-archive-download .post-list a {
    display: flex;
    border-radius: 0.5rem;
    border: 1px solid rgb(229 231 235);
}

.post-type-archive-download .post-list a:hover {
    box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
}

.post-type-archive-download .post-list svg {
    height: 1.5rem;
}

.post-type-archive-download .post-img {
    padding: 1em;
    width: 30%;
    height: auto;
}

.post-type-archive-download .post-detail {
    padding: 2em;
    width: 70%;
    display: flex;
    justify-content: space-between;
    flex-direction: column;
}

.post-type-archive-download .post-detail h3,
.post-type-archive-download .post-detail p {
    transition-duration: 150ms;
    text-align: left;
    margin-bottom: 1rem;
}

.post-type-archive-download .post-list a:hover .post-detail h3 {
    color: #82AE46;
}

.post-type-archive-download .post-detail .download-btn {
    background-color: rgb(211 47 47);
    color: #FFF;
    border: 1px solid rgb(211 47 47);
    border-radius: 9999px;
    font-weight: 700;
    font-size: 0.875rem;
    line-height: 1.25rem;
    padding-left: 2rem;
    padding-right: 2rem;
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    gap: 0.5rem;
    align-items: center;
    display: inline-flex;
    transition-duration: 150ms;
    box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
    width: fit-content;
    margin: auto;
}

.post-type-archive-download .post-list a:hover .post-detail .download-btn {
    color: rgb(211 47 47);
    background-color: #FFF;
}

.selected-download-info {
    display: flex;
    align-items: center;
    width: 100%;
    gap: 1.5rem;
    border: 1px solid #e5e7eb;
    background-color: rgb(248 250 252);
    border-radius: 0.5rem;
    padding: 1.5rem;
    margin-bottom: 3rem;
}

.selected-download-info #image {
    width: 30%;
    padding: 0.5rem;
    border: 1px solid rgb(229 231 235);
    border-radius: 0.25rem;
    background-color: #FFF;
}

.selected-download-info #txt {
    width: 70%;
}

.selected-download-info #txt span {
    color: rgb(46 125 50);
    border: 1px solid rgb(46 125 50);
    border-radius: 0.25rem;
    display: inline-block;
    font-size: 0.75rem;
    line-height: 1rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
}

.selected-download-info #txt h3 {
    border-bottom: 0;
    line-height: 1.25;
    font-weight: 700;
    font-size: 1.25rem;
    margin-bottom: 0.75rem;
}

.selected-download-info #txt h3::after {
    border-bottom: 0;
}

.selected-download-info #txt p {
    margin-bottom: 0;
    line-height: 1.625;
    font-size: 0.875rem;
}

@media (max-width: 767px) {
    .post-type-archive-download .post-list a {
        display: block;
    }

    .post-type-archive-download .post-img {
        width: 100%;
    }

    .post-type-archive-download .post-detail {
        width: 100%;
    }

    .selected-download-info {
        display: block;
    }

    .selected-download-info #image {
        width: 100%;
        margin-bottom: 1em;
    }

    .selected-download-info #txt {
        width: 100%;
    }
}

/*お問い合わせ*/
.required-label,
.optional-label {
    color: white;
    font-size: 0.7rem;
    padding: 0.1rem 0.4rem;
    border-radius: 0.25rem;
    margin-left: 0.5rem;
    vertical-align: middle;
    font-weight: 700;
}

.required-label {
    background-color: #D32F2F;
}

.optional-label {
    background-color: #9CA3AF;
}

.form_flex {
    display: flex;
    align-items: center;
}

.input_flex {
    display: flex;
    gap: 1rem;
}

.label_area {
    width: calc(100% / 3);
    padding: 1.5rem;
    background-color: rgb(243 244 246);
    display: flex;
    align-items: center;
    height: stretch;
    font-weight: 700;
}

.input_area {
    width: calc(100% - 100% / 3);
    padding: 1.5rem;
}

.input_area input,
.input_area textarea {
    margin: 0;
}

.input_area p,
.label_area p {
    margin-bottom: 0;
}

.form_privacy {
    padding: 2rem;
    box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
    margin-top: 4rem;
}

.form_privacy p {
    font-size: 0.875rem;
    line-height: 1.25rem;
    color: rgb(75 85 99);
}

.form_privacy h3 {
    border: 0px;
    font-size: 1.125rem;
    line-height: 1.75rem;
    margin-bottom: 0.5rem;
}

.form_privacy h3:after {
    border: 0px;
}

.privacy_scroll {
    line-height: 1.625;
    padding: 1.5rem;
    background-color: rgb(249 250 251);
    border-radius: 0.25rem;
    overflow-y: scroll;
    height: 16rem;
    font-size: 0.875rem;
}

.privacy_scroll p {
    margin-bottom: 0.5rem;
}

.privacy_scroll h4 {
    background-color: unset;
    margin-bottom: 0.5rem;
    padding: 0;
    font-size: 0.875rem;
    line-height: 1.625;
}

input[type=submit] {
    background-color: rgb(211 47 47);
    color: #FFF;
    border: 1px solid rgb(211 47 47);
    border-radius: 9999px;
    font-weight: 700;
    font-size: 1.25rem;
    line-height: 1.75rem;
    padding-left: 4rem;
    padding-right: 4rem;
    padding-top: 1rem;
    padding-bottom: 1rem;
    gap: 0.5rem;
    align-items: center;
    display: inline-flex;
    transition-duration: 150ms;
    box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
    width: fit-content;
    margin: auto;
    margin-top: 3rem;
    margin-bottom: 2rem;
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
}

input[type=submit]:not(:disabled):hover {
    color: rgb(211 47 47);
    cursor: pointer;
    background-color: #FFF;
}

.wpcf7-spinner {
    display: none !important;
}

.wpcf7-acceptance span {
    font-size: 1.125rem;
    line-height: 1.75rem;
    color: rgb(15 37 75);
    font-weight: 700;
}

.wpcf7-acceptance input {
    width: 1rem;
    height: 1rem;
}

input[type=file] {
    width: 100%;
}

@media (max-width: 767px) {
    .form_flex {
        display: block;
    }

    .label_area,
    .input_area {
        width: 100%;
    }
}