/*! HTML5 Boilerplate v5.0 | MIT License | http://h5bp.com/ */

html {
    color: #10130c;
    font-size: 18px;
    line-height: 1.8em;
}

::-moz-selection {
    background: #b3d4fc;
    text-shadow: none;
}

::selection {
    background: #b3d4fc;
    text-shadow: none;
}

hr {
    display: block;
    height: 1px;
    border: 0;
    border-top: 1px solid #ccc;
    margin: 1em 0;
    padding: 0;
}

audio,
canvas,
iframe,
img,
svg,
video {
    vertical-align: middle;
}

fieldset {
    border: 0;
    margin: 0;
    padding: 0;
}

textarea {
    resize: vertical;
}

.browserupgrade {
    margin: 0.2em 0;
    background: #ccc;
    color: #000;
    padding: 0.2em 0;
}


/* ==========================================================================
   Author's custom styles
   ========================================================================== */


/* Base --------------------------------------------------------------------- */


body {
	/*font-family: roboto, kinto-sans, sans-serif;*/
    font-family: 游明朝, "Yu Mincho", YuMincho, "Hiragino Mincho ProN", "Hiragino Mincho Pro", HGS明朝E, メイリオ, Meiryo, serif;
	/*font-weight: 500;*/
	font-style: normal;
}

h1, h2, h3 {
	padding: 0;
	margin: 0;
}

ul, li {
	padding: 0;
	margin: 0;
	list-style: none;
}

p {
	margin: 0;
}

a {
	color: #4bacf0;
}

a:hover {
	text-decoration: none;
}

a {
	position: relative;
	display: inline-block;
	text-decoration: none;
}

a::after {
	position: absolute;
	bottom: -0px;
	left: 0;
	content: '';
	width: 100%;
	height: 2px;
	background: #55a99f;
	transform: scale(0, 1);
	transform-origin: left top;
	transition: transform .3s;
}

a:hover::after {
	transform: scale(1, 1);
}

header {
	background: #55a99f;
	width: 100vw;
	height: 100vh;
}

.wrap {
	width: 900px;
	padding: 200px 0;
	margin: 0 auto;
}

footer {
	position: relative;
	clear: both;
	padding:  2em 2em;
	color: #ffffff;
	line-height: 2.0em;
    font-size: 13px;
}

footer:after {
	content: "";
	display: block;
	clear: both;
}

footer a {
	color: #ffffff;
}

address {
	font-style: normal;
}


.fsarea-r {
	width: 30%;
	float: left;
    text-align: right;
}

.fsarea-l {
	width: 70%;
	float: left;
}

.fsarea-l:after {
	content: "";
	display: block;
	clear: both;
}

.fsarea-l ul li {
	float: left;
    margin-right: 20px;
	text-align: right;
}

.logo {
	font-size: 20px;
}

.jump {
	position: absolute;
	bottom: 2em;
	right: 2em;
}


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

	/* Base ----------------------------------------------------------------- */

	body {
		width: 100%;
	}

	.wrap {
		width: 90%;
		padding: 15% 5%;
	}
	
	img {
		width: 100%;
		height: auto;
	}

	p {
		margin: 0;
	}

	footer {
		padding:  2em 5%;
	}


	.fsarea-l {
		width: 100%;
		float: none;
	}

	.fsarea-l ul li {
		width: 50%;
        margin: 0;
		float: left;
		text-align: left;
	}

	.fsarea-r {
		width: 100%;
        padding: 5% 0 0;
		float: none;
        text-align: center;
	}

	.logo {
		font-size: 3rem;
		margin-bottom: 5%;
	}

	.jump {
		position: absolute;
		bottom: 2em;
		right: 2em;
	}

}




