/* @import url(../other/fonts.googleapis.com_8ecfe4); - not available */
/* @import url(../other/fonts.googleapis.com_8ecfe4); - not available */
article, aside, footer, header, nav, section, main, div, img {
  display: block; }

a, li, div, dl, dt, dd, input, section, textarea, th, td {
  box-sizing: border-box; }

ul {
  list-style: none;
  margin: 0;
  padding: 0; }

dd, dt {
  margin: 0; }

img {
  max-width: 100%;
  height: auto;
  border: none;
  vertical-align: middle; }

p, dl {
  margin: 0; }

blockquote {
  margin: 0; }

figure {
  margin: 0;
  padding: 0; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

td, th {
  word-break: break-word; }

h1, h2, h3, h4, h5, h6 {
  line-height: 1.6;
  margin: 0;
  padding: 0; }

*:focus {
  outline: none; }

::-webkit-input-placeholder {
  font-family: sans-serif; }

:-moz-placeholder {
  font-family: sans-serif; }

input[type="submit"], input[type="reset"], input[type="button"] {
  border-radius: 0;
  -webkit-box-sizing: content-box;
  -webkit-appearance: button;
  appearance: button;
  box-sizing: border-box; }
  input[type="submit"]::-webkit-search-decoration, input[type="reset"]::-webkit-search-decoration, input[type="button"]::-webkit-search-decoration {
    display: none; }
  input[type="submit"]::focus, input[type="reset"]::focus, input[type="button"]::focus {
    outline-offset: -2px; }

@media screen and (max-width: 1050px) {
  input:not([type="checkbox"]), textarea, select {
    font-size: 1.6rem; } }

html {
  font-size: 62.5%; }

body {
  width: 100%;
  min-height: 100vh;
  position: relative;
  margin: 0;
  color: #212833;
  font-family: sans-serif;
  font-size: 1.6rem;
  line-height: 1.8; }

header {
  z-index: 100; }

.to-top {
  z-index: 70; }

a, a:visited {
  transition: opacity .2s ease-out;
  text-decoration: none; }

a:hover {
  opacity: .7; }

main a, main a:visited {
  color: #212833; }

footer a, footer a:visited {
  color: #fff; }

@media (min-width: 1081px) {
  a[href^="tel:"] {
    pointer-events: none; } }
section {
  position: relative; }

main {
  padding-top: 6rem;
  min-height: calc( 100vh - 10rem ); }
  main h1, main h2, main h3 {
    font-weight: normal; }

section h1, section h3 {
  margin-bottom: 2rem; }

.overlay, .menu_btn {
  display: none; }

.is_pc {
  display: block; }

.is_sp {
  display: none; }

.site-title:hover {
  opacity: .6; }

header {
  width: 100%;
  background: rgba(255, 255, 255, 0.7);
  position: fixed; }
  header .h-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 5%;
    box-sizing: border-box; }
  header a {
    display: block; }
  header nav {
    line-height: 1; }
    header nav ul {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: center; }
    header nav a, header nav a:visited {
      color: #000;
      text-decoration: none;
      white-space: nowrap;
      position: relative;
      padding: 0 3rem; }
    header nav a::after {
      content: '';
      width: calc( 100% - 3rem );
      height: 1px;
      background: #00288c;
      position: absolute;
      bottom: -0.7rem;
      left: 0;
      transform: scale(0, 1);
      transition: transform .5s; }
    header nav a:hover::after {
      transform: scale(1, 1); }
    header nav li:not(:last-child) a {
      padding-left: 0; }
    header nav li:last-child a:after {
      width: 0; }
    header nav li:last-child a.btn-w {
      background: #00288c;
      color: white; }
      header nav li:last-child a.btn-w:before {
        color: white;
        border-color: white; }
    header nav li:last-child .btn-b:before {
      right: 55px; }
    header nav .current::after {
      transform: scale(1, 1); }

.breadcrumb {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  font-size: 1.4rem;
  padding: 0; }

footer {
  background: #00288c;
  color: #fff;
  font-size: 1.2rem;
  text-align: center;
  padding: 1rem 0;
  position: relative; }

.wrap {
  max-width: 1000px;
  margin: 0 auto; }

.wrap-s {
  max-width: 710px;
  margin: 0 auto; }

.btn {
  background: #00288c;
  box-sizing: border-box;
  padding: 12px 35px 12px 25px;
  display: inline-block;
  line-height: 1;
  border-radius: 23px;
  position: relative; }
  .btn, .btn:visited {
    color: #fff; }
  .btn::before {
    content: "";
    position: absolute;
    box-sizing: border-box;
    pointer-events: none;
    top: 50%;
    right: 1.5rem;
    width: 1rem;
    height: 1rem;
    border-top: solid 1px #fff;
    border-right: solid 1px #fff;
    transform: translateY(-50%) rotate(45deg); }

.btn-back {
  background: #00288c;
  box-sizing: border-box;
  padding: 12px 35px 12px 25px;
  display: inline-block;
  line-height: 1;
  border-radius: 23px;
  position: relative;
  background: #888;
  padding: 12px 25px 12px 35px; }
  .btn-back, .btn-back:visited {
    color: #fff; }
  .btn-back::before {
    content: "";
    position: absolute;
    box-sizing: border-box;
    pointer-events: none;
    top: 50%;
    right: 1.5rem;
    width: 1rem;
    height: 1rem;
    border-top: solid 1px #fff;
    border-right: solid 1px #fff;
    transform: translateY(-50%) rotate(45deg); }
  .btn-back::before {
    right: auto;
    left: 1.5rem;
    transform: translateY(-50%) rotate(-135deg); }

.btn-w {
  background: #00288c;
  box-sizing: border-box;
  padding: 12px 35px 12px 25px;
  display: inline-block;
  line-height: 1;
  border-radius: 23px;
  position: relative;
  background: #fff; }
  .btn-w, .btn-w:visited {
    color: #fff; }
  .btn-w::before {
    content: "";
    position: absolute;
    box-sizing: border-box;
    pointer-events: none;
    top: 50%;
    right: 1.5rem;
    width: 1rem;
    height: 1rem;
    border-top: solid 1px #fff;
    border-right: solid 1px #fff;
    transform: translateY(-50%) rotate(45deg); }
  .btn-w, .btn-w:visited {
    color: #212833; }
  .btn-w::before {
    border-color: #212833; }

.contents-title {
  text-align: center;
  position: relative; }
  .contents-title h2, .contents-title p {
    font-weight: bold; }
  .contents-title h2 {
    font-size: 3.6rem;
    margin: 0;
    color: #00288c; }
  .contents-title p {
    margin: .5rem 0 0 0;
    line-height: 2rem;
    font-family: 'Jost', sans-serif;
    font-size: 1.8rem;
    letter-spacing: .2rem; }
  .contents-title:before {
    position: absolute;
    content: "";
    width: 9rem;
    height: 1px;
    bottom: -2rem;
    left: 50%;
    transform: translateX(-50%);
    background: black; }

.txt_center {
  text-align: center; }

.to-top {
  display: none;
  position: fixed;
  bottom: 1rem;
  right: 1rem;
  cursor: pointer;
  width: 53px;
  height: 53px; }

.sp-menu input, .sp-menu label {
  display: none; }

.second-title {
  margin-top: 5rem;
  padding: 0 2rem; }
  .second-title h1 {
    text-align: center;
    font-size: 3rem;
    font-weight: bold;
    margin: 2rem 0 0; }

.pp_cont {
  padding: 6rem 2rem 11rem; }
  .pp_cont h2 {
    font-size: 2rem;
    margin-bottom: 1rem;
    font-weight: bold; }
  .pp_cont p {
    margin-bottom: 4rem; }
    .pp_cont p:last-child {
      margin-bottom: 0; }

.fr-top {
  margin-top: 3rem; }

.not-found {
  padding: 30rem 0; }
  .not-found h1 {
    text-align: center;
    margin-bottom: 5rem; }

@media screen and (max-width: 1050px) {
  main {
    overflow-x: hidden;
    min-height: calc( 100vh - 10rem ); }

  body.open {
    height: 100%;
    overflow: hidden; }
    body.open .overlay {
      opacity: 0.6;
      display: block; }

  header {
    height: 6rem;
    position: fixed; }
    header .h-inner .site-title img {
      max-width: 303px; }
    header nav {
      overflow-x: hidden;
      position: fixed;
      top: 0;
      right: 0;
      height: 100vh;
      display: none;
      width: 280px;
      margin-top: 6rem;
      background: rgba(0, 40, 140, 0.9);
      z-index: 100; }
      header nav ul {
        margin: 2rem 0;
        display: block; }
      header nav a::after {
        content: none; }
      header nav a, header nav a:visited {
        font-size: 1.6rem;
        color: #f7f7f7; }
        header nav a:hover, header nav a:visited:hover {
          opacity: .5; }
      header nav li:not(:last-child) a {
        padding: 1.5rem 2rem; }
      header nav li:last-child a {
        margin: 15px auto 0 20px;
        width: 100%;
        max-width: 24rem; }
      header nav li:last-child a.btn-w {
        background: white;
        color: black;
        text-align: center; }
        header nav li:last-child a.btn-w:before {
          border-color: black; }
      header nav .current a {
        color: #fff; }

  .overlay {
    background-color: #000;
    cursor: pointer;
    height: 100vh;
    top: 0;
    left: 0;
    position: fixed;
    width: 100vw;
    z-index: 80; }

  .menu_btn {
    position: fixed;
    display: block;
    top: 0;
    right: 0;
    width: 6rem;
    height: 6rem;
    cursor: pointer;
    z-index: 1001;
    background: #00288c; }
    .menu_btn span {
      display: inline-block;
      transition: all .4s;
      position: absolute;
      left: 50%;
      transform: translateX(-50%);
      height: 2px;
      border-radius: 5px;
      background: #fff;
      width: 30px; }
    .menu_btn span:nth-of-type(1) {
      top: 20px; }
    .menu_btn span:nth-of-type(2) {
      top: 28px; }
    .menu_btn span:nth-of-type(3) {
      top: 36px; }
    .menu_btn.close span:nth-of-type(1) {
      top: 30px;
      left: 50%;
      transform: translateX(-50%) rotate(45deg);
      width: 30px; }
    .menu_btn.close span:nth-of-type(2) {
      opacity: 0; }
    .menu_btn.close span:nth-of-type(3) {
      top: 30px;
      left: 50%;
      transform: translateX(-50%) rotate(-45deg);
      width: 30px; }

  main {
    padding-top: 6rem; }

  .contents-title {
    display: block;
    text-align: center; }
    .contents-title h2 {
      margin: 0 auto !important; }
    .contents-title .is_pc {
      display: none; }
    .contents-title .is_sp {
      display: block; }

  .second-title {
    margin-top: 2.5rem; }
    .second-title span img {
      max-width: 200px; }
    .second-title h1 {
      margin: 1rem 0 0; }
    .second-title.pp_title span img {
      max-width: 90%; } }
@media screen and (max-width: 700px) {
  header .h-inner .site-title img {
    width: 80%; }

  .contents-title h2 {
    font-size: 3rem; }

  .pp_cont {
    padding: 3rem 2rem; } }
