@charset "UTF-8";
/*
 * cmn_layout.css
 *
 *  version --- 3.5
 *  updated --- 2012/12/7
 */


/* !HTML5 elements
---------------------------------------------------------- */
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section
{ display: block;}

/* !Reseting
---------------------------------------------------------- */

html { font-size: 62.5%; /* font-size 1em = 10px on default browser settings */ }
body {
	font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;
    font-weight: 500;
	-webkit-text-size-adjust: 100%;
	line-height: 1.5;
	color: #333;
}
_:lang(x)::-ms-backdrop, body {
    font-family: "メイリオ", Meiryo, sans-serif;
} 
body, div, pre, p, blockquote, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, form, fieldset, th, td, figure
{ margin: 0; padding: 0;}
input, textarea
{ margin: 0; }
label
{ cursor: pointer;}
table
{ border-collapse: collapse; border-spacing: 0; }
fieldset, img
{ border: 0;}
img
{ vertical-align: top;}
address, caption, cite, code, dfn, em, th, var
{ font-style: normal; font-weight: normal;}
ol, ul
{ list-style: none;}
caption, th
{ text-align: left;}
h1, h2, h3, h4, h5, h6
{ font-weight: normal;}
q:after, q:before
{ content:'';}
a, input
{ /* outline: none; */ }
abbr, acronym
{ border: 0;}

/* !Reset Module
---------------------------------------------------------- */
.reset div, .reset dl, .reset dt, .reset dd, .reset ul, .reset ol, .reset li, .reset h1, .reset h2, .reset h3, .reset h4, .reset h5, .reset h6,
.reset pre, .reset form, .reset fieldset, .reset p, .reset blockquote, .reset th, .reset td
{ margin: 0; padding: 0;}
.reset input, .reset textarea
{ margin: 0; }
.reset table
{ border-collapse: collapse; border-spacing: 0; }
.reset fieldset, .reset img, .reset abbr, .reset acronym
{ border: 0;}
.reset address, .reset caption, .reset cite, .reset code, .reset dfn, .reset em, .reset th, .reset var
{ font-style: normal; font-weight: normal;}
.reset ol, .reset ul
{ list-style: none;}
.reset caption, .reset th
{ text-align: left;}
.reset h1, .reset h2, .reset h3, .reset h4, .reset h5, .reset h6
{ font-weight: normal;}
.reset a, .reset input
{ /* outline: none; */ }
.reset q:after, .reset q:before
{ content:'';}

/* !Clearfix
---------------------------------------------------------- */
.clearfix,
#contents,
section,
article
{
	display: block;
	min-height: 1%;
}
.clearfix:after,
#contents:after,
section:after,
article:after
{
	clear: both;
	content:".";
	display: block;
	height: 0;
	visibility: hidden;
}
* html .clearfix,
* html #contents,
* html section,
* html article
{
	height: 1%;
	/*\*//*/
	height: auto;
	overflow: hidden;
	/**/
}

/* ==========================================================
 
     !SP

========================================================== */

* {
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}

img {
	width: 100%;
	max-width: 100%;
	height: auto;
}

.sp { display: block !important; }
.pc { display: none !important; }

/* !Layout
---------------------------------------------------------- */

html { overflow-y: scroll;}
body { font-size: 1.6rem; text-align: left; position: relative; }
@media print {
	html,
	html body { *zoom: 0.65;}
}

/*----------------------------------------------------------
	header
---------------------------------------------------------- */

header nav {
    width: 100%;
    height: 70px;
    position: relative;
    background: #FFF;
}

header .drawer {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    position: relative;
    height: 70px;
    padding: 0 1em;
}

header a.navbar_logo img {
    width: auto;
    height: 48px;
}

header .navbar_toggle_icon {
    position: relative;
    display: block;
    height: 2px;
    width: 30px;
    background: #00469B;
    -webkit-transition: ease .5s;
    transition: ease .5s;
}

header .navbar_toggle_icon:nth-child(1) {
    top: 0;
}

header .navbar_toggle_icon:nth-child(2) {
    margin: 8px 0;
}

header .navbar_toggle_icon:nth-child(3) {
    top: 0;
}

/*OPEN時の動き*/
header .navbar_toggle.open .navbar_toggle_icon:nth-child(1) {
    top: 10px;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
}

header .navbar_toggle.open .navbar_toggle_icon:nth-child(2) {
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    opacity: 0;
}

