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

/*
Theme Name: Twenty Seventeen Child
Template: twentyseventeen
Version: 1.0
*/

/* ====================================
共通コンテンツ幅
==================================== */

.site-content{
    padding-top:0;
}

.wrap{
    padding-top:0;
}

.container{
    max-width:1600px;
    margin:0 auto;
    padding:0 30px;
}

.site-content-contain{
    padding-top:0;
}

.single-case .site-content,
.post-type-case .site-content{
    padding-top:0;
}

.single-case .site-content .wrap,
.post-type-case .site-content .wrap{
    padding-top:0;
}

/*====================================
sectionのカラー
====================================*/

.reason-section,
.works-section,
.flow-section{
    background:#fbfaf6;
}

.service-section,
.about-section,
.faq-section{
    background:#fff;
}

/*====================================
font
====================================*/

body{
    font-family:"Yu Gothic", "Hiragino Kaku Gothic ProN", sans-serif;
}

h1,
h2,
h3,
.section-title,
.hero__title{
    font-family:"Noto Serif JP", serif;
}

/*====================================
page heading
====================================*/

.page-heading{
    padding:0 0 60px;
    background:#f7faf4;
    text-align:center;
}

.page-heading__content{
    width:480px;
    margin-left:0;
    padding-left:20px;
}

.page-heading .section-title{
    margin-bottom:22px;
}

.page-heading .section-title h1{
    margin:0;
    padding:10px;
    color:#3d2d20;
    font-size:38px;
    line-height:1.5;
    font-weight:600;
    font-family:"Noto Serif JP", serif;
}

.page-heading .section-title h1::after{
    content:"";
    display:block;
    width:48px;
    height:3px;
    background:#2f7d42;
    margin:18px auto 0;
}

.page-heading__lead{
    max-width:760px;
    margin:0 auto;
    font-size:15px;
    line-height:2.2;
    letter-spacing:.04em;
    color:#4d4a45;
}

.page-heading--image{
    position:relative;
    overflow:hidden;
    padding:0;
    min-height:420px;
    display:flex;
    align-items:center;
}

.page-heading--image .container{
    position:relative;
    z-index:10;
    display:flex;
    justify-content:flex-start;
    align-items:center;
    width:100%;
    height:420px;
}

.page-heading__image{
    position:absolute;
    top:0;
    right:0;
    bottom:0;
    left:34%;
}

.page-heading__image img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center center;
}

.page-heading__overlay{
    position:absolute;
    inset:0;
    background:linear-gradient(
        90deg,
        #fff 0%,
        #fff 34%,
        rgba(255,255,255,.96) 42%,
        rgba(255,255,255,.82) 48%,
        rgba(255,255,255,.45) 56%,
        rgba(255,255,255,0) 64%
    );
}

.page-heading--image .section-title{
    text-align:left;
    margin-bottom:24px;
}

.page-heading--image .section-title h1::after{
    margin:18px 0 0;
}

.page-heading--image .page-heading__lead{
    margin:0;
    text-align:left;
    max-width:none;
}


/*====================================
header
====================================*/

.custom-menu-toggle{
    display:none;
}

.custom-site-header{
    position:relative;
    z-index:2;
    background:#fff;
    padding:18px 0 16px;
    border-bottom:1px solid rgba(61,45,32,.08);
}

.custom-header-inner{
    max-width:870px;
    margin:0 auto;
    padding:0 40px;
    display:flex;
    align-items:center;
    justify-content:space-between;
}

.custom-header-logo{
    flex-shrink:0;
}

.custom-header-logo img{
    max-height:105px;
    width:auto;
    display:block;
}

.custom-header-contact{
    margin-left:auto;
    text-align:right;
}

.custom-header-tel{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:8px;
    color:#3d342d;
    font-family:"Noto Serif JP", serif;
    font-size:30px;
    font-weight:600;
    letter-spacing:.04em;
    line-height:1.2;
    text-decoration:none;
}

.custom-header-tel:hover{
    color:#2f7d42;
}

.custom-phone-icon{
    display:block;
    width:22px;
    height:22px;
    flex-shrink:0;
}

.custom-header-time{
    margin:8px 0 0;
    text-align:right;
    color:#5a5148;
    font-size:14px;
    line-height:1.6;
    letter-spacing:.04em;
}

/*====================================
navigation
====================================*/

.navigation-top{
    width:100%;
    max-width:none;
    margin:0;
    background:#fff;
    position:static !important;
    z-index:1;
    clear:both;
    border-top:1px solid rgba(61,45,32,.10);
    border-bottom:1px solid rgba(61,45,32,.16);
    box-shadow:0 8px 18px rgba(41,32,24,.035);
}

.navigation-top .wrap{
    max-width:1400px;
    margin:0 auto;
}

.navigation-top .main-navigation{
    text-align:center;
}

.navigation-top .menu{
    display:flex !important;
    justify-content:center !important;
    align-items:center;
    gap:0;
}

.navigation-top .menu > li{
    position:relative;
}


.navigation-top .menu > li > a{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:54px;
    padding:0 22px;
    color:#3d342d;
    font-family:"Noto Serif JP", serif;
    font-size:15px;
    font-weight:500;
    letter-spacing:.08em;
    text-decoration:none;
}

.navigation-top .menu > li > a:hover{
    color:#2f7d42;
    background:#f7faf4;
}


.navigation-top .sub-menu{
    background:#fff;
    border:1px solid rgba(61,45,32,.12);
    box-shadow:0 10px 24px rgba(41,32,24,.08);
}

.navigation-top .sub-menu a{
    font-family:"Noto Serif JP", serif;
    font-size:15px;
    font-weight:500;
    color:#3d2d20;
    letter-spacing:.08em;
    line-height:1.8;
}

.navigation-top .sub-menu a:hover{
    color:#2f7d42;
    background:#f7faf4;
}

.navigation-top .sub-menu a,
.navigation-top .sub-menu li > a{
    background:#fff;
    transition:background-color .2s,color .2s;
}

.navigation-top .sub-menu a:hover,
.navigation-top .sub-menu li:hover > a,
.navigation-top .sub-menu .current-menu-item > a{
    background:#f7faf4;
    color:#2f7d42;
}

/*====================================
hero
====================================*/

.hero{
    position:relative;
    min-height:500px;
    background:#fff;
    overflow:hidden;
    display:flex;
    align-items:center;
}

.hero__image{
    position:absolute;
    top:0;
    right:0;
    width:56%;
    height:100%;
    background:url("./assets/images/hero_main.jpg") center center / cover no-repeat;
}

.hero__image::before{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(
        90deg,
        #fff 0%,
        rgba(251,250,246,.96) 12%,
        rgba(251,250,246,.72) 32%,
        rgba(251,250,246,.18) 56%,
        rgba(251,250,246,0) 100%
    );
}

.hero__image::after{
    content:"";
    position:absolute;
    inset:18px;
    border:1px solid rgba(255,255,255,.55);
    pointer-events:none;
}

.hero__inner{
    position:relative;
    z-index:2;
    width:100%;
    max-width:1400px;
    margin:0 auto;
    padding:56px 40px;
}

.hero__content{
    max-width:660px;
}

.hero__title{
    margin:0 0 26px;
    color:#3d2d20;
    font-size:40px;
    line-height:1.65;
    font-weight:500;
    letter-spacing:.08em;
}

.hero__text{
    margin:0;
    color:#4a4037;
    font-size:15px;
    line-height:2.1;
    letter-spacing:.04em;
}

.hero__links{
    margin-top:36px;
}

.hero__links a{
    display:inline-flex;
    align-items:center;
    color:#2f7d42;
    font-family:"Noto Serif JP", serif;
    font-size:17px;
    font-weight:500;
    letter-spacing:.06em;
    text-decoration:none;
    transition:.25s;
}

.hero__links a::after{
    content:"→";
    margin-left:10px;
    font-size:18px;
    transition:.25s;
}

.hero__links a:hover{
    color:#1d5b2d;
}

.hero__links a:hover::after{
    transform:translateX(4px);
}

/*====================================
top
====================================*/

.top-page{
    color:#253025;
    background:#fff;
    line-height:1.8;
}

.top-section{
    padding:70px 5%;
}

/*====================================
section title
====================================*/

.section-title{
    text-align:center;
    margin-bottom:20px;
}

.section-title span{
    display:block;
    color:#7fa36f;
    font-size:14px;
    letter-spacing:.16em;
    text-transform:uppercase;
    margin-bottom:8px;
}

.section-title h2{
    color:#3d2d20;
    font-size:32px;
    margin:0;
    padding:10px;
}

.section-title h2::after{
    content:"";
    display:block;
    width:48px;
    height:3px;
    background:#2f7d42;
    margin:18px auto 0;
}

.section-title--left{
    text-align:left;
    margin-bottom:26px;
}

.section-title--left h2::after{
    margin-left:0;
}

.section-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:24px;
    margin-bottom:40px;
}

.section-head .section-title{
    text-align:left;
    margin-bottom:0;
}

