@charset "UTF-8";

/*General Elements
---------------------------------------------------------------------------- */
html { font-size: 62.5%; }
*{
box-sizing: border-box;
}
body{
/*font-family: helvetica, arial, "Noto Sans Japanese", "メイリオ", sans-serif;*/
font-family: helvetica, arial, "Noto Sans JP", sans-serif;
letter-spacing: 0.03em;
font-size: 15px;
font-weight: 400;
line-height: 1.7;
position: relative;
width: 100%;
min-width: 1140px;
letter-spacing: 0.03em;
word-break: normal;
}
a{
text-decoration: none;
color: #cc0000;
outline: none;
cursor: pointer;
}
a:hover{
text-decoration: underline;
}

img{
max-width: 100%;
}
.chrome img{
image-rendering: -webkit-optimize-contrast;/* Webkit (非標準の名前) */
image-rendering: crisp-edges;
}

@media screen and (max-width: 768px){
body{
font-size: 14px;
min-width: inherit;
}
p{
font-size: 90%;
}
}

/*l-header
---------------------------------------------------------------------------- */

.l-header {
position: fixed;
top: 10px;
left: 50%;
z-index: 999;
display: flex;
align-items: center;
justify-content: space-between;
width: calc(100% - 40px);
height: 64px;
padding: 0 10px;
background-color: #fff;
border-radius: 5px;
box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.15);
transform: translateX(-50%);
}

.l-header a {
color: #000;
}

.l-header a:hover {
text-decoration: none;
}

.l-logo a {
}

.gnav {
display: flex;
height: 100%;
}

.gnav__inner {
display: flex;
}

.gnav__list {
display: flex;
align-items: center;
height: 100%;
}

.gnav__item {
position: relative;
height: 100%;
}

.gnav__link {
display: flex;
align-items: center;
height: 100%;
padding: 0 1.5vw;
font-weight: 700;
}

.gnav__link:hover {
position: relative;
color: #cc0000;
}
.gnav__link.gnav__link--current::after,
.gnav__link:hover::after {
content: "";
position: absolute;
left: 0;
bottom: 0;
display: block;
width: 100%;
height: 3px;
background-color: #cc0000;
}

.gnav__list .newtab {
margin-left: 5px;
vertical-align: text-top;
}

.gnav__button {
display: flex;
align-items: center;
justify-content: center;
width: 12vw;
max-width: 157px;
height: calc(100% - 20px) !important;
margin: 10px 0 10px 2vw;
color: #fff !important;
font-weight: 700;
background-color: #cc0000;
border: 1px solid #cc0000;
border-radius: 5px;
transition: 0.5s;
}

.gnav__button:hover {
color: #cc0000 !important;
background: transparent;
}

.hamburger,
.gnav__toggle,
.gnav__contact {
display: none;
}

.megamenu {
position: absolute;
top: 100%;
left: -5px;
display: none;
background: #fff;
border-radius: 5px;
box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.15);
overflow: hidden;
}

.megamenu__panel {
display: none;
}

.megamenu--has-target.megamenu{
min-width: 500px;
}

.megamenu--has-target .megamenu__inner{
display: flex;
}

.megamenu--has-target .megamenu__panel{
display: block;
}

.megamenu__cat {
width: 200px;
}

.megamenu__cat_item a{
padding: 10px 20px;
width: 90%;
display: block;
}

.megamenu__cat_item--active,
.megamenu__cat_item:hover {
background-color: #f5f5f5;
}

.megamenu__cat_itemInner {
display: flex;
align-items: center;
justify-content: space-between;
}

.megamenu__toggle {
background-color: inherit;
border: none;
padding: 0;
margin-right: 20px;
}

.megamenu__toggle span {
display: block;
width: 5px;
height: 5px;
color: #cc0000;
border-top: 1px solid;
border-right: 1px solid;
transform: rotate(45deg);
}

.megamenu__panel {
flex: 1;
padding: 0 20px;
background-color: #f5f5f5;
}

.megamenu__panel_group {
display: none;
}

.megamenu__panel_group--active {
display: block;
}

.megamenu__panel_item + .megamenu__panel_item {
border-top: 1px solid #ccc;
}

