@charset "utf-8";
@import url(https://use.typekit.net/qkh6qzz.css);
/* --HTML-- */
html {
	overflow-y:scroll;
	height:100%;
	-webkit-overflow-scrolling: touch;
}
html.wf-active {
  visibility: visible;
}

/* --BODY-- */
body {
	margin:0;
	padding:0;
	height:100%;
}

/* --OTHER TAGS-- */
a img, img { border:0; }
a {}

blockquote, dd, div, dl, dt, h1, h2, h3, h4, h5, h6, li, ol, ul, pre, span, table, caption, p {
	margin:0;
	padding:0;
}

h1,h2,h3,h4,h5,h6 {
	font-weight: normal;	
}
abbr, acronym {
	border:0;
}

address, cite, code, dfn, em, th, var {
	font-style:normal;
	font-weight:normal;
}

code, kbd, pre, samp, tt {
	font-family:monospace;
	line-height:100%;
}

	/* for IE7 */
	*+html code, kbd, pre, samp, tt {
	font-size:108%; 
	}

q:before, q:after { content:''; }

/* --A-- */
a {
	cursor:pointer;
	text-decoration:underline;
}

a:hover,a:focus { text-decoration:none; }

/*figure*/
figure { margin: 0; padding: 0;}

/* --IMG-- */
img { vertical-align: bottom; }
img.width100 { width:100% !important; height:auto !important; }

/* --FORM-- */
button, fieldset, form, input, label, legend, select, textarea {
	font-family:inherit;
	font-size:100%;
	font-style:inherit;
	font-weight:inherit;
	margin:0;
	padding:0;
	vertical-align:baseline;
}
fieldset {
	border:1px solid #ccc;
	margin-bottom:1em;
	padding:0 1em 1em 1em;
}

legend {
	background:#fff;
	padding:0.3em;
}

input, textarea {
	padding:0;
	margin: 0;
	vertical-align:middle;
}

input[type="checkbox"],input[type="radio"] { vertical-align:-2px !important; margin-right:5px; }
*input[type="checkbox"],*input[type="radio"] { vertical-align:2px !important; }

input[type="submit"],input[type="button"] { padding:0em; margin: 0; cursor: pointer;}

select { padding:0.3em; }


input,textarea {
	border:1px solid #888;
	padding:0.5em !important;
	border-radius:3px;
}
form .btnarea {
	text-align:center;
}
span.red {
	color:#ff0000;
}
form span.red {
	color:#ff0000;
}

/* --LIST-- */
ol, ul {
	text-align:justify;
	text-justify:inter-ideograph;
}
li {
	list-style-type: none;	
}

/* --TABLE-- */
table {
	border-collapse:collapse;
	border-spacing:0;
	font-size:100%;
}
th,td{vertical-align:top;}
section table {
	width:100%;
}

/* --HR-- */
hr { display: none; clear:both; } /* 不可視使用 */

/* -------------------------------------------
PC/SP 共通
------------------------------------------- */
img {
	max-width:100%;
	height:auto;
}
article img.aligncenter {
    display: block;
    margin: 0 auto;
}
article .alignright { float: right; margin-left:1em; }
article .alignleft { float: left; margin-right:1em; }

/* .article */
#main article{
}

/* P */
article p { margin-bottom:1.4em; }

/* -------------------------------------------
Module
------------------------------------------- */
/* font_position */
.left { text-align: left !important; }
.center { text-align: center !important; }
.right { text-align: right !important; }

/* ※ */
em,sup{color:#37a061;}
sup{margin-left:3px;}


/* -------------------------------------------
Layout
------------------------------------------- */
body {
	font-size: 18px;
	line-height: 1.8;
	text-align: justify;
	font-family: "segoe-ui", Meiryo, sans-serif;
	font-weight: 400;
	height: 100%;
	width: 100%;
    color: #707070;
    background: #F0EAEA;
}
section { position: relative; box-sizing: border-box; }
section.FullWidth { width: 100%; margin: 0; padding: 0;}
.wp-block-embed__wrapper {
    width: 100%;
    aspect-ratio: 16 / 9;
}
.wp-block-embed__wrapper iframe {
    width: 100%;
    height: 100%;
}


/* -------------------------------------------
Elements
------------------------------------------- */
a {color:#556313; text-decoration:none; transition: all 0.3s ease-out;}
a:hover {color:#2ca6e0; text-decoration:none;}
a img {transition: opacity 0.3s ease-out;}
a:hover img {
	opacity:0.75 ;
}
input[type="submit"],input[type="button"] { transition: opacity 0.3s ease-out; }
input[type="submit"]:hover,
input[type="button"]:hover {
	filter:alpha(opacity=75); /*IE*/
	-moz-opacity:0.75; /*FF*/
	opacity:0.75 ;
}
.inner {
	width: 96%;
	margin: auto;
}
h1 {
    font-size: 2rem;
    font-weight: 600;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
	font-family: 'Segoe UI' Meiryo, sans-serif;
}
i {margin-right: 0.5em; font-size: 1.25em;}
p { margin-bottom: 1.5em; }
section p:nth-last-of-type(1) { margin-bottom: 0; }

/* -------------------------------------------
SiteHeader
------------------------------------------- */
header#siteheader {
    display: flex;
    flex-wrap: wrap;
    position: fixed;
    width: 100%;
    box-sizing: border-box;
    z-index: 10;
    transition: all 0.4s ease-out;
}
header#siteheader.scroll {
    background: rgba(255,255,255,.85);
}
header#siteheader h1 {
    line-height: 1;
    padding: 0;
}
header#siteheader h1 img {
}