header .navbar_toggle.open .navbar_toggle_icon:nth-child(3) {
    top: -10px;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
}

header .menu{
    position: relative;
    z-index: 9999;
    -webkit-transform: translateX(-100%);
    transform: translateX(-100%);
    -webkit-transition:ease .5s;
    transition:ease .5s;
}

header .menu ul li {
    padding: 1.5em;
    border-bottom: 1px solid #FFF;
    background: #00469B;
}

header .menu ul li a {
    display: block;
    color: #fff;
    text-decoration: none;
}

header .menu ul.utility li {
    padding: 1em 1.5em;
    border-bottom: 1px solid #CCC;
    background: #FFF;
}

header .menu ul.utility li a { color: #333; }
header .menu ul.utility li.recruit a { color: #00469B; }

/*OPEN時の動き*/
header .menu.open {
    -webkit-transform:translateX(0);
    transform:translateX(0);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

/* !wrapper
---------------------------------------------------------- */

#wrapper {
	margin: 0 auto;
	width: 90%;
	text-align: left;
}

/* !pagetop
---------------------------------------------------------- */

.pagetop {
  display: none; /*非表示にしておく*/
}

.pagetop a:link {
    display: inline-block;
    margin: 20px;
    line-height: 1;
    font-size: 4rem;
    color: #3c3b56;
}

/* !footer
---------------------------------------------------------- */

footer nav {
    background: url(../images/common/bg_footer.png) repeat-y #349B6A top right / 50% auto;
    font-size: 1.4rem;
}

footer nav .title,
footer nav .toggle{
	margin: 0 auto;
}

footer nav .title {
    pointer-events: all;
	display: block;
    font-size: 1.8rem;
    font-weight: bold;
	color: #fff;
    border-bottom: 1px solid #fff;
    padding: 1em;
}

footer nav input { display: none; }

footer .toggle{
    height: 0;
    transition: .5s;
}

footer input:checked + .toggle{
    height: auto;
}

footer .ft_nav li,
footer .toggle.ft_nav li:last-child { border-bottom: solid 1px #fff; }
footer .toggle.ft_nav li { border-bottom: dotted 1px #fff; }

footer .toggle.ft_nav li {
    line-height: 0;
    visibility: hidden;
    opacity: 0;
    transition: 
        padding .5s,
        line-height .5s,
        visibility .3s,
        opacity .3s;
}

footer .ft_nav li a {
    padding: 1em 1em 1em 2em;
    display: block;
    position: relative;
    color: #fff;
    text-decoration: none;
}

footer .ft_nav li a::before {
  content: "";
  display: inline-block;
  border: 4px solid transparent;
  border-left-color: #fff;
  position: absolute;
  left: 1em;
  top: 50%;
  margin-top: -4px;
}

footer input:checked + .toggle li{
    line-height: 1.5;
    visibility: visible;
    opacity: 1;
}

footer .accordion_icon,
footer .accordion_icon span {
	display: inline-block;
	transition: all .4s;
	box-sizing: border-box;
}
footer .accordion_icon {
	position: relative;
	width: 20px;
	height: 20px;
	float: right;
	margin-right: 5px;
}
footer .accordion_icon span {
	position: absolute;
    left: 6px;
    width: 100%;
	height: 2px;
    background-color: #fff;
	border-radius: 4px;
	-webkit-border-radius: 4px;
	-ms-border-radius: 4px;
	-moz-border-radius: 4px;
	-o-border-radius: 4px;
}
footer .accordion_icon span:nth-of-type(1) {
    top: 10px;
	transform: rotate(0deg);
    -webkit-transform: rotate(0deg);
	-moz-transform: rotate(0deg);
	-ms-transform: rotate(0deg);
    -o-transform: rotate(0deg);
}
footer .accordion_icon span:nth-of-type(2) {
    top: 10px;
	transform: rotate(90deg);
    -webkit-transform: rotate(90deg);
	-moz-transform: rotate(90deg);
	-ms-transform: rotate(90deg);
    -o-transform: rotate(90deg);
}

footer .accordion_icon.active span:nth-of-type(1) {
	display:none;
}
footer .accordion_icon.active span:nth-of-type(2) {
	top: 10px;
	transform: rotate(180deg);
    -webkit-transform: rotate(180deg);
	-moz-transform: rotate(180deg);
	-ms-transform: rotate(180deg);
    -o-transform: rotate(180deg);
}

footer ul.utility { padding: 20px; }
footer ul.utility li:first-child { border-top: 1px dotted #fff;}
footer ul.utility li {
    border-bottom: 1px dotted #fff;
}

footer div.address {
    padding: 50px 0;
}

footer div.address p.logo {
    width: 60%;
    margin: 0 auto;
}

footer div.address address {
    padding: 50px 10% 0;
    text-align: center;
}

footer div.address address p:not(.name) {
    font-size: 1.3rem;
}

/* !h(n)eading
---------------------------------------------------------- */

main h1 {
    margin: 0 0 30px;
    border-top: solid 3px #dbdbdb;
    border-bottom: dotted 1px #dbdbdb;
    position: relative;
    padding: 15px;
    color: #da143c;
}

main h1:before {
    position: absolute;
    content: " ";
    display: block;
    border-top: solid 3px #da143c;
    top: -3px;
    left: 0;
    width: 30%;
}

main h2 {
    font-size: 1.8rem;
    padding: 0 10px 10px;
    margin: 0 0 20px;
    border-bottom: 1px dotted #da143c;
    font-weight: bold;
}

main h3 {
    margin: 0 0 15px;
    color: #da143c;
}


/* ==========================================================
 
     !PC

========================================================== */

@media only print, screen and (min-width: 1000px) {

/*----------------------------------------------------------
	header
---------------------------------------------------------- */

header nav{
    height: 150px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 0 5%;
}

header .drawer {
    width: 30%;
    max-width: 250px;
    padding: 0;
}

header a.navbar_logo img {
    width: 100%;
    height: auto;
}
    
header .navbar_toggle{
    display: none;
}
    
header .menu{
    -webkit-transform: translateX(0);
    transform: translateX(0);
    display: flex;
    flex-direction: column-reverse;
}
    
header .menu ul {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}
    
header .menu ul li {
    position: relative;
    padding: 0;
    border-bottom: none;
    background: #fff;
    white-space: nowrap;
}

header .menu ul:not(.utility) li:first-child::before {
    content: "";
    height: 1.5em;
    position: absolute;
    top:0;
    bottom: 0;
    left: 0;
    margin: auto;
    border-left: 1px solid #333;
}
header .menu ul:not(.utility) li::after {
    content: "";
    height: 1.5em;
    position: absolute;
    top:0;
    bottom: 0;
    right: 0;
    margin: auto;
    border-left: 1px solid #333;
}

header .menu ul li a { padding: 0 1.5em; }
header .menu ul li a:hover { text-decoration: underline; }
header .menu ul:not(.utility) li a { text-align: center; }
    
header .menu ul.utility {
    font-size: 1.3rem;
    padding: 0 0 40px;
}
    
header .menu ul.utility li {
    width: 8em;
    padding: 0 3%;
    border: none;
    background: #fff;
    white-space: nowrap;
}
header .menu ul.utility li:last-child { padding: 0 0 0 3%; }
header .menu ul.utility li a {
    padding: 0;
}
    
header .menu ul li a {
    color: #333;
}

}

@media only print, screen and (min-width: 769px) {

.sp { display: none !important; }
.pc { display: block !important; }
    
a[href^="tel:"] { pointer-events: none; }
    
/* !wrapper
---------------------------------------------------------- */

div#wrapper {
	padding: 0 0 80px;
}

/* !footer
---------------------------------------------------------- */

footer nav {
    background-size: auto auto;
}
    
footer div.footer_navi {
    max-width: 1080px;
    margin: 0 auto;
    padding: 15px 40px 40px;
    display: flex;
    justify-content: space-between;
}
    
footer div.footer_navi div {
    width: 31%;
}

footer nav .title {
	pointer-events: none;
    padding: 0.8em;
}
    
footer p.accordion_icon { display: none; }
    
footer .toggle.ft_nav {
    height: auto;
}
    
footer .toggle.ft_nav li {
    line-height: 1.5;
    visibility: visible;
    opacity: 1;
}

footer .ft_nav li a {
    padding: 0.8em 0.8em 0.8em 2em;
}
footer .toggle.ft_nav li a { 
    display: block;
    position: relative;
    color: #fff;
    text-decoration: none;
}
    
footer ul.utility {
    padding: 30px 0 0;
    max-width: 1060px;
    margin: 0 auto;
}
    
footer div.address {
    padding: 30px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

footer div.address p.logo {
    width: 250px;
    margin: 0;
}

footer div.address address {
    padding: 0;
    text-align: left;
}
	
}