.megamenu__panel_item a {
display: block;
padding: 10px;
}

.megamenu__panel_item a:hover {
color: #cc0000;
}

.megamenu__panel_item span {
display: block;
font-size: 10px;
}

.megamenu--single {
min-width: inherit;
}

.megamenu--single li {
display: flex;
align-items: center;
padding: 20px;
}

.megamenu--single li:hover {
background-color: #f5f5f5;
}

.megamenu--single li p {
flex: 1;
padding-left: 20px;
white-space: nowrap
}

.megamenu--single li p span {
display: block;
font-size: 10px;
}

.megamenu__bnr {
display: block;
width: 200px;
}

@media screen and (min-width: 769px) {
.gnav__item--has_megamenu:hover .megamenu {
display: block;
}
}

@media screen and (max-width: 768px) {
.l-header {
top: 0;
left: 0;
width: 100%;
height: 50px;
border-radius: 0;
transform: none;
}

.l-logo img {
width: 100px;
height: auto;
}

.hamburger {
position: relative;
z-index: 1001;
display: block;
margin-left: 10px;
padding: 0;
background: none;
border: none;
cursor: pointer;
}

.hamburger span {
display: block;
width: 24px;
height: 2px;
margin: 5px 0;
background: #333;
transition: transform .3s, opacity .3s;
}

.hamburger--open span:nth-child(1) {
transform: translateY(7px) rotate(45deg);
}

.hamburger--open span:nth-child(2) {
opacity: 0;
}

.hamburger--open span:nth-child(3) {
transform: translateY(-7px) rotate(-45deg);
}

.gnav {
position: fixed;
top: 50px;
left: 0;
width: 100%;
height: 100svh;
background: #fff;
flex-direction: column;
opacity: 0;
visibility: hidden;
pointer-events: none;
transition: opacity .3s, visibility .3s;
}

.gnav--open {
opacity: 1;
visibility: visible;
pointer-events: auto;
}

.gnav__inner {
flex-direction: column;
overflow-y: auto;
padding: 0 0 100px;
}

.gnav__list {
flex-direction: column;
}

.gnav__list,
.gnav__item,
.gnav__link {
height: auto;
}

.gnav__item {
width: 100%;
padding: 20px;
border-bottom: 1px solid #ccc;
}


.gnav__link {
font-size: 18px;
font-weight: 500;
padding: 0;
}

.gnav__link:hover::after {
content: none;
}

.gnav__toggle {
position: absolute;
top: 0;
right: 20px;
z-index: 1;
display: block;
height: 70px;
background-color: inherit;
border: 0;
padding: 0;
width: 10px;
}

.gnav__toggle span {
display: block;
width: 8px;
height: 8px;
color: #cc0000;
border-top: 1px solid;
border-right: 1px solid;
transform: rotate(135deg);
}

.gnav__contact {
display: block;
margin-left: auto;
}

.gnav__contact a {
display: block;
padding: 10px;
color: #fff;
font-weight: bold;
font-size: 12px;
background: #cc0000;
}

.gnav__button {
width: 90%;
max-width: 300px;
height: 50px !important;
margin: 20px auto;
font-size: 18px;
font-weight: 500;
text-align: center;
flex-shrink: 0;
}

.megamenu {
position: relative;
top: auto;
left: 0;
display: none;
min-width: auto;
margin-top: 10px;
box-shadow: none;
}
.megamenu a {
display: block;
width: 100%;
font-size: 18px;
}
.megamenu__inner {
flex-direction: column;
}

.megamenu__cat {
width: 100%;
}

.megamenu__cat_item {
padding: 0;
flex-direction: column;
}

.megamenu__cat_item a {
padding: 10px 1em;
}

.megamenu__cat_itemInner {
align-items: stretch;
}

.megamenu__toggle {
display: flex;
align-items: center;
width: 10px;
margin: 0;
}

.megamenu__toggle span {
width: 8px;
height: 8px;
transform: rotate(135deg);
}

.gnav__item--open .megamenu {
display: block;
}

.gnav__item--open .gnav__toggle span {
transform: rotate(-45deg);
}

.megamenu__cat_item--open .megamenu__toggle span {
transform: rotate(-45deg);
}

.megamenu__cat_item--open .sp-megamenu__panel_group {
display: block;
margin-left: 1em;
margin-bottom: 20px;
border-bottom: 1px solid #ccc;
}

.megamenu__panel_group--active {
display: none;
}

.megamenu--single li {
flex-direction: column;
align-items: flex-start;
gap: 10px;
padding: 10px 1em;
}

.megamenu--single li p {
width: 100%;
padding: 0;
font-size: 100%;
}

.megamenu__bnr {
display: none !important;
}

.megamenu--single li:hover,
.megamenu__cat_item--active,
.megamenu__cat_item:hover {
background-color: inherit;
}
}