/* -------------------------------------------
Footer
------------------------------------------- */
footer#sitefooter {
    display: flex;
    flex-wrap: wrap;
    box-sizing: border-box;
    background: #F0EAEA;
}
footer#sitefooter p {
    margin-bottom: 0;
}
footer#sitefooter address {
    font-weight: 300;
}
footer#sitefooter #Footer_Upper {
    text-align: center;
    width: 100%;
    border-top: solid 1px #707070;
    border-bottom: solid 1px #707070;
    box-sizing: border-box;
    font-size: 0.8em;
}
footer#sitefooter #Footer_Nav {
    box-sizing: border-box;
}
footer#sitefooter #Footer_Nav ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    width: 100%;
}
footer#sitefooter #Footer_Info {
    box-sizing: border-box;
}
footer#sitefooter .Footer_Info-Copyright {
    text-align: center;
    font-size: 0.8em;
    width: 100%;
}

/* -------------------------------------------
MainColumn
------------------------------------------- */


/* -------------------------------------------
Pagetop
------------------------------------------- */
/* トップに戻るボタン */
#page-top {
	position: fixed;
	bottom: 1%;
	right: 1%;
	font-size: 100%;
	z-index: 100000;
	line-height: 1;
	width: 3em;
	padding: 1em 1em 0;
}
#page-top a {
	border-top: solid 1px #4e3b3c;
	text-decoration: none;
	color: #4e3b3c;
	text-align: center;
	display: block;
}
#page-top a:hover {
	text-decoration: none;
}

/* -------------------------------------------
Pages
------------------------------------------- */

/* -------------------------------------------
MediaQuery
------------------------------------------- */
/*SmartPhone*/
@media screen and (max-width:767px) {
    .pc_elm { display:none; }
	.sp_elm { display:block; }
	body {font-size: 3.5vw;}
    h1 { font-size: 1.5rem }
    /* -------------------------------------------
    SiteHeader
    ------------------------------------------- */
    header#siteheader {
        justify-content: space-between;
        padding: 0rem 0.5rem 0rem 1rem;
        height: 52px;
    }
    header#siteheader h1 img {
        height: 34px;
    }
    /* -------------------------------------------
    Footer
    ------------------------------------------- */
    footer#sitefooter {
        padding-bottom: 2rem;
    }
    footer#sitefooter #Footer_Upper {
        padding: 2rem;
    }
    footer#sitefooter #Footer_Upper img {
        height: 32px;
        margin-bottom: 0.5em;
    }
    footer#sitefooter #Footer_Nav {
        width: 100%;
        padding: 2rem 1rem 3rem;
    }
    footer#sitefooter #Footer_Nav ul {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-around;
        width: 100%;
    }
    footer#sitefooter #Footer_Nav ul li {
        width: 27%;
    }
    footer#sitefooter #Footer_Info {
        width: 100%;
        text-align: center;
        padding: 0rem 2rem 2rem;
    }
    footer#sitefooter #Footer_Info img {
        height: 42px;
        margin-bottom: 0.5em;
    }
}
@media screen and (min-width:768px) {
    .pc_elm { display:block; }
	.sp_elm { display:none; }
}