.section-head .section-title h2::after{
    margin-left:0;
}

.more-link{
    display:inline-block;
    color:#2f7d42;
    border:1px solid rgba(61,45,32,.16);
    background:#fff;
    padding:10px 22px;
    border-radius:999px;
    text-decoration:none;
    font-weight:bold;
    white-space:nowrap;
    box-shadow:0 8px 20px rgba(61,45,32,.08);
    transition:.25s ease;
}

.more-link:hover{
    background:#fff;
    border-color:#7fa36f;
    color:#2f7d42;
    box-shadow:0 10px 24px rgba(127,163,111,.18);
    transform:translateY(-2px);
}

/*====================================
reason
====================================*/

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

.reason-card{
    display:flex;
    flex-direction:column;
    background:#fff;
    border-radius:12px;
    padding:24px;
    box-shadow:0 10px 28px rgba(0,0,0,.04);
}

.reason-card h3{
    color:#174f2a;
    font-size:21px;
    margin:0 0 12px;
}

.reason-card p{
    font-size:14px;
    line-height:1.8;
    margin:0;
    color:#333;
}

.reason-image{
    margin-top:auto;
    padding-top:20px;
}

.reason-image img{
    width:100%;
    height:145px;
    object-fit:cover;
    display:block;
    border-radius:6px;
}


/*====================================
service top
====================================*/

.service-grid{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:28px;
}

.service-item{
    display:grid;
    grid-template-columns:1fr 1fr;
    background:#fff;
    border:1px solid rgba(61,45,32,.10);
    border-radius:4px;
    overflow:hidden;
    text-decoration:none;
    color:#333;
    box-shadow:0 14px 36px rgba(41,32,24,.06);
    transition:box-shadow .35s ease, border-color .35s ease;
}

.service-item:hover{
    transform:none;
    box-shadow:0 20px 50px rgba(41,32,24,.10);
    border-color:rgba(61,45,32,.15);
}

.service-content{
    position:relative;
    padding:34px 32px;
    background:#fbfaf6;
}

.service-content::before{
    content:"";
    display:block;
    width:34px;
    height:1px;
    background:#2f7d42;
    margin-bottom:22px;
}

.service-content h3{
    margin:0 0 16px;
    font-size:26px;
    line-height:1.4;
    color:#3d2d20;
    letter-spacing:.04em;
}

.service-content p{
    font-size:15px;
    line-height:2;
    letter-spacing:.03em;
    color:#4a4037;
    margin:0;
}

.service-image{
    overflow:hidden;
}

.service-image img{
    width:100%;
    height:100%;
    min-height:230px;
    object-fit:cover;
    display:block;
    filter:saturate(.92) contrast(.98);
    transition:transform .45s ease, filter .45s ease;
}

.service-item:hover .service-image img{
    transform:scale(1.045);
    filter:saturate(.98) contrast(1);
}

/*====================================
about
====================================*/

.about-overlap{
    position:relative;
    display:grid;
    grid-template-columns:44% 56%;
    align-items:center;
    gap:0;
    margin-top:50px;
}

.about-text{
    position:relative;
    z-index:2;
    width:auto;
    padding:0 56px 0 0;
    background:transparent;
    border:none;
    border-radius:0;
    box-shadow:none;
}

.about-text::before{
    display:none;
}

.about-text::after{
    content:"SHIKI ZOUEN";
    position:absolute;
    left:-8px;
    top:72px;
    writing-mode:vertical-rl;
    font-family:"Noto Serif JP", serif;
    font-size:11px;
    letter-spacing:.22em;
    color:rgba(47,125,66,.28);
}

.about-text p{
    max-width:620px;
    font-size:15px;
    line-height:2.25;
    letter-spacing:.04em;
    margin:0;
    color:#3d342d;
    font-weight:500;
}

.about-text .about-lead{
    font-family:"Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
    font-size:24px;
    line-height:1.9;
    letter-spacing:.08em;
    color:#234b31;
    font-weight:600;
    margin-bottom:28px;
    padding-left:28px;
}

.about-text .about-lead + p{
    padding-left:28px;
}

.about-photo{
    position:relative;
    z-index:1;
    width:100%;
    top:auto;
    right:auto;
    border-radius:0;
    overflow:hidden;
    box-shadow:none;
}

.about-photo::before{
    content:"";
    position:absolute;
    inset:18px;
    border:1px solid rgba(255,255,255,.65);
    z-index:2;
    pointer-events:none;
}

.about-photo img{
    display:block;
    width:100%;
    height:430px;
    object-fit:cover;
    object-position:center 45%;
    filter:saturate(.9) contrast(.98);
}


/*====================================
flow
====================================*/

.flow-timeline{
    position:relative;
    display:grid;
    grid-template-columns:repeat(6, 1fr);
    gap:24px;
    width:100%;
    max-width:none;
    margin:0;
}

.flow-timeline::before{
    content:"";
    position:absolute;
    left:6%;
    right:6%;
    top:61px;
    height:1px;
    background:rgba(61,45,32,.12);
    z-index:0;
}

.flow-card{
    display:flex;
    flex-direction:column;
    position:relative;
    z-index:1;
    background:#fff;
    border:1px solid rgba(61,45,32,.08);
    border-radius:4px;
    padding:30px 22px 28px;
    text-align:left;
    box-shadow:0 8px 24px rgba(0,0,0,.05);
}

.flow-step{
    display:inline-block;
    padding:0;
    background:transparent;
    color:#3d2d20;
    border-radius:0;
    font-family:"Noto Serif JP", serif;
    font-size:13px;
    font-weight:600;
    letter-spacing:.08em;
    margin-bottom:18px;
}

.flow-step::after{
    content:"";
    display:block;
    width:28px;
    height:1px;
    background:rgba(47,125,66,.55);
    margin-top:10px;
}

.flow-icon{
    display:flex;
    justify-content:center;
    align-items:center;
    margin:18px 0;
}

.flow-icon img{
    width:74px;
    height:74px;
    object-fit:contain;
    display:block;
    opacity:.82;
}

.flow-card h3{
    font-size:18px;
    line-height:1.6;
    margin:0 0 18px;
    color:#3d2d20;
    letter-spacing:.04em;
    text-align:center;
}

.flow-card p{
    font-size:14px;
    line-height:2;
    letter-spacing:.03em;
    margin:0;
    color:#4a4037;
    text-align:left;
}


/*====================================
top responsive
====================================*/


/* ====================================
トップページ よくあるご質問
==================================== */

.faq-section .container{
    max-width:1600px;
}

.faq-section .section-head{
    margin:0 0 34px;
    align-items:center;
}

.top-faq-list{
    margin:0;
}

.top-faq-item{
    position:relative;
    background:#fff;
    border:1px solid rgba(61,45,32,.08);
	border-radius:4px;
    box-shadow:0 14px 36px rgba(41,32,24,.06);
	transition:.35s ease;
    margin-bottom:16px;
    padding:0;
}

.top-faq-item:hover{
    box-shadow:0 20px 50px rgba(41,32,24,.10);
}

.top-faq-item::before{
    content:"";
    position:absolute;
    left:0;
    top:0;
    bottom:0;
    width:3px;
    background:#2f7d42;
}

.top-faq-question,
.top-faq-answer{
    display:grid;
    grid-template-columns:38px 1fr;
    gap:14px;
    align-items:start;
}

.top-faq-question{
    padding:22px 28px 12px;
    background:#fff;
    border-bottom:none;
}

.top-faq-answer{
    padding:0 28px 24px;
}

.top-faq-question span,
.top-faq-answer span{
    display:block;
    width:auto;
    height:auto;
    border-radius:0;
    background:none;
    border:none;
    font-family:"Noto Serif JP", serif;
    font-size:18px;
    font-weight:600;
    line-height:1.5;
}

.top-faq-question span{
    align-items:center;
    color:#2f7d42;
}

.top-faq-answer span{
    color:#8a7a6b;
}

.top-faq-question h3{
    margin:0;
    padding:0;
    color:#3d2d20;
    font-family:"Noto Serif JP", serif;
    font-size:18px;
    font-weight:500;
    line-height:1.6;
    letter-spacing:.04em;
}

.top-faq-answer-text{
    color:#4a4037;
    font-size:14px;
    line-height:1.9;
    letter-spacing:.03em;
}

.top-faq-answer-text p{
    margin:0;
}


/*====================================
works card common
====================================*/

.works-grid{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:36px;
    max-width:1100px;
}

.works-card{
    background:#fff;
    border:1px solid rgba(40,71,52,.14);
}

.works-card a{
    display:block;
    color:inherit;
    text-decoration:none;
}

.works-card__image{
    overflow:hidden;
    aspect-ratio:3 / 2;
}

.works-card__image img{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:.45s ease;
}

.works-card:hover .works-card__image img{
    transform:scale(1.04);
}

.works-card__body{
    padding:22px 24px 24px;
}

