@charset "UTF-8";
/*  02_base
================================================ */
/* 02_base
================================================ */
html { overflow: auto; }

body { min-width: 320px; overflow: hidden; color: #1b1b1b; font-size: 1.4rem; line-height: 2; letter-spacing: .06em; font-family: "Noto Sans JP", "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif; }

@media screen and (min-width: 600px) { body { min-width: 1160px; font-size: 1.6rem; } }

img { max-width: 100%; height: auto; }

a { -webkit-transition: all 0.3s ease; transition: all 0.3s ease; color: inherit; text-decoration: underline; }

@media screen and (min-width: 600px) { a:hover { text-decoration: none; }
  a.opacity { display: block; }
  a.opacity:hover { opacity: .7; }
  a[href^=tel] { pointer-events: none; } }

em, strong, span { font-weight: inherit; }

/* pc <--> sp切り替え
-------------------------------------- */
#mediaQuery { display: none; font-family: 'sp'; }

@media screen and (min-width: 600px) { #mediaQuery { font-family: 'pc'; } }

@media screen and (max-width: 599px) { .viewPc { display: none !important; } }

@media screen and (min-width: 600px) { .viewSp { display: none !important; } }

/* font
-------------------------------------- */
.is_font_roboto { font-family: "Roboto", "Noto Sans JP", "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif; }

.is_font_oswald { font-family: 'Oswald', "Noto Sans JP", "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif; }

.is_txt_center { text-align: center !important; }

.is_txt_right { text-align: right !important; }

.is_clr_main { color: #a2005b; }

/* clearfix
-------------------------------------- */
.cf:after { content: ''; display: block; clear: both; }

/* layout
-------------------------------------- */
.mod_inner01 { padding: 0 20px; }

@media screen and (min-width: 600px) { .mod_inner01 { box-sizing: border-box; width: 1160px; padding: 0; margin-right: auto; margin-left: auto; } }

@media screen and (min-width: 600px) { #contents { width: 1160px; margin: 0 auto; }
  #contents:after { content: ""; display: block; clear: both; }
  #contents #main { width: 710px; float: left; padding-top: 70px; }
  #contents #sidebar { float: right; width: 250px; padding-top: 70px; } }

@media screen and (min-width: 600px) { #contents.is_full_column { width: 100%; margin: 0 auto; }
  #contents.is_full_column #main { width: 100%; float: none; padding-top: 0; } }

/*  animation
---------------------------------------- */
@-webkit-keyframes arw { 0% { right: 0;
    opacity: 1; }
  10% { opacity: 1; }
  28% { opacity: 0.6; }
  42% { right: -20px;
    opacity: 0; }
  45% { right: 15px;
    opacity: 0; }
  48% { opacity: 0.6; }
  100% { right: 0;
    opacity: 1; } }
@keyframes arw { 0% { right: 0;
    opacity: 1; }
  10% { opacity: 1; }
  28% { opacity: 0.6; }
  42% { right: -20px;
    opacity: 0; }
  45% { right: 15px;
    opacity: 0; }
  48% { opacity: 0.6; }
  100% { right: 0;
    opacity: 1; } }

@-webkit-keyframes arw_small { 0% { right: 15px;
    opacity: 1; }
  10% { opacity: 1; }
  28% { opacity: 0.6; }
  42% { right: 5px;
    opacity: 0; }
  45% { right: 20px;
    opacity: 0; }
  48% { opacity: 0.6; }
  100% { right: 15px;
    opacity: 1; } }

@keyframes arw_small { 0% { right: 15px;
    opacity: 1; }
  10% { opacity: 1; }
  28% { opacity: 0.6; }
  42% { right: 5px;
    opacity: 0; }
  45% { right: 20px;
    opacity: 0; }
  48% { opacity: 0.6; }
  100% { right: 15px;
    opacity: 1; } }

@-webkit-keyframes arw_reverse { 0% { left: 0;
    opacity: 1; }
  10% { opacity: 1; }
  28% { opacity: 0.6; }
  42% { left: -20px;
    opacity: 0; }
  45% { left: 15px;
    opacity: 0; }
  48% { opacity: 0.6; }
  100% { left: 0;
    opacity: 1; } }

@keyframes arw_reverse { 0% { left: 0;
    opacity: 1; }
  10% { opacity: 1; }
  28% { opacity: 0.6; }
  42% { left: -20px;
    opacity: 0; }
  45% { left: 15px;
    opacity: 0; }
  48% { opacity: 0.6; }
  100% { left: 0;
    opacity: 1; } }

@-webkit-keyframes pagetop { 0% { opacity: 1; }
  10% { opacity: 1; }
  28% { opacity: 0.6; }
  42% { top: 35%;
    opacity: 0; }
  45% { top: 65%;
    opacity: 0; }
  48% { opacity: 0.6; }
  100% { top: 50%;
    opacity: 1; } }

@keyframes pagetop { 0% { opacity: 1; }
  10% { opacity: 1; }
  28% { opacity: 0.6; }
  42% { top: 35%;
    opacity: 0; }
  45% { top: 65%;
    opacity: 0; }
  48% { opacity: 0.6; }
  100% { top: 50%;
    opacity: 1; } }

/*  03_layout
================================================ */
/* #breadcrumb
================================================ */
#breadcrumb { overflow: hidden; }

@media screen and (min-width: 600px) { #breadcrumb { position: absolute; left: 0; right: 0; bottom: 0; padding: 5px 0 6px; background: rgba(96, 96, 96, 0.7); letter-spacing: -.5em; }
  #breadcrumb li { position: relative; display: inline-block; letter-spacing: 0; margin-right: 5px; color: #fff; font-size: 1.4rem; }
  #breadcrumb li:after { content: ''; position: absolute; left: 0; bottom: -6px; width: 105%; height: 2px; background: #a2005b; }
  #breadcrumb li a { text-decoration: none; }
  #breadcrumb li:last-child:after { content: none; }
  #breadcrumb li + li:before { margin-right: 8px; content: '>'; } }

/* cv
================================================ */
#cvContact { background: #272727; }

#cvContact .inner { position: relative; height: 180px; }

#cvContact .box { position: absolute; top: 45px; left: 50%; -webkit-transform: translateX(-50%); -ms-transform: translateX(-50%); transform: translateX(-50%); box-sizing: border-box; width: calc(100% - 30px); padding: 30px; background: #fff; z-index: 10; }

#cvContact .cvTit { text-align: center; font-size: 2.8rem; font-weight: 600; letter-spacing: .02em; line-height: 1; }

#cvContact .cvTxt { padding-top: 10px; text-align: center; font-size: 1.4rem; letter-spacing: .06em; line-height: 1.6; }

#cvContact .btn { padding-top: 15px; }

@media screen and (min-width: 600px) { #cvContact .inner { height: 280px; }
  #cvContact .box { position: absolute; top: 80px; width: 100%; padding: 75px 100px; }
  #cvContact .txtWrap { float: left; width: 410px; }
  #cvContact .cvTit { text-align: left; font-size: 3.6rem; }
  #cvContact .cvTxt { padding-top: 20px; text-align: left; font-size: 1.6rem; }
  #cvContact .btn { float: right; box-sizing: border-box; width: 550px; padding-top: 0; }
  #cvContact .btn a { padding: 37px; }
  #cvContact .btn .txt { text-align: center; font-size: 2.6rem; } }

/* #gFooter
================================================ */
#gFooter { position: relative; padding: 100px 0 60px; background: #1b1b1b; color: #9a9a9a; }

#gFooter .logo { width: 200px; margin: 0 auto; padding-top: 35px; }

#gFooter .ftTxtIn { margin-top: 10px; }

#gFooter .fb { text-align: center; }

#gFooter .fb a { position: relative; display: inline-block; padding-left: 25px; text-decoration: none; color: #fff; font-size: 1.6rem; font-weight: 700; }

#gFooter .fb a:before { content: ''; position: absolute; top: 50%; left: 0; -webkit-transform: translateY(-50%); -ms-transform: translateY(-50%); transform: translateY(-50%); width: 20px; height: 20px; background: url(../img/common/footer/ico_facebook.png) no-repeat center/contain; }

#gFooter .privacy { margin-top: 10px; text-align: center; font-size: 1.1rem; }

#gFooter .privacy a { padding-bottom: 2px; text-decoration: none; border-bottom: 1px solid #9a9a9a; }

#gFooter .copyright { margin-top: 10px; text-align: center; }

#gFooter .copyright small { letter-spacing: .02em; font-weight: 600; }

@media screen and (min-width: 600px) { #gFooter { overflow: hidden; padding: 129px 0 75px; }
  #gFooter .logo { padding-top: 0px; margin:auto; }
  #gFooter .logo a { display:flex; }
	
  #gFooter .ftTxtWrap { display:flex; width:auto; }
  #gFooter .ftTxtIn{ display:flex; flex-wrap:wrap; flex:1; column-gap:35px; }
  #gFooter .snsline { margin:auto 0 auto 30px; }
  #gFooter .fb { margin-right: 30px; }
  #gFooter .fb a { padding-left: 30px; }
  #gFooter .fb a:hover { opacity: .7; }
  #gFooter .privacy { margin-top: 0; text-align: right; font-size: 1.2rem; }
  #gFooter .privacy a:hover { border-bottom: none; }
  #gFooter .copyright { margin-top: 10px; text-align: right; line-height: 1.2; }
  #gFooter .copyright small { letter-spacing: .02em; font-size: 1.1rem; font-weight: 600; } }
  #gFooter .ftTxtIn { margin-top:0px; }

@media screen and (min-width: 600px) and (max-width: 1480px) { #gFooter .ftTxtWrap { padding-right: 100px; } }

/*  #pageTop
================================================ */
#pageTop { position: absolute; right: 10px; bottom: 10px; line-height: 1; }

#pageTop a { position: relative; display: block; width: 45px; height: 45px; border: 1px solid #9a9a9a; border-radius: 50%; }

#pageTop a .img { position: absolute; top: 50%; left: 50%; width: 12px; height: 22px; -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); }

@media screen and (min-width: 600px) { #pageTop { right: 68px; bottom: 78px; }
  #pageTop a { width: 60px; height: 60px; }
  #pageTop a:hover { background-color: #545454; border-color: #545454; }
  #pageTop a:hover .img { -webkit-animation: pagetop 0.7s ease; animation: pagetop 0.7s ease; } }

@media screen and (max-width: 1480px) { #pageTop { right: 2%; } }

/* #gHeader
================================================ */
#gHeader { height: 72px; position: fixed; top: 0; left: 0; right: 0; z-index: 40; -webkit-transition: all 0.6s ease-in-out; transition: all 0.6s ease-in-out; }

#gHeader.is_active { background: #000; }

#gHeader .hdInfo { overflow: hidden; position: relative; min-width: 320px; padding: 10px 0; }

#gHeader .logo { position: relative; z-index: 10; float: left; width: 191px; padding-top: 12px; }

#gHeader .gnavBtn { position: relative; float: right; z-index: 30; width: 50px; height: 50px; border: 1px solid #fff; cursor: pointer; -webkit-transition: all 0.3s ease; transition: all 0.3s ease; }

#gHeader .gnavBtn .line { position: absolute; top: 23px; left: 50%; -webkit-transform: translateX(-50%) scaleY(0.5); -ms-transform: translateX(-50%) scaleY(0.5); transform: translateX(-50%) scaleY(0.5); width: 22px; height: 2px; background: #fff; -webkit-transition: all 0.3s ease; transition: all 0.3s ease; }

#gHeader .gnavBtn .line:nth-child(1) { top: 17px; }

#gHeader .gnavBtn .line:nth-child(3) { top: 29px; }

#gHeader .gnavBtn.is_active { border: 0; }

#gHeader .gnavBtn.is_active .line:nth-child(1) { top: 25px; -webkit-transform: translateX(-50%) rotate(-45deg); -ms-transform: translateX(-50%) rotate(-45deg); transform: translateX(-50%) rotate(-45deg); height:1px; }

#gHeader .gnavBtn.is_active .line:nth-child(2) { opacity: 0; }

#gHeader .gnavBtn.is_active .line:nth-child(3) { top: 25px; -webkit-transform: translateX(-50%) rotate(45deg); -ms-transform: translateX(-50%) rotate(45deg); transform: translateX(-50%) rotate(45deg); height:1px; }

@media screen and (min-width: 600px) { #gHeader { height: 100px; }
  #gHeader.is_active { background: #000; }
  #gHeader.is_active .logo { top: 30px; }
  #gHeader.is_active .gnavBtn { border: 0; top: 15px; }
  #gHeader .hdInfo { overflow: visible; padding: 45px 0; }
  #gHeader .logo { float: none; position: absolute; left: 40px; top: 50px; width: 232px; padding-top: 0; -webkit-transition: all 0.6s ease-in-out; transition: all 0.6s ease-in-out; }
  #gHeader .gnavBtn { float: none; position: absolute; top: 30px; right: 30px; width: 70px; height: 70px; -webkit-transition: all 0.6s ease-in-out; transition: all 0.6s ease-in-out; }
  #gHeader .gnavBtn:hover { opacity: .7; }
  #gHeader .gnavBtn .line { top: 32px; width: 30px; height: 2px; }
  #gHeader .gnavBtn.is_active .line { height: 2px; }
  #gHeader .gnavBtn .line:nth-child(1) { top: 25px; }
  #gHeader .gnavBtn .line:nth-child(3) { top: 40px; }
  #gHeader .gnavBtn.is_active .line:nth-child(1) { top: 26px; width: 38px; }
  #gHeader .gnavBtn.is_active .line:nth-child(3) { top: 26px; width: 38px; } }

/*  #gNav
================================================ */
#gNav { display: block; z-index: 20; position: fixed; top: 0; right: -100%; width: 100%; height: 100%; overflow-y: scroll; -webkit-transform: translateX(100%); -ms-transform: translateX(100%); transform: translateX(100%); -webkit-transition: all 0.3s ease; transition: all 0.3s ease; }

#gNav.is_active { right: 0; -webkit-transform: translateX(0); -ms-transform: translateX(0); transform: translateX(0); }

#gNav .gNavContent { width: 100%; box-sizing: border-box; padding: 20px 30px 45px; background: #1b1b1b; color: #fff; }

#gNav .gnavLanguage { display: flex; justify-content: end; margin-top: 25px; }

#gNav .gnavLanguage .languageItem { width: 13% }

#gNav .gnavLanguage .languageItem.is_active { background: #fff; color: #a2005b; }

#gNav .gnavLanguage .languageItem a { text-decoration: none; width: 100%; border: 1px solid #fff; display: inline-block; text-align: center; box-sizing: border-box; padding: 5px 0; }

#gNav .listLink { padding-top: 5px; }

#gNav .listLink a.disabled { pointer-events: none; }

#gNav .gnavItem + .gnavItem { border-top: 1px solid #3d3d3d; }

#gNav .gnavItem a, #gNav .gnavItem .sub { display: block; padding: 15px 0; text-decoration: none; font-size: 2rem; font-weight: 600; }

#gNav .gnavItem .sub { padding-bottom: 10px; }

#gNav .gnavItem .gNavJa { display: inline-block; padding-left: 10px; font-size: 1.3rem; font-weight: 400; line-height: 3.08; }

#gNav .listLinkSub { padding-bottom: 20px; }

#gNav .listLinkSub .gnavSub { color: #9a9a9a; }

#gNav .listLinkSub .gnavSub a { display: inline-block; padding: 5px 0 18px 35px; line-height: 1; }
#gNav .listLinkSub .gnavSubRec is_font_oswald a { padding: 5px 0 18px 35px; line-height: 1; }

#gNav .listLinkSub .gnavSub .en { position: relative; display: inline-block; font-size: 1.5rem; line-height: 1.5; font-weight: 600; }

#gNav .listLinkSub .gnavSub .en:before { content: ''; position: absolute; top: 50%; left: -18px; width: 10px; height: 1px; background: #9a9a9a; -webkit-transform: translateY(-50%); -ms-transform: translateY(-50%); transform: translateY(-50%); }

#gNav .listLinkSub .gnavSub .ja { display: inline-block; padding-top: 7px; font-size: 1.3rem; line-height: 1.5; }

#gNav .gNavContact { margin-top: 20px; }

@media screen and (min-width: 600px) { #gNav { -webkit-transform: translateX(600px); -ms-transform: translateX(600px); transform: translateX(600px); overflow-y: visible; }
  #gNav .inner { width: 365px; }
  #gNav .gNavContent { position: absolute; left: auto; top: 0; right: 0; width: auto; height: 100%; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; padding: 185px 103px 175px 100px; }
  #gNav .gnavItem a, #gNav .gnavItem .sub { padding: 10px 0; font-size: 2.6rem; }
  #gNav .gnavItem a:hover, #gNav .gnavItem .sub:hover { color: #9a9a9a; }
  #gNav .gnavItem .sub { padding-bottom: 0px; }
  #gNav .gnavItem .gNavJa { position: relative; top: 1px; padding-left: 30px; font-size: 1.5rem; line-height: 3.46; }
  #gNav .listLinkSub { padding-bottom: 20px; }
  #gNav .listLinkSub .gnavSub a { display: inline-block; padding: 6px 0px 20px 40px; }
  #gNav .listLinkSub .gnavSub .en { font-size: 1.8rem; }
  #gNav .listLinkSub .gnavSub .en:before { left: -20px; }
  #gNav .listLinkSub .gnavSub .ja { padding-top: 7px; font-size: 1.5rem; }
  #gNav .gNavContact { margin-top: 17px; } }

@media screen and (min-width: 600px) and (max-height: 900px) { #gNav .gNavContent { padding: 65px 130px 80px 100px; }
  #gNav .gnavItem a, #gNav .gnavItem div { padding: 8px 0; font-size: 2.6rem; }
  #gNav .listLinkSub { padding-bottom: 10px; }
  #gNav .listLinkSub .gnavSub a { display: inline-block; padding: 6px 0px 8px 40px; }
  #gNav .listLinkSub .gnavSub .ja { padding-top: 0; } }

@media screen and (min-width: 600px) and (max-height: 780px) { #gNav { overflow-y: scroll; }
  #gNav .gNavContent { display: block; height: 780px; } }

/* #mainVisual TOPページ
================================================ */
#mvWrap { position: relative; }

#mainVisual { position: relative; background: url(../img/home/bg_main_sp.png) no-repeat; background-size: cover; background-position: center; height: 100vh; }

#mainVisual .mainTitWrap { position: absolute; width: 270px; top: 40%; left: 50%; -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); color: #fff; }

#mainVisual .mainEn { font-size: 7.2rem; letter-spacing: .02em; line-height: 1; font-weight: 600; }

#mainVisual .subEn { padding-top: 15px; font-size: 1.2rem; line-height: 1; letter-spacing: .1em; font-weight: 600; }

#mainVisual .scroll { position: absolute; left: 50%; bottom: 60px; -webkit-transform: translateX(-50%); -ms-transform: translateX(-50%); transform: translateX(-50%); line-height: 1; }

#mainVisual .scroll a { position: relative; padding-bottom: 40px; text-decoration: none; color: #fff; font-size: 1.2rem; line-height: 1; font-weight: 600; letter-spacing: .02em; }

#mainVisual .scroll a:before { content: ''; position: absolute; bottom: 0; left: 50%; -webkit-transform: translateX(-50%); -ms-transform: translateX(-50%); transform: translateX(-50%); width: 1px; height: 30px; background: #fff; }

@media screen and (min-width: 600px) { #mainVisual { background: url(../img/home/bg_main_pc.png) no-repeat; background-size: cover; background-position: center; height: 100vh; min-height: 640px; }
  #mainVisual .mainTitWrap { top: 46%; left: 51%; width: 570px; }
  #mainVisual .mainEn { font-size: 14.4rem; }
  #mainVisual .subEn { padding-top: 25px; font-size: 2.5rem; letter-spacing: 0.08em; }
  #mainVisual .scroll { bottom: 80px; }
  #mainVisual .scroll a { font-size: 1.4rem; }
  #mainVisual .scroll a:before { -webkit-transition: all 0.3s ease; transition: all 0.3s ease; }
  #mainVisual .scroll a:hover:before { height: 40px; bottom: -10px; } }

/* #mainImg 下層ページ
================================================ */
#mainImgWrap { position: relative; }

#mainImg { min-height: 180px; background-repeat: no-repeat; background-size: cover; background-position: center top; }

#mainImg .inner { padding: 75px 15px 30px; }

#mainImg .mainTitWrap { text-align: center; color: #fff; }

#mainImg .mainEn { font-size: 4.3rem; font-weight: 600; line-height: 1.2; }

#antisocialforces #mainImg.is-en .mainEn { font-size: 4.1rem; }

#mainImg .mainTit { font-size: 1.4rem; font-weight: 700; }

@media screen and (min-width: 600px) { #mainImg { height: 300px; }
  #mainImg .inner { padding: 105px 15px 60px; }
  #mainImg .mainEn { font-size: 7.2rem; }
	#antisocialforces #mainImg.is-en .mainEn { font-size: 5.8rem; }
  #mainImg .mainTit { padding-top: 5px; font-size: 1.6rem; } }

/* #sidebar
================================================ */
