@charset "UTF-8";
/*
HTML5 Reset :: style.css
----------------------------------------------------------
We have learned much from/been inspired by/taken code where offered from:

Eric Meyer					:: http://meyerweb.com
HTML5 Doctor				:: http://html5doctor.com
and the HTML5 Boilerplate	:: http://html5boilerplate.com

-------------------------------------------------------------------------------*/
/* Let's default this puppy out
-------------------------------------------------------------------------------*/
html, body, 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, figure, footer, header, menu, nav, section, time, mark, audio, video, details, summary {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font-weight: normal;
  vertical-align: baseline;
  background: transparent;
}

main, article, aside, figure, footer, header, nav, section, details, summary {
  display: block;
}

/* Handle box-sizing while better addressing child elements:
http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
html {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

*,
*:before,
*:after {
  -webkit-box-sizing: inherit;
  box-sizing: inherit;
}

/* consider resetting the default cursor: https://gist.github.com/murtaugh/5247154 */
/* Responsive images and other embedded objects */
/* if you don't have full control over `img` tags (if you have to overcome attributes), consider adding height: auto */
img,
object,
embed {
  max-width: 100%;
}

/*
Note: keeping IMG here will cause problems if you're using foreground images as sprites.
In fact, it *will* cause problems with Google Maps' controls at small size.
If this is the case for you, try uncommenting the following:

#map img {
max-width: none;
}
*/
/* force a vertical scrollbar to prevent a jumpy page */
html {
  overflow-y: scroll;
}

/* we use a lot of ULs that aren't bulleted.
you'll have to restore the bullets within content,
which is fine because they're probably customized anyway */
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;
  text-decoration: none;
}

del {
  text-decoration: line-through;
}

abbr[title], dfn[title] {
  border-bottom: 1px dotted #000;
  cursor: help;
}

/* tables still need cellspacing="0" in the markup */
table {
  border-collapse: separate;
  border-spacing: 0;
}

th {
  font-weight: bold;
  vertical-align: bottom;
}

td {
  font-weight: normal;
  vertical-align: top;
}

hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #ccc;
  margin: 1em 0;
  padding: 0;
}

input, select {
  vertical-align: middle;
}

pre {
  white-space: pre;
  /* CSS2 */
  white-space: pre-wrap;
  /* CSS 2.1 */
  white-space: pre-line;
  /* CSS 3 (and 2.1 as well, actually) */
  word-wrap: break-word;
  /* IE */
}

input[type="radio"] {
  vertical-align: text-bottom;
}

input[type="checkbox"] {
  vertical-align: bottom;
}

.ie7 input[type="checkbox"] {
  vertical-align: baseline;
}

.ie6 input {
  vertical-align: text-bottom;
}

select, input, textarea {
  font: 99% sans-serif;
}

table {
  font-size: inherit;
  font: 100%;
}

small {
  font-size: 85%;
}

strong {
  font-weight: bold;
}

td, td img {
  vertical-align: top;
}

/* Make sure sup and sub don't mess with your line-heights http://gist.github.com/413930 */
sub, sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
}

sup {
  top: -0.5em;
}

sub {
  bottom: -0.25em;
}

/* standardize any monospaced elements */
pre, code, kbd, samp {
  font-family: monospace, sans-serif;
}

/* hand cursor on clickable elements */
.clickable,
label,
input[type=button],
input[type=submit],
input[type=file],
button {
  cursor: pointer;
}

/* Webkit browsers add a 2px margin outside the chrome of form elements */
button, input, select, textarea {
  margin: 0;
}

/* make buttons play nice in IE */
button,
input[type=button] {
  width: auto;
  overflow: visible;
}

/* scale images in IE7 more attractively */
.ie7 img {
  -ms-interpolation-mode: bicubic;
}