/* l-content
---------------------------------------------------------------------------- */
.l-pagebody{
background-color: #f8f8f8;
}
.l-pagebody.freakout-page{
/*padding-top: 60px; */
padding-top: 0;
}
.fo-wp-page .l-pagebody.freakout-page,
.fo-about-page .l-pagebody.freakout-page,
.fo-business-page .l-pagebody.freakout-page,
.fo-quality-page .l-pagebody.freakout-page{
/*padding-top: 48px; */
padding-top: 0;
}
.l-content{
width: 1110px;
margin: 0 auto;
padding: 60px 0;
}

.l-h1-wrap{
background-color: #424242;
background-repeat: no-repeat;
background-size: cover;
background-position: center;
width: 100%;
padding: 100px 0 35px;
}
.company-page .l-h1-wrap{
background-image: url(/images/company/company_top_bg.jpg);
}
.recruit-page .l-h1-wrap{
background-image: url(/images/recruit/recruit_top_bg.jpg);
}
.group-page .l-h1-wrap{
background-image: url(/images/group/group_top_bg.jpg);
}
.news .l-h1-wrap {
background-image: url(/images/news/news_top_bg.jpg);
}
.l-h1-inner{
background-color: rgba(0, 0, 0, .55);
padding: 40px 0 100px;
}
.fo-about-page .l-h1-inner,
.fo-business-page .l-h1-inner,
.fo-solution-page .l-h1-inner,
.fo-product-page .l-h1-inner,
.fo-quality-page .l-h1-inner,
.fo-wp-page .l-h1-inner{
background-color: rgba(0, 0, 0, .7);
padding: 150px 0 80px ;
}
.freakout-page .l-h1-wrap{
background-image: url(/images/freakout/solution/main_bg02.jpg);
padding: 0;
}
.fo-about-page .l-h1-wrap{
background-image: url(/images/freakout/about/fo_main.jpg);
padding: 0;
}

.l-h1{
font-size: 60px;
color: #fff;
font-weight: bold;
width: 1140px;
padding: 0 15px;
margin: 0 auto;
}
.freakout-page .l-h1{
text-align: center;
font-weight: 700;
font-family: 'Roboto',"Hiragino Kaku Gothic Pro", "Noto Sans JP", sans-serif;
margin-bottom: 15px;
font-size: 45px;
}
.l-freakout-subh1{
position: relative;
text-align: center;
padding: 10px 20px 20px;
font-size: 150%;
line-height: 1.5em;
color: #fff;
}
.freakout-page .l-h1-wrap p {
padding: 0 5%;
}

.l-h2-wrap{
background-color: #d8d8d8;
width: 100%;
padding: 15px 0;
}
.l-h2{
font-size: 28px;
width: 1110px;
margin: 0 auto;
}

@media screen and (max-width: 768px){
.l-pagebody,
.l-pagebody.freakout-page,
.fo-wp-page .l-pagebody.freakout-page,
.fo-about-page .l-pagebody.freakout-page,
.fo-business-page .l-pagebody.freakout-page,
.fo-quality-page .l-pagebody.freakout-page{
padding-top: 0;
}
.l-content{
width: 92%;
}
.l-h1-wrap{
padding: 80px 0 35px;
}
.l-h1{
width: 95%;
}
.freakout-page .l-h1 {
font-size: 40px;
}
.l-freakout-subh1{
font-size: 16px;
}
.l-h1-inner{
padding: 80px 0 100px;
}
.fo-about-page .l-h1-inner,
.fo-solution-page .l-h1-inner,
.fo-product-page .l-h1-inner,
.fo-business-page .l-h1-inner,
.fo-quality-page .l-h1-inner,
.fo-wp-page .l-h1-inner {
padding: 100px 0 60px;
}
.l-h2{
width: 90%;
}
}

