@charset "UTF-8";

html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
  margin:0; padding:0; border:0; outline:0; font-size:100%; vertical-align:baseline; background:transparent; }
article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section { display:block; }
nav ul { list-style:none; }
blockquote, q { quotes:none; }
blockquote:before, blockquote:after, q:before, q:after { content:''; content:none; }
a { margin:0; padding:0; font-size:100%; vertical-align:baseline; background:transparent; color: inherit; }
ins { background-color:#ff9; color:#000; text-decoration:none; }
mark { background-color:#ff9; color:#000; font-style:italic; font-weight:bold; }
del { text-decoration: line-through; }
abbr[title], dfn[title] { border-bottom:1px dotted; cursor:help; }
table { border-collapse:collapse; border-spacing:0; }
hr { display:block; height:1px; border:0;   border-top:1px solid #cccccc; margin:1em 0; padding:0; }
input, select { vertical-align:middle; }

/* ==========================================================================
   Base
========================================================================== */
html {
  font-size: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%; }

body {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  line-height: 2;
  letter-spacing: .03em;
  color: #222;
}

*, *:before, *:after {
  box-sizing: border-box;
}

#wrap {
  overflow: hidden;
}

.overlay {
  width: 100%;
  height: 100vh;
  position: fixed;
  left: 0;
  top: 0;
  background: rgba(255,255,255,.5);
  z-index: 700;
  display: none;
}

/* ==========================================================================
   Layout
========================================================================== */
.container {
  padding-right: 25px;
  padding-left: 25px;
}
.container-fluid {
  padding-right: 5.33334vw;
  padding-left: 5.33334vw;
}

.row:not(.no-gutters) {
  margin-right: -10px;
  margin-left: -10px;
}
.row:not(.no-gutters) > .col,
.row:not(.no-gutters) > [class*=col-] {
  padding-right: 10px;
  padding-left: 10px;
}

/* ==========================================================================
   Header
========================================================================== */
#siteHeader {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 800;
}

#siteHeader a {
  text-decoration: none;
}

.inner-header {
  height: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

#logo {
  margin: 0;
  line-height: 1;
  letter-spacing: .08em;
  position: relative;
  z-index: 2;
}
#logo .logo__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
#logo .logo__inner img {
  display: inline-block;
  vertical-align: middle;
  width: calc(100% - 11.5em);
  height: auto;
}
#logo .logo__inner span {
  display: inline-block;
  white-space: nowrap;
  font-weight: 700;
  color: #000;
}

/* ==========================================================================
   Navigation
========================================================================== */
nav a {
  display: block;
  text-decoration: none;
}

nav ul {
  border-bottom: 0;
  margin: 0;
  transition: opacity 1s .5s cubic-bezier(0.190, 1.000, 0.220, 1.000);
}
nav ul li a {
  display: block;
  color: inherit;
  text-decoration: none;
  line-height: 1.25;
  padding: .5em 15px;
}
nav ul li a span em {
  font-style: normal;
  letter-spacing: 0;
}
nav ul li.has-children {
  position: relative;
}
nav ul li.has-children > a > span {
  position: relative;
}
nav > ul > li > a {
  font-weight: 700;
  letter-spacing: .08em;
  position: relative;
}
nav > ul > li > a span {
  display: block;
  white-space: nowrap; }

.gNav .navBar {
  width: 100%;
}
.gNav .navBar ul li a {
  text-decoration: none;
}

.gNav .navBar .sub-menu:after {
  content: '';
  display: block;
  width: 100%;
  height: 4.246vw;
}
.gNav .navBar .sub-menu.sub-menu01:after {
  background: url(../img/obj-l-blue.svg) no-repeat center top / 100%;
}
.gNav .navBar .sub-menu.sub-menu02:after {
  background: url(../img/obj-violet.svg) no-repeat center top / 100%;
}
.gNav .navBar .sub-menu.sub-menu03:after {
  background: url(../img/obj-red.svg) no-repeat center top / 100%;
}
.gNav .navBar .sub-menu ul {
  margin: 0;
}


/* Sub Navigation */
.gNav .navBar .sub-nav {

}
.gNav .navBar .sub-nav .btn {
  text-align: left;
  padding-top: 1.25em;
  padding-bottom: 1.25em;
}

/* Nav Btn */
.nav-btn {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 64px;
  height: 64px;
  position: absolute;
  top: 0;
  right: 0;
  z-index: 999;
  transition: .5s;
}
.nav-btn i{
  display: block;
  background: #000;
  width: 26px;
  height: 2px;
  position: absolute;
  right: 0;
  left: 0;
  margin: -1px auto 0;
  transition: transform .3s;
}
.nav-btn i:nth-of-type(2){
  top: calc(50% - 10px);
}
.nav-btn i:nth-of-type(3){
  top: calc(50% + 10px);
}

.nav-btn.on i:nth-of-type(1){
  opacity: 0;
}
.nav-btn.on i:nth-of-type(2){
  width: 40%;
  top: 50% !important;
  transform: rotate(45deg);
}
.nav-btn.on i:nth-of-type(3){
  width: 40%;
  top: 50% !important;
  transform: rotate(-45deg);
}


/* ==========================================================================
   Footer
========================================================================== */
#siteFooter {
  clear: both;
  overflow: hidden;
  background-color: #FFF;
  border-top: 1px solid #CCC; }
#siteFooter a {
  text-decoration: none;
}

.fNav .menu-ttl {
  display: block;
  font-size: .875rem;
  letter-spacing: .08em;
}
.fNav .menu-ttl > span {
  display: block;
  padding: .5em 0;
  margin-bottom: .75em;
  color: #CCC;
  border-bottom: 1px solid currentColor;
}
.fNav .navBar ul li a {
  font-weight: 700;
  position: relative;
}
.fNav .navBar ul li a:after {
  content: '';
  display: block;
  width: .5em;
  height: .75em;
  background: url(../img/icon-arrow-mini-b.svg) no-repeat left center / contain;
  position: absolute;
  top: .75rem;
  left: 0;
}
.fNav .navBar ul .sns-list ul {
  display: flex;
  justify-content: center;
  margin-right: -6px;
  margin-left: -6px;
}
.fNav .navBar ul .sns-list ul li {
  padding: .5em 6px;
}
.fNav .navBar ul .sns-list ul li a {
  width: 30px;
  height: 30px;
  padding: 0;
  border-radius: 100%;
  background: #222;
  color: #FFF;
}
.fNav .navBar ul .sns-list ul li a:hover {
  background: #444;
}
.fNav .navBar ul .sns-list ul li a:after {
  display: none;
}

#fLogo .logo__inner {
  display: block;
  margin: 0 auto;
}

.fbNav .navBar > ul > li > a {
  font-size: .75rem;
  font-weight: 500;
  padding: 0 .5em;
}
.fbNav .navBar > ul > li:not(:last-child) > a {
  border-right: 1px solid currentColor;
}

.copyright {
  letter-spacing: .08em;
}







