@charset "UTF-8";
/*=============================================
 * body
 *=============================================*/
:root {
  --primary: #000;
  --color_blue: #191D74;
  --color_org: #E46100; }

@font-face {
  font-display: swap;
  font-family: 'ShinGoPr5';
  font-weight: 500;
  font-style: normal;
  src: url("../fonts/ShinGoPr5-Medium-AlphaNum.woff2") format("woff2"); }
body {
  font-size: 14px;
  line-height: 23px;
  color: var(--primary);
  letter-spacing: 0;
  /*font-family: 'ShinGoPr5';
  font-family: "Noto Sans JP", serif;
  font-family: "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;*/
  font-family: 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', sans-serif;
  min-width: inherit;
  min-height: inherit;
  max-height: 100%;
  background: #fff; }

.nav--opened {
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch; }

.nav--opened #pagetop, .nav--opened .fx-btn {
  z-index: -1;
  opacity: 0; }

body.nav--opened, body.nav--opened *, body.nav--opened *:hover, body.nav--opened *:focus, body.nav--opened *:active {
  pointer-events: none !important;
  -ms-touch-action: none !important;
  touch-action: none !important; }

body.nav--opened .hamburger, body.nav--opened #menu_toggle, body.nav--opened #menu_toggle *, body.nav--opened .nav-fixed.fixed, body.nav--opened .nav-fixed.fixed *, body.nav--opened #ft_fixed, body.nav--opened #ft_fixed * {
  pointer-events: visible !important;
  -ms-touch-action: auto !important;
  touch-action: auto !important; }

/*=============================================
 * fonts - DON'T EDIT
 *=============================================*/
.fnt {
  font-family: "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif; }

/*=============================================
 * main
 *=============================================*/
*, *:before, *:after {
  -webkit-box-sizing: border-box;
  box-sizing: border-box; }

a[href^="tel:"]:hover, a:hover {
  text-decoration: none; }

@media only screen and (min-width: 768px) {
  .df-pc {
    display: flex !important;
    justify-content: space-between; }

  .wrap {
    margin: 0 auto;
    width: 100%;
    max-width: 1150px; } }
@media only screen and (max-width: 767px) {
  .wrap {
    padding: 0 6.6%;
    position: relative; }

  .df-sp {
    display: flex !important;
    justify-content: space-between; }

  .txt {
    padding: 0 5%; } }
i {
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  line-height: 1;
  position: relative; }

/*=============================================
 * animation
 *=============================================*/
@keyframes fadeInUp {
  0% {
    opacity: 0;
    transform: translate3d(0, 20px, 0); }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0); } }
.fadeInUp {
  -webkit-animation-name: fadeInUp;
  animation-name: fadeInUp;
  opacity: 0; }

.fadeInUp[style*="visible"] {
  opacity: 1; }

.animated {
  -webkit-animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  animation-duration: 1s;
  animation-fill-mode: both;
  animation-delay: 0.3s; }

@media (prefers-reduced-motion) {
  .animated {
    -webkit-animation: unset !important;
    -webkit-transition: none !important;
    animation: unset !important;
    transition: none !important; } }
/*=============================================
 * .toggle
 *=============================================*/
.toggle .toggle-link {
  cursor: pointer;
  position: relative; }

.toggle .toggle-main {
  display: none; }

.toggle.active .toggle-main {
  display: block; }

/*=============================================
 * header
 *=============================================*/
header {
  background: #fff;
  box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100; }
  header h1 {
    color: #fff;
    background: var(--color_blue);
    text-align: right;
    line-height: 20px;
    font-size: 11px;
    font-weight: bold;
    letter-spacing: 0.05em; }

.header-top2 {
  max-width: 1080px;
  height: 80px;
  margin: 0px auto;
  box-sizing: border-box;
  align-items: center;
  justify-content: flex-start !important;
  position: relative; }
  .header-top2 .logo a {
    width: 206px;
    display: block; }
  .header-top2 .tel {
    width: 250px;
    margin-left: 47px; }
  @media only screen and (max-width: 767px) {
    .header-top2 {
      height: 60px; } }