@media screen and (max-width: 768px){
.l-content{
width: 88%;
}

.l-h1{
width: 90%;
font-size: 38px;
padding: 0;
}
}

/* l-footer
---------------------------------------------------------------------------- */
.l-footer{
background-color: #333;
padding: 35px 0 0 0;
}
.l-footer-fo{
padding: 30px 0 0 0;
background-color: #000;
border-top: 8px solid #cc0000;
letter-spacing: 0.07em;
font-family: 'Roboto', san-serif;
}
.l-footer-inner{
width: 1140px;
margin: 0 auto;
padding-bottom: 25px;
}
.l-footer-nav{
width: 33.33333333%;
padding: 0 15px;
float: left;
}
.l-footer-nav-fo{
width: 25%;
padding: 0 15px 10px;
float: left;
}
.l-footer-nav li{
margin-bottom: 15px;
}
.l-footer-nav a{
margin-bottom: 10px;
color: #ffffff;
font-size: 16px;
text-decoration: none;
font-weight: bold;
}
.l-footer-nav-fo span,
.l-footer-nav-fo a{
font-size: 18px;
font-weight: 400;
color: #aaa;
transition: 0.5s;
}
.l-footer-nav-fo a:hover {
text-decoration: none;
opacity: 0.8;
}

.l-footer-nav .l-footer-nav-sub li{
margin: 5px 0 0 0;
padding-left: 5px;
}
.l-footer-nav .l-footer-nav-sub a{
font-weight: normal;
color: #dddddd;
font-size: 14px;
border: none;
}
.l-footer-nav-fo .l-footer-nav-fo-sub {
margin-bottom: 10px;
padding-left: 10px;
font-weight: bold;
}

.l-footer-nav-fo-sub .child{
padding-left: 0.5em;
}

.l-footer-nav-fo .l-footer-nav-fo-sub-sub {
padding-left: 20px;
font-weight: normal;
}
.l-footer-nav-fo .l-footer-nav-fo-sub a{
color: #aaa;
font-size: 13px;
border: none;
}
.l-footer-nav .l-footer-nav-sub a:hover{
text-decoration: underline;
}
.l-footer-nav-fo .l-footer-nav-fo-sub-sub a {
font-weight: 300;
}
.l-footer-nav li .sns_icon {
display: flex;
margin-top: 20px;
}
.l-footer-nav li .sns_icon a img {
width: 30px;
height: 30px;
background: none;
border: none;
padding: 0;
margin: 0 10px;
}
.l-footer-nav li .sns_icon li:first-child a img {
margin-left: 0;
}

.l-copy{
background-color: #ddd;
text-align: center;
font-size: 15px;
padding: 15px 0 25px;
letter-spacing: 1px;
}
.l-footer-fo .l-copy{
background-color: #fff;
padding: 20px 0 30px;
font-size: 12px;
}
@media screen and (max-width: 768px){
.l-footer-inner{
width: 90%;
}
}
@media screen and (max-width: 768px){
.l-footer-nav,
.l-footer-nav-fo{
width: 100%;
float: none;
padding-bottom: 0;
}
.l-footer-nav li{
margin-bottom: 10px;
text-align: center;
}
.l-footer-nav-fo.logo {
margin-bottom: 30px;
width: 180px;
}
.l-footer-nav-fo li{
margin-bottom: 5px;
}
.l-footer-nav-sub,
.l-footer-nav-fo-sub{
display: none;
}
.l-footer-nav li .sns_icon {
justify-content: center;		
}
.l-footer-nav li .sns_icon li:first-child a img {
margin-left: 10px;
}
.l-copy{
font-size: 14px;
padding: 10px 5px 15px;
}
}




.sp-megamenu__panel_group{
display: none;
}