.works-card__cat{
    display:inline-block;
    margin:0 0 12px;
    padding:4px 12px;
    font-size:13px;
    color:#2f6b43;
    border:1px solid rgba(47,107,67,.35);
}

.works-card__title{
    padding:0;
    margin:0;
    font-size:21px;
    line-height:1.6;
    color:#2b241f;
}

.works-card__tags{
    display:flex;
    flex-wrap:wrap;
    gap:8px 12px;
    margin-top:16px;
}

.works-card__tags span{
    font-size:13px;
    color:#666;
}

.works-card__tags span::before{
    content:"#";
    color:#7b9a7d;
}


/*====================================
case single
====================================*/

.case-detail-page{
    background:#fff;
    color:#3d342d;
}

.case-heading-section{
    padding:35px 0 25px;
    background:#fff;
}

.case-heading-section .section-title{
    margin-bottom:0;
}

.case-heading-section .section-title h1{
    color:#3d2d20;
    font-family:"Noto Serif JP", "Yu Mincho", serif;
    font-size:38px;
    line-height:1.6;
    letter-spacing:.08em;
    font-weight:500;
    margin:0;
    padding:10px;
}

.case-heading-section .section-title h1::after{
    content:"";
    display:block;
    width:48px;
    height:3px;
    background:#2f7d42;
    margin:18px auto 0;
}

.case-heading-lead{
    max-width:760px;
    margin:0 auto;
    text-align:center;
    font-size:15px;
    line-height:2.2;
    letter-spacing:.04em;
    color:#5a5148;
}

.case-ba-section{
    padding:20px 0 90px;
    background:#fff;
}

.case-ba-grid{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:34px;
}

.case-ba-card{
    position:relative;
    overflow:hidden;
    background:#fff;
    border:1px solid rgba(61,45,32,.08);
    box-shadow:0 14px 36px rgba(41,32,24,.06);
}

.case-ba-card span{
    position:absolute;
    left:0;
    top:0;
    z-index:2;
    background:rgba(61,45,32,.86);
    color:#fff;
    padding:10px 20px;
    font-size:14px;
    letter-spacing:.08em;
}

.case-ba-card img{
    display:block;
    width:100%;
    height:420px;
    object-fit:cover;
    filter:saturate(.94) contrast(.98);
}

.case-info-section{
    padding:0 0 90px;
    background:#fff;
}

.case-info-card{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    background:#fbfaf6;
    border:1px solid rgba(61,45,32,.08);
    box-shadow:0 24px 70px rgba(41,32,24,.06);
    padding:50px 58px;
}

.case-info-item{
    padding:0 42px;
}

.case-info-item + .case-info-item{
    border-left:1px solid rgba(61,45,32,.10);
}

.case-info-item h2{
    font-family:"Noto Serif JP", "Yu Mincho", serif;
    color:#3d2d20;
    font-size:22px;
    font-weight:500;
    margin:0 0 18px;
}

.case-info-item h2::after{
    content:"";
    display:block;
    width:30px;
    height:1px;
    background:rgba(47,125,66,.45);
    margin-top:14px;
}

.case-info-item p{
    font-size:14px;
    line-height:2.15;
    letter-spacing:.04em;
    color:#4a4037;
    margin:0;
}

.case-body-section{
    padding:90px 0 80px;
    background:#f7faf4;
}

.case-body-layout{
    display:grid;
    grid-template-columns:30% 1fr;
    gap:70px;
    align-items:start;
}

.case-body-text{
    background:#fff;
    border:1px solid rgba(61,45,32,.08);
    padding:46px 54px;
    font-size:15px;
    line-height:2.35;
    letter-spacing:.04em;
    color:#4a4037;
}

.case-body-text p{
    margin-top:0;
    margin-bottom:1.8em;
}

.case-body-text p:last-child{
    margin-bottom:0;
}

.case-nav-section{
    padding:50px 0 100px;
    background:#fff;
}

.case-nav{
    display:flex;
    justify-content:center;
    align-items:center;
}

.case-nav a{
    color:#2f7d42;
    text-decoration:none;
    font-weight:600;
}

.case-nav-prev{
    text-align:left;
}

.case-nav-next{
    text-align:right;
}

.case-back-link{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;

    border:1px solid rgba(47,125,66,.45);
    border-radius:999px;
    padding:12px 30px;
    background:#fff;
    color:#2f7d42;
    text-decoration:none;
    font-weight:600;
    transition:.25s ease;
}

.case-back-link::before{
    content:"←";
    font-size:15px;
    line-height:1;
    transition:transform .25s ease;
}

.case-back-link:hover{
    background:#f7faf4;
    color:#2f7d42;
}

.case-back-link:hover::before{
    transform:translateX(-3px);
}

.single-case .single-featured-image-header,
.single-case .single-featured-image-header img,
.post-type-case .single-featured-image-header,
.post-type-case .single-featured-image-header img{
    display:none !important;
}

.case-photo-title{
    margin-bottom:28px;
    font-family:"Noto Serif JP", serif;
    font-size:26px;
    font-weight:600;
    color:#3d342d;
    text-align:center;
}

.case-after-only{
    max-width:900px;
    margin:0 auto;
}

.case-gallery-section{
    padding:0 0 36px;
}

.case-gallery-content{
    max-width:980px;
    margin:-24px auto 0;
    color:#3d342d;
    line-height:2;
}

.case-gallery-content .wp-block-gallery{
    margin:20px 0 0;
}

.case-gallery-content figure{
    margin-top:0;
    margin-bottom:0;
}

.case-gallery-content img{
    border-radius:12px;
}


/*====================================
case category / tag
====================================*/

.case-category-section{
    padding:20px 0 40px;
}

.case-category-box{
    border-top:1px solid #ddd;
    padding-top:24px;
}

.case-category-title{
    display:block;
    margin-bottom:12px;
    font-size:13px;
    letter-spacing:.08em;
    color:#777;
}

.case-category-list{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.case-category-list a{
    display:inline-block;
    padding:6px 14px;
    border:1px solid #ccc;
    font-size:13px;
    color:#333;
    text-decoration:none;
}

.case-category-list + .case-category-title{
    margin-top:22px;
}

.case-category-list a:hover{
    background:#f7faf4;
    border-color:rgba(47,125,66,.45);
    color:#2f7d42;
}

/*====================================
service archive
====================================*/

.service-page{
    margin-top:0;
    padding-top:0;
    background:#fff;
}

.service-list-grid{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:40px;
}

.service-list-card{
    display:grid;
    grid-template-columns:1fr 1fr;
    background:#fff;
    border:1px solid rgba(61,45,32,.10);
    border-radius:4px;
    color:inherit;
    text-decoration:none;
    overflow:hidden;
    box-shadow:0 14px 36px rgba(41,32,24,.06);
    transition:box-shadow .35s ease, border-color .35s ease;
}

.service-list-card:hover{
    box-shadow:0 20px 50px rgba(41,32,24,.10);
    border-color:rgba(61,45,32,.15);
}

.service-list-card__image{
    overflow:hidden;
    min-height:280px;
}

.service-list-card__image img{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:.45s ease;
}

.service-list-card:hover .service-list-card__image img{
    transform:scale(1.05);
}

.service-list-card__body{
    padding:36px 34px;
    display:flex;
    flex-direction:column;
    justify-content:center;
}

.service-list-card__body h3{
    margin:0 0 18px;
    font-size:26px;
    color:#2b241f;
}

.service-list-card__body p{
    margin:0;
    line-height:1.9;
    color:#555;
}

.service-list-card__body span{
    margin-top:28px;
    color:#2f6b43;
    font-weight:700;
    font-size:14px;
}

.service-work-section{
    background:#f6f7f2;
}

.service-work-lead{
    margin:0 0 36px;
    text-align:center;
    line-height:2;
    color:#555;
}

.service-work-grid{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:14px;
    max-width:1100px;
    margin:0 auto;
}

.service-work-grid div{
    background:#fff;
    padding:22px 12px;
    text-align:center;
    border:1px solid rgba(40,71,52,.1);
    color:#2b241f;
    font-weight:600;
}

.service-work-grid div:hover{
    background:#edf4ec;
}


/*====================================
service detail
====================================*/

.service-detail-page{
    background:#fff;
}

.recommend-section{
    background:#fff;
}

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

.recommend-card{
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    background:#fff;
    border-radius:12px;
    min-height:360px;
    overflow:hidden;
    box-shadow:0 10px 28px rgba(0,0,0,.04);
}

.recommend-card::before{
    display:none;
}

.recommend-card__text{
    padding:28px 24px 18px;
}

.recommend-card__text h3{
    margin:0 0 14px;
    color:#2b241f;
    font-size:17px;
    line-height:1.75;
}

.recommend-card__text p{
    margin:0;
    color:#5a5148;
    line-height:1.9;
    letter-spacing:.03em;
}

.recommend-card__image{
    margin-top:auto;
    overflow:hidden;
    padding:0 18px 18px;
}

.recommend-card__image img{
    width:100%;
    height:170px;
    object-fit:contain;
    display:block;
}

.service-detail-menu{
    background:#fbfaf6;
}

.detail-card-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:28px;
}

