/* common */
body {font-size: 1.6rem;}

/* header */
#header{
width: 100%;
transition: .5s;
}
#header_inner{
max-width:1280px;
margin:0 auto;
display:flex;
justify-content: space-between;
}
#header h1 {
width:30%;
background: #EE001E;
padding: .3em 0;
}
#header h1 span {
font-size: 1rem;
font-weight:900;
}
#header.menuopen-big{
position: relative;
}
#header.menuopen-small{
    position: fixed;
    z-index: 100;
    height: 60px;
    background: rgba(245, 245, 245, 1);
box-shadow: 0px 3px 3px 0px #c7c7c7;
}
#header.menuopen-small h1 a {
width:12vw;
}
#header.menuopen-small h1 a img {
transform: translateX(-5%);
}
#header.menuopen-small h1 {
font-size: 2rem;
letter-spacing: 2px;
line-height: 1.2;
width: 30%;
padding:0;
}
#header.menuopen-small h1 {
position: relative;
}
#header.menuopen-small h1 span {
position: absolute;
font-size: clamp(10px, 1rem, 1rem);
letter-spacing: 0;
top:8px;
left:48%;
transform: translate(1.1);
}
#header.menuopen-small #header_inner {
    position: relative;
    z-index: 3;
    display: flex;
    margin: auto;
    transition: .5s;
    height: 100%;
}


/* header-sns */
#header-sns{width:25%;}
#header-sns ul{display: flex; justify-content: center;align-items: center;width:90%; height:100%;}
#header-sns ul li {position:relative;
flex-basis:calc(100% / 7);
text-align:center;
margin:0 auto;
}
#header-sns ul li a {display:block;}
#header-sns svg {width: 100%;height: 20px;vertical-align:top;}
#header-sns ul li a:hover svg {transform-origin: center; transform: scale(1.1);fill:#A10;}
#header.menuopen-small #header-sns {
 position: static;
 }


/*gnavi-pc*/
#gnavi-pc {width:50%;}
#gnavi-pc > ul {
display: flex;
justify-content: center;
align-items: center;
height:100%;
}
#gnavi-pc > ul > li {
text-align:center;
}
#gnavi-pc > ul > li > a {
font-size:1.5rem;
position: relative;
display: flex;
justify-content: center;
align-items: center;
height: 100%;
padding: 0 2rem;
white-space: nowrap;
}
#gnavi-pc ul li a:hover {
font-weight:800;
}
#gnavi-pc ul li a:after {
	display: block;
	position: absolute;
	content: '';
	width: 0%;
	height: 2px;
	margin: 0;
	bottom: -2px;
	background-color: #EE001E;
	transition: all .3s ease-out;
}
@-moz-document url-prefix() {
#gnavi-pc ul li a:after { margin-top: 2em; }
}
#gnavi-pc ul li a:hover:after {width:100%;}
#gnavi-pc .submenu { position: relative; }
#gnavi-pc .submenu-container {
display:block;
visibility: hidden;
opacity: 0;
position: absolute;
left: -160px;
width: 320px;
min-height:160px;
padding:2rem 3rem;
margin-left:50%;
transform: translateY(-1em);
z-index: 7;
transition: all 0.3s ease-in-out 0s, visibility 0s linear 0.3s, z-index 0s linear 0.01s;
border-radius: .5rem;
background-color: #EE001E;
box-shadow: 0rem .5rem 1rem rgba(0,0,0,0.16);
}
#gnavi-pc .submenu-container:before {
content:"";
position: absolute;
z-index:5;
width: 0;
height: 0;
top: -10px;
left: 50%;
margin-left: -10px;
border-style: solid;
border-width: 0 10px 10px 10px;
border-color: transparent transparent #EE001E transparent;
}
#header.menuopen-big .submenu-container {
top: 42px;
}
#header.menuopen-small .submenu-container {
top: 42px;
}
#gnavi-pc .submenu:focus .submenu-container,
#gnavi-pc .submenu:focus-within .submenu-container,
#gnavi-pc .submenu:hover .submenu-container {visibility: visible; opacity: 1;z-index: 3;transform: translateY(0%);transition-delay: 0s, 0s, 0.3s;
}
#gnavi-pc .submenu-container:nth-of-type(1) {
}
#gnavi-pc .gnavi-pc-child-contents b{
display:block;
margin-bottom:3rem;
color:#F50;
text-align:left;
border-bottom: 1px #FFF solid;
padding:1.5rem 0;
font-size:1.8rem;
}
#gnavi-pc .gnavi-pc-child-contents ul {
margin:0 0 2rem;
list-style-type: none;
}
#gnavi-pc .gnavi-pc-child-contents ul li {
text-align:left;
margin-top:1.5rem;
padding-left: 5px;
color:# FFF;
}
#gnavi-pc .gnavi-pc-child-contents ul li a {
display:inline-block;
position: relative;
color:#FFF !important;
}
#gnavi-pc .gnavi-pc-child-contents ul li a svg {
width:1.2rem;
height:1.2rem;
vertical-align:baseline;
fill:#FFF;
}
#gnavi-pc .gnavi-pc-child-contents ul li a:after {
margin-top: 0;
background-color: #FFF;
}

/* mainvisual */
#toppage #mainvisual {
position: relative;
background: #E9E9E9;
}
#toppage .slide-img img{
object-fit: cover;
object-position: 50% 50%;
max-height:800px;
}
#toppage .mv-name {
position: absolute;
top: 100%;
left:  50%;
transform: translate(-50%,-115%);
z-index: 2;
width: 65%;
min-width:320px;
}
#toppage .mv-name p {
position: absolute;
font-size:1.8vw;
line-height:1.3;
text-align:left;
transform: translate(5%,-105%);
top: 30%;
left:  50%;
text-shadow:
1px 4px 1px #FFF,1px -4px 1px #FFF,-1px 4px 1px #FFF,-1px -4px 1px #FFF,
2px 3px 1px #FFF, 2px -3px 1px #FFF, -2px 3px 1px #FFF, -2px -3px 1px #FFF,
3px 2px 1px #FFF, 3px -2px 1px #FFF, -3px 2px 1px #FFF, -3px -2px 1px #FFF,
4px 1px 1px #FFF, 4px -1px 1px #FFF, -4px 1px 1px #FFF, -4px -1px 1px #FFF;
}

/*aisatsu*/
.img_bg_01.lazyloaded{
background-image: url("../img/bg-aisatsu.jpg");
}

#vision {
background-size:175% auto;
background-position:center center;
padding-top: 20vw;
}

/*jisseki*/
#jisseki .section-body li:nth-of-type(4n){
margin-right:0;
}

#copyright {
flex-basis:100%;
width:100%;
text-align:center;
order:4;
}

#link_banners .row_inner {
min-height: 120px;
max-height: 140px;
}