/* prevent BG image flicker upon hover
(commented out as usage is rare, and the filter syntax messes with some pre-processors)
.ie6 html {filter: expression(document.execCommand("BackgroundImageCache", false, true));}
*/
/* let's clear some floats */
.clearfix:after {
  content: " ";
  display: block;
  clear: both;
}



/* ———————————————————————————————————————————————————————————————————————————————————————————————————— */

/* 共通部分 */

/* ———————————————————————————————————————————————————————————————————————————————————————————————————— */

body.preload .wow.fadeIn, body.preload .wow.fadeInDown, body.preload .wow.fadeInLeft {
  display: none !important;
}

@media screen and (min-width: 751px) {

  body {
    min-width: 1300px;
  }

}

.pc_only {
  display: block;
}

.sp_only {
  display: none;
}

@media screen and (max-width: 750px) {

  .sp_only {
    display: block;
  }

  .pc_only {
    display: none;
  }

}

html {
  font-size: 62.5%;
}

body {
  font-family: "frank-new", 游ゴシック体, 'Yu Gothic', YuGothic, 'ヒラギノ角ゴシック Pro', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, Osaka, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
  font-size: 1.6rem;
}

.wrapper {
  width: 100%;
  height: auto;
  margin: 0;
  padding: 0;
}

.contents_wrapper {
  width: 100%;
  position: relative;
}

.contents_inner {
  width: 93%;
  margin: 3vw auto;
  position: relative;
}

.contents_title {
  position: absolute;
}

.side_title {
  background: url('../images/side_tit.svg') no-repeat;
  background-size: 100%;
  background-position: center;
  width: 12px;
  height: 220px;
  position: fixed;
  right: 1%;
  bottom: 7%;
  z-index: 5;
}

@media screen and (max-width: 1300px) {

  .side_title {
    display: none;
  }

}

#contents_entry .contents_wrapper {
  width: 100%;
  height: 580px;
  background: linear-gradient(222deg, #003f74, #009cd5, #08bcff);
  background-size: 600% 600%;
  -webkit-animation: backgroundG 6s ease infinite;
  -moz-animation: backgroundG 6s ease infinite;
  animation: backgroundG 6s ease infinite;
}

@-webkit-keyframes backgroundG {
  0%{background-position:0% 99%}
  50%{background-position:100% 2%}
  100%{background-position:0% 99%}
}
@-moz-keyframes backgroundG {
  0%{background-position:0% 99%}
  50%{background-position:100% 2%}
  100%{background-position:0% 99%}
}
@keyframes backgroundG {
  0%{background-position:0% 99%}
  50%{background-position:100% 2%}
  100%{background-position:0% 99%}
}

#contents_entry .contents_wrapper .contents_inner {
  width: 100%;
  max-width: 1144px;
  height: 580px;
  margin: auto;
  position: relative;
}

#contents_entry.entry_banner_wrap .contents_wrapper,
#contents_entry.entry_banner_wrap .contents_wrapper .contents_inner {
  height: 730px;
}
#contents_entry.entry_banner_wrap .contents_wrapper .contents_inner .entry_banner {
  position: absolute;
  bottom: 7%;
  left: 0;
  right: 0;
  margin: 0 auto;
  max-width: 350px;
  transition: opacity .4s ease-in-out; 
}
#contents_entry.entry_banner_wrap .contents_wrapper .contents_inner .entry_banner:hover {
  opacity: 0.8;
}
#contents_entry.entry_banner_wrap .contents_wrapper .contents_inner .entry_banner img {
  width: 100%;
  height: auto;
}

#contents_entry .contents_wrapper .contents_inner .contents_entry_link {
  width: 1144px;
  height: 380px;
  background: url(../images/entry_main.jpg) no-repeat;
  background-size: 100%;
  background-position: center;
  position: absolute;
  top: 22%;
  left: 0;
  transition: .3s;
}