.detail-card{
    background:#fff;
    border:1px solid rgba(61,45,32,.10);
    box-shadow:0 14px 36px rgba(41,32,24,.06);
    padding:30px 28px;
}

.detail-card h3{
    margin:0 0 16px;
    color:#3d2d20;
    font-size:21px;
    line-height:1.6;
}

.detail-card h3::after{
    content:"";
    display:block;
    width:34px;
    height:1px;
    background:rgba(47,125,66,.35);
    margin-top:14px;
}

.detail-card p{
    margin:0;
    color:#4a4037;
    font-size:14px;
    line-height:2;
}


/*====================================
works archive
====================================*/

/* 見出し */
.works-archive-page .page-heading{
    padding:90px 0 70px;
    background:#fff;
    text-align:center;
}

.works-archive-page .page-heading .section-title{
    margin-bottom:28px;
    text-align:center;
}

.works-archive-page .page-heading .section-title h1{
    margin:0;
    padding:10px;
    color:#3d2d20;
    font-size:38px;
    line-height:1.5;
    font-weight:600;
    font-family:"Noto Serif JP", serif;
}

.works-archive-page .page-heading .section-title h1::after{
    content:"";
    display:block;
    width:48px;
    height:3px;
    background:#2f7d42;
    margin:18px auto 0;
}

.works-archive-page .page-heading__lead{
    max-width:760px;
    margin:0 auto;
    text-align:center;
    font-size:15px;
    line-height:2.2;
    letter-spacing:.04em;
    color:#4d4a45;
}

/* カテゴリーフィルター */
.works-filter-section{
    padding:34px 0 20px;
    background:#fff;
}

.works-filter{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:12px;
}

.works-filter a{
    display:inline-block;
    padding:10px 22px;
    border:1px solid rgba(47,125,66,.35);
    border-radius:999px;
    background:#fff;
    color:#2f6b43;
    font-size:14px;
    font-weight:600;
    text-decoration:none;
    transition:.3s;
}

.works-filter a:hover{
    background:#f7faf4;
    border-color:#2f7d42;
}

/* 一覧 */
.works-list-section{
    padding:50px 0 90px;
    background:#fff;
}

.works-archive-grid{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:38px;
    max-width:1180px;
    margin:0 auto;
}

.works-archive-card{
    background:#fff;
    border:1px solid rgba(61,45,32,.10);
    box-shadow:0 14px 36px rgba(41,32,24,.06);
    transition:.35s;
}

.works-archive-card:hover{
    box-shadow:0 20px 50px rgba(41,32,24,.10);
}

.works-archive-card a{
    display:block;
    color:inherit;
    text-decoration:none;
}

.works-archive-card__image{
    overflow:hidden;
    aspect-ratio:3 / 2;
    background:#f7faf4;
}

.works-archive-card__image img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:.45s;
}

.works-archive-card:hover .works-archive-card__image img{
    transform:scale(1.04);
}

.works-archive-card__body{
    padding:26px 28px 30px;
}

.works-archive-card__cat{
    display:inline-block;
    margin-bottom:14px;
    padding:5px 13px;
    border:1px solid rgba(47,107,67,.35);
    color:#2f6b43;
    font-size:13px;
    line-height:1.4;
}

.works-archive-card__title{
    margin:0 0 14px;
    padding:0;
    color:#2b241f;
    font-family:"Noto Serif JP", serif;
    font-size:22px;
    line-height:1.6;
    font-weight:500;
}

.works-archive-card__text{
    margin:0 0 18px;
    color:#5a5148;
    font-size:14px;
    line-height:2;
    letter-spacing:.03em;
}

.works-archive-card__tags{
    display:flex;
    flex-wrap:wrap;
    gap:8px 12px;
    margin-top:18px;
}

.works-archive-card__tags span{
    font-size:13px;
    color:#666;
}

.works-archive-card__tags span::before{
    content:"#";
    color:#7b9a7d;
}

.works-archive-card__more{
    display:inline-block;
    margin-top:24px;
    color:#2f7d42;
    font-size:14px;
    font-weight:700;
}

.works-archive-card__more::after{
    content:" →";
}

/* ====================================
施工事例 ページ送り 共通
==================================== */

.works-pagination{
    margin:60px auto 0;
    display:flex;
    justify-content:center;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
}

.works-pagination .nav-links{
    display:flex !important;
    justify-content:center !important;
    align-items:center !important;
    gap:10px !important;
    flex-wrap:wrap !important;
}

.works-pagination .page-numbers{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    min-width:46px !important;
    height:46px !important;
    margin:0 !important;
    padding:0 18px !important;
    border-radius:999px !important;
    background:#fff !important;
    border:1px solid rgba(61,45,32,.16) !important;
    color:#3d342d !important;
    font-size:14px !important;
    font-weight:500 !important;
    line-height:1 !important;
    text-decoration:none !important;
    box-shadow:0 8px 20px rgba(61,45,32,.08) !important;
    transform:none !important;
    transition:.25s ease !important;
}

.works-pagination a.page-numbers:hover{
    background:#fff !important;
    border-color:#7fa36f !important;
    color:#7fa36f !important;
    box-shadow:0 10px 24px rgba(127,163,111,.18) !important;
    transform:translateY(-2px) !important;
}

.works-pagination .page-numbers.current{
    background:#2f7d42 !important;
    border-color:#2f7d42 !important;
    color:#fff !important;
    box-shadow:0 8px 20px rgba(61,45,32,.08) !important;
}

.works-pagination .prev,
.works-pagination .next{
    padding:0 24px !important;
}

.pagination, .comments-pagination{
	border:none;
}

@media screen and (max-width:640px){
    .works-pagination{
        margin-top:42px;
    }

    .works-pagination .page-numbers{
        min-width:42px;
        height:42px;
        padding:0 15px;
        font-size:13px;
    }
}

/* ====================================
施工事例 タクソノミー一覧
==================================== */

.works-archive-page{
    background:#fff;
    color:#3d342d;
}

.works-archive-heading{
    padding:90px 0 30px;
    text-align:center;
}

.works-archive-heading .section-title{
    margin-bottom:18px;
}

.works-archive-heading .section-title span{
    color:#2f7d42;
}

.works-archive-heading h1{
    font-family:"Noto Serif JP", serif;
    font-size:34px;
    font-weight:500;
    letter-spacing:.08em;
    color:#3d342d;
}

.works-archive-lead{
    margin:0;
    color:#6f665e;
    font-size:15px;
    line-height:1.9;
}

.works-archive-section{
    padding:30px 0 100px;
}

.works-empty{
    text-align:center;
    color:#6f665e;
    font-size:15px;
    padding:60px 0;
}

.works-archive-page .works-grid{
    max-width:1040px;
    margin:0 auto;
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:36px;
}

@media screen and (max-width:767px){
    .works-archive-heading{
        padding:60px 0 36px;
    }

    .works-archive-heading h1{
        font-size:26px;
    }

    .works-archive-section{
        padding:20px 0 70px;
    }
}

.works-back-link-wrap{
    margin-top:40px;
    text-align:center;
}

/* ====================================
会社概要ページ
==================================== */

.company-page {
	background: #f8f7f1;
	color: #333;
	font-family: "Noto Serif JP", serif;
}

.company-page .page-heading {
	padding: 90px 0 70px;
	background: #f8f7f1;
	text-align: center;
}

.company-page .page-heading .section-title {
	margin-bottom: 28px;
	text-align: center;
}

.company-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 30px;
}

/* 代表メッセージ */
.company-message {
	padding: 20px 0 90px;
}

.company-message-box {
	position: relative;
	background: #fff;
	padding: 58px 64px;
	border-radius: 18px;
	box-shadow: 0 18px 45px rgba(64, 72, 48, 0.08);
	border: 1px solid rgba(111, 139, 82, 0.18);
}

.company-message-box::before {
	content: "";
	position: absolute;
	top: 34px;
	left: 0;
	width: 5px;
	height: 90px;
	background: #7f9b5f;
	border-radius: 0 4px 4px 0;
}

.company-message-box p {
	margin: 0 0 1.7em;
	font-size: 16px;
	line-height: 1.95;
	letter-spacing: 0.04em;
	color: #444;
}

.company-message-box p:last-child {
	margin-bottom: 0;
}

/* 会社情報 */
.company-info {
	padding: 90px 0 120px;
	background: #fff;
}

.company-section-title {
	text-align: center;
	margin-bottom: 48px;
}

.company-section-title h2{
	color:#3d2d20;
}

.company-info-table {
	background: #fff;
	border-radius: 18px;
	padding: 12px 46px;
	border: 1px solid rgba(111, 139, 82, 0.18);
	box-shadow: 0 14px 38px rgba(64, 72, 48, 0.06);
}

.company-info-table dl {
	display: grid;
	grid-template-columns: 220px 1fr;
	margin: 0;
}