@media screen and (min-width:768px) and (max-width:1024px) {
	body {font-size: 2vw;}
    h1 { font-size: 1.75rem }
    /* -------------------------------------------
    SiteHeader
    ------------------------------------------- */
    header#siteheader {
        justify-content: space-between;
        padding: 0.5rem 1rem;
        height: 66px;
    }
    header#siteheader h1 img {
        height: 42px;
    }
    /* -------------------------------------------
    Footer
    ------------------------------------------- */
    footer#sitefooter {
        padding-bottom: 2rem;
        align-items: center;
        justify-content: space-between;
    }
    footer#sitefooter #Footer_Upper {
        padding: 2rem;
    }
    footer#sitefooter #Footer_Upper img {
        height: 42px;
        margin-bottom: 0.5em;
    }
    footer#sitefooter #Footer_Nav {
        width: 50%;
        padding: 2rem 1rem 3rem;
        font-size: 0.9em;
    }
    footer#sitefooter #Footer_Nav ul {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-around;
        width: 100%;
    }
    footer#sitefooter #Footer_Nav ul li {
        width: 27%;
        margin-top: 1.25em;
    }
    footer#sitefooter #Footer_Info {
        width: 45%;
        padding: 2rem 1rem 3rem;
        font-size: 0.9em;
    }
    footer#sitefooter #Footer_Info img {
        height: 48px;
        margin-bottom: 0.5em;
    }
}

/*Tablet*/
@media screen and (max-width:1024px) {
    #MainNav .pc_elm { display: none; }
    #MainNav .sp_elm { display: block; }

    /* -------------------------------------------
    MainNavigation
    ------------------------------------------- */
    .openbtn {
        position:relative;
        z-index: 10000;
        /*top:5px;
        right: 10px;*/
        cursor: pointer;
        width: 50px;
        height: 50px;
    }
    .openbtn span {
        display: inline-block;
        transition: all .4s;
        position: absolute;
        left: 14px;
        height: 3px;
        border-radius: 2px;
        background-color: #666;
        width: 45%;
      }
    .openbtn span:nth-of-type(1) {
        top:15px;	
    }
    .openbtn span:nth-of-type(2) {
        top:23px;
    }
    .openbtn span:nth-of-type(3) {
        top:31px;
    }
    .openbtn.active span:nth-of-type(1) {
        top: 18px;
        left: 18px;
        transform: translateY(6px) rotate(-45deg);
        width: 30%;
    }
    .openbtn.active span:nth-of-type(2) {
        opacity: 0;
    }
    .openbtn.active span:nth-of-type(3){
        top: 30px;
        left: 18px;
        transform: translateY(-6px) rotate(45deg);
        width: 30%;
    }
    #MainNav {
        position:fixed;
        z-index: 999;
        top:0;
        left: -120%;
        width:100%;
        height: 100vh;
        background:rgba(255,255,255,.95);
        transition: all 0.6s;
        display: flex;
        flex-direction: column;
    }
    #MainNav.panelactive {
        left: 0;
    }
    #MainNav > ul {
        position: absolute;
        z-index: 999;
        top:50%;
        left:50%;
        transform: translate(-50%,-50%);
        width: 90%;
    }
    nav#MainNav ul li {
        width: 100%;
        padding: 1em 0;
        margin: auto;
        border-right: none;
        border-bottom: solid 1px #222222;
        position: relative;
        font-weight: 600;
    }
    #MainNav li a {
        text-decoration: none;
        padding:10px;
        display: block;
        text-transform: uppercase;
        width: 100%;
        text-align: center;
    }
    nav#MainNav p.tel {
        transform: translateY(10vh) scale(1.5);
    }
    nav#MainNav p.tel span {
        display: block;
        font-size: 2.25em;
        font-weight: 700;
    }
    nav#MainNav p.tel span.small {
        color: #222222;
    }    
    nav#MainNav {
        padding: 0;
    }
    nav#MainNav ul{
        display: block;
    }
    nav#MainNav li.has-child ul,
    nav#MainNav li.has-child ul ul{
        position: relative;
        left:0;
        top:0;
        width:100%;
        visibility:visible;
        opacity:1;
        display: none;
        transition:none;
    }
    nav#MainNav li.has-child ul li {
        border-bottom: none;
        padding: 0;
    }
    nav#MainNav ul li a {
        display: block;
    }
    nav#MainNav ul li.has-child::before{
        left:20px;	
    }
    nav#MainNav ul ul li.has-child::before{
        transform: rotate(135deg);
        left:20px;
    }
    nav#MainNav ul li.has-child.active::before{
        transform: rotate(-45deg);
    }
    #MainNav ul li.has-child::before{
        content:'';
        position: absolute;
        left: 2em;
        top: 2em;
        width: 6px;
        height: 6px;
        border-top: 2px solid #999;
        border-right:2px solid #999;
        transform: rotate(135deg);
    }
    /*3階層目を持つliの矢印の設定*/
    #MainNav ul ul li.has-child::before{
        content:'';
        position: absolute;
        left: 6px;
        top: 17px;
        width: 6px;
        height: 6px;
        border-top: 2px solid #fff;
        border-right:2px solid #fff;
        transform: rotate(45deg);
    }
}