#contents_entry .contents_wrapper .contents_inner p {
  color: #000;
  position: absolute;
  top: 25%;
  text-align: center;
  left: 0;
  right: 0;
  line-height: 2.5;
  font-weight: bold;
  margin: auto;
}

#contents_entry .contents_wrapper .contents_inner .contents_title {
  color: #FFF;
  font-size: 10rem;
  letter-spacing: 0.2em;
  font-weight: 500;
  top: -20%;
  left: 0;
  right: 0;
  margin: auto;
  text-align: center;
}

#contents_entry .contents_wrapper .contents_inner .entry_link_arrow {
  position: absolute;
  top: 85%;
  left: 0;
  right: 0;
  width: 36px;
  height: 16px;
  margin: auto;
  transition: .3s;
}

#contents_career .contents_wrapper .entry_link_arrow {
  position: absolute;
  bottom: 5%;
  left: 0;
  right: 0;
  width: 36px;
  height: 16px;
  margin: auto;
  transition: .3s;
}

#contents_entry .contents_wrapper .contents_inner a:hover .entry_link_arrow, #contents_career a:hover .contents_wrapper .entry_link_arrow {
  right: -3%;
}


#contents_entry .contents_wrapper .contents_inner span::before, #contents_entry .contents_wrapper .contents_inner span::after {
  content: "";
  position: absolute;
  -webkit-transition: 0.2s;
  transition: 0.2s;
  background: #005DAC;
}

#contents_career .contents_wrapper span::before, #contents_career .contents_wrapper span::after {
  content: "";
  position: absolute;
  -webkit-transition: 0.2s;
  transition: 0.2s;
  background: #FFF;
}

#contents_entry .contents_wrapper .contents_inner span::before, #contents_career .contents_wrapper span::before {
  width: 36px;
  height: 3px;
  bottom: 0;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
}

#contents_entry .contents_wrapper .contents_inner span::after, #contents_career .contents_wrapper span::after {
  width: 15px;
  height: 3px;
  top: calc(50%);
  right: -1px;
  -webkit-transform: translateY(-50%) rotate(45deg);
  transform: translateY(-50%) rotate(45deg);
}

@media screen and (min-width: 751px) and (max-width: 1030px) {

  #contents_entry .contents_wrapper .contents_inner .contents_entry_link {
    width: 90%;
    right: 0;
    margin: auto;
    background-size: 100%;
  }

  #contents_entry .contents_wrapper .contents_inner .contents_title {
    font-size: 8rem;
    top: -5%;
  }

  #contents_entry .contents_wrapper .contents_inner .entry_link_arrow, #contents_career .contents_wrapper .entry_link_arrow {
    top: 75%;
  }

}

@media screen and (max-width: 750px) {

  #contents_entry .contents_wrapper {
    height: 410px;
  }

  #contents_entry .contents_wrapper .contents_inner .contents_entry_link {
    width: 90%;
    height: 340px;
    margin: auto;
    background: url('../images/entry_main_sp.jpg') no-repeat;
    background-size: 100%;
    background-position: center;
    top: 50px;
    right: 0;
  }

  #contents_entry.entry_banner_wrap .contents_wrapper,
  #contents_entry.entry_banner_wrap .contents_wrapper .contents_inner {
    height: 515px;
  }
  #contents_entry.entry_banner_wrap .contents_wrapper .contents_inner .entry_banner {
    max-width: 280px;
    padding: 0 10px;
    position: absolute;
    bottom: 5%;
  }

  #contents_entry .contents_wrapper .contents_inner .contents_title {
    font-size: 4rem;
    top: -7%;
  }

  #contents_entry .contents_wrapper .contents_inner p {
    font-size: 1.3rem;
  }

  #contents_entry .contents_wrapper .contents_inner .entry_link_arrow, #contents_career .contents_wrapper .entry_link_arrow {
    top: 80%;
  }

}

@media screen and (min-width: 1351px) {

  .hamburger {
    display: none;
  }

}



