@charset "UTF-8";
/* CSS Document */

html {
    font-size: 87.5%;
    font-family: YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
    padding: 0;
    margin: 0;
}

body {
    font-size: 1em;
    color: #717071;
    background: #fefdfb;
    letter-spacing: 0.1em;
}

section,
article {
    width: 800px;
    margin: 0 auto;
}

main {
    display: block;
}

a {
    color: inherit;
    transition-duration: .3s;
}

img {
    max-width: 100%;
}

.min {
    font-family: YuMincho, "Yu Mincho", yu-mincho-pr6, sans-serif;
    font-weight: 400;
    font-style: normal;
}

.sp {
    display: none;
}

main .btn {
    font-family: YuMincho, "Yu Mincho", yu-mincho-pr6, sans-serif;
    font-weight: 400;
    font-style: normal;
}

main .btn-case {
    font-family: YuMincho, "Yu Mincho", yu-mincho-pr6, sans-serif;
    font-weight: 400;
    font-style: normal;
    margin: 0 auto;
    width: 240px;
}

main .btn a {
    display: block;
    width: 240px;
    background: linear-gradient(to right, #32b4c8, #ade1e9);
    color: #fff;
    text-align: center;
    letter-spacing: 0.2em;
    padding: 10px;
    box-sizing: border-box;
}

main .btn-case a {
    display: block;
    width: 240px;
    background: linear-gradient(to right, #32b4c8, #ade1e9);
    color: #fff;
    text-align: center;
    letter-spacing: 0.2em;
    padding: 10px;
    box-sizing: border-box;
}

main .btn a:hover {
    background: linear-gradient(to right, #32b4c8, #ade1e9, #32b4c8, #ade1e9);
    background-size: 400%;
    animation: grahover 4s linear infinite forwards;
}

main .btn-case a:hover {
    background: linear-gradient(to right, #32b4c8, #ade1e9, #32b4c8, #ade1e9);
    background-size: 400%;
    animation: grahover 4s linear infinite forwards;
}

@keyframes grahover {
    0% {
        background-position: 0% 50%
    }

    50% {
        background-position: 100% 50%
    }

    100% {
        background-position: 0% 50%
    }
}

/*  header-------------------------------------*/
/* header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px 40px;
}

header .right {
    text-align: right;
}

header .tit {
    font-weight: normal;
    font-size: 0.85em;
    margin-bottom: 10px;
}

header .h-link {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

header .h-link>*:not(:last-child) {
    margin-right: 10px;
}

header .tel {
    font-size: 1.85em;
    letter-spacing: 0.14em;
    margin-right: 10px;
}

header .tel i {
    font-size: 0.76em;
    vertical-align: 2px;
    margin-right: 5px;
}

header .btn {
    width: 180px;
    font-size: 0.9em
}

header .btn a {
    display: block;
    background: #717071;
    color: #fff;
    text-align: center;
    padding: 5px;
}

header .sns p {
    display: inline-block;
    font-size: 1.714em;
}

header .sns p:not(:last-child) {
    margin-right: 5px;
}

header .btn a:hover {
    background: #32b4c8;
}

header .tel a:hover,
header .sns p a:hover {
    color: #32b4c8;
} */

/*  nav-------------------------------------*/
/* nav {
    position: relative;
    z-index: 0;
    margin: 25px 0;
}

nav ul {
    text-align: center;
    letter-spacing: 0.2em;
}

nav li {
    display: inline-block;
    margin: 0 15px;
}

nav li a:hover {
    color: #32b4c8;
}

nav input,
nav label {
    display: none;
} */

/*  fix-------------------------------------*/
.fix {
    position: fixed;
    top: 240px;
    right: 0;
    z-index: 100;
    writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    text-orientation: upright;
}

.fix li {
    display: inline-block;
}

.fix li a {
    width: 45px;
    display: flex;
    align-items: center;
    color: #fff;
    letter-spacing: 0.2em;
    padding: 15px 0;
}

.fix li.online a {
    background: #32b4c8;
}

.fix li.line a {
    background: #7ac443;
}

.fix li.online a i {
    font-size: 1.42em;
    margin-bottom: 5px;
}

.fix li.line a i {
    font-size: 1.714em;
    margin-bottom: 5px;
}

.fix li a:hover {
    filter: brightness(1.15)
}

.fix li.yoyaku,
.fix li.contact {
    display: none;
}
/*  infoNavi-------------------------------------*/
#infoNavi{
    position: fixed;
    bottom:calc((50/920)*100%);
    right: 0;
}
#infoNavi li + li{
    margin-top: 10px;
}

#infoNavi li a{
    width: 142px;
    height: 70px;
	isolation: isolate;
	border-radius: 12px 0px 0px 12px / 12px 0px 0px 12px;
    color: #FFF;
    background: var(--cc);
    font-size: calc(11/14 * 1em);
    line-height: calc(15/11);
    letter-spacing: 0.15em;
    padding-left: 17px;
    position: relative;
}
#infoNavi li.line a{
    background: #FFF;
    border: 1px solid #00b900;
    color: #00b900;
}
#infoNavi li.line a .fa-line{
   font-size: calc(32/14 * 1em);
   margin-right: 0.25em;
}