.company-info-table dt,
.company-info-table dd {
	margin: 0;
	padding: 26px 0;
	border-bottom: 1px solid rgba(111, 139, 82, 0.18);
	font-size: 16px;
	line-height: 1.9;
}

.company-info-table dt {
	color: #4f6f3f;
	font-weight: 600;
	letter-spacing: 0.08em;
}

.company-info-table dd {
	color: #3f3f38;
	padding-left: 36px;
}

.company-info-table dt:nth-last-of-type(1),
.company-info-table dd:nth-last-of-type(1) {
	border-bottom: none;
}

/* ====================================
ご依頼の流れページ
==================================== */

.flow-page {
	background: #fff;
	color: #3d342d;
}

/* タイトル部分 */
.flow-page .page-heading {
	padding: 90px 0 70px;
	background: #fbfaf6;
	text-align: center;
}

.flow-page .page-heading .section-title {
	margin-bottom: 28px;
	text-align: center;
}

.flow-page .page-heading__lead {
	max-width: 760px;
	margin: 0 auto;
	text-align: center;
	font-size: 15px;
	line-height: 2.2;
	letter-spacing: .04em;
	color: #4d4a45;
}

/* 流れ */
.flow-detail-section {
	padding: 80px 0 110px;
	background: #fff;
}

.flow-detail-section .section-title {
	margin-bottom: 56px;
}

.flow-detail-list {
	max-width: 980px;
	margin: 0 auto;
}

/* 各STEP */
.flow-detail-item {
	position: relative;
	display: grid;
	grid-template-columns: 160px 1fr;
	gap: 34px;
	margin-bottom: 34px;
}

/* 線：各STEPから次のSTEPまで */
.flow-detail-item::after {
	content: "";
	position: absolute;
	left: 65px;
	top: 130px;
	bottom: -34px;
	width: 1px;
	background: rgba(47, 125, 66, .22);
}

/* 最後のSTEPには線を出さない */
.flow-detail-item:last-child {
	margin-bottom: 0;
}

.flow-detail-item:last-child::after {
	display: none;
}

/* アイコン丸 */
.flow-detail-step {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 130px;
	height: 130px;
	background: #fff;
	border-radius: 50%;
	border: 1px solid rgba(47, 125, 66, .20);
	box-shadow: 0 10px 28px rgba(41, 32, 24, .05);
	flex-shrink: 0;
}

.flow-detail-step img {
	width: 82px;
	height: 82px;
	object-fit: contain;
	display: block;
}

/* カード */
.flow-detail-card {
	background: #fff;
	border: 1px solid rgba(61, 45, 32, .10);
	box-shadow: 0 14px 36px rgba(41, 32, 24, .06);
	padding: 34px 40px;
}

.flow-detail-card span {
	display: block;
	margin-bottom: 8px;
	color: #2f7d42;
	font-family: "Noto Serif JP", serif;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .12em;
}

.flow-detail-card h3 {
	margin: 0 0 16px;
	color: #3d2d20;
	font-family: "Noto Serif JP", serif;
	font-size: 24px;
	font-weight: 500;
	line-height: 1.6;
	letter-spacing: .06em;
}

.flow-detail-card h3::after {
	content: "";
	display: block;
	width: 34px;
	height: 1px;
	background: rgba(47, 125, 66, .45);
	margin-top: 14px;
}

.flow-detail-card p {
	margin: 0;
	color: #4a4037;
	font-size: 15px;
	line-height: 2;
	letter-spacing: .03em;
}

/* ====================================
よくあるご質問ページ
==================================== */

.faq-page {
	background:#fff;
	color:#3d342d;
}

.faq-page .page-heading {
	padding:90px 0 70px;
	background:#fbfaf6;
	text-align:center;
}

.faq-page .page-heading .section-title {
	margin-bottom:28px;
	text-align:center;
}

.faq-page .page-heading__lead {
	max-width:760px;
	margin:0 auto;
	text-align:center;
	font-size:15px;
	line-height:2.2;
	letter-spacing:.04em;
	color:#4d4a45;
}

.faq-list-section {
	padding:80px 0 110px;
	background:#fff;
}

.faq-list {
	max-width:980px;
	margin:0 auto;
}

.faq-item {
	background:#fff;
	border:1px solid rgba(61,45,32,.08);
	box-shadow:0 8px 22px rgba(41,32,24,.035);
	margin-bottom:20px;
}

.faq-question,
.faq-answer {
	display:grid;
	grid-template-columns:54px 1fr;
	gap:18px;
	align-items:start;
}

.faq-question {
	padding:28px 34px 18px;
	background:#f7faf4;
	border-bottom:1px solid rgba(61,45,32,.08);
}

.faq-answer {
	padding:24px 34px 30px;
}

.faq-question span,
.faq-answer span {
	display:flex;
	align-items:center;
	justify-content:center;
	width:42px;
	height:42px;
	border-radius:50%;
	font-family:"Noto Serif JP", serif;
	font-size:18px;
	font-weight:600;
}

.faq-question span {
	background:#2f7d42;
	color:#fff;
}

.faq-answer span {
	background:#fff;
	color:#2f7d42;
	border:1px solid rgba(47,125,66,.35);
}

.faq-question h2 {
	margin:0;
	padding-top:4px;
	color:#3d2d20;
	font-family:"Noto Serif JP", serif;
	font-size:21px;
	font-weight:500;
	line-height:1.7;
}

.faq-answer-text {
	padding-top:5px;
	color:#4a4037;
	font-size:15px;
	line-height:2;
	letter-spacing:.03em;
}

.faq-answer-text p {
	margin:0 0 1em;
}

.faq-answer-text p:last-child {
	margin-bottom:0;
}


/* ====================================
お問い合わせページ
==================================== */

.contact-page {
	background:#fff;
	color:#3d342d;
}

.contact-page .page-heading {
	padding:90px 0 70px;
	background:#fbfaf6;
	text-align:center;
}

.contact-page .page-heading .section-title {
	margin-bottom:28px;
	text-align:center;
}

.contact-page .page-heading__lead {
	max-width:760px;
	margin:0 auto;
	text-align:center;
	font-size:15px;
	line-height:2.2;
	letter-spacing:.04em;
	color:#4d4a45;
}

.contact-section {
	padding:80px 0 110px;
	background:#fff;
}

.contact-tel-box,
.contact-consult-box {
	max-width:900px;
	margin:0 auto 38px;
	padding:42px 52px;
	border:1px solid rgba(61,45,32,.10);
	box-shadow:0 8px 22px rgba(41,32,24,.035);
}

.contact-consult-box {
	background:#fbfaf6;
	margin-bottom:0;
	text-align:center;
}

.contact-catch {
	margin-bottom:20px !important;
	color:#3d2d20 !important;
	font-family:"Noto Serif JP", serif;
	font-size:24px !important;
	font-weight:500;
	line-height:1.7 !important;
	text-align:center;
}

.contact-tel-box {
	background:#fff;
	border-color:rgba(47,125,66,.25);
	text-align:center;
}

.contact-tel-box h2,
.contact-consult-box h2 {
	margin:0 0 24px;
	color:#3d2d20;
	font-family:"Noto Serif JP", serif;
	font-size:25px;
	font-weight:500;
	line-height:1.6;
	text-align:center;
}

.contact-tel-box h2::after,
.contact-consult-box h2::after {
	content:"";
	display:block;
	width:42px;
	height:2px;
	background:#2f7d42;
	margin:18px auto 0;
}

.contact-tel-label,
.contact-info-grid span {
	display:block;
	margin-bottom:8px;
	color:#3d2d20;
	font-family:"Noto Serif JP", serif;
	font-size:16px;
	font-weight:500;
	letter-spacing:.06em;
}

.contact-tel-number {
	display:inline-block;
	margin-bottom:34px;
	color:#2f7d42;
	font-size:46px;
	font-weight:700;
	line-height:1.2;
	text-decoration:none;
}

.contact-info-grid {
	display:grid;
	grid-template-columns:repeat(2, 1fr);
	border-top:1px solid rgba(61,45,32,.10);
}

.contact-info-grid div {
	padding:24px 20px 0;
}

.contact-info-grid div + div {
	border-left:1px solid rgba(61,45,32,.10);
}

.contact-info-grid p {
	margin:0;
	color:#3d342d;
	font-size:18px;
	line-height:1.7;
}


.contact-consult-box ul {
	display:grid;
	grid-template-columns:repeat(3, 1fr);
	gap:14px;
	margin:0 0 32px;
	padding:0;
	list-style:none;
}

.contact-consult-box li {
	padding:14px 10px;
	background:#fff;
	border:1px solid rgba(47,125,66,.18);
	color:#3d342d;
	font-size:15px;
	line-height:1.6;
}

.contact-consult-box li::before {
	content:"✓";
	margin-right:8px;
	color:#2f7d42;
	font-weight:700;
}

.contact-consult-box p {
	margin:0;
	color:#4a4037;
	font-size:15px;
	line-height:2;
}

/* ====================================
共通フッター
==================================== */

/* CTA */