/* ———————————————————————————————————————————————————————————————————————————————————————————————————— */

/* ヘッダー */

/* ———————————————————————————————————————————————————————————————————————————————————————————————————— */

.sec_header {
  position: fixed;
  width: 100%;
  top: 0;
  background: #FFF;
  z-index: 12;
  display: -webkit-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  height: 100px;
}

.contents_header_left {
  width: 15%;
  height: 80px;
  position: absolute;
  left: 0;
  margin-left: 3%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-flow: column;
  justify-content: left;
}

.contents_header_left a {
  width: 190px;
}

.contents_header_left img {
  width: 100%;
  margin-top: 22px;
}

.contents_header_left p {
  margin-top: 2px;
  font-weight: 500;
  font-size: 1.5rem;
  letter-spacing: 0.2em;
  color: #000;
  text-align: center;
}

.contents_header_right {
  height: 100px;
  position: absolute;
  right: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  justify-content: right;
}

.header_menu {
  display: -webkit-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  justify-content: right;
  width: 92%;
}

.header_menu li {
  text-align: center;
  padding: 0 20px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-flow: column;
}

.header_menu li a {
  position: relative;
  display: inline-block;
  transition: .3s;
  color: #005DAC;
  text-decoration: none;
  margin-top: 30px;
}

.header_menu li.mt-half a {
  margin-top: 25px;
}

.header_menu li a p {
  font-weight: bold;
  margin-bottom: 12px;
}

.header_menu li.mt-half a p {
  margin-bottom: 5px;
  line-height: 1;
}

.header_menu li a span {
  font-size: 1.0rem;
  color: #000;
  text-align: center;
  display: block;
}


.header_menu li a:hover {
  color: #000;
}

.header_menu li a::after {
  position: absolute;
  bottom: 0;
  left: 0;
  content: '';
  width: 0;
  height: 1px;
  background-color: #000;
  transition: .3s;
}

.header_menu li a:hover::after {
  width: 100%;
}

.entry_button {
  width: 100px;
  height: 100px;
  background: linear-gradient(90deg, #003f74, #009cd5, #08bcff);
  background-size: 600% 600%;
  -webkit-animation: buttonG 6s ease infinite;
  -moz-animation: buttonG 6s ease infinite;
  animation: buttonG 6s ease infinite;
}

@-webkit-keyframes buttonG {
  0%{background-position:0% 99%}
  50%{background-position:100% 2%}
  100%{background-position:0% 99%}
}
@-moz-keyframes buttonG {
  0%{background-position:0% 99%}
  50%{background-position:100% 2%}
  100%{background-position:0% 99%}
}
@keyframes buttonG {
  0%{background-position:0% 99%}
  50%{background-position:100% 2%}
  100%{background-position:0% 99%}
}

.entry_button a {
  width: 100%;
  height: 100%;
}

.entry_button span {
  color: #FFF;
  padding: 10px;
  text-align: center;
  position: relative;
  margin: auto;
  top: 50px;
  display: block;
}

.entry_button span::before {
  content: "";
  background: url('../images/entry.svg') no-repeat;
  background-size: 100%;
  width: 24px;
  height: 24px;
  position: absolute;
  bottom: 40px;
  left: 24px;
  right: 24px;
  margin: auto;
}

@media screen and (max-width: 1350px) {

  .contents_header_left {
    width: 30%;
  }

  .header_menu {
    display: none;
  }

}

@media screen and (max-width: 750px) {

  .contents_header_left p {
    font-size: 1.2rem;
    text-align: left;
    width: 100%;
    margin-left: 0;
    line-height: 1;
    letter-spacing: 0.1em;
  }

  .contents_header_left a{
    width: auto;
  }

  .contents_header_left img {
    width: 67%;
    height: auto;
    margin: 10px 0;
    display: block;
  }

  .sec_header {
    height: 70px;
  }

  .contents_header_left {
    width: 50%;
    height: 60px;
    display: block;
    top: 0;
    margin-left: 5%;
  }

  .contents_header_right {
    height: 60px;
  }

  .entry_button {
    width: 60px;
    height: 60px;
  }

  /* .contents_header_right {
    display: none;
  } */

  .entry_button span {
    padding: 10px;
    top: 28px;
    font-size: 1.2rem;
  }

  .entry_button span::before {
    width: 20px;
    height: 20px;
    bottom: 35px;
    left: 20px;
    right: 20px;
  }

  body.no-scroll .contents_header_right {
    display: none;
  }


}


/* ———————————————————————————————————————————————————————————————————————————————————————————————————— */

/* フッター */

/* ———————————————————————————————————————————————————————————————————————————————————————————————————— */

.page_top {
  width: 70px;
  height: 70px;
  background: #444444;
  border-radius: 50%;
  position: absolute;
  top: -40%;
  right: 70px;
  box-shadow: 0 3px 8px rgba(0,0,0,0.16);
  transition: .3s;
}

.page_top p {
  font-size: 1.2rem;
  text-align: center;
  line-height: 1.5;
  margin-top: 18px;
  color: #FFF;
}

a.btn-to-top:hover .page_top {
  background: #005DAC;
}

#contents_footer .contents_wrapper {
  width: 100%;
  height: 300px;
  background: #FFF;
}