/*Desktop*/
@media screen and (min-width:1025px) {
    /* -------------------------------------------
    SiteHeader
    ------------------------------------------- */
    header#siteheader {
        justify-content: space-between;
        padding: 1rem 1.5rem;
        height: 80px;
        align-items: flex-end;
    }
    header#siteheader h1 img {
        height: 48px;
        transition: all 0.4s ease-out;
    }
    header#siteheader.scroll {
        height: 60px;
        padding: 0 1.5rem;
    }
    header#siteheader.scroll img {
        transform: scale(0.8);
        transform-origin: top center;
    }
    /* -------------------------------------------
    Footer
    ------------------------------------------- */
    footer#sitefooter {
        padding-bottom: 3rem;
        align-items: center;
        justify-content: space-around;
    }
    footer#sitefooter #Footer_Upper {
        padding: 2.5rem;
        margin-bottom: 3em;
    }
    footer#sitefooter #Footer_Upper img {
        height: 48px;
        margin-bottom: 0.5em;
    }
    footer#sitefooter #Footer_Nav {
        width: 50%;
        padding: 2rem 1rem 3rem;
        font-size: 0.9em;
    }
    footer#sitefooter #Footer_Nav ul {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-around;
        width: 100%;
    }
    footer#sitefooter #Footer_Nav ul li {
        width: 27%;
        margin-top: 1.25em;
    }
    footer#sitefooter #Footer_Info {
        width: auto;
        padding: 2rem 1rem 3rem;
        font-size: 0.9em;
    }
    footer#sitefooter #Footer_Info img {
        height: 42px;
        margin-bottom: 1em;
    }

    /* -------------------------------------------
    MainNavigation
    ------------------------------------------- */
    nav#MainNav {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        width: auto;
    }
    nav#MainNav ul {
        display: flex;
        flex-wrap: wrap;
        align-items: flex-end;
        justify-content: space-between;
        font-size: 1rem;
        font-weight: 600;
    }
    header#siteheader.scroll nav#MainNav ul li {
        transform: scale(0.9);
    }
    nav#MainNav ul li {
        display: flex;
        align-items: center;
        padding: 0em;
        line-height: 1.2;
        text-align: center;
        box-sizing: border-box;
        padding-left: 1.5em;
        position: relative;
        transition: all .3s ease-out;
    }
    nav#MainNav ul li a {
        text-decoration: none;
        color: #707070;
        display: block;
        padding: 0.5em;
    }
    nav#MainNav ul li a {
        position: relative;
        transition: all .7s;
    }

    nav#MainNav ul li a::after {
        content: '';
        position: absolute;
        z-index: -1;
        bottom: 0;
        left: 0;
        width: 0;
        height: 1px;
        background:#0481A2;
        opacity: 0;
    }
    nav#MainNav ul li.current a::after,
    nav#MainNav ul li a:hover::after {
        width: 100%;
        opacity: 1;
        animation:bgappear 0.5s forwards;
    }
    nav#MainNav ul li > ul {
        display: block;
        /*絶対配置で位置を指定*/
        position: absolute;
        left: 1em;
        top: 3em;
        z-index: 4;
        width: 11em;
        background: #FFFFFF;
        /*はじめは非表示*/
        visibility: hidden;
        opacity: 0;
        /*アニメーション設定*/
        transition: all .3s;        
    }
    nav#MainNav ul li > ul li {
        padding-left: 0;
    }
    nav#MainNav ul li > ul li a {
        display: block;
        width: 100%;
        text-align: left;
    }
    nav#MainNav ul li.has-child:hover > ul,
    nav#MainNav ul li.has-child ul li:hover > ul,
    nav#MainNav ul li.has-child:active > ul,
    nav#MainNav ul li.has-child ul li:active > ul{
        visibility: visible;
        opacity: 1;
    }
    /*アニメーションで線を伸ばして背景をつける*/
    @keyframes bgappear {
      0% {
            width: 0%;
            height: 1px;
      }
      50% {
            width: 100%;
            height: 1px;
      }
      100% {
            width: 100%;
            height: 100%;
            background: #556313;
            border-radius: 3px;
      }
    }
    nav#MainNav ul li.current a,
    nav#MainNav ul li a:hover{
        color: #fff;
        z-index: 1;
    }
}