.gmenu {
    position: relative;
    width: 100%;
    height: 66px;
    box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.1);
    
    ul {
        position: absolute;
        top: 0;
        right: 30px;
    }

    li {
        float: left;
        width: 110px;
        height: 66px;
    }
    
    li a {
        display: block;
        width: 100%;
        height: 66px;
        line-height: 66px;
        text-align: center;
        color: #10130c;
        font-size: 0.7em;
    }

    li a:hover {
        color: #55a99f;
    }

}



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

    .hamburger {
        display : block;
        position: fixed;
        z-index : 3;
        right : 20px;
        top   : 20px;
        width : 42px;
        height: 42px;
        cursor: pointer;
        text-align: center;
    }
    .hamburger span {
        display : block;
        position: absolute;
        width   : 30px;
        height  : 2px ;
        left    : 6px;
        background : #BBBBBB;
        -webkit-transition: 0.3s ease-in-out;
        -moz-transition: 0.3s ease-in-out;
        transition: 0.3s ease-in-out;
    }
    .hamburger span:nth-child(1) {
        top: 10px;
    }
    .hamburger span:nth-child(2) {
        top: 20px;
    }
    .hamburger span:nth-child(3) {
        top: 30px;
    }

    .hamburger.active span:nth-child(1) {
        top : 16px;
        left: 6px;
        background :#fff;
        -webkit-transform: rotate(-45deg);
        -moz-transform   : rotate(-45deg);
        transform        : rotate(-45deg);
    }

    .hamburger.active span:nth-child(2),
    .hamburger.active span:nth-child(3) {
        top: 16px;
        background :#fff;
        -webkit-transform: rotate(45deg);
        -moz-transform   : rotate(45deg);
        transform        : rotate(45deg);
    }

    nav.globalMenuSp {
        position: fixed;
        z-index : 2;
        top: 0;
        left : 0;
        color: #fff;
        /*background: rgba( 71,70,73,0.6 );*/
        background: #55a99f;
        text-align: center;
        width: 100%;
        height: 100vh;
        transform: translateX(100%);
        transition: all 0.6s;
    }

    nav.globalMenuSp ul {
        margin: 15% auto 0;
        padding: 0;
        width: 100%;
    }

    nav.globalMenuSp ul li {
        list-style-type: none;
        padding: 0;
        width: 100%;
    }
    nav.globalMenuSp ul li:last-child {
        padding-bottom: 0;
    }

    nav.globalMenuSp ul li a {
        display: block;
        color: #ffffff;
        padding: 1em 0;
        text-decoration :none;
        transition: .5s all;
    }

    nav.globalMenuSp ul li a:hover{
        background :#ffffff;
        color: #55a99f;
    }

    nav.globalMenuSp.active {
        opacity: 100;
        display: block;
        transform: translateX(0%);
    }

}



/* Unique ------------------------------------------------------------------- */


.logoimg {
	position: absolute;
	top: 20px;
	left: 30px;
	width: 130px;
	z-index: 1000;
}

h2.subttl {
	font-size: 50px;
	line-height: 1.0em;
	margin: 0 0 100px;
	text-align: center;
    letter-spacing: 0.5em;
    color: #ffffff;
    font-weight: normal;
}

.txtls {
	margin-left: -15px;
}

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

	.logoimg {
		top: 2.5%;
		left: 3%;
		width: 20%;
	}

	h2.subttl {
		font-size: 2.5rem;
		line-height: 1.0em;
		margin: 0 0 10%;
	}

	.txtls {
		margin-left: -5px;
	}

}



#about p {
	margin: 0 0 50px;
	font-size: 1.2em;
	line-height: 2.5em;
	letter-spacing: 0.1em;
}

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

	#about p {
		margin: 0 0 50px;
		font-size: 1.0em;
		letter-spacing: 0em;
	}

}



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

.fbox .biz {
	/*background: #55a99f;*/
	/*background: #ffffff;*/
	width: 46%;
	margin: 0 4% 3% 0;
	color: #ffffff;
	text-align: center;
}

.fbox .biz:nth-child(2n) {
	margin: 0 0 3% 0;
}

.biz img {
	width: 100%;
    border-radius: 20px;
}

.biz h3 {
	padding: 15px 0;
	font-size: 18px;
	font-weight: normal;
	line-height: 1.2em;
}


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

	.fbox .biz {
		width: 100%;
		margin: 0 0 2% 0;
	}

	.fbox .biz:nth-child(2n) {
		margin: 0 0 2% 0;
	}

	.biz h3 {
		padding: 5% 0;
		font-size: 90%;
	}

}