@media only screen and (min-width: 768px) {
  .header-nav {
    position: absolute;
    bottom: 0;
    right: 0; }
    .header-nav .ibtn {
      background-color: #d70039;
      box-sizing: border-box;
      text-align: center; }
      .header-nav .ibtn > a {
        position: relative;
        display: block;
        text-align: center;
        cursor: pointer;
        padding: 8px 18px 6px;
        line-height: 20px;
        text-indent: 0;
        margin-right: 0; }
        .header-nav .ibtn > a > i {
          color: #FFF;
          width: 40px;
          font-size: 40px;
          display: block;
          padding-bottom: 6px;
          margin: 0 auto; }
        .header-nav .ibtn > a span {
          color: #fff;
          font-size: 12px;
          margin-left: 5px; }
        .header-nav .ibtn > a:hover {
          opacity: 0.8; }
      .header-nav .ibtn .sub-base {
        visibility: hidden;
        opacity: 0;
        z-index: 1;
        display: flex;
        position: fixed;
        top: 80px;
        left: 0;
        width: 100%;
        -webkit-transition: all .5s ease;
        transition: all .5s ease;
        background: #dcdddd; }
      .header-nav .ibtn .subgroup {
        width: 1080px;
        padding: 20px 0;
        margin: 0 auto;
        display: flex;
        align-items: center; }
        .header-nav .ibtn .subgroup .ttl {
          width: 20%;
          padding-top: 15px;
          text-align: center; }
          .header-nav .ibtn .subgroup .ttl h3 {
            font-size: 30px;
            color: #102d88;
            font-weight: bold;
            margin-bottom: 13px; }
          .header-nav .ibtn .subgroup .ttl p {
            color: #333;
            font-weight: bold; }
      .header-nav .ibtn:hover .sub-base {
        top: 100px;
        visibility: visible;
        opacity: 1;
        z-index: 501; }
    .header-nav ul.sub-menu {
      display: flex;
      flex-wrap: wrap;
      gap: 15px;
      list-style: none;
      padding: 0;
      margin: 0;
      width: 80%; }
      .header-nav ul.sub-menu li {
        flex-grow: 1;
        flex-basis: calc(33.3% - 10px);
        position: relative;
        display: block;
        font-size: 16px;
        padding: 0;
        margin: 0;
        box-sizing: border-box; }
        .header-nav ul.sub-menu li a {
          background: #fff;
          border-radius: 30px;
          display: block;
          border-bottom: none;
          padding: 20px 15px;
          line-height: 1.2em;
          color: #333; }
          .header-nav ul.sub-menu li a h3 {
            color: #102d88;
            height: 40px;
            line-height: 40px;
            overflow: hidden;
            display: flex;
            align-items: center;
            margin-bottom: 10px;
            font-weight: bold; }
            .header-nav ul.sub-menu li a h3 i {
              font-size: 40px;
              color: #a9cccc;
              margin-right: 15px; }
            .header-nav ul.sub-menu li a h3 img {
              height: 100%;
              width: auto;
              display: block;
              margin-right: 15px; }
          .header-nav ul.sub-menu li a p {
            color: #565656;
            font-size: 0.8em;
            text-align: left; }
        .header-nav ul.sub-menu li:last-child {
          border-bottom: none; }
    .header-nav .sub-base {
      visibility: hidden;
      opacity: 0;
      z-index: 1;
      display: flex;
      position: fixed;
      top: 80px;
      left: 0;
      width: 100%;
      -webkit-transition: all .5s ease;
      transition: all .5s ease;
      background: #dcdddd; } }
@media only screen and (max-width: 767px) {
  main {
    padding-top: 90px; }

  .head_sp_tel {
    display: flex !important;
    justify-content: space-between;
    margin-bottom: 10px; }
    .head_sp_tel .tel {
      width: 74.5%;
      border: 3px #1d2088 solid;
      border-radius: 4px;
      padding: 5px 0;
      margin: 5px 0;
      display: block;
      text-align: center; }
    .head_sp_tel .fmail {
      width: 24%;
      text-align: center;
      margin-right: 0.5%;
      float: right; }
      .head_sp_tel .fmail a {
        width: 100%;
        height: 52px;
        padding: 2px 0 2px 0;
        margin: 2px;
        background: url("../img/hdr_mail.jpg") no-repeat center top 20px;
        display: block; }
      .head_sp_tel .fmail h4 {
        width: 100%;
        font-size: 0.75em;
        color: blue;
        line-height: 1.3;
        text-align: center;
        display: inline-block;
        padding-top: 50px; } }
#menu_toggle {
  width: 100%;
  background: rgba(22, 34, 42, 0.4);
  position: relative;
  z-index: 1;
  opacity: 0;
  visibility: hidden;
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  overflow-y: auto;
  z-index: 99;
  padding: 0;
  transition: all 0.5s ease 0s;
  -moz-transition: all 0.5s ease 0s;
  -webkit-transition: all 0.5s ease 0s;
  box-sizing: border-box;
  padding-top: 80px; }
  #menu_toggle #gNav {
    padding: 0;
    margin: 0;
    width: 100%;
    list-style-type: none;
    overflow-y: scroll;
    -webkit-overflow-scrolling: touch;
    position: relative;
    z-index: 99;
    /* max-height: 100vh; */
    max-height: calc(100vh - 60px);
    background: #dcdddd; }
  #menu_toggle ul li {
    position: relative;
    width: 100%;
    box-sizing: border-box;
    background: #FFFFFF;
    margin: 4px 0 1px 0; }
    #menu_toggle ul li .toggle-link {
      position: relative;
      display: block;
      width: 100%;
      padding: 11px 15px;
      margin: 0;
      text-align: left;
      text-decoration: none;
      text-transform: uppercase;
      color: #333;
      font-size: 13px;
      box-sizing: border-box;
      transition: 0.5s; }
      #menu_toggle ul li .toggle-link:before {
        content: "+";
        font-size: 24px;
        line-height: 1;
        color: #333;
        position: absolute;
        width: 60px;
        text-align: center;
        top: 46%;
        transform: translateY(-50%);
        right: 0; }
    #menu_toggle ul li.ibtn .toggle-link {
      display: flex;
      justify-content: flex-start;
      align-items: center;
      color: #FFF; }
      #menu_toggle ul li.ibtn .toggle-link i, #menu_toggle ul li.ibtn .toggle-link img {
        color: #FFF;
        width: auto;
        height: 20px;
        font-size: 20px;
        line-height: 20px;
        margin-right: 7px; }
      #menu_toggle ul li.ibtn .toggle-link:before {
        color: #fff; }
    #menu_toggle ul li.ibtn .sub-menu li a h3 {
      font-weight: bold;
      height: 2em;
      line-height: 2em;
      margin: 0 0 0.5em 0;
      color: #102d88;
      display: flex;
      align-items: center; }
      #menu_toggle ul li.ibtn .sub-menu li a h3 img {
        height: 100%;
        margin-right: 1em;
        width: auto;
        display: block; }
      #menu_toggle ul li.ibtn .sub-menu li a h3 i {
        font-size: 1.5em;
        color: #a9cccc;
        margin-right: 15px; }
    #menu_toggle ul li.ibtn .sub-menu li a p {
      color: #565656;
      font-size: 0.9em;
      line-height: 1.5; }
    #menu_toggle ul li#i01 .toggle-link {
      background-color: #009e73; }
    #menu_toggle ul li#i02 .toggle-link {
      background-color: #d70039; }
  #menu_toggle .sub-menu li {
    border-bottom: 1px solid #ccc; }
    #menu_toggle .sub-menu li a {
      width: 100%;
      padding: 0.55em 5% 0.55em 10%;
      text-shadow: none !important;
      visibility: visible;
      display: block;
      box-sizing: border-box;
      position: relative;
      font-size: 13px; }
    #menu_toggle .sub-menu li span.lbl {
      position: absolute;
      top: 10px;
      right: 10px;
      font-size: 9px;
      padding: 2px 8px;
      border-radius: 8px;
      background-color: #d70039;
      color: #fff;
      line-height: 1.6; }
    #menu_toggle .sub-menu li span.lbl_green {
      background-color: #009e73 !important; }