#infoNavi li a::before{
	content: '';
	display: block;
	mask-size: 100% 100%;
	width: 11px;
	height: 13px;
	mask-image: url('../img/icon_arrow01.svg');
    background: #FFF;
    position: absolute;
    top:calc(50% - 6.5px);
    right:15px;
}
#infoNavi li.line a::before{
	background: #00b900;
}




/*  footer-------------------------------------*/
/*footer .map{filter: grayscale(1) brightness(1.05);}*/
footer .f-info {
    padding: 50px 0;
}

footer .logo {
    text-align: center;
    margin-bottom: 60px;
}

footer .f-info .in {
    display: flex;
    justify-content: space-between;
}

footer .f-info .in table {
    width: 100%;
}

footer .f-info .in table tr:not(:first-child) {
    border-top: 1px solid;
}

footer .f-info .in table tr th {
    font-weight: normal;
}

footer .f-info .in table tr th,
footer .f-info .in table tr td {
    padding: 10px;
}

footer .f-info .in table tr:first-child>* {
    padding-top: 0;
}

footer .f-info .in table tr>*:first-child {
    text-align: left;
    letter-spacing: 0.2em;
    padding-left: 0;
}

footer .f-info .in table tr>*:not(:first-child) {
    text-align: center;
}

footer .f-info .in .note {
    font-size: 0.92em;
    margin: 20px 0;
}

footer .f-info .in .right {
    font-size: 0.92em;
}

footer .f-info .in .tel {
    font-size: 2em;
    letter-spacing: 0.14em;
    margin-bottom: 10px;
}

footer .f-info .in .tel i {
    font-size: 0.83em;
    vertical-align: 2px;
    margin-right: 5px;
}

footer .f-info .in .tel+p {
    margin-bottom: 20px;
}

footer .f-info .in .add {
    margin-bottom: 20px;
}

footer .f-info .cv {
    display: flex;
    margin-top: 20px;
}

footer .f-info .cv .btn {
    flex-basis: 140px;
    margin-right: 10px;
    font-size: 1rem;
}

footer .f-info .btn a {
    display: block;
    background: #717071;
    color: #fff;
    text-align: center;
    padding: 5px;
}

footer .f-info .btn a:hover {
    background: #32b4c8;
}

footer .sitemap {
    background: #f4f4f4;
    padding: 30px 0 20px;
}

footer .sitemap article {
    display: flex;
    justify-content: space-between;
    padding: 0 60px;
    margin-bottom: 25px;
}

footer .sitemap article p {
    letter-spacing: 0.2em;
    line-height: 2;
}