.footer-cta{
    background:transparent;
    padding:80px 0;
    text-align:center;
}

.footer-cta .container{max-width:900px;}

.footer-cta-sub{
    display:block;
    margin-bottom:14px;
    color:#2f7d42;
    font-size:14px;
    letter-spacing:.16em;
    text-transform:uppercase;
}

.footer-cta h2{
    padding-top:0;
    margin-bottom:20px;
    font-family:"Noto Serif JP",serif;
    font-size:34px;
    font-weight:500;
    line-height:1.7;
    color:#3d2d20;
}

.footer-cta h2::after{
    content:"";
    display:block;
    width:48px;
    height:3px;
    margin:18px auto 0;
    background:#2f7d42;
}

.footer-cta p{
    max-width:700px;
    margin:0 auto 36px;
    color:#4a4037;
    font-size:15px;
    line-height:1.6;
}

.footer-cta-buttons{
    display:flex;
    justify-content:center;
    gap:16px;
    flex-wrap:wrap;
}

.footer-btn{
    display:inline-flex;
    justify-content:center;
    align-items:center;
    min-width:220px;
    height:54px;
    padding:0 28px;
    border-radius:999px;
    text-decoration:none;
    font-size:15px;
    transition:.3s;
}

.footer-btn-main{
    background:#2f7d42;
    color:#fff;
    border:1px solid #2f7d42;
}

.footer-btn-main:hover{
    background:#236334;
    color:#fff;
    border-color:#236334;
}

.footer-btn-tel{
    background:#fff;
    color:#2f7d42;
    border:1px solid rgba(47,125,66,.35);
}

.footer-btn-tel:hover{
    background:#f7faf4;
    color:#2f7d42;
    border-color:#2f7d42;
}

/* Footer */

.site-footer-custom{
    position:relative;
    background:transparent;
}

.footer-bg-wrap{
    position:relative;
    overflow:hidden;
    background:#fbfaf6;
}

.footer-leaf-bg{
    position:absolute;
    inset:0;
    z-index:0;
    pointer-events:none;
    background:url("./assets/images/footer-leaf.png") center bottom / cover no-repeat;
    opacity:.85;
}

.footer-cta,
.site-footer-custom{
    position:relative;
    z-index:1;
    background:transparent;
}

.footer-inner{
    display:grid;
    grid-template-columns:1.35fr 1fr 1fr 1.15fr;
    gap:54px;
    padding:55px 50px 70px;
    position:relative;
    z-index:2;
    background:rgba(251,250,246,.50);
    backdrop-filter:blur(4px);
    -webkit-backdrop-filter:blur(4px);
    border-radius:12px;
	margin-bottom:30px;
}

.footer-brand{
    padding-right:44px;
    border-right:1px solid rgba(61,45,32,.08);
}

.footer-brand h2{
    position:relative;
    margin:0 0 24px;
    padding:0 0 18px;
    color:#3d2d20;
    font-family:"Noto Serif JP",serif;
    font-size:32px;
    font-weight:500;
    letter-spacing:.08em;
}

.footer-brand h2::after{
    content:"";
    position:absolute;
    left:0;
    bottom:0;
    width:42px;
    height:2px;
    background:#2f7d42;
}

.footer-brand p{
    margin:0;
    color:#4a4037;
    font-size:14px;
    line-height:1.7;
    letter-spacing:.04em;
}

.footer-nav-area{
    display:contents;
}

.footer-nav-box{
    position:relative;
}

.footer-nav-box h3{
    margin:0 0 22px;
    padding:0 0 12px;
    color:#3d2d20;
    font-family:"Noto Serif JP",serif;
    font-size:16px;
    font-weight:500;
    letter-spacing:.08em;
    border-bottom:1px solid rgba(47,125,66,.18);
}

.footer-nav-box ul{
    margin:0;
    padding:0;
    list-style:none;
}

.footer-nav-box li{
    margin-bottom:13px;
}

.footer-nav-box a{
    position:relative;
    display:inline-block;
    color:#4a4037;
    text-decoration:none;
    font-size:14px;
    line-height:1.7;
    transition:.25s;
}


.footer-nav-box a:hover{
    color:#2f7d42;
}

.footer-info-item{
    margin-bottom:26px;
}

.footer-info-item:last-child{
    margin-bottom:0;
}

.footer-info-item span{
    display:block;
    margin-bottom:8px;
    color:#3d2d20;
    font-size:14px;
    letter-spacing:.08em;
}

.footer-info-item p{
    margin:0;
    font-size:14px;
    color:#4a4037;
    line-height:1.7;
}

.footer-info-item a{
    color:#4a4037;
    text-decoration:none;
    transition:.25s;
}

.footer-info-item a:hover{
    color:#2f7d42;
}

.footer-bottom{
    background:#fff;
    border-top:1px solid rgba(61,45,32,.08);
    text-align:center;
    padding:24px 20px;
}

.footer-bottom p{
    margin:0;
    color:#5a5148;
    font-size:12px;
    letter-spacing:.06em;
}

.page-top-button{
    display:none;
}

/* Responsive */

/*====================================
responsive tablet / max-width 900px
====================================*/

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

    .container{
        padding:0 28px;
    }

    .custom-site-header{
        padding:16px 0 14px;
    }

    .custom-header-inner{
        max-width:none;
        padding:0 28px;
        flex-direction:column;
        gap:12px;
        text-align:center;
    }

    .custom-header-logo img{
        max-height:78px;
    }

    .custom-header-contact{
        margin-left:0;
        text-align:center;
    }

    .custom-header-tel{
        justify-content:center;
        font-size:25px;
    }

    .custom-header-time{
        text-align:center;
        font-size:13px;
    }

    .navigation-top .wrap{
        padding:0 20px;
    }

    .navigation-top .menu{
        flex-wrap:wrap;
    }

    .navigation-top .menu > li > a{
        min-height:46px;
        padding:0 14px;
        font-size:14px;
    }

    .hero{
        display:block;
        min-height:auto;
    }

    .hero__image{
        position:relative;
        width:100%;
        height:300px;
    }

    .hero__image::before{
        background:rgba(251,250,246,.12);
    }

    .hero__inner{
        padding:50px 38px 58px;
    }

    .hero__content{
        max-width:720px;
        margin:0 auto;
        text-align:center;
    }

    .hero__title{
        font-size:32px;
        line-height:1.75;
    }

    .hero__text{
        font-size:15px;
    }

    .top-section{
        padding:68px 0;
    }

    .section-head{
        align-items:center;
        margin-bottom:34px;
    }

    .section-title h2{
        font-size:30px;
    }

    .reason-grid{
        grid-template-columns:repeat(2, 1fr);
        gap:24px;
    }

    .reason-image img{
        height:180px;
    }

    .service-grid{
        grid-template-columns:1fr;
        gap:26px;
    }

    .service-item{
        grid-template-columns:1fr 1fr;
    }

    .service-image img{
        min-height:260px;
    }

    .works-grid,
    .works-archive-grid{
        grid-template-columns:repeat(2, 1fr);
        gap:28px;
        max-width:none;
    }

    .about-overlap{
        display:block;
        margin-top:36px;
    }

    .about-text{
        padding:0;
        margin-bottom:32px;
    }

    .about-text::after{
        display:none;
    }

    .about-text .about-lead,
    .about-text .about-lead + p{
        padding-left:0;
    }

    .about-text .about-lead{
        font-size:22px;
    }

    .about-photo img{
        height:360px;
    }

    .flow-timeline{
        grid-template-columns:repeat(3, 1fr);
        gap:22px;
    }

    .flow-timeline::before{
        display:none;
    }

    .flow-card{
        padding:28px 22px;
    }

    .top-faq-question,
    .top-faq-answer{
        grid-template-columns:34px 1fr;
        gap:12px;
    }

    .case-ba-grid,
    .case-info-card,
    .case-body-layout,
    .service-list-grid,
    .service-list-card{
        grid-template-columns:1fr;
    }

    .recommend-grid,
    .detail-card-grid{
        grid-template-columns:repeat(2, 1fr);
    }

    .service-work-grid{
        grid-template-columns:repeat(2, 1fr);
    }

    .footer-cta{
        padding:70px 0 60px;
    }

    .footer-cta h2{
        font-size:28px;
    }
	
	.footer-leaf-bg{
        opacity:.55;
   		background-size:110% auto;
        background-position:center bottom;
    }

    .footer-inner{
		background:rgba(251,250,246,.72);
        -webkit-backdrop-filter:blur(6px);
        grid-template-columns:1fr;
        gap:36px;
        padding:50px 38px 30px;
    	margin-bottom:50px;
    }

    .footer-brand{
        padding-right:0;
        border-right:none;
    }

    .footer-nav-area{
        display:grid;
        grid-template-columns:repeat(3, 1fr);
        gap:28px;
    }

}