.navOpen #menu_toggle {
  opacity: 1;
  visibility: visible;
  pointer-events: visible; }

/*=============================================
 * hamburger
 *=============================================*/
@media only screen and (min-width: 768px) {
  .hamburger {
    display: none; } }
@keyframes menu-ber01 {
  0% {
    transform: translateY(8px) rotate(45deg); }
  50% {
    transform: translateY(8px) rotate(0); }
  100% {
    transform: translateY(0) rotate(0); } }
@keyframes menu-ber02 {
  0% {
    transform: translateY(-8px) rotate(45deg); }
  50% {
    transform: translateY(-8px) rotate(0); }
  100% {
    transform: translateY(0) rotate(0); } }
@keyframes active-menu-ber01 {
  0% {
    transform: translateY(0) rotate(0); }
  50% {
    transform: translateY(10px) rotate(0); }
  100% {
    transform: translateY(10px) rotate(45deg); } }
@keyframes active-menu-ber03 {
  0% {
    transform: translateY(0) rotate(0); }
  50% {
    transform: translateY(-8px) rotate(0); }
  100% {
    transform: translateY(-8px) rotate(-45deg); } }
.hamburger {
  position: absolute;
  top: 38px;
  right: 17px;
  color: var(--color_blue);
  width: 26px;
  height: 20px;
  background: #fff; }
  .hamburger:after {
    content: "MENU";
    position: absolute;
    bottom: -17px;
    left: -3px;
    width: 100%;
    text-align: center;
    font-family: serif;
    font-size: 10px;
    line-height: 1; }
  .hamburger span {
    display: inline-block;
    transition: all .4s;
    box-sizing: border-box;
    position: absolute;
    left: 0;
    width: 26px;
    height: 2px;
    background: var(--color_blue);
    margin: 0 auto; }
    .hamburger span:nth-child(1) {
      -webkit-animation: menu-ber01 .75s forwards;
      animation: menu-ber01 .75s forwards;
      top: 0; }
    .hamburger span:nth-child(2) {
      top: 8px;
      transition: all .25s .25s;
      opacity: 1; }
    .hamburger span:nth-child(3) {
      top: 16px;
      -webkit-animation: menu-ber02 .75s forwards;
      animation: menu-ber02 .75s forwards; }

.navOpen .hamburger:after {
  content: "CLOSE"; }
.navOpen .hamburger span:nth-child(1) {
  -webkit-animation: active-menu-ber01 .75s forwards;
  animation: active-menu-ber01 .75s forwards;
  top: -2px; }
.navOpen .hamburger span:nth-child(2) {
  opacity: 0; }
.navOpen .hamburger span:nth-child(3) {
  -webkit-animation: active-menu-ber03 .75s forwards;
  animation: active-menu-ber03 .75s forwards; }

/*=============================================
 * footer
 *=============================================*/
footer {
  border-top: 2px solid #adadad;
  margin: 35px auto 0;
  max-width: 1270px;
  padding: 30px 10px 85px;
  background: url("../img/footer_bg.jpg") repeat-x bottom center; }
  footer .wrap {
    max-width: inherit; }
  footer .footer1 {
    justify-content: center; }
  footer .footer_logo {
    margin-right: 50px; }
  footer .footer_text p {
    margin-bottom: 30px; }
  footer address {
    border-top: 2px solid #adadad;
    margin-top: 20px;
    padding-top: 15px; }
  @media only screen and (max-width: 1020px) {
    footer .footer1 li {
      margin-left: 30px; } }
  @media only screen and (max-width: 920px) {
    footer .footer1 {
      display: block !important; }
    footer .footer_link {
      margin-top: 20px;
      justify-content: space-between; }
      footer .footer_link li {
        margin-left: 0; } }
  @media only screen and (max-width: 767px) {
    footer {
      padding: 10px 20px 40px;
      text-align: center; }
      footer .footer_logo {
        margin: 0 auto;
        width: 125px; }
      footer .footer1 {
        border-bottom: none; }
        footer .footer1 li {
          margin-left: 0;
          background: none;
          padding-left: 0;
          height: auto; }
          footer .footer1 li a {
            display: inline-block;
            padding: 0 5px;
            border-left: 1px solid #ccc;
            border-right: 1px solid #ccc;
            line-height: 1.2; }
      footer address {
        text-align: center;
        margin-top: 20px; } }

#pagetop {
  width: 72px;
  height: 72px;
  display: inline-block;
  text-decoration: none;
  border-radius: 50%;
  background-color: #C30D23;
  position: fixed;
  bottom: 30px;
  right: 30px;
  display: flex;
  justify-content: center;
  align-items: center;
  opacity: 0;
  pointer-events: none; }
  @media only screen and (max-width: 767px) {
    #pagetop {
      width: 50px;
      height: 50px;
      bottom: 10px;
      right: 10px; }
      #pagetop img {
        width: 70%;
        margin: 0 auto; } }
  #pagetop.visible {
    opacity: 1;
    pointer-events: visible; }

iframe {
  width: 100%;
  height: 100%; }

/*=============================================
 * general
 *=============================================*/
.align-bottom {
  align-items: flex-end; }

.align-top {
  align-items: flex-start !important; }

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

@media only screen and (max-width: 767px) {
  .pc {
    display: none !important; }

  img {
    width: auto; }

  .wrap {
    margin: auto;
    max-width: 1000px;
    width: 100%;
    padding: 0;
    position: relative;
    z-index: 0; }

  .df-sp {
    display: flex !important;
    justify-content: space-between; } }
.df {
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  justify-content: space-between; }

em {
  font-style: normal; }

.txt-center {
  text-align: center; }