footer .sitemap article .nest {
    display: flex;
    margin-top: 10px;
    font-size: 0.92em;
    letter-spacing: 0.2em;
    line-height: 2;
}

footer .sitemap article .nest ul:not(:last-child) {
    margin-right: 20px;
}

footer .sitemap article .nest ul li:before {
    content: "-";
    margin-right: 5px;
}

footer .sitemap article a:hover {
    text-decoration: underline;
}

footer .sitemap .sns p {
    display: inline-block;
    font-size: 1.714em;
}

footer .sitemap .sns a:hover {
    color: #32b4c8;
}

footer .copy {
    text-align: center;
    font-size: 0.714em;
}

li.pc.online {
    display: inline-block;
}

li.sp.online {
    display: none;
}

/*  responsive ------------------------------------------------------------*/
@media screen and (max-width:599px) {

    .pc {
        display: none;
    }

    .sp {
        display: initial
    }

    section,
    article {
        width: 100%;
        padding: 0 5vw;
    }

    /* header {
        display: block;
        padding: 25px 5vw 15px;
    }

    header .logo {
        max-width: calc(100% - 65px);
    }

    header .tit {
        position: absolute;
        top: 5px;
        left: 5vw;
    }

    header .h-link {
        display: block;
    }

    header .tel,
    header .btn {
        display: none;
    }

    header .sns {
        text-align: center;
    }

    nav {
        position: relative;
        z-index: 100;
    }

    nav ul {
        display: flex;
        width: 100%;
        height: 100%;
        background: rgba(255, 255, 255, .75);
        -webkit-background: rgba(255, 255, 255, .75);
        position: fixed;
        top: 0;
        left: 0;
        z-index: 100;
        backdrop-filter: blur(5px);
        -webkit-backdrop-filter: blur(5px);
        flex-wrap: wrap;
        align-content: center;
        justify-content: center;
        opacity: 0;
        visibility: hidden;
        transition-duration: .4s;
    }

    nav li {
        flex-basis: 100%;
        font-size: 3.5vw;
    }

    nav li:not(:last-child) {
        margin-bottom: 20px;
    }

    nav label {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        align-content: center;
        position: fixed;
        z-index: 200;
        top: 0;
        right: 0;
        padding: 10px;
        background: #32b4c8;
        font-size: 0.714em;
        color: #fff;
        width: 65px;
        height: 65px;
    }

    nav label span {
        display: block;
    }

    nav label span:before,
    nav label span:after {
        content: "";
        display: block;
        width: 30px;
        height: 1px;
        margin-left: auto;
        background: #fff;
        margin-bottom: 10px;
        transition-duration: .3s;
    }

    nav input:checked~label span:after {
        width: 18px;
    }

    nav input:checked~ul {
        opacity: 1;
        visibility: visible;
    } */

    footer .f-info {
        padding: 50px 5vw;
    }

    footer .f-info .in {
        display: block;
    }

    footer .f-info .cv {
        justify-content: center;
    }

    footer .f-info .in table tr th,
    footer .f-info .in table tr td {
        padding: 5px;
    }

    footer .sitemap {
        padding-bottom: 70px;
    }

    footer .sitemap article {
        display: block;
        padding: 0 8vw;
    }

    footer .sitemap article .box:last-child {
        display: none;
    }

    footer .sitemap .box:first-child {
        column-count: 2;
        padding-top: 20px;
        margin-bottom: 10px;
    }

    footer .sitemap .box:first-child p:first-child {
        margin-top: -2em;
    }

    footer .sitemap .box:nth-child(2) .nest {
        display: block;
        column-count: 2;
        white-space: nowrap;
        letter-spacing: 0.1em;
    }

    footer .sitemap .box:nth-child(2) ul {
        display: block;
    }

    .fix {
        width: 100%;
        top: auto;
        bottom: 0;
        writing-mode: horizontal-tb;
        display: flex;
        justify-content: center;
    }

    .fix li {
        flex-basis: 34%;
    }

    .fix li:not(:last-child) {
        border-right: 1px solid #fff;
    }

    .fix li.yoyaku,
    .fix li.contact {
        display: inline-block;
    }

    .fix li a {
        width: auto;
        height: 100%;
        background: #32b4c8;
        box-sizing: border-box;
        flex-wrap: wrap;
        text-align: center;
        justify-content: center;
        font-size: 0.82em;
        letter-spacing: 0;
        padding: 6px 0;
        white-space: nowrap;
        line-height: 1.2;
    }

    .fix li a i {
        flex-basis: 100%;
    }

    .fix li.line a {
        background: #32b4c8;
    }

    .fix li.yoyaku a i,
    .fix li.contact a i,
    .fix li.line a i {
        font-size: 2em;
        margin-bottom: 0;
    }

    .fix li.online a i {
        font-size: 1.45em;
        margin-bottom: 5px;
    }

    body {
        -webkit-text-size-adjust: 100%;
        /*クロームバグ*/
    }

    img.bn2-img {
        margin-left: 37px;
        margin-top: 17px;
        margin-bottom: 17px;
        width: 80%;
    }

    img.bn-img {
        margin-left: 37px;
        margin-top: 15px;
        width: 80%;
    }

    p.bnr.bnr-2 {
        background-color: #ffffff;
    }
}