/*====================================
responsive smartphone / max-width 640px
====================================*/

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

    /* common */

    .container{
        padding:0 20px;
    }

    .top-section{
        padding:56px 0;
    }

    .section-title{
        margin-bottom:16px;
    }

    .section-title span{
        font-size:13px;
        margin-bottom:6px;
    }

    .section-title h2{
        font-size:26px;
        line-height:1.5;
        padding:6px;
    }

    .section-title h2::after{
        margin-top:14px;
    }

    .section-head{
        display:block;
        margin-bottom:28px;
    }

    .section-head .section-title{
        text-align:center;
    }

    .section-head .section-title h2::after{
        margin-left:auto;
    }

    .section-title--left{
        text-align:center;
    }

    .section-title--left h2::after{
        margin-left:auto;
    }

    .more-link{
        display:block;
        width:100%;
        margin-top:18px;
        padding:11px 18px;
        text-align:center;
        font-size:14px;
    }

    /* page heading */

    .page-heading{
        padding:52px 0 44px;
    }

    .page-heading .section-title h1{
        font-size:28px;
        line-height:1.55;
    }

    .page-heading__lead{
        font-size:14px;
        line-height:2;
        text-align:left;
    }

    .page-heading--image{
        min-height:auto;
    }

    .page-heading--image .container{
        height:auto;
        min-height:300px;
        padding-top:54px;
        padding-bottom:54px;
    }

    .page-heading__content{
        width:100%;
        padding-left:0;
    }

    .page-heading--image .section-title{
        text-align:center;
    }

    .page-heading--image .section-title h1::after{
        margin-left:auto;
        margin-right:auto;
    }

    .page-heading--image .page-heading__lead{
        text-align:left;
    }

    .page-heading__image{
        left:0;
    }

    .page-heading__overlay{
        background:rgba(255,255,255,.88);
    }

/* header */

.custom-site-header{
    padding:14px 0 12px;
}

.custom-header-inner{
    position:relative !important;
    display:block !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 18px !important;
    min-height:auto !important;
}

/* メニュー */

.custom-menu-toggle{
    position:absolute !important;
    left:18px !important;
    top:8px !important;
    z-index:10;

    display:flex !important;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    gap:5px;

    width:44px;
    height:44px;
    padding:0;
    background:#fff;
    border:1px solid rgba(61,45,32,.16);
    border-radius:50%;
}

.custom-menu-toggle span{
    display:block;
    width:18px;
    height:2px;
    background:#3d342d;
}

/* ロゴ：画面中央に固定 */

.custom-header-logo{
    position:relative !important;
    width:100% !important;
    margin:0 0 14px !important;
    padding:0 !important;
    text-align:center !important;
}

.custom-header-logo a{
    display:inline-block !important;
}

.custom-header-logo img{
    display:block !important;
    max-height:72px !important;
    width:auto !important;
    margin:0 auto !important;
}

/* 電話 */

.custom-header-contact{
    width:100% !important;
    margin:0 !important;
    padding-top:12px !important;
    border-top:1px solid rgba(61,45,32,.08);
    text-align:center !important;
}

.custom-header-tel{
    justify-content:center !important;
    font-size:22px !important;
    line-height:1.2;
}
	
.custom-header-tel .dashicons{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    color:#2f7d42;
    font-size:22px;
    width:22px;
    height:22px;
    line-height:1;
}

.custom-header-time{
    margin-top:5px;
    text-align:center !important;
    font-size:12px;
    line-height:1.5;
}

/* navigation */

.navigation-top{
    display:none;
    border-top:1px solid rgba(61,45,32,.08);
    border-bottom:1px solid rgba(61,45,32,.10);
    box-shadow:0 10px 24px rgba(41,32,24,.04);
    background:#fff;
}

.navigation-top.is-open{
    display:block;
}

.navigation-top .wrap{
    padding:0 22px;
}

.navigation-top .menu{
    display:block !important;
    width:100%;
    padding:12px 0;
}

.navigation-top .menu > li{
    width:100%;
    border-bottom:1px solid rgba(61,45,32,.08);
}

.navigation-top .menu > li:last-child{
    border-bottom:none;
}

.navigation-top .menu > li > a{
    display:flex;
    align-items:center;
    justify-content:space-between;
    min-height:48px;
    padding:0 4px;
    color:#3d342d;
    font-family:"Noto Serif JP", serif;
    font-size:15px;
    letter-spacing:.06em;
}

/* サブメニュー */

.navigation-top .sub-menu{
    position:static;
    width:100%;
    margin:0;
    padding:0;
    border:0 !important;
    border-bottom:none;
    box-shadow:none;
    background:transparent;
}

.navigation-top .sub-menu li{
    border:0 !important;
    margin:0;
    padding:0;
    border:none;
}

.navigation-top .sub-menu a{
    border:0 !important;
    display:flex;
    align-items:center;
    min-height:42px;
    padding:0 0 0 22px;
    color:#5a5148;
    font-size:14px;
    line-height:1;
    letter-spacing:.04em;
}

.navigation-top .sub-menu a::before{
    content:"";
    display:inline-block;
    width:6px;
    height:1px;
    margin-right:10px;
    background:rgba(47,125,66,.45);
}