.sub {
    
    p {
        margin: 0 0 50px;
    }

    .wrap {
        padding: 100px 0;
    }

    h1 {
        text-align: center;
        margin: 0 0 2.0em;
        font-weight: normal;
    }

    h2.pttl {
        background: #55a99f;
        text-align: left;
        font-weight: normal;
        border-radius: 4px;
        color: #ffffff;
        padding: 0.75em 1em;
        margin: 70px 0 50px;
    }

    h3 {
        color: #55a99f;
        padding:  0 0 0.5em;
        margin: 0 0 30px;
        border-bottom: solid 1px #55a99f;
    }

    table {
        width: 100%;
        border-collapse: separate;
        border-spacing: 0 15px;
    }

    table th {
        background: #55a99f;
        border-top-left-radius: 4px;
        border-bottom-left-radius: 4px;
        border: solid 0.5px #55a99f;
        width: 23%;
        padding: 1.2em 2em 0;
        font-size: 70%;
        text-align: left;
        vertical-align: top;
        color: #ffffff;
        font-weight: normal;
    }

    table td {
        /*background: #fafafa;*/
        border-top-right-radius: 4px;
        border-bottom-right-radius: 4px;
        border: solid 0.5px #55a99f;
        /*border-bottom: solid 1px #eeeeee;*/
        width: 77%;
        padding: 1.0em 2em;
        font-size: 80%;
    }

    .cbox {
        background: #55a99f;
        padding: 2em;
        margin: 25px 0;
        color: #ffffff;
        border-radius: 10px;
        text-align: center;
    }
 
     .cbox h2 {
        margin: 0 0 1em;
    }

    .cbox p {
        margin: 0;
        line-height: 2.5em;
    }

    .cbox p span {
        font-size: 3.0em;
    }

}

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

    .sub {

        p {
            margin: 0 0 7%;
            font-size: 0.8em;
        }

        .wrap {
            padding: 20% 0;
        }

        h1 {
            font-size: 1.3em;
        }

        h2.pttl {
            padding: 0.75em 1em;
            margin: 10% 0 7%;
            font-size: 1.2em;
        }

        h3 {
            padding:  0 0 0.5em;
            margin: 0 0 5%;
            font-size: 1em;
        }

        table {
            width: 100%;
        }

        table th {
            border-top-right-radius: 4px;
            border-bottom-left-radius: 0;
            display: block;
            clear: both;
            width: 90%;
            padding: 0.5em 5% 0.5em;
            text-align: left;
            vertical-align: middle;
        }

         table th br {
             display: none;
         }

        table td {
            border-top-right-radius: 0;
            border-bottom-left-radius: 4px;
            display: block;
            clear: both;
            width: 90%;
            line-height: 2.0em;
            padding: 1.0em 5%;
        }

        .cbox {
            padding: 1em 0;
            margin: 3% 0;
        }

         .cbox h2 {
            margin: 0.5em 0 0.75em;
        }

        .cbox p {
            margin: 0;
            line-height: 3.0em;
        }

        .cbox p span {
            font-size: 2.5em;
        }

    }

}



#contact  {
	font-weight: bold;
}

#contact a {
	color: #10130c;
}

#contact a::after {
	background: #10130c;
}

#contact ul::after {
	content: "";
	display: block;
	clear: both;
}

#contact ul li {
	float: left;
	font-size: 1.9em;
	line-height: 1.0em;
}

#contact ul li span {
	font-size: 60%;
	line-height: 0.5em;
}

#contact ul li:first-child {
	margin-right: 2em;
}

#contact p {
	margin-top: 50px;
	margin-bottom: 20px;
}

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

	#contact ul li {
		float: left;
		font-size: 1.25em;
		line-height: 2.5em;
	}

	#contact ul li:first-child {
		margin-right: 0;
	}

	#contact p {
		margin-top: 5%;
		margin-bottom: 3%;
	}

}




.bg-b {
	background: #0b201e;
	color: #ffffff;
}

.bg-g {
	background: #55a99f;
}

.flowing {
	width: 0;
	margin: 0;
	white-space: nowrap;
	overflow: hidden;
	animation: flowing-anim 1s forwards linear;
}

@keyframes flowing-anim {
 0%{
     width: 0%;
   }
100%{
     width: 100%;
   }
}


#jump {
	position: fixed;
	bottom: 10px;
	right: 10px;
	z-index: 100;
}

#jump a {
	outline: none;
}

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



}




/* General Purpose ---------------------------------------------------------- */

.center {
	text-align: center;
}

.mb0 {
    margin-bottom: 0 !important;
}

.pc {
	display: inline;
}

.sp {
	display: none;
}

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

	.pc {
		display: none;
	}
	
	.sp {
		display: inline;
	}
	
}




/* ==========================================================================
   Media Queries
   ========================================================================== */

@media only screen and (min-width: 35em) {

}

@media print,
       (-o-min-device-pixel-ratio: 5/4),
       (-webkit-min-device-pixel-ratio: 1.25),
       (min-resolution: 120dpi) {

}

/* ==========================================================================
   Helper classes
   ========================================================================== */

.hidden {
    display: none !important;
    visibility: hidden;
}

.visuallyhidden {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
}

.visuallyhidden.focusable:active,
.visuallyhidden.focusable:focus {
    clip: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    position: static;
    width: auto;
}

.invisible {
    visibility: hidden;
}

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

.clearfix:after {
    clear: both;
}

.clearfix {
    *zoom: 1;
}

/* ==========================================================================
   Print styles
   ========================================================================== */

@media print {
    *,
    *:before,
    *:after {
        background: transparent !important;
        color: #000 !important;
        box-shadow: none !important;
        text-shadow: none !important;
    }

    a,
    a:visited {
        text-decoration: underline;
    }

    a[href]:after {
        content: " (" attr(href) ")";
    }

    abbr[title]:after {
        content: " (" attr(title) ")";
    }

    a[href^="#"]:after,
    a[href^="javascript:"]:after {
        content: "";
    }

    pre,
    blockquote {
        border: 1px solid #999;
        page-break-inside: avoid;
    }

    thead {
        display: table-header-group;
    }

    tr,
    img {
        page-break-inside: avoid;
    }

    img {
        max-width: 100% !important;
    }

    p,
    h2,
    h3 {
        orphans: 3;
        widows: 3;
    }

    h2,
    h3 {
        page-break-after: avoid;
    }
}