.collaborating-txt {
    font-size: 13px;
    margin-left: 87px;
}

@media screen and (max-width:599px) {
    .collaborating-txt {
        font-size: 12px;
        margin-left: 69px;
    }

    main .btn_2 a {
        width: 100%;
    }
}




main .btn_2 a {
    width: 350px;
    display: block;
    background: linear-gradient(to right, #32b4c8, #ade1e9);
    color: #fff;
    text-align: center;
    letter-spacing: 0.2em;
    padding: 10px;
    box-sizing: border-box;
}

main .btn_2 {
    font-family: YuMincho, "Yu Mincho", yu-mincho-pr6, sans-serif;
    font-weight: 400;
    font-style: normal;
}


main .btn_2 a:hover {
    background: linear-gradient(to right, #32b4c8, #ade1e9, #32b4c8, #ade1e9);
    background-size: 400%;
    animation: grahover 4s linear infinite forwards;
}

/* ==================================================
.c-card
================================================== */

.c-card {
    width: 800px;
    margin-right: auto;
    margin-left: auto;
}

.c-card+.c-card {
    margin-top: 50px;
}

.c-card__link {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    transition: all .5s;
}

.c-card__link:hover {
    opacity: 0.6;
}

.c-card__thumb {
    width: 300px;
}

.c-card__thumb img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    object-position: center;
}

.c-card__txt {
    width: calc(100% - 350px);
}

.c-card__meta {
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 0 8px;
}

.c-card__date {
    font-size: 13px;
}

.c-card__cat {
    font-size: 13px;
    color: #32b4c8;
    border: 1px solid #32b4c8;
    border-radius: 30px;
    display: inline-block;
    padding: 3px 6px;
}

.c-card__title {
    margin-bottom: 16px;
    font-size: 22px;
    font-weight: 700;
    color: #32b4c8;
}

.c-card__body {}

@media screen and (max-width:599px){
	.c-card {
		width: 100%;
	}
	
	.c-card+.c-card {
		margin-top: 50px;
	}
	
	.c-card__thumb {
		width: 100%;
	}
	
	.c-card__thumb img {
		height: 140px;
	}
	
	.c-card__txt {
		width: 100%;
		margin-top: 20px;
	}
	
	.c-card__title {
		font-size: 18px;
	}
}

/* ==================================================
.c-pagenavi
================================================== */

.c-pagenavi {
    text-align: center;
    margin-top: 100px;
}

.wp-pagenavi {
    font-size: 16px !important;
    font-weight: 500 !important;
}

.wp-pagenavi .pages {
    border: 1px solid #32b4c8 !important;
    color: #32b4c8 !important;
    padding: 0 10px !important;
    line-height: 40px !important;
    margin: 0 5px !important;
    display: inline-block;
    border-radius: 6px !important;
}

.wp-pagenavi a {
    border: 1px solid #32b4c8 !important;
    line-height: 40px !important;
    padding: 0 16px !important;
    display: inline-block !important;
    color: #fff !important;
    background: #32b4c8 !important;
    text-decoration: none !important;
    position: relative !important;
    margin: 0 5px !important;
    transition: 0.3s !important;
    border-radius: 6px !important;
}

.wp-pagenavi a:hover {
    border: 1px solid #32b4c8 !important;
    color: #32b4c8 !important;
    background: none !important;
    opacity: 1 !important;
}

.wp-pagenavi a.nextpostslink {
    border: 1px solid #32b4c8 !important;
    line-height: 40px !important;
    padding: 0 16px !important;
    display: inline-block !important;
    color: #fff !important;
    text-decoration: none !important;
    position: relative !important;
    margin: 0 5px !important;
    transition: 0.3s !important;
    border-radius: 6px !important;
}

.wp-pagenavi a.nextpostslink:hover {
    border: 1px solid #32b4c8 !important;
    color: #32b4c8 !important;
    background: none !important;
    opacity: 1 !important;
}

.wp-pagenavi a.previouspostslink {
    border: 1px solid #32b4c8 !important;
    line-height: 40px !important;
    padding: 0 16px !important;
    display: inline-block !important;
    color: #fff !important;
    text-decoration: none !important;
    position: relative !important;
    margin: 0 5px !important;
    transition: 0.3s !important;
    background: #32b4c8 !important;
    border-radius: 6px !important;
}

.wp-pagenavi a.previouspostslink:hover {
    border: 1px solid #32b4c8 !important;
    color: #32b4c8 !important;
    background: none !important;
    opacity: 1 !important;
}

.wp-pagenavi .current {
    border: 1px solid #32b4c8 !important;
    line-height: 40px !important;
    padding: 0 16px !important;
    display: inline-block !important;
    color: #fff !important;
    text-decoration: none !important;
    position: relative !important;
    margin: 0 5px !important;
    background: #32b4c8 !important;
    border-radius: 6px !important;
}

@media screen and (max-width:599px){
	.c-pagenavi {
		margin-top: 50px;
	}
}

/* ==================================================
.search
================================================== */

.results {
    text-align: center;
    margin-bottom: 100px;
    font-size: 18px;
}

.search-form {
    margin: 0 0 100px 0;
    height: 50px;
}

.search-form * {
    box-sizing: border-box;
}

#sform {
    position: relative;
    width: 500px;
	margin: 0 auto;
}

#sbox {
	width: 450px;
    height: 50px;
    padding: 0 30px;
    position: absolute;
    left: 0;
    top: 0;
    border-radius: 30px 0 0 30px;
    outline: 0;
    background: #f4f4f4;
    border: none;
	font-size: 16px;
}

#sbtn {
    height: 50px;
    width: 50px;
    position: absolute;
    left: calc(100% - 50px);
    top: 0;
    background: #f4f4f4;
    border: none;
    border-radius: 0 30px 30px 0;
	transition: all .5s;
}

#sbtn .fa-search {
    font-size: 20px;
    position: absolute;
    top: 30%;
    left: 30%;
}

#sbtn:before {
    font-family: FontAwesome;
	font-size: 1.2em;
    content: "\f002";
	color: #32b4c8;
}

#sbtn:hover:before {
    color: #717071;
	cursor: pointer;
}

#sbtn:hover {
	cursor: pointer;
}

@media screen and (max-width:599px){
	.results {
		margin-bottom: 50px;
		font-size: 20px;
	}
	
	.search-form {
		margin: 0 0 50px 0;
	}
	
	#sform {
		width: 100%;
	}
	
	#sbox {
		width: calc(100% - 50px);
		padding: 0 20px;
	}
}