.menu-toggle{
    display:none !important;
}

    /* hero */

    .hero{
        display:block;
        min-height:auto;
    }

    .hero__image{
        position:relative;
        width:100%;
        height:220px;
    }

    .hero__image::before{
        background:rgba(251,250,246,.10);
    }

    .hero__image::after{
        inset:12px;
    }

    .hero__inner{
        padding:42px 20px 48px;
    }

    .hero__content{
        max-width:none;
        text-align:center;
    }

    .hero__title{
        margin-bottom:22px;
        font-size:26px;
        line-height:1.75;
        letter-spacing:.06em;
    }

    .hero__text{
        font-size:14px;
        line-height:2;
    }

    .hero__links{
        margin-top:26px;
    }

    .hero__links a{
        font-size:15px;
        line-height:1.8;
    }

    .hero__links a::after{
        margin-left:8px;
        font-size:16px;
    }

    /* reason */

    .reason-grid{
        grid-template-columns:1fr;
        gap:20px;
    }

    .reason-card{
        padding:22px;
    }

    .reason-card h3{
        font-size:20px;
    }

    .reason-image img{
        height:190px;
    }

    /* service top */

    .service-grid{
        grid-template-columns:1fr;
        gap:22px;
    }

    .service-item{
        grid-template-columns:1fr;
    }

    .service-image{
        order:-1;
    }

    .service-image img{
        min-height:220px;
        height:220px;
    }

    .service-content{
        padding:26px 22px;
    }

    .service-content::before{
        margin-bottom:18px;
    }

    .service-content h3{
        font-size:22px;
    }

    .service-content p{
        font-size:14px;
        line-height:1.9;
    }

    /* works */

    .works-grid,
    .works-archive-grid{
        grid-template-columns:1fr;
        gap:24px;
        max-width:none;
    }

    .works-card__body,
    .works-archive-card__body{
        padding:20px;
    }

    .works-card__title,
    .works-archive-card__title{
        font-size:20px;
    }

    .works-filter{
        justify-content:center;
        gap:10px;
    }

    .works-filter a{
        padding:9px 15px;
        font-size:13px;
    }

    .works-list-section{
        padding:38px 0 64px;
    }

    .works-archive-page .page-heading{
        padding:56px 0 46px;
    }

    /* about */

    .about-overlap{
        display:block;
        margin-top:28px;
    }

    .about-text{
        padding:0;
        margin-bottom:24px;
    }

    .about-text::after{
        display:none;
    }

    .about-text .about-lead,
    .about-text .about-lead + p{
        padding-left:0;
    }

    .about-text .about-lead{
        font-size:20px;
        line-height:1.8;
        margin-bottom:22px;
    }

    .about-text p{
        font-size:14px;
        line-height:2.1;
    }

    .about-photo img{
        height:240px;
    }

    .about-photo::before{
        inset:12px;
    }

    /* flow top */

    .flow-timeline{
        grid-template-columns:1fr;
        gap:18px;
    }

    .flow-timeline::before{
        display:none;
    }

    .flow-card{
        padding:24px 20px;
    }

    .flow-icon{
        margin:14px 0;
    }

    .flow-icon img{
        width:68px;
        height:68px;
    }

    .flow-card h3{
        font-size:18px;
        margin-bottom:14px;
    }

    .flow-card p{
        font-size:14px;
        line-height:1.9;
    }

    /* top faq */

    .faq-section .section-head{
        display:block;
        margin-bottom:28px;
    }

    .faq-section .more-link{
        margin-top:18px;
    }

    .top-faq-question,
    .top-faq-answer{
        grid-template-columns:30px 1fr;
        gap:10px;
    }

    .top-faq-question{
        padding:18px 18px 10px;
    }

    .top-faq-answer{
        padding:0 18px 20px;
    }

    .top-faq-question span,
    .top-faq-answer span{
        font-size:17px;
    }

    .top-faq-question h3{
        font-size:16px;
        line-height:1.7;
    }

    .top-faq-answer-text{
        font-size:14px;
        line-height:1.9;
    }

    /* case single */

    .case-heading-section{
        padding:46px 0 30px;
    }

    .case-heading-section .section-title h1{
        font-size:26px;
        line-height:1.6;
    }

    .case-ba-section{
        padding:16px 0 64px;
    }

    .case-ba-grid,
    .case-info-card,
    .case-body-layout{
        grid-template-columns:1fr;
    }

    .case-ba-card img{
        height:340px;
    }

    .case-info-section{
        padding:0 0 64px;
    }

    .case-info-card{
        padding:30px 22px;
    }

    .case-info-item{
        padding:0;
    }

    .case-info-item + .case-info-item{
        border-left:none;
        border-top:1px solid rgba(61,45,32,.10);
        margin-top:28px;
        padding-top:28px;
    }

    .case-body-section{
        padding:64px 0;
    }

    .case-body-layout{
        gap:24px;
    }

    .case-body-text{
        padding:30px 22px;
        font-size:14px;
        line-height:2.1;
    }

    .case-nav-section{
        padding:40px 0 70px;
    }

    .case-nav{
        grid-template-columns:1fr;
        text-align:center;
    }

    .case-nav-prev,
    .case-nav-next{
        text-align:center;
    }

    /* service archive */

    .service-list-grid,
    .service-list-card{
        grid-template-columns:1fr;
    }

    .service-list-card__image{
        min-height:220px;
    }

    .service-list-card__body{
        padding:28px 22px;
    }

    .service-list-card__body h3{
        font-size:22px;
    }

    .service-work-grid{
        grid-template-columns:1fr;
    }

    .service-hero{
        padding:60px 0;
    }

    .service-hero__text h1{
        font-size:30px;
    }

    /* service detail */

    .recommend-grid,
    .detail-card-grid{
        grid-template-columns:1fr;
        gap:20px;
    }

    .recommend-card{
        min-height:auto;
    }

    .recommend-card__text{
        padding:24px 22px 16px;
    }

    .detail-card{
        padding:26px 22px;
    }

    /* company */

    .company-container{
        padding:0 20px;
    }

    .company-page .page-heading{
        padding:56px 0 46px;
    }

    .company-message{
        padding:10px 0 64px;
    }

    .company-message-box{
        padding:38px 26px;
        border-radius:14px;
    }

    .company-message-box::before{
        top:28px;
        height:70px;
    }

    .company-message-box p{
        font-size:14px;
        line-height:2;
    }

    .company-info{
        padding:64px 0 80px;
    }

    .company-info-table{
        padding:8px 22px;
    }

    .company-info-table dl{
        grid-template-columns:1fr;
    }

    .company-info-table dt,
    .company-info-table dd{
        padding:0;
        border-bottom:none;
        font-size:15px;
    }

    .company-info-table dt{
        padding-top:20px;
        padding-bottom:6px;
    }

    .company-info-table dd{
        padding-left:0;
        padding-bottom:20px;
        border-bottom:1px solid rgba(111,139,82,.18);
    }

    .company-info-table dd:last-of-type{
        border-bottom:none;
    }

    /* flow page */

    .flow-page .page-heading{
        padding:56px 0 46px;
    }

    .flow-detail-section{
        padding:60px 0 76px;
    }

    .flow-detail-section .section-title{
        margin-bottom:40px;
    }

    .flow-detail-item{
        grid-template-columns:58px 1fr;
        gap:16px;
        margin-bottom:24px;
    }

    .flow-detail-item::after{
        left:25px;
        top:52px;
        bottom:-24px;
    }

    .flow-detail-step{
        width:64px;
    	height:64px;
    }

    .flow-detail-step img{
        width:44px;
        height:44px;
    }

    .flow-detail-card{
        padding:24px 20px;
    }

    .flow-detail-card span{
        font-size:12px;
    }

    .flow-detail-card h3{
        font-size:20px;
    }

    .flow-detail-card p{
        font-size:14px;
        line-height:1.9;
    }

    /* faq page */

    .faq-page .page-heading{
        padding:56px 0 46px;
    }

    .faq-list-section{
        padding:60px 0 76px;
    }

    .faq-question,
    .faq-answer{
        grid-template-columns:38px 1fr;
        gap:12px;
    }

    .faq-question{
        padding:22px 20px 16px;
    }

    .faq-answer{
        padding:20px 20px 24px;
    }

    .faq-question span,
    .faq-answer span{
        width:34px;
        height:34px;
        font-size:16px;
    }

    .faq-question h2{
        font-size:18px;
        line-height:1.7;
    }

    .faq-answer-text{
        font-size:14px;
        line-height:1.9;
    }

    /* contact */

    .contact-page .page-heading{
        padding:56px 0 46px;
    }

    .contact-section{
        padding:60px 0 76px;
    }

    .contact-tel-box,
    .contact-consult-box{
        padding:32px 22px;
        margin-bottom:28px;
    }

    .contact-catch{
        font-size:21px !important;
    }

    .contact-tel-box h2,
    .contact-consult-box h2{
        font-size:22px;
    }

    .contact-tel-number{
        font-size:32px;
        margin-bottom:28px;
    }

    .contact-info-grid{
        grid-template-columns:1fr;
    }

    .contact-info-grid div{
        padding:20px 0 0;
    }

    .contact-info-grid div + div{
        border-left:none;
        border-top:1px solid rgba(61,45,32,.10);
        margin-top:20px;
    }

    .contact-info-grid p{
        font-size:16px;
    }

    .contact-consult-box ul{
        grid-template-columns:1fr;
        gap:10px;
    }

    /* footer */

    .footer-cta{
        padding:58px 0 50px;
    }

    .footer-cta-sub{
        font-size:13px;
    }

    .footer-cta h2{
        font-size:24px;
        line-height:1.7;
    }

    .footer-cta p{
        font-size:14px;
        line-height:1.9;
        margin-bottom:28px;
    }

    .footer-cta-buttons{
        gap:12px;
    }

    .footer-btn{
        width:100%;
        min-width:0;
        height:52px;
        font-size:14px;
    }

    footer-inner{
        padding:34px 20px 38px;
        gap:24px;
    }

    .footer-brand{
        text-align:center;
        margin-bottom:8px;
    }
	
	.footer-brand h2{
    text-align:center;
	}
	
	.footer-brand h2::after{
    left:50%;
    transform:translateX(-50%);
	}
	
	.footer-brand p{
        margin-bottom:22px;
        font-size:13px;
        line-height:1.8;
    }

    .footer-nav-area{
        display:grid;
        grid-template-columns:repeat(3, 1fr);
        gap:16px;
    }

    .footer-nav-box h3{
        margin-bottom:10px;
        padding-bottom:8px;
        font-size:14px;
    }

    .footer-nav-box li{
        margin-bottom:8px;
    }

    .footer-nav-box a{
        line-height:1.6;
    }

    .footer-info-item{
        margin-bottom:14px;
    }
	
	.footer-nav-box a,
    .footer-info-item p,
    .footer-info-item a{
        font-size:12.5px;
    }

	.custom-header-inner{
    display:grid;
    grid-template-columns:1fr 44px;
    align-items:center;
    gap:12px;
}

.custom-header-logo{
    text-align:left;
}

.custom-header-logo img{
    max-height:58px;
}

.custom-menu-toggle{
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    gap:5px;
    width:44px;
    height:44px;
    margin:0;
    padding:0;
    background:#fff;
    border:1px solid rgba(61,45,32,.16);
    border-radius:50%;
    cursor:pointer;
}

.custom-menu-toggle span{
    display:block;
    width:18px;
    height:1px;
    background:#3d342d;
    transition:.25s;
}

.custom-header-contact{
    grid-column:1 / -1;
    width:100%;
    margin:4px 0 0;
    padding-top:12px;
    border-top:1px solid rgba(61,45,32,.08);
    text-align:center;
}

.custom-header-tel{
    justify-content:center;
    font-size:22px;
}

.custom-header-time{
    text-align:center;
    font-size:12px;
}

.navigation-top{
    display:none;
}

.navigation-top.is-open{
    display:block;
}

.navigation-top .menu{
    flex-direction:column;
}

.navigation-top .menu > li{
    width:100%;
}

.navigation-top .menu > li > a{
    justify-content:flex-start;
    min-height:48px;
    padding:0 22px;
}

.custom-menu-toggle.is-open span:nth-child(1){
    transform:translateY(6px) rotate(45deg);
}

.custom-menu-toggle.is-open span:nth-child(2){
    opacity:0;
}

.custom-menu-toggle.is-open span:nth-child(3){
    transform:translateY(-6px) rotate(-45deg);
}
	
	.page-top-button{
        position:fixed;
        right:18px;
        bottom:22px;
        z-index:999;
        width:44px;
        height:44px;
        border-radius:50%;
        background:#fff;
        border:1px solid rgba(61,45,32,.18);
        color:#3d342d;
        display:flex;
        align-items:center;
        justify-content:center;
        text-decoration:none;
        font-size:18px;
        box-shadow:0 8px 22px rgba(41,32,24,.08);
    }
	
}