.contents_footer_top {
  width: 90%;
  height: 50px;
  max-width: 420px;
  margin: 88px auto 30px auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  justify-content: space-between;
}

.contents_footer_top div {
  width: 50%;
}

.contents_footer_top img {
  width: 100%;
}

.contents_footer_top p {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 50px;
  letter-spacing: 0.2em;
}

.contents_footer_bottom {
  width: 90%;
  margin: auto;
}

.footer_menu {
  display: -webkit-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  justify-content: center;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}

.footer_menu li {
  text-align: center;
  padding: 0 20px;
  font-size: 1.4rem;
}

.footer_menu li a {
  position: relative;
  display: inline-block;
  transition: .3s;
  color: #000;
  text-decoration: none;
  margin-top: 20px;
}

.footer_menu li a:hover {
  color: #005DAC;
}

.footer_menu li a::after {
  position: absolute;
  bottom: 0;
  left: 0;
  content: '';
  width: 0;
  height: 1px;
  background-color: #005DAC;
  transition: .3s;
}

.footer_menu li a:hover::after {
  width: 100%;
}

.footer_menu li:last-child span::after {
  content: "";
  width: 14px;
  height: 14px;
  background: url(../images/link_ico.svg) no-repeat;
  background-size: 14px;
  position: absolute;
  top: 2px;
  right: 0;
}

.footer_menu li:last-child a {
  padding-right: 20px;
}

.footer_menu li:last-child a:hover span::after {
  background: url(../images/link_ico_hover.svg) no-repeat;
}

#contents_footer .footer_copyright {
  font-size: 1.2rem;
  text-align: center;
  width: 100%;
  margin-top: 70px;
}

@media screen and (max-width: 750px) {

  #contents_footer .contents_wrapper {
    height: auto;
    padding: 80px 0 50px 0;
  }

  .contents_footer_top {
    width: 50%;
    max-width: 360px;
    height: auto;
    margin: 0 auto;
    display: block;
  }

  .contents_footer_top div {
    width: 100%;
    margin-bottom: 20px;
  }

  .contents_footer_top img {
    width: 100%;
    height: auto;
  }

  .contents_footer_top p {
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1;
    text-align: center;
    letter-spacing: 0.1em;
  }

  .contents_footer_bottom{
    display: none;
  }

  #contents_footer .footer_copyright {
    width: 90%;
    margin: 35px auto 0 auto;
    margin-top: 35px;
    line-height: 2;
  }

  .page_top {
    top: -4%;
    right: 5%;
  }



}
